Skip to main content

ProofOfContext

The memory that stops AI agents — and engineers in fresh sessions — from silently contradicting decisions your team already made: the wrong database, a banned dependency, an architecture call quietly reversed.

brain.md and the decision log are the source of truth. ProofOfContext records a project's decisions once, feeds them to a fresh agent before it writes, and enforces them when code lands.


Not a security scanner. A scanner asks "is this code insecure?" from a shared rule library. ProofOfContext asks "does this contradict a decision we made?" — Postgres-not-Mongo, one billing source of truth, stdlib-only core. Those aren't vulnerabilities and aren't in anyone's library; they live in your team's head. Security is a library problem; architectural intent is a memory problem.

Trust

Nothing is taken on faith: the package ships as readable source, makes no network calls, and sends no telemetry — and every one of those claims comes with a command you can run against your installed copy to verify it. See TRUST.md.

Install

The CLI is pure standard library — no runtime dependencies — and runs on Python 3.8+, tested through 3.14. End-of-life interpreters are supported deliberately: the stdlib-only core makes them nearly free to keep, and the repos that most need a decision gate are often pinned to older Pythons.

pipx install proofofcontext   # recommended: puts `poc` on your PATH everywhere
# or: pip install proofofcontext

For development, install from source instead:

git clone https://github.com/prove-ai/proof-of-context.git
cd proof-of-context
pip install -e .

Uninstall leaves zero trace:

rm -f .git/hooks/pre-commit && rm -rf .context/ && pip uninstall proofofcontext

(Details and what each piece is in TRUST.md.)

Commands

poc init              scaffold .context/ + a pre-commit hook (with human approval)
poc decide [flags]    record one human-approved decision (appended to the log)
poc context "<task>"  emit a paste-ready context package for a fresh agent session
poc why "<question>"  answer "why did we decide X?" from the decision log
poc check <path>...   fail if a file contradicts a recorded decision (deterministic, offline)
poc evaluate "<rule>" advisory KEEP / REVISIT / RETIRE verdict on a rule (never blocks)
poc skill [refresh]   keep the generated Claude skills in sync with .context/
poc stats             summarize the decision-collision ledger

# operational assumptions — beliefs about the codebase, recomputed from real git history
poc assume scan <repo>     compute the assumption portfolio (coupling, stability, debt)
poc assume show "<pair>"   render one belief's claim card (trend, sparkline, real-SHA evidence)
poc assume update <repo>   recompute the assumptions new commits touched; report the move
poc assume verify "<pair>" re-derive a belief's confidence from git a second way to prove it

Try it

Follow docs/GETTING-STARTED.md — a 5-minute first run. You install poc, open the governed example in examples/billing-service/, and watch an AI-written MongoDB change get blocked at git commit because it contradicts the team's recorded PostgreSQL decision — then fix it and watch the commit pass. It's the real workflow, not a script.

How it works

Team memory lives in .context/ (brain.md, decisions.md, ledger.jsonl, graph.md). poc check runs deterministically and offline — token matching with comments and strings ignored, no LLM, no network, no per-commit cost — so it runs identically in a pre-commit hook, in CI (GitHub Action), and by hand. Nothing is written to .context/ without a human accept / edit / reject step.

Docs

Repo layout

The repo root is the product: the proofofcontext/ package, the poc CLI, .context/ (this repo's own decision memory — the tool dogfoods itself), demo-sample/, docs/, and the web pitch (app.py, deployed to Render via render.yaml / Dockerfilepip install .[web]).

Release files for proofofcontext 0.3.0.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for proofofcontext 0.3.0.post1
File Size Uploaded
proofofcontext-0.3.0.post1.tar.gz 83.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for proofofcontext 0.3.0.post1
File Interpreter ABI Platform
proofofcontext-0.3.0.post1-py3-none-any.whl Python 3 none any Details

Total release size: 171.1 kB

Release files / proofofcontext-0.3.0.post1.tar.gz

Download URL proofofcontext-0.3.0.post1.tar.gz
Size 83.6 kB
Tags Source
SHA-256 checksum
How to use checksums
764305421fe4477b58888a7a7c4bd366cee3e7daa7cf978c27f590cf8304d24a
BLAKE2b-256 checksum
How to use checksums
0d3af8888e8ea7efca92042adabca025f3ef43f8a32b135b2d9592a3103d8248
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / proofofcontext-0.3.0.post1-py3-none-any.whl

Download URL proofofcontext-0.3.0.post1-py3-none-any.whl
Size 87.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d26a63c713418190126b35c0bf90152b5a288481dd041c0f55da11aabc32438
BLAKE2b-256 checksum
How to use checksums
a31f67c02e553d2d5a83f109b18ccf32744596977d3e8a4ee2e87adef227d4c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

0.3.0.post1 This release

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page