Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.7 KiB
Phase 6: Config Package and Sound Overrides - Discussion Log
Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
Date: 2026-03-26 Phase: 06-config-package-and-sound-overrides Areas discussed: TOML structure, Config merge, Auto-discovery precedence, Error reporting Mode: --auto (all areas auto-selected, recommended defaults chosen)
TOML Structure
| Option | Description | Selected |
|---|---|---|
Keyed table [sounds.<classname>] |
Natural TOML pattern, matches traffic class names | ✓ |
| Flat key-value pairs | Simpler but doesn't scale to per-class overrides | |
Nested [sounds.<classname>.audio] |
Unnecessary nesting depth |
User's choice: [auto] Keyed table [sounds.<classname>] (recommended default)
Notes: Matches classify.TrafficClass string values directly. Supports frequency and waveform fields per class.
Config Merge Semantics
| Option | Description | Selected |
|---|---|---|
| Per-field overlay | Only specified fields override defaults (CFG-04) | ✓ |
| Full section replace | Setting any field in a class replaces all fields | |
| Deep merge with arrays | Overkill for flat config structure |
User's choice: [auto] Per-field overlay (recommended default) Notes: Satisfies CFG-04 requirement. User sets one field, everything else keeps defaults.
Auto-Discovery Precedence
| Option | Description | Selected |
|---|---|---|
| Local > user > flag | Most-specific wins: --config > ./netsynth.toml > ~/.config/ | ✓ |
| Flag only | Simpler but no auto-discovery (violates CFG-02) | |
| Multi-file merge | Load and merge all found configs |
User's choice: [auto] Local > user-level > flag (recommended default) Notes: Standard CLI convention. Only one file loaded — no multi-file merge complexity.
Error Reporting
| Option | Description | Selected |
|---|---|---|
| Fail-fast with key name + suggestion | Exit at startup, name the bad key (CFG-05) | ✓ |
| Warning and continue | Tolerant but hides mistakes | |
| Strict with no suggestions | Simpler but less helpful |
User's choice: [auto] Fail-fast with key name and optional typo suggestion (recommended default) Notes: Matches CFG-05 requirement. Unknown class names are warnings (not errors) to prepare for Phase 7.
Claude's Discretion
- TOML library choice
- Package organization (dedicated
configpackage vs inline) - Waveform string mapping implementation
- Edit distance for typo suggestions
Deferred Ideas
--print-config(CFG-06) — Phase 7- Custom rules
[[rules]]— Phase 7