2026-03-26 15:23:04 +01:00
# Requirements Archive: v1.0 MVP
**Archived:** 2026-03-26
**Status:** SHIPPED
For current requirements, see `.planning/REQUIREMENTS.md` .
---
2026-03-24 22:41:08 +01:00
# Requirements: NetSynth
**Defined:** 2026-03-24
**Core Value:** Network traffic patterns are instantly recognizable as distinct sounds — a ping sounds different from HTTPS noise, which sounds different from a port scan.
## v1 Requirements
Requirements for initial release. Each maps to roadmap phases.
### Packet Capture
2026-03-25 12:19:54 +01:00
- [x] **CAPT-01** : User can specify network interface via `-i` flag
- [x] **CAPT-02** : User can list available network interfaces via `--list-interfaces`
2026-03-26 13:16:55 +01:00
- [x] **CAPT-03** : Capture runs until user presses Ctrl+C, then gracefully flushes and saves MP3
2026-03-25 12:19:54 +01:00
- [x] **CAPT-04** : User sees a clear actionable error message when lacking capture privileges (sudo/CAP_NET_RAW hint)
2026-03-26 14:36:07 +01:00
- [x] **CAPT-05** : User can filter captured traffic using BPF syntax via `--filter` flag
- [x] **CAPT-06** : User can sonify a pcap file instead of live traffic via `--read` flag
2026-03-24 22:41:08 +01:00
### Traffic Classification
2026-03-25 12:14:33 +01:00
- [x] **CLAS-01** : Known protocols (ICMP, DNS, TCP/443, TCP/other, UDP, SSH) each produce a distinct recognizable sound
2026-03-26 13:12:50 +01:00
- [x] **CLAS-02** : Unrecognized traffic is auto-clustered and assigned unique tones automatically
2026-03-25 12:19:04 +01:00
- [x] **CLAS-03** : On exit, user sees a summary of packet counts and protocol breakdown (printed to stderr)
- [x] **CLAS-04** : User can enable per-window protocol activity log via `--verbose` flag
2026-03-24 22:41:08 +01:00
### Audio Synthesis
2026-03-26 12:00:20 +01:00
- [x] **SYNTH-01** : Each traffic class generates a distinct ambient/drone layer (layered sine/harmonic waves)
- [x] **SYNTH-02** : Drone layer amplitudes evolve over time windows based on traffic volume per class
2026-03-26 12:04:33 +01:00
- [x] **SYNTH-03** : Multiple drone layers are mixed into a single coherent audio stream without distortion
2026-03-24 22:41:08 +01:00
### Output
2026-03-26 12:09:47 +01:00
- [x] **OUT-01** : User can specify output file path via `-o` flag (defaults to `netsynth-<timestamp>.mp3` )
- [x] **OUT-02** : Output is encoded as a valid MP3 file
- [x] **OUT-03** : Empty captures (zero packets) produce a clear error instead of a corrupt file
2026-03-24 22:41:08 +01:00
## v2 Requirements
Deferred to future release. Tracked but not in current roadmap.
### Audio Tuning
- **TUNE-01**: User can configure time window duration via `--window` flag
- **TUNE-02**: User can configure output duration when reading pcap files via `--duration` flag
- **TUNE-03**: User can customize sound mappings via configuration file
### Distribution
- **DIST-01**: Single static binary with no runtime dependencies
## Out of Scope
| Feature | Reason |
|---------|--------|
| Real-time audio playback | Platform audio API complexity triples scope; users can pipe MP3 to mpv/afplay |
| GUI or web dashboard | Negates single-binary CLI value; doubles scope |
| Rhythmic/percussive output | Ambient/drone is the deliberate differentiator |
| Deep packet inspection | Massive complexity; header-level classification sufficient for audio fingerprint |
| Anomaly detection/alerting | Different user job; stick to audio fingerprint |
| Streaming MP3 output | MP3 VBR headers require finalization; buffer-then-encode is correct |
## Traceability
Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|-------------|-------|--------|
2026-03-25 12:19:54 +01:00
| CAPT-01 | Phase 1 | Complete |
| CAPT-02 | Phase 1 | Complete |
2026-03-26 13:16:55 +01:00
| CAPT-03 | Phase 3 | Complete |
2026-03-25 12:19:54 +01:00
| CAPT-04 | Phase 1 | Complete |
2026-03-26 14:36:07 +01:00
| CAPT-05 | Phase 4 | Complete |
| CAPT-06 | Phase 4 | Complete |
2026-03-25 12:14:33 +01:00
| CLAS-01 | Phase 1 | Complete |
2026-03-26 13:12:50 +01:00
| CLAS-02 | Phase 3 | Complete |
2026-03-25 12:19:04 +01:00
| CLAS-03 | Phase 1 | Complete |
| CLAS-04 | Phase 1 | Complete |
2026-03-26 12:00:20 +01:00
| SYNTH-01 | Phase 2 | Complete |
| SYNTH-02 | Phase 2 | Complete |
2026-03-26 12:04:33 +01:00
| SYNTH-03 | Phase 2 | Complete |
2026-03-26 12:09:47 +01:00
| OUT-01 | Phase 2 | Complete |
| OUT-02 | Phase 2 | Complete |
| OUT-03 | Phase 2 | Complete |
2026-03-24 22:41:08 +01:00
**Coverage:**
- v1 requirements: 16 total
2026-03-24 22:43:51 +01:00
- Mapped to phases: 16
- Unmapped: 0
2026-03-24 22:41:08 +01:00
---
*Requirements defined: 2026-03-24*
2026-03-24 22:43:51 +01:00
*Last updated: 2026-03-24 after roadmap creation*