I3270 — A blocked issue says which kind of block holds it: a dependency, contention, or a stale record
plan.issues and plan.status classify each blocked issue: open dependency (named), environment or CI contention (a recorded refusal), or a stale planning record (a dependency done in fact but not recorded, from delivery inference).
READY wave 1 · p2 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I3270 will be accepted.
Objective
plan.issues and plan.status classify each blocked issue: open dependency (named), environment or CI contention (a recorded refusal), or a stale planning record (a dependency done in fact but not recorded, from delivery inference).
Why
Each block class has a different remedy, and the share is large: majordomus plan status at v0.29.0 (2026-10-17) reported 159 of 414 issues blocked. The owner's order of 2026-10-17 (the-plan-flows) asks for the class. Sources: chatgpt-majordomus:c259#6.
Current state
plan.rs reports blocked with its dependencies; no class.
Desired state
The class is derived on read, shown on /ui and in plan status.
Scope
- apps/majordomus-cli/src/plan.rs
- apps/majordomus-cli/src/ui/issues.rs
Dependencies
Acceptance criteria
- A fixture with each class reports it
- plan status totals blocked by class
Validation
- majordomus plan validate
- majordomus intent validate
Evidence required
- test_a_block_says_its_kind
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3270.yaml. Read it back with majordomus plan show I3270.