gate CLI: in-turn runner-owned gate subcommand (#477 child) #478

Closed
opened 2026-08-22 11:40:28 +00:00 by jared · 2 comments
Owner

Context

Parent: #477 (in-turn gates redesign, supersedes ADR-0140). The runner gains a synchronous gate <dispatch_id> subcommand on bin/os-sdlc-runner, replacing settle-gates one for one. Body comes from rewriting the current GateSettlement class; GateVerdict, GateCommands, StepResult recording, and Dispatch.set_verdict! are reused unchanged. Target resolution reuses the binding on the implementation row (ADR-0139).

Tasks

  • Add gate subcommand to runner CLI, remove settle-gates registration
  • Rewrite GateSettlement as the synchronous gate command body (drop detached framing)
  • Update round_commands entrypoint accordingly

Acceptance criteria

  • os-sdlc-runner gate <dispatch_id> with stubbed pass and fail commands writes StepResult rows and stamps the verdict on the dispatch (tests at the runner-CLI/fixture-db seam, rewrite of gate_settlement_test.rb)
  • settle-gates subcommand no longer exists

Out of scope

  • Intake/next changes, settlement class deletion, schema revert (sibling tickets)

Blocked by: supersession ADR (recorded in docs/adr/).

## Context Parent: #477 (in-turn gates redesign, supersedes ADR-0140). The runner gains a synchronous `gate <dispatch_id>` subcommand on `bin/os-sdlc-runner`, replacing `settle-gates` one for one. Body comes from rewriting the current GateSettlement class; GateVerdict, GateCommands, StepResult recording, and Dispatch.set_verdict! are reused unchanged. Target resolution reuses the binding on the implementation row (ADR-0139). ## Tasks - [ ] Add `gate` subcommand to runner CLI, remove `settle-gates` registration - [ ] Rewrite GateSettlement as the synchronous gate command body (drop detached framing) - [ ] Update round_commands entrypoint accordingly ## Acceptance criteria - [ ] `os-sdlc-runner gate <dispatch_id>` with stubbed pass and fail commands writes StepResult rows and stamps the verdict on the dispatch (tests at the runner-CLI/fixture-db seam, rewrite of gate_settlement_test.rb) - [ ] `settle-gates` subcommand no longer exists ## Out of scope - Intake/next changes, settlement class deletion, schema revert (sibling tickets) Blocked by: supersession ADR (recorded in docs/adr/).
Author
Owner

Work starting on branch worktree-sdlc+478 via the os-sdlc pipeline.

Work starting on branch worktree-sdlc+478 via the os-sdlc pipeline.
Author
Owner

Resolution

Done: gate subcommand shipped on main in e578c1b (ADR-0141): cli.rb registers 'gate', GateSettlement rewritten as synchronous in-turn body, round_commands entrypoint updated

Evidence: plugins/os-sdlc/lib/os_sdlc/runner/cli.rb:8,42; gate_cli_test.rb covers StepResult rows + verdict stamping with stubbed pass/fail; zero settle-gates matches repo-wide; full suite 1017 runs 0 failures at 11d7e09

Follow-ups: none

## Resolution **Done:** gate subcommand shipped on main in e578c1b (ADR-0141): cli.rb registers 'gate', GateSettlement rewritten as synchronous in-turn body, round_commands entrypoint updated **Evidence:** plugins/os-sdlc/lib/os_sdlc/runner/cli.rb:8,42; gate_cli_test.rb covers StepResult rows + verdict stamping with stubbed pass/fail; zero settle-gates matches repo-wide; full suite 1017 runs 0 failures at 11d7e09 **Follow-ups:** none
jared closed this issue 2026-08-22 12:29:54 +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#478
No description provided.