Skip to content

docs: spec ALC tolerance workstream#31

Merged
secup merged 1 commit into
mainfrom
docs/alc-tolerance-spec
May 18, 2026
Merged

docs: spec ALC tolerance workstream#31
secup merged 1 commit into
mainfrom
docs/alc-tolerance-spec

Conversation

@secup
Copy link
Copy Markdown
Owner

@secup secup commented May 18, 2026

Summary

Docs-only. Specs out the ALC tolerance workstream so a future agent
or maintainer can pick it up cleanly.

Why now: the modem has zero validation that it decodes through
HF transmitter ALC compression. OTASim is AWGN + Watterson only;
cable rig has no radio; no CTest gate; no invariant. KC3VPB's
2026-05-08 operator pushback ("design for ALC, don't dodge it") was
about exactly this and we never followed through.

What lands:

  • `docs/ALC_TOLERANCE_WORKSTREAM.md` — full spec covering the
    `AlcCompressor` channel-model node (peak detect + exp attack/
    release in dB, threshold/ratio/attack/release/overshoot config),
    wiring into the OTASim mixer chain BEFORE channel noise, and a
    decoder tolerance sweep over the production mode ladder at
    realistic compression ratios. Includes milestones, three-perspective
    check, anti-scope, references.

  • `docs/AGENT_TASK_BACKLOG.md` — new entry D3 under Lane D
    cross-referencing the spec with acceptance criteria and gate
    command.

Anti-scope (explicit):

  • No PAPR reduction in the modulator — separate workstream once
    baseline tolerance numbers exist.
  • No `tx_drive` default tweaks — per-radio operator choice.
  • Hard stop + flag if DQPSK R1/2 fails at 4:1 / +6 dB — that's
    the production-baseline tripwire.

Test plan

  • Docs-only, no build changes
  • CI matrix (will run anyway since it's a PR; expected pass)

🤖 Generated with Claude Code

The modem has zero validation that it tolerates HF transmitter ALC
compression. OTASim has only AWGN + Watterson; cable rig has no radio;
no CTest gate exercises compression; no invariant. The only ALC
exposure was KC3VPB's 2026-05-07 OTA where decode was poor and the
response was to pre-attenuate the WAV (which KC3VPB pushed back on
the next day — "design for ALC, don't dodge it").

Until this workstream lands, "does the modem work on a real radio"
is a guess.

Adds:

- docs/ALC_TOLERANCE_WORKSTREAM.md — full spec. Two pieces: (1) an
  AlcCompressor channel-model node in OTASim (peak detect + exp
  attack/release in dB, configurable threshold/ratio/attack/release,
  optional overshoot transient) wired before channel noise in the
  mixer chain; (2) a decoder tolerance sweep across the production
  mode ladder (DQPSK R1/4 to D8PSK R2/3) at compression ratios
  {1:1, 2:1, 4:1, 8:1, infinity:1} and drives {threshold, +6 dB,
  +12 dB}, baseline table committed as a regression gate. Includes
  milestones (~3 dev-days to M4) and explicit anti-scope (no
  PAPR-reduction work, no default tx_drive tweaks, hard stop if
  DQPSK R1/2 fails at 4:1 / +6 dB).

- docs/AGENT_TASK_BACKLOG.md — entry D3 under Lane D (fading
  robustness) cross-referencing the spec, with acceptance criteria
  and gate command for an autonomous agent to pick up.

No code changes. Docs only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@secup secup merged commit bcf2f5e into main May 18, 2026
0 of 5 checks passed
@secup secup deleted the docs/alc-tolerance-spec branch May 18, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant