Checkwright v0.10.0

2026-07-20

Checkwright is the verification layer under agent orchestration, and this release ships three iterations of held-back work in one note. The public documentation now renders faithfully — four kit SPEC pages had been serving a large fraction of their body as raw text — and the gates named below landed or tightened around the evidence the tree keeps about its own delivery.

Tightened gates

  • check-assertion-strength — landed new and registered. Gates that an assertion actually carries the class it claims, rather than matching a narrower shape that happens to cover today’s fixtures.
  • check-template-copy-parity — landed new and registered. Catches drift between a kit template and a consumer’s copied-out copy, the residue class the upgrade contract folds into behavior changes.
  • check-release-bump — tightened to floor a note against an outstanding deferred release, not only against its own three sections. A held-back release’s criteria stay unconsumed, and the next qualifying note may no longer fall below the version they earned.
  • check-docs-render-fidelity — the leak assertion was widened to key on the shared span-corruption symptom: any stray backtick or any raw non-HTML-element tag surviving in rendered text, not only a three-or-more backtick fence run. The narrower form was blind to a severed inline span, which is how the corrupted SPEC pages shipped. The same gate was then narrowed to exempt svg and math foreign-content subtrees by open/close depth, removing a latent false positive on legitimate inline markup; the exemption is scoped to the subtree rather than granted to the element names, so a bare placeholder tag outside such a subtree still reds.

Renamed knobs

None.

Behavior changes

  • agent-budget-guard.sh — the STALE verdict string gained its decision consequence, so a stale reading now changes what the guard does instead of only what it prints; the script also lost its 2) arm in both copies.
  • stage-economics.sh — now reads committed history together with live state rather than live state alone, so a boundary truncation no longer drops the stage rows that preceded it.

Upgrading

Replace the vendored kit directories wholesale at v0.10.0, then regenerate the generated artifacts — the pre-commit hook via gate-sdk/bin/gen-pre-commit.sh --write and the graph projection via gate-sdk/checks/check-graph.sh --emit — and run the full battery.

The allowed reds. Tightened gates is non-empty, so a clean upgrade may turn these red, and each names what clears it. check-assertion-strength and check-template-copy-parity are new registrations: they red on real findings in your tree, and each finding is fixed rather than waived. check-release-bump reds only if your newest note falls below an outstanding deferral it can now see; carry the unconsumed criteria into that note. check-docs-render-fidelity reds on pages whose rendered output diverges from source under the pinned Pages parser — restructure the offending block, since the widened assertion now catches severed spans the previous form let through.

The behavior changes above are declared for reading, not a mechanical scan. If a gate reds that this note does not name, the upgrade smoke was supposed to catch it first — open an issue, because that is a defect in the release rather than work for you.