Proof Ledger enforces evidence discipline by converting eval runs, demo commands, and test results into durable proof artifacts.
U27-S06
PROOF LEDGER
CLASS: SYSTEM
OPERATING_POSITION: 06/08
FUNCTION: Evidence Recording + Proof Artifact Generation
REF_ID: U27-S06-PROOF-LEDGER
SOURCE_STATUS: PUBLIC_PACKAGE
ACCESS_STATUS: CLEARED_FOR_EXTERNAL_USE
This repository is a released Unit27 field kit: visible, inspectable, and intended for orientation, testing, and practical use. Controlled protocol materials remain outside this source package.
It answers one narrow question:
What evidence supports the claims this repo is making right now?
Use Proof Ledger before publishing a repo, demo, or research artifact when claims like tests pass, demo works, or ready for review need durable evidence instead of memory.
It is useful when a terminal result should become an inspectable proof packet that another reviewer can open later and trace back to the command that produced it.
Example:
Claim: The CLI smoke test passes.
Result: Proof Ledger records the command, exit status, evidence file, and reviewer-facing proof packet.
The current public release is GitHub-first. Run it from a local checkout:
git clone https://github.com/unit27research/unit27-proof-ledger
cd unit27-proof-ledger
pip install -e .
proof-ledger demo
cat proof-ledger-demo/u27/PROOF_PACKET.mdOn your own repo:
proof-ledger init
proof-ledger run --case tests-pass -- python -m pytest
proof-ledger run --case cli-smoke-test -- python -m your_package --help
proof-ledger packetIf the command exits nonzero or fails to launch, Proof Ledger records a failed run with captured evidence and returns a nonzero exit code.
Proof Ledger runs local proof commands and writes:
u27/proof_ledger.jsonu27/PROOF_PACKET.mdu27/evidence/run-0001.txtevals/proof_cases.json
It is designed to feel like an evidence ledger, not a benchmark suite or project review.
AI and agentic systems often ship with vague proof:
tested locallydemo worksevals passready for review
Proof Ledger makes that evidence inspectable. It records what was tested, what command produced the evidence, what passed or failed, where the proof lives, and what can honestly be shown to a reviewer.
For local development:
pip install -e .Install directly from GitHub:
pipx install git+https://github.com/unit27research/unit27-proof-ledgerInitialize proof files:
proof-ledger initRecord a run:
proof-ledger record \
--case tests-pass \
--command "python -m unittest discover -s tests" \
--status pass \
--evidence outputs/test-output.txtOr execute a command and capture its evidence automatically:
proof-ledger run --case tests-pass -- python3 -m unittest discover -s testsIf the command exits nonzero or fails to launch, Proof Ledger records a failed run with captured evidence and returns a nonzero exit code.
Generate the proof packet:
proof-ledger packetCreate a complete demo project:
proof-ledger demoproof-ledger init creates practical starter cases:
tests-pass
cli-smoke-test
package-builds
Edit evals/proof_cases.json to replace or extend these with project-specific claims.
Proof Ledger writes:
u27/proof_ledger.json
u27/PROOF_PACKET.md
u27/evidence/run-0001.txt
evals/proof_cases.json
The ledger is the durable evidence record. The packet is the reviewer-facing export.
Proof Ledger is released as part of the Unit27 public tooling channel. CI verifies the test suite, wheel build, and wheel contents before changes are considered ready.
{
"id": "tests-pass",
"claim": "The project test suite passes in the current local checkout.",
"expected": "The configured test command exits 0 and stores stdout/stderr as evidence.",
"limits": ["This claim covers the recorded local test command only."]
}cases -> runs -> evidence paths -> proof ledger -> proof packet
Proof Ledger does not decide whether a project is good. It records what evidence exists and prevents proof from collapsing into memory, vibes, or a throwaway terminal scroll.
Proof Ledger does not:
- Judge product quality
- Certify correctness
- Replace eval design
- Claim live behavior that was not recorded
- Send data outside the local project
PYTHONPATH=src python3 -m unittest discover -s tests
proof-ledger init
proof-ledger run --case tests-pass -- python3 -m unittest discover -s tests
proof-ledger packetPYTHONPATH=src python3 -m unittest discover -s tests
PYTHONPATH=src python3 -m proof_ledger.cli init --root examples/sample-project
PYTHONPATH=src python3 -m proof_ledger.cli demo --root examples/sample-project
PYTHONPATH=src python3 -m proof_ledger.cli packet --root examples/sample-project
python3 -m pip wheel . --no-deps --no-build-isolation -w /tmp/proof-ledger-wheel
python3 scripts/verify_wheel.py /tmp/proof-ledger-wheel/unit27_proof_ledger-0.1.0-py3-none-any.whlMIT