CUSTOMER-CODE PIC X(8). IF CUSTOMER-CODE = 'VIP' MOVE 'PRIORITY' TO QUEUE-NAME
Behavioral verification
Agents write. Strust verifies.
Strust runs existing software and its AI-written replacement together, then retains the first changed behavior as replayable evidence.
The contract stays fixed while the code changes.
Strust runs existing software and its AI-written replacement against one approved behavioral boundary.
- Verifier
Pin the contract
Approve the reference, inputs, runtime assumptions, observations, and comparison policy.
- Runner
Execute the pair
Run the existing system and candidate rewrite under the same declared conditions.
- Comparator
Find the origin
Stop at the earliest contract-relevant difference, before downstream effects obscure it.
- Evidence store
Retain the evidence
Return a replayable finding to the coding agent and a reviewable decision to the owner.
One changed decision. Two useful views.
Agent view isolates the next patch. Reviewer view translates the evidence into impact and a human decision.
This controlled example illustrates the intended loop; the paper states which arithmetic is reproducible and which historical execution artifacts are unavailable.
Agent receives
Trace-local cause, the first divergent decision, a suggested patch, and a conceptual replay target.
Agent diagnosis / F-02
1 changed observationFirst divergence: Branch action
Batch branch B-17 / null-account path / Illustrative scenario B
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
UNCHANGED
Batch count
INCREMENTED
Changed
The first changed decision is Branch action: the source returns SKIP_WRITE while Java calls writeFallback.
Capture → Compare → Isolate → Patch → Rerun
Compilation can pass while behavior moves.
COBOL is the first executable reference. Fixed-width data and runtime assumptions make it an unforgiving test lane.
String code = record.customerCode();
if (code.equals("VIP")) {
queueName = "PRIORITY";
}Open evaluation protocol
A benchmark for behavior, not syntax.
SemaMig-Bench runs held-out workloads against the executable source and native Java candidate. Contract-relevant observations agree, or the task does not pass.
Read benchmark PDF- Task unit
- Paired execution
- Pass condition
- Behavioral agreement
- Evidence
- Reviewable finding
COBOL reference and native Java candidate
Declared observations match under the contract
Per-task verdict, comparison output, and failure context
Bring the rewrite you cannot afford to get wrong.
Tell us what is changing and what behavior must stay the same.
