| 2026-10-29 |
0 env audit |
done |
scripts/environment_audit.py --smoke → hardware/device_inventory.json; scripts/cluster_audit.sh (read-only SSH) |
laptop M5 Max 18c/40 GPU/48 GB, torch 2.15 MPS+CPU smoke OK; 12 LAN nodes reachable incl. 2× M3 Ultra 96 GB, M2 Ultra 64 GB, 3× M4 Max 64 GB |
PASS |
— |
| 2026-10-29 |
1 literature |
done |
literature/papers.bib (77 verified entries), comparison_matrix.csv, novelty_audit.md |
all 12 mandated refs exist incl. RecurTrace 2609.03379 and ELR 2610.12582; C3 (differential zero-init bypass) judged not novel; C2 novel only in its multi-action+propensity form |
PASS |
preregistration frozen before any test split is read (see protocol/) |
| 2026-10-29 |
2 backbone + counts |
done |
scripts/count_params.py --all-configs --device meta; scripts/estimate_flops.py |
backbone counts match brief exactly (99,502,848 / 446,744,064 / 1,149,339,648); workspace 2,631,173 vs brief 3,088,260 (reconciled, D3); ops table reproduces brief within 1.3 % |
PASS |
— |
| 2026-10-29 |
3 invariants |
done |
python -m pytest tests -q → 22 passed |
15 mandated invariants + controller target-freedom + dense ablation + 5 cache-equivalence tests |
PASS |
— |
| 2026-10-29 |
4 learnability (backbone) |
done |
p4_tiny_backbone.yaml → run p4_tiny_backbone_seed01_20261029232626 (2.1M params, 6k steps, char-level) |
exact match (greedy): dev_iid arith 16.8 %, dev_template 13.7 %, dev_depth 3.0 %, compose 2.4 % (first-600-item subsets, arith-heavy) |
PASS (weak backbone, usable comparator) |
stronger v2 backbone (5.6M, 15k steps) running |
| 2026-10-29 |
4 learnability (overfit) |
done |
p4_overfit64_b8.yaml → run p4_overfit64_b8_seed01_20261029235111 |
64 items, budget 8, frozen backbone: train loss 0.347 → 0.0024 in 200 steps; dev loss rises 0.73 → 1.36 (expected) |
PASS (gradient path + capacity) |
— |
| 2026-10-29 |
4 learnability (generalisation, v1 backbone) |
done |
zero-U scaled (laptop), U std 0.2 / 0.5 (M4M64c / M2U64), budget-8-only w64/w128 and mixed w128 lr 3e-3 (M2U64 / M4M64c / M4M64a) |
after 2000 steps (U std 0.2): dev-iid loss −1.4 % at budgets 1–2, +1.7 % at budget 8; exact match dev-iid 43.8 → 45.8 % (b2), template/depth unchanged, compose 2.3 → 3.0 %; zero-U + scale alone: −0.6 %; lr 3e-3 w128: collapse to inert edits; global-recurrence adapter (same recipe): loss ≥ backbone at every budget, EM 43.8 → 45.8 % (b8) |
PASS (weak, learnable; mechanism effect ≈ 1 %) |
decisive 5-seed matrix on v2 backbone |
| 2026-10-30 |
4 decisive matrix (v2 backbone, 5 seeds × {PRISME, global recurrence, dense}) |
running |
scripts/launch_seed_matrix.sh → 15 runs on M2U64/M4M64c/M4M64a/M5M36/M4BP48/M4BP36 |
— |
— |
aggregate with scripts/make_tables.py |
| 2026-10-30 |
5 counterfactual labels + oracle audit (tiny) |
done |
labels_p4.yaml → run labels_p4_seed01_20261030000543 (80,632 train + 20,040 calib labels; 4,778 + 1,308 exhaustive-audit states); evaluation.label_analysis |
gains: mean 0.004, 42 % positive, 37 % harmful; variance 86–89 % between states vs 11–14 % within state (action identity); 37 % of states have all 24 actions positive, 29 % all negative; one-step oracle 0.0166 nats/state = 0.0098 (perfect stop, random action) + 0.0067 (action selection); random action 0.0004 |
PASS (oracle margin exists; action choice is ≈40 % of it) |
controller fit |
| 2026-10-30 |
6 controller (tiny) |
partial |
controller_p4.yaml → controller_p4_seed01_20261030000716 (z features): calib sign acc 49 %, captured fraction −3 %; sweep: best (λ=0.1, κ=0.5) loss −0.1 % with 0.01 edits/token; controller_p4_hent.yaml (h + backbone entropy): sign acc 59–60 % at 1–2k steps then overfits (early stopping added) |
controller with z-only features = chance; h+entropy features predict the sign above chance but capture ≤ 5 % of the oracle opportunity |
OPEN (H3 null so far at tiny scale) |
rerun with early stopping; more labels |
| 2026-10-30 |
7 inference engine + latency (tiny) |
done |
tests/integration/test_cache_equivalence.py (5 tests pass); evaluation.latency on the laptop MPS → results/raw/latency_p4_*_mps.json |
batch-1 decode: 2.8 ms/token (budget 0) → 5.3 (1 edit) → 19.3 ms (8 edits); dense 8 edits 17.3 ms (not slower than sparse at this scale); controller call ≈ +2.9 ms even with 0 edits |
PASS (equivalence); dispatch overhead dominates at tiny scale (brief §13.6 confirmed) |
re-measure at 103M |
| 2026-10-29 |
8 pilot (Stage A) |
running |
M3U96a: pretrain_103m.yaml (run pretrain103m_seed01_*); M3U96b: pretrain_enlarged_102m.yaml |
14.8k tok/s, 196.6M tokens planned (~3.7 h each) |
— |
editor/controller stages after completion |
| 2026-10-30 |
5/6 routing evaluation (tiny v1 editor, dev-iid, 640 items / 3,417 answer tokens) |
done |
evaluation.routing → results/raw/routing_controller_p4_hent_seed01_20261030002015_dev_iid.json |
budget 0: 0.4334; uniform b1 0.4301 (−0.8 %), random b1 0.4305, fixed pair b1 0.4306; b8 schedules +0.6 to +2.8 %; entropy router ≥ budget 0; norm router (thr 0.2) 0.4309; learned controller (locked λ=0.3) 0.4404 (+1.6 %) and worse at every λ; greedy one-step oracle 0.4025 (b1) → 0.3666 (b8, 2.26 edits/token, −15 %); two-step oracle gain 0.034 vs one-step 0.0233 vs greedy-then-best 0.0337 (myopia regret ≈ 0) |
H2 null (uniform = random = pair); H3 null (controller < no routing on dev) at this scale; oracle opportunity large |
labels from a split unseen by the editor (D11); 5-seed v2 matrix |