Route behavior-verifier error to a bounded self-retry in poodr-ticket-implementation.yaml #623
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#623
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?
Context
/os-sdlc:implement 621(implementation 11) endedimplementation_failedat behavior-verifier after oneverdict:error. #618 (ADR-0204) made the behavior-verifier error edge a bounded self-retry, but only inpoodr-implementation.yaml. The ticket map that/os-sdlc:implementuses by default still routeserrorto the terminal node.Observed
Dispatch 140 (behavior-verifier) settled in 9 s with no model call. Its handoff said the brief was empty. The Runner returned
implementation_failedwith no retry.Map edges under
behavior-verifierinplugins/os-sdlc/maps/poodr-ticket-implementation.yaml:git show --stat b7db834flistsplugins/os-sdlc/maps/poodr-implementation.yamland two tests. It does not list the ticket map.Reproduce
Prints
error: error. The same grep onpoodr-implementation.yamlprints the self-edge withbound: 1.Expected
The map invariant tests that #618 extended for
poodr-implementation.yamlcover the ticket map too.Illustration
Second observation, same run: the harness persisted the SubagentStart hook output to a file because it was too large, and the persisted preview carried
brief: null. The Runner-side change in #618 (never truncatecode_changes) does not prevent this. The retry alone will hit the same truncation if the payload size is the cause. Measure the enrich payload for dispatch 140 and decide whether to splitticket_briefandcode_changesinto a file the agent reads.Origin
/os-sdlc:implement 621, implementation 11, dispatch 140waitingimplementation_failed← ticket map routes verifiererrorto terminal (poodr-ticket-implementation.yaml, DESIGN under ADR-0160 map-as-configuration) ← #618 patched one map of two (commitb7db834f) ← verifier sawbrief: nullbecause the harness persisted an oversized SubagentStart context (UPSTREAM-TOOL, Claude Code hook output persistence, version unknown)plugins/os-sdlc/maps/poodr-ticket-implementation.yaml,plugins/os-sdlc/tests/poodr_implementation_map_test.rbVERDICT: CREATE — root cause: #618 patched poodr-implementation.yaml only; this names the remaining map gap with a real failure (dispatch 140) and a concrete test.
Resolution
Done: Superseded by #627. The map retry resends the same oversized payload and cannot fix the verifier error; the root cause is Claude Code's 10,000-character hook additionalContext cap (no override). All ten ticket-map nodes route error to the terminal node, and a deterministic error should fail loudly, so the retry edge is not added.
Evidence: Cap documented at https://code.claude.com/docs/en/hooks.md (Hook input and output). Map survey 2026-09-22: every node in poodr-ticket-implementation.yaml routes error: error; only the #618 self-edge in poodr-implementation.yaml differs. Session bcd41422-a277-439c-b169-4fbfa8560ee3.
Follow-ups: #627 delivers oversized briefs through os-sdlc-runner brief --dispatch-id. Whether to remove the #618 self-retry edge (ADR-0204) is a user decision, unticketed.