← Back to portfolio
Anchor Project Accepted · Eval 24243a5a

SustainAI: Predictive Sustainment & Supply-Exception Triage

Built for the problem I lived as a Marine embarkation and logistics specialist (0431): too many exceptions, too little time to find the ones that actually threaten the mission. SustainAI predicts turbofan engine degradation from real NASA data, converts predictions into severity-banded exceptions through deterministic thresholds, and puts a single guardrailed agent on triage so a human sees only what a human needs to see.

Scope: One dataset · one pipeline · one agent · one eval harness Data: NASA C-MAPSS FD001 (100-engine test set) Stack: Python · scikit-learn · Pydantic · Gemini 2.5 Flash on Vertex AI · Terraform · GCP Build method: Autonomous coding agent (Google Antigravity) under six adversarial audit rounds Repo: github.com/burnsgregm/SustainAI

What it is

A predictive-sustainment system with a deliberately capped scope. A remaining-useful-life (RUL) regression model predicts engine degradation. Deterministic thresholds convert those predictions into severity-banded exceptions: no LLM decides severity on its own. A single Gemini-backed triage agent then works each exception: assess severity, gather context, recommend an action, and either escalate to a human or log and continue monitoring. Hard guardrails sit above the agent and get the final word.

Measured results, with receipts

Every number below traces to a specific evaluation run. The accepted model evaluation is eval-24243a5a, reproduced bit-identically as eval-8a40e13a. The live agent run is eval-3477d2bf. No metric appears on any SustainAI deliverable without one of these receipts.

Model performance (eval-24243a5a, reproduced as eval-8a40e13a)

0.842
Critical-class recall
0.941
Critical-class precision
0.889
Critical-class F1
17.6
RMSE, cycles
13.3
MAE, cycles
763
NASA scoring function
0.70
Severity-band accuracy

100-engine FD001 test set. Shipped model: HistGradientBoostingRegressor baseline, selected over an MLPRegressor champion on honest validation numbers.

Live agent run on Vertex AI (eval-3477d2bf, gemini-2.5-flash)

33 / 33
Exceptions triaged live, 0.0 failure rate
100%
Schema validity on agent output
8.8s / 12.0s
Latency p50 / p95 vs 15s target (PASS)
Cents
Total Vertex cost, single digits

The honest miss list

The FD001 test set contains 19 truly critical engines. The model caught 16, missed 3, and raised 1 false alarm. Every one of those engines is itemized by unit number in the repo's evaluation artifacts. Publishing the misses is deliberate: a sustainment operator does not need a system that claims perfection, they need to know exactly where it fails and how it fails. An honest miss list is what makes the 16 catches believable.

Two exhibits worth your time

Unit 81: the guardrail overrules the agent

The model flagged Unit 81 as critical. The triage agent examined the evidence and honestly assessed it as low risk, recommending continue_monitoring. Guardrail FR-GRD-1 forced escalation anyway, recording forced_by_guardrail=true and preserving the agent's dissenting assessment for the operator to read. The agent gets a voice. The guardrail gets the final word. The human gets both. This is the "enterprise discipline makes AI safe to ship" pillar in a single artifact.

Unit 90: the agent catches what the threshold missed

The deterministic threshold banded Unit 90 as a warning. The agent examined the context, found a sudden 25% N1 vibration spike, upgraded its assessment to critical, and escalated on its own judgment: forced_by_guardrail=false. Judgment above the threshold, discipline above the judgment.

How the numbers earned trust: six adversarial audit rounds

The interesting part of this project is not the model. It is the process that made the numbers trustworthy. SustainAI was built by an autonomous coding agent (Google Antigravity) with every round of output subjected to an adversarial audit before acceptance. Six rounds were required. The review loop caught three distinct fabrication modes:

One methodological defect was also caught: a degenerate validation setup that produced trivially perfect numbers. It was fixed by truncating the validation window so the model was scored on genuinely unseen degradation.

A separate live-integration debugging arc took the Gemini path from a hard crash, through JSON truncation, through a field-name mismatch, to the clean 33/33 run. Every intermediate failure was caught by a guardrail and failed safe. At no point did the system ship a bad recommendation.

The thesis: the evaluation harness plus an adversarial review loop are what made these numbers trustworthy. Not the agent's self-reports. That is the finding a hiring team should take from this project, because it is the finding that generalizes to every agent-built system they will ever deploy.

Disclosed deviation

The original plan named a Keras neural network as the champion model. A TensorFlow DLL failure on the Windows build environment blocked it, and an MLPRegressor was substituted as the champion candidate. On honest validation numbers, the HistGradientBoostingRegressor baseline beat it and shipped. SustainAI is accepted and complete, not perfect, and this deviation is disclosed rather than buried.

What this proves

PillarWhere it shows up
Delivery is the hard part, not the modelA baseline regressor shipped; the six audit rounds and the live-integration arc were the actual work.
Built for the person depending on the systemSeverity bands, escalation-only-when-needed, and preserved agent dissent all exist so an operator can trust and act.
Logistics and sustainment are where the value livesPredictive maintenance plus exception triage on real degradation data is the unglamorous core of readiness.
Enterprise discipline makes AI safe to shipUnit 81. Deterministic thresholds, hard guardrails, schema validation, reproduced evals, itemized misses.
← Back to portfolio