I3255 — A command criterion is met only by a recorded passing run of exactly that command at the presented revision
Revive I2222 and I2223 from origin/chore/the-owner-packs-are-planned (ec37317fe7c, 2026-10-10, never landed): a criterion with evidence command reads current from a ledger execution receipt of exactly its ref, passing, whose inputs did not change since; stale, failing or not_run otherwise; never current on an unexecuted, deleted, forged or wrong-target receipt.
READY wave 0 · p1 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I3255 will be accepted.
Objective
Revive I2222 and I2223 from origin/chore/the-owner-packs-are-planned (ec37317fe7c, 2026-10-10, never landed): a criterion with evidence command reads current from a ledger execution receipt of exactly its ref, passing, whose inputs did not change since; stale, failing or not_run otherwise; never current on an unexecuted, deleted, forged or wrong-target receipt.
Why
On master intent.rs maps every command criterion to IntentEvidenceState::NotDerivable (intent.rs ~1137), so intent-lifecycle's own criterion model-is-gated and any intent with a command criterion can never be satisfied (observed 2026-10-17 and on master 707a04c). Sources: chatgpt-majordomus:c196#6, chatgpt-majordomus:c288#8.
Current state
intent.rs: `command` and `deployment` arms return NotDerivable; test and claim are judged.
Desired state
Command criteria are judged from the same receipts finish and the evidence ledger read; no new store.
Scope
- apps/majordomus-cli/src/intent.rs
- apps/majordomus-cli/src/evidence
- apps/majordomus-cli/tests/intent.rs
- docs/EVIDENCE.md
Dependencies
None. This issue is a root of the graph.
What waits on this
- I3256BLOCKED A deployment criterion is met only by a recorded observation of that deployment serving a build that contains the criterion's newest change
- I3259BLOCKED Where the policy says completed means complete, finish refuses completed while a criterion the task serves is unmet, and writes no intent state
- I3260BLOCKED One intent is carried in a disposable repository from a sentence through a failing criterion to a satisfied verdict, across two providers and a handover
- I3276BLOCKED The time from an intent's proposal to its verified satisfaction is derived from the records, with the interventions on the way
Acceptance criteria
- A passing receipt of the exact command at the presented revision reads current
- A receipt of a different command, a failing run, or a run before a change to its inputs reads not current with the reason
- intent-lifecycle#model-is-gated stops reading not_derivable
- A command criterion whose ref is `majordomus intent explain <its own intent>` never reads current: it is a placeholder for a planned proof and reads not_derivable naming it, because intent explain exits 0 whatever it finds
Validation
- majordomus plan validate
- majordomus intent validate
- cargo test --test intent
Evidence required
- test_a_command_criterion_is_judged
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/I3255.yaml. Read it back with majordomus plan show I3255.