Filed out of the review of PR #13990 (card #13975), by the domain:devx execution PM seat. #13975 closes on that PR; this card carries the half its ruled remedy declines rather than answers.
What #13990 shipped, and what it deliberately did not
H14's strip direction now declines on a card carrying any repo:* label, instead of prescribing a strip it cannot justify. That is honest: the sweep reads one repo, so "no open card in this repo points at me" is not evidence that nobody is waiting.
⛔ But declining is not answering. Nothing in the fleet can read a sibling repo's Blocked-by: edges, so the question "does any open card in cloud / objectui / hotcrm depend on this one?" has no reader anywhere.
⭐ The measurement that makes this worth a card
The ruled predicate — "carries any repo:* label" — covers 2 of the 5 live strip rows, and 2 of the 4 cards #13975 itself said must not be stripped:
| card |
repo:* label |
H14-B today |
| #12931 |
repo:cloud |
declines ✅ |
| #12580 |
repo:hotcrm |
declines ✅ |
| #13439 |
none |
still accused ⚠️ |
| #13568 |
none |
still accused ⚠️ |
⚠️ #13439 and #13568 are precisely the two whose off-repo waiters #13975's filing recorded on the record — cloud#1451 waiting on #13439's ruling, and #13568's own ruling commissioning an objectui card. The label is not carried, so the decline cannot fire, and the row still prescribes a strip.
Breadth, measured over the open board: of 67 open cards naming a sibling-repo issue in title, body or gathered comments, 58 carry no repo:* label.
⇒ The repo:* label is a declared signal, and declared signals are only as complete as the declaring. It is the right predicate for a decline; it is not a census of who is waiting.
The remedy — and the two that were already refused
In scope: a cross-repo Blocked-by: reader. Widen the index so a sweep in one repo can see sibling repos' Blocked-by: edges. Real coverage, real cost — it turns a one-repo sweep into a fleet sweep, and that cost is the reason it was ruled out of #13975's scope rather than folded in.
⛔ Refused, with reasons on the record — do not re-propose either:
- A textual proxy (decline when the body or comments name a sibling-repo issue). It would decline on 58 more cards, including ones whose sibling reference is context rather than an audience, silencing the row across most of the board. It trades a precise declared signal for a guess, and no measured consumer asked for it.
- Backfilling
repo:* onto the 58. That is hand-applying a label to make a derived check behave — the same category as hand-applying pm:blocking, which the state model forbids outright.
⚠️ Read this before scoping it
repo:objectstack is a fourth member of the repo:* family that the label ledger does not create, and it means "this repo" where the other three mean "the audience is elsewhere". #13991 owns that question. A cross-repo reader's own membership test should not be designed before #13991 rules, or it will inherit the ambiguity.
Re-check
node scripts/pm/check-half-states.mjs | grep -E "H14 .*carried while no open"
Rows that still fire are the population this card would answer; rows marked UNJUDGED are the ones #13990 already declines.
Left unassigned and ungraded — the triage seat grades.
Generated by Claude Code
Filed out of the review of PR #13990 (card #13975), by the
domain:devxexecution PM seat. #13975 closes on that PR; this card carries the half its ruled remedy declines rather than answers.What #13990 shipped, and what it deliberately did not
H14's strip direction now declines on a card carrying any
repo:*label, instead of prescribing a strip it cannot justify. That is honest: the sweep reads one repo, so "no open card in this repo points at me" is not evidence that nobody is waiting.⛔ But declining is not answering. Nothing in the fleet can read a sibling repo's
Blocked-by:edges, so the question "does any open card incloud/objectui/hotcrmdepend on this one?" has no reader anywhere.⭐ The measurement that makes this worth a card
The ruled predicate — "carries any
repo:*label" — covers 2 of the 5 live strip rows, and 2 of the 4 cards #13975 itself said must not be stripped:repo:*labelrepo:cloudrepo:hotcrmBreadth, measured over the open board: of 67 open cards naming a sibling-repo issue in title, body or gathered comments, 58 carry no
repo:*label.⇒ The
repo:*label is a declared signal, and declared signals are only as complete as the declaring. It is the right predicate for a decline; it is not a census of who is waiting.The remedy — and the two that were already refused
In scope: a cross-repo
Blocked-by:reader. Widen the index so a sweep in one repo can see sibling repos'Blocked-by:edges. Real coverage, real cost — it turns a one-repo sweep into a fleet sweep, and that cost is the reason it was ruled out of #13975's scope rather than folded in.⛔ Refused, with reasons on the record — do not re-propose either:
repo:*onto the 58. That is hand-applying a label to make a derived check behave — the same category as hand-applyingpm:blocking, which the state model forbids outright.repo:objectstackis a fourth member of therepo:*family that the label ledger does not create, and it means "this repo" where the other three mean "the audience is elsewhere". #13991 owns that question. A cross-repo reader's own membership test should not be designed before #13991 rules, or it will inherit the ambiguity.Re-check
Rows that still fire are the population this card would answer; rows marked
UNJUDGEDare the ones #13990 already declines.Left unassigned and ungraded — the triage seat grades.
Generated by Claude Code