The reconciler's rule was right and blind: the caller never listened on review_requested/review_request_removed, so the one event that falsifies (or restores) blocker:unrequested could not clear it, and a quiet repo wore the red flag until the advisory cron (#137's timeline: 93 seconds, cleared only by an unrelated PR's push). - self-labels.yml + the CONSUMERS.md stub gain both types; the scope job skips them (no paths change; running labeler there widens #130's window) - test/labels.test.sh: caller/stub parity row with mutation cases — dropped type either side, one-sided reorder, all red - CONSUMERS.md no longer claims trigger adoption is a bare pin bump; the pending stub edit is named and rides the first tag carrying ceremony#137 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 137.md | ||
| README.md | ||
changelog.d/ — the next release's section, one fragment per issue
Machine-assembled by bin/changelog-assemble (#112): every PR that changes
behavior writes one file here — <issue>.md, the exact prose that will be
published, nothing else — and the release PR folds them all into the next
## X.Y.Z — DATE section of CHANGELOG.md, consuming them. Distinct
filenames never conflict, which is this directory's whole reason to exist.
This README is the marker that keeps the directory tracked when it holds no
fragments (#112 D1) — changelog-armed refuses a tree without it; do not
delete it.