Skip to content

Measurement

What an adapter update's direction reveals: initialization first, training length second, source barely

datasets/results/adapter-geometry-s1.json, scripts/adapter_geometry.py. RQ2's per-client question in its simplest form: is a LoRA update's direction in weight space closer to updates from its own organization? The cosine between two updates dW = (alpha / r) B A, for every pair of the 35 saved adapters and all 196 adapted modules, computed through r x r traces without forming dW. Run from a worktree pinned at e23b905 so the queued jobs' checkout was untouched; CPU only, three minutes. Weight-space provenance is established for the training objective (Paul, arXiv:2604.08844, AUC 1.00 from spectral features), which names "organic drift from distributional shift", the same objective on different data, as untested. This is that case.

An interval that spans the seeds: built, reviewed, and its coverage measured

sphragis/measure/stats.py crossed_bootstrap, sphragis/experiment/walk.py crossed_gate. Seeds and changes are crossed, every seed scoring every change, so the interval is Owen's pigeonhole bootstrap (Ann. Appl. Stat., 2007): one draw of seeds and one of changes, independent and with replacement, the statistic over their intersection. A nested bootstrap (changes, then runs within each) would treat a seed's shift as independent per change and average it away; an industry comparison of that nested form found it very conservative, 98 to 99% coverage against 95 (Indeed Engineering, July 2026). Built beside the registered gate, not registered.

Both halves carrying a convention: the gate passes on both

datasets/results/calibration-sym-0.25.json. The symmetric calibration: half a carries # approved on 25% of refinements, half b carries # reviewed on 25%, equal-length markers, neither half convention-free. This is the realistic case, two organizations each with their own habit, and it is the case the asymmetric sweep could not speak to.

The interval measures one source of variance of two, and a null crossed zero

Corrected later on 2026-09-18. The inference below overreaches. The run-to-run swing is what seed-by-change noise produces (z = -1.47 and 0.00 against it), and a single-seed change bootstrap already carries that noise. The only variance it omits is a seed main effect, which two runs give no evidence of. The retraction of single-seed results and of the conjunctive power is withdrawn pending a measurement. See "The run-to-run swing is noise the interval already carries" below.

The contrast is not blind

datasets/results/calibration-marker-1.json. One organization's train window split into two halves that no change spans, a fixed annotation appended to every refinement in the second, and the identical matched-versus-mismatched contrast RQ1 uses.