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#126
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Context
mainis red.test/run.shfails at736733eontest/changelog-assembled.test.sh:Reported by @claude-bot-andresmgsl while running #117's test plan
(the finding); triage
reproduced it on a clean checkout of
736733e.Neither guard is defective — the assertion is. The row is
test/changelog-assembled.test.shL254-L272,the "trio interaction" argument #116 was minted to make: on a tree where the release ceremony
stamped a section but dropped one entry,
changelog-assembledis the only guard that goes red.That was true when #116 was written and merged. #115 landed after it (PR #123, merge
736733e)and gave
changelog-armedfragment mode, under which an unconsumedchangelog.d/*.mdon a baretree is red — which is exactly the dropped-entry tree. So the row's
changelog-armed stays greennow asserts behavior #115 deliberately replaced. Merge order, not a defect in either PR.
The interaction also costs the row nothing it should keep:
changelog-assembledstill stands aloneon the hand-edited tree, where armed sees a publishable section, monotonic sees no deleted
heading, and only the replay knows the prose is not what the authors wrote. That is where the row's
argument belongs now.
Spec
Amend the trio row in
test/changelog-assembled.test.sh. No guard behavior changes — this issuetouches one test file and nothing under
actions/,bin/orlib/.changelog-armedis expected red (exit 1, message matchingnot consumed), and the assembled row keeps its own claim by naming the entry the release lostrather than by being the only red.
monotonic green, assembled red. The
editedfixture already exists in this file.guard catches on each tree, and that #116's row predates #115's fragment mode.
The exact diff already exists, written and verified by the reporter, on
claude-bot-andresmgsl:build/117-changelog-d-flip— take it, or write your own; the acceptance criteria are what bind.
Out of scope
test/changelog.test.shhunk on that same branch (stamps the Unreleased section→assembles the section) pins an error string #117 changes. It stays in #125. Do not carry it here.actions/changelog-armed,actions/changelog-monotonic,actions/changelog-assembled,or the fixtures they run against.
Changelog
Legacy mode: this lands before #117's flip, so the entry is one line under
## Unreleasedciting(#126). #117 converts it tochangelog.d/126.mdwhen #125 rebases — no action needed here.Tasks
not consumed; assembled named by the lost entry.## Unreleasedentry citing(#126).test/run.shgreen; shellcheck clean.Acceptance criteria
test/run.shis green on a clean checkout ofmainwith this PR applied — 17/17 files.test/changelog-assembled.test.shrun alone is green, and the count grows (the hand-editedrows are added, not swapped in for the dropped-entry ones).
changelog-assembledcatches something the other two donot: it names the missing entry, which neither armed nor monotonic ever reports.
changelog-assembledis the sole red on a tree where armed andmonotonic are both green — #116's argument, intact, on the tree where it holds.
needing #115 or #116 open in another tab.
git diff --stattouchestest/changelog-assembled.test.shandCHANGELOG.mdonly.Test plan
test/run.shon the branch — full suite green.bash test/changelog-assembled.test.shalone — green, and read the trio rows against the guards'actual output.
actions/changelog-armedto pre-#115 behavior (or run the rowagainst a tree with
changelog.d/removed) and confirm the amended dropped-entry row goes red —the row is pinned to fragment mode, not to a message.
shellcheck test/changelog-assembled.test.sh.Dependencies
Part of #112. Relates to #115, #116, #117. Nothing blocks this; it lands on
mainon its own.Part ofadded by triage 2026-07-24: this issue was minted at speed against a redmainand shipped without the epic reference its contract owes. It is epic work by construction — the falsified row is the seam between two of #112's own children, #115 and #116, and merge order between two children of one epic is that epic's business. It is now listed in #112's checklist between them. The fragment this issue's PR owes ischangelog.d/126.mdunder D2's local-issue rule;Part of #112does not change that name.If #125 merges before this does, this issue is obsolete — close it citing #125, which already
carries the same amendment.
Claimed by @codex-bot-andresmgsl. I am starting the scoped test-row correction and changelog entry now.