From e34bce04b087696da5924cc2feaeec01317c6f0e Mon Sep 17 00:00:00 2001 From: wshallwshall Date: Thu, 27 Aug 2026 18:40:11 -0500 Subject: [PATCH] docs(test-plan): the #231 published-baseline premise is false at both sites that assert it (BACKLOG #1100) TWO OF THE NINE SITES THIS ITEM NAMES. The other seven are accounted for below; five were fixed by 2119001ee, one is a ledger edit that is not a builder's, and one already carries its correction. WHAT THE TWO SITES CLAIMED. 00-strategy-and-governance.md and 19-execution-phasing-and-sign-off.md both said docs/BACKLOG.md is a published baseline that stops at heading 231 and "says so itself", quoting a sentence and citing a line anchor into that file. MEASURED AGAINST THE COMMITTED FILE, AND BOTH HALVES ARE FALSE: 373 item headings, numbered 3 to 1372, of which 320 are ABOVE 231 the quoted sentence returns ZERO occurrences in docs/BACKLOG.md control: an unrelated phrase in the same file returns 1, so the search is not blind it lives under item 185 in docs/archive/backlog/BACKLOG-CLOSED.md, which returns 1 the line anchor now resolves to unrelated text THE 19-* SITE IS THE ONE THAT MATTERS, BECAUSE IT IS AN INSTRUCTION RATHER THAN NARRATIVE. It told the reader a drift-pinning test "must therefore bound its check at 231, or it will fail on sound citations". A test built to that would have bounded at a number with nothing behind it and reported confidently on the wrong population. That is this item's own severity argument -- a test plan is the wrong document to carry dead assertions, because its rows are written to be executed. I DELIBERATELY ASSERT NO REPLACEMENT NUMBER. PUBLIC_BACKLOG_FLOOR = 1000 in scripts/hooks/ledger_check.py constrains which numbers may be ALLOCATED, not which are readable, so substituting it would swap one false bound for another. Both sites now say so, and the 19-* note tells whoever writes that test to settle the bound first and record why. WHAT SURVIVES, because it is sound and independent of the false scaffolding: absence of an item from a file you can read is a publishing boundary rather than evidence of completion. Only its evidence was wrong, not the caution itself. Line anchors dropped rather than repointed. The project rule is to cite by item or section heading and never by line number, and this is the worked example of why -- the anchor did not merely rot, it began resolving to unrelated text, which reads as a working reference forever. *** THE ITEM'S ENUMERATION OF NINE IS INCOMPLETE, AND I AM REPORTING THAT RATHER THAN ABSORBING IT. *** The identical false premise appears in THREE further chapters this item does not name -- 10-auth-rbac-and-active-directory.md, 16-security-phi-and-supply-chain.md and 18-interop-migration-and-uat.md -- and 18-* declares itself the OWNER of the plan-wide convention the other four restate. Fixing the source is a different and larger change than correcting two sites, and splitting an item is not a builder's call. Left untouched on purpose; handed to the dispatcher with the measurement. This is the enumeration hazard the standards name: prefer "at least" to a list. Measured, interpreter .venv\Scripts\python.exe in this worktree, -p no:randomly, base a490993b4: test_link_resolution, test_backlog_citation_check, test_backlog_status_check, test_ledger_check: 99 passed docs/BACKLOG.md is NOT in this diff -- the ledger is not a builder's to edit No code changed; this is a documentation-record correction with its Closing-act satisfied by content. Co-Authored-By: Claude Opus 5 --- .../00-strategy-and-governance.md | 22 ++++++++++++------- .../19-execution-phasing-and-sign-off.md | 16 +++++++++----- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/docs/testing/master-test-plan/00-strategy-and-governance.md b/docs/testing/master-test-plan/00-strategy-and-governance.md index aa9144827..b289cdb8e 100644 --- a/docs/testing/master-test-plan/00-strategy-and-governance.md +++ b/docs/testing/master-test-plan/00-strategy-and-governance.md @@ -642,14 +642,20 @@ repo, and two classes of valid citation are deliberately not readable from it. A does not know this will flag sound evidence as broken, and a reviewer who does not know it will read "absent" as "does not exist": -- **BACKLOG items above #231.** The committed [`docs/BACKLOG.md`](../../BACKLOG.md) is a **published - baseline that stops at `## 231.`**; the programme continued past it. The file says so itself at - [`docs/BACKLOG.md:6041`](../../BACKLOG.md) — *"the file you are reading ends at #231, while #242–#246 - and their successors do not appear in it at all … their absence here is a publishing boundary, not - evidence of completion."* Citations above the baseline (e.g. #233, #275, #310) are **sound - evidence**; the resolver treats them as valid and never disclaims them. Where a reader may be - helped, the only permitted annotation is neutral — *"(above the published #231 baseline)"* — used - sparingly. +- **BACKLOG items above #231.** **THE #231 BOUNDARY DESCRIBED HERE NO LONGER EXISTS, AND THE + SUPPORTING QUOTATION IS NOT IN THE FILE IT CITES (BACKLOG #1100).** Measured against the committed + [`docs/BACKLOG.md`](../../BACKLOG.md): **373 item headings, numbered #3 to #1372, of which 320 are + above #231.** The sentence this passage quoted — *"the file you are reading ends at #231 … their + absence here is a publishing boundary, not evidence of completion"* — returns **zero** occurrences + in that file (control: an unrelated phrase in the same file returns one, so the search is not + blind). It now lives under **#185** in + [`docs/archive/backlog/BACKLOG-CLOSED.md`](../../archive/backlog/BACKLOG-CLOSED.md). The former + line anchor resolved to unrelated text and has been dropped; cite by item, never by line number. + **What survives is only the general caution**: absence of an item from a file you can read is a + publishing boundary rather than evidence of completion, so do not read "absent" as "does not + exist". **No replacement NUMBER is asserted here on purpose.** `PUBLIC_BACKLOG_FLOOR = 1000` in + `scripts/hooks/ledger_check.py` governs which numbers may be ALLOCATED, not which are readable, so + substituting it for #231 would swap one false bound for another. - **`docs/security/`, `docs/reviews/`, `docs/marketing/`** are **gitignored post-cutover** (`.gitignore:144-146`) — ~32 files of posture, assessment, risk-register and runbook detail withheld because published in full they are an attacker roadmap. A document such as diff --git a/docs/testing/master-test-plan/19-execution-phasing-and-sign-off.md b/docs/testing/master-test-plan/19-execution-phasing-and-sign-off.md index bb621228a..88e94d93c 100644 --- a/docs/testing/master-test-plan/19-execution-phasing-and-sign-off.md +++ b/docs/testing/master-test-plan/19-execution-phasing-and-sign-off.md @@ -685,11 +685,17 @@ five WIN2025 repetitions, `aad_bind` in ADR 0019 vs `settings.py`, the `SECURITY Two scoping notes on B6, both about not manufacturing false drift: -- A `BACKLOG` citation is drift **only at or below the published #231 baseline**. `docs/BACKLOG.md` in - this repo is a *published baseline* that stops at `## 231.` and says so itself - (`docs/BACKLOG.md:6041`); numbers **above** it are valid evidence from the fuller ledger, not dangling - references. A drift-pinning test must therefore bound its check at #231, or it will fail on sound - citations. +- **THE #231 BOUND THIS NOTE PRESCRIBED IS VOID. DO NOT BUILD A TEST TO IT (BACKLOG #1100).** It read: + a `BACKLOG` citation is drift only at or below a published #231 baseline, because `docs/BACKLOG.md` + stops at `## 231.` and "says so itself". **Both halves are false as measured:** that file carries + **373 item headings, #3 to #1372, with 320 above #231**, and the quoted sentence returns **zero** + occurrences in it — it lives under **#185** in the closed-backlog archive. The line anchor pointed + at unrelated text. **This mattered more here than in a narrative chapter, because it was an + INSTRUCTION**: a drift-pinning test built to it would have bounded at a number with nothing behind + it and reported confidently on the wrong population. **No replacement bound is given here on + purpose** — `PUBLIC_BACKLOG_FLOOR = 1000` (`scripts/hooks/ledger_check.py`) constrains ALLOCATION + rather than readability, so adopting it as the bound is a decision this correction does not make. + Anyone writing that test must settle the bound first and record why. - A document under `docs/security/`, `docs/reviews/` or `docs/marketing/` is **withheld from the public repo**, not missing (`.gitignore:144-146`). A pinning test cannot assert on a file it cannot read, and its unreadability is never itself a B6 item.