Tracking epic for the gaps surfaced by the retroactive requirements baseline (every suite component now has a docs/REQUIREMENTS.md; index: https://github.com/HamSCI/sigmond/blob/main/docs/REQUIREMENTS-INDEX.md). Each [NEW] requirement in those docs is a real gap reconciliation found between documented intent, code, and the contract.
Two systemic patterns are broken out as their own sweep sub-issues. The remaining component-specific findings are checklisted below; several map to existing #18 epics (noted inline). Promote any line to its own issue when work starts.
Systemic sweeps (sub-issues)
- Contract-version doc/code drift sweep
- §18 timing-authority: consume or document as non-gating (sweep)
- Retire vestigial
pskreporter binary checks
Per-component findings (requirement IDs reference each docs/REQUIREMENTS.md §12)
wspr-recorder — [ ] WSP-F-091 frozen-boundary watchdog has no test · [ ] WSP-F-092 %i id edge case · [ ] WSP-F-093 merge dup-ship guard (two uploaders on one sink)
psk-recorder — [ ] PSK-F-090 decoder-backend drift (jt9 refs, only decode_ft8 wired) · [ ] PSK-F-091 server-merge no-ops without the wsprdaemon-server endpoint (cross-repo)
mag-recorder — [ ] MAG-F-091 live PSWS upload unproven (dry-run only) · [ ] MAG-F-092 real RM3100/Pololu untested (HW) · [ ] MAG-F-093 driver-config path inconsistency · [ ] MAG-F-095 multi-instance dormant
codar-sounder — [ ] CDR-F-042 storm-day (Kp≥5) scintillation calibration · [ ] CDR-F-091 inventory deps advertise ka9q-python>=3.11 vs >=3.14 · [ ] CDR-F-093 synthetic IQ models only first TX
hfdl-recorder — [ ] HFD-F-092 no dumphfdl version pin · [ ] HFD-F-093 hfdl.spots staged but never drained upstream · [ ] HFD-Q-008 disk-budget estimate is a placeholder
hf-tec — [ ] TEC-F-091 no real over-the-air catch yet · [ ] TEC-F-094 .out.mod inversion writer unimplemented · [ ] TEC-F-095 §14 config wizard deferred · [ ] TEC-Q-090 no JSONL retention policy · → TEC-F-092/093/Q-091 map to hf-tec Phase 2 epic (§18, Cornell seed, amplitude cal)
meteor-scatter — [ ] MTS-F-091 upload-target contradiction (config says sink-only/wsprdaemon-deferred, code wires direct PSKReporter) — highest-value · [ ] MTS-F-093 pervasive psk-skeleton doc drift · [ ] MTS-F-092 no msk144.spots retention
ka9q-python — [ ] KQP-Q-009 no __all__ public-API regression guard · [ ] KQP-F-074 drift watcher operator-triggered only (no scheduler) · [ ] KQP-D-001 no consumer-compat matrix · [ ] KQP-Q-010 pyproject still "Beta"
hamsci-dsp — → DSP-F-090/091/092 map to hamsci-dsp dedup epic (AuthorityReader quadruplicated; donor modules un-retired) · [ ] DSP-Q-006 no cross-repo golden-vector parity gate · [ ] DSP-I-004 no API-stability/semver policy
hs-uploader — [ ] HSU-F-093 no codar transport (codar.spots undrained) · [ ] HSU-F-091 ACCEPTS gate advisory + already drifted · [ ] HSU-F-094 no pump --once CLI · → HSU-F-092 heartbeat transport maps to PSWS heartbeat item
callhash — [ ] CLH-Q-006 unbounded table growth (no eviction; 15-bit collisions certain at scale) · [ ] CLH-D-001 test-count doc drift
gpsdo-monitor — [ ] GDM-F-090 only LBE-1421 live-validated · [ ] GDM-F-091 Mini set_frequency stub · [ ] GDM-F-092 config write surface incomplete · [ ] GDM-Q-010 multi-host mDNS unvalidated
igmp-querier — [ ] IGQ-Q-006 no test suite · [ ] IGQ-F-040 no --version/identity
sigmond-rac — [ ] RAC-F-030 unit/Documentation=/log strings still say rac after rename · [ ] RAC-Q-011 vendored frpc binaries carry no checksum/signature · [ ] RAC-Q-010 no health/liveness surface
hf-timestd — → HFT-F-090 legacy [storage] HDF5 toggles post-v7.0 · [ ] HFT-F-091 singleton enforcement unverified · [ ] HFT-Q-009 multi-radiod governor_radiod subscriber handling untested
superdarn-sounder — → SDS-F-090 multi-band not wired · SDS-F-091 rawACF validation not in CI · SDS-F-015/016 detection-quality — map to superdarn Phase 2 epic
Tracking epic for the gaps surfaced by the retroactive requirements baseline (every suite component now has a
docs/REQUIREMENTS.md; index: https://github.com/HamSCI/sigmond/blob/main/docs/REQUIREMENTS-INDEX.md). Each[NEW]requirement in those docs is a real gap reconciliation found between documented intent, code, and the contract.Two systemic patterns are broken out as their own sweep sub-issues. The remaining component-specific findings are checklisted below; several map to existing #18 epics (noted inline). Promote any line to its own issue when work starts.
Systemic sweeps (sub-issues)
pskreporterbinary checksPer-component findings (requirement IDs reference each
docs/REQUIREMENTS.md§12)wspr-recorder — [ ] WSP-F-091 frozen-boundary watchdog has no test · [ ] WSP-F-092
%iid edge case · [ ] WSP-F-093 merge dup-ship guard (two uploaders on one sink)psk-recorder — [ ] PSK-F-090 decoder-backend drift (
jt9refs, onlydecode_ft8wired) · [ ] PSK-F-091server-mergeno-ops without the wsprdaemon-server endpoint (cross-repo)mag-recorder — [ ] MAG-F-091 live PSWS upload unproven (dry-run only) · [ ] MAG-F-092 real RM3100/Pololu untested (HW) · [ ] MAG-F-093 driver-config path inconsistency · [ ] MAG-F-095 multi-instance dormant
codar-sounder — [ ] CDR-F-042 storm-day (Kp≥5) scintillation calibration · [ ] CDR-F-091 inventory deps advertise ka9q-python>=3.11 vs >=3.14 · [ ] CDR-F-093 synthetic IQ models only first TX
hfdl-recorder — [ ] HFD-F-092 no
dumphfdlversion pin · [ ] HFD-F-093hfdl.spotsstaged but never drained upstream · [ ] HFD-Q-008 disk-budget estimate is a placeholderhf-tec — [ ] TEC-F-091 no real over-the-air catch yet · [ ] TEC-F-094
.out.modinversion writer unimplemented · [ ] TEC-F-095 §14 config wizard deferred · [ ] TEC-Q-090 no JSONL retention policy · → TEC-F-092/093/Q-091 map to hf-tec Phase 2 epic (§18, Cornell seed, amplitude cal)meteor-scatter — [ ] MTS-F-091 upload-target contradiction (config says sink-only/wsprdaemon-deferred, code wires direct PSKReporter) — highest-value · [ ] MTS-F-093 pervasive psk-skeleton doc drift · [ ] MTS-F-092 no
msk144.spotsretentionka9q-python — [ ] KQP-Q-009 no
__all__public-API regression guard · [ ] KQP-F-074 drift watcher operator-triggered only (no scheduler) · [ ] KQP-D-001 no consumer-compat matrix · [ ] KQP-Q-010 pyproject still "Beta"hamsci-dsp — → DSP-F-090/091/092 map to hamsci-dsp dedup epic (AuthorityReader quadruplicated; donor modules un-retired) · [ ] DSP-Q-006 no cross-repo golden-vector parity gate · [ ] DSP-I-004 no API-stability/semver policy
hs-uploader — [ ] HSU-F-093 no codar transport (
codar.spotsundrained) · [ ] HSU-F-091ACCEPTSgate advisory + already drifted · [ ] HSU-F-094 nopump --onceCLI · → HSU-F-092 heartbeat transport maps to PSWS heartbeat itemcallhash — [ ] CLH-Q-006 unbounded table growth (no eviction; 15-bit collisions certain at scale) · [ ] CLH-D-001 test-count doc drift
gpsdo-monitor — [ ] GDM-F-090 only LBE-1421 live-validated · [ ] GDM-F-091 Mini
set_frequencystub · [ ] GDM-F-092configwrite surface incomplete · [ ] GDM-Q-010 multi-host mDNS unvalidatedigmp-querier — [ ] IGQ-Q-006 no test suite · [ ] IGQ-F-040 no
--version/identitysigmond-rac — [ ] RAC-F-030 unit/
Documentation=/log strings still sayracafter rename · [ ] RAC-Q-011 vendored frpc binaries carry no checksum/signature · [ ] RAC-Q-010 no health/liveness surfacehf-timestd — → HFT-F-090 legacy
[storage]HDF5 toggles post-v7.0 · [ ] HFT-F-091 singleton enforcement unverified · [ ] HFT-Q-009 multi-radiodgovernor_radiodsubscriber handling untestedsuperdarn-sounder — → SDS-F-090 multi-band not wired · SDS-F-091 rawACF validation not in CI · SDS-F-015/016 detection-quality — map to superdarn Phase 2 epic