Files
kami de54be7ecb feat(tasks): wire the task tools into the remaining code-work workflows
Extend the role_pipeline wiring to the other workflows that act on a code work
item, matching each stage's tier:

- freestyle_planning: analyst (read-only) gets task_search/task_context to find
  related work and ground the analysis; prompt updated to match.
- review_loop: implement gets the full set (claim, submit_for_review, notes),
  review gets task_context/task_update to complete on an approved verdict. Its
  prompt files don't ship, so the doctrine rides the L0 policy + tool descriptions.

Left untouched: research (external-research flow producing a report, not a code
work item), qa_ping (smoke test), and healthcheck (diagnostic) — none track work.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:26:38 +00:00

64 lines
2.0 KiB
TOML

# Implementer ↔ reviewer refinement loop.
#
# The reviewer emits a validated `review_report` artifact carrying a `verdict` field.
# The loop exits to `done` when verdict == "approved" and loops back to `implement`
# otherwise (verdict != "approved"). The runtime refinement guard caps the
# review→implement cycle at `implement.max_retries` iterations and then escalates.
#
# Requires a `review_report` artifact kind declared in config:
# [[artifacts]]
# id = "review_report"
# schema_path = "schemas/review_report.json"
# llm_emitted = true
id = "review_loop"
start = "implement"
# implement owns the work item across the loop: claim before starting, submit_for_review once
# the patch is ready, add notes (task_create one first if the work warrants tracking).
[[stages]]
id = "implement"
prompt = "prompts/implement.md"
produces = [{ name = "patch", kind = "file_written" }]
allowed_tools = ["file_write", "task_create", "task_update", "task_context", "task_search"]
token_budget = 8192
max_retries = 3
# review reads the task's own acceptance criteria (task_context) and completes it on an approved
# verdict (task_update action=complete); on changes_requested it leaves the task claimed.
[[stages]]
id = "review"
prompt = "prompts/review.md"
needs = ["patch"]
produces = [{ name = "review_report", kind = "review_report" }]
allowed_tools = ["task_context", "task_update"]
token_budget = 8192
max_retries = 3
[[transitions]]
id = "implement-to-review"
from = "implement"
to = "review"
condition_type = "artifact_validated"
condition_artifact_id = "patch"
[[transitions]]
id = "review-approved"
from = "review"
to = "done"
condition_type = "artifact_field_equals"
condition_artifact_id = "review_report"
condition_field = "verdict"
condition_value = "approved"
condition_operator = "eq"
[[transitions]]
id = "review-changes-requested"
from = "review"
to = "implement"
condition_type = "artifact_field_equals"
condition_artifact_id = "review_report"
condition_field = "verdict"
condition_value = "approved"
condition_operator = "neq"