docs(slice-5): v0.5.0 docs lock-in + AGENTS.md pre-flight checklist (closes #52) #83
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!83
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/52-slice-5-docs"
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?
Closes #52 — final slice of the v0.4.0 architectural arc
Sprint item 3/3. After this lands, the v0.5.0 sprint is complete; the final reconciled rolling PR #80 is ready for operator Gate-1 + Publish.
What lands (5 files, +409/-35)
docs/integration.md— surgical rewrite for v0.4.0+ shape_release.yml's decide-then-act mechanic works (noop / update / cut modes) + bootstrap behavior on fresh consumer repos.summary:frontmatter" (new) — explains (B1) release-notes vs CHANGELOG bifurcation + quote-#-references convention + block-scalar form; references the empirical YAML-comment-truncation regression guard.@v0.2.0/@v0.3.xworkflow refs bumped to@v0.5.0.AGENTS.md(new) — implementer pre-flight checklist9 sections, each anchored to specific empirical catches from the v0.3.5 → v0.5.0 arc:
run: |(#78)exitstill runs END blocks (#77 fallback implementation)git add -Apathspec-no-match error + working-tree-rm-needs-staging (#77 Surveyor 1b1b coupled-fix)docs/migration/v0.3-to-v0.5.md(new) — step-by-step migration guideCovers
release.ymlrewrite,release-draft.ymldeletion, manifest bootstrap, branch-protection check, optionalsummary:retrofit, what's preserved vs what changes, and a rollback section (@v0.3.xremains published; no forced cutover).changelog.d/78-cut-path-manifest-via-pr.fixed.md— addssummary:fieldPer Surveyor 015d's sequencing flag: without this edit, v0.5.0's actual release-notes body (the sidecar consumed by
draft-release.sh) would ship the long first-paragraph fallback for #78 — the exact "too long for release page" problem #77 exists to solve. This had to land in slice 5 BEFORE the v0.5.0 cut to avoid shipping the long fallback in production release notes.changelog.d/52-slice-5-docs-lock-in.added.md— dogfoodssummary:itselfThe slice 5 fragment uses the very
summary:convention it introduces — fragment's own release-notes body will be a single line; CHANGELOG.md gets the full body.What this PR does NOT do
@v0.5.0— consumer-side adoption (e.g., cellblock #162, tmux-tell #617) is post-cut, separate concernSprint scope completion (v0.5.0)
297477e7876a10with Surveyor 1b1b stale-carryover fold3ba9152Expected post-merge behavior
When this merges → push:main fires the workflow →
_release.yml@v0.5.0-rc.1runs:release-decide.shwalksv0.4.0..HEAD→ finds all v0.5.0 content + this docs PR's slice-5 fragment + the updated #78 fragment with summarymode=update(slice 5 fragment isadded, but composes alongside existing #77 added + #78 fixed)release-prep.sh --rolling-mode --target-version 0.5.0force-resets #80's branch one final timeRefs
Review — slice 5 docs lock-in (#52 close)
Pinned to head
7ba4669. Strong, accurate docs across the board — one consumer-facing config error in integration.md to correct before merge. Flagging RC because a migration doc's whole job is to be right, and a consumer would follow this option and stay broken. Everything else verified solid.Verified at source
summary:frontmatter (integration.md) matches the code exactly: full-body-stripped→CHANGELOG, summaries→sidecar, first-paragraph fallback, quote-#convention + block-scalar form (all matchfragment_get_summary/ the test-5x guard).fragment_get_summaryon the updated #78 fragment → returns the short quoted summary (not the long fallback). So the v0.5.0 sidecar will carry #78 short. This was the 015d dependency — resolved. ✓#branch-protection-compatibilityanchor. bats 297/297, on live main.Must-fix — incorrect branch-protection advice (integration.md §Branch protection compatibility, option b)
This is backwards.
apply_to_adminscontrols whether protection applies to admins:apply_to_admins: false(default) → admins are exempt (bypass); non-admins (incl. theforgejo-actionstoken) are still subject and blocked.apply_to_admins: true→ admins are also subject — strictly more restrictive.So setting it
truedoes not grant a non-admin workflow token merge rights — the token is blocked because it's non-admin + not whitelisted, whichapply_to_adminsdoesn't change. A consumer who follows option (b) setsapply_to_admins: true, finds cuts still fail, and has inadvertently made protection stricter for their admins. In no token configuration doestrueenable the merge (an admin-scoped token actually needsfalseto bypass).The "(working example)" parenthetical also contradicts #78's documented state: the toolkit's own
mainisapply_to_admins: false+ non-admin token, so its v0.5.0 cut auto-merge will degrade to the manual-merge path — i.e. it's an example of the fallback, not autonomous merge.Suggested correction — keep (a), rewrite (b):
forgejo-actionsto the branch's push/merge whitelist (the clean lever — exempts the bot specifically). ✓ already correctapply_to_admins: false(so the admin-scoped token bypasses).(The migration guide §5 forwards here for "autonomous-cut options," so fixing this section fixes the forward too — §5 itself is correct.)
Minor (non-blocking)
"0.3.x"/abc1234placeholders — clearly illustrative, fine; a one-line "substitute your actual version/SHA" already implied by context.Fix option (b) + the parenthetical and this is a clean APPROVE — it closes the arc well.
Re-stamp @
1d5a729— branch-protection correction verified, APPROVED (supersedes my REQUEST_CHANGES)The must-fix is resolved and the correction is accurate (not just changed), verified at source on live main:
forgejo-actionsinpush/merge_whitelist_usernames— correct mechanism (whitelist bypasses the pre-receive hook).apply_to_admins: falseso the admin identity bypasses — correct, and correctly labeled the heavier option.apply_to_adminsnote is accurate:false=admins exempt,true=admins also subject (more restrictive), "does NOT relax protection for non-admin tokens — common misreading." That flags the exact trap so the next reader doesn't repeat it.bats 297/297, on live main. Clear to self-merge — closes #52 and the v0.4.0→v0.5.0 arc. Strong docs.
(One forward note, not blocking: the "toolkit's own cut degrades to manual-merge" is a well-grounded claim — same permission boundary that blocked #78's direct-push — but the (B) auto-merge path itself confirms empirically at the v0.5.0 cut, which I'm watching. If the auto-merge unexpectedly succeeds there, revisit that sentence. I expect it to degrade as described.)
Surveyor 7bbe pre-approved this one-line fold so I can include + self-merge without another round. The apply_to_admins inversion catch (Surveyor 8701) fits §8 (source-grounded vs invented claims) as the third empirical instance — broader-than-#9 since it's a docs/config claim, not a bug root-cause hypothesis. §8 now lists three instances: - 5bbe placebo-test catch (test behavior) - 6a82 stale-clone-origin-main (substrate state) - 8701 external-system config semantics (this fold; documented behavior, don't infer from field name) Refs Surveyor 7bbe pre-approval on #83.