Independent extension implementation audit
Scope: extension/run_extension.py, analyse_extension.py, config.json, PROTOCOL.txt, PROTOCOL_READABLE.txt, freeze.json, analysis_freeze.json, analysis_seed_clarification.json, truth_validation.json, adaptation_validation.json, and unchanged generator source. No main extension parent records, scientific summaries, or outcomes were opened. Source files unchanged. Analysis freeze hash was checked and matched the present file.

Conclusion
No statistical or indexing bug was found in the requested core procedures. The one protocol/code seed-description discrepancy is documented transparently in analysis_seed_clarification.json. It does not require a new experiment or a resampling change.

1. Counts and design
Config declares2designs*3targets*601replicates*2streams=7212independent parents. A needs2baseline sizes100,200. B needs8unique baseline sizes100,125,150,200,250,300,400,600 plus2anchors*4unequal ratios*5subsets=40subsetcalls, total48. Thus (2+48)*2*3*601=180300calls and18030000permutations, shared across five scores. Analysis has2*7*2*5=140comparison cells,1400score/procedure summary rows and700paired estimator rows. The misleading draft fragment in original frozen PROTOCOL.txt's stopping paragraph is cleaned only in READABLE copy; explicit authoritative counts in original are already correct.

2. Randomness and parent independence
Main data seeds include design,target,replicate,stream; A/B draws are independent even at equal targets. Data generation uses full600-row parents, and all sample-size cells are nested prefixes. Separate roles distinguish data, permutation and subset streams. All baseline/subset calculations use deterministic keys independent of worker order. Reusing parent replicate r across targets/cells is not treated as new independent data.
The initially frozen runner/config/protocol/source manifest does not contain analysis source. A separate10:59:12UTC analysis_freeze.json contains the current analyse_extension.py hash, which was verified. Do not collapse these two timestamps in provenance.

3. Truth and estimators
The six design-target entries, including new0.5targets, are supported by independent FFT/real-space agreement at~1e-14 and target errors below1e-8. Generator signal parameters are obtained by str(float(target)), matching the JSON keys0.4/0.5/0.6. Q1x has one active quadratic coordinate pair, independent nuisance coordinates, and(4,3)dimensions; it is not a dimension-controlled counterpart to scalar L1. Single-k adaptation validation records exact equivalence atL1/N100 andQ1x/N200,N600. This code-review independently inspects no new estimator values.

4. Min-N procedure
Because NB>=NA in every declared cell, retaining A and averaging five B subsets at sizeNA implements min(NA,NB). Each B subset samples distinct indices within its prefix; sorting indices does not select on values. Different subsets can overlap. Fresh preprocessing and permutations are performed on each subset. The analysis averages five SCORE vectors within each parent before constructing the B-minus-A comparison, so it does not pretend to have5*601independent replicates. At equal sizes min-N reuses the exact baseline. A synthetic two-parent test verified mean-of-five behavior and exact equal-size reuse without reading the scientific bank.

5. Sign and equal-information handling
The code defines truth difference=IB−IA, estimate difference=B−A, and correct=(estimated difference*truth difference)>0. This handles stronger dependence in A and B correctly, including negative true differences. Exact estimate ties are counted as not correct for a nonzero true difference and separately reported. For equal truth, probability_correct/Wilson fields, paired correctness improvement and McNemar fields are blank; only directional preferenceP(B>A), tie fraction and error/RMSE are reported. No false correct-ordering concept is applied to equality controls.

6. Paired uncertainty and tests
Bootstrap resamples601replicate IDs and uses each selected ID for both baseline and min-N vectors, preserving A/B pairing and subset aggregation. It never bootstraps individual observations or overlapping subsets. The same cell-specific bootstrap ID matrix is used for all estimators and metrics. This gives valid pointwise paired intervals and a useful common-resampling coupling; no simultaneous inference is claimed.
For correct-ordering change, improved counts(~p0&p1), worsened counts(p0&~p1), and exacttwo-sided Binomial(improved | improved+worsened,p=.5) implement the exact McNemar test. The degenerate no-discordance case returnsp=1. RMSE difference is recomputed from each resampled vector, rather than averaging per-record RMSE differences. Equal-size reuse yields exactlyzero paired changes.

7. Signed bias and absolute calibration
Difference bias is mean[(B−A)−(IB−IA)] and comparisonRMSE is sqrt(mean(error^2)). Side-specific absoluteRMSE uses the trueIA/IB and is computed for matched B after its five-subset average. A absoluteRMSE is unchanged by construction. The analyticGC score's absolute error includes its model-approximation error, consistent with the protocol. The empirical squared-bias/MSE fraction uses the identityMSE=mean(error)^2+mean[(error−mean(error))^2]; it is not an unbiased population decomposition estimate and should be labelled descriptive.
Raw-minus-centred correction tables report the paired raw−centred value, SD,RMS and quantiles for each side/procedure. These quantify the null-reference subtraction, not only a comparison of unrelated aggregate means.

8. Integrity and failure handling
The runner writes checkpoints atomically after every complete parent and requires matching task/config on resume. Failure aborts and is logged, rather than silently dropping a replicate. Analysis requires the exact parent count, rejects duplicates/nonfinite scores and malformed subset indices, and accesses every expected baseline/subset key; missing designated records prevent output. It checks total180300calls and exact equal-size reuse. The final archive should additionally include normal SHA256 checksums for all delivered outputs, as already planned by root.

9. Documented seed-schema discrepancy
Original protocol says analysis streams include estimator and metric keys and generically describes the nine-element main seed schema. Actual separately frozen analysis uses six-element key(1,design_index,comparison_index,anchor_index,ratio_index,3), sharing the2000x601bootstrap matrix within each cell. The analysis role3 cannot coincide with main roles0,1,2 at the corresponding position. extension/analysis_seed_clarification.json now records both the shorter schema and shared resampling, with statements that outcomes had not been inspected and scientific code/settings were unchanged. This is an implementation clarification, not retrospective preregistration or justification for altering results. The current valid implementation should remain unchanged.

10. Reporting limits
601replicate probabilities target roughly±4percentage-point pointwise95%normal precision nearp=.5, not guaranteed precision for every metric or gridwide coverage. McNemar and paired intervals are pointwise and descriptive across the large collection of cells. Geometries are previously used designs; only independent seeds and new settings are prospectively evaluated. Full bank completion remains required before any scientific result is reported. No outcome-based cell selection or new estimator tuning is supported by this audit.
