Skip to main content
Experimental version.This is the latest in-development version of AI-Implement. Features may change without notice and behavior is not guaranteed. Switch to the latest stable version here.
You can run your own code reviewer next to AI-Implement’s built-in reviewers. A reviewer such as Codex posts its verdict on the pull request. AI-Implement reads that verdict and folds the findings into its own review. The reviewer states its verdict in a fixed format. This page describes that format, who can post it, and how AI-Implement waits for it.

The findings block

The reviewer ends its pull-request comment with one fenced code block. The info string is exactly json review-findings. The JSON stays on one line.
The block carries these fields: AI-Implement parses the block by these rules:
  • A broken or unclosed block makes the verdict incomplete. AI-Implement does not fall back to the comment prose.
  • With more than one block in one comment, the last block counts.
  • Every finding in the block gates the merge, including a minor one.
When AI-Implement cannot parse the block, the pull-request comment shows this line:

Who can post the block

AI-Implement reads the block only from a trusted comment author. Two kinds of author are trusted:
  • github-actions[bot] — a workflow that posts with its GITHUB_TOKEN.
  • One of these logins: ai-implement, ai-implement[bot], claude, claude[bot], claude-code[bot].
A trusted author can approve a pull request.
A reviewer that posts as its own GitHub App or user is not read. To trust that login, add it to Trusted Review Authors.

When AI-Implement reads the block

The post-push review reads the newest eligible comment while the run waits for the review check. A review posted after the run ends still counts. A finding from a trusted author queues a review-fix run.

The review check

AI-Implement waits for a check run whose name matches. It recognizes these names by default:
  • review
  • code-review-plugin
  • claude-review
  • claude code review
  • claude-code-review
  • any name that contains both claude and review
Set reviewCheckNames in .ai-implement/config.yml to replace the defaults with exact matches — see reviewCheckNames. AI-Implement waits up to five minutes for the check to finish. What it does depends on the check state:

Review process

Each project sets a Review process. It selects who reviews a pull request and how AI-Implement reads the verdict. The Review process has these values:
  • AI-Implement — the default. AI-Implement’s own reviewers review the pull request.
  • Claude Code Review — Claude Code Review reviews the pull request. AI-Implement fixes Claude’s findings.
  • Claude Code Review, repository auto-fix — Claude Code Review reviews the pull request. The repository’s own auto-fix workflow fixes Claude’s findings, and AI-Implement does not. See Repository auto-fix.
An unknown or empty value means AI-Implement.

Claude Code Review verdict

Under both Claude Code Review processes, AI-Implement reads the verdict from the strongest source it finds. It trusts claude[bot] and claude. AI-Implement matches a review check by its name and the app that posts it. A same-named check from another app does not count. It reads these sources in order:
  1. A json review-findings block from a trusted author. See The findings block.
  2. The hosted Claude Code Review check. This check is named Claude Code Review and comes from the claude app. AI-Implement reads its severity line. A normal finding requests changes. No normal finding approves the pull request.
  3. The repository’s own Claude workflow. This review check comes from github-actions, with a name from the project’s review check names. AI-Implement also reads Claude’s inline comments on the pull-request head. A failed check is not a verdict.
In source 3, AI-Implement reads the marker at the start of each inline comment:
  • 🔴 — blocking.
  • 🟡 — minor.
  • 🟣 — ignored.
  • No marker — minor.
A comment on a resolved or outdated review thread does not count. AI-Implement also reads the section headings in Claude’s summary comment. A heading that starts with 🔴 is blocking. It stops approval even when the review check passes and Claude posts no inline comment. A heading that starts with 🟡 is minor.

Repository auto-fix

Use Claude Code Review, repository auto-fix when the repository runs its own workflow that fixes Claude’s review comments. Under Claude Code Review, AI-Implement and that workflow can both push fixes to one pull request, and each push starts another review. This process reads Claude’s verdict the same way as Claude Code Review. It changes who fixes. When Claude’s review of the newest commit is done, AI-Implement does this: When AI-Implement waits for the auto-fix, it posts:
AI-Implement then checks the pull request once a minute for up to 30 minutes. It follows each commit that the auto-fix pushes. It approves the newest commit only when all of these hold:
  • Claude’s review check on that commit finished with success. A skipped review check is not a review.
  • The other checks on that commit passed.
  • Claude reported no 🔴 finding on that commit.
A commit that still has a 🔴 finding keeps AI-Implement waiting, because the auto-fix can push again. If no commit passes in 30 minutes, AI-Implement does not approve, and a person reviews the pull request. Closing the pull request ends the wait. AI-Implement never starts a fix run for Claude’s findings on this process, after the run or during it, on either lifecycle.
If the repository’s review workflow skips commits pushed by a bot, the auto-fix commit gets no review. AI-Implement then does not approve it, and the pull request waits for a person.
To use this process, follow Switch a project to Claude Code Review, and select Claude Code Review, repository auto-fix in the Review process step.

Switch a project to Claude Code Review

Switch a project to Claude Code Review when you want Claude to review its pull requests instead of AI-Implement’s built-in reviewers. Test the change on one pull request before you rely on it.
1

Switch the project to the Restate lifecycle

A review that posts findings after the run hands them to the Restate fix coordinator. A Restate workflow then owns the fix run with a deadline, so the fix survives an orchestrator restart. Claude Code Review was built and tested on this path.Open the project drawer in the project settings. Set Review-fix & Planning Lifecycle to Restate (pilot), then save.The save is refused unless all of these hold:
  • The execution mode is GitHub Actions.
  • The Restate endpoint is healthy and registered.
  • The project’s workflow file is current.
  • No run started by an older orchestrator version is still in flight.
To bring the workflow file up to date, use Sync workflows and merge the pull request it opens.Claude Code Review also works on the Legacy lifecycle, but these steps assume Restate. See reviewFixLifecycle.
2

Check the prerequisites

Confirm these before you switch:
  • The project settings show a Review process select. If they do not, update AI-Implement.
  • The runner image is built from testing on or after 2026-10-11. An earlier image does not post the approval message for a review that passes after the run ends.
  • The repository runs a Claude review workflow that:
    • runs on the pull request as a GitHub Actions job, so its check run comes from github-actions
    • posts inline comments as claude[bot], which needs the Claude GitHub App
    • uses a check name AI-Implement recognizes — a default review check name, or one you set in reviewCheckNames
  • Alternatively, the repository posts the hosted Claude Code Review check. See Claude Code Review verdict.
3

Set the Review process to Claude Code Review

Open the project drawer in the project settings. Set Review process to Claude Code Review, then save.Under Claude Code Review, an empty internal-reviewer selection does not stop the run.
4

Add Trusted Review Authors (optional)

Add extra comment authors in Trusted Review Authors. Add an author here when a workflow posts its verdict as a login other than claude[bot] or claude.
Only claude[bot] and claude inline comments count toward the verdict. Trusted Review Authors does not change this. It adds authors whose json review-findings block counts, not authors whose inline comments count. A workflow that posts as github-actions[bot] must post a findings block, or AI-Implement does not read its inline comments.
5

Test on one pull request

Add the pickup label to one small issue. AI-Implement opens a pull request and runs the review.Watch the pull request for the review result. AI-Implement posts one of these comments.The review passed in time:
Let the pull request merge.A 🔴 comment blocked the review:
AI-Implement pushes a fix, then reviews again. Wait for the next result.Claude took longer than the run’s wait:
AI-Implement then rechecks the pull request once a minute for up to 30 minutes. When the review passes on the same commit with no open blocking finding, it posts:
Wait for this message, then let the pull request merge.
6

Switch back, if needed

To return to AI-Implement’s own reviewers, set Review process to AI-Implement in the project settings, then save.This does not change the lifecycle. The project stays on the lifecycle you selected.

Which findings gate the merge

Merge gating depends on where a finding comes from: AI-Implement splits the two kinds in the pull-request comment. Gating findings go under “Unresolved external review findings:”. Advisory findings go under “Advisory external review findings (do not block merge):”.

Build your own reviewer

A reviewer has two obligations:
  • Post the comment from a workflow step, not from the model’s own comment tool.
  • Fail the check when there is no valid verdict. Never post a partial or synthetic block.
A non-Claude reviewer follows this outline:
1

Produce the verdict JSON

Build the {"schema":"review-findings/v1","verdict":...,"findings":[...]} object as one line of valid JSON. An empty result is still a findings: [] block, not a missing one.
2

Render the comment

Write the human-readable body, then append the fenced block with the info string json review-findings.
3

Post the comment

Post it with gh pr comment from the workflow step.
The AI-Implement repository is public at BuildDownAI/AI-Implement. It ships a reusable composite action at .github/actions/claude-review that does this for Claude. The action takes these inputs:
  • github_token and pr_number — required.
  • One of claude_code_oauth_token, anthropic_api_key, use_bedrock, or use_vertex.
  • prompt_extra — optional.
AI-Implement does not sync this action to target repositories. Copy or reference it yourself.

Turn off the wait

Set reviewProviders: [] in .ai-implement/config.yml to skip the wait — see reviewProviders.