Redesign
This commit is contained in:
316
docs/redesign/DEPENDENCY-GRAPH.md
Normal file
316
docs/redesign/DEPENDENCY-GRAPH.md
Normal file
@@ -0,0 +1,316 @@
|
||||
# Dependency Graph - Phase Execution Order
|
||||
|
||||
## Visual Phase Dependencies
|
||||
|
||||
```
|
||||
START
|
||||
│
|
||||
├─────────────────────────────────────────────┐
|
||||
│ │
|
||||
▼ ▼
|
||||
┌─────────────────────────┐ ┌─────────────────────────┐
|
||||
│ PHASE 4: Config │ │ PHASE 9: Docs │
|
||||
│ Agent: config-agent │ │ Agent: docs-agent │
|
||||
│ Duration: 20-30 min │ │ Duration: 30-40 min │
|
||||
└────────────┬────────────┘ └─────────────────────────┘
|
||||
│ (Parallel - no deps)
|
||||
│ Blocks: infra-agent, backend-agent
|
||||
│
|
||||
├────────────────────┬─────────────────────┐
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
|
||||
│ PHASE 1: Docker │ │ PHASE 2: Remove │ │ PHASE 3: Storage │
|
||||
│ Agent: infra-agent │ │ Tenant │ │ Agent:storage-agent │
|
||||
│ Duration: 25-30min │ │ Agent:backend-agent │ │ Duration: 30-40min │
|
||||
└──────────┬──────────┘ └──────────┬──────────┘ └─────────────────────┘
|
||||
│ │ (Parallel)
|
||||
│ │
|
||||
│ Blocks platform-agent │
|
||||
│ │
|
||||
├───────────┐ ├───────────┐
|
||||
│ │ │ │
|
||||
▼ ▼ ▼ ▼
|
||||
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
||||
│ PHASE 5: │ │ PHASE 8: │ │ PHASE 6: │
|
||||
│ Network │ │ Platform │ │ Backend │
|
||||
│ Agent: infra │ │ Agent: platform │ │ Agent: backend │
|
||||
│ Duration:15min │ │ Duration:35-45m │ │ Duration:20min │
|
||||
└────────┬────────┘ └──────────────────┘ └────────┬────────┘
|
||||
│ │
|
||||
│ │ Blocks frontend-agent
|
||||
▼ │
|
||||
┌─────────────────┐ │
|
||||
│ PHASE 7: │ │
|
||||
│ Database │ │
|
||||
│ Agent: infra │ │
|
||||
│ Duration:15min │ │
|
||||
└─────────────────┘ │
|
||||
▼
|
||||
┌─────────────────────┐
|
||||
│ PHASE 10: Frontend │
|
||||
│ Agent: frontend │
|
||||
│ Duration: 25-35min │
|
||||
└──────────┬──────────┘
|
||||
│
|
||||
│
|
||||
All phases must complete before testing
|
||||
│
|
||||
▼
|
||||
┌─────────────────────┐
|
||||
│ PHASE 11: Testing │
|
||||
│ Agent: test-agent │
|
||||
│ Duration: 20-30min │
|
||||
└─────────────────────┘
|
||||
│
|
||||
▼
|
||||
END
|
||||
```
|
||||
|
||||
## Phase Dependency Matrix
|
||||
|
||||
| Phase | Agent | Depends On | Blocks | Can Run Parallel With |
|
||||
|-------|-------|------------|--------|----------------------|
|
||||
| 4 | config-agent | None | 1, 2 | 9 |
|
||||
| 9 | docs-agent | None | None | 4, 1, 2, 3, 5, 6, 7, 8, 10 |
|
||||
| 1 | infra-agent | 4 | 5, 7, 8 | 2, 3, 9 |
|
||||
| 2 | backend-agent | 4 | 6, 10 | 1, 3, 9 |
|
||||
| 3 | storage-agent | None | None | 1, 2, 4, 9, 5, 6, 7, 8 |
|
||||
| 5 | infra-agent | 1 | 7 | 2, 3, 6, 8, 9 |
|
||||
| 6 | backend-agent | 2 | 10 | 1, 3, 5, 7, 8, 9 |
|
||||
| 7 | infra-agent | 5 | None | 2, 3, 6, 8, 9 |
|
||||
| 8 | platform-agent | 1 | None | 2, 3, 5, 6, 7, 9 |
|
||||
| 10 | frontend-agent | 6 | 11 | 9 (tail end) |
|
||||
| 11 | test-agent | ALL | None | None |
|
||||
|
||||
## Critical Path Analysis
|
||||
|
||||
### Longest Path (Sequential)
|
||||
```
|
||||
Phase 4 (30m) → Phase 2 (20m) → Phase 6 (20m) → Phase 10 (30m) → Phase 11 (25m)
|
||||
Total: 125 minutes (2 hours 5 minutes)
|
||||
```
|
||||
|
||||
### Parallel Optimization
|
||||
With 8 agents working in parallel:
|
||||
```
|
||||
Wave 1: Max(Phase 4: 30m, Phase 9: 40m) = 40 minutes
|
||||
Wave 2: Max(Phase 1: 30m, Phase 2: 20m, Phase 3: 40m) = 40 minutes
|
||||
Wave 3: Max(Phase 5: 15m, Phase 6: 20m, Phase 7: 15m, Phase 8: 45m) = 45 minutes
|
||||
Wave 4: Phase 10: 30 minutes
|
||||
Wave 5: Phase 11: 25 minutes
|
||||
Total: 180 minutes (3 hours)
|
||||
```
|
||||
|
||||
**Note:** Critical path runs through: Phase 9 → Phase 3 → Phase 8 → Phase 10 → Phase 11
|
||||
|
||||
## Agent Execution Waves
|
||||
|
||||
### Wave 1: Foundation (Parallel)
|
||||
**Start Time:** T+0
|
||||
**Duration:** 40 minutes
|
||||
|
||||
| Agent | Phase | Duration | Start | End |
|
||||
|-------|-------|----------|-------|-----|
|
||||
| config-agent | 4 | 30 min | T+0 | T+30 |
|
||||
| docs-agent | 9 | 40 min | T+0 | T+40 |
|
||||
|
||||
**Completion Signal:** Both agents update EXECUTION-STATE.json status to "completed"
|
||||
|
||||
---
|
||||
|
||||
### Wave 2: Core Infrastructure (Parallel)
|
||||
**Start Time:** T+30 (after config-agent completes)
|
||||
**Duration:** 40 minutes
|
||||
|
||||
| Agent | Phase | Duration | Start | End |
|
||||
|-------|-------|----------|-------|-----|
|
||||
| infra-agent | 1 | 30 min | T+30 | T+60 |
|
||||
| backend-agent | 2 | 20 min | T+30 | T+50 |
|
||||
| storage-agent | 3 | 40 min | T+30 | T+70 |
|
||||
|
||||
**Waits For:** config-agent completion
|
||||
**Completion Signal:** All three agents complete their first phases
|
||||
|
||||
---
|
||||
|
||||
### Wave 3: Continued Work (Parallel)
|
||||
**Start Time:** Varies by agent
|
||||
**Duration:** 45 minutes
|
||||
|
||||
| Agent | Phase | Duration | Start | End | Waits For |
|
||||
|-------|-------|----------|-------|-----|-----------|
|
||||
| infra-agent | 5 | 15 min | T+60 | T+75 | Phase 1 |
|
||||
| backend-agent | 6 | 20 min | T+50 | T+70 | Phase 2 |
|
||||
| platform-agent | 8 | 45 min | T+60 | T+105 | Phase 1 |
|
||||
|
||||
**Then:**
|
||||
|
||||
| Agent | Phase | Duration | Start | End | Waits For |
|
||||
|-------|-------|----------|-------|-----|-----------|
|
||||
| infra-agent | 7 | 15 min | T+75 | T+90 | Phase 5 |
|
||||
|
||||
**Completion Signal:** All agents finish their assigned phases
|
||||
|
||||
---
|
||||
|
||||
### Wave 4: Frontend (Sequential)
|
||||
**Start Time:** T+70 (after backend-agent Phase 6)
|
||||
**Duration:** 30 minutes
|
||||
|
||||
| Agent | Phase | Duration | Start | End | Waits For |
|
||||
|-------|-------|----------|-------|-----|-----------|
|
||||
| frontend-agent | 10 | 30 min | T+70 | T+100 | Phase 6 |
|
||||
|
||||
**Waits For:** backend-agent Phase 6 completion
|
||||
**Completion Signal:** frontend-agent updates status
|
||||
|
||||
---
|
||||
|
||||
### Wave 5: Validation (Sequential)
|
||||
**Start Time:** T+105 (after all agents complete)
|
||||
**Duration:** 25 minutes
|
||||
|
||||
| Agent | Phase | Duration | Start | End | Waits For |
|
||||
|-------|-------|----------|-------|-----|-----------|
|
||||
| test-agent | 11 | 25 min | T+105 | T+130 | ALL phases |
|
||||
|
||||
**Waits For:** platform-agent Phase 8 (last to complete)
|
||||
**Completion Signal:** All tests pass, project simplified
|
||||
|
||||
---
|
||||
|
||||
## Resource Conflict Analysis
|
||||
|
||||
### File-Level Conflicts
|
||||
|
||||
**None Detected** - All agents work on different files or in sequence.
|
||||
|
||||
### Potential Race Conditions
|
||||
|
||||
**Docker Compose Access:**
|
||||
- Only infra-agent modifies docker-compose.yml
|
||||
- Sequential phases (1, 5, 7) prevent conflicts
|
||||
- **Risk:** Low
|
||||
|
||||
**Config File Access:**
|
||||
- Only config-agent modifies config/app/production.yml
|
||||
- Single phase (4) prevents conflicts
|
||||
- **Risk:** None
|
||||
|
||||
**Backend Code Access:**
|
||||
- backend-agent works on different files in Phase 2 vs. Phase 6
|
||||
- storage-agent works on different files (storage/ vs. backend)
|
||||
- **Risk:** None
|
||||
|
||||
### Lock File Strategy
|
||||
|
||||
If conflicts arise (they shouldn't):
|
||||
```bash
|
||||
# Agent 1 creates lock
|
||||
touch docs/redesign/locks/docker-compose.yml.lock
|
||||
|
||||
# Agent 2 checks for lock
|
||||
if [ -f docs/redesign/locks/docker-compose.yml.lock ]; then
|
||||
wait_for_lock_release
|
||||
fi
|
||||
|
||||
# Agent 1 releases lock
|
||||
rm docs/redesign/locks/docker-compose.yml.lock
|
||||
```
|
||||
|
||||
## Synchronization Points
|
||||
|
||||
### Critical Handoffs
|
||||
|
||||
1. **config-agent → infra-agent, backend-agent**
|
||||
- **What:** Configuration cleanup complete
|
||||
- **Why:** Backend and infra need clean config to work
|
||||
- **Check:** EXECUTION-STATE.json phase 4 status = "completed"
|
||||
|
||||
2. **infra-agent Phase 1 → platform-agent Phase 8**
|
||||
- **What:** Docker compose updated with new names
|
||||
- **Why:** Platform service needs new container names
|
||||
- **Check:** EXECUTION-STATE.json phase 1 status = "completed"
|
||||
|
||||
3. **backend-agent Phase 6 → frontend-agent Phase 10**
|
||||
- **What:** Backend API updates complete
|
||||
- **Why:** Frontend needs updated API contracts
|
||||
- **Check:** EXECUTION-STATE.json phase 6 status = "completed"
|
||||
|
||||
4. **All Agents → test-agent Phase 11**
|
||||
- **What:** All code changes complete
|
||||
- **Why:** Testing validates entire simplification
|
||||
- **Check:** EXECUTION-STATE.json phases 1-10 all "completed"
|
||||
|
||||
## Bottleneck Analysis
|
||||
|
||||
### Potential Bottlenecks
|
||||
|
||||
1. **platform-agent Phase 8 (45 minutes)**
|
||||
- Longest single phase
|
||||
- Blocks final testing
|
||||
- **Mitigation:** Start as early as possible (after Phase 1)
|
||||
|
||||
2. **config-agent Phase 4 (30 minutes)**
|
||||
- Blocks Wave 2 start
|
||||
- **Mitigation:** First wave priority, simple changes
|
||||
|
||||
3. **storage-agent Phase 3 (40 minutes)**
|
||||
- Not on critical path but moderately long
|
||||
- **Mitigation:** Can run fully parallel
|
||||
|
||||
### Optimization Opportunities
|
||||
|
||||
1. **Start docs-agent immediately** - No dependencies, can run entire duration
|
||||
2. **Prioritize config-agent** - Unblocks Wave 2 quickly
|
||||
3. **Start storage-agent early** - Long duration, no dependencies
|
||||
4. **Stagger infra-agent phases** - Phases 1, 5, 7 run sequentially within agent
|
||||
|
||||
## Decision Points
|
||||
|
||||
### Proceed to Next Wave
|
||||
|
||||
**Wave 1 → Wave 2:**
|
||||
```
|
||||
IF EXECUTION-STATE.json phase 4 status == "completed"
|
||||
THEN spawn Wave 2 agents
|
||||
ELSE wait
|
||||
```
|
||||
|
||||
**Wave 2 → Wave 3:**
|
||||
```
|
||||
IF EXECUTION-STATE.json phase 1 status == "completed"
|
||||
THEN spawn platform-agent
|
||||
CONTINUE infra-agent to Phase 5
|
||||
CONTINUE backend-agent to Phase 6
|
||||
```
|
||||
|
||||
**Wave 3 → Wave 4:**
|
||||
```
|
||||
IF EXECUTION-STATE.json phase 6 status == "completed"
|
||||
THEN spawn frontend-agent
|
||||
```
|
||||
|
||||
**Wave 4 → Wave 5:**
|
||||
```
|
||||
IF all phases 1-10 status == "completed"
|
||||
THEN spawn test-agent
|
||||
ELSE identify failures and halt
|
||||
```
|
||||
|
||||
## Rollback Decision Tree
|
||||
|
||||
```
|
||||
IF test-agent Phase 11 fails
|
||||
├─ IF frontend-agent Phase 10 suspected
|
||||
│ └─ Rollback Phase 10 only
|
||||
├─ IF backend-agent Phase 2 or 6 suspected
|
||||
│ └─ Rollback Phases 2 and 6
|
||||
├─ IF infrastructure suspected
|
||||
│ └─ Rollback Phases 1, 5, 7
|
||||
└─ IF all else
|
||||
└─ Full rollback to original state
|
||||
```
|
||||
|
||||
See ROLLBACK-STRATEGY.md for detailed procedures.
|
||||
Reference in New Issue
Block a user