Skip to content

fix(readme): three different contract counts, and the guard that watches them ran nowhere - #2485

Merged
noahgift merged 1 commit into
mainfrom
fix/readme-claims-guard
Aug 14, 2026
Merged

fix(readme): three different contract counts, and the guard that watches them ran nowhere#2485
noahgift merged 1 commit into
mainfrom
fix/readme-claims-guard

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

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

…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
noahgift enabled auto-merge August 14, 2026 18:58
@noahgift
noahgift added this pull request to the merge queue Aug 14, 2026
Merged via the queue into main with commit 907bef2 Aug 14, 2026
12 checks passed
@noahgift
noahgift deleted the fix/readme-claims-guard branch August 14, 2026 22:09
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant