SubagentStop presence check + next routing on present verdict (#477 child) #479

Closed
opened 2026-08-22 11:40:35 +00:00 by jared · 1 comment
Owner

Context

Parent: #477. CompletionIntake's gate-sourced branch becomes a presence check: verdict present -> done; absent -> stamp existing error verdict with a gate-skip reason on the dispatch, routed by the map's existing error edge. next loses Settlement.for(...).resolve! and the gates_settling payload; it routes on a present verdict.

Tasks

  • Replace queue_gate_settlement in CompletionIntake with the presence check; drop the settlement: constructor kwarg
  • Remove gates_settling/settlement resolution from next_step; route on present verdict
  • Correct the stale detached-settlement docstring in hooks/subagent_stop.rb (mechanics unchanged)

Acceptance criteria

  • Synthetic SubagentStop event for a gated dispatch WITH a verdict routes on it (rewrite of cli_subagent_stop_test.rb)
  • Same event WITHOUT a verdict stamps error with the gate-skip reason; map routes the error edge
  • next no longer emits gates_settling

Blocked by: child A (gate CLI).

## Context Parent: #477. CompletionIntake's gate-sourced branch becomes a presence check: verdict present -> done; absent -> stamp existing `error` verdict with a gate-skip reason on the dispatch, routed by the map's existing error edge. `next` loses Settlement.for(...).resolve! and the `gates_settling` payload; it routes on a present verdict. ## Tasks - [ ] Replace queue_gate_settlement in CompletionIntake with the presence check; drop the settlement: constructor kwarg - [ ] Remove gates_settling/settlement resolution from next_step; route on present verdict - [ ] Correct the stale detached-settlement docstring in hooks/subagent_stop.rb (mechanics unchanged) ## Acceptance criteria - [ ] Synthetic SubagentStop event for a gated dispatch WITH a verdict routes on it (rewrite of cli_subagent_stop_test.rb) - [ ] Same event WITHOUT a verdict stamps `error` with the gate-skip reason; map routes the error edge - [ ] `next` no longer emits gates_settling Blocked by: child A (gate CLI).
Author
Owner

Resolution

Done: presence check shipped on main in e578c1b: CompletionIntake gate-sourced branch routes on present verdict, stamps gate_skip error when absent; next_step no longer emits gates_settling; subagent_stop.rb docstring rewritten

Evidence: cli_subagent_stop_test.rb: test_a_verdict_stamped_in_turn_survives_completion_and_is_reported_back + test_an_agent_that_stops_without_gating_is_stamped_a_loud_error_verdict (gate_skip step_results row); zero gates_settling/queue_gate_settlement hits in lib; suite 1017 runs 0 failures at 11d7e09

Follow-ups: none

## Resolution **Done:** presence check shipped on main in e578c1b: CompletionIntake gate-sourced branch routes on present verdict, stamps gate_skip error when absent; next_step no longer emits gates_settling; subagent_stop.rb docstring rewritten **Evidence:** cli_subagent_stop_test.rb: test_a_verdict_stamped_in_turn_survives_completion_and_is_reported_back + test_an_agent_that_stops_without_gating_is_stamped_a_loud_error_verdict (gate_skip step_results row); zero gates_settling/queue_gate_settlement hits in lib; suite 1017 runs 0 failures at 11d7e09 **Follow-ups:** none
jared closed this issue 2026-08-22 12:29:57 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#479
No description provided.