I1900 — An intent is a typed record whose stage and satisfaction are derived
Deliver slice 1 of the intent-lifecycle milestone: the intent kind and schema, the read-only capabilities intent.list, intent.record, intent.validate and intent.preflight on every surface, and the intent-check gate.
READY wave 0 · p1 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I1900 will be accepted.
Objective
Deliver slice 1 of the intent-lifecycle milestone: the intent kind and schema, the read-only capabilities intent.list, intent.record, intent.validate and intent.preflight on every surface, and the intent-check gate.
Why
Nothing above a milestone recorded what must become true, so no command could say which outcome a change serves or whether finished milestones achieved it (ADR 0070).
Current state
No intent kind, capability or gate exists on master.
Desired state
An intent's stage follows the plan and its satisfaction follows recorded evidence, answered identically on the command line, HTTP and MCP, and an invalid intent model fails a gate.
Scope
- apps/majordomus-cli/src/intent.rs
- apps/majordomus-cli/src/capability/builtin/intents.rs
- share/schemas/majordomus/intent
- .ai/repo/project/intents
- .ai/repo/ci/gates.yaml
Dependencies
None. This issue is a root of the graph.
What waits on this
- I1901BLOCKED An issue names the intent criterion it serves, and coverage is derived
- I1903BLOCKED The work realising an intent is joined across episodes, providers and handovers
Acceptance criteria
- The stage of an intent follows the derived milestone status and satisfaction follows only recorded evidence
- The command line, HTTP and MCP answer the same derived intents
- intent validate exits 10 naming the finding on an invalid model, and the intent-check gate runs it
Validation
- majordomus intent validate
- cargo test --test intent
- bash test/run.sh 367_an_intent_is_satisfied_only_by_evidence
Evidence required
- intent_stage_is_derived
- intent_surfaces_agree
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/I1900.yaml. Read it back with majordomus plan show I1900.