mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2026-02-05 14:35:17 -05:00
194 lines
4.6 KiB
Markdown
194 lines
4.6 KiB
Markdown
---
|
|
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
|