Skip to content

feat(review): a Reviewer agent reviews every change before it is tested - #264

Merged
hoangsnowy merged 1 commit into
mainfrom
feat/reviewer-agent
Oct 22, 2026
Merged

hoangsnowy merged 1 commit into
mainfrom
feat/reviewer-agent

Conversation

@hoangsnowy

Copy link
Copy Markdown
Owner

Summary

Answering "is this really multi-agent?": the hand-off between the Coding and Testing agents now has a Reviewer agent.

Flow per proposed change: checks green → Reviewer agent (read-only, scoped, on the member's computer) reads the diff in context against the ticket + repo rules (correctness, security / tenant isolation, tests, conventions), grades findings must-fix / should-fix / nit, and posts the review on the PR → approved: Testing agent → merge policy; must-fix: back to the Coding agent as a change request (same 3 bounded rounds), then reviewed again.

  • Domain IReviewAgent, ReviewVerdict/ReviewFinding — an "approve" carrying a must-fix is not trusted.
  • ReviewAgent (prompt, verdict parse, PR comment, change request), DI.
  • BoardTaskService.ReviewAsync; repo states Reviewing / Reviewed / ChangesRequested; session recompute treats them as Done.
  • AutopilotPlanner: ChangeReview + RunReview; orchestrator maps states, recovers a review cut short by a restart.
  • Board plain statuses: "Being reviewed", "Review passed", "Review asked for changes". Docs updated.

Test plan

  • ReviewStepTests (13): review before testing, needs a computer, waits while reviewing, changes go back with findings, 3-round cap, approved → test → merge; verdict parsing incl. untrusted approve; change request; comment escaping.
  • Existing Autopilot/acceptance tests unchanged and green; full suite green.
  • Lab: next VNChessAcademy PR gets a review comment before the acceptance comment.

🤖 Generated with Claude Code

https://claude.ai/code/session_018WAdQ7Rm24xss5QDSvXtJB

Multi-agent for real on the Coding → Testing hand-off: after a proposed change's checks go green, the Reviewer agent
(read-only, on the member's computer, scoped autonomy) reads the diff in context against the ticket and the repo's
own rules — correctness, security / tenant isolation, tests, conventions — and grades findings must-fix / should-fix
/ nit. It posts the review on the pull request; must-fix findings become the change request the Coding agent gets
next (the same 3 bounded rounds as failing checks and failed acceptance), then the change is reviewed again. An
approved change goes on to the Testing agent and Autopilot's merge policy.

- Domain: IReviewAgent, ReviewVerdict / ReviewFinding (an "approve" with a must-fix finding is not trusted).
- Pipeline: ReviewAgent (prompt, JSON verdict, PR comment, change request).
- Web: BoardTaskService.ReviewAsync; repo states Reviewing / Reviewed / ChangesRequested (session counts them as
  Done); AutopilotPlanner RunReview + ChangeReview; orchestrator maps states, recovers a review cut short by a
  restart; plain-language statuses on the Board.
- Docs: autonomy-levels phase table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018WAdQ7Rm24xss5QDSvXtJB
@hoangsnowy
hoangsnowy merged commit 6f96edc into main Oct 22, 2026
4 checks passed
@hoangsnowy
hoangsnowy deleted the feat/reviewer-agent branch October 23, 2026 00:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant