Files
Aura/docs/design/contracts/c21-world.md
T
claude 8688a60ded docs(ledger): split the design ledger into an INDEX map, per-contract live files, and history sidecars
The single-file ledger had grown to 2968 lines / ~42k tokens, mixing
current design law with accreted history: 59 cycle-stamped realization
blocks, 18 [HISTORY] passages, 22 supersession markers, and the C10 /
C22 / C24 reframe sagas layered several supersessions deep. A
code-grounding audit (31 agents, adversarially verified) confirmed 11
defects stated as current truth: stale crate homes from the C28 #288
roster split (cost nodes, PositionManagement, PositionEvent, Session),
the renamed InputSpec->PortSpec, the pre-#241 project model in C16 and
the open-threads section, a stale HarnessKind retirement deferral in
C24, and three C28-internal inconsistencies.

New shape, per the ailang precedent:

- INDEX.md stays the sole addressable entry point: foundation, external
  components, a C-id-keyed contract map (one line per contract), and
  only the genuinely open architectural threads.
- contracts/cNN-<slug>.md carries each contract's current truth only:
  Guarantee / Forbids / Why with ratified refinements integrated, plus
  a code-anchored Current state. All confirmed defects are fixed here;
  crate anchors were re-verified against the tree.
- contracts/cNN-<slug>.history.md (18 sidecars) and INDEX.history.md
  preserve every superseded block verbatim, stamps and issue refs
  intact, under a frozen-record banner. Nothing was deleted: superseded
  design intent remains an addressable working-tree artifact, off the
  per-cycle audit walk.
- Ledger discipline is now stated in INDEX.md: live files are edited in
  place at cycle close, superseded text moves verbatim to the sidecar,
  and a supersession marker in a live file is itself an audit finding.

Every contract file was verified against its old text by an independent
zero-loss pass (statement-by-statement) plus a code-accuracy spot check;
C-ids and contract titles are unchanged, so existing C-id citations in
code, tests, and issues resolve as before.
2026-07-21 16:40:36 +02:00

3.7 KiB
Raw Blame History

C21 — The World: the meta-level is the product

Guarantee. Above the harness (C12's disjoint sim unit) sits the World — the project's program / "game" (a Rust crate, C16). Within it, harnesses are dynamically constructible, first-class objects: meta-programs (walk-forward, sweep, optimize, Monte-Carlo — C12's orchestration axes) construct harness instances at runtime via the bootstrap (C19), run them disjointly in parallel (C1), aggregate / compare their results, and discard the transient instances. A walk-forward rolls windows → bootstraps a harness per window → stitches out-of-sample equity + parameter stability into one meta-result. Orchestrating families of harnesses is first-class, not a headless afterthought; the run registry (C18) is the World's memory. A harness's topology is a serializable data value the World owns (C24), not Rust source — the precondition for the World's full ambition: it can generate, mutate, structurally search (genetic / NEAT-style graph operators), compare, and serialize-for-reproduction (C18) families that vary structure, not only numeric params. A param sweep over a fixed skeleton is the degenerate case; varying the skeleton itself needs topology-as-value. (#109, resolved 2026-06-29.)

Forbids. Relegating multi-harness orchestration (walk-forward / sweep / comparison) to second-class headless-only status; treating the single backtest as the product.

Why. What happens within one harness — backtest a strategy → equity — is commodity; every quant system covers it. aura exists for the meta-level: a programmable space where harnesses are dynamically built and families of them orchestrated and explored. The deterministic single-harness engine (C1C20) is the substrate; the World is the product. The game-engine principle (C16) made literal: the engine owns the scene / blueprint graph as content, instantiates and runs it, the way aura owns harness topology as data (C24).

Current state

The four orchestration axes (sweep, walk-forward, Monte-Carlo, generalize) are realized as families the World constructs, runs disjointly (C1), and aggregates. The dissolved orchestration verbs translate each invocation into a content-addressed process + campaign document, run through a single campaign executor (aura-campaign, driven by aura-runner), so every ad-hoc family run is durable, diffable, reproducible intent rather than a bespoke code path per verb. Harness topology is a World-owned serializable data value (C24): blueprints are JSON that the bootstrap (C19) compiles to a flat instance (C23); the run registry (C18) persists each run's manifest as the World's memory, and any family member is re-derivable from that manifest.

The programmable analysis meta-level is only partly realized. Families are produced and compared (the trace explorer's family view, C22) but are not yet themselves composable — sweep / MC / walk-forward as first-class meta-level operators one can nest and pipe — and the structural-search ambition (generate / mutate / genetic / NEAT-style graph operators over topology-as-value) is not built. That is the open search-policy direction; today the World constructs fixed family shapes rather than searching over the space of shapes.

See also

  • C24 — harness topology as a World-owned data value
  • C16 — the engine / project split and the game-engine principle
  • C12 — the atomic sim unit and the four orchestration axes
  • C19 — blueprint → instance bootstrap
  • C18 — the run registry, the World's memory
  • C22 — the trace explorer that plays these families