Files
correx/examples/workflows/task_planning.toml
T
kami 18cbd34739 fix(kernel,tools,workflow): session-robustness QA sweep
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.
2026-07-02 00:56:45 +04:00

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"