Captures the four next-task buckets: - Outreach (file issue on markqvist/Reticulum) - Test infrastructure (bootstrap test-vectors/, write priority verifier scripts) - Open UNVERIFIED items in SPEC.md to resolve - Spec polishing (split SPEC.md, document Resource and Propagation /get) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.5 KiB
TODO
Outstanding work for the spec repo.
Outreach
- File a community-documentation issue on
markqvist/Reticulum. Link this repo as a community-maintained byte-level spec. Ask whether the maintainer would like to bless / link from the official Reticulum manual. Frame it as a complement to (not a replacement for) the existing operator-focused docs.
Test infrastructure
-
Bootstrap
test-vectors/with the existing vectors fromreticulum-mobile-app/reference/test-vectors.json. Convert to the proposed JSON format documented intest-vectors/README.md, adding the regenerator scripts so future contributors can verify vectors against newer upstream RNS releases. -
Write the priority verifier scripts listed in
tools/README.md, in this order (highest interop value first): 1.verify_destination_hash.py— pure-function check, no RNS state needed 2.verify_packet_header.py— bit layout + HEADER_1/HEADER_2 round-trip 3.verify_announce_roundtrip.py— closes the SPEC.md §4 gap 4.verify_token_crypto.py— closes SPEC.md §3 gap 5.verify_lxmf_opportunistic.py— closes SPEC.md §5 gap 6.verify_link_handshake.py— closes SPEC.md §6 gap 7.verify_path_request.py— closes SPEC.md §7.1, §7.2 gaps 8.verify_msgpack_quirk.py— closes SPEC.md §9.3 gapEach verifier should remove its corresponding `⚠️ UNVERIFIED` / `🔮 SPECULATION` callout in `SPEC.md` (per `agent.md` §1).
Open ⚠️ UNVERIFIED items in SPEC.md
These need either a runtime test or a stronger upstream source citation to remove their markers:
-
§2.3 Originator HEADER_1 → HEADER_2 conversion. Need a verifier that exercises
RNS.Transport.outboundwith a known multi-hop path table and shows the wire bytes change. -
§4.3 The 3-element
[name, stamp_cost, [capabilities]]app_data variant. Need a captured upstream emission with the capabilities field present, ideally withSF_COMPRESSIONset. -
§7.1 path? always precedes LXMF DATA. Verify whether peers ALWAYS issue path? before sending LXMF, or only when the path table entry is stale. Run a controlled test with a fresh path and a known-stale path.
-
§7.4 Ratchet ring count default = 8. Find the upstream source citation (
RNS/Identity.py, search forRATCHET_COUNTor similar). Update SPEC.md with the file + line, OR replace with the actual measured value if different.
Spec polishing (lower priority)
-
Split
SPEC.mdinto per-layer files as the document grows past ~1500 lines. Suggested layout perREADME.md:00-overview.md,01-packet-header.md,02-identity.md,03-announce.md,04-token-crypto.md,05-lxmf.md,06-link.md,07-resource.md,08-transport.md,09-paths-and-discovery.md,10-implementation-gotchas.md. -
Add a "last-verified-against-rns" line to SPEC.md frontmatter (per
agent.md§7) so readers know which RNS version the spec was tested against. -
Document the Reticulum Resource fragmentation protocol — currently absent from SPEC.md but needed for multi-packet LXMF over Link (NomadNet pages > 1 MTU, large file transfers).
-
Document the Propagation
/getpull protocol for offline message retrieval. Used by Sideband when peers are out of range.