Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user asks to process, triage, fetch, view, count, list, or resolve review feedback in a GitHub PR. Supports both CodeRabbit and Codex review workflows. In this workflow, “real review feedback” is strictly defined as actionable inline comments; for CodeRabbit, exclude review summaries and nitpicks, and for Codex, exclude review summary cards and use PR main-thread reactions only as status signals.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 136% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 133% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 57% | 0% |
This workflow supports both CodeRabbit and Codex PR review signals.
“Real review feedback” is strictly defined as:
Nitpick comments from CodeRabbit must always be ignored to avoid unnecessary noise.
There is no need to analyze the comment content itself.
The CodeRabbit workflow only needs these two sources:
bash gh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/comments
This is the authoritative source for real inline comments.
bash gh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/reviews
This is only used to identify and exclude review summaries / nitpick summaries. It is not used to extract the final result.
Do not treat these as primary sources:
gh pr view ...gh api repos/<owner>/<repo>/issues/<pr_number>/commentsReason: they are not the authoritative source for actionable inline comments.
If the user may ask you to resolve review conversations after triaging them, fetch review thread IDs as soon as you know the PR number:
bashgh api graphql -f query='query { repository(owner: "<owner>", name: "<repo>") { pullRequest(number: <pr_number>) { reviewThreads(first: 100) { nodes { id isResolved comments(first: 20) { nodes { databaseId path line author { login } body } } } } } } }'
This is not a primary source for actionable review feedback. It is only for mapping inline comments to resolvable thread IDs.
Recommendation:
databaseId / path / line to thread IDs in one pass.bashgh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/comments
Only keep records that satisfy all of the following:
user.login is coderabbitai[bot] or coderabbitaiin_reply_to_id == null (only top-level inline comments, not replies)This is the candidate set.
bashgh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/reviews
Identify CodeRabbit review summaries. Common characteristics include:
Actionable comments posted: NNitpick commentsThese review-level contents are not the final result. They are only used to help determine:
The final goal of the CodeRabbit workflow is always:
> Top-level inline comments left by CodeRabbit in pulls/<pr_number>/comments that are neither nitpicks nor summaries
Important:
In practice, do the following:
pulls/<pr_number>/commentspulls/<pr_number>/reviews to determine whether the PR contains nitpick summariesIf the output of gh api --paginate ... is too large and gets truncated:
@explorer to extract:path / line / bodyWhen triaging review feedback, apply this rule:
In short:
If the user asks to resolve a CodeRabbit review conversation:
reviewThreads GraphQL data.databaseId when possible.path + line + author login.bashgh api graphql -f query='mutation { resolveReviewThread(input: {threadId: "<thread_id>"}) { thread { isResolved } } }'
Notes:
pulls/<pr_number>/comments remains the source of truth for identifying actionable inline comments.reviewThreads is only for thread-level operations such as resolving conversations.“Real review feedback” is strictly defined as:
There is no need to analyze the comment content itself.
eyes reaction from chatgpt-codex-connector[bot].+1 (thumbs up).pulls/<pr_number>/comments and a review summary card in pulls/<pr_number>/reviews.The Codex workflow uses these sources:
bash gh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/comments
This is the authoritative source for actionable inline Codex comments.
bash gh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/reviews
This is used to identify the Codex review summary card such as ### 💡 Codex Review. It is not the primary source of actionable inline feedback.
First fetch the PR issue node / comments if needed:
bash gh api repos/<owner>/<repo>/issues/<pr_number>/comments gh api repos/<owner>/<repo>/issues/<pr_number>/reactions
Use reactions on the PR main conversation thread only to detect Codex review state:
eyes from chatgpt-codex-connector[bot] → Codex review appears to be in progress+1 from chatgpt-codex-connector[bot] on the PR main thread → Codex reviewed and found no issuesThese reactions are status signals, not actionable review feedback.
Do not treat these as primary sources for actionable comments:
gh pr view ...gh api repos/<owner>/<repo>/issues/<pr_number>/commentsgh api repos/<owner>/<repo>/issues/<pr_number>/reactionsReason: actionable Codex review feedback still lives in PR review comments, not in the PR issue timeline.
bashgh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/comments
Only keep records that satisfy all of the following:
user.login is chatgpt-codex-connector[bot]in_reply_to_id == null (only top-level inline comments, not replies)This is the candidate set of actionable Codex comments.
bashgh api --paginate repos/<owner>/<repo>/pulls/<pr_number>/reviews
Identify Codex review summaries. Common characteristics include:
### 💡 Codex ReviewHere are some automated review suggestions for this pull request.These review-level contents are not the final result. They are only used to understand whether Codex posted a review summary.
If the user asks whether Codex is still reviewing, or whether Codex finished with no findings, inspect reactions on the PR main thread.
Interpret them as follows:
eyes by chatgpt-codex-connector[bot] → likely still reviewing / review in progress+1 by chatgpt-codex-connector[bot] with no Codex inline comments → likely completed with no findingsDo not count these reactions as review comments.
The final goal of the Codex workflow is always:
> Top-level inline comments left by Codex in pulls/<pr_number>/comments
In practice, do the following:
pulls/<pr_number>/commentspulls/<pr_number>/reviews only to recognize the summary cardeyes)+1)If any gh api --paginate ... output is too large and gets truncated:
@explorer to extract:path / line / bodyOther measured skills in the registry, with their headline benchmark lift.