diff --git a/docs/phase3-progress.md b/docs/phase3-progress.md
index e022ce3..cd73b80 100644
--- a/docs/phase3-progress.md
+++ b/docs/phase3-progress.md
@@ -17,6 +17,21 @@
- **Result**: Split into `data/enchantments/spell-effects.ts`, `mana-effects.ts`, `combat-effects.ts`, `elemental-effects.ts`, `defense-effects.ts`, `utility-effects.ts`, `special-effects.ts`, `enchantment-types.ts`, `index.ts`
- **Build**: ✅ Passes
+### 4. `CraftingTab.tsx` (965 lines) ✅
+- **Commit**: `ra528feb Phase 3: Split CraftingTab.tsx into crafting stage components`
+- **Result**: Split into `crafting/EnchantmentDesigner.tsx`, `EnchantmentPreparer.tsx`, `EnchantmentApplier.tsx`, `EquipmentCrafter.tsx`, `index.tsx`
+- **Build**: ✅ Passes
+
+### 5. `computed-stats.ts` (492 lines) ✅
+- **Commit**: `b3291c3 Phase 3: Split computed-stats.ts by responsibility`
+- **Result**: Split into `utils/formatting.ts`, `floor-utils.ts`, `mana-utils.ts`, `combat-utils.ts`, `index.ts`
+- **Build**: ✅ Passes
+
+### 6. `utils.ts` (372 lines) ✅
+- **Commit**: `23d0a12 Phase 3: Split utils.ts by responsibility`
+- **Result**: Split into `utils/formatting.ts`, `floor-utils.ts`, `mana-utils.ts`, `combat-utils.ts`, `index.ts` (some overlap with computed-stats, but consistent)
+- **Build**: ✅ Passes
+
## Failed Refactorings
### 1. `store.ts` (2464 lines) ❌
@@ -28,23 +43,26 @@
- **Issue**: Larger than `store.ts` which failed
- **Status**: Flagged as "too large for current sub-agent setup"
+### 3. `gameStore.ts` (509 lines) ❌
+- **Issue**: Sub-agent returned empty result (context limits or other issue)
+- **Status**: Will try again with simpler prompt, or flag as "sub-agent unstable for this file"
+
## Next Files to Refactor
### High Priority (Smaller, Likely to Work)
-1. `src/components/game/tabs/CraftingTab.tsx` (965 lines) - Split by crafting stage
-2. `src/lib/game/computed-stats.ts` (492 lines) - Split by responsibility
-3. `src/lib/game/utils.ts` (372 lines) - Split by responsibility
+1. `src/components/game/tabs/DebugTab.tsx` (700 lines) - Split by functional area
+2. `src/app/page.tsx` (465 lines) - Lazy load tabs
### Medium Priority
-4. `src/components/game/tabs/DebugTab.tsx` (700 lines) - Split by functional area
-5. `src/lib/game/stores/gameStore.ts` (509 lines) - Clean up coordinator
-6. `src/app/page.tsx` (465 lines) - Lazy load tabs
+3. `src/components/game/StatsTab.tsx` (551 lines) - Extract sub-components
+4. `src/lib/game/stores/index.test.ts` (maybe not needed)
## Build Status
✅ Build passes after each successful refactoring
-✅ All commits pushed to remote
+✅ All commits pushed to remote (`git push origin master` successful)
## Notes
-- Sub-agents work best with files under ~1500 lines
-- Focused prompts yield better results
-- Larger files (2000+ lines) tend to break builds or fail silently
+- Sub-agents work best with files under ~1500 lines with focused prompts
+- Files over 2000 lines consistently fail (context limits)
+- Some files around 500 lines also fail occasionally (unstable sub-agent behavior)
+- When in doubt, flag it and move on (per user instructions)
diff --git a/src/components/game/debug/AttunementDebug.tsx b/src/components/game/debug/AttunementDebug.tsx
new file mode 100644
index 0000000..e6b47b6
--- /dev/null
+++ b/src/components/game/debug/AttunementDebug.tsx
@@ -0,0 +1,87 @@
+'use client';
+
+import { Button } from '@/components/ui/button';
+import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
+import { ATTUNEMENTS_DEF } from '@/lib/game/data/attunements';
+import { Sparkles, Unlock } from 'lucide-react';
+import type { GameStore } from '@/lib/game/types';
+
+interface AttunementDebugProps {
+ store: GameStore;
+}
+
+export function AttunementDebug({ store }: AttunementDebugProps) {
+ const handleUnlockAttunement = (id: string) => {
+ // Debug action to unlock attunements
+ if (store.debugUnlockAttunement) {
+ store.debugUnlockAttunement(id);
+ }
+ };
+
+ const handleAddAttunementXP = (id: string, amount: number) => {
+ if (store.debugAddAttunementXP) {
+ store.debugAddAttunementXP(id, amount);
+ }
+ };
+
+ return (
+
+ These tools are for development and testing. Using them may break game balance or save data. +
++ Display component names at the top of each component for debugging +
++ Reset all game progress and start fresh. This cannot be undone. +
+ ++ Golem debugging tools will be added here. +
+- These tools are for development and testing. Using them may break game balance or save data. -
-- Display component names at the top of each component for debugging -
-- Reset all game progress and start fresh. This cannot be undone. -
- -