poodr-ticket-implementation has no route for a test-only correction after contract-auditor #1298
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1298
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
When the contract-auditor finds the production design sound but a changed public message has no pinning test, it cannot route a fix: refactorer edits only production code and test-writer is behind it in the map. The auditor returns verdict error and the Runner marks the implementation failed, so the orchestrator must hand-finish green work.
Observed
Finance implementation 4 (ticket jared/finance#30), dispatch 55, contract-auditor handoff:
Runner payload: type implementation_failed, reason verdict:error, after 7 passing dispatches.
Reproduce
n/a: needs a ticket whose programmer change widens a public message that the red round did not pin.
Approach
Give contract-auditor a fail verdict that routes one bounded test-writer round for test-only corrections (the auditor names the message and the missing assertion), instead of the error verdict.
Required work: none beyond the acceptance criteria.
Acceptance criteria
Discoverer: /home/jared/projects/finance, session f6b97de2-a65d-4ecf-9dd4-848bc0302154, 2026-10-23. Hand-finished per the escalation procedure; tests added, merged as finance 2f6516c.
Occurrence: Give contract-auditor a route for a defect that needs a test
Seen: plugins/os-sdlc/agents/contract-auditor.md
Run: implementation 228 (#1542), dispatch 2090, session 914a3148-8417-4934-9c2d-748527da22e6
Adds: a mixed test and production defect (no test for the real Handoff::Backlog) also ends a green run with verdict:error; the run was hand-finished.
Occurrence: Give contract-auditor a verdict for mixed test and production corrections
Seen: plugins/os-sdlc agents contract-auditor, poodr-ticket-implementation map
Run: implementation 247 (#1615), dispatch 2368, session 9d8c2e15-00c1-4dec-b177-e749fa05ec67
Adds: The mixed case. The handoff held two production CORRECTION items and three test gaps, so the auditor returned verdict error after the suite gate passed, and the Runner ended the run as implementation_failed.
Occurrence: Give contract-auditor a verdict for mixed test and production corrections
Seen: plugins/os-sdlc/agents contract-auditor, poodr-ticket-implementation map
Run: implementation 253 (#1617), dispatch 2407, session 9d8c2e15-00c1-4dec-b177-e749fa05ec67
Adds: Second run in one session. The suite gate had passed. The handoff held three production corrections and one shared-role test gap, with verdict error, so the Runner ended the run as implementation_failed and the green work needs a hand-finish.
Occurrence: test-reviewer
verdict:errorended run 257 after a reroute entered at test-reviewerSeen: plugins/os-sdlc reroute to the test-reviewer node;
red_testsheld only{reroute: []}Run: implementation 257, dispatch 2493, ticket #1621, session 9d8c2e15-00c1-4dec-b177-e749fa05ec67
Adds: A reroute into test-reviewer carries no test-gate result, so the reviewer cannot judge and its
errorcloses the run. map-router accepted that entry node. A second cause preceded it: criteria that state preserved behavior produce green tests, and the all-new-tests-red rule has no waiver, so test-writer and test-reviewer looped until the bound (four fails). Committing the pins first works around this.