You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Doc-honesty gates verify the generator's OUTPUT, never its CONTENT — load-bearing prose in a template is structurally invisible #880
Every generated-artifact freshness gate in this repo checks that the rendered artifact matches a re-render. None of them check the generator's own content. So any load-bearing claim that lives in a template renders "correctly" forever and cannot be caught.
Concretely: scripts/claim_check.py --emit-status renders scripts/templates/feature_matrix.md.tmpl → docs/status/FEATURE_MATRIX.md, and the staleness gate compares doc↔render. If the template prose is wrong, the render faithfully reproduces the wrong prose and the gate is green.
Why this is worth an issue rather than a patch
It has now produced the same class of defect in two consecutive releases, both caught only by a human-equivalent cold read at tag time:
v0.51.0 — the matrix described shipped features ("div/rem", "popcnt", "calls") as "not yet" / "declined".
Both were one-line template fixes. The recurrence is the signal: the tooling cannot see this class, so it will keep happening.
The generalization
claim_check.py already does the right thing for numbers — it re-derives counts from the tree, so a stale number reddens CI. It does nothing for prose. And prose in this repo carries real claims: which ops lower, which decline, what is enforced vs. a follow-on. That's exactly the "honest decline" surface the project's identity rests on.
Possible directions (not prescribing)
Derive the capability prose the way counts are derived — e.g. generate the per-backend "supported / loud-declines" lists from the selector's own decline sites, so the matrix cannot claim something the code contradicts.
Cross-check prose against the oracles: if aarch64_bounds_865_differential.py exists and passes, a template asserting OOB-trap is a "follow-on" is a contradiction a gate could detect.
Pin claim-bearing template phrases in claims.yaml (the mechanism already exists) so changing a shipped capability forces a ledger bump.
At minimum: audit the remaining templates now for other load-bearing prose that no gate can see.
Filed off the v0.52.0 cold review, which put it well: "every generated-artifact freshness gate in this repo verifies the generator's output, never the generator's content."
Activity
docs(#880 audit): fix 4 more live stale-prose defects found by the te…
Make the gates real: CI-wire the gpio-thin + rv32-boot oracles (#879)…
fix(#880/#851): re-pin the aarch64 div/rem+popcnt claim after the v0.…
aarch64: VCR-SEL-005 third-backend parity gate + 13 measured op gaps …
fix(release): cold-review blockers — stop citing issues this release …
chore(release): v0.53.0 — "The last mile" (7 lanes) (#892)
fix(#918): declare the two undeclared oracles — and pin the third sur…
Make the evidence say what it measures: scope the coverage number, as…
RQ-58-MIRRORS (#242): generate, don't mirror — the freshness gate can…