Skip to content

An issue cannot be completed while a required piece of evidence is missing

Each issue declares evidence_required: tokens naming the proofs its completion depends on. majordomus plan evidence attaches one piece of evidence against one of those tokens, and refuses a token the issue does not declare. majordomus plan done refuses while any token is uncovered. An issue whose completed_at is set but whose evidence is incomplete derives VERIFY, never DONE.

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

Evidence is a command and its result, or an artifact. Narrative is refused. An issue whose completed_at is set but whose evidence is incomplete derives VERIFY, never DONE.

What it means

Each issue declares evidence_required: tokens naming the proofs its completion depends on. majordomus plan evidence attaches one piece of evidence against one of those tokens, and refuses a token the issue does not declare. majordomus plan done refuses while any token is uncovered. An issue whose completed_at is set but whose evidence is incomplete derives VERIFY, never DONE.

How it works

mj_plan_evidence appends the evidence to the issue's own file, with the commit and the timestamp, and refuses without either a --command or an --artifact: narrative is not accepted as evidence. mj_plan_transition checks every declared token before writing completed_at. lib/project.awk recomputes coverage on every read, so removing a piece of evidence moves the issue back to VERIFY without anybody editing a status.

How to see it

majordomus plan done I0001
# majordomus: I0001 has no evidence for: proof (run: majordomus plan evidence I0001 --covers <token> ...)
majordomus plan evidence I0001 --covers proof --type test --command "bash test/run.sh" --result "32 passed"
majordomus plan done I0001
# plan: I0001 DONE

What it does not cover

The tool records the command and what the worker said it produced. It does not rerun the command, and it cannot tell a true result from a typed one. The commit hash stored beside the evidence is what makes a false one checkable afterwards.

Why it exists

Closing a ticket is not evidence that the work happened. The gate exists so that "done" costs a command.

Detail rendered from docs/claims/evidence-gates-done.md.

From the statement to the proof

  1. 1 · the public statement

    An issue cannot be completed while a required piece of evidence is missing

    Made on Planning, Plan.

  2. 2 · the canonical claim

    evidence-gates-donedeclared status: guaranteed in docs/CLAIMS.yaml

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

  3. 3 · the implementation

    lib/plan.sh · majordomus plan

  4. 4 · the test and the scenarios

    Test: test/cases/41_project_status.sh

    Executed in Complete an issue only when its evidence exists.

  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 41_project_status

Where this claim is used

The moments this answers

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