Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-code

Read and request reviews on a pull request changedcode-review-pull-requests

Nearest release: v2.1.305, published under an hour after upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 20 Oct 2026 18:36 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 20 Oct 2026 18:37 UTC.

Upstream edited
Recorded here
Lines+33added
Lines−32removed
From line 6 where the diff opens
First seen 15 Oct 2026 this site's first read of the page
Recorded edits5to this page, all time

The whole hunk

from line 6, old and new numbered
/
lines
from line 6
66 
77An Owner controls [when reviews run](/docs/en/code-review-setup#set-when-reviews-run) and [how thorough they are](/docs/en/code-review-setup#set-the-default-review-level) for each repository.
88 
9<Note>
10 If your plan doesn't include Code Review, you can still have Claude review your branch from a Claude Code session: see [Review locally with `/code-review`](/docs/en/code-review-local).
11</Note>
9> [!NOTE]
10>
11> If your plan doesn't include Code Review, you can still have Claude review your branch from a Claude Code session: see [Review locally with `/code-review`](/docs/en/code-review-local).
1212 
1313## Severity levels
1414 
from line 53
5353 
5454To gate a merge or post a summary from your own CI, parse the last line of the Details text with `gh` and jq. That line is a machine-readable comment.
5555 
56<Steps>
57 <Step title="Find the check run ID">
58 From your shell, list the commit's check runs and take the `id` of the `Claude Code Review` run. Replace `OWNER` and `REPO` with your repository owner and name, and `<commit-sha>` with the pull request's head commit:
56**1. Find the check run ID**
5957 
60 ```bash theme={null}
61 gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'
62 ```
63 </Step>
58From your shell, list the commit's check runs and take the `id` of the `Claude Code Review` run. Replace `OWNER` and `REPO` with your repository owner and name, and `<commit-sha>` with the pull request's head commit:
6459 
65 <Step title="Read the severity counts">
66 Read the counts from that check run, replacing `CHECK_RUN_ID` with the ID:
60```bash theme={null}
61gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'
62```
6763 
68 ```bash theme={null}
69 gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
70 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'
71 ```
64**2. Read the severity counts**
7265 
73 This prints a JSON object with a count per severity and its keys in alphabetical order, for example `{"nit": 1, "normal": 2, "pre_existing": 0}`. The counts include findings from earlier reviews of the pull request whose threads are still open.
74 </Step>
66Read the counts from that check run, replacing `CHECK_RUN_ID` with the ID:
7567 
76 <Step title="Act on the result">
77 Have your script handle these cases:
68```bash theme={null}
69gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
70 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'
71```
7872 
79 * **`normal` is above zero**: fail the job if you want to gate the merge. The `normal` key holds the count of Important findings, so Claude found at least one bug worth fixing before merge.
80 * **The line is missing**: treat it as no verdict rather than as zero findings. A check run for a review that failed, timed out, was canceled, or was superseded by a newer one has no such line, and some completed reviews have none either.
81 </Step>
82</Steps>
73This prints a JSON object with a count per severity and its keys in alphabetical order, for example `{"nit": 1, "normal": 2, "pre_existing": 0}`. The counts include findings from earlier reviews of the pull request whose threads are still open.
8374 
75**3. Act on the result**
76 
77Have your script handle these cases:
78 
79* **`normal` is above zero**: fail the job if you want to gate the merge. The `normal` key holds the count of Important findings, so Claude found at least one bug worth fixing before merge.
80* **The line is missing**: treat it as no verdict rather than as zero findings. A check run for a review that failed, timed out, was canceled, or was superseded by a newer one has no such line, and some completed reviews have none either.
81 
8482## Request a review
8583 
8684If your pull request is a draft or comes from a fork, automatic reviews skip it, so [request the review with a comment command](#review-drafts-and-pull-requests-from-forks). To get a review on your pull request, do one of these:
from line 95
9795 
9896| Command | What it does | When to use it |
9997| :- | :- | :- |
100| `@claude review` | Starts a single review without subscribing the PR to future pushes | You want one review now, such as on a pull request in a repository set to Manual, or another review right away in the other modes |
101| `@claude review always` | Starts a review and subscribes the PR to push-triggered reviews going forward | You want every subsequent push to start a fresh review, such as on a high-priority PR in a repository set to Manual |
98| `@claude review` | Starts a single review without subscribing the PR to future pushes | You want one review now, such as on a pull request in a repository set to **Manual**, or another review right away in the other modes |
99| `@claude review always` | Starts a review and subscribes the PR to push-triggered reviews going forward | You want every subsequent push to start a fresh review, such as on a high-priority PR in a repository set to **Manual** |
102100| `@claude review once` | Same as `@claude review`: starts a single review without subscribing | The same cases as `@claude review` |
101| `@claude review stop` | Ends the PR's subscription to push-triggered reviews, without starting a review or canceling one that's already running. Claude replies with a comment instead of a check run. | You subscribed a PR with `@claude review always` in a repository set to **Manual** or **Once after PR creation**, and no longer want each push to start a review |
103102 
104For any of these commands to start a review, all of these conditions have to hold:
103In a repository set to **After every push**, you can't stop reviews with a comment, because pushes there start reviews with or without a subscription. To pause reviews on one pull request there, convert it to a draft.
105104 
105For any comment command to take effect, all of these conditions have to hold:
106 
106107* Post it as a new top-level pull request comment, not an inline comment on a diff line and not the body of a review. Editing an earlier comment doesn't count.
107* Put the command at the start of the comment, with `always` on the same line as the rest of the command. Capitalization doesn't matter.
108* Put the whole command on one line at the start of the comment. Other text can follow it. If `always` or `stop` is misspelled or on a later line, Claude reads the comment as a plain `@claude review` and starts a single review. Capitalization doesn't matter.
108109* You need write, maintain, or admin permission on the repository. Claude checks this with GitHub for each person who comments, and comments from bots don't start reviews.
109110* The pull request must be open.
110111 
111When the command is accepted, a **Claude Code Review** check run appears on the pull request with the title **Code review queued...**. The title changes to **Code review in progress...** when the review starts. Claude may also react to your comment with 👀, but that reaction can appear when no review starts, so look for the check run instead.
112When a command that starts a review is accepted, a **Claude Code Review** check run appears on the pull request with the title **Code review queued...**. The title changes to **Code review in progress...** when the review starts. Claude may also react to your comment with 👀, but that reaction can appear when no review starts, so look for the check run instead.
112113 
113114If a review is already running on the pull request's latest commit, a new request doesn't start a second one.
114115 
115<Note>
116 Before a July 2026 update, `@claude review` subscribed the PR to push-triggered reviews. If you relied on that behavior, comment `@claude review always` instead.
117</Note>
116> [!NOTE]
117>
118> Before a July 2026 update, `@claude review` subscribed the PR to push-triggered reviews. If you relied on that behavior, comment `@claude review always` instead.
118119 
119120### What a later review covers
120121 
Feedback