fix: strip the grouped headings from the four drifted fragments #162
No reviewers
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:docs
scope:guards
scope:labels
scope:release-flow
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/ceremony#162
Loading…
Reference in a new issue
No description provided.
Delete branch "build/158-strip-grouped-headings"
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 #158
Ceremony is a flat repo (#112 D3), but four banked fragments drifted grouped — each individually legal to
changelog_fragment_problem, so each passed its own PR's CI, and together they madechangelog.d/mixed-shape:bin/changelog-assemble 0.3.0 --checkrefused onmainwith the grouped/flat error. This PR deletes the###heading line and the single blank line that follows it fromchangelog.d/135.md,137.md,144.md,151.md— two lines removed per file, zero lines added, every bullet byte-identical (#157 D1).No
changelog.d/fragment for this PR (#157 D2): the whole diff is unpublished fragment text, so there is no behavior change to publish.Acceptance criteria
mainbefore this PR,bin/changelog-assemble 0.3.0 --checkfails with the grouped/flat refusal; on this branch it succeeds — verified both sides (refusal reproduced verbatim atf168bbf, then exit 0 after the strip).###line and one blank line, adds nothing (4 files changed, 8 deletions(-)).--checkoutput lists eleven entries, no###heading among them.changelog.d/fragment of its own.bash test/run.shgreen locally (18 files, 0 failed);changelog-armedgreen in this PR's CI (step inside theself-guardsjob, run 30106770398).Worklog
mainatf168bbfbin/changelog-assemble 0.3.0 --checkpasses: one flat section, eleven entriesbash test/run.sh— 18 passed, 0 failedchangelog-armed(and full CI) green — all checks pass onfb6f16a⟲ resuming from
fb6f16ae0c🔎 reviewing head
fb6f16ae0c🔎 reviewing head
fb6f16ae0c🔎 reviewing head
fb6f16ae0cVerdict: approve
Head
fb6f16ae0ce8b0b6d9d2b3eb3260bc881e080023against #158.Acceptance criteria
main,bin/changelog-assemble 0.3.0 --checkrefuses grouped/flat; on this head it succeedsorigin/main(f168bbf): refusal names151.mdgrouped vs154.mdflat, exit 1. At this head: exit 0, one flat section, eleven entries, no###heading in any fragment.###line + one blank line, adds nothinggit diff origin/main...HEAD:changelog.d/{135,137,144,151}.mdonly —4 files changed, 8 deletions(-), zero additions.grep '^### 'overchangelog.d/*.mdis empty.changelog.d/fragment of its own (#157 D2)bash test/run.shgreen;changelog-armedgreen in CItest,self-guards(carrieschangelog-armed), release-exercise, action-exercise, docs-sync-exercise all SUCCESS.Spec / constraints
Matches #158 and #157 D1/D2 exactly: mechanical strip only, no re-litigation of shape, no behavior change that would require a fragment.
Closes #158present. Panel request is live; I am on-panel (author isclaude-bot-andresmgsl).Checks this box ran
fb6f16abin/changelog-assemble 0.3.0 --check(main fail + head pass)bash test/run.shNo blockers. Approve.
The implementation matches #158 exactly: the diff touches only the four named fragments and removes only each grouped heading plus its following blank line (8 deletions, no additions), leaving every entry intact.
Verified:
f168bbf,bash bin/changelog-assemble 0.3.0 --checkexits 1 with the expected grouped/flat refusal.fb6f16a, the same command exits 0 and emits all eleven entries as one flat section with no grouped headings.bash test/run.shpasses all 18 test files with 0 failures. Theyq-dependentparse_labeler_configcases were skipped becauseyqis unavailable in this box; they are unrelated to this prose-only diff.Approve — head
fb6f16ae0ce8b0b6d9d2b3eb3260bc881e080023, reviewed against #158's spec.Verified in a detached worktree at the head:
f168bbf,bin/changelog-assemble 0.3.0 --checkrefuses withfragment 'changelog.d/151.md' is grouped but fragment 'changelog.d/154.md' is not — a repo is one shape or the other. At the PR head the same command exits 0 and lists 11 entries, none carrying a###heading.changelog.d/135.md,137.md,144.md,151.md, each hunk deleting one###heading line and the one blank line after it. Every bullet byte-identical. Nochangelog.d/fragment added for this PR (#157 D2 honored).grep -l '^### ' changelog.d/*.mdfinds nothing; the tree holds 11 fragments plusREADME.md(the "eleven" in the criteria checks out —README.mdis not a fragment).test,self-guardsincl.changelog-armed,action-exercise,docs-sync-exercise,release-exerciseall pass).Environment gaps I could not close locally, per the verdict doctrine: this box has no
nodeand nojq, sobash test/run.shin my worktree reported 7 of 18 test files red — every failure traced tonode is required for version-source: package-jsonorjq: command not found, none touching code paths this diff changes (the diff is fragment text only). I relied on the PR's green CI for those suites rather than counting the local reds against the change.Nothing blocking. The
0.3.0cut (#160) is unblocked by this repair; the standing guard against re-drift is #159, out of scope here.Round summary — handing off
What shipped — one commit,
fb6f16a: stripped the grouped###heading line and the single blank line after it from the four drifted fragments (changelog.d/135.md,137.md,144.md,151.md). 4 files changed, 8 deletions, 0 additions; every bullet byte-identical (#157 D1). This restoreschangelog.d/to the flat shape #112 D3 mandates. Deliberately nochangelog.d/fragment for this PR itself (#157 D2): the whole diff is unpublished fragment text, so there is no behavior change to publish.Rounds — one. The panel (codex, grok, kimi) reviewed head
fb6f16aand all three approved with no changes requested; no addressing rounds, so the approved head is the only head this PR has ever had.Verified
bin/changelog-assemble 0.3.0 --checkreproduced onmainatf168bbf, and the same command exits 0 on this head — checked by me and independently re-run by all three reviewers.--checklists eleven flat entries, no###heading among them.bash test/run.shlocally: 18 files, 0 failed.fb6f16a, including thechangelog-armedstep inself-guards(run 30106770398) andlabels / reconcile.Post-merge residue — none owed by this PR. On merge,
main'schangelog.d/is uniformly flat again andchangelog-assemble 0.3.0 --checkpasses onmain, unblocking the 0.3.0 assembly; #158 closes automatically via the PR link. No follow-up work is queued behind this.Round converged: whole panel approved the current head, zero blockers. Handing off — requesting @danmt's review and setting
state:needs-human. The remaining move is the human's merge.