From a12f6ddaba7dc5b3312c9eceb88f8dc44e084a61 Mon Sep 17 00:00:00 2001 From: Paul O'Reilly Date: Wed, 29 Jul 2026 01:32:24 +1200 Subject: [PATCH] =?UTF-8?q?feat(templates):=20tiered=20escalation=20ladder?= =?UTF-8?q?=20=E2=80=94=20remove=20airouter-eligible=20gate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove `tags_required: [airouter-eligible]` from airouter-impl-ready so all non-skip tasks route through the full airouter→sonnet→opus ladder automatically. Add `airouter-skip` to airouter's tags_forbidden so opt-out tasks go directly to sonnet from attempt 0. Relax sonnet-impl-ready tags_forbidden (drop multi-file + algorithmic-large) so sonnet handles complex tasks at escalation tier without template rejection. Add opus-impl-ready@1.yaml — last-resort escalation, code-opus-tdd-repo composite, scope_budget 5 files / 400 lines / 3600s. --- .../workflow/airouter-impl-ready@1.yaml | 3 +-- .../workflow/opus-impl-ready@1.yaml | 26 +++++++++++++++++++ .../workflow/sonnet-impl-ready@1.yaml | 2 +- 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 task-templates/workflow/opus-impl-ready@1.yaml diff --git a/task-templates/workflow/airouter-impl-ready@1.yaml b/task-templates/workflow/airouter-impl-ready@1.yaml index 4adb248..b2f6271 100644 --- a/task-templates/workflow/airouter-impl-ready@1.yaml +++ b/task-templates/workflow/airouter-impl-ready@1.yaml @@ -4,8 +4,7 @@ description: Single-file impl of a tagged spec requirement against pre-validated runtime: code-airouter-tdd-repo input: state: scaffolded - tags_required: [airouter-eligible] - tags_forbidden: [security-sensitive, multi-file, algorithmic-large] + tags_forbidden: [security-sensitive, airouter-skip, multi-file, algorithmic-large] required_artifacts: [] output: state: impl-green diff --git a/task-templates/workflow/opus-impl-ready@1.yaml b/task-templates/workflow/opus-impl-ready@1.yaml new file mode 100644 index 0000000..d5c3ad2 --- /dev/null +++ b/task-templates/workflow/opus-impl-ready@1.yaml @@ -0,0 +1,26 @@ +name: opus-impl-ready +version: 1 +description: Impl of a spec requirement against pre-validated tests, Opus in worktree (last-resort escalation from Sonnet) +runtime: code-opus-tdd-repo +input: + state: scaffolded + tags_forbidden: [security-sensitive] + required_artifacts: [] +output: + state: impl-green +scope_budget: + files_modified_max: 5 + lines_diff_max: 400 + wall_clock_seconds_max: 3600 +nodes: + - id: agent + kind: agent + template: code-opus-tdd-repo + runtime_env: + # WF-COMP-15: stage agents share one per-item work branch so their work + # accumulates (test-write -> scaffold -> impl -> integrate -> merge all + # see the same tree). Without AGENT_REPO_URL the agent-repo layer never + # clones and the agent's output evaporates (E2E 2026-07-04). + AGENT_REPO_URL: "git@gitea.oreillyit.nz-ai-enablement:skynet/agent-runtimes-agents.git" + AGENT_BRANCH: "task/${item.uuid}" + prompt: "Implement the task. ${metadata.automation.test_files}${metadata.automation.spec_ids}Task description: ${artifacts.item_title}. ${artifacts.item_body}" diff --git a/task-templates/workflow/sonnet-impl-ready@1.yaml b/task-templates/workflow/sonnet-impl-ready@1.yaml index 49c6d84..9b2d884 100644 --- a/task-templates/workflow/sonnet-impl-ready@1.yaml +++ b/task-templates/workflow/sonnet-impl-ready@1.yaml @@ -4,7 +4,7 @@ description: Single-file impl of a tagged spec requirement against pre-validated runtime: code-sonnet-tdd-repo input: state: scaffolded - tags_forbidden: [security-sensitive, multi-file, algorithmic-large] + tags_forbidden: [security-sensitive] required_artifacts: [] output: state: impl-green