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]).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proofofcontext-0.3.0.tar.gz (83.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proofofcontext-0.3.0-py3-none-any.whl (87.5 kB view details)

Uploaded Python 3

File details

Details for the file proofofcontext-0.3.0.tar.gz.

File metadata

  • Download URL: proofofcontext-0.3.0.tar.gz
  • Upload date:
  • Size: 83.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for proofofcontext-0.3.0.tar.gz
Algorithm Hash digest
SHA256 54e2c369d86efcc88278251ab13aa5f22f087eecd10e0ac1751efd648422a413
MD5 8febf1e6e4ed03dad0623e4f018f8272
BLAKE2b-256 b04c07fa8784a8d5e71b23c2d648be2aade27a632cf811d716a78873dff7dcfc

See more details on using hashes here.

File details

Details for the file proofofcontext-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: proofofcontext-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 87.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for proofofcontext-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 209b6659e78caf5bf6fc2a0039472940cb62c3f51e1926373d98b9ddea444f7a
MD5 90f00cfa2f95973a8e18a925cee02781
BLAKE2b-256 5010b8ca309877d942b6c6f698fefe591837603d51d39fe25e8e4e34944c777c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page