Run both systems. Find the first behavior that changed.
Strust executes legacy and migrated software on the same workloads, isolates the first behavioral divergence, and returns evidence to the coding agent and human reviewer. Starting with COBOL-to-Java migration.
Interactive v1 demonstrator
Agent + reviewer viewsOne change. The agent fixes it; the reviewer decides it.
Agent view isolates the first changed decision and the next patch. Reviewer view translates that evidence into impact and a human decision. This controlled example illustrates the intended product loop; the published paper documents the current evidence and limits.
Agent receives
Trace-local cause, the first divergent decision, a suggested patch, and the exact rerun command.
Agent diagnosis / F-02
12 divergent tracesFirst divergence: Branch action
Batch branch B-17 / null-account path · Trace 417 / 1,215
Reference system
COBOL
IF ACCOUNT-ID = SPACES
NEXT SENTENCE
ELSE PERFORM WRITE-CLAIM
END-IF
Candidate system
Java
if (accountId == null) {
writeFallback(claim);
} else { writeClaim(claim); }
batch.advance();
Execution checkpoints
Source value / target value
NULL
Account input
NULL
Equivalent
TRUE
Guard B-17
TRUE
Equivalent
SKIP_WRITE
Branch action
WRITE_FALLBACK
Origin
0
Rows emitted
1
Changed
4,808
Batch count
4,809
Changed
The first changed decision is Branch action: the source returns SKIP_WRITE while Java calls writeFallback.
Capture → Compare → Isolate → Patch → Rerun
Use the lightest check that can answer the question.
Change criticality
Selected feedback
Add replay and broader input coverage.
4/ 5
- Immediate
Types + static analysis
Global invariants
- Milliseconds
Expect-style examples
Readable behavior
- Seconds
Deterministic replay
Controlled time + effects
- Selective
Property + fuzz checks
Input exploration
- Critical paths
Historical + formal checks
Highest assurance
Evaluator firewall
The agent does not grade itself.
Strust separates implementation changes, eval changes, and new expected behavior. If a patch changes both the code and the rule judging it, that decision is surfaced for human review.
An eval is a readable example of intent.
case "null account emits no row" risk critical input account_id = null expect rows = 0 expect effects = [] owner payments-platform
Text first
The test is also the explanation.
Each case records why the behavior matters, the controlled input, expected outputs and side effects, its owner, and its criticality. Humans can read it. Agents can act on it.
Survives after the reference system is retired
CLI
strust eval --changed
Agent tool
Focused failure context
CI
Risk-sensitive gates
Pull request
Behavioral diff
Migration was the first proving ground.
01 CUSTOMER-CODE PIC X(8). IF CUSTOMER-CODE = 'VIP' MOVE 'PRIORITY' TO QUEUE-NAME
String code = record.customerCode();
if (code.equals("VIP")) { // ← flagged
queueName = "PRIORITY";
}A legacy system is already an executable reference. Strust turns representative source behavior into evals for the system replacing it. Here, COBOL pads the shorter fixed-width value; Java treats VIP····· and VIP as different strings. Both compile; the behavior changes.
Built by an engineer obsessed with where behavior diverges.

George Weale
Founder · San Francisco Bay Area
Founder-led prototype
Turning agent quality into evidence a reviewer can trust.
George works on agent quality and efficiency at Google Cloud AI, with a systems background spanning evaluation, inference, GPUs, compilers, and runtimes.
He built Strust around a practical gap: coding agents can produce large migrations quickly, but teams still need independent evidence that the new system preserved the behavior that matters.
The public v1 paper publishes the method, ten controlled scenarios, the known failures, and the limits of the current demonstrator. Strust is now looking for real migration workflows to turn into design partnerships.
Seeking design partners
Bring one real migration into the loop.
Strust is looking for engineering teams, modernization firms, and coding-agent builders with an important software change to verify. Bring the workflow; we will map the behavior that matters and show where the candidate diverges.