id = "freestyle_planning" start = "analyst" # analyst writes no files, but it owns task framing: task_search/task_context (read-only) find # existing work, and task_create (T2, approval-gated — a task is an event-log entry, not a file # write) opens a task for this work and names its id in the analysis, so the architect can thread # it into the plan's implementation stages. [[stages]] id = "analyst" prompt = "prompts/analyst_freestyle.md" produces = [{ name = "analysis", kind = "analysis" }] allowed_tools = ["file_read", "ShellTool", "task_search", "task_context", "task_create"] token_budget = 16384 max_retries = 2 [[stages]] id = "architect" requires_approval = true inject_artifact_kinds = true prompt = "prompts/architect_freestyle.md" needs = ["analysis"] produces = [{ name = "execution_plan", kind = "execution_plan" }] token_budget = 16384 max_retries = 2 [[transitions]] id = "analyst-to-architect" from = "analyst" to = "architect" condition_type = "artifact_validated" condition_artifact_id = "analysis" [[transitions]] id = "architect-to-done" from = "architect" to = "done" condition_type = "artifact_validated" condition_artifact_id = "execution_plan"