Claude-code-plugins coderabbit-prod-checklist
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/coderabbit-pack/skills/coderabbit-prod-checklist" ~/.claude/skills/jeremylongshore-claude-code-plugins-coderabbit-prod-checklist && rm -rf "$T"
manifest:
plugins/saas-packs/coderabbit-pack/skills/coderabbit-prod-checklist/SKILL.mdsource content
CodeRabbit Production Checklist
Overview
Complete checklist for deploying CodeRabbit as a production merge gate. Covers the transition from "optional AI review" to "required status check that blocks merges." Ensures configuration is tuned, team is onboarded, and fallback procedures are documented.
Prerequisites
- CodeRabbit installed and running in non-blocking mode for 1-2 weeks
- Team has seen CodeRabbit reviews and provided feedback
tuned based on pilot feedback.coderabbit.yaml- GitHub organization admin access
Instructions
Step 1: Pre-Launch Configuration Audit
# Run through each item before going live: ## App Installation - [ ] CodeRabbit GitHub App installed on all target repos - [ ] Repository access scoped correctly (all repos vs select) - [ ] Seat assignment policy set (active committers vs manual) - [ ] Bot accounts excluded from seats (dependabot, renovate) ## Configuration - [ ] `.coderabbit.yaml` committed to main branch - [ ] YAML syntax validated (no parse errors) - [ ] `auto_review.enabled: true` - [ ] `auto_review.drafts: false` (skip draft PRs) - [ ] `base_branches` includes all target branches (main, develop) - [ ] `path_filters` excludes generated/lock/vendor files - [ ] `path_instructions` configured for key directories - [ ] `chat.auto_reply: true` ## Review Behavior - [ ] Profile set to "assertive" (or team's preferred level) - [ ] `request_changes_workflow` decision documented: - `true`: CodeRabbit blocks merge when issues found - `false`: CodeRabbit only comments (non-blocking) - [ ] Org-level defaults in `.github/.coderabbit.yaml` if multi-repo
Step 2: Validate Configuration
set -euo pipefail echo "=== CodeRabbit Production Readiness Check ===" # 1. YAML syntax echo "--- Config Validation ---" if [ -f .coderabbit.yaml ]; then python3 -c " import yaml, sys try: config = yaml.safe_load(open('.coderabbit.yaml')) print('YAML syntax: PASS') reviews = config.get('reviews', {}) auto = reviews.get('auto_review', {}) checks = { 'auto_review.enabled': auto.get('enabled', False) == True, 'auto_review.drafts': auto.get('drafts', True) == False, 'path_filters configured': len(reviews.get('path_filters', [])) > 0, 'path_instructions configured': len(reviews.get('path_instructions', [])) > 0, 'chat.auto_reply': config.get('chat', {}).get('auto_reply', False) == True, } for name, passed in checks.items(): status = 'PASS' if passed else 'WARN' print(f' {name}: {status}') if all(checks.values()): print('Overall: READY FOR PRODUCTION') else: print('Overall: Review warnings above before going live') except yaml.YAMLError as e: print(f'YAML syntax: FAIL ({e})') sys.exit(1) " 2>&1 else echo "FAIL: .coderabbit.yaml not found" fi
Step 3: Verify Review History
set -euo pipefail OWNER="${1:-your-org}" REPO="${2:-your-repo}" echo "" echo "--- Review History Check ---" REVIEWED=0 TOTAL=0 for PR_NUM in $(gh api "repos/$OWNER/$REPO/pulls?state=all&per_page=20" --jq '.[].number'); do TOTAL=$((TOTAL + 1)) CR=$(gh api "repos/$OWNER/$REPO/pulls/$PR_NUM/reviews" \ --jq '[.[] | select(.user.login=="coderabbitai[bot]")] | length' 2>/dev/null || echo "0") [ "$CR" -gt 0 ] && REVIEWED=$((REVIEWED + 1)) done echo "Coverage: $REVIEWED/$TOTAL PRs reviewed by CodeRabbit" if [ "$TOTAL" -gt 0 ] && [ "$((REVIEWED * 100 / TOTAL))" -lt 80 ]; then echo "WARNING: Coverage below 80%. Check base_branches and ignore_title_keywords." else echo "Coverage: PASS" fi
Step 4: Team Readiness Checklist
## Team Onboarding - [ ] Team briefed on CodeRabbit (what it does, how to interact) - [ ] Quick reference shared: - `@coderabbitai full review` — re-review from scratch - `@coderabbitai summary` — regenerate walkthrough - `@coderabbitai resolve` — mark all comments resolved - `@coderabbitai help` — list all commands - [ ] Team knows to reply to comments to train learnings - [ ] "WIP" in PR title skips review (documented) - [ ] Escalation path defined for false positives ## Fallback Procedures - [ ] Admin merge bypass documented (for emergencies) - [ ] Process for temporarily disabling CodeRabbit: 1. Remove from branch protection required checks 2. Set `auto_review.enabled: false` in config 3. Or uninstall the GitHub App from the repo - [ ] Contact info for CodeRabbit support documented
Step 5: Enable as Required Check
set -euo pipefail OWNER="${1:-your-org}" REPO="${2:-your-repo}" echo "" echo "--- Enabling CodeRabbit as Required Check ---" # Update branch protection to require CodeRabbit gh api "repos/$OWNER/$REPO/branches/main/protection" \ --method PUT \ --field 'required_status_checks={"strict":true,"contexts":["coderabbitai"]}' \ --field 'required_pull_request_reviews={"required_approving_review_count":1}' \ --field 'enforce_admins=false' \ --field 'restrictions=null' echo "DONE: CodeRabbit is now a required check on $OWNER/$REPO main branch" echo "" echo "To revert (emergency):" echo " gh api repos/$OWNER/$REPO/branches/main/protection --method DELETE"
Step 6: Update .coderabbit.yaml for Production
# .coderabbit.yaml - Production configuration language: "en-US" early_access: false reviews: profile: "assertive" request_changes_workflow: true # NOW blocking (was false during pilot) high_level_summary: true high_level_summary_in_walkthrough: true review_status: true collapse_walkthrough: false sequence_diagrams: true poem: false auto_review: enabled: true drafts: false base_branches: - main - develop ignore_title_keywords: - "WIP" - "DO NOT MERGE" - "chore: bump" path_filters: - "!**/*.lock" - "!**/*.snap" - "!**/generated/**" - "!dist/**" - "!vendor/**" path_instructions: - path: "src/api/**" instructions: "Review for input validation, auth middleware, error handling." - path: "src/db/**" instructions: "Review for parameterized queries, transactions, N+1 patterns." - path: "**/*.test.*" instructions: "Review for edge cases and assertion completeness. Skip style." chat: auto_reply: true
Step 7: Post-Launch Monitoring
# First 48 hours after go-live: ## Monitor: - [ ] All PRs to main are getting CodeRabbit reviews - [ ] No PRs blocked by CodeRabbit timeout (> 15 min) - [ ] Team is not overwhelmed by review volume - [ ] No legitimate emergency PRs blocked ## Week 1 review: - [ ] Review coverage > 90% - [ ] No team complaints about false positives - [ ] Learnings being created from feedback - [ ] Emergency bypass has not been needed (or was used correctly)
Output
- Configuration audited and validated
- Review history confirms adequate coverage
- Team onboarded with quick reference guide
- CodeRabbit enabled as required status check
- Fallback and emergency procedures documented
- Post-launch monitoring plan in place
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| PRs stuck waiting for review | CodeRabbit outage | Check status.coderabbit.ai; use admin bypass |
| All PRs blocked | too aggressive | Temporarily set to |
| Team pushback | Too many comments | Switch to profile |
| Emergency PR blocked | Required check blocking | Admin merge bypass or remove required check |
| Config not loading | YAML error | Run to diagnose |
Resources
Next Steps
For ongoing monitoring, see
coderabbit-observability.