---
description: Audit gaps and implement missing features from thrillwiki-87 source
---

# Migration Workflow

**thrillwiki-87 is LAW.** This workflow audits what's missing and implements it.

## Quick Start

Run `/migrate` to:
1. Audit current project against thrillwiki-87
2. Identify the highest-priority missing feature
3. Implement it using the appropriate sub-workflow

---

## Phase 1: Gap Analysis

### Step 1.1: Audit Components

Compare React components with Vue components:

```bash
# Source (LAW):
/Volumes/macminissd/Projects/thrillwiki-87/src/components/

# Target:
/Volumes/macminissd/Projects/thrillwiki_django_no_react/frontend/app/components/
```

For each React component directory, check if equivalent Vue component exists:
- **EXISTS**: Mark as ✅, check for feature parity
- **MISSING**: Mark as ❌, add to implementation queue

### Step 1.2: Audit Pages

Compare React pages with Nuxt pages:

```bash
# Source (LAW):
/Volumes/macminissd/Projects/thrillwiki-87/src/pages/

# Target:
/Volumes/macminissd/Projects/thrillwiki_django_no_react/frontend/app/pages/
```

Key pages to audit (by size/complexity):
| React Page | Size | Priority |
|------------|------|----------|
| RideDetail.tsx | 54KB | P0 |
| Profile.tsx | 51KB | P0 |
| AdminSettings.tsx | 44KB | P1 |
| ParkDetail.tsx | 36KB | P0 |
| Auth.tsx | 29KB | P1 |
| Parks.tsx | 22KB | P0 |
| Rides.tsx | 20KB | P0 |

### Step 1.3: Audit Hooks → Composables

Compare React hooks with Vue composables:

```bash
# Source (LAW):
/Volumes/macminissd/Projects/thrillwiki-87/src/hooks/

# Target:
/Volumes/macminissd/Projects/thrillwiki_django_no_react/frontend/app/composables/
```

Priority hooks:
| React Hook | Size | Current Status |
|------------|------|----------------|
| useModerationQueue.ts | 21KB | Check useModeration.ts |
| useEntityVersions.ts | 14KB | ❌ Missing |
| useAuth.tsx | 11KB | Check useAuth.ts |
| useRideCreditFilters.ts | 9KB | ❌ Missing |

### Step 1.4: Audit Types

Compare TypeScript definitions:

```bash
# Source (LAW):
/Volumes/macminissd/Projects/thrillwiki-87/src/types/

# Target:
/Volumes/macminissd/Projects/thrillwiki_django_no_react/frontend/app/types/
```

---

## Phase 2: Priority Selection

After auditing, select the highest priority gap:

### Priority Matrix

| Category | Weight | Examples |
|----------|--------|----------|
| **P0 - Core UX** | 10 | Main entity pages, search, auth |
| **P1 - Features** | 7 | Reviews, credits, lists |
| **P2 - Admin** | 5 | Moderation, settings |
| **P3 - Polish** | 3 | Animations, edge cases |

Select ONE item to implement this session.

---

## Phase 3: Implementation

Based on the gap type, use the appropriate sub-workflow:

### For Missing Component
```
/migrate-component
```

### For Missing Page
```
/migrate-page
```

### For Missing Hook/Composable
```
/migrate-hook
```

### For Missing Types
```
/migrate-type
```

---

## Phase 4: Verification

After implementation:

1. **Feature Parity Check**: Does it match thrillwiki-87 behavior?
2. **Visual Parity Check**: Does it look the same?
3. **Data Parity Check**: Does it show the same information?
4. **Interaction Parity Check**: Do actions work the same way?

---

## Gap Tracking

Update `GAP_ANALYSIS_MATRIX.md` with status:

```markdown
| Feature | Source Location | Target Location | Status |
|---------|-----------------|-----------------|--------|
| Park Detail Tabs | src/pages/ParkDetail.tsx | pages/parks/[park_slug]/ | [OK] |
| Entity Versioning | src/hooks/useEntityVersions.ts | composables/ | [MISSING] |
| Ride Credits | src/components/credits/ | components/credits/ | [PARTIAL] |
```

Status tags:
- `[OK]` - Feature parity achieved
- `[PARTIAL]` - Some features missing
- `[MISSING]` - Not implemented
- `[BLOCKED]` - Waiting on backend

---

## Reference: Source Documentation

Always check thrillwiki-87 docs for specifications:

```bash
/Volumes/macminissd/Projects/thrillwiki-87/docs/
├── SITE_OVERVIEW.md      # What features exist
├── COMPONENTS.md         # Component specifications
├── PAGES.md              # Page layouts (72KB - comprehensive)
├── USER_FLOWS.md         # Interaction patterns (77KB)
├── DESIGN_SYSTEM.md      # Visual standards
└── [Many more...]
```

---

## Single Command Execution

When you run `/migrate`, execute these steps:

1. **Read GAP_ANALYSIS_MATRIX.md** to see current status
2. **List directories** in both projects to find new gaps
3. **Select highest priority** missing item
4. **Read source implementation** from thrillwiki-87
5. **Implement in target** following sub-workflow patterns
6. **Update GAP_ANALYSIS_MATRIX.md** with new status
7. **Report what was implemented** and next priority item
