thang.

Proofline · v2.0.2 · OPEN SOURCE

Keep the decision. Know when evidence changes.

Bind decisions to immutable source versions and exact citations. See what needs review when requirements change.

Python 3.11+ · Local-first · v2.0.2

  1. 1

    Capture source

    Keep immutable source versions.

    requirement.md · v1

    ## Queue durability requirement
    …
    The local queue must not lose acknowledged work during a process crash.

  2. 2

    Bind exact citation

    Record the exact span behind the decision.

    requirement.md · v1 · lines 42–48
    The local queue must not lose acknowledged work during a process crash.
  3. 3

    Detect change

    Check what changed in the current source.

    requirement.md · v2

    − must not lose acknowledged work

    + may lose acknowledged work

  4. 4

    Review evidence

    Preserve the decision. Review changed evidence.

    ADR-007 · Keep the durable queue in SQLite
    Historical decision
    accepted
    Current evidence
    review-required

Synthetic stale-decision example. Historical acceptance and current evidence review are separate states.

Start locally

Python 3.11+. Run a disposable local demo.

See example output →
pipx install proofline-evidence==2.0.2
proofline demo stale-decision

Already have pipx? Use its isolated environment. Otherwise choose Python venv (macOS/Linux) or From source, which requires uv.

Try the stale-decision example

Illustrative excerpts from the project's synthetic demo; this page does not run Proofline or inspect your files.

The demo writes to proofline-demo-stale-decision/. Reusing an existing demo requires explicit --force.

Read demo source →

Exact citations

Bind decisions to immutable source versions and exact citation spans.

Change impact

Detect changed evidence and follow explicit decision dependencies.

Portable verification

Verify exported evidence packages and review receipts without an AI provider.

Evidence packages & review receipts

Package verification checks integrity, not source truth. A review receipt binds a review snapshot to the verified package root. Optional signatures require a trusted public key; they do not establish organizational identity.

Read documentation →