Files
yoloyolo/.planning/ROADMAP.md
T

6.9 KiB

Roadmap: NetSynth

Milestones

  • v1.0 MVP — Phases 1-4 (shipped 2026-03-26)
  • v1.1 Custom Sound Mappings — Phases 5-7 (shipped 2026-03-26)
  • v1.2 Extended Protocol Coverage — Phases 8-11 (in progress)

Phases

v1.0 MVP (Phases 1-4) — SHIPPED 2026-03-26
  • Phase 1: Capture and Classification - 4/4 plans — completed 2026-03-25
  • Phase 2: Audio Synthesis Engine - 3/3 plans — completed 2026-03-26
  • Phase 3: Pipeline Integration and MVP - 2/2 plans — completed 2026-03-26
  • Phase 4: Power User Features - 2/2 plans — completed 2026-03-26

Full details: .planning/milestones/v1.0-ROADMAP.md

v1.1 Custom Sound Mappings (Phases 5-7) — SHIPPED 2026-03-26
  • Phase 5: Waveform Types and Bank Decoupling - 2/2 plans — completed 2026-03-26
  • Phase 6: Config Package and Sound Overrides - 2/2 plans — completed 2026-03-26
  • Phase 7: Custom Rules and Print-Config - 2/2 plans — completed 2026-03-26

Full details: .planning/milestones/v1.1-ROADMAP.md

v1.2 Extended Protocol Coverage (In Progress)

Milestone Goal: Expand traffic classification with grouped protocol families that share recognizable sound signatures — from 14 classes to ~35, organized into frequency bands by family.

  • Phase 8: Test and Constant Cleanup - 1 plan — Remove stale constants and update test bounds that would block all subsequent v1.2 work (completed 2026-03-27)
  • Phase 9: Frequency Design and Group Architecture - 2 plans — Design complete Hz allocation for all ~35 classes in family bands and add Group field to FreqConfig
  • Phase 10: Classification Layer - 2 plans — Add 21 new TrafficClass constants, 30 port rules, and test coverage for all new protocol families (completed 2026-03-27)
  • Phase 11: Synthesis and Config Layer - Add ClassFreqConfigs entries for all new classes, update auto-assign range, and add group-header output to --print-config

Phase Details

Phase 8: Test and Constant Cleanup

Goal: Pre-existing test assertions and a stale exported constant that would block or mislead all subsequent v1.2 work are removed Depends on: Phase 7 Requirements: CLEAN-01 Success Criteria (what must be TRUE):

  1. go test ./... passes on main with no modifications to the new v1.2 code path
  2. The stale NumLayers/GainPerLayer exported constant no longer exists in the synth package — callers cannot accidentally use it
  3. TestFrequenciesInRange accepts the new extended Hz range without manual test surgery when new classes are added in Phase 10 Plans: 1/1 plans complete Plans:
  • 08-01-PLAN.md — Delete stale constants, future-proof test bounds, rename/consolidate tests

Phase 9: Frequency Design and Group Architecture

Goal: A complete, documented frequency allocation table for all ~35 traffic classes exists and the FreqConfig struct carries a Group field — design decisions are locked in before any protocol code is written Depends on: Phase 8 Requirements: FREQ-01, FREQ-02, FREQ-03, FREQ-04, GRP-01, GRP-04 Success Criteria (what must be TRUE):

  1. A written frequency allocation table (in a planning doc or code comment) lists every built-in class, its Hz value, waveform, and group — no class is TBD
  2. Every within-family pair of frequencies satisfies at least a major second interval (ratio 1.122), verifiable by inspection of the table
  3. The autoAssignFreq base for user-defined custom classes is set above all built-in frequencies, with no collision possible
  4. FreqConfig has a Group string field and all existing ClassFreqConfigs entries compile with the new struct shape Plans: 1/2 plans executed Plans:
  • 09-01-PLAN.md — Add Group field to FreqConfig, rebalance ClassFreqConfigs to major-second ladder
  • 09-02-PLAN.md — Update auto-assign range from [1200,2350] to [2500,4000] Hz

Phase 10: Classification Layer

Goal: All new protocol families are classified — ~21 new TrafficClass constants exist, AllClasses() covers them, and DefaultRules maps all new ports to their classes Depends on: Phase 9 Requirements: PROTO-01, PROTO-02, PROTO-03, PROTO-04, PROTO-05, PROTO-06, PROTO-07, PROTO-08, PROTO-09 Success Criteria (what must be TRUE):

  1. A packet arriving on any new protocol port (e.g., TCP 143, TCP 3389, TCP 3306, UDP 5353, TCP 5060) is classified into the correct named TrafficClass, not into other-TCP or other-UDP
  2. All existing 10 protocol classifications continue to match as before — no regression in rule order or port assignments
  3. Multiple ports mapping to the same family class (e.g., IMAP port 143 and IMAPS port 993 both classify as the same Mail-IMAP class) behave identically in the classifier output
  4. go test ./classify/... passes with no new test failures Plans: 2/2 plans complete Plans:
  • 10-01-PLAN.md — Add 21 TrafficClass constants and 30 port-matching rules
  • 10-02-PLAN.md — Add 28 classification subtests and update TestAllClassesCount

Phase 11: Synthesis and Config Layer

Goal: Every new traffic class produces a distinct, family-coherent sound and --print-config shows all classes organized by group with section headers Depends on: Phase 9, Phase 10 Requirements: GRP-02, GRP-03 Success Criteria (what must be TRUE):

  1. Running netsynth --print-config shows all ~35 classes grouped by family with section header comments (e.g., # Mail, # Database) — no class is listed without a group
  2. A pcap or live capture that triggers Mail traffic produces tones that are audibly in the same timbral family — same waveform type, similar frequency register — while still being distinguishable from each other
  3. Users can define [groups] in their TOML config to reassign a protocol to a different sound family, and --print-config reflects the reassignment
  4. go test ./... passes and a listening test on a representative pcap confirms family identity is perceptually clear Plans: TBD

Progress

Phase Milestone Plans Complete Status Completed
1. Capture and Classification v1.0 4/4 Complete 2026-03-25
2. Audio Synthesis Engine v1.0 3/3 Complete 2026-03-26
3. Pipeline Integration and MVP v1.0 2/2 Complete 2026-03-26
4. Power User Features v1.0 2/2 Complete 2026-03-26
5. Waveform Types and Bank Decoupling v1.1 2/2 Complete 2026-03-26
6. Config Package and Sound Overrides v1.1 2/2 Complete 2026-03-26
7. Custom Rules and Print-Config v1.1 2/2 Complete 2026-03-26
8. Test and Constant Cleanup v1.2 1/1 Complete 2026-03-27
9. Frequency Design and Group Architecture v1.2 1/2 In Progress
10. Classification Layer v1.2 2/2 Complete 2026-03-27
11. Synthesis and Config Layer v1.2 0/? Not started -