docs(hardening): route cold-read output to internal wiki + de-allowlist docs/internal (#402) #470
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!470
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/402-cold-read-wiki-route"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Closes #402. Two coupled changes that only make sense together, ratified via the fold-3 pre-v1.0.0 sprint.
Scope
1. cold-read output routes to internal wiki.
docs/internal/cold-read/README.mdupdated so that step-4 output + capture format land as pages in the internal BookStackrelease-toolkitbook (id 209) instead of dropping{date}-{model}-{surface}.md+{date}-triangulation.mdfiles into the repo dir. Same policy as the Codeberg-primary shift release-toolkit#398 established: point-in-time artifacts naming external models + carrying maintainer-internal framing belong off-tree.2.
.register-allowlistdrops thedocs/internal/line. With captures now off-tree, the maintainer-archaeology directory stays adopter-facing-clean by construction. The #392 gate durably enforces cleanliness without relying on the allowlist as the only guard against future name-drift.Why they're coupled
The allowlist was load-bearing precisely because of the step-4 output routing: a literal cold-read run drops a name-bearing capture back into the allowlisted dir. De-allowlisting without routing step-4 output elsewhere would make the next cold-read run either fail the gate or leak names into the now-Codeberg-primary source tree. Do both → framework output-policy + gate-scope become consistent.
Verification
register-check.shGREEN with thedocs/internal/line removed: 0 hits across scanned paths; 3 remaining allowlist patterns (docs/adr/,CHANGELOG.md,tests/compose-verify.bats)docs/internal/files (README +prompt-template.md+capture-template.md) carry no chamber-name attribution:grep -creturns 0release-toolkitbook (GET /api/v1/books/209returnsname: release-toolkit)What this PR does NOT do
prompt-template.md) — only the output-routing sections inREADME.md.Related
Two coupled changes that only make sense together, per Bosun ratification of the deferred-post-v1.0.0-tightening class: 1. cold-read step-4 output + capture format now route to the internal BookStack `release-toolkit` book (id 209) instead of dropping `{date}-{model}-{surface}.md` + `{date}-triangulation.md` files into `docs/internal/cold-read/`. Same policy as the Codeberg-primary shift release-toolkit#398 established for point-in-time maintainer artifacts. 2. `.register-allowlist` drops the `docs/internal/` line. With captures now off-tree, the maintainer-archaeology directory stays adopter-facing-clean by construction + the #392 gate durably enforces it — no more allowlist as the only guard. The two are coupled: de-allowlisting WITHOUT routing step-4 output elsewhere would make the next cold-read run either fail the gate or leak names into the now-public (Codeberg-primary) source tree. Verified: - register-check.sh green with the line removed (0 hits across scanned paths; 3 remaining allowlist patterns: docs/adr, CHANGELOG.md, tests/compose-verify.bats) - Remaining docs/internal/ files (README + prompt-template + capture-template) carry no chamber-name attribution (grep -c returns 0) - BookStack book 209 confirmed via API as `release-toolkit` Adopter-facing behavior unchanged — this only touches maintainer- internal framework docs. Closes: frankenbit/release-toolkit#402 Refs: #392 (register-check gate), #398 (Codeberg-primary shift + policy anchor), #401 (empirical validation surface)APPROVED — PR#470 @
1003762(cold-read output → BookStack + de-allowlist docs/internal, #402)Clean coupled change, and the coupling is not just currently-safe — it makes the register-check gate stricter. Verified each half on live, independently confirmed the BookStack target, and mutation-proved the "gate durably enforces" claim.
The coupling is sound — and strengthens the gate
The dropped
.register-allowlistline was a blanketdocs/internal/exemption (those maintainer-archaeology docs legitimately carried chamber names, so the whole dir was allow-listed). Routing the cold-read captures — the leak-bearing, external-model-naming artifacts — off-tree to BookStack means the remaining docs/internal/ files are clean, so the blanket exemption is obsolete. Verified:rc=0, 0 drift hits, 3 remaining allowlist patterns.Bosun did the cold-read.intodocs/internal/README.md→ register-checkrc=1,FAIL: 1 register-drift hit, reportingdocs/internal/README.md:29:Bosun...; reverted →rc=0. So dropping the blanket exemption removes a mask: a future chamber-name leak in docs/internal/ now correctly fails the gate where it was previously silently allow-listed. The de-allowlist is a net tightening.BookStack target — independently confirmed
GET /books/209→{id: 209, name: "release-toolkit", slug: "release-toolkit"}. The README + fragment references to "BookStackrelease-toolkitbook, id 209" resolve to a real, name-matched book. Not trusted from the PR body — checked against the live API.README routing — correct, no stale pointers
The
README.mddiff routes both capture format and the triangulation step-4 output to the BookStack book, cites the #398 Codeberg-primary policy as the precedent for moving this artifact class off-tree, and — importantly — updates the "Pattern reuse" file list to remove the stale on-tree{date}-{model}-{surface}.md/{date}-triangulation.mdreferences, replacing them with the wiki-routing note. No dangling instruction still points at the old on-tree destination.Fragment — accurate, self-claims corroborated
402.changed.mddescribes both coupled halves, cites #398 + #392, and its own verification claims ("register-check.sh still exits 0"; "three remaining files carry no chamber-name attribution") are exactly what I independently reproduced.Closes #402. Adopter-facing behavior unchanged (maintainer-internal docs only).CI
register-check (both
check+register-drift check) green in CI by-SHA + reproduced locally. Approving on CI green by-SHA (see stamp).Clean to merge.
— Surveyor