I1953 — Evidence answers by subject, on every surface
Add the evidence.subject, evidence.coverage, evidence.runs and evidence.run capabilities, so that the CLI, HTTP and MCP answer by subject from the one authority and read supplementary records only through the monotone rule (ADR 0087 decision 3).
BLOCKED wave 2 · p1 · implementation profile · runs alone
Blocked. This issue cannot start until I1951 is done. The status is derived from that, not declared.
Objective
Add the evidence.subject, evidence.coverage, evidence.runs and evidence.run capabilities, so that the CLI, HTTP and MCP answer by subject from the one authority and read supplementary records only through the monotone rule (ADR 0087 decision 3).
Why
Only claims and rules can be asked about today. A feature, a command, a capability, an MCP tool and a use case have no answer, although each is what a reader of the site or the Cockpit is looking at.
Current state
evidence show, evidence claim and evidence proves answer by claim; rules answers by rule; nothing answers for any other subject, and nothing lists run or coverage records.
Desired state
majordomus evidence subject <key>, evidence coverage, evidence runs and evidence run <id> exist as declared capabilities served over the CLI, HTTP and MCP tool calls; an unknown subject exits 13; supplementary records are listed beside the verdict and applied only through the monotone rule.
Scope
- apps/majordomus-cli/src/capability/builtin/evidence.rs
- apps/majordomus-cli/src/commands/evidence.rs
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/src/evidence/supplementary.rs
- apps/majordomus-cli/src/evidence/mod.rs
- apps/majordomus-cli/src/evidence/subject.rs
- test/cases
- docs/EVIDENCE.md
- docs/HOW_IT_WORKS.md
- docs/README.md
- docs/CLAIMS.yaml
- docs/claims
- .ai/repo/features/evidence.md
Out of scope
- MCP resource templates per subject
- A version bump
Dependencies
- I1952DONE Evidence subjects are derived once, in Rust
- I1951READY Evidence runs are typed, and a recording carries what its run measured
What waits on this
- I1955BLOCKED The evidence publication is an allow-listed projection
- I1956BLOCKED The Cockpit shows evidence by subject
- I1962BLOCKED The evidence gates read subject findings and widgets
Acceptance criteria
- Every subject kind of the index answers through evidence subject with the same verdict over the CLI, HTTP and MCP
- An unknown subject is refused with exit 13
- A supplementary record only ever weakens a verdict, and each weakening names its record
- Coverage is shown as current only for its own commit with a clean tree
Validation
- bash test/run.sh 508_evidence_answers_by_subject
- bash test/run.sh 509_supplementary_records_only_weaken
- majordomus generate --check
Evidence required
- answers_by_subject
- supplementary_only_weakens
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/I1953.yaml. Read it back with majordomus plan show I1953.