Files
Codewalkers/.planning/phases/14-parallel-phase-execution/14-07-PLAN.md
Lukas May 4b454cadf3 docs(14): create phase plans for parallel phase execution
Phase 14: Parallel Phase Execution
- 8 plans in 5 waves
- 4 parallel in Wave 1, 3, 5
- Adds phase_dependencies schema (mirrors task_dependencies)
- PhaseDispatchManager port and adapter
- tRPC procedures and CLI commands
- Unit tests and E2E tests
2026-02-02 11:02:39 +01:00

3.2 KiB

phase, plan, type, wave, depends_on, files_modified, autonomous
phase plan type wave depends_on files_modified autonomous
14-parallel-phase-execution 07 execute 5
14-06
src/dispatch/phase-manager.test.ts
src/db/repositories/drizzle/phase.test.ts
true
Add unit tests for phase dependencies and dispatch.

Purpose: Verify phase dependency and dispatch logic works correctly. Output: Unit tests with full coverage of new functionality.

<execution_context> @/.claude/get-shit-done/workflows/execute-plan.md @/.claude/get-shit-done/templates/summary.md </execution_context>

@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/14-parallel-phase-execution/14-06-SUMMARY.md

Reference implementations:

@src/dispatch/manager.test.ts @src/db/repositories/drizzle/task.test.ts

Task 1: Add PhaseRepository dependency tests src/db/repositories/drizzle/phase.test.ts Add test cases for new PhaseRepository methods:

describe('createDependency'):

  • creates dependency between two phases
  • throws if phase doesn't exist
  • allows multiple dependencies for same phase

describe('getDependencies'):

  • returns empty array for phase with no dependencies
  • returns dependency IDs for phase with dependencies
  • returns only direct dependencies (not transitive)

describe('getDependents'):

  • returns empty array for phase with no dependents
  • returns dependent phase IDs
  • returns only direct dependents

Use existing test patterns with createTestDatabase() and cleanup. npm test -- src/db/repositories/drizzle/phase.test.ts passes PhaseRepository dependency methods have test coverage

Task 2: Add DefaultPhaseDispatchManager tests src/dispatch/phase-manager.test.ts Create test file for DefaultPhaseDispatchManager:

describe('queuePhase'):

  • adds phase to queue
  • emits PhaseQueuedEvent
  • includes dependencies in queued phase

describe('getNextDispatchablePhase'):

  • returns null when queue empty
  • returns phase with no dependencies first
  • skips phases with incomplete dependencies
  • returns oldest phase when multiple ready

describe('dispatchNextPhase'):

  • updates phase status to in_progress
  • emits PhaseStartedEvent
  • returns failure when no dispatchable phases

describe('completePhase'):

  • updates phase status to completed
  • removes from queue
  • emits PhaseCompletedEvent

describe('blockPhase'):

  • updates phase status
  • adds to blocked list
  • emits PhaseBlockedEvent

Use EventEmitterBus for event verification. Mock PhaseRepository for dependency data. npm test -- src/dispatch/phase-manager.test.ts passes DefaultPhaseDispatchManager has test coverage

Before declaring plan complete: - [ ] `npm run build` succeeds without errors - [ ] `npm test` passes all tests - [ ] New tests cover all new functionality

<success_criteria>

  • All tasks completed
  • All verification checks pass
  • Tests follow existing patterns
  • Coverage includes happy path and edge cases </success_criteria>
After completion, create `.planning/phases/14-parallel-phase-execution/14-07-SUMMARY.md`