“Proof-carrying memory” is our name for evidence-referenced, content-addressed
memory — a claim addressed by the hash of its content and linked to the oracle
outcomes that back it. The “proof” is that evidence trail plus the confidence rule, not
a formal machine-checked proof; there is no theorem prover in the loop.
One store, many writers
All memory subsystems converge on one store.recall, remember/brain, cortex
lessons, reuse artifacts, and doom-loop diagnose results all write content-addressed
claims into .forge/ledger/.
Why it converges without conflicts
Because a claim’s bytes are a pure function of(kind, body, scope), every replica
computes the same identity — so teammate ledgers fold together over plain git with no
conflicts.
Mechanically:
- Evidence and tombstones are append-only, hash-deduped logs.
- Confidence (
val) is a decayed Beta posterior, moved only by oracles. - Merge is a join-semilattice — property-tested to be commutative, associative, and idempotent — so ledgers converge in any order.
forge init emits the union-merge .gitattributes rule the ledger needs; forge ledger merge <path> folds in any other ledger tree. The full decision is recorded in
ADR-0006 (proof-carrying memory).Oracles move confidence — nothing else
Only independent oracles can move a memory’s confidence:Tests
A passing test that exercises the claim raises its confidence.
CI
A green pipeline is independent evidence the claim still holds.
Human
An explicit accept or a revert is the strongest signal of all.
ORACLES table (src/ledger.js).
Unreviewed knowledge decays toward uncertainty, not deletion — dormant claims are kept
for audit, never silently removed.
The ledger surface
--personal for the per-user ledger.
The reuse cache is proof-carrying too
forge reuse is a proof-carrying code cache. A generated artifact is only served again
when its evidence still holds — the confidence is above the floor and its atlas
dependencies still resolve. Otherwise it falls through to generation and mints a fresh
claim on the way back.