All 3 phases shipped (8 plans, 29 requirements). macOS backend dropped from v1 scope. Archives created in .planning/milestones/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.7 KiB
2.7 KiB
Project Retrospective
A living document updated after each milestone. Lessons feed forward into future planning.
Milestone: v1.0 — MVP
Shipped: 2026-03-22 Phases: 3 | Plans: 8 | Tasks: 17
What Was Built
- eBPF data pipeline with 5 kernel programs, async RingBuf, and /proc bootstrap for pre-existing connections
- Interactive Ratatui TUI with sortable table, bandwidth heat-map coloring, live '/' filtering, and keyboard navigation
- CSV logging with headless mode, man page, .deb/.rpm packaging config, and 15 automated tests
- Platform abstraction trait (
NetworkCollector) ready for future backends
What Worked
- Data-flow-first phase ordering: building the pipeline first meant every subsequent phase had real data to work with
cfg(target_os)gating from day one kept the codebase compiling on macOS during development while targeting Linux- Tight plan scoping (2-3 plans per phase) kept execution focused and summaries meaningful
- eBPF RingBuf over PerfEventArray — simpler API, no per-CPU buffer management
What Was Inefficient
- macOS backend (Phase 4) was planned from the start but ultimately dropped — research during discuss-phase revealed PKTAP fidelity gaps that should have been investigated earlier
- Some Phase 3 success criteria referenced Homebrew (OPS-04) which was always tied to macOS — tighter requirements scoping would have caught this earlier
Patterns Established
- Three-crate workspace:
tcptop-common(shared eBPF/userspace types),tcptop-ebpf(kernel programs),tcptop(userspace binary) repr(C)union types for eBPF ↔ userspace communication- Headless branch before
ratatui::init()to prevent terminal corruption in--logmode - Man page at
doc/(workspace root), not inside crate directory
Key Lessons
- Scope macOS/cross-platform support based on data fidelity analysis, not just API availability — PKTAP exists but provides fundamentally less data than eBPF kprobes
- Keep the first milestone Linux-only for eBPF tools; cross-platform can be a separate milestone with its own requirements
Cost Observations
- Model mix: 100% opus
- Sessions: ~3 sessions over 1 day
- Notable: Entire v1.0 from greenfield to shipped in under 24 hours
Cross-Milestone Trends
Process Evolution
| Milestone | Phases | Plans | Key Change |
|---|---|---|---|
| v1.0 | 3 | 8 | Initial milestone — established workspace patterns, eBPF pipeline, TUI conventions |
Cumulative Quality
| Milestone | Tests | LOC | Crates |
|---|---|---|---|
| v1.0 | 15 | 2,846 | 3 |
Top Lessons (Verified Across Milestones)
- (First milestone — lessons will be cross-validated as more milestones complete)