18cbd34739
Uncommitted work from the session-robustness-and-dox branch sweep
(docs/qa/QA-session-robustness-and-dox.md), verified alongside the
compression/context fixes:
- SandboxedToolExecutor: validate tool args centrally before dispatch. A
malformed/missing-arg call becomes a recoverable ERROR: (surfaced with the
tool's arg schema so the model can correct + retry) instead of stranding
the stage with no artifact. + validation test.
- PlanLinter: seed artifacts (analysis) produced by the planning phase count
as available producers, so a plan stage that `needs` them isn't flagged as
an unproduced-need; H1 unproduced-needs + trap-state checks. + tests.
- DefaultSessionOrchestrator: live-QA robustness fixes (event-tail /
per-stage budget + retry handling).
- workflow prompts/configs: DOX AGENTS.md alignment + freestyle/task/role
prompt tweaks.
- SessionOrchestratorIntegrationTest: coverage for the above.
- FreestylePlanningWorkflowTest: allow list_dir in analyst tools (follows the
list_dir wiring in 968cbfa).
- QA plan doc for the branch sweep.
22 lines
854 B
TOML
22 lines
854 B
TOML
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"
|