← 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.