# Oral-A preregistration: standard CIFAR residual networks ## Claim boundary and status This protocol asks whether the low-query learned-feedback backbone can train a standard deep convolutional family without reverse-mode credit assignment. It does **not** rescue the failed Oral-B biological-signature gate. With `nuisance_scale=0`, the predictor is inactive and SDIL reduces to learned direct-feedback calibration in the sense of Lansdell et al.; standard-network scaling is therefore an engineering/credit-assignment contribution, while the Harnett-specific innovation claim remains supported only in the separately audited mixed-traffic experiments. No CIFAR image/ResNet accuracy was observed before this protocol was frozen. Mechanics-only CPU checks are complete: standard ResNet parameter counts, option-A shortcuts, augmentation determinism, local Conv+BatchNorm eligibility, BatchNorm-coupled causal perturbations, running-stat isolation, and both apical vectorizers pass `experiments/cifar_image_smoke.py` and `experiments/conv_local_smoke.py`. ## Fixed data, architecture, and accounting - CIFAR-10 uses the original Python batches under `/home/yurenh2/sdrn/data`. - Development uses a 45,000/5,000 training-only stratified split with seed 2027, validation-index SHA-256 `8328b206a97c420e49e54e3eca4abe3274c4756b084355784ea3fb8059e4515b` and exactly 500 validation examples per class. - Training augmentation is random 32x32 crop after four-pixel zero padding and horizontal flip with probability 0.5. Validation/test are not augmented. - The architecture is the canonical CIFAR `6n+2` ResNet topology with 3x3 convolutions, BatchNorm, ReLU, global average pooling, and parameter-free option-A shortcuts. ResNet-20/32/56 contain respectively 269,722, 464,154, and 853,018 forward parameters. - BatchNorm's complete minibatch Jacobian is evaluated within its own layer. No local update reads a downstream forward weight. Counterfactual `+/-` trials are separate batches and do not update running statistics. - Because BatchNorm couples examples, causal calibration uses the batch-mean loss derivative multiplied by batch size. This is an unbiased estimate of the summed-loss hidden gradient. Logical batch queries, observed causal scalars, per-example CE terms, forward-equivalent examples, MAC components, peak memory, and wall time are all recorded separately. - SDIL uses one antithetic direction every four task updates (`K=1/every=4`), selected before this project reached convolutional models by the passed C3 gate. `sigma=0.01`; no direction/cadence tuning is allowed here. ## A1: establish a valid exact-BP reference The primary seed-0 ResNet-20 validation run uses 200 epochs, batch 128, SGD momentum 0.9, weight decay `1e-4`, learning rate 0.1 with 10x drops at epochs 100 and 150, and no warmup. It must reach at least 90% final validation accuracy with finite loss. If and only if the primary fails, one predeclared architecture-recovery run is allowed: cosine learning rate from 0.1, five warmup epochs, and weight decay `5e-4`, with everything else fixed. The higher final validation endpoint is selected; if neither reaches 90%, the current implementation is not a valid standard-network testbed and all later Oral-A stages stop. This recovery tests the forward architecture/optimizer, not SDIL. ## A2a: apical calibration screen with frozen forward weights On seed 0, ResNet-20, the first 10,000 post-split training examples, and 100 feedback-only minibatches, cross: - vectorizer: `spatial_template`, `channel_gated`; - initial feedback scale: `0`, `1`; - apical regression rate: `0.001`, `0.01`, `0.1`. Forward weights, BN affine parameters, and the readout remain bitwise fixed. Each run uses K1 antithetic BatchNorm-coupled calibration and a fixed 32-example training-prefix alignment probe. A candidate is eligible only if all values are finite and early-third teaching/negative-gradient cosine is positive. Within each vectorizer family, select maximum early-third cosine, then maximum all-layer mean cosine, then lower `eta_A`, then lower `a_scale`. Both families must yield an eligible candidate or A2 stops. The spatial template has one class vector per spatial unit. The channel-gated candidate shares `A c + tanh(h) * G c` over positions; at ResNet-56 it has 40,640 rather than 5,324,800 vectorizer parameters. This capacity/cost choice is frozen before accuracy is observed. ## A2b: bounded short accuracy screen Use seed 0, ResNet-20, 10,000 training examples, 20 epochs, final validation only, cosine decay, no warmup, momentum 0.9, and weight decay `1e-4`: - one exact-BP run at hidden/output LR 0.1; - DFA at hidden LR `{0.01, 0.03, 0.1}`, output LR 0.1; - each A2a-selected SDIL vectorizer at the same three hidden rates, output LR 0.1, its selected A hyperparameters, and 100 A-only warmup minibatches. Select DFA by maximum final validation accuracy, then lower MAC cost/rate. Select SDIL by maximum accuracy, except that a channel-gated candidate within 0.5 points of the global maximum wins; remaining ties use lower total MACs, then lower hidden rate. Advancement requires BP at least 50%, SDIL at least 35%, SDIL no more than 10 points below selected DFA, and all trajectories finite. Failure stops Oral-A rather than expanding the grid. ## A3: full seed-0 ResNet-20 development gate Train the A1-selected BP schedule, A2b-selected DFA, and A2b-selected SDIL for 200 epochs on all 45,000 training examples. DFA/SDIL retain their selected hidden base rate, use output base rate 0.1 and the same epoch-100/150 10x drops; SDIL retains its 100-step A-only warmup and K1/every4 joint calibration. No nuisance traffic or predictor learning is present. All of the following must hold to open the independent test panel: 1. BP final validation accuracy is at least 90%. 2. SDIL is within 5 points of BP and at least 2 points above tuned DFA. 3. SDIL early-third teaching alignment is at least 0.05. 4. Every loss/metric is finite and SDIL's estimated total training MACs do not exceed exact BP's estimate. No recovery branch follows an A3 failure. ## A4: independent ResNet-20/32/56 confirmation Only after A3 passes, run exact BP, selected DFA, and selected SDIL at depths 20, 32, and 56 for model/data-loader seeds 10--14. Hyperparameters and epoch budgets are copied without depth-specific tuning. Confirmation refits on all 50,000 original training examples (`val_examples=0`) after development has closed. The CIFAR-10 test set is evaluated exactly once at the end of every run; no intermediate test metric is logged or used for selection. The Oral-A gate requires: 1. all 45 trajectories are finite; 2. at every depth, mean SDIL test accuracy is within 2 points of exact BP; 3. at depth 56, SDIL exceeds DFA by at least 2 points; 4. paired SDIL depth-20 to depth-56 accuracy changes by no less than -2 points; 5. depth-56 early-third alignment is at least 0.05 and at least 30% of the depth-20 value; 6. SDIL remains nondominated among matched local methods in accuracy versus estimated MACs, logical causal queries, and peak memory. Wall time is shown but cannot substitute for these hardware-independent coordinates. Native BurstCCN and Dual Prop runs remain separate executable-fidelity comparisons because their architectures, epochs, and objectives differ. Their published multi-seed values are not pooled with this matched panel. ## Stop rules - No test seed 10--14 may be touched before A3 passes. - No failed threshold may be weakened after observing an endpoint. - No extra depth, direction count, perturbation frequency, vectorizer, or optimizer branch is added after its corresponding screen closes. - A strong standard-network result cannot be described as evidence that the natural Harnett causal-role/error-derivative signature emerged. ## Audited outcome (2026-07-22) - A1 passed the primary schedule at `91.62%` validation accuracy; the recovery branch was not used. - A2a selected both vectorizer families. A2b selected channel-gated SDIL at hidden LR `0.03`: `41.98%` versus tuned DFA's `37.16%` and BP's `74.94%`. - In A3, BP ended at `91.62%` and DFA ended finite at `33.06%`. SDIL became nonfinite at epoch 89 and ended at `10.00%`; its early-third alignment was nonfinite. It passed the BP and MAC checks but failed the four remaining checks. - A3 status is `failed`. A4 was not opened, no confirmation JSON was produced, and test seeds 10--14 remain untouched. No recovery or threshold change is permitted by this protocol.