Skip to content

Commit 4f3f8e2

Browse files
refactor(doc-truth): consolidate the two #176 guards into one unified check-doc-truthing.sh (#479)
Folds the over-claim ratchet (#475 / DOC-17) into the banner-presence guard (#476 / DOC-16) so the two near-identically-named doc-truthing scripts do not linger. tools/check-doc-truthing.sh is now the single toolchain-free gate: #476's fail-accumulator structure for the presence invariants (DOC-04/05) + #475's over-claim ratchet (DOC-08/09) + the `--update` re-baseline mode, over the unchanged 13-signature tools/doc-overclaims.allow. check-doc-overclaims.sh deleted; CI two steps -> one; justfile guard runs one script (doc-truth-bless); ledger DOC-16 rewritten, DOC-17 folded in. Pure consolidation, no behavioural change, no compiler code touched. Refs #176 Refs #175 https://claude.ai/code/session_01HR1GHjBfNdfcFZm1XiLXK4
1 parent f10fbdb commit 4f3f8e2

8 files changed

Lines changed: 155 additions & 187 deletions

File tree

.github/workflows/ci.yml

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -75,22 +75,15 @@ jobs:
7575
# rationale + recovery instructions.
7676
run: ./tools/check-no-extension-ts.sh
7777

78-
- name: Issue #176 — block status-doc truthing re-drift
79-
# docs/CAPABILITY-MATRIX.adoc is the single authoritative status
80-
# doc. This guard fails if the over-claiming docs lose their
81-
# banners pointing back at it, if the matrix stops self-declaring
82-
# primacy / loses its anti-over-claim section, or if STATE.a2ml
83-
# stops flagging itself as a mirror (DOC-01..09). Toolchain-free.
78+
- name: Issue #176 — doc-truthing re-drift guard (DOC-01..09)
79+
# Single toolchain-free gate enforcing both halves of the doc-truthing
80+
# MONITOR: the presence invariants (DOC-04/05 — banner pointers, matrix
81+
# primacy + anti-over-claim section, STATE.a2ml mirror keys) AND the
82+
# over-claim ratchet (DOC-08/09 — fails any NEW backend-breadth /
83+
# "production-ready" / stdlib-% phrase beyond tools/doc-overclaims.allow).
84+
# See tools/check-doc-truthing.sh.
8485
run: ./tools/check-doc-truthing.sh
8586

86-
- name: Issue #176 — over-claim ratchet (DOC-08/09)
87-
# Companion to the banner guard above (DOC-16): a frozen-baseline
88-
# ratchet that fails any *new* backend-breadth / "production-ready"
89-
# / stdlib-% phrase beyond tools/doc-overclaims.allow — the
90-
# DOC-08/09 detection the banner guard deliberately leaves to bots.
91-
# Toolchain-free. See tools/check-doc-overclaims.sh (DOC-17).
92-
run: ./tools/check-doc-overclaims.sh
93-
9487
- name: Check formatting
9588
run: opam exec -- dune build @fmt
9689

.machine_readable/6a2/STATE.a2ml

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/CAPABILITY-MATRIX.adoc

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,12 +222,11 @@ current authoring frontier. A few primitives remain `extern` builtins.
222222
Any PR that re-introduces backend-breadth, "production-ready", or
223223
stdlib-percentage over-claims must be rejected (DOC-01..09 / issue #176;
224224
Hypatia/gitbot `DOC-FORMAT`/`DOC-DEDUP` rules). This is enforced
225-
*mechanically* in-repo (wired into `just check` + CI): `tools/check-doc-truthing.sh`
226-
(DOC-16) holds the banner/primacy/mirror invariant, and
227-
`tools/check-doc-overclaims.sh` (DOC-17) ratchets against new over-claim
228-
phrasings beyond the frozen `tools/doc-overclaims.allow` baseline. Update
229-
*this file* in the same PR as any capability change; `STATE.a2ml` mirrors,
230-
it does not lead.
225+
*mechanically* in-repo by the single guard `tools/check-doc-truthing.sh`
226+
(DOC-16; wired into `just check` + CI): it holds the banner/primacy/mirror
227+
invariant *and* ratchets against new over-claim phrasings beyond the frozen
228+
`tools/doc-overclaims.allow` baseline. Update *this file* in the same PR as
229+
any capability change; `STATE.a2ml` mirrors, it does not lead.
231230

232231
== See also
233232

docs/TECH-DEBT.adoc

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -114,35 +114,37 @@ ABI coordination model (four axes: spec authority / coordinated
114114
landing / test parity / conflict resolution). Both filed in
115115
META.a2ml; ADR-020 lands first as the first test of ADR-021's
116116
protocol. Both require owner ratification. |*PROPOSED 2026-05-23*
117-
|DOC-16 |In-repo enforcement of the DOC-04/05 truthing invariant —
118-
`tools/check-doc-truthing.sh` (toolchain-free bash) fails if any
119-
over-claiming doc loses its `CAPABILITY-MATRIX.adoc` banner, if the
120-
matrix stops self-declaring primacy or loses its "What AffineScript is
121-
NOT" section, or if `STATE.a2ml` drops its mirror keys. Wired into
122-
`just check` (the `guard` recipe) and CI (`ci.yml` build job). Converts
123-
the DOC-08/09 MONITOR posture from external-bot-only to a first-class
124-
in-repo gate. |*DONE 2026-05-30*
125-
|DOC-17 |Over-claim ratchet — the *phrase-detection* complement to DOC-16.
126-
`tools/check-doc-overclaims.sh` + `tools/doc-overclaims.allow` baseline:
127-
a frozen-signature ratchet over README + `docs/**` (excluding the two
128-
governance docs that quote the rule — CAPABILITY-MATRIX + this ledger)
129-
fails any *new* backend-breadth / "production-ready" / stdlib-% phrase
130-
beyond the 13-line baseline (future-tense roadmap milestones, dated
131-
history snapshots, the corrective banners — none a live over-claim).
132-
DOC-16 deliberately checks banner *presence* not phrasing (a naive grep
133-
false-positives); the ratchet closes that gap without false positives
134-
because the legitimate set is frozen and only *new* phrases fail.
135-
Re-baseline via `--update` / `just doc-overclaims-bless`; the diff is
136-
the audit trail. Wired into `just check` + CI (toolchain-free bash).
137-
|*DONE 2026-05-30*
117+
|DOC-16 |In-repo doc-truthing re-drift guard — `tools/check-doc-truthing.sh`
118+
(toolchain-free bash), the single gate enforcing *both* halves of the
119+
MONITOR. *Presence invariants (DOC-04/05):* fails if any over-claiming doc
120+
loses its `CAPABILITY-MATRIX.adoc` banner, if the matrix stops
121+
self-declaring primacy or loses its "What AffineScript is NOT" section, or
122+
if `STATE.a2ml` drops its mirror keys. *Over-claim ratchet (DOC-08/09):*
123+
a frozen-signature baseline (`tools/doc-overclaims.allow`) over README +
124+
`docs/**` (excluding the two governance docs that quote the rule —
125+
CAPABILITY-MATRIX + this ledger) fails any *new* backend-breadth /
126+
"production-ready" / stdlib-% phrase beyond the 13-line accepted set
127+
(future-tense roadmap milestones, dated history snapshots, the corrective
128+
banners — none a live over-claim). Presence-checking handles the banners
129+
(where "production-ready" legitimately appears); the frozen baseline adds
130+
phrase detection without false positives. Re-baseline via `--update` /
131+
`just doc-truth-bless`; the diff is the audit trail. Wired into
132+
`just check` (the `guard` recipe) and CI (`ci.yml` build job). Converts the
133+
DOC-08/09 MONITOR posture from external-bot-only to a first-class in-repo
134+
gate. |*DONE 2026-05-30*
135+
|DOC-17 |Over-claim ratchet — *folded into DOC-16.* Briefly shipped as a
136+
separate `tools/check-doc-overclaims.sh` (PR #475) alongside #476's banner
137+
guard; consolidated into the single `tools/check-doc-truthing.sh` so the
138+
two near-identically-named guards do not linger. The ratchet behaviour +
139+
`tools/doc-overclaims.allow` baseline are unchanged — see DOC-16.
140+
|*DONE 2026-05-30 (consolidated)*
138141
|===
139142

140143
MONITOR enforcement (DOC-08/09): any PR re-introducing backend-breadth,
141-
"production-ready", or stdlib-percentage over-claims must be rejected.
142-
As of 2026-05-30 this is enforced in-repo on *both* halves: DOC-16
143-
(`tools/check-doc-truthing.sh`) holds the banner/primacy/mirror presence
144-
invariant, and DOC-17 (`tools/check-doc-overclaims.sh`) ratchets against
145-
new over-claim *phrasings*. The external Hypatia/gitbot DOC rules remain
144+
"production-ready", or stdlib-percentage over-claims must be rejected. As of
145+
2026-05-30 this is enforced in-repo by the single unified guard
146+
`tools/check-doc-truthing.sh` (DOC-16) — presence invariants *and* the
147+
over-claim ratchet in one run. The external Hypatia/gitbot DOC rules remain
146148
the estate-level backstop for anything outside both nets.
147149

148150
== Section B — CORE (compiler soundness / completeness)

justfile

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,18 @@ check: lint test guard
9090
# Regression guards:
9191
# - Issue #35 Phase 3: fails if extension.ts reappears under
9292
# editors/vscode/src or any face's vscode extension dir.
93-
# - Issue #176 (DOC-16): fails if the status-doc truthing banners
94-
# re-drift (authoritative matrix pointers + STATE.a2ml mirror keys).
95-
# - Issue #176 (DOC-17): fails if a NEW backend-breadth / "production-
96-
# ready" / stdlib-% over-claim appears beyond the frozen baseline.
93+
# - Issue #176 (DOC-01..09): the unified doc-truthing guard — fails if the
94+
# status-doc banners / matrix primacy / STATE.a2ml mirror keys re-drift,
95+
# OR if a NEW backend-breadth / "production-ready" / stdlib-% over-claim
96+
# appears beyond the frozen baseline.
9797
guard:
9898
./tools/check-no-extension-ts.sh
9999
./tools/check-doc-truthing.sh
100-
./tools/check-doc-overclaims.sh
101100

102-
# Re-baseline the over-claim ledger (DOC-17) after a deliberate, legitimate
101+
# Re-baseline the doc-truthing over-claim ledger after a deliberate, legitimate
103102
# change (e.g. a new dated roadmap milestone). Commit the .allow diff.
104-
doc-overclaims-bless:
105-
./tools/check-doc-overclaims.sh --update
103+
doc-truth-bless:
104+
./tools/check-doc-truthing.sh --update
106105

107106
# ── Compiler subcommands ──────────────────────────────────────────────────────
108107

tools/check-doc-overclaims.sh

Lines changed: 0 additions & 117 deletions
This file was deleted.

0 commit comments

Comments
 (0)