Skip to content

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.

Searches the titles and descriptions of every page this site publishes.