diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md new file mode 100644 index 0000000..32902e4 --- /dev/null +++ b/.planning/REQUIREMENTS.md @@ -0,0 +1,119 @@ +# Requirements: GearBox v1.2 Collection Power-Ups + +**Defined:** 2026-03-16 +**Core Value:** Make it effortless to manage gear and plan new purchases — see how a potential buy affects your total setup weight and cost before committing. + +## v1.2 Requirements + +Requirements for this milestone. Each maps to roadmap phases. + +### Search & Filter + +- [ ] **SRCH-01**: User can search items by name with instant filtering as they type +- [ ] **SRCH-02**: User can filter collection items by category via dropdown +- [ ] **SRCH-03**: User can combine text search with category filter simultaneously +- [ ] **SRCH-04**: User can see result count when filters are active (e.g., "showing 12 of 47 items") +- [ ] **SRCH-05**: User can clear all active filters with one action + +### Weight Units + +- [ ] **UNIT-01**: User can select preferred weight unit (g, oz, lb, kg) from settings +- [ ] **UNIT-02**: All weight displays across the app reflect the selected unit +- [ ] **UNIT-03**: Weight unit preference persists across sessions + +### Weight Classification + +- [ ] **CLAS-01**: User can classify each item within a setup as base weight, worn, or consumable +- [ ] **CLAS-02**: Setup totals display base weight, worn weight, consumable weight, and total separately +- [ ] **CLAS-03**: Items default to "base weight" classification when added to a setup +- [ ] **CLAS-04**: Same item can have different classifications in different setups + +### Weight Visualization + +- [ ] **VIZZ-01**: User can view a donut chart showing weight distribution by category in a setup +- [ ] **VIZZ-02**: User can toggle chart between category view and classification view (base/worn/consumable) +- [ ] **VIZZ-03**: User can hover chart segments to see category name, weight, and percentage + +### Candidate Status + +- [ ] **CAND-01**: Each candidate displays a status badge (researching, ordered, or arrived) +- [ ] **CAND-02**: User can change a candidate's status via click interaction +- [ ] **CAND-03**: New candidates default to "researching" status + +### Planning UI + +- [ ] **PLAN-01**: Planning category filter dropdown shows Lucide icons alongside category names + +## Future Requirements + +Deferred to future milestones. Tracked but not in current roadmap. + +### Planning Enhancements + +- **COMP-01**: User can compare candidates side-by-side on weight and price +- **RANK-01**: User can rank/prioritize candidates within a thread +- **IMPC-01**: User can preview how a candidate affects setup weight/cost before resolving + +### Data Management + +- **DATA-01**: User can import gear collection from CSV +- **DATA-02**: User can export gear collection to CSV + +### Social & Multi-User + +- **SOCL-01**: User can create an account with authentication +- **SOCL-02**: User can share collections and setups publicly +- **SOCL-03**: User can view other users' public profiles and setups + +### Automation + +- **AUTO-01**: System can auto-fill product information (price, weight, images) from external sources + +## Out of Scope + +Explicitly excluded. Documented to prevent scope creep. + +| Feature | Reason | +|---------|--------| +| Per-item weight input in multiple units | Parsing complexity, ambiguous storage — display-only conversion is sufficient | +| Interactive chart drill-down (click to zoom) | Adds significant interaction complexity for minimal value | +| Weight goals / targets | Opinionated norms conflict with hobby-agnostic design | +| Custom classification labels | base/worn/consumable covers 95% of use cases | +| Server-side full-text search | Premature for single-user app with <1000 items | +| Classification at item level (not setup level) | Same item has different roles in different setups | +| Status change timestamps | Useful but adds schema complexity — defer | + +## Traceability + +Which phases cover which requirements. Updated during roadmap creation. + +| Requirement | Phase | Status | +|-------------|-------|--------| +| SRCH-01 | — | Pending | +| SRCH-02 | — | Pending | +| SRCH-03 | — | Pending | +| SRCH-04 | — | Pending | +| SRCH-05 | — | Pending | +| UNIT-01 | — | Pending | +| UNIT-02 | — | Pending | +| UNIT-03 | — | Pending | +| CLAS-01 | — | Pending | +| CLAS-02 | — | Pending | +| CLAS-03 | — | Pending | +| CLAS-04 | — | Pending | +| VIZZ-01 | — | Pending | +| VIZZ-02 | — | Pending | +| VIZZ-03 | — | Pending | +| CAND-01 | — | Pending | +| CAND-02 | — | Pending | +| CAND-03 | — | Pending | +| PLAN-01 | — | Pending | + +**Coverage:** +- v1.2 requirements: 19 total +- Mapped to phases: 0 +- Unmapped: 19 ⚠️ + +--- +*Requirements defined: 2026-03-16* +*Last updated: 2026-03-16 after initial definition*