Prop. 196 closed with: a ratio test detects without localising, so a campaign needs diagnostics too. This wave built one. The parser was already collecting an error message per recovery event into discarded and throwing them away — one eprintln! turned 154 events into a ranked work-list:
| events |
files |
cause |
example |
| 48 |
30 |
Unexpected top-level token: Ident |
## Specification |
| 43 |
17 |
Unexpected top-level token: Minus |
- protocol_version: semver, ... |
Both are Markdown. Structurally: 16 of 497 specs carry Markdown structure and account for 55 of 154 recovery events — 36%.
Prop. 189 had already met one of these and mis-scoped it. c_api_contract.t27 was excused by name, reasoning that renaming is a corpus decision not a parser defect. The reasoning was right; the scope was wrong — a singleton exception where there was a population. An exemption granted by name cannot notice it has siblings.
Theorem (composition confound). For a ratchet M(C) = Σ m(x) over a corpus partitioned into kinds with different characteristic m, M moves under three independent operations — improving the subject, improving the instrument, and changing the mix of kinds — and its value alone cannot distinguish them. Renaming 16 files .md would move the headline parser number 154 → 99 while changing neither the parser nor any spec.
Corollary: every ratchet over a heterogeneous population is partly a composition metric. This is Prop. 194's unexamined denominator, applied to the denominator's contents rather than its size. Same fix: publish the partition.
Gate 28 classifies and ratchets the document count. It renames nothing — that is still a corpus decision. Threshold printed every run so it can be argued with.
Boundary
specs/api/c_api_contract.t27
Prop. 196 closed with: a ratio test detects without localising, so a campaign needs diagnostics too. This wave built one. The parser was already collecting an error message per recovery event into
discardedand throwing them away — oneeprintln!turned 154 events into a ranked work-list:Unexpected top-level token: Ident## SpecificationUnexpected top-level token: Minus- protocol_version: semver, ...Both are Markdown. Structurally: 16 of 497 specs carry Markdown structure and account for 55 of 154 recovery events — 36%.
Prop. 189 had already met one of these and mis-scoped it.
c_api_contract.t27was excused by name, reasoning that renaming is a corpus decision not a parser defect. The reasoning was right; the scope was wrong — a singleton exception where there was a population. An exemption granted by name cannot notice it has siblings.Theorem (composition confound). For a ratchet M(C) = Σ m(x) over a corpus partitioned into kinds with different characteristic m, M moves under three independent operations — improving the subject, improving the instrument, and changing the mix of kinds — and its value alone cannot distinguish them. Renaming 16 files
.mdwould move the headline parser number 154 → 99 while changing neither the parser nor any spec.Corollary: every ratchet over a heterogeneous population is partly a composition metric. This is Prop. 194's unexamined denominator, applied to the denominator's contents rather than its size. Same fix: publish the partition.
Gate 28 classifies and ratchets the document count. It renames nothing — that is still a corpus decision. Threshold printed every run so it can be argued with.
Boundary
specs/api/c_api_contract.t27