Skip to content
Cockpit0.29.0
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

I1949

CI evidence is recorded clean, and its report is the tracked ledger's verdict

Where it stands

devtask.issue
Readiness
complete completion is recorded and every required evidence token is present
Status
DONE
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
Behind it in all
13
Evidence
2 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1949

majordomus plan verify I1949

majordomus plan done I1949

What it is

Objective
Fix PR #577 on its own branch so that the CI evidence job derives its report from the tracked ledger before it records the run's executions, every job that runs tests measures its tree where it ran, and the site publishes current only under ADR 0087's interim rule (decision 1).
Why
As PR #577 is written, the collector records first and derives the report after, so the transcript the site publishes as current is a verdict over the run's own rows from a checkout nobody measured. ADR 0087 amends ADR 0068 on exactly those sentences.
Now
Measured 2026-10-08 on master 4090b2b8ae. PR 577 and this slice (PR 645) are on master: the evidence job derives its report before recording and each producing job measures its tree (case 357 passes). Still open: every rust lane measures its tree dirty, because an untracked timings.tsv at the repository root is not among the excluded paths (.github/workflows/validate.yml excludes only apps/majordomus-cli/timings.tsv and apps/majordomus-cli/dist), so the evidence manifest of run 37744906831 carries working_tree dirty for the crate producer and the site cannot publish current from it.
Wanted
The evidence job derives its report over the tracked ledger as committed at the run's commit before it records; the suite and rust jobs measure their trees, excluding only their named outputs, and upload the measurement; scripts/pages evidence publishes current only when the run is of the published commit, every job that ran tests measured a clean tree, the report was derived on a clean checkout and nothing was absent, refused or failed, and otherwise stale or unknown, naming each reason.
Done when
unknown: the record declares no `completion`
Risk
Stacked on PR #577, which conflicts with master and so gets no pull-request run of its own: this slice's acceptance is its own pull-request run. A run of #577 after it merges master is a gate of #577's landing, not of this slice.

Acceptance

  • The evidence job derives its report before it records, over the tracked ledger as committed at the run's commit
  • Every job that ran tests measures its tree, excluding only its named outputs, and the manifest carries each measurement
  • scripts/pages evidence publishes current only under ADR 0087's interim rule, and otherwise stale or unknown naming each reason
  • Case 357 asserts both halves, and this slice's own pull-request run shows crate executions and clean measured trees
Validation
bash test/run.sh 357_ci_records_evidence
Evidence required
report_derived_before_recordingproducer_trees_measured
Evidence present
report_derived_before_recordingproducer_trees_measured

Scope

Touches
.github/workflows/validate.ymlscripts/ci/evidence-collectscripts/pagessite/templates/evidence.htmldocs/EVIDENCE.mddocs/CLAIMS.yamldocs/claims/evidence-recorded-in-ci.mdtest/cases/357_ci_records_evidence.sh
Not
The behavioural-tests environment, the summary step and the ci-metrics-suite upload of the suite jobMoving suite.tsv out of the workspace, where the suite budget of PR #627 reads itAny row of docs/CLAIMS.yaml other than the claim and note of evidence-recorded-in-cidocs/EVIDENCE.md outside its Recorded in CI sectionThe leading comment and the article line of site/templates/evidence.html
Depends on
none
Priority
p1
Profile
implementation
Parallel safe
true
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-10-14T07:59:56Z
Started
2026-10-14T07:59:48Z
Verified
unknown: the record declares no `verified_at`
Completed
2026-10-14T07:59:56Z

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

Nothing is wrong with these records.