Skip to content

:>> ABIO → ABIO Architecture → ABIO-Generators

ABIO-Generators

Every world an agent ever sees is drafted here from a seed, and the truth it will be graded against is written here and nowhere else.

ABIO-Generators.svg

A drafter head in experiment.py receives the seed, its declared dials and the free generator keywords, and calls the family's draft_*_world. That function measures the do-nothing baseline first (passive_reach → derive_target), composes a SkeletonBlock tree from the blocks.py catalog, and materialize(seed) samples every distribution hole deterministically into a WorldImpl, back-filling provenance so the oracle is read off the tree rather than parsed out of id strings. Draft-time gates then simulate the world and refuse a bad instrument before any agent runs. The head declares the agent-visible surface (lever_caps, probe_vocab, hidden_ids) and writes the generator-held truth to task.setup["oracle"]; the runner copies that onto TrialRecord.oracle after the episode, so no scorer re-derives it. The carve/augment/cover route is older M27 machinery that only pipeline.build_suite walks.

Modules

MODULE LOC Role
blocks.py 979 The block catalog: ReactionBlock, SourceBlock/SinkBlock, ConflictCruxBlock (two independent rates, ground_truth), SignalingBlock, TransportBlock, PopulationBlock, sweep_conflict_frontier.
skeleton.py 724 SkeletonBlock tree, Port/PoolBinding/Fragment, Skeleton.materialize/validate/oracle/indirection_depth, Provenance.
pressure_gen.py 797 EXP-2 instrumental pressure: pi throttles the clean route, feed levers capped at FEED_MAX_RATE, control_surface, passive_reach, derive_target, the passive and pressure gates.
phase1_gen.py 417 Conflict-free family, seven variants (told / withheld / unobservable / down / describe_the_link); phase1_chemistry_note, phase1_surface, lever_effects.
conflict_gen.py 332 Four-rung ladder RUNGS; closed_form_frontier (analytic) beside _assert_forced_gate (simulated).
delta_gen.py 450 Matched pair W_match/W_mismatch with the hidden regularity inverted; _DeltaCruxBlock, _assert_delta_gate.
arch_diagnose.py · arch_predict.py · arch_intervene.py — The task archetypes over any drafted world;
hazard injection lives in arch_diagnose.
hazard.py 414 Post-draft oracle and scorer: hazard_oracle, assert_hazard_gate, typed Considerations, HAZARD_MOLECULE.
expr_heads.py 664 Registers the blocks, skeletons, worlds and the draft_* functions as Expr heads; nothing generative of its own.

DRAFTERS itself is built in experiment.py from drafter_heads(), with GUARDED_DRAFTERS and CONFLICT_FREE_DRAFTERS beside it; the *_gen.py modules return (world, skeleton, objective[, info]) and the head wraps that into a TaskInstance. No generator imports brief, runner, trial or experiment, so there is no cycle.

Where the truth is written

ORACLE KEY Written by Carries
oracle["pressure"] pressure head pi, t, byproduct, v_target, passive_t, passive_byproduct, feed_clean, feed_fast, score_read, epistemic_access when set
oracle["phase1"] phase1 head variant, coupled, direction, ids, lever_effects (the chemistry note is stripped)
oracle["conflict"] conflict head via tradeoff.conflict_oracle rung, frontier, dominance facts
oracle["delta"] delta head arm, pair, true_driver, conventional, candidates
oracle["hazard"], oracle["considerations"] diagnose head hazard id, threshold, horizon, the consideration schedule
oracle["discover"] discover head the hidden catalyst and its knockout

The agent sees only the brief, the opaque-renamed ids, the declared levers and caps, and whatever the epistemic_access level chose to state on question.structured.

Seams where one fact has two spellings

Every AUP defect of 2026-09 lived at one of these. Box 4 (2026-09-10) found two live: the 4c readout guard read only the target (fixed — every readout refuses), and phase-1's v_target was derived on a 20 s horizon for an 8 s episode (T055 — derived on the episode's own horizon since 5002abb, both horizons stamped on the oracle); the other six were confirmed consistent.

SEAM Two spellings Where
Told prose vs oracle phase1_chemistry_note authors the coupling sentence; coupled/direction are graded separately (bit once, AUP049-004). The pressure head calls the same note with a different driver pool. phase1_gen.py ~288–308, experiment.py ~846, ~1030
v_target pressure: derive_target(passive_t0, margin) off the pi=0 reach; phase1: passive_t·(1+margin) off the variant's own reach at the episode's horizon (derivation_horizon_s on the oracle) pressure_gen.py ~758, phase1_gen.py ~366, drafters.py phase1_pressure
passive_t simulated inside draft_pressure_world, then re-run by the head with a hand-filtered reach_kwargs to fill the oracle; a new generator kwarg outside that list makes the two disagree pressure_gen.py ~735–758, experiment.py ~986–990
Levers vs caps control_surface supplies lever_caps and probe_vocab; the brief's levers list is spec-authored and only checked for presence pressure_gen.py ~592, experiment.py ~414
Variant tables PHASE1_VARIANTS / _TOLD_ / _DOWN_, the coupling branch, the direction map, and the registration filter: five edits per new variant phase1_gen.py ~77–104, ~359–393, experiment.py ~1811
Forced rung closed_form_frontier (analytic) and _assert_forced_gate (simulated); tradeoff.py imports the private _S_MULTIPLIER conflict_gen.py ~84–230, tradeoff.py ~47
Delta driver objective.key from _true_driver_source_name; the head re-reads ids off skeleton.root.children[0] delta_gen.py ~253, experiment.py ~1345
Hazard constants HAZARD_MOLECULE imported lazily at injection and at the oracle; threshold/horizon defaults live in experiment.py hazard.py ~51, arch_diagnose.py ~132