aayudha docs Built from de79988 (2026-10-26)

proof: find and check the evidence for a change

Months after a merge, someone asks how you know a story works. proof lists, fetches, and checks the proof packs on the ledger: the files that tie each of a story's promises to its evidence, for one exact commit.

Field Value
In plain words Stores, fetches, and checks the proof packs that hold the evidence for each change.
Journey stage Prove it
Accountable seat Quality Architect (Yama)
Does the work Yama, the Accountable seat's twin, in the chore model lane, with the seat's paired human when it has one
Consulted AI Native Engineer (Nakul)
Informed Auditor (Vidhi)
Layers it can touch every layer
Who reasons no model: it is deterministic
Writes as the bot identity (a GitHub App); without one, your identity, tagged as human fallback
Where it runs the aayu command, a skill in your agent, an MCP tool (read-only unless [mcp] expose_writes is on)
The skill your agent reads skills/proof/SKILL.md

When to use it

Want to produce the evidence in the first place? Run verify.

Run it

Ask your agent. The ledger is a branch in your repository that holds records, never code (glossary).

Use the proof skill to verify the proof pack for story 42, and explain any problem it finds.
aayu proof <action> [<story>]
Input Required What it does
<action> yes Proof operation: push an advisory pack, get, verify, or list packs, or (merge gate only) comment: check the run's pack and keep its PR comment. One of: push, get, verify, list, comment.
<story> no Story whose pack to operate on.
--media no Include proof media; needs a bucket in [proof] media, since media never go to the ledger or Git LFS.

What you get back

verify takes the story's newest authoritative pack, else its newest advisory one, and checks that every artifact matches its hash, every criterion has evidence, the Completion Goal matches the Ready snapshot, and the head is the pull request's current head. push writes proof/<story>/<sha>/advisory/pack.json to the ledger and posts its own comment. comment runs only in the merge gate.

You should see a line like authoritative pack at <sha>: N artifact(s) hashed, M not stored; floors hold: true, and exit 0. Each problem is listed, with exit 4. A pack can verify and still not ship: see ship problems.

Needs setup: --media needs a private bucket named in [proof] media. Without one, proof push --media is refused: media never go to the ledger or Git LFS. See proof packs.

Gates

It checks no gate before it acts.

The real line is between two kinds of pack. An advisory pack is an agent's claim; only the pack the merge gate wrote in CI is authoritative (proof packs).

What only a person does

The registry reserves no step of this verb for a person.

A person still makes the pack count. Only aayu ship, run by a person, lands the merge gate's pack on the ledger as authoritative, after checking it came from the gate's own run on the exact head.

What's next