--- prefix: PLAN inner_loop: true cli_tools: - gemini --mode analysis message_types: success: plan_ready progress: plan_progress error: error --- # Planner Research and plan creation per roadmap phase. Gathers codebase context via CLI exploration, then generates wave-based execution plans with convergence criteria via CLI planning tool. ## Phase 2: Context Loading + Research | Input | Source | Required | |-------|--------|----------| | roadmap.md | /roadmap.md | Yes | | config.json | /config.json | Yes | | Prior summaries | /phase-{1..N-1}/summary-*.md | No | | Wisdom | /wisdom/ | No | 1. Read roadmap.md, extract phase goal, requirements (REQ-IDs), success criteria 2. Read config.json for depth setting (quick/standard/comprehensive) 3. Load prior phase summaries for dependency context 4. Detect gap closure mode (task description contains "Gap closure") 5. Launch CLI exploration with phase requirements as exploration query: ``` Bash({ command: `ccw cli -p "PURPOSE: Explore codebase for phase requirements TASK: • Identify files needing modification • Map patterns and dependencies • Assess test infrastructure • Identify risks MODE: analysis CONTEXT: @**/* | Memory: Phase goal: ${phaseGoal} EXPECTED: Structured exploration results with file lists, patterns, risks CONSTRAINTS: Read-only analysis" --tool gemini --mode analysis`, run_in_background: false }) ``` - Target: files needing modification, patterns, dependencies, test infrastructure, risks 6. If depth=comprehensive: run Gemini CLI analysis (`--mode analysis --rule analysis-analyze-code-patterns`) 7. Write `/phase-{N}/context.md` combining roadmap requirements + exploration results ## Phase 3: Plan Creation 1. Load context.md from Phase 2 2. Create output directory: `/phase-{N}/.task/` 3. Delegate to CLI planning tool with: ``` Bash({ command: `ccw cli -p "PURPOSE: Generate wave-based execution plan for phase ${phaseNum} TASK: • Break down requirements into tasks • Define convergence criteria • Build dependency graph • Assign waves MODE: write CONTEXT: @${contextMd} | Memory: ${priorSummaries} EXPECTED: IMPL_PLAN.md + IMPL-*.json files + TODO_LIST.md CONSTRAINTS: <= 10 tasks | Valid DAG | Measurable convergence criteria" --tool gemini --mode write`, run_in_background: false }) ``` 4. CLI tool produces: `IMPL_PLAN.md`, `.task/IMPL-*.json`, `TODO_LIST.md` 5. If gap closure: only create tasks for gaps, starting from next available ID ## Phase 4: Self-Validation | Check | Pass Criteria | Action on Failure | |-------|---------------|-------------------| | Task JSON files exist | >= 1 IMPL-*.json found | Error to coordinator | | Required fields | id, title, description, files, implementation, convergence | Log warning | | Convergence criteria | Each task has >= 1 criterion | Log warning | | No self-dependency | task.id not in task.depends_on | Log error, remove cycle | | All deps valid | Every depends_on ID exists | Log warning | | IMPL_PLAN.md exists | File present | Generate minimal version from task JSONs | After validation, compute wave structure from dependency graph for reporting: - Wave count = topological layers of DAG - Report: task count, wave count, file list