Gate settlement reply carries step outputs and passed-step feedback #490
Labels
No labels
P0
P1
P2
P3
bug
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
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#490
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
Since the #477 in-turn gate redesign, the programmer/test-writer agents run
os-sdlc-runner gate <dispatch_id>themselves, but the reply built at lib/os_sdlc/runner/gate_settlement.rb:64-67 contains only{type, dispatch_id, verdict, step}. The full gate output is already captured per step as GateStepOutcome rows (gate_verdict.rb:30) but surfaces only via thegate_resultsenrich on the NEXT dispatch — a SubagentStop-era design. An agent told onlyverdict: fail, step: testmust re-run the suite manually to see why, doubling every iteration's cost (an 80s suite becomes 160s per round).Tasks
os-sdlc-runner gate <dispatch_id>.gatecommand prints the enriched reply so the invoking agent sees it in-turn.Acceptance criteria
Origin
os-sdlc-runner gatepath.gate_resultsenrich, ADR-0133/0134 era SubagentStop model).Work starting on branch worktree-ticket-490 via /os-sdlc:implement pipeline.
Resolution
Done: Gate settlement reply now carries step outputs and passed-step feedback: GateVerdict collects its GateStepOutcome rows (outcomes accessor); GateSettlement builds a GateReply value object whose reply hash adds passed_steps, the failing step's captured output, and a message (rerun instruction naming the dispatch id on fail; 'all gates green -- you may finish' on pass). CLI gate prints the enriched reply via the existing emit path. No schema change; StepResult capture path untouched.
Evidence: Branch worktree-ticket-490. Files: plugins/os-sdlc/lib/os_sdlc/runner/gate_verdict.rb, gate_settlement.rb, new tests/runner/gate_settlement_test.rb (full-green, fail-with-output, fail-with-prior-passed-steps shapes, incl. rubocop offense text in lint-fail reply output). Pipeline gates green: 1085 runs, 0 failures; rubocop no offenses. Reviewer (opus) verdict: pass.
Follow-ups: #494 captured (brief composer false 'no tracker configured', skeptic CREATE). Lint-output assertion done inline this session (skeptic DROP-do-inline). Dropped: private_constant GateReply, collapse record_verdict/record, fail-open failing_output — reviewer-rated non-blocking, no provenance beyond style.