Skip to content

source-control:babysit-prs: should formal APPROVED-state reviews be severity-scanned before the ignored short-circuit (bot AND human paths) #621

Description

@kyle-sexton

Lane: babysit. Triggering PR: #567 (fix/499-babysit-snapshot-approve-nits-classification). Source: Codex P1 re-review thread #567 (comment).

Finding

A reviewer bot can submit a formal APPROVED-state review whose body carries a live CRITICAL/IMPORTANT finding (e.g. Verdict: Approve overall. IMPORTANT: authorization bypass.). In collect_feedback (plugins/source-control/skills/babysit-prs/scripts/babysit_feedback.py) the elif state in {"APPROVED", "DISMISSED"}: ignored.append(record) branch short-circuits to ignored before the has_blocking_text / has_blocking_severity predicate is reached, so the severity marker is never inspected — no blocker, no worker dispatch. The same short-circuit exists on the non-bot (human) path a few lines above.

Why this is a deferred design question, not a PR #567 fix

Per the no-false-guarantees rule, PR #567 does not ship a present-tense guarantee this finding contradicts: its CHANGELOG/docstring wording was narrowed to the enforced behavior (severity stays blocking in a comment or non-APPROVED-state review), with this issue cited as the caveat. The classifier itself is left unchanged in #567.

The design question to decide

Should a formal APPROVED/DISMISSED-state review (bot and human) have its body severity-scanned before the ignored short-circuit — i.e. can a live CRITICAL/IMPORTANT in the body override the reviewer's explicit approval state? If yes, define the precedence and the false-positive guard; apply consistently across both paths.

Belongs to the #534 shared-classifier design space; likely umbrella-fold at triage.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.wayfind: designWayfind decision item: design-space or domain-model decision; human in the loop.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions