From 8a14602d31004317e021e0c107151f89a61da4c6 Mon Sep 17 00:00:00 2001 From: wshallwshall Date: Fri, 7 Aug 2026 09:07:32 -0500 Subject: [PATCH 1/2] docs(CLAUDE.md): re-derive every section 12 pointer; 3 of 12 had rotted Section 12's decline markers exist so a decision stays binding after its backlog item closes and archives. The mechanism works -- #26 and #27 survive only because they were lifted here. Their own pointers were the ones that had decayed. Scanned all 12 pointers in section 12 against origin/main (the primary checkout runs behind and returns confident false negatives). Re-derived each target rather than trusting the text. ROTTED, now fixed -- all three named the live ledger for an archived item: #26 visual/template authoring -> docs/archive/backlog/BACKLOG-CLOSED.md #27 serial / ASTM -> docs/archive/backlog/BACKLOG-CLOSED.md #222 typed action vocabulary -> docs/archive/backlog/BACKLOG-CLOSED.md (#222 was a bare "BACKLOG #222" with no path, which reads as the live ledger; it is closed. Not named in the brief -- found by the sweep.) LEFT AS-IS, verified to resolve: ADR 0037 / 0063 / 0039 paths -- all three files exist ADR 0007 (bare, "see section 1") -- section 1 carries the path, file exists ADR 0076 Amendment D -- exists, 0076-typed-action-...md:658 BACKLOG #232 -- genuinely still open in docs/BACKLOG.md docs/CONNECTIONS.md -- still carries the serial decline, :2436 parse_items, section 11, section 1 -- resolve Added the ADR 0076 path inline, since Amendment D was cited by bare number only. Verification: extracted every markdown link target in section 12 and resolved it (7 unique, all OK), with a deliberately-broken path run through the same checker to prove it can report a miss. No gate added. A backlog number resolving to an archived item is not mechanically distinguishable from one resolving to nothing without encoding the archive's shape, and a gate that fails on a legitimate archive is one people delete. NOT included: #1073's marker. It is not on origin/main -- it is in PR #269, still open, and it already cites the archive correctly. Basing on an unmerged PR head is the stacking trap, so this branch is cut from origin/main. PR #269 inserts a new bullet immediately after the #27 bullet this commit edits; the two are semantically independent but adjacent, so expect a textual conflict and keep both. --- CLAUDE.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 6104b282..78e4c4be 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -546,10 +546,13 @@ harness process only.) accept-and-drop a received message. - Don't build **visual / template-driven authoring** (drag-drop transformer, declarative field-mapping) — **declined-by-design (v0.2+)**: code-first Routers/Handlers *are* the - differentiator ([`docs/BACKLOG.md`](docs/BACKLOG.md) #26). *Narrow carve-out (2026-07-10, #26 - amendment; widened to Routers 2026-08-05 per ADR 0076 Amendment D, BACKLOG #232):* a - **structured Steps view** over real Python Handlers **and Routers** via a typed action - vocabulary (BACKLOG #222; the router `route` row kind is #232, ADR-gated) is permitted — the + differentiator (BACKLOG #26 — closed, so it lives in + [`docs/archive/backlog/BACKLOG-CLOSED.md`](docs/archive/backlog/BACKLOG-CLOSED.md), not in the + live ledger). *Narrow carve-out (2026-07-10, #26 amendment; widened to Routers 2026-08-05 per + [ADR 0076](docs/adr/0076-typed-action-vocabulary-action-list-lens.md) Amendment D, BACKLOG + #232):* a **structured Steps view** over real Python Handlers **and Routers** via a typed action + vocabulary (BACKLOG #222 — closed, same archive; the router `route` row kind is #232, still open + in [`docs/BACKLOG.md`](docs/BACKLOG.md), ADR-gated) is permitted — the carve-out was granted because the `.py` stays the **only artifact and the only execution path**, and that property holds identically for a `@router` (a byte-splice Steps view over a real `@router` projects destination selection from reviewable Python; it introduces no declarative @@ -558,7 +561,9 @@ harness process only.) remain declined. - Don't build **Serial (RS-232) / ASTM E1381/E1394/E1318** lab-instrument connectivity — **declined-by-design (v0.2+)**: no real feed demand, outside the HL7/FHIR/X12/DICOM scope - ([`docs/BACKLOG.md`](docs/BACKLOG.md) #27, [`docs/CONNECTIONS.md`](docs/CONNECTIONS.md)). + (BACKLOG #27 — closed, so it lives in + [`docs/archive/backlog/BACKLOG-CLOSED.md`](docs/archive/backlog/BACKLOG-CLOSED.md), not in the + live ledger; the connector-parity row is [`docs/CONNECTIONS.md`](docs/CONNECTIONS.md)). - Don't keep grinding in a polluted context — `/clear` after repeated failures. - Don't use **glyphs or emoji** in prose, comments, commit messages, PR bodies or replies — say the word (§11). The backlog status-banner alphabet is the one machine-parsed holdout; read it with From 75398064ec309cd71e18f15cf9ae143140d0ea7e Mon Sep 17 00:00:00 2001 From: wshallwshall Date: Fri, 7 Aug 2026 09:08:11 -0500 Subject: [PATCH 2/2] docs: DECIDED -- Code_Quality_Standards.md section 4.1 gets NO back-pointer to #1073 R2 of the #1073 leftovers. The B5 brief left this "optionally" and nobody had chosen. Deciding it NO, and recording the decision, because an unresolved "optionally" is indistinguishable from a deliberate omission six months later -- which is exactly how #1073's own unpinned status came about. Deliberately no file change. The decision is not to add an artifact, so an empty commit is the whole record. The case for was real: section 4.1 is the anti-metric rule the ISO 5055 decline turns on, and a reader wondering whether 4.1 has ever been applied to a live proposal gets no answer from 4.1 itself. Rejected because: 1. R1, in this same branch, is the evidence. Three of section 12's twelve pointers had rotted, and the two rotted ones named in the brief were #26 and #27 -- the very entries cited as proof that lifting a decline into section 12 makes it outlive its item. The decision survived; the trail back to it did not. This estate's demonstrated failure mode is pointers decaying, not decisions being unfindable. 2. It would be a fourth copy of the same pointer (the backlog item, the section 12 marker, PR #269's prose, and 4.1), in a repo already bitten by the install procedure in three copies and the reference table in two. 3. It would be born rotted. #1073 is closed by PR #269 and archives on merge, so a clause written today naming docs/BACKLOG.md acquires the exact defect R1 just cleaned up. 4. Section 4.1 is a four-sentence hard rule carrying no worked examples for any of the metrics it bans. A #1073 example would be the only one, which reads as though 5055 were the rule's primary case rather than one application of it. Section 12 holds the binding decision, which is what that mechanism is for. Reopening needs a reason that outweighs the maintenance cost, not just the observation that the cross-reference is absent.