# Decision log — WP-AI-0001 All entries are dated; "before freeze" refers to the confirmatory freeze (PREREGISTRATION v1.0, not yet done). - **D1 (2026-11-09, before freeze).** Project located at `Recherche-UQO/ia/wp-ai-0001` with git remote `gitsrv:srv/git/wpai0001_uqo.git`, following the FIRC-0001 precedent for non-numeric IDs; UQO paper template (`_modele-working-paper`) adopted; English throughout. - **D2 (2026-11-09, before freeze).** OPSEQ output format changed from single final answer to a *scratchpad trace* after the single-token variant failed to generalize (train loss → 0, dev ≈ 0.24–0.34 on length ≤ 3; ≈ 0.13 on length ≤ 5). Consequence: the Tier-0 target capability is "execute Ω in context", a per-step map, and compositional difficulty is controlled by `trace_stride`. Risk R1 recorded. - **D3 (2026-11-09, before freeze).** Micro-world enlarged from 6 operators / length ≤ 4 (≈ 14 k unique items, too small for 40 k training items) to 8 operators / length ≤ 5 (≈ 400 k). - **D4 (2026-11-09, before freeze).** Toy models are PyTorch (hooks trivially exact, CPU-testable); MLX is reserved for Tier ≥ 1 with a layer-wrapping intervention mechanism and an equivalence test. - **D5 (2026-11-09, before freeze).** The pilot is exploratory; localization selection uses the pilot's development localization set; confirmatory evaluation splits will be generated from new seeds after freeze. - **D6 (2026-11-09, before freeze).** Localization sweep families in the pilot were `resid_post`, `attn_out`, `mlp_out` (plus heads). The `embed`/`resid_pre.0` family was not swept, which is why patching at the Ω token restores nothing; it is added to the next sweep. The pilot's localization set (length-3 programs, Ω at index 1, corrupt = `zib`) is a *development* set; confirmatory localization will use new seeds and other corrupt operators. - **D7 (2026-11-09, before freeze).** Exploratory run `graft_tier0_f50a28ca1bf7` showed that affine maps fitted to predict the recipient's activations on Ω-containing rows (ridge, CCA) *remove* the Ω-specific component (the recipient has none to predict), while orthogonal maps (Procrustes) and maps fitted on task-free rows preserve it (Procrustes on task-free rows: 0.99 same-init / 0.96 different-init vs ridge-on-Ω-rows 0.17). The reference map for the secondary families (steering, subspace, adapter, H5, mismatch, dose, layer grid) is therefore **Procrustes fitted on task-free alignment rows**; ridge variants are kept as comparisons. Protocol tag `v2-unrelated-procrustes-reference`; the v1 run is retained in the registry. - **D8 (2026-11-09, before freeze).** Pairs are classified by initialization: donor_s*i* and recipient_s*i* share the initialization seed (identical initial weights, different data); off-diagonal pairs do not. Reported separately because the identity graft works only for same-initialization pairs (0.87 vs 0.10). - **D9 (2026-11-09, before freeze).** Tier-1 alignment prompts are *format-matched and task-free* (``Input:/Output:`` frames with random content, D9) after the quick run showed that sentence-final states are off the manifold of ``Output:``-position states; held-out R² is now computed on rows never used for fitting; a donor-in-the-loop replace graft (donor few-shot state mapped into the recipient) and its controls (donor zero-shot state, shuffled query, sham map) are added; a declared norm-rescaled variant of the mapped vector is reported. - **D10 (2026-11-09, FREEZE).** PREREGISTRATION v1.0 (Tier 0) frozen after `graft_tier0_30e3644aa801`; primary method = activation graft with task-free Procrustes at L0→L0, α = 1; confirmatory seed base 90 000. SHA-256 of `docs/PREREGISTRATION.md` at freeze recorded below. PREREGISTRATION.md sha256 at freeze: fe06d326bbbd27916d573a617e94d4443546f179587209e2e04a6893aad25d3e - **D11 (2026-11-09, FREEZE Tier 1).** Selection rule for the Tier-1/2 confirmatory contrast recorded in PREREGISTRATION before the development results were read (eligibility = own-vector sufficiency ≥ 0.5; selected condition = best dev condition; contrast = selected minus best control on confirmatory queries). PREREGISTRATION.md sha256 at Tier-1 freeze: 85c5db69657144e6d6afecfb4fc346c2345d09455fb6134bee615567e5c705ad - **D12 (2026-11-09, amendment A1 before the Tier-1 confirmatory run).** Shuffled-query donor state reclassified from null control to mechanism diagnostic (it carries the task identity); both analyses reported. - **D13 (2026-11-09, amendment A2).** Tier-1/2 confirmatory runs load the development localization (layers, vectors) instead of re-localizing on confirmatory queries; first confirmatory run invalidated and re-run.