# Roadmap: GearBox

## Milestones

- v1.0 MVP -- Phases 1-3 (shipped 2026-03-15)
- v1.1 Fixes & Polish -- Phases 4-6 (shipped 2026-03-15)
- **v1.2 Collection Power-Ups** -- Phases 7-9 (in progress)

## Phases

<details>
<summary>v1.0 MVP (Phases 1-3) -- SHIPPED 2026-03-15</summary>

- [x] Phase 1: Foundation and Collection (4/4 plans) -- completed 2026-03-14
- [x] Phase 2: Planning Threads (3/3 plans) -- completed 2026-03-15
- [x] Phase 3: Setups and Dashboard (3/3 plans) -- completed 2026-03-15

</details>

<details>
<summary>v1.1 Fixes & Polish (Phases 4-6) -- SHIPPED 2026-03-15</summary>

- [x] Phase 4: Database & Planning Fixes (2/2 plans) -- completed 2026-03-15
- [x] Phase 5: Image Handling (2/2 plans) -- completed 2026-03-15
- [x] Phase 6: Category Icons (3/3 plans) -- completed 2026-03-15

</details>

### v1.2 Collection Power-Ups (In Progress)

**Milestone Goal:** Make core gear management significantly more useful as collections grow -- better search, proper weight classification, richer planning threads.

- [x] **Phase 7: Weight Unit Selection** - Users see all weights in their preferred unit across the entire app
- [x] **Phase 8: Search, Filter, and Candidate Status** - Users can find items quickly and track candidate purchase progress
- [x] **Phase 9: Weight Classification and Visualization** - Users can classify gear by role and visualize weight distribution in setups

## Phase Details

### Phase 7: Weight Unit Selection
**Goal**: Users see all weights in their preferred unit across the entire app
**Depends on**: Nothing (first phase of v1.2)
**Requirements**: UNIT-01, UNIT-02, UNIT-03
**Success Criteria** (what must be TRUE):
  1. User can select a weight unit (g, oz, lb, kg) from a visible control and the selection persists after closing and reopening the app
  2. Every weight value in the app (item cards, candidate cards, category headers, totals bar, setup details) displays in the selected unit with appropriate precision
  3. Weight input fields accept values and store them correctly regardless of display unit (no rounding drift across edit cycles)
**Plans:** 2 plans

Plans:
- [x] 07-01-PLAN.md -- TDD formatWeight unit conversion core + useWeightUnit hook
- [ ] 07-02-PLAN.md -- Wire unit toggle into TotalsBar and update all 8 call sites

### Phase 8: Search, Filter, and Candidate Status
**Goal**: Users can find items quickly and track candidate purchase progress
**Depends on**: Phase 7
**Requirements**: SRCH-01, SRCH-02, SRCH-03, SRCH-04, SRCH-05, PLAN-01, CAND-01, CAND-02, CAND-03
**Success Criteria** (what must be TRUE):
  1. User can type in a search field on the collection page and see items filtered instantly by name as they type
  2. User can select a category from a dropdown (showing Lucide icons alongside names) to filter items in both collection and planning views
  3. User can see how many items match active filters (e.g., "showing 12 of 47 items") and clear all filters with one action
  4. Each candidate in a planning thread displays a status badge (researching, ordered, or arrived) that the user can change by clicking
  5. New candidates automatically start with "researching" status
**Plans:** 2 plans

Plans:
- [ ] 08-01-PLAN.md -- Candidate status vertical slice (schema migration, service, tests, StatusBadge UI)
- [ ] 08-02-PLAN.md -- Search/filter toolbar with CategoryFilterDropdown on gear and planning tabs

### Phase 9: Weight Classification and Visualization
**Goal**: Users can classify gear by role and visualize weight distribution in setups
**Depends on**: Phase 7, Phase 8
**Requirements**: CLAS-01, CLAS-02, CLAS-03, CLAS-04, VIZZ-01, VIZZ-02, VIZZ-03
**Success Criteria** (what must be TRUE):
  1. User can classify each item within a setup as base weight, worn, or consumable, and the same item can have different classifications in different setups
  2. Setup detail view shows separate weight subtotals for base weight, worn weight, and consumable weight in addition to the overall total
  3. User can view a donut chart in a setup showing weight distribution, and toggle between category breakdown and classification breakdown
  4. User can hover chart segments to see the category/classification name, weight (in selected unit), and percentage
**Plans:** 2 plans

Plans:
- [ ] 09-01-PLAN.md -- Classification vertical slice (schema, service, tests, API route, ClassificationBadge UI)
- [ ] 09-02-PLAN.md -- WeightSummaryCard with subtotals, donut chart, pill toggle, and visual verification

## Progress

**Execution Order:** Phase 7 -> Phase 8 -> Phase 9

| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|--------|-----------|
| 1. Foundation and Collection | v1.0 | 4/4 | Complete | 2026-03-14 |
| 2. Planning Threads | v1.0 | 3/3 | Complete | 2026-03-15 |
| 3. Setups and Dashboard | v1.0 | 3/3 | Complete | 2026-03-15 |
| 4. Database & Planning Fixes | v1.1 | 2/2 | Complete | 2026-03-15 |
| 5. Image Handling | v1.1 | 2/2 | Complete | 2026-03-15 |
| 6. Category Icons | v1.1 | 3/3 | Complete | 2026-03-15 |
| 7. Weight Unit Selection | v1.2 | 2/2 | Complete | 2026-03-16 |
| 8. Search, Filter, and Candidate Status | v1.2 | 2/2 | Complete | 2026-03-16 |
| 9. Weight Classification and Visualization | v1.2 | 2/2 | Complete | 2026-03-16 |
