Two implementations, one specification, and no agreement on the number
gate/RESULT-DUAL.mdContents
Run: gate/dual.py → gate/dual.json Date:
2026-09-21. METHOD §9.3.1, dual_independent_implementation,
run for the first time.
Question or issue resolved
METHOD §12 condition 9 requires two independent raters. The register has one, so none of its sixteen issued readings is conformant, and that single fact blocks the published reliability statistics, the certification line and the interpretation standard the program has chosen to build first. §9.3.1 offers the route that does not require hiring anyone: two implementations written against the standard rather than against each other, with their disagreement retained permanently.
This runs it. Implementation A is the reference library the register
has always used. Implementation B is
pipeline/nooscope/pcist_b.py, written for this run.
Finding, before a line of code was written: the standard does not contain the computation
METHOD §2.1 does not specify the reference computation. It names
PCIst and delegates to "the reference library cited in §11" — a
pointer, not an algorithm. The published paper gives the
structure (SVD, component selection by variance and signal-to-noise,
per-component distance matrices for baseline and response, a threshold
sweep, the maximum ΔNST, summed across components) but the openly
reachable text supplies none of the operative details: not the SNR
definition or the role of k, not the range the distance
threshold is swept over, not how transitions are counted from a
thresholded matrix, not the normalization applied before the baseline is
subtracted.
A Nooscope reading is therefore not currently reproducible from published sources. It is reproducible by running one specific repository. For a standard whose §12 invites third parties to claim conformance, that is a defect at the foundation, and it is the first thing dual implementation surfaced.
Implementation B was built from the structure that is
specified, resolving five underdetermined points explicitly rather than
silently. Each is recorded in SPECIFICATION_GAPS and each
is a candidate amendment to §2.1.
The controls establish that this is a comparison of implementations
| control | result |
|---|---|
| B is deterministic on repeated input | yes |
| B returns zero on noise with no evoked response | 0.000 |
A reproduces gate/spread_real.json on the same
cells |
0.00% worst relative difference |
| A and B given byte-identical input, hashed per cell | 17 of 17 verified |
The last matters most. The evoked matrices, channel rules, trial rejection and parameter sets are computed once and handed to both, and the array is hashed before and after each call. What differs between the two columns is the computation and nothing else.
Finding: the absolute value is not reproducible, and it is not close
Seventeen cells — six mice across awake, isoflurane and recovery, plus one human subdural grid.
| statistic | value |
|---|---|
| Pearson r | +0.596 |
| Spearman ρ | +0.628 |
| ICC(2,1), raw | +0.043 |
| ICC(2,1), log scale | +0.103 |
| B/A median | 8.32× |
| B/A range | 3.76× to 35.67× — a 9.49× spread |
| Limits of agreement (ratio) | 3.27× to 31.49× |
ICC(2,1) is the statistic §9.3 requires for a scalar, and it is 0.043. That is not weak agreement; it is no agreement. Two implementations both consistent with the published specification produce values for the same evoked response that differ by between three and thirty-six fold.
And B is not simply a rescaled A. Removing the median 8.32× factor leaves a residual spread of 0.45× to 4.29× — still 9.49×. The unspecified choices do not shift the scale; they change the relative values.
This cannot be waved away as "implementation B is cruder." It may well be. The claim does not depend on B being as good as A: two implementations that each satisfy everything the specification actually says produce values that disagree by up to 36×, therefore the specification does not determine the value. A third party attempting conformance faces exactly this.
Finding: the ordering survives completely
| animal | A, awake/isoflurane | B, awake/isoflurane | direction |
|---|---|---|---|
| sub-521885 | 1.53× | 1.42× | same |
| sub-521886 | 4.47× | 1.94× | same |
| sub-521887 | 4.07× | 2.27× | same |
| sub-543393 | 2.32× | 2.75× | same |
| sub-543394 | 2.84× | 1.16× | same |
| sub-569070 | 2.56× | 1.80× | same |
Six of six. Every animal is ordered the same way by both implementations, while the magnitude of the separation disagrees by up to 2.5× within a single animal.
That is the whole result in one line: what a reading says about ordering is robust to the choices the standard fails to make; what it says about magnitude is not.
The band scale is therefore not a conservative design choice. It is the only claim this measurement currently supports. It also narrows something stated earlier the same day: paired contrasts were described as the more portable currency than absolutes, and they are — but only in sign. Their magnitudes are implementation-bound too.
Independence, stated rather than assumed
B was written from the specification without reading A's source in this session, by an author with prior exposure to A. That is weaker than two implementers who have never seen each other's work. Agreement here would have been weak evidence of correctness and is strong evidence only about the specification's sufficiency — and since the finding is disagreement rather than agreement, the caveat cuts in the safe direction: a genuinely independent implementer would be expected to diverge further, not less.
METHOD §9.3.1 is amended to separate full independence from a same-author pair rather than letting this run be recorded as something it is not.
Conclusion
The blocker is removed in the sense that matters and confirmed in the sense that hurts. A second implementation now exists, so a reading can declare a dual mode and the register can publish interrater statistics for the first time. The statistics it publishes are ICC(2,1) = 0.043 and limits of agreement spanning tenfold, and they go on the record at that value because publishing them only when they flatter is the failure mode §9.3 was written to prevent.
Three changes follow. §2.1 must specify the computation algorithmically rather than by pointer, and until it does, no absolute value may be compared across implementations. §9.3.1 must distinguish independence grades. And §2.2, which already says the number is "meaningful only by comparison," now has the measurement behind it: comparison is not merely the preferred use of the value, it is the only use that survives a change of implementation.
The scale work does not slow down for this. It speeds up — the band design was proposed on the strength of documented artifacts of 1.3× to 2.07×, and implementation choice alone is worth up to 36×. Every band boundary must sit outside that, which means the scale is coarser than proposed and rests on ordering rather than on magnitude.