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"
