Skip to content

docs: current-state refactor — merge scheduled-MAC contracts, drop milestone framing, separate lab-rig facts#287

Merged
josephnef merged 1 commit into
masterfrom
docs/current-state-refactor
Jul 12, 2026
Merged

docs: current-state refactor — merge scheduled-MAC contracts, drop milestone framing, separate lab-rig facts#287
josephnef merged 1 commit into
masterfrom
docs/current-state-refactor

Conversation

@josephnef

Copy link
Copy Markdown
Collaborator

Documentation review + refactor across the tracked doc corpus (README, CLAUDE.md, docs/, tests/README). Four themes:

1. One scheduled-MAC doc instead of four milestone reports

docs/dl-departure.md, docs/beacon-grant.md, docs/ack-txreport.md and docs/ue-rx-attribution.md were titled "(M0 contract 1–4)" and written against the "5G-NR RAN epic" / "M1" / "M2". They are now one capability doc — docs/scheduled-mac.md — four measured per-generation contracts (submit→air guard time, dynamic beacon grants, hardware ACK/TxReport, per-UE RX attribution). All measurements, tables and verdicts kept verbatim; only the milestone voice is gone. Test-script headers and the IRtlDevice.h comment repointed; natural cross-links added from aggregation / time-distribution / multi-ap-cellular / ap-mode.

2. No WIP/milestone framing anywhere

  • jammer-resilience loses "(M5)" and the "M6 … is follow-up work" bullet; fhss loses "…and what is next" / "is future work" — boundaries are stated as current-state facts.
  • 8822e-quirks "## Untested" → "## Coverage" (states the characterized set: one BL-M8812EU2, rfe 21).
  • adaptive-link-validation "Open questions (need hardware not currently available)" → "What this validation does not cover" (scope statements; the attenuator-rig design stays as methodology).

3. Lab-rig facts separated from general hardware behaviour

Rig hostnames, ssh targets, BDF/IOMMU specifics and "on this rig/bench" phrasing are generalized in CLAUDE.md, time-distribution, timing-accuracy, wfb-ng-tuning, bench-testing-near-field and tests/README — tracked docs now describe behaviour any developer can reproduce on their own hardware. (The rig specifics live in the local, untracked INVENTORY.md.) Product identifications — "Radxa X4 onboard Wi-Fi", adapter models in the benchmark table — stay: they are provenance, not lab state.

4. Gaps vs recent PRs filled

  • CLAUDE.md now covers the whole beacon/TSF/AP surface (ReadTsf, StartBeacon/StopBeacon/UpdateBeaconPayload, PinBeaconTbtt, timesync/tdma demos) and aggregation/ACK (SetAmpduMode, SetAckResponder, tx.report, GetRxQuality vs cell::UeRxAttribution), plus src/cell/ in the architecture map — none of it was mentioned before.
  • README: the 8812BU row gets its missing "5/10 MHz capable" marker (it rides the 8822BU path); the 8821AU row loses a stray "AC"; the binaries table gains tdma, timesync, doctor, pcieprobe; "Going deeper" is restructured into themed groups covering every doc — previously 13 of 32 docs were unreachable from the README (the four contract docs had zero incoming links anywhere).
  • Stale src/ paths fixed in fused-fec.md (files moved to src/jaguar1/ long ago); driver-primer.md opens standalone instead of leading with its sibling.

Deliberately untouched: everything Kestrel (the out-of-scope lines are for the Kestrel PR to update when it lands); the RTL8821CE row is not marked 5/10 MHz — narrowband over PCIe is code-plausible but not bench-validated.

Verification

  • Sweeps over the tracked corpus return clean: no M0..M9/milestone/epic/"future work"/"not yet"; no rig hostnames/"this rig"/"this bench" (the devourer-testrig mentions are the tests/setup_vm.sh default VM name, i.e. tool documentation).
  • Every docs//tests//src//examples/ path referenced from the docs resolves in the tree; old filenames are gone repo-wide.
  • cmake --build build -j + all 20 ctest selftests pass (only comments changed outside docs).

🤖 Generated with Claude Code

…lestone framing, separate lab-rig facts

- Merge the four "M0 contract" docs (dl-departure, beacon-grant,
  ack-txreport, ue-rx-attribution) into docs/scheduled-mac.md — one
  capability doc, four measured per-generation contracts; all measurements
  and verdicts kept verbatim. Repoint the test-script/API references.
- Remove milestone/epic framing project-wide (M0..M6, "5G-NR RAN epic",
  "future work", "not yet"): forward-looking sections rephrased as
  current-state scope (8822e-quirks "Untested" -> "Coverage",
  adaptive-link-validation "Open questions" -> "What this validation does
  not cover", fhss/jammer-resilience honest-edges wording).
- Separate lab-rig facts from general hardware behaviour: rig hostnames,
  BDF/IOMMU specifics and "on this rig/bench" phrasing generalized in
  CLAUDE.md, time-distribution, timing-accuracy, wfb-ng-tuning,
  bench-testing-near-field, tests/README (the local, untracked INVENTORY.md
  now carries the rig specifics).
- Fill gaps vs recent PRs: CLAUDE.md gains the beacon/TSF/AP section
  (ReadTsf, StartBeacon/StopBeacon/UpdateBeaconPayload, PinBeaconTbtt,
  timesync/tdma demos) and the aggregation/ACK/TxReport section
  (SetAmpduMode, SetAckResponder, tx.report, GetRxQuality vs
  cell::UeRxAttribution), plus src/cell/ in the architecture map.
- README: hardware table gets the missing 8812BU 5/10 MHz marker (and the
  8821AU row loses a stray "AC"); binaries table gains tdma, timesync,
  doctor, pcieprobe; "Going deeper" restructured into themed groups covering
  every doc (previously 13 of 32 were unreachable).
- Fix stale src/ paths in fused-fec.md (files live under src/jaguar1/);
  driver-primer now opens standalone.

Verified: zero WIP/milestone/lab-phrasing sweep hits; every referenced
path resolves; build + all 20 ctest selftests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@josephnef josephnef merged commit 446f3ad into master Jul 12, 2026
15 checks passed
@josephnef josephnef deleted the docs/current-state-refactor branch July 12, 2026 20:41
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