--- name: coderabbit-core-workflow-a description: 'Execute CodeRabbit primary workflow: automated PR code review with configuration. Use when setting up automated code reviews on pull requests, configuring review behavior, or establishing the core CodeRabbit review loop. Trigger with phrases like "coderabbit review workflow", "coderabbit PR review", "coderabbit auto review", "configure coderabbit reviews". ' allowed-tools: Read, Write, Edit, Bash(gh:*), Bash(git:*), Grep version: 1.11.0 license: MIT author: Jeremy Longshore tags: - saas - coderabbit - workflow - code-review compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw --- # CodeRabbit Core Workflow A: Automated PR Review ## Overview The primary CodeRabbit workflow: a developer opens a PR, CodeRabbit automatically analyzes the diff, posts a walkthrough summary and line-level comments, and the developer addresses feedback. This skill covers configuration, review profiles, path instructions, and the full review lifecycle. ## Prerequisites - CodeRabbit GitHub App installed (see `coderabbit-install-auth`) - `.coderabbit.yaml` in repository root - At least one PR-capable branch ## Instructions ### Step 1: Configure the Review Pipeline ```yaml # .coderabbit.yaml - Production-ready configuration language: "en-US" early_access: false reviews: profile: "assertive" # chill = less feedback, assertive = more thorough request_changes_workflow: true # CodeRabbit marks review as "changes requested" for issues high_level_summary: true # Post a walkthrough comment summarizing all changes high_level_summary_in_walkthrough: true review_status: true # Show review progress status collapse_walkthrough: false # Keep walkthrough expanded sequence_diagrams: true # Generate control flow diagrams poem: false # Disable poems in review summary auto_review: enabled: true drafts: false # Skip draft PRs base_branches: - main - develop ignore_title_keywords: - "WIP" - "DO NOT MERGE" - "chore: bump" path_filters: - "!**/*.lock" - "!**/*.snap" - "!**/generated/**" - "!dist/**" - "!**/*.min.js" - "!vendor/**" path_instructions: - path: "src/api/**" instructions: | Review for: input validation, proper HTTP status codes, auth middleware usage, error response format per RFC 7807. Flag missing error handling. - path: "src/db/**" instructions: | Review for: parameterized queries (no string concatenation), transaction boundaries, proper connection cleanup, index usage. Flag N+1 query patterns. - path: "**/*.test.*" instructions: | Review for: assertion completeness, edge case coverage, proper async handling. Do NOT comment on test naming conventions or import order. - path: ".github/workflows/**" instructions: | Review for: pinned action versions (use SHA not tag), no secrets in logs, timeout-minutes on all jobs, OIDC for cloud auth. chat: auto_reply: true # Finishing touches configuration reviews: finishing_touches: docstrings: enabled: true # Allow @coderabbitai generate-docstrings command ``` ### Step 2: Understand the Review Lifecycle ``` Developer opens/updates PR │ ▼ ┌─────────────────────────────────┐ │ CodeRabbit analyzes diff │ │ (typically 2-5 min, up to 15 │ │ min for 1000+ line PRs) │ └─────────┬───────────────────────┘ │ ├──▶ Walkthrough comment (summary + sequence diagram) │ ├──▶ Line-level comments (bugs, suggestions, improvements) │ └──▶ Review state (approved / changes_requested) │ ▼ Developer addresses feedback │ ┌─────────┴──────────┐ │ │ Reply to comment Push new commits (conversation) (incremental re-review) │ │ ▼ ▼ CodeRabbit responds CodeRabbit reviews with explanation only changed files ``` ### Step 3: Interact with Reviews ```markdown # In any PR comment: @coderabbitai full review # Re-review all files from scratch @coderabbitai summary # Regenerate walkthrough summary @coderabbitai resolve # Mark all CodeRabbit comments as resolved @coderabbitai generate-docstrings # Auto-generate docstrings for functions @coderabbitai configuration # Show current active config as YAML @coderabbitai help # List all commands # Reply to any CodeRabbit inline comment to discuss the feedback. # CodeRabbit maintains conversation context and will explain its reasoning. # In PR description, add instructions for this specific review: # "Focus on security implications of the auth changes" ``` ### Step 4: Configure Finishing Touch Recipes ```yaml # .coderabbit.yaml - Custom finishing touch recipes (open beta) finishing_touches: recipes: - name: "fix-imports" description: "Sort and organize imports" instructions: | Sort all imports alphabetically. Group: external packages first, then internal modules, then relative imports. Remove unused imports. - name: "tighten-types" description: "Replace any with specific types" instructions: | Replace all `any` types with proper TypeScript types. Use `unknown` for truly unknown values. Add type guards where needed. ``` ```markdown # Trigger recipes in a PR comment: @coderabbitai run fix-imports @coderabbitai run tighten-types # Or check the boxes in the Finishing Touches section of the walkthrough ``` ## Output - Automated review on every PR targeting configured branches - Walkthrough summary with sequence diagrams - Line-level feedback categorized by severity - Interactive conversation on review comments - Finishing touch recipes for automated code improvements ## Error Handling | Issue | Cause | Solution | |-------|-------|----------| | Review takes 15+ minutes | PR has 1000+ changed lines | Split into smaller PRs | | No review posted | PR targets non-configured branch | Add branch to `base_branches` | | Reviews on generated files | Missing path_filters | Add `!**/generated/**` to path_filters | | Too many nitpick comments | Profile set to assertive | Switch to `chill` for experienced teams | | Config changes not applied | YAML syntax error | Run `@coderabbitai configuration` to verify | | Review on draft PR | `drafts: true` in config | Set `drafts: false` to skip drafts | ## Resources - [Configuration Reference](https://docs.coderabbit.ai/reference/configuration) - [Review Commands](https://docs.coderabbit.ai/reference/review-commands) - [Finishing Touches](https://docs.coderabbit.ai/finishing-touches/index) ## Next Steps For configuration tuning and noise reduction, see `coderabbit-core-workflow-b`.