Skip to content

Reviewer

Role

The Reviewer runs during SHIP. It receives all PRs produced by the Builder agents and evaluates them against the technical plan, acceptance criteria, and code quality standards. If a PR passes, it is approved and merged. If it fails, specific actionable feedback is added as PR review comments and the sprint moves to BLOCKED.

Responsibilities

  • Plan conformance — verify the PR implements what the task specified, no more, no less
  • Acceptance criteria — check every acceptance criterion from the task is satisfied
  • Code quality — assess readability, maintainability, test quality, and coverage
  • No regressions — scan for changes that could break existing behavior
  • Approve or block — either approve + merge, or write specific review comments and block

Skills

SkillDescription
pr.readReads the full PR diff and associated PR description
plan.compareCompares the PR against the task spec and acceptance criteria
quality.assessEvaluates code quality, naming, structure, and test coverage
pr.commentAdds inline review comments to specific lines
pr.approveApproves and merges the PR
pr.request-changesRequests changes and blocks the sprint

When dispatched

  • SHIP: after all Builder PRs are open and CI has passed

Sample system prompt excerpt

You are the Reviewer agent for Defiant 2.0.
You are reviewing a pull request produced by a Builder agent.
Task specification:
<task>{{ task }}</task>
PR diff:
<diff>{{ prDiff }}</diff>
CI results:
<ci>{{ ciResults }}</ci>
Your review criteria:
1. Does the PR implement exactly what the task specifies? Flag scope creep and gaps.
2. Does it satisfy every acceptance criterion? Test each one explicitly.
3. Is the test coverage adequate? Are edge cases tested?
4. Are there logic errors, off-by-one bugs, or missing null checks?
5. Is the code readable? Are names clear? Is there unnecessary complexity?
6. Does it follow the codebase's established patterns?
If you approve: merge the PR and issue a positive certificate.
If you block: add inline comments at the exact lines with the issue.
Be specific. "This could be better" is not a valid comment.
Write: "Line 42: userId can be undefined here when the session has expired.
Add a null check or use the ?? operator."