I1901 — An issue names the intent criterion it serves, and coverage is derived
Add `serves` to the issue record and derive, in intent_plan::coverage, the coverage of every intent criterion and the origin of every issue, reported by intent validate.
BLOCKED wave 1 · p1 · implementation profile · parallel safe
Part of intent-planning — The plan of an intent is held to it before execution.
Blocked. This issue cannot start until I1900, milestone:intent-planning are done. The status is derived from that, not declared.
Objective
Add `serves` to the issue record and derive, in intent_plan::coverage, the coverage of every intent criterion and the origin of every issue, reported by intent validate.
Why
An intent relates to milestones and evidence but no criterion relates to the work meant to make it true, so an uncovered criterion is found only at verification.
Current state
Issues carry no link to an intent criterion.
Desired state
intent validate refuses an uncovered criterion, a purposeless issue under an intent, and a dangling or out-of-milestone link, and warns on weak coverage, duplicate work and a milestone that contributes nothing.
Scope
- apps/majordomus-cli/src/intent_plan.rs
- apps/majordomus-cli/src/plan.rs
- share/schemas/majordomus/issue
- apps/majordomus-cli/tests/intent_plan.rs
Dependencies
What waits on this
Acceptance criteria
- An intent criterion no live issue serves fails intent validate as criterion_uncovered
- An issue under an intent's milestone that serves nothing fails as issue_without_purpose
- An issue under no intent's milestone reports origin maintenance and no finding
Validation
- cargo test --lib intent_plan
- cargo test --test intent_plan
Evidence required
- coverage_refuses_an_uncovered_criterion
- every_issue_has_an_origin
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/I1901.yaml. Read it back with majordomus plan show I1901.