Intent workspace
From what the work is for to the move that starts it.
One intent and everything that serves it: its milestones, their issues and what blocks them, the waves the dependencies allow and the graph of what waits for what.
- Intents5intents.list /intents
- Milestones41plan.roadmap /milestones
- Roadmap nowM002plan.roadmap /now
- Plan's next issueI0702plan.next /issue/id
Intents
What the work is for: pick one to see what serves it.
A link that names no intent opens the first one intents.list reports executing, then verifying, then planned, then declared, in that order.
intents.list278 msAPI/api/v1/intentsCLImajordomus intent listMCPmajordomus_intentstechnical view
Intent
What the work is for, what it holds the work to, and whether the evidence says it is met.
intent-lifecycle
Every change can be traced to the intent it serves, and an intent reads satisfied only when evidence says so
plannedunknown3 of 4 criteria metClose
A worker or reviewer can ask, of any piece of work, which declared intent it serves and get an answer derived from the repository's own records, and can ask whether that intent is satisfied and get an answer derived from recorded evidence rather than from a merged pull request or a finished milestone.
What it holds the work to
- No intent status is stored and nothing transitions an intent; the plan remains the only lifecycle of work
- Every intent capability is read-only on every surface but intents.propose, which writes only a new record and never a stage (ADR 0144)
- An intent whose milestones or evidence do not resolve is refused by a gate, never silently read as planned
Milestones that serve it
intent-lifecycleplanned
Issues that serve it
When it is satisfied
| Criterion | Evidence | State | Met | Reproduce |
|---|---|---|---|---|
| stage-is-derivedThe stage of an intent follows the milestones' derived status and satisfaction follows only the recorded evidence | test | current | met | cargo test --test intent |
| surfaces-agreeThe command line, HTTP and MCP answer the same derived intents, and an invalid model exits non-zero naming the finding | test | current | met | bash test/run.sh 367_an_intent_is_satisfied_only_by_evidence |
| model-is-gatedThe intent-check gate runs intent validate on a change to the project model or the intent engine | command | not_derivable | unmet | majordomus intent validate |
| lineage-survives-providersThe work realising an intent is joined across episodes, providers and handovers with each link's provenance, and an intent whose work is all closed while its evidence says no is refused naming the criterion | test | current | met | bash test/run.sh 388_an_intent_is_realised_across_providers_and_held_to_reality |
intents.list278 msAPI/api/v1/intentsCLImajordomus intent listMCPmajordomus_intentstechnical view
plan.issues0 msAPI/api/v1/plan/issuesMCPmajordomus_plan_issuestechnical view
Milestones
The milestones this intent names, in the roadmap's order; issues done is a count, not the milestone's acceptance.
| Milestone | State | Issues done | Waits for |
|---|---|---|---|
| intent-lifecycleWork is traceable to the intent it serves, and an intent is satisfied only by evidence | planned | 0 of 2 | nothing |
plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view
Issues
Every issue of its milestones or naming it, by wave; a move opens the issue's page, where plan.transition makes it and refuses one the plan does not allow.
| Issue | Milestone | Status | Wave | Priority | Blocked by | Move |
|---|---|---|---|---|---|---|
| I1900An intent is a typed record whose stage and satisfaction are derived | intent-lifecycle | ready | 0 | p1 | nothing | start |
| I1903The work realising an intent is joined across episodes, providers and handovers | intent-lifecycle | blocked | 1 | p1 | none |
plan.issues0 msAPI/api/v1/plan/issuesMCPmajordomus_plan_issuestechnical view
plan.waves107 msAPI/api/v1/plan/wavesMCPmajordomus_plan_wavestechnical view
plan.next0 msAPI/api/v1/plan/nextMCPmajordomus_plan_nexttechnical view
Waves
An issue enters a wave once every dependency has left it; sharing a wave is necessary to run together, not sufficient.
Shared scope: these may not run at the same time
I1900shares share/schemas/majordomus/intent with I1980; they may not run concurrentlyI1900shares apps/majordomus-cli/src/intent.rs with I1999; they may not run concurrentlyI1900shares .ai/repo/ci/gates.yaml with I2662; they may not run concurrentlyI1900shares .ai/repo/ci/gates.yaml with I2716; they may not run concurrentlyI1900shares apps/majordomus-cli/src/capability/builtin/intents.rs with I2720; they may not run concurrentlyI1900shares share/schemas/majordomus/intent with I2742; they may not run concurrently
plan.waves107 msAPI/api/v1/plan/wavesMCPmajordomus_plan_wavestechnical view
Dependencies
What waits for what, as the plan records it; a dependency outside this intent is drawn small.
plan.issues0 msAPI/api/v1/plan/issuesMCPmajordomus_plan_issuestechnical view