os-sdlc: read-only judgment charters (behavior-verifier and peers) fail with verdict:error when the brief exceeds the hook cap #662
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#662
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
Observed 2026-09-23 on #639 implementation 14, dispatch 172: the behavior-verifier brief exceeded the ADR-0206 hook cap, the hook replaced it with the
os-sdlc-runner brief --dispatch-id 172instruction, and the charter forbade every command except subagent-stop, so the verifier settlederrorand the run terminated asimplementation_failedwith no re-entry. Session 007cbccc hot-fixed behavior-verifier.md to allow the brief fetch (same carve-out ADR-0206 item 3 gave wiring).Approach
Charter carve-out. Seven charters under
plugins/os-sdlc/agents/may receive the hook-cap fallback:plugins/os-sdlc/agents/behavior-verifier.mdplugins/os-sdlc/agents/contract-auditor.mdplugins/os-sdlc/agents/seam-designer.mdplugins/os-sdlc/agents/test-reviewer.mdplugins/os-sdlc/agents/wiring.mdplugins/os-sdlc/agents/reviewer.mdplugins/os-sdlc/agents/change-auditor.mdReplace every existing carve-out sentence, and add to the two missing charters (
reviewer.md,change-auditor.md), this exact text:For the five judgment charters (behavior-verifier, contract-auditor, seam-designer, test-reviewer, wiring), the existing follow-on sentence "That is the only other command you may run." stays. For reviewer and change-auditor, which run ast-grep / the evidence CLI, do not add that restriction sentence — they have other permitted commands.
No ADR number in the carve-out sentence itself.
ADR-0206 amendment. ADR-0206 item 3 currently names only wiring. A new ADR amending 0206 will name all seven charters listed above. That ADR is written at implementation time, not as part of ticket decomposition.
Error routing (resolved, out of scope for this ticket's changes).
verdict:errorfrom a verifier stays routed toimplementation_failed. The map is unchanged. This closes part 3 of the original ticket text below without a code or map change.Required work:
behavior-verifier.md,contract-auditor.md,seam-designer.md,test-reviewer.md,wiring.md: replace the existing carve-out sentence with the exact text above (keep each charter's existing "only other command" follow-on sentence).reviewer.mdandchange-auditor.md: add the exact carve-out sentence above, with no "only other command" follow-on.bin/refresh-pluginsso the edited charters reach active sessions.plugins/os-sdlc/tests/pipeline/hook_context_cap_wiring_test.rb: one test asserts the exact sentence is present in all seven charters; one assertsreviewer.mdandchange-auditor.mdcontain no "only other command" sentence. Rerunplugins/os-sdlc/tests/charter_shared_goal_test.rband the full os-sdlc suite.Acceptance criteria
reviewer.mdandchange-auditor.mdcontain no "only other command" restriction sentence.bin/refresh-pluginshas been run since the charter edits.charter_shared_goal_test.rbandhook_context_cap_wiring_test.rbpass.Owner sketch
Blast radius
\1
Files containing "hook cap" or "brief --dispatch-id" before this ticket:
plugins/os-sdlc/agents/wiring.mdplugins/os-sdlc/agents/contract-auditor.mdplugins/os-sdlc/agents/test-reviewer.mdplugins/os-sdlc/agents/behavior-verifier.mdplugins/os-sdlc/agents/seam-designer.mddocs/adr/0206-an-oversized-subagentstart-brief-is-delivered-by-a-recompose-by-dispatch-id-cli-instead-of-inline-hook-context-amends-adr-0109-adr-0141-adr-0204.mddocs/implementation-status/os-sdlc.mdreviewer.mdandchange-auditor.mddo not currently mention "hook cap" or "dispatch-id" — confirmed missing, per the decided design.No test in
test/orplugins/os-sdlc/tests/asserts on the literal carve-out sentence text, so the sentence swap will not turn any existing test red by itself.plugins/os-sdlc/tests/charter_shared_goal_test.rbdoes assert other literal charter text (e.g.refute_charter_text(all_charters, "behavior-verifier owns that")) across the same charter set named in this ticket, including reviewer and change-auditor — rerun it after editing.plugins/os-sdlc/tests/pipeline/hook_context_cap_wiring_test.rbonly checks wiring.md's frontmattertools:line today; it does not cover the other six charters. No charter-conformance lint exists underplugins/os-sdlc/liborplugins/os-sdlc/bin.Non-goals
The amending ADR naming all seven charters in ADR-0206 item 3: written once for #630, #662, #670 after all three land, outside this run.
Any change to verdict:error routing behavior (resolved as no-change, see Decided design item 3).
#630
#670
Origin
Observed 2026-09-23 on #639 implementation 14, dispatch 172: the behavior-verifier brief exceeded the ADR-0206 hook cap, the hook replaced it with the 'Run: os-sdlc-runner brief --dispatch-id 172' instruction, and the charter forbade every command except subagent-stop, so the verifier settled error and the run terminated as implementation_failed with no re-entry. Session 007cbccc hot-fixed behavior-verifier.md to allow the brief fetch (same carve-out ADR-0206 item 3 gave wiring). Required work: 1. audit every read-only judgment charter (test-reviewer, contract-auditor, reviewer, seam-designer, change-auditor) for the same gap and add the carve-out where the brief can exceed the cap; 2. amend ADR-0206 so item 3 names every charter that may run the fetch, not only wiring; 3. decide whether verdict:error on a verifier should terminate the implementation or route to a retry of the same node.
Work started on branch ticket-662 (worktree).
Resolution
Done: All seven charters that can receive the hook-cap fallback (behavior-verifier, contract-auditor, seam-designer, test-reviewer, wiring, reviewer, change-auditor) carry one carve-out sentence allowing the brief fetch; reviewer and change-auditor carry no command restriction. verdict:error from a verifier stays routed to implementation-failed (decision recorded, option A).
Evidence: main
75280149; hook_context_cap_wiring_test.rb asserts the sentence in all seven and the absence of 'only other command' in reviewer/change-auditor; suite 1386 runs 0 failures; bin/refresh-plugins run by worktree finish.Follow-ups: Amending ADR naming all seven charters in ADR-0206 item 3, written once for #630/#662/#670 after #670 lands; tracked in #670 body. No other follow-ups.