bin/decision-sweep: recommender-blind gate over weighted-decision blocks #254

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

Spec: #250
Blocked by #253

Slice

bin/decision-sweep in os-backlog: parse decision children's fenced YAML blocks (recommendation, confidence integer %, reversal_cost, reasoning) and apply the hardcoded gate per ADR-0094. Pass ⇒ close the child with the three-part resolution comment adopting the recommendation. Fail ⇒ comment naming the failed gate + ready-for-human, stays open (applies even to wayfinder:* children — ADR-0096 exception).

Acceptance criteria

  • Given a child whose block clears the gate (confidence ≥ threshold AND reversal_cost: cheap), when swept, then the three-part resolution comment is posted, then the issue closed (comment-first ordering).
  • Given below-threshold confidence, non-cheap reversal, or a malformed/missing block, when swept, then a comment names the exact failed gate, ready-for-human is applied, and the issue stays open.
  • Given a re-run after a partial failure, when swept, then the existing comment is detected and only remaining steps apply (idempotent).
  • The gate value appears only in tested Ruby — no skill/prompt states it.
  • Minitest at the CLI/lib boundary, fixture bodies + stubbed tracker; sharing the lib from the validator ticket.

Non-goals

No recommendation authoring, no threshold configurability, no map/assembly bookkeeping.

Spec: #250 Blocked by #253 ## Slice `bin/decision-sweep` in os-backlog: parse decision children's fenced YAML blocks (`recommendation`, `confidence` integer %, `reversal_cost`, `reasoning`) and apply the hardcoded gate per ADR-0094. Pass ⇒ close the child with the three-part resolution comment adopting the recommendation. Fail ⇒ comment naming the failed gate + `ready-for-human`, stays open (applies even to `wayfinder:*` children — ADR-0096 exception). ## Acceptance criteria - Given a child whose block clears the gate (confidence ≥ threshold AND `reversal_cost: cheap`), when swept, then the three-part resolution comment is posted, then the issue closed (comment-first ordering). - Given below-threshold confidence, non-cheap reversal, or a malformed/missing block, when swept, then a comment names the exact failed gate, `ready-for-human` is applied, and the issue stays open. - Given a re-run after a partial failure, when swept, then the existing comment is detected and only remaining steps apply (idempotent). - The gate value appears only in tested Ruby — no skill/prompt states it. - Minitest at the CLI/lib boundary, fixture bodies + stubbed tracker; sharing the lib from the validator ticket. ## Non-goals No recommendation authoring, no threshold configurability, no map/assembly bookkeeping.
jared closed this issue 2026-08-04 16:24:28 +00:00
Author
Owner

Merged in 47dcdab (branch sdlc/254, commit 3e09873): Backlog::DecisionSweep + bin/decision-sweep, ADR-0094 gate, reviewer APPROVE after reasoning-field fix. Known adapter gaps tracked in #262.

Merged in 47dcdab (branch sdlc/254, commit 3e09873): Backlog::DecisionSweep + bin/decision-sweep, ADR-0094 gate, reviewer APPROVE after reasoning-field fix. Known adapter gaps tracked in #262.
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#254
No description provided.