package.json reads 0.11.0, and config.js's RUNNER_VERSION is held equal to it. The Action pins in README.md and docs/index.html are @v0.11.0, the plugin's pin in plugin/driftproof/.claude-plugin/plugin.json is 0.11.0, and so is the minimum in plugin/driftproof/version-guard.json. package-lock.json moves with them, and tests/fixtures/export-summary.snapshot.json's receipt_hash is re-cut because runner_version is inside the canonical receipt that hash is taken over.
The UNDERPOWERED verdict (spec 035). A receipt that could not have resolved the effect floor at the draws it took now says so, instead of saying NO_EFFECT, which reads as a measured absence. The rule is R-1 to R-6 with a new named constant POWER_Z (2) in config.js, and the receipt spec bumps to v0.7, which adds no field: readers derive the verdict, and v0.6 is frozen rather than widened.
Behaviour changes, read these before upgrading
- A job that used to fail can now pass (the fail-open direction).
decisionStateno longer reads the aggregate delta. Before this release,delta <= -0.05was aregressionand failed the job. Now the state comes from the receipt verdict, so a receipt whose aggregate delta clears the floor downward with no case separated readsno detected effect, orunderpoweredwhere the rule finds it so, and the job no longer fails. If your gate relied on the aggregate delta alone to catch a regression, it no longer does. No archived receipt moves out ofREGRESSEDby this, so the exposure is to receipts generated from here on. - A job that used to pass can now fail to report success (the tightening direction). A workflow that passed on an aggregate lift with no case separated now reads
UNDERPOWERED, which is inNEVER_SUCCESSand never renders as success. - All 120 receipts archived before this release now badge
NOT_MEASURED. The verdict rule refuses a receipt whoseanswered_byblock is absent, not only one stating a kind other thanmodel. This is the fail-safe reading and is word for word whatdecisionStatehas applied since spec 030, so the badge and the Action stop answering differently about one receipt. The site's old example receipt (2026-07-27) rendersnot measured on claude-haiku-4-5, lightgrey, where it renderedpassing, brightgreen, so the site no longer uses it as the example (below). - Published report figures do not move. The differ's per-case verdict values are unchanged and the new state rides beside them, so Reports 006 to 008 rebuild byte-identical.
What else this release contains
- The badge and the receipt page (spec 036). An
UNDERPOWEREDorNOT_MEASUREDbadge prints the draws taken against the draws needed, not a lift. The receipt page says which refusal fired, and a receipt with no readable case readsNOT_MEASURED, neverNO_EFFECT. - The homepage and How this is built (spec 037). The homepage opens on the question a skill's own tests leave open, whether the gap it makes is real or noise and whether it held on the last model release. The Claude Code plugin is the first install path, and
npxand the GitHub Action sit under a CI heading. The first screen links the findings page and a receipt page, and the receipt card's verdict is read from that receipt. A new How this is built page in the Docs menu describes the method, with counts taken at a named commit. The hero plot's accessible title carries the verdict word only, and the receipt page carries the sentence under it (A-037-4). - A fresh example receipt, and the site artefacts that were stale now agree with it.
receipts/commit-message-conventions-claude-haiku-4-5-20251001-2026-09-17.jsonwas run on this release after the bump:runner_version0.11.0,claude-clithrough the isolated eval user,answered_by.kindmodel,TESTED, receipt schema 0.7, 462 calls, lift +0.389 ± 0.217, verdictPASSED. The README badge, the homepage card, its plot,docs/data/stats.jsonand the CI badge's alt text all read from it. Re-cut from this receipt, the badge JSON is byte-identical (passing on claude-haiku-4-5, brightgreen), so the site's accent token does not move and no design decision was needed. A pre-build run of the same suite on 2026-09-16, before the bump, recordedrunner_version0.10.2 and also readPASSED(+0.441 ± 0.183); it stays in the archive. This clears the stale-artefacts item that was open on this entry (spec 035 F-3).
Published
driftproof@0.11.0 is on npm, published 2026-09-17, built from source commit d8ed3646684d79a96519f435ef3cfe6cfaf802ef; the published repository's v0.11.0 tag points at 2c6a747ab39f35dd92dbe443832fe7797c785980. The post-publish gate figures are recorded in RELEASES.md once read.
Known open
- Everything the findings page lists as open, carried from v0.10.2.
- The sibling spec gates and their re-freezes were deferred to a post-release loop, recorded in
DECISIONS.mdat the release commit.