I2004 — plan start refuses an issue whose binding is refused, in both engines
Where the policy requires binding, have the start transition ask the binding of the issue before it stamps: plan::check in the Rust engine through the intent engine, and the shell engine through the built executable, with the same refusal text; where the policy does not require it, neither engine changes.
BLOCKED wave 1 · p1 · implementation profile · runs alone
Part of intent-bound-work — A task is bound to the intent it serves.
Blocked. This issue cannot start until I2000, milestone:intent-bound-work are done. The status is derived from that, not declared.
Objective
Where the policy requires binding, have the start transition ask the binding of the issue before it stamps: plan::check in the Rust engine through the intent engine, and the shell engine through the built executable, with the same refusal text; where the policy does not require it, neither engine changes.
Why
A task is one way work begins and a plan transition is the other; plan start moves an issue to ACTIVE on its status alone, so work on an intent whose plan was never critiqued begins through it unrefused and is found by intent validate afterwards.
Current state
plan::check refuses a start only when the issue is not READY; the shell engine does the same, and cases 133 and 582 hold the two equal.
Desired state
Under required, plan start on an issue whose binding is refused is refused in both engines with the binding's refusal, over the command line, HTTP and MCP; a maintenance issue and a bound issue start as before.
Scope
- apps/majordomus-cli/src/plan.rs
- apps/majordomus-cli/src/capability/builtin/plan.rs
- lib/plan.sh
- lib/intent_binding.sh
- test/cases/962_plan_start_asks_the_binding_in_both_engines.sh
- test/cases/133_plan_transition.sh
Dependencies
Acceptance criteria
- Under required, plan start on an issue serving an uncritiqued intent is refused by the Rust engine and by the shell engine with the same message
- The plan.transition capability refuses the same start over HTTP and MCP
- With the policy key absent, cases 133 and 582 pass unchanged
Validation
- bash test/run.sh 962_plan_start_asks_the_binding_in_both_engines
- bash test/run.sh 133_plan_transition
- bash test/run.sh 582_the_done_guard_holds_in_both_engines
Evidence required
- plan_start_refuses_a_refused_binding_in_both_engines
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/I2004.yaml. Read it back with majordomus plan show I2004.