ceremony/test
cndgrr bdcc211a0b the sweep flags what the window and collision rules forbid
Two advisory flags on the issue-flow sweep, the mechanical backstop for
#288's collision rule and #292's window rule. Both are prose today, and
both failed silently on the same morning: #284 was minted `ready` into a
file another issue held claimed with a PR in flight, and six `ready`
non-members raced an emptying gate. #262 measured the pattern — the same
class of rule, once in a guard, produced zero misses.

Comments only (D1): no label write, no state change, no new label. The
sweep never guesses intent; it states the board fact and triage resolves.

The collision key is the title's em-dash prefix NORMALIZED, because the
2026-08-04 miss spelled one deliverable two ways — `actions/issueflow-reconcile`
against bare `issueflow-reconcile` — so exact-prefix matching would have
missed the pair it was written for. One leading path segment comes off,
then every extension; a `+`-joined title matches on any segment.

The flag asks for a CHAIN, not a fan (#288 D3): within one key each issue
names the newest open carrier below it, so the declaration it asks for
releases exactly one successor per close.

A standing window is a release issue whose gate still holds an OPEN member.
The board read IS the open set, so membership decides openness with no
extra call, and an all-closed gate is the emptied gate the release's own
blocked -> ready promotion answers — which is why a `ready` release leaves
the flag dormant instead of flagging the whole board.

Dedup is the declaration echo's, extracted into state_marker /
state_echo_needed and scoped per family (D4): the marker is keyed to the
offending state's value and compared against that family's last word on
the thread, so a state that changes always speaks.

Fixtures replay the 2026-08-04 morning board whole and the post-ruling
board beside it: the first draws exactly four collision flags and six
window flags and writes not one label; the second draws none.

Closes #293.
2026-08-04 18:15:00 +00:00
..
fixtures Merge pull request #29 from codex-bot-andresmgsl/build/4-changelog-section 2026-07-22 20:12:01 +01:00
attention.test.sh test: cover attention target diagnostics 2026-08-03 19:53:25 +00:00
changelog-armed.test.sh test(changelog): the cite rule's own cases, both callers asserted 2026-08-04 12:11:09 +00:00
changelog-assemble.test.sh test(changelog): the cite rule's own cases, both callers asserted 2026-08-04 12:11:09 +00:00
changelog-assembled.test.sh test(changelog): every fragment fixture carries a terminal cite 2026-08-04 12:08:54 +00:00
changelog-monotonic.test.sh test: changelog-monotonic contract suite — constructed git histories 2026-07-22 21:11:46 +00:00
changelog.test.sh fix(changelog): one fragment, one diagnosis, wherever the long entry sits 2026-08-04 12:38:13 +00:00
decide.test.sh feat: lib/decide.sh — the merge door's decision, pure and exhaustively tested 2026-07-22 18:59:29 +00:00
docs-sync.test.sh test(guards): the manifest guard drives the whole test plan 2026-08-04 10:16:27 +00:00
drill-recorded.test.sh feat: actions/drill-recorded — a release carries its evidence 2026-07-22 21:28:06 +00:00
facts.test.sh test: root-commit fixtures — (none) base, D2 loud-death pin, e2e chain 2026-07-24 12:16:04 +00:00
harness.sh ci: scaffold test and lint workspace 2026-07-22 16:56:25 +00:00
issueflow-reconcile.test.sh the sweep flags what the window and collision rules forbid 2026-08-04 18:15:00 +00:00
labels-reconcile.test.sh test(labels-reconcile): fixture roster replaces the live panel by slot 2026-08-04 17:04:09 +00:00
labels-scope.test.sh fix: the labeler map learns lib/attention.sh and the surfaces it never knew (#302) 2026-08-04 17:28:37 +00:00
labels-triggers.test.sh labels: detach the reconcile sweep from PR-triggered runs (#209) 2026-08-01 16:20:00 +00:00
labels.test.sh fix: refuse a bracket login that is not [A-Za-z0-9-] — round 1, codex 2026-08-02 14:13:25 +00:00
marker-check.test.sh test: document marker fixture incidents 2026-08-04 09:57:51 +00:00
refs-not-closing.test.sh fix: satisfy refs guard shellcheck 2026-08-03 21:00:40 +00:00
release-chain.test.sh test: root-commit fixtures — (none) base, D2 loud-death pin, e2e chain 2026-07-24 12:16:04 +00:00
release-path.test.sh test: resolve sibling release dependencies 2026-08-03 22:12:49 +00:00
ruling.test.sh fix: select the best-shaped escalation, not the earliest 2026-08-03 10:55:45 +00:00
run.sh ci: scaffold test and lint workspace 2026-07-22 16:56:25 +00:00
runner-isolated.test.sh test(guards): runner-isolated fixture matrix — 12 spec rows plus the block-sequence cases (#58) 2026-07-23 12:03:55 +00:00
self-ref.test.sh feat: the reusable release workflow — both doors, one implementation 2026-07-22 19:55:39 +00:00
vendored.test.sh fix(consumers): the manifest is readable at 0.1.0, not 0.5.0 2026-08-04 10:29:44 +00:00
version.test.sh feat: lib/version.sh — one version abstraction, two backends 2026-07-22 18:19:50 +00:00