validation/mast_dbdt_authority.py is the second L2F-12d admission gate. It
protects canonical dBdt_gauss_per_s from a source-quantity ambiguity in the
centre-column poloidal Mirnov array. The gate measures metadata, geometry,
finite coverage, and timebase facts, but never differentiates, filters, reduces,
fills, or converts a source trace.
The historical replay candidate selects the first row, replaces non-finite
values with zero, applies np.gradient(field, time) * 1e4, and then takes a
per-bin peak magnitude. This is retained only as a compatibility recipe. It is
not an authoritative physical binding because the source metadata conflicts:
- the pinned FAIR-MAST profile maps five
xmc/CC/MV/*channels intob_field_pol_probe_cc_field, declares unitsT, and applies a2e-6scale; - the live array label says
Tesla/sec, while its top-level units remainT; - the MAST magnetic-diagnostics paper describes the relevant fast centre-column Bv-coil output as non-integrated; and
- the acquired artefact does not preserve a declaration resolving whether its stored values represent magnetic field or its time derivative.
Treating a derivative source as field would differentiate twice. Treating a
field source as an existing derivative would omit the derivative. Numeric
smoothness, magnitude, a name containing field, or a label containing
Tesla/sec cannot resolve that choice.
Primary sources:
- Pinned FAIR-MAST centre-column profile
- Pinned FAIR-MAST geometry mapping
- MAST magnetic-diagnostics paper
- UKAEA-hosted paper
A future source can clear the gate through exactly one branch:
| Attested source quantity | Required source units | Only admissible transform |
|---|---|---|
| magnetic field | T |
differentiate once in physical time, then multiply by 1e4 G/T |
| magnetic-field time derivative | T/s |
do not differentiate; multiply by 1e4 G/T |
The contract units must exactly match the observed array metadata. Its own schema, pinned mapping commit/file digest, and canonical JSON digest are recomputed, so a post-attestation mutation cannot silently change branch or mapping lineage. Neither branch is executed by the authority gate.
Resolving the quantity alone is insufficient. The source must also attest:
- the ordered five source rows
201, 210, 220, 230, 240; - the complete ordered geometry inventory
201…240, finite phi/r/z values, and exact source-to-geometry indices0, 9, 19, 29, 39; - the dimensional meaning of the mapping scale and its evidence digest;
- measured component, probe orientation, and sign convention;
- probe reduction, missing-data, and bad-channel policies;
- filter and edge policies with a positive cutoff below source Nyquist;
- calibration evidence and positive one-standard-deviation uncertainty;
- released, signed geometry with a creator commit and value digests; and
- the pinned primary-source citations and a self-consistent authority digest.
The source timebase must be finite, strictly increasing, and uniform. Existing non-finite samples remain blockers; the gate never changes them to zero.
Generation-pinned shots 30421 and 30424 contain five field rows with 382,601
and 398,201 samples respectively. Both have a measured period of approximately
2e-6 s, or 500 kHz, and every field row has one non-finite value at index zero.
The source exposes three 40-element geometry arrays, but their metadata still
uses the combined unit string SI, degrees, m, a development revision, and no
creator commit. It preserves neither the mapping-scale declaration nor an
authority contract.
Both shots therefore remain blocked on the metadata-unit/label conflict,
missing scale semantics, non-finite first samples, unreleased geometry, absent
geometry creator commit, and absent dB/dt authority contract. Canonical binding,
training, scientific validation, facility prediction, and control admission all
remain false.
The deterministic reports are:
.coordination/evidence/SCPN-CONTROL/l2f12d_mast_dbdt_authority_2026-07-23T002907Z.json.coordination/evidence/SCPN-CONTROL/l2f12d_mast_dbdt_authority_2026-07-23T002907Z_repeat.json
They are byte-identical with file SHA-256
8ae8c8e5c43b621995727f562d8097673910f3c9c8cc44bae720b6f790617a84
and payload digest
39c4d603e5275d6f1902d26f032dd870e7f319c936b9506b25c0e5e505604736.
Run only against a verified SourceObjectManifest-v2 root:
python -m validation.mast_dbdt_authority \
--manifest /external/source-v4/source_object_manifest.json \
--artifact-root /external/source-v4 \
--shot-id 30421 --shot-id 30424 \
--json-out /external/l2f12d-dbdt-authority.jsonThe output is exclusive-create, deterministic, and self-digested. It contains metadata, shapes, finite-sample positions, timebase measurements, blockers, and digests only; it contains no raw or derived magnetic trace.