Measured, not asserted

Convergence Shipped

Every iteration writes raw facts to a metrics store. The convergence curve and the stopping point are queries over those facts, not stored counters.

The store holds per-iteration rows and nothing derived — no counts, no cached totals. The convergence curve, the resolved-versus-new-gap trend, and the diminishing-returns inflection are all computed by query, bucketed by contract size and gated on a minimum sample. When the sample is too small it says so and falls back to a placeholder rather than inventing a number.

Every run on record

RunContractOutcomeIterations
reusable-document-search-view20 criteriaready4
all-data-feature14 criteriaready4
first-community16 criteriaready, oracle down1 recorded, 7 built
research-search-better-ui19 criteriahalted (budget)1
research-search-ui10 criteriaready2
owner-scoped-integrations-ui17 criteriahalted (budget)1
audit-log2 criteriahalted (gate failure)2
adh-test-infra-reliability5 criteriaready1
mcp-lifecycle-reliability4 criteriaready2
land-the-beast33 criteria, 3 reposhalted (gate failure)2

Iterations to a ready verdict

  • adh-test-infra-reliability1 iterations5 criteria
  • research-search-ui2 iterations10 criteria
  • mcp-lifecycle-reliability2 iterations4 criteria
  • reusable-document-search-view4 iterations20 criteria
  • all-data-feature4 iterations14 criteria

Ten runs is not a sample either, but it is the whole record rather than a chosen part of it: six reached ready, four halted, and all ten are in the table above — including the two that burned 13.3M and 13.5M tokens against a 10M budget before the guard stopped them. The chart counts only runs that reached a ready verdict, because "iterations to a verdict" is undefined for a run that never got one, and it omits first-community, whose conformance oracle was down for the entire run so its recorded iteration count is a measurement failure rather than a result.

Including the ones that failed

The land-the-beast run is reported as a halt, honestly attributed to tooling rather than code: the gate killed the run twice without ever rejecting the work, because the first gate run's state was destroyed mid-run by the archiver. The first document-search run did not converge either — it limped to an oscillation halt on a verification-evidence criterion the diff-graded oracle structurally cannot satisfy.