Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Fetch and display GitHub PR review comments for the current branch.
.claude/skills/warpdotdev-pr-comments/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 433% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-18 | ✗→✓ | ▲ Improved | -9% | 0% |
Fetch all review comments from the current branch's GitHub PR and display them via insert_code_review_comments.
Use do_not_summarize_output: true when running this shell command so the JSON output is not truncated. bash python3 {{skill_dir}}/scripts/fetch_github_review_comments.py The script prints JSON to stdout. If the script fails to fetch comments, run the fallback gh commands instead.
insert_code_review_comments with the three top-level fields from the JSON output:local_repository_pathbase_branchcommentsDo NOT make code changes in response to the fetched comments unless the user tells you to. Do NOT impersonate the user by submitting review responses. Your role when fetching and displaying comments is purely informational — present the comments and wait for direction.
gh api --paginatereply_metadata on reply commentslocation_metadata on top-level diff comments (filepath, trimmed diff hunk, line, side)If the script fails to fetch comments, follow these steps to fetch comments directly from the GitHub API:
{owner_login}/{repo_name} from the base repository (the repo that owns the PR) by parsing the PR's url (e.g. https://github.com/{owner_login}/{repo_name}/pull/{pr_number}). Comments live on the base repo, so this resolves correctly even when the PR was opened from a fork — do not use the head/fork repository or the endpoints will 404.insert_code_review_comments tool to send the comments to the user. Include all PR-, review-, file- and line-level comments. If there are no comments on the PR, use the tool to return an empty list. DO NOT read out the comment contents without the tool.Ensure the pager is not used by clearing the GH_PAGER environment variable. For example, on MacOS using zsh, use:
sh$ GH_PAGER="" gh pr view --json number,url,baseRefName $ GH_PAGER="" gh api /repos/{owner_login}/{repo_name}/issues/{pr_number}/comments --jq '.[] | {id, html_url, user_login: .user.login, body, created_at, updated_at}' $ GH_PAGER="" gh api /repos/{owner_login}/{repo_name}/pulls/{pr_number}/comments --jq '.[] | {id, html_url, diff_hunk, path, user_login: .user.login, body, created_at, updated_at, start_line, original_start_line, start_side, line, original_line, side, in_reply_to_id, subject_type} | if .in_reply_to_id != null then del(.diff_hunk, .path, .line, .original_line, .start_line, .original_start_line, .side, .start_side, .subject_type) else . end' $ GH_PAGER="" gh api /repos/{owner_login}/{repo_name}/pulls/{pr_number}/reviews --jq '.[] | {id, html_url, user_login: .user.login, body, created_at, updated_at} | select(.body != "" and .body != null)'
Adapt the instructions above for the user's operating system and shell. Then invoke the insert_code_review_comments tool.
gh CLI authenticated with repo access| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 10,802 | 8,426 | -22% | 1 | 1 | 0% | 916 | 1,422 | +55% | 0 | 0 | — |
case-02 | fail→fail | 13,551 | 9,508 | -30% | 1 | 1 | 0% | 1,046 | 1,491 | +43% | 0 | 0 | — |
case-03 | fail→fail | 10,151 | 6,153 | -39% | 1 | 1 | 0% | 464 | 1,404 | +203% | 0 | 0 | — |
case-04 | fail→fail | 4,848 | 20,559 | +324% | 1 | 1 | 0% | 741 | 4,495 | +507% | 0 | 0 | — |
case-05 | fail→fail | 5,780 | 32,088 | +455% | 1 | 1 | 0% | 892 | 1,527 | +71% | 0 | 0 | — |
case-06 | fail→pass | 4,224 | 9,360 | +122% | 1 | 1 | 0% | 497 | 2,648 | +433% | 0 | 0 | — |
case-07 | fail→fail | 17,115 | 10,060 | -41% | 1 | 1 | 0% | 2,798 | 3,114 | +11% | 0 | 0 | — |
case-08 | fail→fail | 33,288 | 3,309 | -90% | 1 | 1 | 0% | 2,675 | 1,564 | -42% | 0 | 0 | — |
case-09 | fail→fail | 12,379 | 2,969 | -76% | 1 | 1 | 0% | 1,992 | 1,529 | -23% | 0 | 0 | — |
case-10 | fail→pass | 11,481 | 4,402 | -62% | 1 | 1 | 0% | 1,557 | 1,575 | +1% | 0 | 0 | — |
case-11 | pass→pass | 6,530 | 4,285 | -34% | 1 | 1 | 0% | 1,007 | 1,540 | +53% | 0 | 0 | — |
case-12 | fail→pass | 11,391 | 7,846 | -31% | 1 | 1 | 0% | 1,472 | 1,562 | +6% | 0 | 0 | — |
case-13 | pass→pass | 5,941 | 4,187 | -30% | 1 | 1 | 0% | 797 | 1,506 | +89% | 0 | 0 | — |
case-14 | pass→pass | 14,904 | 4,895 | -67% | 1 | 1 | 0% | 2,591 | 1,951 | -25% | 0 | 0 | — |
case-15 | fail→pass | 20,995 | 3,857 | -82% | 1 | 1 | 0% | 1,252 | 1,661 | +33% | 0 | 0 | — |
case-16 | pass→pass | 24,733 | 5,119 | -79% | 1 | 1 | 0% | 1,772 | 1,844 | +4% | 0 | 0 | — |
case-17 | fail→fail | 11,545 | 4,053 | -65% | 1 | 1 | 0% | 1,698 | 1,727 | +2% | 0 | 0 | — |
case-18 | fail→pass | 13,363 | 3,693 | -72% | 1 | 1 | 0% | 1,866 | 1,698 | -9% | 0 | 0 | — |
case-19 | pass→pass | 10,281 | 3,600 | -65% | 1 | 1 | 0% | 1,796 | 1,708 | -5% | 0 | 0 | — |
case-20 | pass→pass | 8,753 | 10,170 | +16% | 1 | 1 | 0% | 1,382 | 2,000 | +45% | 0 | 0 | — |
case-21 | pass→pass | 8,409 | 4,564 | -46% | 1 | 1 | 0% | 1,355 | 1,739 | +28% | 0 | 0 | — |
case-22 | pass→pass | 16,228 | 24,893 | +53% | 1 | 1 | 0% | 1,145 | 2,828 | +147% | 0 | 0 | — |
case-23 | fail→pass | 16,641 | 4,104 | -75% | 1 | 1 | 0% | 2,760 | 1,421 | -49% | 0 | 0 | — |
case-24 | pass→fail | 12,148 | 3,887 | -68% | 1 | 1 | 0% | 1,884 | 1,651 | -12% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 19 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +21 percentage points is the difference between those two pass rates over the 19 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.