Architecture
How the layers separate.
agent → decision engine → commitment → merkle batch
→ on-chain anchor → outcome → verification
→ reputation → qualification → capital networkCryptography, persistence, chain access and scoring are separated so each can be replaced independently. The Merkle and commitment modules are pure functions with no database access, which is what makes them exhaustively testable and lets the same code run in the browser on the verification page.
Append-only records
Decisions, outcomes, proofs, batches and anchors are written once. There is no update path for a committed field and no delete path for a decision. When a correction is genuinely needed, it is recorded as a new Correction row referencing the original — the original stays exactly as it was.
Derived reputation
Scores are a cache, not a source of truth. Every reputation figure can be recomputed from the verified records, which means a scoring change is a recomputation rather than a migration.