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.
48 lines
2.3 KiB
YAML
48 lines
2.3 KiB
YAML
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
|