Skip to content

Commit b835196

Browse files
committed
fix(platform-checklist): drop the dangling ADR citation, pin both call sites, narrow the since claim
Four findings from the Tier S contract review, carried in one push. F1 (BLOCKING) — `docs/qa/platform-checklist/README.md` cited `ADR-0136`, which names no record under `docs/adr/` (the registry stops at 0135). A bare `ADR-NNNN` resolves against THIS repo, so `check:adr-anchors` exited 1 and took the required `Lint & Repo Gates` context with it, leaving 169 gates never run. The citation came from the card body and was copied; the fix is still owed here. ⛔ No number is invented and nothing is allowlisted: the lesson is stated self-containedly instead, which is what a rule in this tree owes anyway. F3 — the two rules ride on two call sites that nothing pinned. Both were severed and measured: `--self-test` stayed at 207/207 green, the live gate stayed green, and a fixture kind whose ONLY item is planned stayed green. A pure function's battery cannot see whether anything calls it, and the subject here IS a ratchet, so an unpinned binding is a ratchet that switches off without a number moving. `statusBindingProblems` reads this file's own source and is driven ON and OFF over one text, the way the line-citation limb below already pins its binding. The first draft of it shipped a decoy — its severing needles were plain string literals the predicate matched instead of the real call sites, so both OFF legs read as passes. The OFF legs caught it; the predicate now demands EXACTLY ONE occurrence and the needles arrive in halves. F2 — `since` is checked for SHAPE only. This ledger holds no release timeline, so a planned item targeting an already-shipped release passes. The README, the refusal message and the docblock now say that, and two rows pin the limit in the direction it deliberately does not go. F4 — the hand-typed `264` in the self-test prose is derived from the ledger. Claude-Session: https://claude.ai/code/session_01AmH9bKvGoLjiY86Q4Z3og2 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 2245341 commit b835196

2 files changed

Lines changed: 183 additions & 21 deletions

File tree

‎docs/qa/platform-checklist/README.md‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,11 @@ listed capability had nowhere to live: the backlog sweep had nothing to point a
304304
at, and the platform's implementation status lived in nobody's head. The North Star's
305305
definition line (「做出来的是什么」…「缺任何一样就不是这个应用」) makes such a piece a
306306
**requirement**, so it belongs on the ledger — as a fourth status, not as a second
307-
document. A separate feature list would drift against this one with no gate able to say
308-
which is wrong (the ADR-0136 lesson), and the reading entry carries numbers only because
309-
a command produces them.
307+
document. A separate feature list drifts against this one the moment either is edited,
308+
and nothing can then say which of the two is wrong: there is no ratchet between two
309+
hand-maintained documents, only a pair of disagreeing readings. Hence one ledger, one id
310+
space, one more status — and a reading entry that carries numbers only because a command
311+
produces them.
310312

311313
**`status: "planned"`** — the definition requires this capability and the platform does
312314
not yet implement or verify it. What a planned item carries, and what it deliberately
@@ -316,7 +318,7 @@ does not:
316318
|:---|:---|
317319
| `id` · `title` · `priority` · `surface` · `revision` · `history` | as for any item — an id is picked once and is immutable, so it can be pointed at from the day the gap is found |
318320
| `personas` | **required** — who the capability is for is knowable the day the gap is found, and is what makes the gap readable to the next sweep |
319-
| `since` | `null` (no target release chosen) **or the TARGET release** — never a release that already shipped without it |
321+
| `since` | `null` (no target release chosen) **or a TARGET release**. ⛔ Only the SHAPE is checked: this ledger holds no release timeline, so a target naming a release that already shipped is an authoring error no gate here can see |
320322
| `steps` | **none.** There is nothing to drive. Steps arrive in the PR that implements the capability, in the same edit that promotes the item |
321323
| `acceptance` | not required — no oracle can be consulted yet. Clauses drafted early are still validated |
322324

0 commit comments

Comments
 (0)