Skip to content

Review-verdict fix rounds need first-class plumbing: adverse-review requeue (not repurposed ci-fail), agent-side board_get_feature, findings→re-dispatch seam #98

Description

@mabry1985

Context (observed running the pb#91/92/93 batch, 2026-07-23)

vera's verdicts (PASS/WARN/FAIL) are the shop's merge gate, but the loop has no native reaction to an adverse review — review_gate is a separate opt-in reviewer (the host's own code-review workflow), not a consumer of the PR-review pipeline's verdicts. When #94 came back FAIL and #95's WARN was adjudicated fix-now, the fix rounds had to be driven by the operator from outside:

  1. Requeue lever is a repurposed CI route. POST /features/{fid}/ci {passed:false} was the only path that requeues onto the same PR — it works (and the ladder-escalation is actually a nice fit for fix rounds), but it records the round as ci-fail and burns an escalation tier per round even when the tier isn't the problem.
  2. The agent can't requeue itself. board_mark_ready only does backlog→ready; from in_review there is no agent-tool transition. The lead correctly refused to improvise, but that means every fix round needs operator hands.
  3. The agent can't READ a feature's current text. board_update_feature writes acceptance_criteria wholesale, but no tool returns the current value — a safe append (e.g. "add fix item 8, keep rounds 1-7") is impossible agent-side. The operator had to GET /api/plugins/project_board/features/{fid} and hand the agent verbatim replacement text. (A race followed: the requeue fired before the brief update, and the coder dispatched on the stale brief.)

Proposed

  • POST /features/{fid}/review (or extend /ci with a kind: review field): record an adverse-review bounce distinctly from ci-fail, requeue onto the same PR, optional escalate: bool (default false — fix rounds usually need the findings, not a bigger model), and accept a findings payload that lands in the re-dispatch prompt the way _ci_feedback does.
  • board_get_feature(id) agent tool returning the full feature (spec, acceptance_criteria, state, pr_url) — unlocks safe read-modify-write and makes the lead self-sufficient for fix rounds.
  • Optional follow-on: a webhook/poll seam that maps the QA panel's CHANGES_REQUESTED/verdict marker to the review bounce automatically, so adverse verdicts requeue without any operator at all.

Refs

The #94 (FAIL→WARN→merge) and #95 (WARN→fix-now→merge) fix-round transcripts; #85 (update tool), #22/pr-reviewer (WARN promotion) for why verdict-awareness matters.

Metadata

Metadata

Assignees

No one assigned

    Labels

    team-readyTriaged and approved for autonomous team dispatch — the ONLY intake gate the board pipeline accepts

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions