docs: update retrospective for v1.0
This commit is contained in:
67
.planning/RETROSPECTIVE.md
Normal file
67
.planning/RETROSPECTIVE.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# Project Retrospective
|
||||||
|
|
||||||
|
*A living document updated after each milestone. Lessons feed forward into future planning.*
|
||||||
|
|
||||||
|
## Milestone: v1.0 — MVP
|
||||||
|
|
||||||
|
**Shipped:** 2026-03-15
|
||||||
|
**Phases:** 3 | **Plans:** 10 | **Commits:** 53
|
||||||
|
|
||||||
|
### What Was Built
|
||||||
|
- Full gear collection with item CRUD, categories, weight/cost totals, and image uploads
|
||||||
|
- Planning threads with candidate comparison and thread resolution into collection
|
||||||
|
- Named setups (loadouts) composed from collection items with live totals
|
||||||
|
- Dashboard home page with summary cards
|
||||||
|
- Onboarding wizard for first-time user experience
|
||||||
|
- Service-level and route-level integration tests
|
||||||
|
|
||||||
|
### What Worked
|
||||||
|
- Coarse 3-phase structure kept momentum high — no planning overhead between tiny phases
|
||||||
|
- TDD approach for backend (service tests first) caught issues early and made frontend integration smooth
|
||||||
|
- Service layer with DI (db as first param) made testing trivial with in-memory SQLite
|
||||||
|
- Visual verification checkpoints at end of each phase caught UI issues before moving on
|
||||||
|
- Bun + Vite + Hono stack had zero friction — everything worked together cleanly
|
||||||
|
|
||||||
|
### What Was Inefficient
|
||||||
|
- Verification plans (XX-03) were mostly rubber-stamp auto-approvals in yolo mode — could skip for v2
|
||||||
|
- Some ROADMAP plan checkboxes never got checked off (cosmetic, didn't affect tracking)
|
||||||
|
- Performance metrics in STATE.md had stale placeholder data alongside real data
|
||||||
|
|
||||||
|
### Patterns Established
|
||||||
|
- Service functions: `(db, params) => result` with production db default
|
||||||
|
- Route-level integration tests using Hono context variables for db injection
|
||||||
|
- Prices in cents everywhere, display conversion in UI only
|
||||||
|
- Tab navigation via URL search params for shareability
|
||||||
|
- Atomic sync pattern: delete-all + re-insert in transaction
|
||||||
|
|
||||||
|
### Key Lessons
|
||||||
|
1. Coarse granularity (3 phases for an MVP) is the right call for a greenfield app — avoids over-planning
|
||||||
|
2. The Vite proxy pattern is required when using TanStack Router plugin — can't do Bun fullstack serving
|
||||||
|
3. drizzle-kit needs better-sqlite3 even on Bun — can't use bun:sqlite for migrations
|
||||||
|
4. Onboarding state belongs in the database (settings table), not in client-side stores
|
||||||
|
|
||||||
|
### Cost Observations
|
||||||
|
- Model mix: quality profile throughout
|
||||||
|
- Sessions: ~10 plan executions across 2 days
|
||||||
|
- Notable: Most plans completed in 3-5 minutes, total wall time under 1 hour
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cross-Milestone Trends
|
||||||
|
|
||||||
|
### Process Evolution
|
||||||
|
|
||||||
|
| Milestone | Commits | Phases | Key Change |
|
||||||
|
|-----------|---------|--------|------------|
|
||||||
|
| v1.0 | 53 | 3 | Initial build, coarse granularity, TDD backend |
|
||||||
|
|
||||||
|
### Cumulative Quality
|
||||||
|
|
||||||
|
| Milestone | LOC | Files | Tests |
|
||||||
|
|-----------|-----|-------|-------|
|
||||||
|
| v1.0 | 5,742 | 114 | Service + route integration |
|
||||||
|
|
||||||
|
### Top Lessons (Verified Across Milestones)
|
||||||
|
|
||||||
|
1. Coarse phases with TDD backend → smooth frontend integration
|
||||||
|
2. Service DI pattern enables fast, reliable testing without mocks
|
||||||
Reference in New Issue
Block a user