# TASKS: SpireTab Refresh & Casting Fixes ## Task 1: Fix Cast Bar Not Updating - [ ] 1.1 Check `SpireTab.tsx` for `castProgress` subscription from `useCombatStore` - [ ] 1.2 Verify `combat-actions.ts` updates `castProgress` in `processCombatTick()` - [ ] 1.3 Fix Zustand subscription if `castProgress` not updating - [ ] 1.4 Test: `castProgress` changes during combat ticks ## Task 2: Fix Casting Not Costing Mana - [ ] 2.1 Audit `combat-actions.ts` for `deductSpellCost()` call - [ ] 2.2 Verify `canAffordSpellCost()` checked before casting - [ ] 2.3 Ensure `rawMana`/`elements` state updates after cast - [ ] 2.4 Test: Mana decreases when spells cast ## Task 3: Make SpireTab Full-Screen (No Study/Crafting) - [ ] 3.1 Remove study progress components when `simpleMode=true` - [ ] 3.2 Remove crafting progress components when `simpleMode=true` - [ ] 3.3 Add "Climb Down to Exit" button in `FloorControls.tsx` or `SpireTab.tsx` - [ ] 3.4 Button calls `exitSpireMode()` from `combatStore` - [ ] 3.5 Test: Study/crafting not rendered in spire mode ## Task 4: Refresh SpireTab Layout - [ ] 4.1 Reorganize `SpireTab.tsx` sections: Header → Combat → Controls → Log - [ ] 4.2 Remove redundant elements (duplicated stats, etc.) - [ ] 4.3 Improve visual hierarchy with consistent card layouts - [ ] 4.4 Test: Layout renders cleanly without clutter ## Task 5: Enforce Modular Stores Only - [ ] 5.1 Audit imports in `SpireTab.tsx`, `combat-actions.ts`, `combatStore.ts` - [ ] 5.2 Replace any `@/lib/game/store` or `@/lib/game/store-modules` imports - [ ] 5.3 Verify all use `src/lib/game/stores/` or `src/lib/game/utils/` - [ ] 5.4 Test: Zero legacy imports in modified files ## Task 6: Add Regression Tests - [ ] 6.1 Create `src/lib/game/stores/__tests__/spire-tab-refresh.test.ts` - [ ] 6.2 Test cast progress updates (acceptance criterion #1) - [ ] 6.3 Test mana costs deducted (acceptance criterion #2) - [ ] 6.4 Test no study in spire (acceptance criterion #3) - [ ] 6.5 Test climb down to exit (acceptance criterion #4) - [ ] 6.6 Run `npm run test` to verify all pass ## Task 7: Commit & Push - [ ] 7.1 Run `npm run lint` to check code style - [ ] 7.2 Run pre-commit checks (auto on commit) - [ ] 7.3 Commit with message: "fix: SpireTab refresh, cast bar, mana costs, full-screen mode" - [ ] 7.4 Push to origin/master - [ ] 7.5 Update task list to completed