Your tests passed.
We check what they missed.

A self-correcting loop that investigates the evidence a passing end-to-end test leaves behind, and decides whether the system actually behaved correctly.

6 sper investigation
$0.00054per investigation
0false positives in 24 runs
1real shipped bug reproduced
The problem

A green test hiding a destroyed row

One line changes in Linkding: archiving a bookmark deletes it instead. The project's own browser test still passes, the request returns 200, and the final screenshots are identical down to the byte.

test
test_active_bookmarks_partial_update_on_archive (unmodified)
upstream test
PASSED
archive request
POST /bookmarks/action → 200
screenshots
byte-identical, sha256 3ed76c3e…
clean bookmarks
9 → 9
defective bookmarks
9 → 8  ← one row destroyed
tag links removed
1

Nothing a person would look at has changed.

The loop

Four roles, and a gate before any verdict

ScoutCriticVerifier EvidenceInvestigator can refuse 3 wayscan refuse 3 wayscan refuse 1 way typed hypothesisall four gate clauses hold at most four roundsverify retrieverevised hypothesis gate shut regressionclean insufficient
Nobody writes prose. Every answer is a choice from a list with a probability attached, so every branch is ordinary code reading an enumerated value.
The gate

Watch the loop refuse itself

assessment.choice === "supported"
  && assessment.confidence >= minConfidence
  && complete
  && hypothesis !== "unknown"
  1. 1Scouthypothesis = unknown · 0.57
  2. 2Criticassessment = insufficient · 0.78, next = database_state
  3. 3Evidenceretrieved database_state
  4. 4Investigatorhypothesis = suspected_violation · 0.62
  5. 5Criticassessment = supported · 0.31, next = operation_contract The Critic agreed, and the loop kept going anyway, because 0.31 does not clear the gate. A loop that read the word and ignored the number would have stopped one source early and been right by luck.
  6. 6Evidenceretrieved operation_contract
  7. 7Investigatorhypothesis = suspected_violation · 0.98
  8. 8Criticassessment = supported · 0.89, next = none
  9. 9Verifierverdict = regression · 0.98, grounding = sufficient · 0.99
Credibility

What the model is never allowed to see

HARNESSMODEL STATE initial observationdatabase_state operation_contractknown_good_run test result, operation, row counts requiredrequiredoptional test outcome, operation, countsbefore and after database rows pinned upstream implementationvalidated reference run case id, expected verdictmutation patch, local paths harness state validators never crosses
Labels reach Weave only after an investigation returns, and only for scoring. Artifacts are hashed before and after every run, so both providers demonstrably read the same bytes.
Measured

Two models, one engine, identical evidence

Two runs eachTypeSafe jev-1.13.0DeepSeek-V4-Pro
Correct verdicts4/6 · 4/66/6 · 6/6
Abstentions2 · 20 · 0
Wrong verdicts0 · 00 · 0
False positives0 · 00 · 0
Latency5.3 – 6.1 s78.8 – 92.5 s
Output tokens3829,900 – 11,200

No incorrect verdict in 24 investigations. Both runs abstained on exactly the same two defect shapes, for the same recorded reason, with every required source already in hand. That is a property of those defects, not noise.

The cascade

One engine. The judge is what changes.

ONE INVESTIGATION ScoutCriticVerifier EvidenceInvestigator hypothesis gate opens verify revised gate shut at most four rounds regression clean insufficient TypeSafe jev-1.13.0DeepSeek-V4-Pro $0.00054 · 6 s · runs first $0.06 · 90 s · on escalation only answers every typed question run it again, 4 of 12
Escalation re-runs the whole investigation with a different judge, from a fresh state and fresh retrievals. Same engine, same evidence catalog, same typed questions, same gate. Only the model answering changes, which is why any number of tiers composes and why comparing two providers is fair.
The cascade

The expensive model's accuracy, at a third of the price

Replayed across two recorded studies, twelve investigations per provider. Running it live confirmed the replay exactly: 6 of 6, escalating 2, flipping both.

PolicyCorrectCost per 250 tests
TypeSafe alone8 / 12$0.14
Cascade12 / 12$5.36
DeepSeek alone12 / 12$15.67

The obvious design escalates a confident finding for a second opinion. Our measurements say the opposite. TypeSafe issued no wrong verdict and no false positive in 24 investigations, so every miss is an abstention. Escalate what the loop gives up on, not what it concludes.

Policy

Two more levers, measured not asserted

The threshold was conservative

Re-running the suite at seven thresholds costs two cents. Dropping 0.80 to 0.50 recovers a case with no wrong verdict at any value.

The traces label themselves

Across four studies the providers never contradicted each other. All six disagreements were one giving up, spotted without any ground truth.

Neither touches the operation contract, which is the part that needs a human. Tuning a threshold on the same six cases you measure is overfitting, so the sweep is a lead rather than a setting to ship.

Economics

Cheap enough to run on every green test

measured end to end projected range, never run
Investigating 250 passing tests once each, logarithmic because the range spans four orders of magnitude. Both measured providers read a similar volume of input, so the gap is the rate, not efficiency.
Held out

A real bug nobody here designed

Documenso #2485 shipped in 2.6.0. With next-signer dictation, a recipient was marked sent, with a timestamp, while no signing request was ever queued. Its own Playwright test loads that exact row and asserts name and email.

Defective buildFixed build
Upstream tests2 passed2 passed
Rows claiming a dispatch20
Signing-request jobs00
Emails delivered00

And the investigator does not yet find it. TypeSafe abstains on both builds, DeepSeek reports a regression on both, which makes its finding a coincidence rather than a detection. Only the clean control caught that. We did not rewrite the contract while watching the verdicts, because that manufactures the result the case exists to test.

Honest limits

What this does not establish

Try it

Read the investigations yourself

Twelve recorded investigations, both providers over all six captures, including the two abstentions. Inspect before and after state, the operation contract, and every recorded agent choice. No keys, no uploads, no model calls.

Linkding and Documenso are unmodified dependencies, pinned at eb98e67d and 3cef238f. The engine, capture harness, evidence layer, evaluation and viewer were built for the hackathon, and every role, retrieval and verdict is traced in W&B Weave.

Your tests passed. We check what they missed.

arrow keys to move