box/test
dan-claude-bot 94d830cdb3 fix(changelog-monotonic): report containment vacuous when the base IS HEAD
Dropping the pull_request gate made merge_base == HEAD a routine path rather
than a degradation, and the success line did not follow. On every push to main
the step printed "all N release heading(s) at the merge base are still present"
— a containment claim on the one event where deletion is undetectable, since
the comparison is the file against itself.

That is the dishonesty this PR fixed in the skip messages, surviving in the
success message. The line now has two forms: containment vacuous, naming
uniqueness as the half that ran, or the existing containment wording when a
real base exists. Both pinned.

Also scopes the ci.yml negative pin to the monotonic step's own block. As a
file-wide grep it forbade any FUTURE step from being pull_request-gated and
would have failed citing #143 when one legitimately was.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 20:35:01 +00:00
..
cli.sh fix: run setup-host over a migrated flat tree, and name what the migration left 2026-07-20 14:18:21 +00:00
labels-reconcile.sh fix(labels): a missing state label must skip the EDIT, not the whole PR 2026-07-20 18:09:07 +00:00
release.sh fix(changelog-monotonic): report containment vacuous when the base IS HEAD 2026-07-20 20:35:01 +00:00