Skip to content

A recording made with --ledger local writes only the ignored local ledger, changes no tracked file and moves no verdict

majordomus evidence record --ledger local merges its executions into

declared statusdeclared status: guaranteed Declared deterministic and blocking, implemented, and naming the behavioural test that is to prove it. Whether a recorded run supports it is the evidence verdict, shown beside it.

recorded evidencerecorded evidence: not run Declared guaranteed, and not supported by a recorded run: the test is named, and no passing run of the current inputs is recorded. how evidence is recorded

The local ledger lives under .ai/local/evidence/, which the repository ignores; the tracked ledger stays the only authority a verdict is derived from.

What it means

majordomus evidence record --ledger local merges its executions into .ai/local/evidence/ledger.json, which the repository ignores, instead of the tracked ledger. It changes no tracked file, so the checkout stays as it was, and it moves no verdict: every claim reads what the tracked ledger says, exactly as before the recording. The default stays the tracked ledger.

How it works

ledger::LedgerTarget in apps/majordomus-cli/src/evidence/ledger.rs names the two ledgers, and Ledger::load_from and Ledger::save_to read and write the one a recording names; a bad local ledger is refused in its own name. Verdicts are derived from the tracked ledger only, so nothing written to the local one reaches them.

How to see it

majordomus evidence stamp --producer suite --report suite.tsv --out suite.provenance.json
majordomus evidence record --suite suite.tsv --provenance suite.provenance.json --ledger local
git status --porcelain
bash test/run.sh 505_a_recording_carries_what_its_run_measured

What it does not cover

No surface reads the local ledger yet: a person's own runs are kept, and nothing shows them.

Why it exists

A person who runs the suite locally to see where they stand should not have to change a tracked file, and an unreviewed local run must not move a verdict the repository states. ADR 0087 (proposed), decision 1: a verdict is derived from the tracked ledger only.

Detail rendered from docs/claims/evidence-local-recording-stays-local.md.

From the statement to the proof

  1. 1 · the public statement

    A recording made with --ledger local writes only the ignored local ledger, changes no tracked file and moves no verdict

    Made on Evidence.

  2. 2 · the canonical claim

    evidence-local-recording-stays-localdeclared status: guaranteed in docs/CLAIMS.yaml

    Defined in read it on this site · docs/EVIDENCE.md

  3. 3 · the implementation

    apps/majordomus-cli/src/evidence/ledger.rs

  4. 4 · the test and the scenarios

    Test: test/cases/505_a_recording_carries_what_its_run_measured.sh

  5. 5 · the recorded runs

    recorded evidence: not run how evidence is recorded

Verify it yourself

The test runs in a disposable temporary repository and asserts the behaviour, not a string in the source.

from a clone of the repository
bash test/run.sh 505_a_recording_carries_what_its_run_measured

Related claims same implementation

Searches the titles and descriptions of every page this site publishes.