forked from heavy-duty/rig
Retires `state:needs-rebase` in favour of two independent axes: `state:*` (whose ball, exactly one) and `blocker:*` (what is in the way, additive). One rule joins them: `state:needs-human` requires zero blockers. The single-label design projected independent facts — mergeability, check status, review round — onto one totally-ordered value, so one always won and the rest vanished. Every precedence bug this machine has had lived on that ordering. Blockers are a set, so there is no precedence between them to get wrong. `state:bots-reviewing` tightens to mean strictly "a request is live"; a ready PR nobody was asked to review is now `state:addressing` + `blocker:unrequested`. The reconciler strips the retired `state:needs-rebase` on sight via a RETIRED array. Also wires test/labels-reconcile.sh into CI, where it had never run. Fixtures 51 -> 64. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ci.yml | ||
| labels.yml | ||
| release.yml | ||