{"id":"42809a44-648d-4c08-947a-e12e9e941c41","shortId":"Zu7px3","kind":"skill","title":"coderabbit","tagline":"This skill should be used when the user asks to \"triage coderabbit\", \"check coderabbit comments\", \"analyze coderabbit review\", \"fetch coderabbit findings\", \"coderabbit PR\", \"review coderabbit suggestions\", \"run coderabbit review\", \"coderabbit review\", \"review with coderabbit\", or","description":"# CodeRabbit Review Triage\n\nFetch and analyze CodeRabbit review comments from a GitHub PR, or run a local CodeRabbit CLI review. Default mode fetches from the remote PR. Use `--local` to run the CLI against local diffs.\n\n## Arguments\n\nParse `$ARGUMENTS` for:\n\n- `<pr-number>` — integer PR number\n- `<pr-url>` — GitHub PR URL (e.g., `https://github.com/owner/repo/pull/123`), extract the PR number from the path\n- `--local` — switch to local review mode (see below)\n\n### Mode Dispatch\n\nIf `$ARGUMENTS` contains `--local`, strip it and forward remaining arguments to `references/local-review.md`. Follow that workflow instead of continuing here. All flags after `--local` (`--base`, `--base-commit`, `--type`, `--config`) are forwarded to the local workflow.\n\nOtherwise, continue with the PR comment analysis workflow below.\n\n## Prerequisites\n\nRun these checks in order. Stop at the first failure.\n\n### 1) GitHub CLI Authenticated\n\n```bash\ngh auth status\n```\n\nIf not authenticated, stop and tell the user to run `gh auth login`.\n\n### 2) Detect Repository\n\n```bash\ngh repo view --json owner,name --jq '\"\\(.owner.login)/\\(.name)\"'\n```\n\nStore the result as `{owner}/{repo}`.\n\n### 3) Resolve PR Number\n\n- If a PR number was provided as an argument, use it directly.\n- If a PR URL was provided, extract the number from the URL path.\n- If neither was provided, auto-detect from the current branch:\n\n```bash\ngh pr view --json number --jq '.number' 2>/dev/null\n```\n\nIf auto-detection fails, stop: \"No open PR found for the current branch. Provide a PR number or URL, or use `--local` for local review.\"\n\n### 4) Validate PR\n\n```bash\ngh pr view {pr_number} --json state,url --jq '\"\\(.state) \\(.url)\"'\n```\n\nIf the command fails, the PR does not exist. Report and stop. Otherwise, note the state (OPEN/MERGED/CLOSED) and URL for the report scope section.\n\n## Workflow\n\n### 1) Fetch CodeRabbit Comments\n\nFetch from three GitHub API endpoints, filtering for the CodeRabbit bot. Use `--paginate` for large PRs. The bot's login is `coderabbitai` but may appear as `coderabbitai[bot]`, so match with `startswith`.\n\n**Walkthrough/summary comments** (issue comments where CodeRabbit posts its walkthrough):\n\n```bash\ngh api \"repos/{owner}/{repo}/issues/{pr_number}/comments\" \\\n  --paginate \\\n  --jq '[.[] | select(.user.login | startswith(\"coderabbitai\"))]'\n```\n\n**Review objects** (top-level review body and state):\n\n```bash\ngh api \"repos/{owner}/{repo}/pulls/{pr_number}/reviews\" \\\n  --paginate \\\n  --jq '[.[] | select(.user.login | startswith(\"coderabbitai\"))]'\n```\n\n**Inline review comments** (file-level comments with path and line info):\n\n```bash\ngh api \"repos/{owner}/{repo}/pulls/{pr_number}/comments\" \\\n  --paginate \\\n  --jq '[.[] | select(.user.login | startswith(\"coderabbitai\"))]'\n```\n\nIf no CodeRabbit comments are found across all three endpoints, report \"No CodeRabbit review found on PR #{pr_number}\" and stop.\n\n### 2) Parse Comments into Findings\n\nProcess the raw API responses into a normalized list of findings:\n\n- **From inline comments** (`pulls/{pr}/comments`): Each comment becomes a finding with `path` (from `.path`), `line` (from `.line` or `.original_line`), `body` (the comment text), `diff_hunk` (surrounding context), and `source: \"inline\"`. These are the primary source of actionable findings.\n- **From review bodies** (`pulls/{pr}/reviews`): Parse each review's `body` for actionable items. Extract individual suggestions. Mark `source: \"review\"`.\n- **From issue comments** (`issues/{pr}/comments`): Parse for file-level summaries and actionable items within the walkthrough. Mark `source: \"walkthrough\"`.\n\nInline comments are the primary source of actionable findings. Review summaries and walkthrough comments provide context and may surface additional actionable items not tied to specific lines.\n\n### 3) Triage Findings\n\nLoad `references/triage.md` and follow the shared triage process — categorize, classify, confirm ambiguous, generate fix plan, and report.\n\n## Stop Conditions\n\nStop and ask for direction when:\n\n- `gh` CLI is not authenticated.\n- The PR does not exist or is not accessible.\n- No CodeRabbit comments found on the PR.\n- Auto-detection fails and no PR number was provided.\n- A finding requires architectural changes beyond the PR's scope.\n- Classification confidence is low for code on critical paths (auth, payments, data integrity).","tags":["coderabbit","agent","skills","paulrberg","agent-skills","ai-agents"],"capabilities":["skill","source-paulrberg","skill-coderabbit","topic-agent-skills","topic-ai-agents"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/PaulRBerg/agent-skills/coderabbit","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add PaulRBerg/agent-skills","source_repo":"https://github.com/PaulRBerg/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.475","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 50 github stars · SKILL.md body (4,365 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:17.874Z","embedding":null,"createdAt":"2026-04-18T22:17:39.936Z","updatedAt":"2026-04-22T00:56:17.874Z","lastSeenAt":"2026-04-22T00:56:17.874Z","tsv":"'/comments':369,422,471,531 '/dev/null':248 '/issues':366 '/owner/repo/pull/123':86 '/pulls':391,419 '/reviews':394,511 '1':159,315 '2':180,247,450 '3':199,574 '4':275 'access':615 'across':435 'action':504,518,539,554,567 'addit':566 'ambigu':588 'analysi':145 'analyz':17,42 'api':323,362,387,415,458 'appear':343 'architectur':636 'argument':73,75,105,113,211 'ask':10,598 'auth':165,178,652 'authent':162,169,606 'auto':233,251,624 'auto-detect':232,250,623 'base':127,129 'base-commit':128 'bash':163,183,239,278,360,385,413 'becom':474 'beyond':638 'bodi':382,487,508,516 'bot':329,336,346 'branch':238,262 'categor':585 'chang':637 'check':14,151 'classif':643 'classifi':586 'cli':55,69,161,603 'code':648 'coderabbit':1,13,15,18,21,23,26,29,31,35,37,43,54,317,328,356,431,441,617 'coderabbitai':340,345,375,400,428 'command':292 'comment':16,45,144,318,352,354,403,407,432,452,468,473,489,528,548,560,618 'commit':130 'condit':595 'confid':644 'config':132 'confirm':587 'contain':106 'context':494,562 'continu':121,140 'critic':650 'current':237,261 'data':654 'default':57 'detect':181,234,252,625 'diff':72,491 'direct':214,600 'dispatch':103 'e.g':83 'endpoint':324,438 'exist':298,611 'extract':87,221,520 'fail':253,293,626 'failur':158 'fetch':20,40,59,316,319 'file':405,535 'file-level':404,534 'filter':325 'find':22,454,465,476,505,555,576,634 'first':157 'fix':590 'flag':124 'follow':116,580 'forward':111,134 'found':258,434,443,619 'generat':589 'gh':164,177,184,240,279,361,386,414,602 'github':48,80,160,322 'github.com':85 'github.com/owner/repo/pull/123':84 'hunk':492 'individu':521 'info':412 'inlin':401,467,497,547 'instead':119 'integ':77 'integr':655 'issu':353,527,529 'item':519,540,568 'jq':190,245,287,371,396,424 'json':187,243,284 'larg':333 'level':380,406,536 'line':411,481,483,486,573 'list':463 'load':577 'local':53,65,71,94,97,107,126,137,271,273 'login':179,338 'low':646 'mark':523,544 'match':348 'may':342,564 'mode':58,99,102 'name':189,192 'neither':229 'normal':462 'note':303 'number':79,90,202,206,223,244,246,266,283,368,393,421,447,630 'object':377 'open':256 'open/merged/closed':306 'order':153 'origin':485 'otherwis':139,302 'owner':188,197,364,389,417 'owner.login':191 'pagin':331,370,395,423 'pars':74,451,512,532 'path':93,227,409,478,480,651 'payment':653 'plan':591 'post':357 'pr':24,49,63,78,81,89,143,201,205,217,241,257,265,277,280,282,295,367,392,420,445,446,470,510,530,608,622,629,640 'prerequisit':148 'primari':501,551 'process':455,584 'provid':208,220,231,263,561,632 'prs':334 'pull':469,509 'raw':457 'references/local-review.md':115 'references/triage.md':578 'remain':112 'remot':62 'repo':185,198,363,365,388,390,416,418 'report':299,311,439,593 'repositori':182 'requir':635 'resolv':200 'respons':459 'result':195 'review':19,25,30,32,33,38,44,56,98,274,376,381,402,442,507,514,525,556 'run':28,51,67,149,176 'scope':312,642 'section':313 'see':100 'select':372,397,425 'share':582 'skill':3 'skill-coderabbit' 'sourc':496,502,524,545,552 'source-paulrberg' 'specif':572 'startswith':350,374,399,427 'state':285,288,305,384 'status':166 'stop':154,170,254,301,449,594,596 'store':193 'strip':108 'suggest':27,522 'summari':537,557 'surfac':565 'surround':493 'switch':95 'tell':172 'text':490 'three':321,437 'tie':570 'top':379 'top-level':378 'topic-agent-skills' 'topic-ai-agents' 'triag':12,39,575,583 'type':131 'url':82,218,226,268,286,289,308 'use':6,64,212,270,330 'user':9,174 'user.login':373,398,426 'valid':276 'view':186,242,281 'walkthrough':359,543,546,559 'walkthrough/summary':351 'within':541 'workflow':118,138,146,314","prices":[{"id":"085fd319-a4bf-43f0-9110-2e9eaaeba3f4","listingId":"42809a44-648d-4c08-947a-e12e9e941c41","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"PaulRBerg","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:17:39.936Z"}],"sources":[{"listingId":"42809a44-648d-4c08-947a-e12e9e941c41","source":"github","sourceId":"PaulRBerg/agent-skills/coderabbit","sourceUrl":"https://github.com/PaulRBerg/agent-skills/tree/main/skills/coderabbit","isPrimary":false,"firstSeenAt":"2026-04-18T22:17:39.936Z","lastSeenAt":"2026-04-22T00:56:17.874Z"}],"details":{"listingId":"42809a44-648d-4c08-947a-e12e9e941c41","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"PaulRBerg","slug":"coderabbit","github":{"repo":"PaulRBerg/agent-skills","stars":50,"topics":["agent-skills","ai-agents"],"license":"mit","html_url":"https://github.com/PaulRBerg/agent-skills","pushed_at":"2026-04-20T16:22:56Z","description":"PRB's collection of agent skills","skill_md_sha":"df178714c185fdcff72eeb8dda30f01478fa80bb","skill_md_path":"skills/coderabbit/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/PaulRBerg/agent-skills/tree/main/skills/coderabbit"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"coderabbit","description":"This skill should be used when the user asks to \"triage coderabbit\", \"check coderabbit comments\", \"analyze coderabbit review\", \"fetch coderabbit findings\", \"coderabbit PR\", \"review coderabbit suggestions\", \"run coderabbit review\", \"coderabbit review\", \"review with coderabbit\", or mentions analyzing CodeRabbit PR comments or running CodeRabbit CLI review locally."},"skills_sh_url":"https://skills.sh/PaulRBerg/agent-skills/coderabbit"},"updatedAt":"2026-04-22T00:56:17.874Z"}}