{
  "version": 7,
  "updated": "2026-09-11",
  "result_convention": {
    "full_s_matrix_shape": "(n_ports, n_ports, n_freqs)",
    "frequency_shape": "(n_freqs,)",
    "indexing": "S[receiver_port, driven_port, frequency_index]",
    "magnitude_metric": "*_mag_abs_diff is an absolute difference in linear magnitude unless dB is stated explicitly"
  },
  "port_families": [
    {
      "primitive": "add_port(extent=None)",
      "family": "lumped_port",
      "is_port": true,
      "support_status": "limited",
      "calculation_api": [
        "Simulation.run(compute_s_params=True, s_param_freqs=...)",
        "Simulation.forward(port_s11_freqs=...)"
      ],
      "result_type": [
        "Result.s_params / Result.freqs",
        "ForwardResult.s_params / ForwardResult.freqs (S11 vectors only)"
      ],
      "supported_configurations": [
        "uniform_yee_rf"
      ],
      "validation_status": "Limited to the uniform-grid one-cell impedance model. Analytic extractor, real V/I replay, three-case replay/passivity/reciprocity, and narrow rfx/OpenEMS PEC-box magnitude checks exist. Broad matched/open/short/load external validation is absent.",
      "known_limits": [
        "nonuniform lumped-port S-parameter extraction is unsupported",
        "forward(port_s11_freqs=...) is uniform and single-device only",
        "TFSF, waveguide ports, and mixed port families are unsupported in the same S-parameter calculation",
        "automatic runtime checks cover non-finite and excessive individual |S| values; they do not apply the full column-power guard"
      ],
      "evidence_level": "E2/E3/E4-partial",
      "validation_gaps": [
        "missing broad external matched/open/short/load comparison",
        "missing broad mesh, frequency, and geometry validation range"
      ],
      "evidence_artifacts": [
        "tests/unit/sparams/test_sparam.py",
        "tests/oracle/test_physics.py::test_two_port_reciprocity",
        "tests/unit/runners/test_simulation.py::test_s_matrix_two_port_reciprocity",
        "tests/unit/sparams/test_port_dump_replay.py",
        "scripts/diagnostics/generate_lumped_port_vi_dump.py",
        "scripts/diagnostics/replay_port_vi_dump.py",
        "scripts/diagnostics/report_lumped_analytic_oracles.py",
        "scripts/diagnostics/report_lumped_replay_sweep.py",
        "scripts/diagnostics/build_lumped_openems_sparameter_comparison.py",
        "scripts/diagnostics/build_lumped_openems_sweep_comparison.py"
      ],
      "numeric_metrics": [
        "analytic open/short/matched/resistive/reactive/RLC extractor max_abs_diff 7.91e-8 <= 2.20e-6",
        "real two-port V/I replay and uniform-grid replay/passivity/reciprocity checks exercise driven-port extraction; numerical residuals must come from current replay records",
        "three-case rfx/OpenEMS PEC-box position comparison: max case max_mag_abs_diff 0.11835 and max case mean_mag_abs_diff 0.06466"
      ],
      "validated_scope": "Uniform Yee grid and one-cell lumped impedance model. The listed external cases are narrow PEC-box comparisons, not a general calibrated-port validation.",
      "caveats": [
        "extractor checks validate V/I-to-S algebra, not the full FDTD port calibration",
        "V/I replay validates reproducibility, not broad absolute RF accuracy",
        "one-cell feed results must not be generalized to a transmission-line mode"
      ],
      "ad_traceable": "yes",
      "ad_evidence": "jax.grad through forward(port_s11_freqs=...): tests/unit/autodiff/test_s11_at_freq.py and tests/unit/autodiff/test_minimize_s11_at_freq_physical.py"
    },
    {
      "primitive": "add_port(extent=...)",
      "family": "wire_port",
      "is_port": true,
      "support_status": "limited_uniform_experimental_nonuniform",
      "calculation_api": [
        "Simulation.run(compute_s_params=True, s_param_freqs=...)",
        "Simulation.forward(port_s11_freqs=...)"
      ],
      "result_type": [
        "Result.s_params / Result.freqs",
        "ForwardResult.s_params / ForwardResult.freqs (S11 vectors only)"
      ],
      "supported_configurations": [
        "uniform_yee_rf",
        "nonuniform_graded_z_experimental"
      ],
      "validation_status": "Limited one-cell transverse-feed result. Uniform-grid V/I replay, replay/passivity/reciprocity, patch/OpenEMS magnitude, and a three-case mesh/length OpenEMS comparison exist. Absolute modal calibration remains limited. Nonuniform use is experimental.",
      "known_limits": [
        "wire ports are one-cell transverse feed models, not full microstrip or modal ports",
        "forward(port_s11_freqs=...) is uniform and single-device only",
        "nonuniform regression and AD coverage are not external RF validation",
        "automatic runtime checks cover non-finite and excessive individual |S| values; they do not apply the full column-power guard"
      ],
      "evidence_level": "E2/E3/E4-partial",
      "validation_gaps": [
        "missing a resolved or explicitly bounded absolute calibration convention",
        "missing broader external validation outside the cited probe-feed cases"
      ],
      "evidence_artifacts": [
        "tests/unit/sparams/test_twoport_wire_port.py",
        "tests/unit/sparams/test_wire_sparam.py",
        "tests/unit/sparams/test_wire_port_sparams_forward.py",
        "tests/unit/sparams/test_port_dump_replay.py",
        "scripts/diagnostics/generate_wire_port_vi_dump.py",
        "scripts/diagnostics/replay_wire_port_vi_dump.py",
        "scripts/diagnostics/report_wire_replay_sweep.py"
      ],
      "numeric_metrics": [
        "patch/OpenEMS S11 magnitude over 1.5--3.4 GHz: max_mag_abs_diff 0.05318 and mean_mag_abs_diff 0.02750; phase not gated",
        "three-case replay check: max replay diff 8.20e-8, max column power 0.979, max reciprocity diff 1.24e-6",
        "real two-port V/I replay over 7 frequencies and 2 ports: max_abs_diff 7.82e-8 <= 9.80e-7",
        "three OpenEMS mesh/length cases over dx 1--2 mm, wire length 4--8 mm, and 0.8--1.8 GHz: max_mag_abs_diff_across_cases 0.05212"
      ],
      "validated_scope": "Uniform-grid one-cell probe/wire feed in the cited resonance and two-port cases. Nonuniform use is experimental.",
      "caveats": [
        "patch resonance evidence is stronger than absolute S11 calibration evidence",
        "V/I replay validates reproducibility, not general calibrated-port accuracy",
        "the off-diagonal replay follows the current per-cell impedance convention and is not modal-port calibration"
      ],
      "ad_traceable": "yes",
      "ad_evidence": "jax.grad through forward(port_s11_freqs=...): tests/unit/sparams/test_wire_port_sparams_forward.py"
    },
    {
      "primitive": "add_msl_port(...)",
      "family": "microstrip_line_port",
      "is_port": true,
      "support_status": "limited_uniform_experimental_nonuniform_eigenmode_unsupported",
      "calculation_api": [
        "Simulation.compute_msl_s_matrix(...)"
      ],
      "result_type": [
        "MSLSMatrixResult.S / freqs / Z0 / beta / port_names / reliable / reference_impedances"
      ],
      "supported_configurations": [
        "uniform_yee_rf_specialized",
        "nonuniform_laplace_feed_experimental"
      ],
      "validation_status": "E5-narrow for the uniform laplace/quasi-TEM thru and notch configurations. The committed OpenEMS notch comparison is characterized rather than tight. Nonuniform laplace/uniform mode has internal regression coverage only. Eigenmode is unsupported.",
      "known_limits": [
        "nonuniform mode=laplace or mode=uniform has no external comparison",
        "S uses positive real analytic power-wave references exposed in reference_impedances, separately from fitted Z0 and source/load resistance; unequal-reference transmission changes from legacy voltage ratios",
        "Result.s_params is not used; call compute_msl_s_matrix(...)",
        "outside JAX tracing, reliable[p,k]=false invalidates the whole slice S[:,:,k] (S is solved jointly across drives, #507); the mask covers every driven/port record the solve consumes (#522); true is not an accuracy guarantee",
        "mode=eigenmode, SBP-SAT subgridding, ADI, TFSF, and mixed port families are unsupported",
        "strong-reflector |S11|'s ~0.16--0.22 staircase-Z0 floor is RETIRED (#511/#507 extractor defects, PR #516/f95240f, issue #487); a smaller floor survives, tracking |Gamma_implied|=|(Z0-Z0_HJ)/(Z0+Z0_HJ)| within ~1.3x over 5 of 6 #487 re-sweep points, but below |Gamma_implied|~0.006 the sweep cannot resolve whether the mechanism still holds (band-mean-Z0 vs band-mean-|S11| comparison, no per-bin trace, fitted-Z0 estimator only +/-10% healthy) -- a resolution limit, not a confirmed second mechanism; no single envelope number is published either way, since even where it holds the floors are fixture-specific; see scripts/diagnostics/msl_z0_bias_floor_sweep.py",
        "the automatic guard includes full driven-column power; passing it is not an accuracy guarantee",
        "the auto n_probe_offset solves the upstream/downstream clearance interval at driver time and warns loudly when a short feed cannot satisfy both (#469); library witness probes are excluded from preflight advisories and the #332 tail advisory (#470)",
        "surface-impedance (surface_impedance_f0) sheets are applied on this lane's device runs (#679; realized on its node plane by the #677 per-step operator inside run()/forward()); the trace itself must remain hard PEC (a Box volume, a zero-thickness Box, or a PEC add_thin_conductor sheet) because the Ampere-loop current and V span anchor on realized PEC wall planes and an f0 sheet realizes no PEC edge; the lane finds the trace through realized_wall_planes, so a sheet-declared trace works (#931); combination refusals (dispersive, subpixel/conformal, UPML, ADI/subgridded/distributed) fire at the run-lane entry; a sheet inside a probed span biases the lossless-line N-probe Z0/q fit while the V-I S extraction stays valid; the mixed (wire+MSL junction) lane still refuses f0 sheets"
      ],
      "evidence_level": "E5-narrow/eigenmode-blocked",
      "validation_gaps": [
        "missing external validation for nonuniform laplace/uniform mode",
        "missing broader mesh, frequency, and substrate-cell validation outside the cited configurations"
      ],
      "evidence_artifacts": [
        "tests/unit/sparams/test_msl_port_integration.py",
        "tests/unit/sparams/test_msl_null_reliability_mask.py",
        "tests/fixtures/msl_replay_accumulators.npz",
        "tests/crossval/msl_notch_filter/test_msl_notch_filter.py",
        "tests/unit/ports/test_msl_source_fixture_static.py"
      ],
      "numeric_metrics": [
        "uniform thru-line: |S21| in (0.90, 1.05) and Re(Z0) in (40, 65) ohm for the cited dx=80 um setup",
        "eps_override gradient on band-mean |S21|^2: float32 AD versus explicit float64-field FD; relative error about 0.00058 at 20 periods and h=1e-3, with the unchanged 0.03 gate (issue #729, VESSL 369367260436). The source reaches the actual 254um trace plane and excites every fixed objective bin; wave-split low-signal and settling checks pass. Raw V/I, wave matrices, S, and field dtypes are retained in docs/research_notes/issue729/gpu-observable-ad-369367260436/. This is a narrow AD acceptance result, not absolute RF calibration.",
        "MSL de-embedded phase vs an external openEMS referee (issue #490 Lane 2, VESSL run 369367251705), both solvers' measurement planes at the same physical coordinate: raw cross-solver angle(S21) difference <= 0.304 degrees over 3.0--4.5 GHz and <= 1 degree in 22 of 30 bins over 0.5--5 GHz; per-solver self-consistency (each solver's own angle(S21) against its own measured beta) is 0.642 degrees (openEMS) and 0.121 degrees (rfx) against a 3-degree budget; a conjugate time-convention mismatch would read about 102 degrees at 5 GHz where the measured disagreement is 0.131 degrees"
      ],
      "validated_scope": "Uniform Yee laplace/quasi-TEM MSL calculator for the cited thru and notch configurations. Nonuniform mode is experimental and eigenmode is unsupported.",
      "caveats": [
        "the external notch comparison is characterized, not a tight cross-solver match",
        "low-signal mask semantics are documented in docs/public/measure/s-parameters.mdx#low-signal-msl-bins",
        "do not generalize matched/thru/notch evidence to strong reflectors or arbitrary launches",
        "scripts/diagnostics/replay_msl_3probe_dump.py is SUPERSEDED: retired raw_v123/single-ratio schema v1, does not run against schema_version>=3 dumps (raises a clear error rather than a bare KeyError); current independent check is scripts/diagnostics/msl_vi_flux_oracle.py"
      ],
      "ad_traceable": "yes",
      "ad_evidence": "Current qualification: tests/unit/autodiff/test_msl_ad_fd_converged.py, issue #729, VESSL 369367260436. Float32 AD and actual float64-field FD agree to about 0.00058 relative error under the original 0.03 gate, h=1e-3, and 20-period record. Both drives settle below -124 dB and all fixed objective bins pass the wave-split low-signal screen. The uniform-permittivity eps_override varies around 1 with nominal source/reference models fixed. See docs/research_notes/issue729/ad-referee-diagnosis.md for scope and raw evidence. Historical #530/#560 numbers and anchor-mechanism claims apply to the old fixture; final-loss ULP resolution alone does not establish field evaluation precision or FD-step validity."
    },
    {
      "primitive": "add_waveguide_port(...)",
      "family": "rectangular_waveguide_port",
      "is_port": true,
      "support_status": "limited_uniform_experimental_nonuniform",
      "calculation_api": [
        "Simulation.compute_waveguide_s_matrix(...) for a full multi-port S-matrix",
        "Simulation.run(...) for single-port waveguide_sparams diagnostics"
      ],
      "result_type": [
        "WaveguideSMatrixResult.s_params / freqs / port_names / port_directions / reference_planes",
        "Result.waveguide_sparams[name] for run() single-port diagnostics"
      ],
      "supported_configurations": [
        "uniform_yee_rf",
        "nonuniform_transverse_dx_dy_restricted",
        "nonuniform_dz_dispatch_wired_accuracy_pending"
      ],
      "validation_status": "Broad magnitude evidence covers documented uniform single-mode rectangular guides: analytic fixtures across five WR bands and Palace WR-90 empty, PEC-short, and slab comparisons. Issue #490 Lane 1 adds an Airy PHASE envelope over the SAME five WR bands and 20 mesh/geometry cases (reference-plane-corrected; max phase diff 11.99 degrees against a measured gate of 15.0 degrees), re-analyzing the npz/manifest pair that produced the committed magnitude envelope (restored locally for that analysis -- .omx is gitignored and not present in the tree; no new FDTD run for that sweep). Issue #490 Lane 3 adds a near-cutoff group-delay gate on a purpose-built empty WR-340 fixture (f/fc in [1.152, 1.498]): -d(angle(S21))/d(omega), compared against the analytic L_eff/v_g(f) oracle run through the SAME finite-difference stencil (a like-for-like comparator), matches to 0.0320 ns against a pinned gate of 0.042 ns. Junction and other-configuration phase/group-delay evidence remain narrower -- see caveats. Nonuniform single-mode normalize=True and normalize=flux run. The Palace magnitude comparison covers normalize=flux, graded-dy ratio 2, WR-90 empty/PEC-short/dielectric-slab cases, and 8.2--12.4 GHz; other nonuniform configurations remain experimental. CHAIN-CLOSURE STATUS (v1.8): chain-closed (v1.8) for the uniform single-mode guide on the normalize=False and normalize=flux lanes, after three pre-declared WR-90 runs of the chain battery of docs/design_notes/chain_closure_contract.md (VESSL run 369367257823 / 369367258205 / 369367258638); on the third, contract criterion 1 (forward identity) and 3(a) (AD-vs-FD) are read under x64 on the normalize=flux lane with the forward default still float32 and the float32 reading stored beside every leg, and the pre-declared zero-derivative AD leg is report-only, not pass. Junctions, multimode extraction and nonuniform meshes are outside the declaration, the phase referee is analytic Airy only, and chain-closed is not 'supported' -- the row stays limited. Numbers, per criterion, in numeric_metrics.",
      "known_limits": [
        "compute_waveguide_s_matrix(...) requires at least two waveguide ports",
        "multimode normalize=True is unsupported",
        "nonuniform external magnitude evidence is limited to normalize=flux, graded-dy ratio 2, WR-90 empty/PEC-short/dielectric-slab cases, and 8.2--12.4 GHz",
        "a dz_profile-only mesh dispatched to the UNIFORM lane until #811 (fixed 2026-09-01): the graded mesh was silently ignored while preflight described it; dz_profile now dispatches to the nonuniform lane under the same normalize=True/flux single-mode restrictions, and no dz-graded accuracy evidence exists yet (#810) -- the nonuniform Palace evidence above is graded-dy only; the nonuniform lane now carries the same settling_db ring-down witness and -40 dB aggregate warning as the uniform single-mode lane (#827 waveguide instance)",
        "nonuniform eps_override and sigma_override AD are implemented only for normalize=flux; only eps_override has a nonuniform AD-vs-FD regression test, and that test is not RF validation",
        "lumped ports, TFSF, and manual periodic-axis overrides are incompatible",
        "branches, T-junctions, and septa require per-port matched straight-guide references and far-port placement; compact arbitrary junctions are not covered",
        "the automatic guard includes full driven-column power; passing it is not an accuracy guarantee",
        "the E4-external leg of the rectangular_waveguide_port broad-E5 chain is current and committed: the artifact was refreshed from VESSL 369367260736 on producer commit 8206031d after the cv11 dielectric slab was lattice-aligned. Palace slab S11 reads max 0.0193 and mean 0.007767, with five pairs passing the unchanged 0.1/0.07 tolerances. The historical 2026-06-16 0.0707/0.00943 record, the pre-fix 0.1500 current-main result and the 11-node-to-10-mm A/B are preserved in the artifact provenance and design note; this is evidence for the stated uniform single-mode recipe, not a general phase/junction/nonuniform claim.",
        "chain-closed (v1.8) is a statement about the uniform single-mode guide on the two differentiable lanes with contract criterion 1 (forward identity) and 3(a) (AD-vs-FD) read under x64 on the normalize=flux lane: the float32 forward identity on that lane misses the rtol=1e-5, atol=1e-7 bound at 1.083 / 1.515 / 1.761 scaled (run 2's reading, stored beside every leg of run 3 -- float32 reassociation of the 2849-step Poynting DFT under the reverse-mode tape), so a float32 gradient pipeline on the flux lane is outside the declaration; normalize=False is bit-identical at 0 in float32 and is not declared; the pre-declared zero-derivative AD leg (PEC-short |S11|^2 under eps_override, flux) is report-only, its x64 AD -2.943e-7 and FD -5.154e-8 a factor 5.7 apart, outside the factor-3 band",
        "power closure is BOUNDED, not demonstrated: at the coarse rung two interior add_flux_monitor planes and the port route agree to within the column-power tolerance, but both sit at the float32 field-noise floor of that rung, so the witness caps the disagreement rather than resolving it. The witness is independent in the PLANE INDEX ONLY - both routes integrate the same transverse window with the same uniform dA through the same flux kernel, so an area-weighting or shared-kernel error cancels in both ratios, and neither route sees the reference-plane de-embedding, which is phase-only. That measurement landed on main in PR #870 (1bccdfba)",
        "accuracy statement for the normalize=False lane (issue #873, closed 2026-09-21 as a stated accuracy, not a defect): on an EMPTY WR-90 guide it reads column power 1.0061 / 1.0012 / 1.0003 at a/9, a/18, a/36 (0.027 / 0.005 / 0.001 dB; fixture_v18_close.json, the gated artifact), falling 5.3x and 4.6x per dx halving; run 1 (fixture.json) read 1.825e-2 there but measured the N+1-cell port of #868 and is history. The flux lane's empty-guide reading is a construction (its reference run is the device run), so the comparisons that carry weight are the eps_r = 4 slab in the same artifact, power closure 7.11e-3 on this lane against 1.10e-4 on the flux lane at the coarse rung, and the interior monitors, which put the slab's physical imbalance at 6.887e-05. Mechanism named in docs/design_notes/waveguide_driven_plane_near_field_composition_results.md, measured on the same artifact: the templates are cell-centred while Ez and Hy are node-registered in the broad-wall direction; the half-cell offset launches a TE20 near field at the driven port and reads it back as TE10, second order in dx; TE20's decay matches the attenuation constant tabulated before the run to within 1.2-2.9 percent; the note's pre-declared rule came out NOT CONFIRMED because it named TE30. Not gated"
      ],
      "evidence_level": "E5-broad-magnitude/E4-external/phase-e5-slab-broad/group-delay-e2-near-cutoff",
      "validation_gaps": [
        "broader external comparisons for other nonuniform profiles, bands, modes, phase, and junctions",
        "phase evidence covers only the single-dielectric-slab configuration across the five WR bands; PEC-short, T-junction, nonuniform, and multimode phase remain uncharacterized",
        "group delay is gated only on the WR-340 empty-guide near-cutoff oracle (f/fc 1.152-1.498); other bands, obstacles, and multimode group delay are not covered",
        "missing multimode and arbitrary-junction validation",
        "chain closure: closed (v1.8) for the uniform single-mode battery only; power closure is bounded at the float32 noise floor rather than resolved, by a witness independent in the plane index only; the normalize=False extractor's empty-guide column power is a stated accuracy of that lane (issue #873, closed); nonuniform, junction and multimode gradient chains are not measured"
      ],
      "evidence_artifacts": [
        "tests/oracle/test_waveguide_port_validation_battery.py",
        "tests/unit/sparams/test_waveguide_phase_gate.py",
        "tests/unit/sparams/test_waveguide_twoport_contract_v1.py",
        "tests/fixtures/waveguide_broad_e5/wr90_rectangular_broad_e4_comparison.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr28_kaband_broad_e5_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr62_kuband_broad_e5_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr15_vband_broad_e5_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr340_sband_broad_e5_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr10_wband_broad_e5_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr28_kaband_broad_e5_phase_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr62_kuband_broad_e5_phase_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr15_vband_broad_e5_phase_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr340_sband_broad_e5_phase_envelope.json",
        "tests/fixtures/waveguide_broad_e5/waveguide_wr10_wband_broad_e5_phase_envelope.json",
        "tests/fixtures/waveguide_broad_e5/phase_falsifier_and_domain_invariance.json",
        "tests/fixtures/waveguide_group_delay/wr340_near_cutoff_group_delay_envelope.json",
        "tests/crossval/test_waveguide_broad_e5.py",
        "tests/crossval/test_waveguide_broad_e5.py",
        "tests/oracle/test_waveguide_group_delay_near_cutoff.py",
        "tests/oracle/test_waveguide_group_delay_tolerance_envelope.py",
        "scripts/diagnostics/build_waveguide_band_broad_e5_phase_envelope.py",
        "scripts/diagnostics/waveguide_phase_falsifier_and_domain_invariance.py",
        "scripts/diagnostics/build_waveguide_near_cutoff_group_delay.py",
        "scripts/diagnostics/build_waveguide_group_delay_envelope.py",
        "tests/fixtures/waveguide_nu_broad_e5/waveguide_wr90_nu_flux_broad_e5_envelope.json",
        "tests/fixtures/waveguide_nu_broad_e4/waveguide_wr90_nu_flux_broad_e4_comparison.json",
        "tests/fixtures/waveguide_tjunction_e4/waveguide_tjunction_meep_external_comparison.json",
        "tests/unit/autodiff/test_waveguide_nu_flux_ad.py",
        "tests/oracle/test_waveguide_chain_battery.py",
        "tests/unit/geometry/test_waveguide_chain_battery_geometry.py",
        "tests/fixtures/waveguide_chain_battery/fixture.json",
        "docs/design_notes/waveguide_chain_battery_predeclaration.md",
        "docs/design_notes/chain_closure_contract.md",
        "scripts/diagnostics/waveguide_chain_battery_measure.py",
        "scripts/vessl_waveguide_chain_battery.yaml",
        "tests/oracle/test_waveguide_chain_battery_guide_cell_aperture.py",
        "tests/oracle/test_waveguide_chain_battery_v18_close.py",
        "tests/fixtures/waveguide_chain_battery/fixture_guide_cell_aperture.json",
        "tests/fixtures/waveguide_chain_battery/fixture_v18_close.json",
        "tests/fixtures/waveguide_chain_battery/README.md",
        "docs/design_notes/waveguide_chain_battery_remeasure_predeclaration.md",
        "docs/design_notes/20260905_v18_close_predeclaration.md",
        "scripts/vessl_waveguide_chain_battery_guide_cell_aperture.yaml",
        "scripts/vessl_waveguide_chain_battery_v18_close.yaml",
        "tests/_waveguide_chain_battery_gates.py"
      ],
      "numeric_metrics": [
        "uniform empty guide max |S11| < 0.02 and max column power < 1.02",
        "uniform PEC short min |S11| >= 0.99 and max |S11| < 1.03",
        "Current-main refreshed Palace WR-90 empty/PEC-short/slab comparison over 8.2--12.4 GHz (VESSL 369367260736, producer commit 8206031d): max_mag_abs_diff 0.0193 and mean_mag_abs_diff 0.001953, all five pairs passed unchanged tolerances. The historical June 0.0707/0.00943 artifact, August pre-#931 0.0186--0.0194 record, current-main pre-fix 0.1500/0.1055 failure and 11-node-to-10-mm material A/B are preserved under `tests/fixtures/waveguide_broad_e5/wr90_rectangular_broad_e4_comparison.json::provenance.refresh_2026_09_13`; no tolerance moved and no general phase/junction/nonuniform claim follows. The producer uses normalize=True for empty/slab and False for PEC short; this is not flux or AD validation. June-to-August attribution remains unresolved; the material A/B explains September only.",
        "uniform analytic WR-band slabs with normalize=flux: per-case |S11| differences 0.005--0.041",
        "issue #490 Lane 1 broad-E5 Airy PHASE (same 5 WR bands / 20 cases as the magnitude envelope, reference-plane-corrected): max phase diff 11.99 degrees against a measured-envelope gate of 15.0 degrees; planted-defect falsifier (the wrong pre-session S21 reference-plane formula) reds at 179.87 degrees; domain-size invariance witness (WR-340, +100mm growth) holds the pass verdict (8.92 -> 7.73 degrees)",
        "issue #490 Lane 3 near-cutoff group delay (empty WR-340, f/fc in [1.152, 1.498], L_eff=0.320m): -d(angle(S21))/d(omega) central-difference vs analytic L_eff/v_g(f) run through the SAME stencil (like-for-like comparator), max interior diff 0.0320 ns against a pinned-constant gate of 0.042 ns (raw diff vs the exact closed-form derivative is 0.0248 ns, recorded for context but not gated -- the stencil's own 0.0072 ns truncation error has the opposite sign and would otherwise flatter the headline); record-length settling witness (num_periods 60 vs 120) agrees to 0.000 ns; domain-size invariance witness (+100mm growth) holds the pass verdict (0.0266 ns); 3 genuinely independent falsifiers (skip-unwrap, dropped sign, wrong L_eff) all red at >=1.5 ns",
        "nonuniform analytic characterization over grading ratios 1--3, eps_r 2 and 4, and 8.2--12.4 GHz: max_mag_abs_diff 0.01561",
        "stored nonuniform Palace characterization for WR-90 empty/PEC-short/slab: max_mag_abs_diff 0.008529 and mean_mag_abs_diff 0.000709 (was 0.07009/0.01042 before the #576 absorber derivation); nonuniform RF status remains experimental",
        "v1.8 chain battery (docs/design_notes/chain_closure_contract.md), dx rungs a/9, a/18, a/36 on the normalize=False and normalize=flux lanes, DUTs thru / PEC short / eps_r = 4 slab, 185 stored verdicts, three pre-declared WR-90 runs with no gate, tolerance or pin moved between them: run 1 (VESSL run 369367257823, solve wall 1157.6 s) 24 of 185 red in four families, the reference-plane rotation 6.602 degrees against a 3 degree gate traced to the port's transverse eigenproblem on N+1 cells (issue #868, corrected in PR #889); run 2 (VESSL run 369367258205, solve wall 1218.3 s, PR #893) the corrected port, 9 of 185 red -- the 8 normalize=flux forward-identity legs and the zero-derivative AD leg -- with rotation 0.0317 degrees, wrong-sign discriminator 64.05 degrees against a 10 degree floor, all ten ladders interpretable; run 3 (VESSL run 369367258638, solve wall 1350.5 s, commit f914a7ca) the same cells bit-identical to run 2's on all 18, criterion 1 and 3(a) read under x64 on the flux lane: CHAIN-CLOSED (v1.8), 134 pass / 51 report_only / 0 fail / 0 not interpretable (the 51 report_only are the 36 coarse- and mid-rung physics gates and referees, report-only below the claims rung by pre-declaration, the 12 ungated power-closure keys, and the 3 zero-derivative legs), and the declaration's own falsifier holds (the float32 primary reproduces run 2's 9 red exactly). Criterion 1: forward identity at most 1.051e-8 scaled on the eight flux legs (1.738e-10 and 2.835e-10 on the PEC-short groups, 1.051e-8 on the slab group; absolute 2.24e-14 at worst) against the bound rtol=1e-5, atol=1e-7, exactly 0.0 on the eight normalize=False legs; the float32 reading of the flux legs is 1.083 / 1.515 / 1.761 scaled. Criterion 2, at the claims rung: column power max 1.000353 against 1.02, magnitude reciprocity mean at most 2.25e-3 against 0.01, complex reciprocity at most 4.81e-3 against 0.01, ring-down witness -100.9 to -102.6 dB per drive on every fine-rung cell against -40 dB; the coarse and mid rungs are report-only, the coarse slab reading column power 1.00711 and complex reciprocity 0.0309. Criterion 3(a): 15 of 16 legs pass at rel 1.22e-4 to 1.07e-2 against 0.05, FD ULP spans 8.7e13 to 4.8e15 on fourteen and 3.44e11 on the zero-derivative leg's normalize=False sibling; the zero-derivative leg is report-only with FD -5.154e-8, x64 AD -2.943e-7 (same sign, factor 5.7, outside the factor-3 band), float32 AD +2.786e-5 (wrong sign); the weight-bearing PEC-short sigma_override leg passes at rel 4.9e-4. Criterion 3(b): |S| invariant to 1.76e-7 against rtol=1e-3, atol=1e-4; gradient invariance below 2.33e-7 on the ten pinned legs (float32 on both sides) pinned at 0.001, the two zero-derivative legs (2.7e-4, 6.5e-3) report-only; rotation 0.0317 degrees against the Yee-discrete beta (gate 3 degrees) and 0.0407 degrees against the continuous beta (gate 6 degrees); wrong-sign discriminator 64.05 degrees against a 10 degree floor; cheap refute reds the rotation gate by 117.27 degrees at minimum. Criterion 3(c): 10 of 10 ladders interpretable and non-increasing on the [0.15, 0.70] guard. Criterion 3(d) at the claims rung: PEC-short |S11| within 0.999715--1.000143 on normalize=False and 0.999995--1.000007 on normalize=flux against 0.99--1.03; slab vs analytic Airy 0.01262 / 0.00903 in magnitude against 0.05 and 6.10 / 6.15 degrees in phase against 15.0 degrees; plus the five broad-E5 replay bands WR-340, WR-62, WR-28, WR-15, WR-10; the coarse rung is report-only and outside both referee gates (slab vs Airy 0.1487 in magnitude, 16.94 degrees in phase). Power closure bounded, not demonstrated: interior-flux witness within 2.146e-05 of the port route at the float32 noise floor of about 1e-05, independent in the plane index only (PR #870); empty-guide normalize=False column-power excess 6.135e-3 / 1.161e-3 / 2.546e-4 at a/9, a/18, a/36 on the gated artifact (run 1 read 1.825e-2 against 3.33e-5 on the flux lane, on the N+1-cell port of #868): a stated accuracy of that lane with a named mechanism (cell-centred templates, TE20 near field read as TE10), issue #873 closed 2026-09-21."
      ],
      "validated_scope": "Uniform single-mode rectangular-guide magnitude for the documented WR-band setups. Phase is validated for the single-dielectric-slab configuration across the same five WR bands (issue #490 Lane 1). Group delay is validated only for the WR-340 empty-guide near-cutoff oracle (issue #490 Lane 3). Nonuniform external magnitude evidence is limited to normalize=flux, graded-dy ratio 2, WR-90 empty/PEC-short/dielectric-slab cases, and 8.2--12.4 GHz. Other nonuniform profiles, bands, multimode, and arbitrary junctions require separate evidence. Nonuniform eps_override and sigma_override AD are available only with normalize=flux.",
      "caveats": [
        "phase evidence now matches the magnitude envelope's breadth for the single-dielectric-slab configuration across the same 5 WR bands (max residual 11.99 degrees vs a 15.0 degree gate); PEC-short, T-junction, nonuniform, and multimode phase remain uncharacterized -- do not infer phase accuracy for those configurations",
        "d_left equals d_right in all five slab fixtures (the slab sits centered between symmetric reference planes), so the phase evidence cannot distinguish the S21 formula's d_left and d_right terms separately -- only their sum is exercised",
        "group delay is gated only on one purpose-built WR-340 empty-guide fixture near cutoff (f/fc 1.152-1.498, max like-for-like diff 0.0320 ns vs a pinned 0.042 ns gate); other bands, obstacles, dielectric slabs, and multimode group delay are not covered",
        "the stored nonuniform Palace result validates only its stated magnitude configurations; AD regression is not RF validation",
        "junction results require the documented matched-reference geometry and far-port clearance",
        "choose slab length and frequencies away from analytic reflection nulls and make slab length an integer number of cells",
        "chain-closed (v1.8) is not 'supported': it says the four contract criteria hold on the uniform single-mode WR-90 battery with criterion 1 and 3(a) read under x64 on the normalize=flux lane; it does not extend to junctions, multimode, nonuniform meshes, the normalize=True two-run lane, or a float32 gradient pipeline on the flux lane"
      ],
      "ad_traceable": "yes",
      "ad_evidence": "Uniform checks: tests/unit/autodiff/test_sparam_ad_end_to_end.py::test_waveguide_s_matrix_ad_end_to_end, tests/unit/autodiff/test_waveguide_sparam_ad.py::test_wg_smatrix_assembly_ad_traceable, and tests/unit/autodiff/test_waveguide_flux_ad.py::test_flux_smatrix_grad_finite_and_fd_consistent. Nonuniform eps_override and sigma_override are normalize=flux only; tests/unit/autodiff/test_waveguide_nu_flux_ad.py finite-difference-checks eps_override, while sigma_override has no corresponding nonuniform AD-vs-FD test."
    },
    {
      "primitive": "add_coaxial_port(...)",
      "family": "coaxial_port",
      "is_port": true,
      "support_status": "limited_one_port_line_reflection",
      "calculation_api": [
        "Simulation.compute_coaxial_line_reflection(...)",
        "Simulation.compute_coaxial_s_matrix(...) (removed)",
        "Simulation.compute_coaxial_two_port(...) (validated with scope, issue #489 stage 2)"
      ],
      "result_type": [
        "CoaxialLineReflectionResult",
        "CoaxialSMatrixResult (removed)",
        "CoaxialTwoPortResult (validated with scope)"
      ],
      "supported_configurations": [
        "3d_float32_second_order_uniform_yee_positive_xyz_cpml_no_periodic_rf_coaxial_line_reflection_exactly_one_top_face_port"
      ],
      "validation_status": "The one-port TEM-line reflection API has broad analytic validation over termination, impedance, frequency, and mesh axes plus a broad MEEP short/open comparison. It is differentiable through eps_scale. The older single-plane V/I S-matrix API has been removed. compute_coaxial_two_port(...) (issue #489 stage 2) is a separate, two-drive through-line extension -- not covered by the 1-port evidence above -- whose own EXPERIMENTAL label was LIFTED 2026-08-06 (PI decision) to VALIDATED WITH SCOPE once its external-referee, mesh-refinement, wiring-pin, and AD legs all closed; see its own known_limits entry and tests/unit/sparams/test_coax_two_port_smatrix.py. The separate coax<->MSL transition lane (compute_coax_msl_transition) stays EXPERIMENTAL, diagnostic-only regardless of this promotion.",
      "known_limits": [
        "compute_coaxial_line_reflection(...) requires exactly one registered coaxial port with face='top' and no mixed port family",
        "compute_coaxial_line_reflection(...) is not a general multi-port coaxial network solver",
        "compute_coaxial_line_reflection(...) requires mode='3d', solver='yee', precision='float32', stencil_order=2, a uniform grid, and boundary='cpml' with cpml_layers > 0",
        "compute_coaxial_line_reflection(...) requires CPML tokens with positive thickness on all six BoundarySpec faces, cpml_axes='xyz' (the default and the only accepted value; 'z' raises, #1218), and no periodic boundary axes",
        "compute_coaxial_line_reflection(...) constructs its line, TEM source, DFT planes, and termination; separately registered geometry, thin conductors, lumped RLC elements, probes, field monitors, NTFF boxes, and add_coaxial_* termination helpers are unsupported",
        "the registered coaxial port contributes x/y position, face, radii, and waveform; its z position, pin_length, and impedance do not set the internally derived line layout or loads; use feed_impedance= and use dut_impedance= only with termination='matched'",
        "probe_count must be an integer of at least three and all requested probe planes must fit between the DUT and source; the method raises instead of silently using fewer planes",
        "use about four or more annulus cells; the committed method gate requires at least 3.5",
        "The removed compute_coaxial_s_matrix(...) could report non-physical |S11| > 1 for a lossless short",
        "compute_coaxial_s_matrix(...) has been removed; do not use it as evidence for either the 1-port compute_coaxial_line_reflection(...) or the 2-port compute_coaxial_two_port(...) result",
        "nonuniform, Floquet, TFSF, SBP-SAT, arbitrary launches, and mixed-port combinations are unsupported",
        "Simulation.run() and Simulation.forward() reject high-level coaxial S-parameter requests",
        "compute_coaxial_line_reflection(...) has no shared automatic passivity guard; status and residual diagnostics do not replace RF validation",
        "compute_coaxial_two_port(...) is VALIDATED WITH SCOPE (issue #489, PI decision 2026-08-06): an external openEMS referee (VESSL run-3 369367251629 + VESSL 369367252220 first default-scale green promoted-lane run) brackets -- it does not judge -- this method's own |S21| and, via the port's own measured beta, its phase on the through-line class; a mesh-refinement convergence witness (VESSL 369367251845) moved the measured/analytic beta ratio 1.1208 -> 1.0662 (implied order p ~= 1.5); the eps_scale AD channel is GRAD_SAFE (tests/unit/autodiff/test_ad_surface_contract.py). NOT covered: every DUT it can currently gate against (none, a matched feed, or a coaxial dielectric plug) is azimuthally symmetric and excites only TM0n modes, while the transition discontinuities issue #489 targets excite TE11 (cutoff 25.17 GHz on the validated SMA line, evanescently surviving to the first probe plane) -- coax<->planar transitions use the SEPARATE compute_coax_msl_transition(...) primitive/lane (own entry, own status, unaffected by this promotion); nor does this evidence generalize to other coax geometry families; unlike compute_coaxial_line_reflection(...) its result IS routed through the shared automatic passivity guard"
      ],
      "evidence_level": "E5-broad/E4-broad/differentiable",
      "validation_gaps": [
        "a broader claim for arbitrary launches or general multi-port coaxial networks requires a separate API and external validation",
        "separate external validation for any nonuniform or mixed-port use"
      ],
      "evidence_artifacts": [
        "rfx/api/_sparams.py::Simulation.compute_coaxial_line_reflection",
        "rfx/api/_spec.py::CoaxialLineReflectionResult",
        "tests/unit/sparams/test_coaxial_line_reflection.py",
        "tests/unit/sparams/test_coaxial_line_reflection.py",
        "tests/unit/autodiff/test_coax_end_to_end_ad.py",
        "tests/fixtures/coax_broad_e5/coaxial_line_broad_e5_envelope.json",
        "tests/fixtures/coax_broad_e4/coaxial_line_meep_broad_comparison.json",
        "rfx/api/_sparams.py::Simulation.compute_coaxial_two_port",
        "rfx/api/_spec.py::CoaxialTwoPortResult",
        "tests/unit/sparams/test_coax_two_port_smatrix.py",
        "tests/unit/autodiff/test_coax_two_port_ad.py"
      ],
      "numeric_metrics": [
        "analytic 4--12 GHz short/open/matched/resistive 25/100 ohm checks at Z0 48.6 and 63 ohm: method max |Gamma| deviation 0.0372 <= 0.05 and max recurrence residual 0.00588 <= 0.03",
        "matched single-cell resistor fixture is reported separately with max |Gamma| deviation 0.0929",
        "MEEP short/open comparison over 4--12 GHz: max_mag_abs_diff 0.0628 and mean_mag_abs_diff 0.0235",
        "end-to-end eps_scale AD versus finite difference discrepancy 2.6%",
        "compute_coaxial_two_port single measured run (60 mm / 40 GHz fixture, 4-12 GHz): |S21|,|S12| 0.74-0.96, |S11|,|S22| <= 0.051 (measured max 0.0502 at 12 GHz, tests/unit/sparams/test_coax_two_port_smatrix.py:699; the committed gate itself is the wider inherited 1-port envelope <= 0.08), reciprocity within 0.3% magnitude / 0.21 degree phase, cond(A) <= 1.11; a post-hoc consistency check found the |S21| deficit matches the matrix-pencil-fitted exp(-Re(gamma)*L12) to within about 2% at every measured frequency (scale-sensitive, referral-blind — see the method docstring)",
        "compute_coaxial_two_port label-lift evidence chain (issue #489, PI decision 2026-08-06): external openEMS referee (crossval 21, VESSL run-3 369367251629 + VESSL 369367252220 first default-scale green promoted-lane run) brackets this method's own |S21| and, via the port's own measured beta, phase on the through-line class; mesh-refinement convergence witness VESSL 369367251845 moved the measured/analytic beta ratio from 1.1208 to 1.0662 (annulus 3.79 -> 5.68 cells, implied convergence order p ~= 1.5, two-point, from a single 1.5x step)"
      ],
      "validated_scope": "The self-contained TEM coaxial-line model using the documented Simulation, port, and method arguments, in float32 precision on a three-dimensional, second-order uniform Yee grid with CPML tokens with positive thickness on all six BoundarySpec faces, cpml_axes='xyz' (the only accepted value), no periodic boundary axes, exactly one face='top' coaxial port, at least three requested probe planes that all fit before the source, and the termination, frequency, characteristic-impedance, and mesh ranges in the committed fixtures. Separately registered geometry, sources, monitors, termination helpers, arbitrary launches, face='bottom', and mixed port families are outside this result; this 1-port broad-E5/E4 evidence does not itself cover multi-port networks -- it describes compute_coaxial_line_reflection(...) only. compute_coaxial_two_port(...) (issue #489, validated with scope) has its OWN, separate and narrower validated scope on the same port primitive: the two-drive through-line class on one SMA-class coax geometry family (a=0.635mm, b=2.055mm, PTFE eps_r=2.1, L12=58.4595mm), bracketed -- not judged -- by an external openEMS referee plus a mesh-refinement convergence witness and a GRAD_SAFE eps_scale AD gate; see its own known_limits entry above for the full statement. Neither this field's 1-port scope nor compute_coaxial_two_port(...)'s own scope covers arbitrary multi-port coaxial networks, coax<->planar transitions, or other coax geometry families. The broad-E5 analytic and broad-E4 external evidence for this one-port model was measured before #1218 with cpml_axes='z' (z-only absorbers) and has not been re-measured under the current cpml_axes='xyz'; #1218 moved every coaxial S slightly, so those figures describe the pre-#1218 lane.",
      "caveats": [
        "do not use removed compute_coaxial_s_matrix(...) as evidence for the documented line-reflection result",
        "the matched fixture is characterized but excluded from the method-magnitude gate because of the single-cell annular resistor",
        "MEEP covers short/open; resistive cases are covered by the analytic transmission-line fixture"
      ],
      "ad_traceable": "yes",
      "ad_evidence": "eps_scale -> FDTD -> DFT plane accumulators -> modal voltage -> matrix-pencil reflection -> Gamma; tests/unit/autodiff/test_coax_end_to_end_ad.py::test_coax_reflection_grad_finite_and_fd_consistent (compute_coaxial_line_reflection). compute_coaxial_s_matrix has been removed; its former concrete numpy extraction was not traceable. compute_coaxial_two_port (issue #489 stage 2, validated with scope) gained the same eps_scale channel: gate compares float32 AD (as shipped) against a float64-loss central finite difference (scoped enable_x64 around the forward call — the FDTD fields stay float32, same baseline as the MSL f64 referee, but the DFT-accumulator-and-downstream math runs at float64, per rfx/probes/probes.py's jax.config.x64_enabled keying, independent of the precision='float32' pin); measured rel_err 0.51% at h=2e-3 against a 2% gate (tests/unit/autodiff/test_coax_two_port_ad.py::test_compute_coaxial_two_port_ad_grad_finite_and_fd_consistent; regenerate/extend via scripts/coax_two_port_ad_fd_f64_referee.py), owner-platform (GPU) re-measurement pending. See tests/unit/autodiff/test_ad_surface_contract.py::AD_CLASSIFICATION for the per-calculator classification this family-level field cannot express."
    },
    {
      "primitive": "add_floquet_port(...)",
      "family": "floquet_port",
      "is_port": true,
      "support_status": "experimental_no_high_level_sparameter_api",
      "calculation_api": [],
      "result_type": [],
      "supported_configurations": [
        "floquet_bloch_experimental"
      ],
      "validation_status": "Experimental Floquet/Bloch excitation and broadside diagnostic helpers only. Synthetic modal, real-FDTD replay, empty-space analytic-null, and homogeneous-slab analytic checks exist. There is no documented high-level calibrated Floquet S-parameter API or independent RCWA/full-wave validation.",
      "known_limits": [
        "no documented Simulation Floquet S-parameter API",
        "nonuniform meshes are unsupported",
        "TFSF combination is unsupported",
        "off-broadside calibrated results are not documented"
      ],
      "evidence_level": "E2/E3-modal/slab-analytic/no-public-api",
      "validation_gaps": [
        "missing high-level calibrated port API and normalization contract",
        "missing RCWA or independent periodic full-wave validation",
        "missing mesh, frequency, scan-angle, and polarization validation range"
      ],
      "evidence_artifacts": [
        "tests/unit/ports/test_floquet.py",
        "tests/unit/ports/test_floquet_s_params_contract.py",
        "tests/unit/sparams/test_sparameter_support_contract.py",
        "scripts/diagnostics/report_floquet_modal_oracles.py",
        "scripts/diagnostics/generate_floquet_modal_field_dump.py",
        "scripts/diagnostics/replay_floquet_modal_field_dump.py",
        "scripts/diagnostics/build_floquet_empty_space_analytic_comparison.py",
        "scripts/diagnostics/report_floquet_periodic_slab_oracles.py",
        "scripts/diagnostics/build_floquet_slab_analytic_comparison.py"
      ],
      "numeric_metrics": [
        "empty-space analytic-null diagnostic: max_abs_diff 0.06067 <= 0.07 and mean_abs_diff 0.05306 <= 0.06",
        "homogeneous-slab analytic oracle: 8 cases x 3 frequencies and max power-balance error 4.44e-16",
        "rfx-FDTD homogeneous-slab magnitude diagnostic: max_mag_abs_diff 0.06212 <= 0.07 and mean_mag_abs_diff 0.03209 <= 0.04 over 3 frequencies",
        "synthetic specular-TE check: S11 diff 2.89e-7, S21 diff 6.37e-7, power-balance error 1.02e-6",
        "real-FDTD Ex/Hy DFT-plane replay: max S diff 2.23e-7"
      ],
      "validated_scope": "Experimental broadside excitation and diagnostic decomposition only. No calibrated public Floquet-port S-parameter result is documented.",
      "caveats": [
        "analytic empty-space and slab checks are not RCWA or independent full-wave validation",
        "modal replay validates bookkeeping, not a calibrated reference-plane result",
        "Simulation.run() and Simulation.forward() reject high-level Floquet S-parameter requests"
      ],
      "ad_traceable": "yes",
      "ad_evidence": "finite-gradient checks through compute_floquet_s_params and extract_floquet_modes in tests/unit/ports/test_floquet_s_params_contract.py; this is an AD execution check, not an RF-accuracy statement"
    },
    {
      "primitive": "add_source(...) / add_polarized_source(...)",
      "family": "soft_current_source",
      "is_port": false,
      "support_status": "not_a_port",
      "calculation_api": [],
      "result_type": [
        "Result.time_series",
        "Result.find_resonances(...)"
      ],
      "supported_configurations": [
        "uniform_yee_rf",
        "nonuniform_graded_z_limited"
      ],
      "validation_status": "Field and resonance excitation only; no port impedance or reference plane.",
      "known_limits": [
        "does not populate Result.s_params"
      ],
      "evidence_level": "not_a_port",
      "evidence_artifacts": [
        "source-specific field and resonance tests"
      ],
      "numeric_metrics": [
        "not an S-parameter calculation"
      ],
      "validated_scope": "Field excitation only.",
      "caveats": [
        "do not use as a substitute for a calibrated port"
      ],
      "ad_traceable": "not_applicable"
    },
    {
      "primitive": "add_tfsf_source(...)",
      "family": "tfsf_plane_wave_source",
      "is_port": false,
      "support_status": "not_a_port",
      "calculation_api": [],
      "result_type": [
        "field probes",
        "flux monitors",
        "NTFF/RCS where separately supported"
      ],
      "supported_configurations": [
        "uniform_yee_rf",
        "nonuniform_graded_z_restricted"
      ],
      "validation_status": "Plane-wave field and flux excitation only; no port impedance or reference plane.",
      "known_limits": [
        "cannot be combined with lumped or waveguide ports",
        "does not populate Result.s_params"
      ],
      "evidence_level": "not_a_port",
      "evidence_artifacts": [
        "TFSF, flux, and NTFF tests for the selected observable"
      ],
      "numeric_metrics": [
        "not an S-parameter calculation"
      ],
      "validated_scope": "Plane-wave field and flux excitation only.",
      "caveats": [
        "does not define a port impedance or reference plane"
      ],
      "ad_traceable": "not_applicable"
    },
    {
      "primitive": "add_probe(...) / add_dft_plane_probe(...) / add_flux_monitor(...)",
      "family": "non_port_observable",
      "is_port": false,
      "support_status": "not_a_port",
      "calculation_api": [],
      "result_type": [
        "Result.time_series",
        "Result.dft_planes",
        "Result.flux_monitors"
      ],
      "supported_configurations": [
        "see docs/guides/support_matrix.md per observable"
      ],
      "validation_status": "Field, flux, or time observable only; no port impedance or reference plane.",
      "known_limits": [
        "does not define a port impedance or S-matrix reference"
      ],
      "evidence_level": "not_a_port",
      "evidence_artifacts": [
        "observable-specific tests"
      ],
      "numeric_metrics": [
        "not an S-parameter calculation"
      ],
      "validated_scope": "Field, flux, or time observable only.",
      "caveats": [
        "does not define a port impedance or S-matrix reference"
      ],
      "ad_traceable": "not_applicable"
    },
    {
      "primitive": "add_port(...) + add_msl_port(...) driven by compute_mixed_s_matrix(...)",
      "family": "mixed_lumped_wire_msl",
      "is_port": false,
      "support_status": "experimental_diagnostic_not_in_validated_set",
      "calculation_api": [
        "Simulation.compute_mixed_s_matrix(...)"
      ],
      "result_type": "MixedSMatrixResult",
      "supported_configurations": [
        "uniform second-order Yee mesh only",
        "one homogeneous lumped OR wire set (component='ez', vertical) plus one or more MSL ports",
        "PEC z_lo ground required for magnitude_channel='flux' (the default)",
        "imperative forward path only (no eps_override AD channel)"
      ],
      "validation_status": "EXPERIMENTAL. Diagonals come from the per-family extractors but are NOT verified on this lane (both the wire port-cell V*I accounting and the MSL analytic-Z0 anchor are open), and the shipped values are additionally rewritten by the passivity projection when the raw matrix is non-passive. off-diagonal MAGNITUDES come from Poynting flux with the incident power normalized as P_net/(1-|S_jj|^2). Internal reciprocity witness measured 9% on the probe-fed MSL fixture (the wave channel measured 55% on the same fixture). NO external-solver referee has been run, so ABSOLUTE magnitude is NOT validated. Off-diagonal PHASE mixes two reference-plane conventions and is provisional. Do not cite this family as validation.",
      "known_limits": [
        "absolute |S| unvalidated — openEMS referee pending",
        "with enforce_passivity=True (default) the returned diagonal is a JOINT SVD-projected value, not the raw per-family measurement — measured ~4x its unprojected value on the committed test fixture; read S_raw/passivity_correction for what was measured",
        "off-diagonal phase provisional (cross-family reference-plane mismatch)",
        "per-column power is an ALGEBRAIC IDENTITY on the flux channel and is not a passivity check; reciprocity is the only independent internal witness",
        "residual reciprocity disagreement traced to a driven-port diagonal; which diagonal is open (issue #313 wire port-cell vs the MSL analytic Z0 anchor)",
        "waveguide, Floquet, coaxial, TFSF, bare sources, 0-ohm ports, mixed lumped+wire sets, reference_plane_cells, non-uniform meshes, SBP-SAT and ADI are all rejected loudly"
      ],
      "evidence_level": "experimental/internal-witness-only",
      "validation_gaps": [
        "no external-solver cross-check of any mixed-family |S|",
        "no mesh-convergence study",
        "single fixture class (vertical probe feed onto a microstrip line)"
      ],
      "evidence_artifacts": [
        "tests/unit/sparams/test_mixed_port_sparam.py"
      ],
      "numeric_metrics": [
        "reciprocity deviation 9.0% (flux channel) vs 55% (wave channel), probe-fed MSL fixture, dx=63.5um, settling -101/-100 dB",
        "reciprocity witness default tolerance 0.06, set BELOW the 9% reference-fixture residual so that fixture warns rather than passing silently"
      ],
      "validated_scope": "NONE — this is a diagnostic CALCULATION over the already-registered lumped/wire and microstrip_line port families, not a new port primitive and not a validated result. It is listed so the matrix does not read as 'mixed families are impossible in rfx', which the per-extractor limits elsewhere in this document would otherwise imply. Those per-extractor statements remain accurate: compute_msl_s_matrix, the lumped/wire scan driver, and the coaxial calculators each still reject foreign port families.",
      "caveats": [
        "quote the preflight output and settling_db with any number from this lane",
        "a green passivity/column-power result here is structurally uninformative"
      ],
      "ad_traceable": "no",
      "ad_evidence": "not wired to the differentiable forward lane (imperative only)"
    },
    {
      "primitive": "add_coaxial_port(...) + add_msl_port(...) driven by compute_coax_msl_transition(...)",
      "family": "coax_msl_transition",
      "is_port": false,
      "support_status": "experimental_diagnostic_not_in_validated_set",
      "calculation_api": [
        "Simulation.compute_coax_msl_transition(...)"
      ],
      "result_type": "CoaxMSLTransitionResult",
      "supported_configurations": [
        "uniform second-order Yee mesh only, float32, boundary='cpml' on all six faces (cpml_axes='xyz')",
        "exactly one add_coaxial_port(face='bottom') plus exactly one add_msl_port(...)",
        "the coax stub (source, matched annular-resistor feed, probe array) is built internally, mirroring compute_coaxial_two_port's own single-ended stub",
        "the junction geometry (ground plane, clearance hole, pin-to-trace post, substrate, trace) is the caller's own registered Box/Cylinder geometry, mirroring compute_mixed_s_matrix's own MSL-DUT delegation",
        "imperative forward path only (no AD channel for this leg)"
      ],
      "validation_status": "EXPERIMENTAL, DIAGNOSTIC-ONLY, and not scheduled for correction before 2.0 (PI decision 2026-09-20): rfx port/S-parameter work stops at pure single-family ports, so the cross-family transition lanes are not pursued further. For a result you can cite, use the single-family extractors separately -- compute_msl_s_matrix(...) for the microstrip line, compute_coaxial_two_port(...) / compute_coaxial_line_reflection(...) for the coax. The power-wave cross-family normalization (per-port sqrt(Z0) division before the two-drive solve) is validated by planted-voltage unit tests under UNEQUAL port impedances, independent of any FDTD run. The current reading is the corrected settled run (attempt 3b, VESSL 369367257614, n_steps=135000, PR #837), and it is NOT passive: the MSL-driven column power is 2.9563/2.9172/2.8609 at 6/8/10 GHz, about 3x the incident power, max |S| is 1.7046, and the shared passivity guard raises on the result -- compute_coax_msl_transition(...) refuses that matrix by default (strict_passivity=True, raising ValueError), and strict_passivity=False returns it with a UserWarning instead. The over-read sits in the MSL side's power-wave normalization and is measured by two instruments: the S-matrix's own column power above, and a six-face Poynting flux box on the same run that reads the MSL-side power 2.89 to 3.15 times the extractor's own outgoing-wave power, with box closure within 0.21% (max |closure_rel_residual| 0.0020212). The mechanism is unresolved and will not be attributed on this lane (issue #838). What the phase witness does and does not settle: the fitted Im(gamma) over analytic beta is 0.8652/0.8569/0.8680 coax-driven and 0.8630/0.8677/0.8706 MSL-driven (the record stores only the coax-driven ratio; the MSL-driven one is DERIVED from gamma.im for the MSL array under the MSL drive over the analytic closed-form beta), both inside the predeclared [0.8,1.3] band at about 13-14% below unity, near its low edge, so the matrix pencil is locking onto the right mode. That is a PHASE-CONSTANT witness and it clears neither the wave-amplitude split nor the power normalization: on the same record the A5 echo ratio on the MSL side reads 0.9550/0.9338/0.9133 against a predeclared 0.030, verdict FLOOR -- the non-driven MSL port's signal is extractor floor -- while the coax side reads 0.0898/0.0861/0.0840, verdict RESOLVED; and the A2 passivity eigenvalue lambda_min(I - S^H S) is -1.9893/-1.9568/-1.9059, verdict EXTRACTOR. Every attempt-1 and attempt-2 reading, including the attempt-2 settled run VESSL 369367252283, was taken through three instrument defects since fixed -- a fixture that was a short (PR #804), inverted wave-role labels making S_code = inv(S_true) (#822), and an MSL fit window inside the port's near field (#823) -- and is withdrawn; do not cite those numbers, which were 91.4% reciprocity worst deviation, MSL-driven column power 0.00653/0.01098/0.79865, and max |S| 0.9933 with a clean guard. Do not cite this family as a validated transition.",
      "known_limits": [
        "the MSL side's power-wave normalization over-reads power by about 3x, so the returned S is not passive: MSL-driven column power 2.9563/2.9172/2.8609 at 6/8/10 GHz and max |S| 1.7046 on the corrected settled run (attempt 3b, VESSL 369367257614, n_steps=135000). The coax-driven column reads 0.3793/0.3789/0.3670 on the same run -- the excess is on the MSL-driven column only. compute_coax_msl_transition(...) refuses that matrix by default (strict_passivity=True, raising ValueError); strict_passivity=False returns it with a UserWarning instead. No magnitude from this lane is usable as an absolute power reference (issue #838)",
        "the phase witness does not clear the amplitude split. Fitted Im(gamma) over analytic beta is 0.8652/0.8569/0.8680 coax-driven and 0.8630/0.8677/0.8706 MSL-driven -- the record stores only the coax-driven ratio, so the MSL-driven one is DERIVED from the record's gamma.im for the MSL array under the MSL drive over the analytic closed-form beta. Both sit inside the predeclared [0.8,1.3] band, about 13-14% below unity and so near its low edge, which says the pencil finds the right mode. On the same record the A5 echo ratio on the MSL side is 0.9550/0.9338/0.9133 against a predeclared 0.030, verdict FLOOR (the non-driven MSL port's signal is extractor floor), the coax side 0.0898/0.0861/0.0840, verdict RESOLVED; and A2 lambda_min(I - S^H S) is -1.9893/-1.9568/-1.9059, verdict EXTRACTOR",
        "the mechanism is unresolved and the lane is not scheduled for correction before 2.0 (PI decision 2026-09-20): cross-family transition lanes (compute_coax_msl_transition, compute_mixed_s_matrix) are not pursued further. For a validated result use the single-family extractors separately -- compute_msl_s_matrix(...) for the microstrip line, compute_coaxial_two_port(...) / compute_coaxial_line_reflection(...) for the coax",
        "what says the single-family MSL lane does not share this ~3x over-read is the V/I-vs-Poynting-flux oracle, not a shared-surface count: scripts/diagnostics/msl_vi_flux_oracle/msl_vi_flux_oracle.json reads Re(V*conj(I)) OVER POYNTING FLUX 1.0083-1.0090 on the aligned h_sub/3 mesh and 1.0105-1.0118 on the 80um mesh, 30/30 admissible cells each, both HELD. That bounds the POWER scale against the true Poynting flux to about 1%, and a 3x over-read cannot hide inside 1%. The 80um row is the file's own mixed-cell mesh (mixed_cell_danger_zone true, set when the substrate spans a non-integer cell count with fractional part in [0.10, 0.40]); its ratio_proxy_span twin, the RETIRED round(h_sub/dx) span replayed on the same fields, reads 0.744-0.745 outside the [0.85, 1.15] band BY DESIGN -- a mutation control showing the oracle can tell the retired span from the corrected one, not a defect in the 80um measurement (scripts/diagnostics/msl_vi_flux_oracle.py:317-327). The thru-coupon golden's column power cannot settle this on its own: a per-port amplitude constant cancels from S between like ports, so a like-port column power cannot see the power scale at all. What the oracle IS blind to is a different thing, and its own file says so: R = Re(V*conj(I))/flux is exactly invariant under the power-preserving rescale (V, I) -> (aV, I/a), so a defect moving V and I in that opposing pattern would pass both the ratio and its admissibility witnesses while corrupting every S value downstream; the script states this as a structural blind direction it does not close (scripts/diagnostics/msl_vi_flux_oracle.py:138-159)",
        "the single-family MSL lane is not defect-free either, it just does not carry the ~3x: its own raw output has a ~1% class excess -- the equal-reference notch-filter case records coherent power gains of about 1.0113 and 1.0131 (PR #987 body), and the Sheen low-pass filter's retired comparison script recorded 3 of 120 passivity_correction bins above 0.05, worst 0.6572 at 17.870 GHz, all three above 17 GHz and none inside that case's 5-15 GHz quotable band",
        "the two lanes share more than one helper. All three call sites stamp the MSL port through the same primitives -- compute_msl_mode_profile and setup_msl_port (rfx/sparams/coax.py:1914,1915 vs rfx/runners/uniform.py:529,533) and make_msl_port_sources (coax.py:2113 vs uniform.py:543), with the non-uniform runner a third site importing the same names (rfx/runners/nonuniform.py:546,570) -- and both take the same analytic reference hammerstad_jensen_z0_eps_eff (coax.py:1916, rfx/sparams/msl.py:458), alongside the voltage line-integral helper msl_modal_voltage. The real difference is downstream: the transition forms its wave amplitudes from V alone (a matrix-pencil fit on the modal voltage ladder), the single-family lane from V and I",
        "withdrawn, do not cite: every attempt-1 and attempt-2 reading, including the attempt-2 settled run VESSL 369367252283 (91.4% reciprocity worst deviation, MSL-driven column power 0.00653/0.01098/0.79865, max |S| 0.9933 with a clean guard), was taken through three instrument defects since fixed -- a fixture that was a short (PR #804), inverted wave-role labels (#822), and an MSL fit window inside the port's near field (#823)",
        "the corrected settled run's own record is tracked under scripts/diagnostics/_coax_msl_transition_settled_run_logs/ (corrected_369367257614_attempt3b_x64-0_{run.log,result.json,witnesses.json}). Neither file carries a VESSL id: the run log's vessl_run_id field is an unfilled placeholder (corrected_369367257614_attempt3b_x64-0_run.log:862) and the result JSON has no such key, so the run number comes from the file name and PR #837. The code state IS pinned in the result JSON: git_sha 356a47cfce346f8832a29cdc0c930bb2be5824b5",
        "the shared passivity guard is ONE-SIDED: it flags only a column power ABOVE its limit, never a column power far BELOW 1 on a nominally lossless structure. Disclosure only; the guard is unchanged here",
        "raw cond_a is dominated by per-drive amplitude scale, not geometric near-degeneracy -- read cond_a_equilibrated on CoaxMSLTransitionResult instead (2.0204/1.4596/1.3629 on the corrected settled run, against a raw 2.93e7/2.43e7/2.02e7)",
        "the MSL side is extracted via the coax matrix-pencil fit (coaxial_line_reflection_from_plane_voltages) rather than the mixed lane's own N-probe fit, a deliberate deviation made because the coax fit deterministically pins the propagation-constant branch while the N-probe fit's sign is documented as unstable",
        "the registered impedance= on add_coaxial_port(...)/add_msl_port(...) sizes only the feed resistor / termination and (for coax) the TEM source amplitude calibration; the power-wave normalization (z0_ref) always uses the analytic TEM / Hammerstad-Jensen Z0 the method computes itself, so the registered impedance= is NOT the reference impedance of the returned s_params -- the method emits a divergence advisory when either port's registered impedance diverges more than 5% from the analytic Z0 it actually uses (issue #581 review N2)",
        "no external-solver referee has been run",
        "AD is out of scope for this lane (no eps_scale-style channel)",
        "waveguide, Floquet, TFSF, lumped RLC, and any second coaxial or MSL port are all rejected loudly"
      ],
      "evidence_level": "experimental/diagnostic-single-fixture",
      "validation_gaps": [
        "no external-solver cross-check",
        "no mesh-convergence study",
        "the ~3x MSL-side power over-read is measured but not attributed, and per the PI decision of 2026-09-20 it will not be attributed or fixed before 2.0",
        "the returned matrix is non-passive on the corrected settled run, so no magnitude from this lane is usable as an absolute power reference"
      ],
      "evidence_artifacts": [
        "tests/unit/sparams/test_coax_msl_transition.py",
        "scripts/diagnostics/_coax_msl_transition_settled_run_logs/corrected_369367257614_attempt3b_x64-0_run.log",
        "scripts/diagnostics/_coax_msl_transition_settled_run_logs/corrected_369367257614_attempt3b_x64-0_result.json",
        "scripts/diagnostics/_coax_msl_transition_settled_run_logs/corrected_369367257614_attempt3b_x64-0_witnesses.json"
      ],
      "numeric_metrics": [
        "corrected settled run (attempt 3b), VESSL 369367257614, n_steps=135000, git_sha 356a47cf, 6 / 8 / 10 GHz: MSL-driven column power 2.9563 / 2.9172 / 2.8609 -- about 3x the incident power; coax-driven column power 0.3793 / 0.3789 / 0.3670",
        "same run: max |S| 1.7046 with the passivity guard raised; A2 lambda_min(I - S^H S) -1.9893 / -1.9568 / -1.9059, verdict EXTRACTOR; reciprocity worst deviation 0.6763 on pair (0,1); settling_db -128.49 / -118.75 dB",
        "same run, second instrument: a six-face Poynting flux box reads the MSL-side power 2.89 to 3.15 times the extractor's own outgoing-wave power across both drives, box closure within 0.21%",
        "same run, what the phase witness does not clear: fitted Im(gamma) over analytic beta 0.8652 / 0.8569 / 0.8680 coax-driven and 0.8630 / 0.8677 / 0.8706 MSL-driven, both inside the predeclared [0.8,1.3] band; A5 echo ratio MSL side 0.9550 / 0.9338 / 0.9133 against a predeclared 0.030, verdict FLOOR, coax side 0.0898 / 0.0861 / 0.0840, verdict RESOLVED"
      ],
      "validated_scope": "NONE -- a diagnostic CALCULATION over the already-registered coaxial_port and microstrip_line port families, not a new port primitive and not a validated result. Listed so the matrix does not read as 'a coax<->MSL transition is impossible in rfx'. Nothing from this lane is citable as a magnitude; the single-family extractors (compute_msl_s_matrix, the coax two-port and line-reflection lanes) carry their own, separate status.",
      "caveats": [
        "quote the preflight output and settling_db with any number from this lane",
        "the returned S is not passive on the corrected settled run -- read any magnitude from it as an extraction artifact, not as physics",
        "do not read the in-band gamma-vs-beta ratio as an all-clear for the extractor: it is a phase-constant witness, and the same record's A5 (FLOOR on the MSL side) and A2 (EXTRACTOR) verdicts stand against the amplitude split and the power normalization",
        "do not cite any attempt-1 or attempt-2 number, including the attempt-2 settled run: three instrument defects sat under all of them",
        "do not read cond_a alone as a degeneracy witness on this lane -- use cond_a_equilibrated (per-drive amplitude scale dominates raw cond_a on a mixed-family lane)"
      ],
      "ad_traceable": "no",
      "ad_evidence": "not wired to the differentiable forward lane (imperative only); no eps_scale-style channel exists for this leg"
    }
  ],
  "physics_evidence_rule": "docs/guides/physics_validation_evidence_rule.md",
  "dump_replay_schema": "docs/guides/sparameter_dump_replay.md",
  "unavailable_port_families": [
    {
      "family": "generalized_planar_ports",
      "current_primitives": [],
      "status": "not_implemented",
      "validation_gaps": [
        "no current public API or documented RF result"
      ],
      "public_sparameter_api": null,
      "evidence_level": "not_implemented",
      "evidence_artifacts": [],
      "numeric_metrics": []
    }
  ]
}
