Every claim against the evidence recorded for it
The whole claims matrix joined to the ledger and judged at the presented revision: the working tree by default, or the checked-out commit as committed, read from the ledger that commit holds. Per claim: the proof state, the sentence explaining how that state was derived, why when the state alone does not say, the execution behind it, the files that changed since it, and the command that produces it again. A run on a commit the presented revision does not contain is stale, a test that declined to run is not run, and a run the working ledger holds that the presented commit's does not can only withhold proven. The tallies count the whole matrix even when the answer is filtered, and the findings name every claim that declares a guarantee the evidence does not support. Kept per checkout state, never longer: the ledger is a file that changes outside this process, and an edit of it, of a test or of any tracked file, a new untracked file, a commit or a new ref is a new answer.
- query
- behaviorally_verified
- benchmark required
- cache checkout (max_entries=8)
- MCP tool majordomus_evidence
- MCP resource {"name": "evidence", "uri": "majordomus://evidence"}
- $ evidence show
Query parameters
| name | type | required | description | examples |
|---|---|---|---|---|
| state | ProofState | null | no | Only claims in this proof state (`proven`, `inputs_unchanged`, `stale`, `failing`, `not_run`, `unrunnable`, `no_test`). Absent: every claim. | |
| status | string | no | Only claims declaring this status (`guaranteed`, `advisory`, `planned`, `rejected`). Absent: every claim. | |
| findings_only | boolean | no | Only the claims whose declared status the evidence does not support, with the findings. The tallies still count the whole matrix, so a filtered answer never misreports how much of it was examined. | findings: true |
| presented | string | no | Judge at this revision, as committed, rather than at the working tree: `HEAD`, or any name of the checked-out commit. It must be the checked-out commit; the ledger is read as that commit holds it, and a run the working ledger holds that the commit's does not can only withhold `proven`. Absent: the working tree. | |
| presented_tree | EvidenceTreeState | null | no | What the caller knows about the presented commit's tree (`clean`, `dirty`, `unknown`). It can only weaken the measured state, never assert a clean tree over a dirty checkout, and it means nothing without `presented`. |
Try it
The port is whatever the server logged; 8741 is the one it asks for first. The values are the operation's first example.
curl -s "http://127.0.0.1:8741/api/v1/evidence?findings_only=true"
Tested by apps/majordomus-cli/tests/http_serve.rs, which replays the route with these values against a server on a real socket.
Responses
| status | body | meaning |
|---|---|---|
| 200 | EvidenceReport | Every claim against the evidence recorded for it: the result. |
| 400 | ErrorBody | invalid_input: The input does not fit the schema: a parameter of the wrong type, an unknown one, or a value the capability rejects. |
| 404 | ErrorBody | not_found: The input names something the repository does not hold. |
| 500 | ErrorBody | internal: The capability failed for a reason of its own; the message names it. |
| default | ErrorBody | Any other failure the transport reports: 405 method_not_allowed for another method on this path, 400 invalid_input for a body that is not a JSON object. |