A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
I1951
Evidence runs are typed, and a recording carries what its run measured
Where it stands
devtask.issue- Readiness
- ready no dependency and no gate holds it; nobody has started it
- Status
- READY
- Can start
- startable
- Milestone
- Milestone status
- ACTIVE
- Wave
1- Waiting on
- none
- Holds back
- Behind it in all
12- Evidence
0of3
Moves
plan.transitionWhat it is
- Objective
- Add the run record, the measured provenance, the coverage record and the crate count rule of ADR 0087 decisions 2, 6 and 12, and feed run records to the one monotone rule, so that a recording states the commit and tree its run measured and only what ran.
- Why
- The recorder stamps the commit and tree at record time rather than what the run measured, a crate binary summary that says ok is read as a pass even when nothing ran, and an evidence record call leaves no record of the run beside the ledger.
- Now
- record.rs stamps HEAD and the recorder's own tree; the crate parser reads ok as a pass without counting and without stripping colour codes; there is no run record, no coverage record, no evidence stamp and no --ledger local.
- Wanted
- evidence stamp measures a run's commit and tree; evidence record --provenance stamps them, refuses a measured commit that is not HEAD, and records T as unknown without a measurement; each call writes an EvidenceRunRecord; coverage is an EvidenceCoverage, current only for its own commit with a clean tree; a crate binary that ran no test or a filtered subset is a skip; --ledger local writes an advisory local ledger, and the default still writes the tracked one.
- Done when
- unknown: the record declares no `completion`
- Risk
- It needs the run reference of PR #577 (with I1949) and the tree state of I1948, and it is the second capability change of the chain, so it starts only after both have landed.
Acceptance
- A report whose measured commit is not HEAD is refused, and one without a measurement is recorded with T unknown
- A crate binary that ran no test or a filtered subset is recorded as a skip, and one with a failed test as a failure, whatever colour codes its output carries
- Each evidence record call writes a run record carrying its commit, its tree, its totals, what was absent and what was dropped
- A clean failing run record caps a proven verdict at stale through the one monotone rule, naming the record
- evidence record with no ledger flag still writes the tracked ledger
- Validation
bash test/run.sh 505_a_recording_carries_what_its_run_measuredbash test/run.sh 506_a_crate_binary_that_ran_nothing_is_not_a_passbash test/run.sh 124_evidencecargo test --workspace --all-features- Evidence required
provenance_measured_by_the_runcrate_count_rulerun_records_typed- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
apps/majordomus-cli/src/git/mod.rsapps/majordomus-cli/src/evidence/provenance.rsapps/majordomus-cli/src/evidence/run.rsapps/majordomus-cli/src/evidence/coverage.rsapps/majordomus-cli/src/evidence/record.rsapps/majordomus-cli/src/evidence/ledger.rsapps/majordomus-cli/src/evidence/mod.rsapps/majordomus-cli/src/evidence/freshness.rsapps/majordomus-cli/src/capability/builtin/evidence.rsapps/majordomus-cli/src/cli.rsapps/majordomus-cli/src/commands/evidence.rsscripts/ci/evidence-collecttest/cases/505_a_recording_carries_what_its_run_measured.shtest/cases/506_a_crate_binary_that_ran_nothing_is_not_a_pass.shdocs/EVIDENCE.mddocs/CLAIMS.yamldocs/claims.ai/repo/features/evidence.md- Not
A second copy of the monotone rule: run records feed the one I1948 writesWiring the runners in CI, which is I1954'sA version bump- Depends on
- Priority
- p1
- Profile
- implementation
- Parallel safe
- false
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-09-26
- Updated
- 2026-09-26
- Started
- unknown: the record declares no `started_at`
- Verified
- unknown: the record declares no `verified_at`
- Completed
- unknown: the record declares no `completed_at`
Synchronisation
- Adapter
scripts/github-sync- Repository
- unknown: the derived plan's header carries no repository
- External issue
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
- State there
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
Findings
| Level | Code | Message | Reproduce |
|---|---|---|---|
| WARN | scope_conflict | shares test/cases/505_a_recording_carries_what_its_run_measured.sh with I1965; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases/505_a_recording_carries_what_its_run_measured.sh with I1985; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases/505_a_recording_carries_what_its_run_measured.sh with I1988; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/capability/builtin/evidence.rs with I2401; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/cli.rs with I2484; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases/505_a_recording_carries_what_its_run_measured.sh with I2700; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/cli.rs with I2701; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/cli.rs with I2702; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases/505_a_recording_carries_what_its_run_measured.sh with I2706; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases/505_a_recording_carries_what_its_run_measured.sh with I2708; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares apps/majordomus-cli/src/capability/builtin/evidence.rs with I2709; they may not run concurrently | majordomus plan validate |