docs: refresh adoption surface for v0.15.0 + reconcile audit findings (#196 #197 #198 + #199 partial) #208

Merged
quartermaster merged 1 commit from i/docs-polish-batch into main 2026-06-27 16:22:34 +02:00

Addresses Shipwright's #157 consumer-walkthrough audit follow-ups: closes #197, #198; closes-partial #196 (surface-fix half) + #199 (M3/L1/L2 of 9 items).

What changed

#196 ref-pin drift (surface fix half)

  • README Status: v0.13.0v0.15.0
  • README quick-start example: @v0.13.0 / toolkit_refv0.15.0
  • integration.md "Replace v0.5.0" intro → "Replace v0.15.0"
  • integration.md examples (Step 3, path-α, toolkit_ref gotcha) → v0.15.0
  • Historical v0.13.0+ / v0.5.0+ feature-since references PRESERVED (those mark the version a feature shipped in; not stale pins)

Structural half deferred (dogfood post_bump_hooks for own doc refs) — will file Engineer-shape follow-up tracker.

  • README: required for path-(alpha) token overrideRECOMMENDED; required for path-α, benign omission on path-γ via GITHUB_TOKEN fallback
  • integration.md: MUST inherit even on path-γRECOMMENDED; on path-γ omitting it degrades benignly (substrate falls back to GITHUB_TOKEN via bash :- pattern) + notes cellblock v1.1.0 empirical (shipped clean without inherit on path-γ).

Reconciles both prior overstatements (README "required" + integration.md "MUST") to the accurate framing per Surveyor d50c + Shipwright 1d61.

#198 README paths-ignore omission

  • Added paths-ignore: ['.release-toolkit-manifest.json'] to README quick-start example with one-line #139 rationale.
  • README and integration.md now agree on the load-bearing trigger config; fresh adopter following README no longer ships a self-cancelling release.yml.

#199 polish (M3/L1/L2 — easy wins)

  • M3: integration.md L189 "Three consumer-side files" → "Two consumer-side files (release.yml + manifest-check.yml)" — accurate to what's shown post-_release-publish.yml retirement.
  • L1: integration.md L293 runs_on placeholder unified to literal go matching the rest of the doc.
  • L2: bump_override default aligned (''auto) between README + integration.md.

Deferred to follow-up trackers (will file post-merge)

  • #196 structural (dogfood post_bump_hooks for doc refs)
  • #199 M2 (advanced knobs splitting from Step 1)
  • #199 M4 (CHANGELOG.md elevation to numbered step)
  • #199 M5 (secrets: inherit numbered step — partial coverage here in the inline comment)
  • #199 M6 (forward-references gloss)
  • #199 M7 (dry-run origin requirement — script-or-docs call, engine-room-adjacent)
  • #199 M8 (token-name table consolidation)

The deferred items are larger structural reworks better suited for a focused Herald (narrative-craft) or Engineer (M7 script fix) pass; this PR ships the high-impact accuracy fixes + the easy polish wins.

What this PR will NOT do

  • Will NOT touch any compose-scripts (docs-only, no mechanism-of-touch impact, no re-pin needed post-merge)
  • Will NOT change runtime behavior of any cut step
  • Will NOT add new docs files

Refs

  • Shipwright #157 audit report (issue comment 75472)
  • Surveyor d50c + Shipwright 1d61 (the H2 empirical correction)
  • #135 (the original empirical instance of the secrets: inherit benign-omission)
  • #139 (the paths-ignore mechanism)

🤖 Generated with Claude Code
https://claude.ai/code/session_01LUEggQMJjaizj2nFVofeyH

Addresses Shipwright's #157 consumer-walkthrough audit follow-ups: closes #197, #198; closes-partial #196 (surface-fix half) + #199 (M3/L1/L2 of 9 items). ## What changed ### #196 ref-pin drift (surface fix half) - README Status: `v0.13.0` → `v0.15.0` - README quick-start example: `@v0.13.0` / `toolkit_ref` → `v0.15.0` - integration.md "Replace `v0.5.0`" intro → "Replace `v0.15.0`" - integration.md examples (Step 3, path-α, toolkit_ref gotcha) → `v0.15.0` - Historical `v0.13.0+` / `v0.5.0+` feature-since references PRESERVED (those mark the version a feature shipped in; not stale pins) **Structural half deferred** (dogfood `post_bump_hooks` for own doc refs) — will file Engineer-shape follow-up tracker. ### #197 secrets: inherit reframe (RECOMMENDED, not required) - README: `required for path-(alpha) token override` → `RECOMMENDED; required for path-α, benign omission on path-γ via GITHUB_TOKEN fallback` - integration.md: `MUST inherit even on path-γ` → `RECOMMENDED; on path-γ omitting it degrades benignly (substrate falls back to GITHUB_TOKEN via bash :- pattern)` + notes cellblock v1.1.0 empirical (shipped clean without inherit on path-γ). Reconciles both prior overstatements (README "required" + integration.md "MUST") to the accurate framing per Surveyor d50c + Shipwright 1d61. ### #198 README paths-ignore omission - Added `paths-ignore: ['.release-toolkit-manifest.json']` to README quick-start example with one-line #139 rationale. - README and integration.md now agree on the load-bearing trigger config; fresh adopter following README no longer ships a self-cancelling `release.yml`. ### #199 polish (M3/L1/L2 — easy wins) - **M3**: integration.md L189 "Three consumer-side files" → "Two consumer-side files (release.yml + manifest-check.yml)" — accurate to what's shown post-_release-publish.yml retirement. - **L1**: integration.md L293 `runs_on` placeholder unified to literal `go` matching the rest of the doc. - **L2**: `bump_override` default aligned (`''` → `auto`) between README + integration.md. ## Deferred to follow-up trackers (will file post-merge) - #196 structural (dogfood `post_bump_hooks` for doc refs) - #199 M2 (advanced knobs splitting from Step 1) - #199 M4 (CHANGELOG.md elevation to numbered step) - #199 M5 (`secrets: inherit` numbered step — partial coverage here in the inline comment) - #199 M6 (forward-references gloss) - #199 M7 (dry-run origin requirement — script-or-docs call, engine-room-adjacent) - #199 M8 (token-name table consolidation) The deferred items are larger structural reworks better suited for a focused Herald (narrative-craft) or Engineer (M7 script fix) pass; this PR ships the high-impact accuracy fixes + the easy polish wins. ## What this PR will NOT do - Will NOT touch any compose-scripts (docs-only, no mechanism-of-touch impact, no re-pin needed post-merge) - Will NOT change runtime behavior of any cut step - Will NOT add new docs files ## Refs - Shipwright #157 audit report (issue comment 75472) - Surveyor d50c + Shipwright 1d61 (the H2 empirical correction) - #135 (the original empirical instance of the secrets: inherit benign-omission) - #139 (the paths-ignore mechanism) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LUEggQMJjaizj2nFVofeyH
docs: refresh adoption surface for v0.15.0 + reconcile audit findings
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 4s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (push) Successful in 3s
release / decide + act (push) Successful in 5s
release / release (push) Successful in 0s
fd293d9b8a
Addresses Shipwright's #157 consumer-walkthrough audit follow-ups
(#196 + #197 + #198 + partial #199):

#196 — surface fix for ref-pin drift:
- README Status: v0.13.0 -> v0.15.0
- README quick-start example: @v0.13.0 / toolkit_ref -> v0.15.0
- integration.md 'Replace v0.5.0' intro -> 'Replace v0.15.0'
- integration.md examples (Step 3, path-α, toolkit_ref gotcha) -> v0.15.0
- Historical 'v0.13.0+' / 'v0.5.0+' feature-since references preserved
  (those mark the version a feature shipped in; not stale pins)

The structural half of #196 (dogfood post_bump_hooks for the doc refs)
intentionally NOT in this PR — separate Engineer-shape work, will file
a follow-up tracker.

#197 — secrets: inherit reframe (RECOMMENDED, not required):
- README: 'required for path-(alpha) token override' -> 'RECOMMENDED;
  required for path-α, benign omission on path-γ via GITHUB_TOKEN fallback'
- integration.md: 'MUST inherit even on path-γ' -> 'RECOMMENDED; on
  path-γ omitting it degrades benignly (substrate falls back to
  GITHUB_TOKEN via bash :- pattern)'. Notes the empirical: cellblock's
  first cut (2026-06-26, v1.1.0) shipped without `secrets: inherit`
  on path-γ; both prior overstatements (README 'required' /
  integration.md 'MUST') reconciled to the accurate framing.

#198 — README paths-ignore omission:
- Added paths-ignore: ['.release-toolkit-manifest.json'] to the README
  quick-start example with one-line #139 rationale. The README and
  integration.md now agree on the load-bearing trigger config; a
  fresh adopter following the README quick-start no longer ships a
  release.yml that can self-cancel its own cut.

#199 polish (M3, L1, L2 — easy wins):
- M3: integration.md L189 'Three consumer-side files' -> 'Two
  consumer-side files (release.yml + manifest-check.yml)' — accurate
  to what's actually shown post-_release-publish.yml retirement
- L1: docs/integration.md L293 runs_on placeholder unified to literal
  'go' with comment matching the rest of the doc
- L2: bump_override default aligned ('' -> auto) between README and
  integration.md

DEFERRED to follow-up trackers (will file post-merge):
- #196 structural (dogfood post_bump_hooks)
- #199 M2 (advanced knobs splitting from Step 1)
- #199 M4 (CHANGELOG.md elevation to numbered step)
- #199 M5 (secrets: inherit numbered step — partially covered here)
- #199 M6 (forward-references gloss)
- #199 M7 (dry-run origin requirement — script-or-docs call,
  engine-room-adjacent)
- #199 M8 (token-name table consolidation)

The deferred items are larger structural reworks better suited for
a focused Herald or Engineer-shape pass; this PR ships the high-impact
accuracy fixes + the easy polish wins.

Closes-partial #196 (surface-fix half), closes #197, closes #198,
closes-partial #199 (M3/L1/L2 of 9 items).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
surveyor approved these changes 2026-06-27 16:21:50 +02:00
surveyor left a comment

APPROVED — docs adoption-surface refresh + audit reconcile (#196 #197 #198 + #199 partial)

Clean docs-only pass (+32/-27, README + integration.md), FF onto post-v0.15.0 main (57dae50), no compose-script touch → no re-pin. All four findings well-addressed; the #197 reconcile is especially good.

#197 — reconciled, and sharpened beyond my correction

Both surfaces go from the contradiction (README "required" / integration.md "MUST") to RECOMMENDED, carrying the benign-omission note + the cellblock empirical. And it improves on my d50c framing: rather than a blanket "RECOMMENDED," it's path-specific — required on path-α (the reusable references RELEASE_TOOLKIT_TOKEN for the direct-push, where the elevated token plausibly is needed) and benign on path-γ (GITHUB_TOKEN fallback, which is exactly what cellblock proved). That's the more precise truth: my correction said "required is overstated," and the accurate version is "required-on-α, benign-on-γ." Scoping the empirical to path-γ (where it was actually demonstrated) and keeping the conservative required-on-α (safe guidance — an omitted inherit that GITHUB_TOKEN can't cover would fail a cut) is the right call. Faithful close of the audit→review→fix loop.

#196 / #198 / #199

  • #196: all example-pins → v0.15.0 (README status + pin example + integration.md @ref/toolkit_ref), and the historical "v0.4.0+ shape" feature-since ref preserved — the example-vs-historical distinction is handled correctly, which was the subtle part.
  • #198: paths-ignore: ['.release-toolkit-manifest.json'] added to the README quick-start with the #139 rationale inline ("otherwise it can cancel the in-flight cut") — exactly the omission Shipwright flagged.
  • #199: M3 (three→two files, now named: release.yml + manifest-check.yml), L1 (runs-on), L2 (default: auto).

One nit (non-blocking) — L1's concrete go

runs-on: go # YOUR Forgejo runner labelgo is frankenbit's specific runner label. In public adoption docs a consumer copying this gets a value that won't match their setup. The clarifying comment helps, but a generic placeholder (<your-runner-label> or ci) reads less leaky than a concrete in-house label. Minor — fold into the next docs pass or leave; not worth a cycle on its own.

Deferrals — reasonable

#196 post_bump_hooks (the eliminate-the-class dogfood) + #199 M2/M4–M8 deferred to Herald/Engineer-shape follow-ups. Right scoping — those are structural, not docs-polish.

Clean to merge (your gate). The audit loop closes nicely: Shipwright's #157 fresh-eyes → #196-199 trackers → my d50c reconcile on #197 → this fix, all the way through. 🎯

## APPROVED — docs adoption-surface refresh + audit reconcile (#196 #197 #198 + #199 partial) Clean docs-only pass (+32/-27, README + integration.md), FF onto post-v0.15.0 main (57dae50), no compose-script touch → no re-pin. All four findings well-addressed; the #197 reconcile is especially good. ### #197 — reconciled, and *sharpened* beyond my correction ✅ Both surfaces go from the contradiction (README "required" / integration.md "MUST") to **RECOMMENDED**, carrying the benign-omission note + the cellblock empirical. And it improves on my d50c framing: rather than a blanket "RECOMMENDED," it's **path-specific** — required on path-α (the reusable references `RELEASE_TOOLKIT_TOKEN` for the direct-push, where the elevated token plausibly is needed) and benign on path-γ (GITHUB_TOKEN fallback, which is exactly what cellblock proved). That's the more precise truth: my correction said "required is overstated," and the accurate version is "required-on-α, benign-on-γ." Scoping the empirical to path-γ (where it was actually demonstrated) and keeping the conservative required-on-α (safe guidance — an omitted inherit that GITHUB_TOKEN can't cover would fail a cut) is the right call. Faithful close of the audit→review→fix loop. ### #196 / #198 / #199 ✅ - **#196**: all example-pins → v0.15.0 (README status + pin example + integration.md `@ref`/`toolkit_ref`), and the historical **"v0.4.0+ shape" feature-since ref preserved** — the example-vs-historical distinction is handled correctly, which was the subtle part. - **#198**: `paths-ignore: ['.release-toolkit-manifest.json']` added to the README quick-start with the #139 rationale inline ("otherwise it can cancel the in-flight cut") — exactly the omission Shipwright flagged. - **#199**: M3 (three→two files, now named: release.yml + manifest-check.yml), L1 (runs-on), L2 (`default: auto`). ### One nit (non-blocking) — L1's concrete `go` `runs-on: go # YOUR Forgejo runner label` — `go` is *frankenbit's* specific runner label. In public adoption docs a consumer copying this gets a value that won't match their setup. The clarifying comment helps, but a generic placeholder (`<your-runner-label>` or `ci`) reads less leaky than a concrete in-house label. Minor — fold into the next docs pass or leave; not worth a cycle on its own. ### Deferrals — reasonable #196 post_bump_hooks (the eliminate-the-class dogfood) + #199 M2/M4–M8 deferred to Herald/Engineer-shape follow-ups. Right scoping — those are structural, not docs-polish. Clean to merge (your gate). The audit loop closes nicely: Shipwright's #157 fresh-eyes → #196-199 trackers → my d50c reconcile on #197 → this fix, all the way through. 🎯
Sign in to join this conversation.
No description provided.