Proof Bundles
A proof bundle exports one task's full evidence chain — route, work result, review, verification, and acceptance — as portable files you can archive, attach to a change request, or hand to another tool.
Exporting
trinity-lite proof <task_id> # writes JSON + Markdown to the current directory
trinity-lite proof <task_id> --out bundles/ # choose an output directory
trinity-lite proof <task_id> --format json # or: md, both (default)
Files are named proof-<task_id>.json and proof-<task_id>.md. Bundles are
export artifacts, so the default output directory is the current working
directory, not the managed state directory under ~/.trinity-lite.
MCP clients can read the same structure without writing files through the
read-only trinity_proof tool.
JSON Structure
The JSON bundle is versioned so consumers can evolve with the schema:
{
"proof_bundle_version": 1,
"generated_at": "2026-09-22T05:18:18+00:00",
"generator": "trinity-lite 0.7.0",
"task": { "id": "...", "prompt": "...", "status": "completed", "...": "..." },
"route": { "agent": "codex", "task_type": "implementation", "...": "..." },
"work": { "status": "completed", "result": "...", "error": null, "...": "..." },
"review": { "task_id": "...", "task": { "...": "..." } },
"verification": { "status": "passed", "checks": [ "..." ] },
"acceptance": { "status": "accepted", "reason": "...", "accepted_at": "..." },
"timeline": [ { "stage": "route", "at": "...", "actor": "...", "detail": "..." } ]
}
Missing Stages
Proof bundles never fabricate evidence. A task that only reached part of the flow exports the stages that exist and marks the rest explicitly:
- JSON: the stage field is
null(for example"review": nullwhen no secondary review was dispatched). - Markdown: the stage section shows "Not recorded.".
An unknown task id returns a structured error and writes no files.
Markdown Summary
The Markdown file mirrors the workflow order — Route, Work, Review,
Verification, Acceptance — and ends with a timeline table built from the
recorded timestamps (created_at, started_at, finished_at,
gate_updated_at, accepted_at). It is meant for humans; the JSON file is
meant for tools.