fix(readme): three different contract counts, and the guard that watches them ran nowhere - #2485
Merged
Conversation
…hes them ran nowhere
README claimed 1771 provable contracts in its metrics table (correct), 1158 at
line 225, and 1767 at line 256. Filesystem: 1771 `.yaml`, 0 `.yml`.
`scripts/check_readme_claims.sh` implements FALSIFY-README-00* precisely to stop
this, and it could not:
1. It ran NOWHERE. Not in any workflow, not in the Makefile. Its only caller in
the entire tree is `scripts/dogfood-book.sh:112`, and dogfood-book.sh is
itself in no workflow and no Makefile target -- unreachable from anything.
2. It matched only `**M** provable contracts`, the bold table form, then took
`head -1`. The prose forms at lines 225 and 256 were invisible to it, and
even a second bold claim would have been dropped by the head.
So the one claim it checked was the one that happened to be right. A drift
detector that is both unwired and pattern-narrow supplies the APPEARANCE of claim
discipline, which is worse than no detector -- a reader of the README has no way
to know which of three numbers to believe, and nothing in CI made any of them
true.
Fixes:
* README lines 225 and 256 corrected to 1771.
* `claimed_contract_counts` returns EVERY contract-count claim (a number
optionally followed by up to two qualifier words, then "contract(s)"), and
all of them must equal the measurement. The README is no longer permitted to
contradict itself, which is a stronger property than matching the filesystem
once. On failure it prints the offending lines with line numbers.
* Wired into the merge-blocking guard block.
Mutation-verified, each RED then restored GREEN:
* drift ONLY the line-256 prose claim -- the form the old guard was blind to
* drift the line-44 table claim -- the form it did see
Refs #2481
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
noahgift
enabled auto-merge
August 14, 2026 18:58
This was referenced Aug 15, 2026
noahgift
added a commit
that referenced
this pull request
Aug 16, 2026
…ract FALSIFY-README-002 caught this in CI on #2508: adding contracts/apr-contract-enforcement-v1.yaml moved the filesystem count while the README still claimed 1771. All three copies in the README are updated - the guard checks every contract-count claim precisely because the file carried three different ones (#2485). Refs #2504
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
README claimed 1771 provable contracts in its metrics table (correct), 1158 at
line 225, and 1767 at line 256. Filesystem: 1771
.yaml, 0.yml.scripts/check_readme_claims.shimplements FALSIFY-README-00* precisely to stopthis, and it could not:
the entire tree is
scripts/dogfood-book.sh:112, and dogfood-book.sh isitself in no workflow and no Makefile target -- unreachable from anything.
**M** provable contracts, the bold table form, then tookhead -1. The prose forms at lines 225 and 256 were invisible to it, andeven a second bold claim would have been dropped by the head.
So the one claim it checked was the one that happened to be right. A drift
detector that is both unwired and pattern-narrow supplies the APPEARANCE of claim
discipline, which is worse than no detector -- a reader of the README has no way
to know which of three numbers to believe, and nothing in CI made any of them
true.
Fixes:
claimed_contract_countsreturns EVERY contract-count claim (a numberoptionally followed by up to two qualifier words, then "contract(s)"), and
all of them must equal the measurement. The README is no longer permitted to
contradict itself, which is a stronger property than matching the filesystem
once. On failure it prints the offending lines with line numbers.
Mutation-verified, each RED then restored GREEN:
Refs #2481
Co-Authored-By: Claude Opus 5 noreply@anthropic.com