---
phase: 14-parallel-phase-execution
plan: 04
type: execute
wave: 3
depends_on: ["14-03"]
files_modified:
- src/dispatch/phase-manager.ts
- src/dispatch/index.ts
autonomous: true
---
Implement DefaultPhaseDispatchManager adapter with in-memory queue and dependency checking.
Purpose: Enable actual phase dispatch with dependency resolution.
Output: Working adapter implementation.
@~/.claude/get-shit-done/workflows/execute-plan.md
@~/.claude/get-shit-done/templates/summary.md
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/phases/14-parallel-phase-execution/14-03-SUMMARY.md
# Reference implementations:
@src/dispatch/manager.ts
@src/dispatch/types.ts
Task 1: Implement DefaultPhaseDispatchManager
src/dispatch/phase-manager.ts
Create DefaultPhaseDispatchManager class implementing PhaseDispatchManager:
Constructor dependencies:
- phaseRepository: PhaseRepository
- eventBus: EventBus
Internal state:
- phaseQueue: Map
- blockedPhases: Map
Implement methods:
- queuePhase: fetch phase, get dependencies from phaseRepository.getDependencies(), add to queue, emit PhaseQueuedEvent
- getNextDispatchablePhase: filter queue for phases with all deps complete (phase.status === 'completed'), sort by queuedAt
- dispatchNextPhase: get next, update phase status to 'in_progress', emit PhaseStartedEvent, return result
- completePhase: update phase status to 'completed', remove from queue, emit PhaseCompletedEvent
- blockPhase: update phase status, add to blocked map, remove from queue, emit PhaseBlockedEvent
- getPhaseQueueState: return current state of queued, ready, blocked
Private helper:
- areAllPhaseDependenciesComplete(dependsOn: string[]): check each phase status via phaseRepository.findById
Follow exact patterns from DefaultDispatchManager for consistency.
npx tsc --noEmit passes
DefaultPhaseDispatchManager implements all interface methods
Task 2: Export DefaultPhaseDispatchManager
src/dispatch/index.ts
Add export for DefaultPhaseDispatchManager class.
npx tsc --noEmit passes
DefaultPhaseDispatchManager exported from dispatch module
Before declaring plan complete:
- [ ] `npm run build` succeeds without errors
- [ ] `npm test` passes all tests
- [ ] DefaultPhaseDispatchManager importable from src/dispatch
- All tasks completed
- All verification checks pass
- Adapter follows hexagonal architecture pattern
- Event emission matches phase event types from 14-02