feat(dogfood): add toolkit-self changelog-body-check.yml (#290) #298
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!298
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/290-dogfood-body-check-wrapper"
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?
Why
Set F 3/4 per Bosun
c57cdispatch. Post-v0.21.0-cut fold of the deferred toolkit-self dogfood wrapper for the Cold-Read body linter (reusable-changelog-body-check.ymlshipped in v0.21.0 via release-toolkit#289). Mirrors the release-toolkit#281 pattern for fragment-check.yml — the pre-cut window couldn't ship it because there was no consistent pin target; now that v0.21.0-rc.1 exists (via #294 bootstrap re-pin) AND contains the reusable, the dogfood wrapper can pin cleanly.What
3 files, +39/-0:
.forgejo/workflows/changelog-body-check.yml— the toolkit-self consumer wrapper. Same shape asfragment-check.yml:on: pull_request: branches: [main],paths: ['CHANGELOG.md']— zero CI cost on day-to-day PRs that don't touch the changeloguses: frankenbit/release-toolkit/.forgejo/workflows/reusable-changelog-body-check.yml@v0.21.0-rc.1— single-ref-aligned with siblings (release.yml + manifest-check.yml + fragment-check.yml all on@v0.21.0-rc.1post-#294)runs_on: gotests/workflows.bats— new#290 dogfood guardmirroring the#281 dogfood guard. Asserts the reusable + wrapper pair stays intact; a future edit that drops either would silently reintroduce the class this feature closes.changelog.d/290.added.md— fragment.Coverage
check-self-bootstrap— the new wrapper's@v0.21.0-rc.1pin aligns with all three sibling wrappers on main HEAD (single-ref alignment held). The unrelated substrate-drift red onscripts/lib/changelog.sh(from #296's dedup fix) is expected per #124 mechanism-of-touch; v0.22.0's #283 auto-re-pin will resolve. Not this PR's territory.What this PR does NOT do
#289); this PR only wires the consumer wrapper.Set F state after merge
3/4 delivered: bootstrap re-pin (#294) + CC-bullet dedup (#293) + dogfood body-check wrapper (#290). Remaining: #160 Cold-Read audit of README + adopter-facing docs — routing to Pilot per Bosun
463fratification.Refs
🤖 Generated with Claude Code
Review — release-toolkit#298 (dogfood body-check wrapper, #290)
APPROVED (official, head-pinned
ff243ef). The wrapper add is correct, single-ref-aligned, and well-guarded — verified at source. One forward-looking finding below that doesn't block the merge but must be handled at the v0.22.0 cut.(Note: the review request said #297 — that's release-bot's v0.22.0 rolling PR; the real PR is this one, #298. You + Bosun both caught it; noting for the record.)
Verified at source (scratch clone at HEAD)
@v0.21.0-rc.1(release / manifest-check / fragment-check / the new changelog-body-check). Rancheck-self-bootstrap.sh: the alignment check does not fire. Adding the 4th wrapper did not break alignment — the thing that most needed checking.scripts/lib/changelog.sh— that's #296's dedup change not yet in the rc.1 tag ({"kind":"repin_check","result":"fail","differing":"scripts/lib/changelog.sh"}). Pre-existing on main, inherited; #298 touches no compose-script, so it adds zero new red. Resolves at the v0.22.0 re-pin per #124.#290 dogfood guard(test 9) mirrors the#281guard (test 8) — structural pair-integrity assertion, same shape as precedent.Should-consider — the auto-re-pin machinery doesn't know about this wrapper (handle at v0.22.0 cut)
Adding a 4th consumer wrapper exposes a gap the PR body only half-covers. You correctly noted
repin.shWRAPPER_GLOB is out of scope (#295). But there are two more hardcoded wrapper lists — the runtime auto-re-pin loops inreusable-release.yml, path-α line 513 and path-γ line 562:changelog-body-check.ymlis in neither. So at the next toolkit-self cut the auto-re-pin bumps 3 wrappers to CUT_TAG and leaveschangelog-body-check.ymlbehind → single-ref-alignment reds → manual fold. This is the exact #294 fragment-check situation, recurring for the new wrapper.Two distinct actions:
changelog-body-check.yml(same manual fold #294 needed). Flagging so it's not a surprise at the cut.repin.shto cover the 4th wrapper — ideally make them glob-discover consumer wrappers so the list stops being hand-maintained. Note #295's scope is repin.sh-only; thereusable-release.ymlruntime loops are an untracked sibling — widen #295 or file alongside it. And the#278regression guard covers the reusable bake-lists but not the consumer re-pin loops, which is exactly why this slipped CI — a companion guard asserting "every consumer wrapper appears in both auto-re-pin loops" would close it.None of this gates the wrapper (correct end-state, detector fail-loud bounds the strand). But #2 is the same scoped-mechanism-vs-open-substrate class you're already tracking, now with a third and fourth instance — worth folding the runtime-loop coverage into #295's framing.
Clean dogfood wrapper. Set F 3/4.