12d5b9d7dc
Two coupled gaps from tracing a real run: 1. Freestyle implements in phase 2 via stages compiled from the architect's execution_plan (ExecutionPlanCompiler sets allowedTools = stage.tools), so the static allow-lists never reach it and architect_freestyle.md banned every tool but the file four. Teach the architect to thread an analysis-referenced task through the plan: implementing stages get task_context/task_update and claim + submit_for_review; the final/review stage completes it. No task referenced → no task tools, and the plan never creates one. 2. Give the analyst task_create so the work is framed as a tracked item up front (role_pipeline + freestyle). "Read-only" for the analyst means it writes no files; a task is an event-log entry, not a file write — task_create is T2, so opening one is approval-gated. The analyst names the new id in the analysis so the implementer claims it and the reviewer completes it; the implementer now creates only as a fallback. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
1.2 KiB
TOML
39 lines
1.2 KiB
TOML
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"
|