mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-26 14:54:55 +00:00
- Created TODO files for Testing, DBAL, Frontend, Packages, Database, and Lua Scripting. - Updated README with a quick reference table for all TODO files and their priorities. - Added specific tasks for improving testing coverage, implementing DBAL features, enhancing frontend components, and refining package management. - Included documentation tasks to ensure thorough coverage and clarity across all areas. - Implemented initial unit tests for the useAuth hook and improved password generation logic. - Enhanced package loader functionality to support modular package seed data retrieval. - Updated page renderer to include public role in permission checks. - Added comments for future unit tests in workflow engine and other critical areas.
784 lines
21 KiB
Markdown
784 lines
21 KiB
Markdown
# 🎯 MetaBuilder Priority Action Plan
|
|
## Comprehensive Improvement Roadmap for Components, State, & Packages
|
|
|
|
**Document Date:** December 25, 2025
|
|
**Status:** Active - Ready for Implementation
|
|
**Total Effort:** ~180 hours over 8-10 weeks
|
|
**Priority:** Critical path blocking production readiness
|
|
|
|
TODO: This file uses ./docs/... links which are broken from docs/reference/; update to correct relative paths.
|
|
|
|
---
|
|
|
|
## 📊 Executive Summary
|
|
|
|
MetaBuilder faces three critical improvement areas that impact maintainability, testability, and feature completeness:
|
|
|
|
| Area | Issue | Impact | Effort |
|
|
|------|-------|--------|--------|
|
|
| **Components** | 8 files exceeding 150 LOC (4,146 LOC over) | Code quality, testability, reuse | 65 hours |
|
|
| **State Management** | Scattered across React/Context/Database | Consistency, debugging, scalability | 45 hours |
|
|
| **Package System** | Incomplete asset handling & import/export | Feature delivery, user experience | 40 hours |
|
|
| **Documentation** | 4,935+ LOC scattered across 50+ files | Onboarding, team velocity, maintenance | 30 hours |
|
|
|
|
---
|
|
|
|
## 🔴 PHASE 1: CRITICAL PATH (Weeks 1-2, 35 hours)
|
|
|
|
### Priority 1A: Component Refactoring - Top 3 Violations
|
|
**Status:** Strategy complete, implementation ready
|
|
**Effort:** 28 hours | **Timeline:** 1.5 weeks | **Outcome:** 89% LOC reduction
|
|
|
|
#### 1. GitHubActionsFetcher.tsx (887 LOC → 95 LOC)
|
|
**Current Issues:**
|
|
- API integration + UI rendering + state management combined
|
|
- Polling logic mixed with component lifecycle
|
|
- Analysis features hardcoded
|
|
- No hook-based reusability
|
|
|
|
**Refactoring Plan:**
|
|
```
|
|
┌─ useGitHubFetcher.ts (65 LOC) [API & polling logic]
|
|
│ ├─ Fetch workflow runs
|
|
│ ├─ Handle auth/errors
|
|
│ └─ Auto-refresh management
|
|
├─ useAnalyzeWorkflows.ts (45 LOC) [Analysis logic]
|
|
│ ├─ Parse workflow structures
|
|
│ └─ Generate insights
|
|
├─ WorkflowRunCard.tsx (48 LOC) [Card display]
|
|
├─ WorkflowAnalysisPanel.tsx (52 LOC) [Analysis UI]
|
|
└─ GitHubActionsFetcher.tsx (85 LOC) [Container]
|
|
```
|
|
|
|
**Implementation Steps:**
|
|
1. Create `src/hooks/useGitHubFetcher.ts` (90 min)
|
|
- Extract API calls and polling logic
|
|
- Return: `{ runs, loading, error, refresh }`
|
|
2. Create `src/hooks/useAnalyzeWorkflows.ts` (60 min)
|
|
- Analysis functions from component
|
|
- Return: `{ insights, analyzeRun, analyzeLog }`
|
|
3. Create `src/components/WorkflowRunCard.tsx` (45 min)
|
|
- Pure UI component for single run
|
|
4. Create `src/components/WorkflowAnalysisPanel.tsx` (45 min)
|
|
- Analysis visualization
|
|
5. Refactor `GitHubActionsFetcher.tsx` to container (60 min)
|
|
- Wire hooks + components, maintain same API
|
|
6. Add unit tests (90 min)
|
|
- Hook: 8 test cases (auth, errors, retry)
|
|
- Components: 6 test cases (rendering, interactions)
|
|
|
|
**Dependencies:** None (can start immediately)
|
|
|
|
---
|
|
|
|
#### 2. NerdModeIDE.tsx (733 LOC → 110 LOC)
|
|
**Current Issues:**
|
|
- File tree + editor + console + git all in one component
|
|
- Complex state: expandedNodes, openFiles, activeTab, editorContent
|
|
- Hardcoded layout and styling
|
|
- No Lua script integration
|
|
|
|
**Refactoring Plan:**
|
|
```
|
|
┌─ useFileTree.ts (85 LOC) [File operations]
|
|
├─ useCodeEditor.ts (68 LOC) [Editor state]
|
|
├─ useConsoleOutput.ts (42 LOC) [Console management]
|
|
├─ FileTreePanel.tsx (72 LOC)
|
|
├─ EditorPanel.tsx (80 LOC)
|
|
├─ ConsoleOutput.tsx (55 LOC)
|
|
└─ NerdModeIDE.tsx (110 LOC) [Container]
|
|
```
|
|
|
|
**Implementation Steps:**
|
|
1. Create hooks (4 hours total)
|
|
- `useFileTree.ts`: tree navigation, expand/collapse
|
|
- `useCodeEditor.ts`: tabs, active file, content
|
|
- `useConsoleOutput.ts`: logs, clear, scroll
|
|
2. Create UI components (3 hours total)
|
|
- FileTreePanel, EditorPanel, ConsoleOutput
|
|
3. Refactor container (1.5 hours)
|
|
4. Add integration tests (1.5 hours)
|
|
|
|
**Dependencies:** None (can start after GitHubActionsFetcher)
|
|
|
|
---
|
|
|
|
#### 3. LuaEditor.tsx (686 LOC → 120 LOC)
|
|
**Current Issues:**
|
|
- Script editor + preview + console all combined
|
|
- State: editorContent, selectedScript, previewOutput, errors
|
|
- Syntax highlighting hardcoded
|
|
- No persistence or script library integration
|
|
|
|
**Refactoring Plan:**
|
|
```
|
|
┌─ useLuaScript.ts (55 LOC) [Script management]
|
|
├─ useLuaPreview.ts (48 LOC) [Preview/execution]
|
|
├─ ScriptEditor.tsx (65 LOC) [Edit UI]
|
|
├─ ScriptPreview.tsx (48 LOC) [Preview UI]
|
|
└─ LuaEditor.tsx (120 LOC) [Container]
|
|
```
|
|
|
|
**Implementation Steps:**
|
|
1. Create `useLuaScript.ts` (1.5 hours)
|
|
2. Create `useLuaPreview.ts` (1.5 hours)
|
|
3. Create UI components (2 hours)
|
|
4. Refactor container (1 hour)
|
|
5. Add tests (1 hour)
|
|
|
|
**Dependencies:** After GitHubActionsFetcher completion
|
|
|
|
---
|
|
|
|
### Priority 1B: Quick Wins - Medium Components
|
|
**Effort:** 7 hours | **Aim:** Remove 3 more violations while momentum is high
|
|
|
|
| Component | Current | Target | Effort | Notes |
|
|
|-----------|---------|--------|--------|-------|
|
|
| SchemaEditor | 520 LOC | 100 LOC | 2.5h | Extract form builder logic |
|
|
| ComponentConfigDialog | 450 LOC | 90 LOC | 2h | Break into config tabs |
|
|
| PropertyInspector | 380 LOC | 85 LOC | 1.5h | Split prop types |
|
|
| IRCWebchat | 290 LOC | 85 LOC | 1h | Move chat logic to hook |
|
|
|
|
---
|
|
|
|
## 🟡 PHASE 2: STATE MANAGEMENT (Weeks 3-4, 45 hours)
|
|
|
|
### Priority 2A: Audit Current State Patterns
|
|
**Effort:** 5 hours | **Deliverable:** State architecture document
|
|
|
|
**Scan all components for:**
|
|
1. useState usage patterns (30-50 likely candidates)
|
|
2. useContext usage (providers, themes, auth)
|
|
3. Prisma Database calls (create/read/update/delete)
|
|
4. Local vs. persistent data
|
|
|
|
**Create registry of:**
|
|
```typescript
|
|
interface StateAnalysis {
|
|
component: string;
|
|
useState: { [key: string]: 'local' | 'persistent' | 'cache' }
|
|
useContext: string[];
|
|
dbCalls: string[];
|
|
recommendations: string[];
|
|
}
|
|
```
|
|
|
|
**Output:** `/docs/STATE_MANAGEMENT_AUDIT.md`
|
|
|
|
---
|
|
|
|
### Priority 2B: Define Unified State Strategy
|
|
**Effort:** 8 hours | **Deliverable:** State management specification
|
|
|
|
**Key Decisions:**
|
|
1. **Local State** (useState)
|
|
- Ephemeral UI state (expanded, focused, hover)
|
|
- Form inputs before submission
|
|
- Modals/dialogs open/closed
|
|
- → Max 1-2 items per component
|
|
|
|
2. **Database State** (Prisma)
|
|
- Persistent user preferences
|
|
- Feature configurations
|
|
- Shared data across sessions
|
|
- → Via `Database` helper class
|
|
|
|
3. **React Context** (Context API)
|
|
- Auth/user context (global)
|
|
- Theme/settings (global)
|
|
- Notification system (global)
|
|
- → Max 3-4 providers
|
|
|
|
4. **Cache State** (React Query / SWR)
|
|
- API responses
|
|
- Database queries with automatic sync
|
|
- Optimistic updates
|
|
- → For high-frequency updates
|
|
|
|
**Create:**
|
|
- Decision matrix: when to use each pattern
|
|
- Code templates for each pattern
|
|
- Migration checklist for existing state
|
|
|
|
---
|
|
|
|
### Priority 2C: Implement State Consolidation
|
|
**Effort:** 32 hours | **Deliverable:** Migrated state patterns
|
|
|
|
**Target Components (by impact):**
|
|
1. `Level5.tsx` - Convert context to database + hooks (4h)
|
|
2. `ComponentHierarchyEditor.tsx` - Local state → DB + Context (3h)
|
|
3. `PackageManager.tsx` - useState consolidation (3h)
|
|
4. `WorkflowEditor.tsx` - Query state separation (3h)
|
|
5. Create shared context providers (4h)
|
|
6. Create database state wrappers (5h)
|
|
7. Migrate 10 remaining components (7h)
|
|
|
|
**Metrics:**
|
|
- [ ] Reduce useState instances by 60%
|
|
- [ ] Standardize all database reads to `Database` class
|
|
- [ ] Consolidate to 3-4 global context providers
|
|
- [ ] Add caching layer for expensive queries
|
|
|
|
---
|
|
|
|
## 🔵 PHASE 3: PACKAGE SYSTEM (Weeks 4-6, 40 hours)
|
|
|
|
### Priority 3A: Analyze Current Package System
|
|
**Effort:** 4 hours | **Deliverable:** Gap analysis
|
|
|
|
**Current State:**
|
|
- ✅ Basic package structure exists
|
|
- ✅ Seed data in packages
|
|
- ✅ Package loader (initializePackageSystem)
|
|
- ❌ Asset handling incomplete
|
|
- ❌ Import/export missing UI
|
|
- ❌ No pre-built packages
|
|
|
|
**Read:** `/dbal/AGENTS.md` for package architecture guidance
|
|
|
|
---
|
|
|
|
### Priority 3B: Complete Asset System
|
|
**Effort:** 12 hours | **Deliverable:** Asset management feature
|
|
|
|
**Features to Add:**
|
|
1. Asset storage in database
|
|
```prisma
|
|
model Asset {
|
|
id String @id @default(cuid())
|
|
packageId String
|
|
name String
|
|
type String // 'image' | 'icon' | 'font' | 'config'
|
|
mimeType String
|
|
content Bytes // Base64 encoded
|
|
metadata Json
|
|
tenantId String
|
|
createdAt DateTime @default(now())
|
|
}
|
|
```
|
|
|
|
2. Asset upload handler
|
|
- `/api/packages/[packageId]/assets` POST
|
|
- Max 10MB per asset
|
|
- Scan for malicious content
|
|
|
|
3. Asset reference system
|
|
- Component config: `{ icon: "@package/icon-name" }`
|
|
- Runtime resolution: lookup in Asset table
|
|
- Fallback to static_content/
|
|
|
|
4. Asset gallery UI component
|
|
- Browse package assets
|
|
- Upload/delete
|
|
- Tag and organize
|
|
|
|
**Implementation:**
|
|
- Add Prisma model (30 min)
|
|
- Create API handler (1.5h)
|
|
- Create asset resolver utility (1h)
|
|
- Create React component (2h)
|
|
- Add unit tests (1h)
|
|
- Documentation (1h)
|
|
|
|
---
|
|
|
|
### Priority 3C: Implement Import/Export UI
|
|
**Effort:** 14 hours | **Deliverable:** User-friendly package management
|
|
|
|
**Features:**
|
|
1. Export Package Dialog
|
|
```
|
|
┌─ Package Selection
|
|
├─ Include Components ☑️
|
|
├─ Include Scripts ☑️
|
|
├─ Include Assets ☑️
|
|
├─ Include Schema ☑️
|
|
└─ [Export as ZIP]
|
|
```
|
|
|
|
2. Import Package Dialog
|
|
```
|
|
┌─ [Upload .zip file]
|
|
├─ Preview Contents
|
|
│ ├─ 5 Components
|
|
│ ├─ 3 Scripts
|
|
│ ├─ 12 Assets
|
|
│ └─ 2 Schema Definitions
|
|
├─ Conflict Resolution ⚠️
|
|
└─ [Import]
|
|
```
|
|
|
|
3. Package Marketplace UI
|
|
- Browse pre-built packages
|
|
- One-click install
|
|
- Version management
|
|
- Ratings/reviews
|
|
|
|
**Components to Create:**
|
|
- `PackageExportDialog.tsx` (80 LOC)
|
|
- `PackageImportDialog.tsx` (85 LOC)
|
|
- `PackageMarketplace.tsx` (95 LOC)
|
|
- `usePackageExport.ts` (50 LOC)
|
|
- `usePackageImport.ts` (55 LOC)
|
|
|
|
**Implementation:**
|
|
- Create hooks (3h)
|
|
- Create components (3h)
|
|
- Create API handlers (2h)
|
|
- Add validation/error handling (1.5h)
|
|
- Add tests (1.5h)
|
|
- Integration testing (2h)
|
|
- Documentation (1h)
|
|
|
|
---
|
|
|
|
### Priority 3D: Pre-built Packages Library
|
|
**Effort:** 10 hours | **Deliverable:** 5 ready-to-use packages
|
|
|
|
**Packages to Create:**
|
|
1. **DataGrid Package** (analytics dashboard)
|
|
- Pre-built columns
|
|
- Sorting/filtering
|
|
- Export to CSV
|
|
|
|
2. **FormBuilder Package** (create forms)
|
|
- 10 field types
|
|
- Validation rules
|
|
- Conditional fields
|
|
|
|
3. **ChartPackage** (visualizations)
|
|
- Bar, line, pie charts
|
|
- Real-time data binding
|
|
- Themes
|
|
|
|
4. **AuthPackage** (login/signup)
|
|
- Login page
|
|
- Signup form
|
|
- Password reset
|
|
|
|
5. **NotificationPackage** (alerts)
|
|
- Toast notifications
|
|
- Notification center
|
|
- Email integration
|
|
|
|
**Each Package:** ~2 hours
|
|
- Define seed data structure
|
|
- Create components
|
|
- Add example scripts
|
|
- Package metadata
|
|
- Documentation
|
|
|
|
---
|
|
|
|
## 🟢 PHASE 4: DOCUMENTATION (Weeks 6-8, 30 hours)
|
|
|
|
### Priority 4A: Consolidate Scattered Documentation
|
|
**Effort:** 10 hours | **Deliverable:** Unified reference
|
|
|
|
**Current State:** 4,935+ LOC across 50+ files
|
|
- ✅ Architecture guides
|
|
- ✅ Implementation docs
|
|
- ✅ Quick references
|
|
- ❌ Fragmented and duplicated
|
|
- ❌ No clear hierarchy
|
|
- ❌ Hard to find information
|
|
|
|
**Create Master Index:**
|
|
```
|
|
/docs/INDEX.md (single entry point)
|
|
├── Quick Start (5 min)
|
|
├── Architecture (30 min)
|
|
│ ├── 5-Level System
|
|
│ ├── Packages
|
|
│ ├── State Management
|
|
│ └── DBAL
|
|
├── Implementation (2 hours)
|
|
│ ├── Component Refactoring
|
|
│ ├── State Management
|
|
│ ├── Package Development
|
|
│ └── Testing
|
|
├── Reference (lookup)
|
|
│ ├── API Documentation
|
|
│ ├── Component Library
|
|
│ ├── Lua Scripts
|
|
│ └── Configuration
|
|
└── Troubleshooting (FAQ)
|
|
```
|
|
|
|
**Steps:**
|
|
1. Audit all 50+ docs (2h)
|
|
2. Identify duplicates and gaps (1h)
|
|
3. Create master outline (1.5h)
|
|
4. Reorganize files (2h)
|
|
5. Create redirects/links (1.5h)
|
|
6. Update INDEX.md (2h)
|
|
|
|
---
|
|
|
|
### Priority 4B: Create Implementation Guide
|
|
**Effort:** 10 hours | **Deliverable:** Step-by-step execution manual
|
|
|
|
**Chapters:**
|
|
1. **Setup** (30 min)
|
|
- Dev environment
|
|
- Database initialization
|
|
- Running tests
|
|
|
|
2. **Component Refactoring** (2 hours)
|
|
- Checklist from Phase 1
|
|
- Code templates
|
|
- Common pitfalls
|
|
- Success metrics
|
|
|
|
3. **State Management** (2 hours)
|
|
- Decision tree
|
|
- Pattern templates
|
|
- Migration guide
|
|
- Examples
|
|
|
|
4. **Package Development** (1.5 hours)
|
|
- Package structure
|
|
- Seed data format
|
|
- Asset management
|
|
- Publishing
|
|
|
|
5. **Testing** (1 hour)
|
|
- Unit test templates
|
|
- Integration tests
|
|
- E2E tests
|
|
|
|
6. **Deployment** (1 hour)
|
|
- Build process
|
|
- Environment setup
|
|
- Health checks
|
|
|
|
---
|
|
|
|
### Priority 4C: Create Developer Playbooks
|
|
**Effort:** 5 hours | **Deliverable:** Quick decision guides
|
|
|
|
**Playbooks:**
|
|
1. "I'm adding a new feature" (2 pages)
|
|
- Checklist
|
|
- File locations
|
|
- Key files to modify
|
|
|
|
2. "I'm fixing a bug" (2 pages)
|
|
- Debug strategy
|
|
- Common issues
|
|
- Test approach
|
|
|
|
3. "I'm refactoring a component" (2 pages)
|
|
- Phase 1 checklist
|
|
- Hook extraction
|
|
- Testing
|
|
|
|
4. "I'm creating a package" (2 pages)
|
|
- Package structure
|
|
- Seed data format
|
|
- Publishing
|
|
|
|
---
|
|
|
|
## 📈 PHASE 5: QUALITY & LAUNCH (Weeks 8-10, 30 hours)
|
|
|
|
### Priority 5A: Comprehensive Testing
|
|
**Effort:** 15 hours
|
|
|
|
**Coverage Goals:**
|
|
- [ ] All refactored components: 90%+ coverage
|
|
- [ ] All new hooks: 100% coverage
|
|
- [ ] E2E workflows: 100% passing
|
|
- [ ] Package system: 85%+ coverage
|
|
|
|
**Testing Strategy:**
|
|
1. Unit tests for hooks (5h)
|
|
2. Component tests (4h)
|
|
3. Integration tests (3h)
|
|
4. E2E smoke tests (2h)
|
|
5. Performance tests (1h)
|
|
|
|
---
|
|
|
|
### Priority 5B: Code Quality Review
|
|
**Effort:** 8 hours
|
|
|
|
- [ ] ESLint: all violations fixed
|
|
- [ ] TypeScript: no `any` types
|
|
- [ ] Size limits: all files <150 LOC
|
|
- [ ] Naming conventions: consistent
|
|
- [ ] Documentation: JSDoc on all exports
|
|
- [ ] Accessibility: WCAG 2.1 AA compliance
|
|
|
|
---
|
|
|
|
### Priority 5C: Production Readiness
|
|
**Effort:** 7 hours
|
|
|
|
**Checklist:**
|
|
- [ ] Security audit: no secrets in code
|
|
- [ ] Performance: Lighthouse scores >90
|
|
- [ ] Accessibility: all interactive elements keyboard-accessible
|
|
- [ ] Multi-tenancy: all queries include tenantId
|
|
- [ ] Error handling: graceful fallbacks
|
|
- [ ] Monitoring: logging in critical paths
|
|
- [ ] Documentation: updated
|
|
|
|
---
|
|
|
|
## 🎯 Success Metrics & Milestones
|
|
|
|
### PHASE 1 Completion (End of Week 2)
|
|
```
|
|
✅ 6 components refactored to <150 LOC
|
|
✅ 2,200 LOC moved to hooks/components
|
|
✅ All 6 covered by unit tests (>90%)
|
|
✅ GitHubActionsFetcher.tsx verified in production
|
|
```
|
|
|
|
### PHASE 2 Completion (End of Week 4)
|
|
```
|
|
✅ State management audit documented
|
|
✅ Unified state strategy defined
|
|
✅ 10 components migrated to new patterns
|
|
✅ 60% reduction in useState instances
|
|
✅ All state operations tested
|
|
```
|
|
|
|
### PHASE 3 Completion (End of Week 6)
|
|
```
|
|
✅ Asset system fully implemented
|
|
✅ Import/export UI complete
|
|
✅ 5 pre-built packages available
|
|
✅ Package marketplace functional
|
|
✅ All package operations tested
|
|
```
|
|
|
|
### PHASE 4 Completion (End of Week 8)
|
|
```
|
|
✅ Documentation consolidated
|
|
✅ Implementation guide published
|
|
✅ Developer playbooks available
|
|
✅ All docs indexed and linkable
|
|
✅ New developers can onboard in <2 hours
|
|
```
|
|
|
|
### PHASE 5 Completion (End of Week 10)
|
|
```
|
|
✅ 90%+ test coverage across refactored code
|
|
✅ All size limits enforced
|
|
✅ Zero security issues
|
|
✅ Performance >90% Lighthouse
|
|
✅ Production ready for launch
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Dependencies & Sequencing
|
|
|
|
```
|
|
┌─ PHASE 1: Components (Week 1-2)
|
|
│ ├─ GitHubActionsFetcher
|
|
│ ├─ NerdModeIDE
|
|
│ └─ LuaEditor + Medium Components
|
|
│
|
|
├─ PHASE 2: State Management (Week 3-4)
|
|
│ ├─ Audit (requires Phase 1 complete)
|
|
│ └─ Implementation (depends on audit)
|
|
│
|
|
├─ PHASE 3: Package System (Week 4-6)
|
|
│ ├─ Asset system (independent)
|
|
│ ├─ Import/export UI (depends on assets)
|
|
│ └─ Pre-built packages (independent)
|
|
│
|
|
├─ PHASE 4: Documentation (Week 6-8)
|
|
│ └─ Can run in parallel with Phase 3
|
|
│
|
|
└─ PHASE 5: Quality (Week 8-10)
|
|
└─ Testing of all Phase 1-3 changes
|
|
```
|
|
|
|
---
|
|
|
|
## 💰 Resource Allocation
|
|
|
|
**Recommended Team:**
|
|
- **Developer 1 (60%):** Components + State Management
|
|
- **Developer 2 (40%):** Package System + Documentation
|
|
- **QA (50%):** Testing + Code Review
|
|
- **Tech Lead (20%):** Architecture + Planning + Review
|
|
|
|
**Alternative (Single Developer):**
|
|
- Phase 1: 2 weeks (components)
|
|
- Phase 2: 2 weeks (state)
|
|
- Phase 3: 2 weeks (packages)
|
|
- Phase 4: 1 week (docs)
|
|
- Phase 5: 1.5 weeks (testing)
|
|
- **Total:** 8.5 weeks at full-time
|
|
|
|
---
|
|
|
|
## ⚠️ Risk Mitigation
|
|
|
|
### Risk 1: Refactoring breaks existing features
|
|
**Mitigation:**
|
|
- Keep component API unchanged during refactoring
|
|
- Use feature flags for new state patterns
|
|
- Comprehensive E2E tests before/after
|
|
- Staged rollout to internal users first
|
|
|
|
### Risk 2: Team unfamiliar with new patterns
|
|
**Mitigation:**
|
|
- Early documentation (Phase 4B starts Week 1)
|
|
- Pairing/code review on first refactors
|
|
- Developer playbooks with clear examples
|
|
- Team training session (1 hour)
|
|
|
|
### Risk 3: Package system complexity
|
|
**Mitigation:**
|
|
- Start with simple pre-built packages
|
|
- Progressive enhancement (export first, then import)
|
|
- Fallback to manual package management
|
|
- Extensive testing of import/export
|
|
|
|
### Risk 4: Documentation becomes outdated
|
|
**Mitigation:**
|
|
- Single source of truth (INDEX.md)
|
|
- Automated doc generation where possible
|
|
- Monthly review cycle
|
|
- Version control for docs
|
|
|
|
---
|
|
|
|
## 📅 Week-by-Week Execution Plan
|
|
|
|
### Week 1: Foundation
|
|
- [ ] Day 1-2: GitHubActionsFetcher refactoring (hooks)
|
|
- [ ] Day 3-4: GitHubActionsFetcher refactoring (components)
|
|
- [ ] Day 5: NerdModeIDE planning + hook creation
|
|
|
|
### Week 2: Components Phase 1 Complete
|
|
- [ ] Day 1-2: NerdModeIDE refactoring
|
|
- [ ] Day 3-4: LuaEditor refactoring
|
|
- [ ] Day 5: Medium components + code review
|
|
|
|
### Week 3: State Audit & Strategy
|
|
- [ ] Day 1-2: Audit all components for state patterns
|
|
- [ ] Day 3-4: Define unified strategy
|
|
- [ ] Day 5: Team review + adjustments
|
|
|
|
### Week 4: State Migration Begins
|
|
- [ ] Days 1-5: Implement state consolidation for 5 components
|
|
|
|
### Week 5: Package System Assets
|
|
- [ ] Days 1-3: Asset system implementation
|
|
- [ ] Days 4-5: Asset tests + documentation
|
|
|
|
### Week 6: Package Import/Export
|
|
- [ ] Days 1-4: Import/export UI components
|
|
- [ ] Day 5: Integration testing
|
|
|
|
### Week 7: Pre-built Packages + Docs
|
|
- [ ] Days 1-3: Create 3 pre-built packages
|
|
- [ ] Days 4-5: Begin documentation consolidation
|
|
|
|
### Week 8: Docs + Packages Complete
|
|
- [ ] Days 1-3: Finish pre-built packages + docs
|
|
- [ ] Days 4-5: Complete documentation + playbooks
|
|
|
|
### Week 9: Quality & Testing
|
|
- [ ] Days 1-4: Comprehensive testing across all phases
|
|
- [ ] Day 5: Code quality review + fixes
|
|
|
|
### Week 10: Launch Prep
|
|
- [ ] Days 1-4: Final testing + bug fixes
|
|
- [ ] Day 5: Documentation review + launch checklist
|
|
|
|
---
|
|
|
|
## 🚀 Getting Started
|
|
|
|
### Immediate Actions (This Week)
|
|
1. [ ] Review this plan with team
|
|
2. [ ] Assign PHASE 1A components to developers
|
|
3. [ ] Set up test infrastructure if not done
|
|
4. [ ] Create branch for refactoring work
|
|
5. [ ] Schedule daily standup (15 min)
|
|
|
|
### First Sprint Tasks
|
|
```bash
|
|
# Create feature branch
|
|
git checkout -b refactor/phase1-components
|
|
|
|
# Start with GitHubActionsFetcher
|
|
cd src/hooks
|
|
# Create useGitHubFetcher.ts
|
|
|
|
# Run tests
|
|
npm test -- useGitHubFetcher.test.ts
|
|
|
|
# Check component size
|
|
npx tsx scripts/enforce-size-limits.ts
|
|
```
|
|
|
|
---
|
|
|
|
## 📞 Questions & Escalation
|
|
|
|
**During implementation, escalate if:**
|
|
1. Component doesn't fit into 150 LOC even after decomposition
|
|
2. State pattern doesn't fit one of 4 categories
|
|
3. Package system conflicts with existing data
|
|
4. Documentation gaps block development
|
|
|
|
**Contact:** Tech lead or architecture team
|
|
|
|
---
|
|
|
|
## ✅ Completion Checklist
|
|
|
|
### Before Declaring Phase Complete
|
|
- [ ] All acceptance criteria met
|
|
- [ ] Unit tests passing (>90% coverage)
|
|
- [ ] Code review approved
|
|
- [ ] No new bugs introduced
|
|
- [ ] Documentation updated
|
|
- [ ] Performance impact assessed
|
|
|
|
---
|
|
|
|
## 📎 Appendix: Reference Links
|
|
|
|
**Component Refactoring:**
|
|
- [REFACTORING_STRATEGY.md](./docs/refactoring/REFACTORING_STRATEGY.md)
|
|
- [REFACTORING_QUICK_REFERENCE.md](./REFACTORING_QUICK_START.md)
|
|
- [TEAM_CHECKLIST.md](./TEAM_CHECKLIST.md)
|
|
|
|
**State Management:**
|
|
- [NEXTJS_MIGRATION.md](./docs/implementation/NEXTJS_MIGRATION.md) - State section
|
|
|
|
**Package System:**
|
|
- [packages/README.md](./packages/README.md)
|
|
- [docs/architecture/packages.md](./docs/architecture/packages.md)
|
|
- [dbal/AGENTS.md](./dbal/AGENTS.md) - Package guidance
|
|
|
|
**DBAL:**
|
|
- [dbal/README.md](./dbal/README.md)
|
|
- [dbal/QUICK_START.md](./dbal/QUICK_START.md)
|
|
|
|
---
|
|
|
|
## 📝 Document History
|
|
|
|
| Date | Version | Changes | Author |
|
|
|------|---------|---------|--------|
|
|
| 2025-12-25 | 1.0 | Initial comprehensive action plan | Architecture Team |
|
|
|
|
---
|
|
|
|
**Generated:** 2025-12-25
|
|
**Next Review:** After PHASE 1 Completion
|
|
**Owner:** Tech Lead / Architecture Team
|