feat(templates): add missing escalation targets + concept-intake stage
fix-test-fixture-sonnet@1, review-spec-opus@1, replan-spec-opus@1 — the dangling escalation refs from airouter-impl-*/spec-draft/feature-delivery-loop. Sonnet-authored, Opus-reviewed; review HIGH fixes applied (explicit model: opus on both opus nodes — node model: sets runtime model, composite name does not). Known gap filed in work-items epic (E1-escalation-state-gap.md): escalation edges from non-primary states 422 state_mismatch pending escalation_input_states. concept-intake@1: optional idea-elaboration pre-stage (output state idea-elaborated — not yet wired into spec-draft-opus input). All four validate against controlplane WorkflowTemplate schema.
This commit is contained in:
47
task-templates/workflow/fix-test-fixture-sonnet@1.yaml
Normal file
47
task-templates/workflow/fix-test-fixture-sonnet@1.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
name: fix-test-fixture-sonnet
|
||||
version: 1
|
||||
description: Repair broken test fixtures without weakening assertions, Sonnet in worktree (escalation from airouter-impl-narrow/-ready fixture_broken)
|
||||
runtime: code-sonnet-tdd-repo
|
||||
input:
|
||||
state: test-validated
|
||||
tags_forbidden: [security-sensitive]
|
||||
required_artifacts: [test_file]
|
||||
output:
|
||||
state: test-write-pending
|
||||
scope_budget:
|
||||
files_modified_max: 2
|
||||
lines_diff_max: 60
|
||||
wall_clock_seconds_max: 900
|
||||
nodes:
|
||||
- id: agent
|
||||
kind: agent
|
||||
template: code-sonnet-tdd-repo
|
||||
prompt: |
|
||||
A test-validation or implementation attempt against ${artifacts.test_file} was
|
||||
escalated as fixture_broken — the failure is in fixtures, imports, or pytest
|
||||
collection, NOT in missing implementation logic.
|
||||
|
||||
Repair the fixture/collection problem WITHOUT weakening any test assertion:
|
||||
- Every test in ${artifacts.test_file} MUST remain marked
|
||||
@pytest.mark.xfail(strict=True, reason="<spec-id>: <description>") against the
|
||||
unimplemented code it exercises. Do not remove, loosen, or convert xfail markers
|
||||
to skip/pass, and do not delete or rewrite assertions to make them pass.
|
||||
- Fix only fixture/conftest/import problems: missing conftest fixtures, broken
|
||||
imports, malformed fixture YAML, incorrect path references.
|
||||
- Check any fixture YAML against these known-bad patterns (the violation codes
|
||||
enforced by scripts/workflow/preflight-fixture-lint in the agent-runtimes repo):
|
||||
MISSING_ALLOW_UNAUTHENTICATED — auth fixture missing allow_unauthenticated: true
|
||||
MISSING_V1_PREFIX — URL path does not start with /v1/
|
||||
BODY_GET_TYPE — body.get("type") instead of RFC 9457 type field
|
||||
SPACE_ID_PLACEHOLDER — space_id value is "s" or another placeholder
|
||||
TOP_LEVEL_PARAMS — top-level params: key instead of nested under workflow:
|
||||
TOP_LEVEL_NODES — top-level nodes: key instead of nested under workflow:
|
||||
- Do NOT touch the implementation skeleton or any non-test, non-fixture file.
|
||||
|
||||
Verify the fix with:
|
||||
python -m pytest --collect-only ${artifacts.test_file}
|
||||
Collection MUST succeed and every test MUST still report xfail (not error, not pass).
|
||||
|
||||
Commit and push to the work branch.
|
||||
escalation:
|
||||
agent_bailed: fix-test-fixture-sonnet
|
||||
Reference in New Issue
Block a user