Wiki · Decisions
Decisions
Shelf
Decisions

Decisions

Architecture decision records for rungs itself.

Index

idtitlestatusdate
ADR-0001Multi-harness rendering: render only what is fragmentedaccepted2026-08-14
ADR-0002Implementation stack, and the runtime footprint of a scaffolded repoaccepted2026-08-14
ADR-0003Module definition format: a directory that looks like what it emitsaccepted2026-08-14
ADR-0004Adoption detection: map what exists, never migrate itaccepted2026-08-14
ADR-0005Self-instrumentation: the runner records what it observes, and nothing elseaccepted2026-08-14
ADR-0006The name: rungs, and why a name here is an identifier rather than a brandaccepted2026-08-14
ADR-0007Detector applicability is declared per gate, and has no defaultaccepted2026-08-16
ADR-0008A gate tier is an ordered level, and an unknown tier is refusedaccepted2026-08-17
ADR-0009rungs drives git for the concurrency loop, and only where the loop is the productaccepted2026-08-17
ADR-0010A hook is dispatched through the consumer’s pinned launcher to a central engineaccepted2026-09-06
ADR-0011An instruction detector reports what it read and asserts nothing about enforcementaccepted2026-09-06

The table above is generated from the records’ frontmatter by rungs render and held current by adr-index-current. It replaced a hand-kept copy on 2026-09-06, when the gate started comparing rows to records (WI-087) and found the block had been empty beside ten records since it was written.

0001–0005 were decided out of numeric order, each because it blocked the next: 0005 set the gate-shipping contract, 0002 set what a scaffolded repo may depend on, 0003 is largely 0002’s consequence, and 0004 turned out to need mostly what 0002 and 0003 had already settled. Phase 3 is closed. 0006 is Phase 4, taken at the boundary because Phase 4 is where the name stops being prose and starts being written into module manifests.

Admission rule

Before creating an ADR, all of the following must be true (pattern adr-admission-rule, extracted from axiom-mesh):

  1. The decision constrains future work rather than describing current work.
  2. A reasonable alternative existed and was rejected for a stated reason.
  3. Reversing it later would cost meaningfully more than making it now.
  4. It is not already owned by a specification or module doc.
  5. It is not an implementation detail that the code states more precisely than prose can.

If any is false, the content belongs in a design doc or a module spec — not here.