id = "task_planning" description = "Sweep the codebase, understand the request, emit a task graph via task_decompose — then stop. No execution." start = "planner" # Single stage: read the request + codebase, emit a task graph, done. # require_task_decompose = true is a deterministic kernel gate: stage_complete is blocked # until task_decompose (or task_create for a trivial single-task request) returns successfully. # The model cannot skip task creation — this is enforced by the orchestrator, not just the prompt. [[stages]] id = "planner" prompt = "prompts/task_planner.md" allowed_tools = ["file_read", "shell", "task_search", "task_context", "task_decompose", "task_create"] require_task_decompose = true token_budget = 16384 max_retries = 2 [[transitions]] id = "planner-to-done" from = "planner" to = "done" condition_type = "always_true"