← Wiki · App

# The supergit substrate

Each job's workspace is a real git repository carrying an append-only decision ledger — the system's only memory, and the reason stateless invocations can compose into a coherent build.

## What it holds

`.supergit/ledger.csv` — append-only typed rows (`genesis, decision, spec, test, code, result, error, repair, edge, lesson`), each with a monotone step index, a tree parent, and a backward cause link. Forward dependency pointers are dedicated `edge` rows — appended when discovered, never mutating earlier rows. `graph.json` is the derived, deterministically rebuildable materialization RHA traverses. `spec.json` and `ir-manifest.json` carry the feature coding and the freeze hashes. Every artifact mutation commits with `Supergit-Node / Supergit-Step / Supergit-Type` trailers, synchronizing code position with ledger position in both directions.

## Read, not just written

The substrate is consulted during repair, not merely recorded: repair context is compiled from it, and lessons — documented resolutions of a bug-class idiom — are checked before any new model invocation, so an idiom resolved once is applied mechanically to every later same-shape instance, in this run and future runs.

Because the substrate travels with the artifact (see deploy sync), a synced folder is a portable project: any later session re-attaches and continues the same provenance chain. An artifact without its substrate is dead to the pipeline.