Skip to content

I2902 — A status names the moves it admits, and every surface reads that

Give plan::Transition the rule of which status admits which move (READY start, ACTIVE verify, VERIFY done), used by plan::transition's refusal, ui/idd.rs and cockpit::plan::moves, with a test that they agree.

READY wave 0 · p2 · implementation profile · runs alone

Part of idd-reads-at-a-glance — The intent workspace reads at a glance and leads everywhere it names.

Ready. Every dependency is done, so majordomus plan start I2902 will be accepted.

Objective

Give plan::Transition the rule of which status admits which move (READY start, ACTIVE verify, VERIFY done), used by plan::transition's refusal, ui/idd.rs and cockpit::plan::moves, with a test that they agree.

Why

idd.rs maps READY, ACTIVE and VERIFY to moves on its own (idd.rs:383, :470); plan.rs owns the moves but keeps the admitting status only inside its refusals.

Current state

The status-to-move map is written in three places.

Desired state

One function answers it; the UI, the Cockpit and the refusal read it.

Scope

  • apps/majordomus-cli/src/plan.rs
  • apps/majordomus-cli/src/ui/idd.rs
  • apps/majordomus-cli/src/cockpit/plan.rs
  • .ai/repo/project
  • docs
  • site

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • The workspace offers exactly the move plan.transition would accept for each status
  • No status string is compared in ui/idd.rs

Validation

  • majordomus plan validate
  • cargo test --lib plan::
  • cargo test --test ui_idd_moves

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/I2902.yaml. Read it back with majordomus plan show I2902.

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