26 KiB
name, description
| name | description |
|---|---|
| coderabbit-feedback | Use when CodeRabbit AI has posted review comments on a PR - interactively classify feedback by severity, discuss recommendations with user, apply agreed changes, and ensure mandatory commit and PR comment workflow with verification |
CodeRabbit Feedback
Overview
Interactive processing of CodeRabbit AI review comments through user conversation: collect and classify feedback, discuss CRITICAL/MAJOR items for immediate action, analyze MINOR items with recommendations, and complete workflow with verified git commits and PR comments.
Core principle: Interactive severity-based workflow with user conversation (collect → discuss → apply together → verify completion).
When to Use
Use when:
- CodeRabbit has posted review comments on your current PR
- You need to process AI feedback with user input
- You want to discuss which suggestions to apply
- You need guided review with recommendations and rationale
Don't use when:
- No PR exists or no CodeRabbit comments
- Uncommitted changes exist (must commit first)
- Fully automated processing without interaction is required
Quick Reference
| Phase | Mode | Key Actions |
|---|---|---|
| Collection | Auto | Pre-check → Discover PR → Collect 200 comments → Filter & Classify |
| Discussion | Interactive | Present items → Get user decisions → Analyze MINOR with rationale |
| Application | Auto | Apply agreed changes → Commit & Push |
| Verification | Auto | Post PR comment → Verify @coderabbitai resolve tag |
Severity Classification
CRITICAL (Immediate Discussion Required)
- Security: SQL injection, XSS, CSRF, auth bypass, sensitive data exposure
- Data Loss: Destructive operations, cascade deletes, corruption risks
- Breaking Bugs: Nil pointer errors, type crashes, unhandled exceptions
- Critical Logic: Payment errors, authorization failures, data integrity violations
MAJOR (Important Discussion)
- Performance: N+1 queries, memory leaks, slow algorithms, missing indexes
- Resource Issues: File handle leaks, connection pool exhaustion, unbounded loops
- Significant Bugs: Wrong calculations, incorrect validations, race conditions
- Production Impact: High error rates, significant user impact, reliability issues
MINOR (Analyze & Recommend)
- Code Quality: Variable naming, method extraction, DRY violations
- Style: Formatting preferences, comment style, code organization
- Documentation: Missing comments, outdated docs, unclear naming
- Speculative: "Could be", "might consider", optional improvements
ALWAYS SKIP (Never Process)
- Comments with resolution markers: ✅☑️🟢 or "resolved", "fixed", "applied"
- Threads with
@coderabbitai resolvecommand - Developer confirmation replies: "Applied", "Done", "Fixed"
- Duplicate suggestions (process once only)
Language Detection
IMPORTANT: Detect and use user's preferred language for all communication.
Detection priority (check in order):
- User's current messages - What language is the user speaking in this conversation?
- Project context - Check CLAUDE.md, README.md, recent commits for language patterns
- Git history -
git log --oneline -5to see commit message language - Default - If no clear indication, use English
Apply detected language to:
- All conversational messages with user
- PR comment content
- Reports and summaries
- Error messages and warnings
- Status updates
Always keep in English:
- Code examples
- Bash commands and scripts
- File paths
- Technical API calls
Language variable usage in templates:
[In user's language] ← This marker means content should be in detected language
Example detection:
# User writes in Korean → Use Korean
# User writes in English → Use English
# User writes in Spanish → Use Spanish
# No clear signal → Use English (default)
- Apply agreed changes
- Commit and push changes
- Post PR comment with verification
3. **Discover PR**: Find current PR from branch
```bash
BRANCH=$(git branch --show-current)
gh pr list --head "$BRANCH" --json number,title,url
-
Collect Comments with Pagination (up to 200 comments):
Method 1: GraphQL with Pagination (Recommended)
get_all_comments() { local pr_number=$1 local owner=$2 local repo=$3 local cursor="" local has_next=true local all_comments="[]" while [ "$has_next" = "true" ]; do local query='query($owner:String!, $repo:String!, $number:Int!, $cursor:String) { repository(owner:$owner, name:$repo) { pullRequest(number:$number) { comments(first:100, after:$cursor) { pageInfo { hasNextPage endCursor } nodes { id author { login } body createdAt replies(first:10) { nodes { author { login } body createdAt } } } } } } }' local result=$(gh api graphql -f query="$query" \ -F owner="$owner" -F repo="$repo" -F number="$pr_number" \ ${cursor:+-F cursor="$cursor"}) local page_comments=$(echo "$result" | jq '.data.repository.pullRequest.comments.nodes') all_comments=$(echo "$all_comments" | jq ". + $page_comments") has_next=$(echo "$result" | jq -r '.data.repository.pullRequest.comments.pageInfo.hasNextPage') cursor=$(echo "$result" | jq -r '.data.repository.pullRequest.comments.pageInfo.endCursor') [ "$has_next" = "false" ] && break [ $(echo "$all_comments" | jq 'length') -ge 200 ] && break done echo "$all_comments" | jq 'sort_by(.createdAt) | reverse | .[:200]' }Method 2: REST API with Pagination (Alternative)
get_all_comments_rest() { local pr_number=$1 local page=1 local per_page=100 local all_comments="[]" while [ $page -le 2 ]; do # Max 2 pages = 200 comments local result=$(gh api "repos/$OWNER/$REPO/issues/$pr_number/comments?per_page=$per_page&page=$page") [ "$(echo "$result" | jq 'length')" -eq 0 ] && break all_comments=$(echo "$all_comments" | jq ". + $result") ((page++)) done echo "$all_comments" | jq 'sort_by(.created_at) | reverse | .[:200]' } -
Filter: Process only unresolved CodeRabbit comments
- Filter for author containing "coderabbitai" or "bot"
- Exclude bodies with: "resolved", "fixed", "applied", "@coderabbitai resolve"
- Check entire thread (including replies) for resolution markers
- Sort by recency (newest first)
-
Classify: Assign severity to each actionable item
- Extract file path, line number, and specific change
- Match against severity criteria (CRITICAL > MAJOR > MINOR)
- Skip summaries without actionable items
Phase 2: Interactive Discussion
Step 2.1 - Present Summary and CRITICAL/MAJOR Items:
[In user's language]
Found feedback: 23 items total
- CRITICAL: 2 items (security vulnerability 1, data loss risk 1)
- MAJOR: 5 items (performance issues 3, significant bugs 2)
- MINOR: 16 items (code quality improvements)
## Items Requiring Immediate Attention (CRITICAL/MAJOR 7 items)
### CRITICAL
1. `auth/login.ts:45` - SQL Injection vulnerability
- Issue: User input directly in query
- Suggestion: Use prepared statements
- Risk: ⚠️ High (security)
2. `data/sync.ts:89` - Data loss risk
- Issue: Sequential deletes without transaction
- Suggestion: Add transaction wrapper
- Risk: ⚠️ High (data integrity)
### MAJOR
3. `api/users.ts:123` - N+1 query problem
- Issue: Individual queries in loop
- Suggestion: Use eager loading for batch retrieval
- Impact: Performance (currently 101 queries for 100 items)
4. `cache/redis.ts:56` - Memory leak
- Issue: Missing connection close
- Suggestion: Add close() in finally block
- Impact: Resource exhaustion
[...more items]
How would you like to proceed?
- [1] Apply all (recommended - CRITICAL/MAJOR are mandatory fixes)
- [2] Review individually (confirm each item)
- [3] See details first
- [4] Start with MINOR analysis
Step 2.2 - Individual Selection Mode (Option 2):
[In user's language]
Reviewing each item individually.
[1/7] CRITICAL: `auth/login.ts:45` - SQL Injection vulnerability
Current code:
```typescript
const user = await db.query(
`SELECT * FROM users WHERE email = '${email}'`
);
Suggested change:
const user = await db.query(
'SELECT * FROM users WHERE email = $1',
[email]
);
CodeRabbit Analysis:
- SQL Injection attack possible
- Risk of full data breach with malicious input
Severity: ⚠️ CRITICAL (immediate fix required)
Apply this change? [Y/n/skip]
Y
✅ Added to apply list
[2/7] CRITICAL: data/sync.ts:89 - Data loss risk
[...]
**Step 2.3 - MINOR Analysis & Recommendations:**
[In user's language]
✅ CRITICAL/MAJOR selection complete (7 items)
Now analyzing 16 MINOR recommendations. Reviewing each item to provide application recommendations.
[Analyzing...]
MINOR Recommendations Analysis Complete
✅ Recommended to Apply (4 items)
Items with clear improvement benefits.
-
utils/format.ts:34- Variable name clarification (data→formattedUserData)- Rationale: Improved type inference, better readability, avoids conflicts with other data variables in scope
- Impact: Very low (variable rename only, 5 lines)
- Expected benefit: Increased code comprehension, easier maintenance
- Recommendation: ✅ Apply
-
api/response.ts:67- Error handling improvement- Current: try-catch만 있고 에러 로깅 없음
- Suggestion: logger.error() 추가
- Rationale: 프로덕션 디버깅 시 에러 추적 불가능
- Impact: 낮음 (1줄 추가)
- Expected benefit: 문제 발생 시 빠른 원인 파악
- recommended: ✅ applied / apply
-
models/user.ts:123- Remove type assertion- Current:
as User강제 캐스팅 - Suggestion: 타입 가드 함수 사용
- Rationale: 런타임 타입 불일치 위험
- Impact: 중간 (타입 가드 함수 추가 필요, 10줄)
- Expected benefit: 타입 안정성 증가
- recommended: ✅ applied / apply
- Current:
-
services/notification.ts:45- Extract magic number to constant- Current:
setTimeout(() => ..., 5000) - Suggestion:
const RETRY_DELAY_MS = 5000 - Rationale: 의미 명확화, 재사용 가능
- Impact: 매우 낮음 (상수 선언 1줄)
- Expected benefit: 코드 가독성, 설정 변경 용이
- recommended: ✅ applied / apply
- Current:
🔄 선택 applied / apply (9items)
프로젝트 스타일이나 향후 확장성에 따라 결정할 사항들입니다.
-
components/Button.tsx:89- Function extraction suggestion- Current: 25줄 단일 함수
- Suggestion: 3개 함수로 분리 (렌더링/이벤트/스타일)
- Assessment: 현재도 충분히 읽기 쉬움, 분리 시 오버헤드 발생
- recommended: 🔄 향후 기능 추가 시 고려 (현재는 Unnecessary)
-
hooks/useAuth.ts:34- Extract custom hook- Current: 동일 패턴 3곳에서 반복
- Suggestion: useAuthCheck 훅으로 추출
- Assessment: 추상화 이득 vs 복잡도 증가 trade-off
- recommended: 🔄 4개 이상 반복 시 고려
-
api/middleware.ts:78- Detailed error messages- Current: "Invalid request"
- Suggestion: "Invalid request: missing required field 'email'"
- Assessment: 보안과 사용성 사이 균형 문제
- recommended: 🔄 프로젝트 정책에 따라 결정
[... 더 많은 선택 applied / apply 항목]
❌ Unnecessary (3items)
applied / apply하지 않는 것이 더 좋은 항목들입니다.
-
config/db.ts:12- Add comments suggestion- Suggestion: 각 설정값에 주석 설명 추가
- Assessment: 코드가 충분히 자명하며, Excessive comments은 유지보수 부담
- Rationale:
- 설정명이 명확 (
maxConnections,timeoutMs) - 타입과 기본값이 문서화 역할
- 주석은 왜를 설명해야 하는데 무엇을 반복
- 설정명이 명확 (
- recommended: ❌ Unnecessary
-
utils/array.ts:56- Lodash 사용 제안- Current: 네이티브 map/filter 체이닝
- Suggestion: Lodash chain 사용
- Assessment: Unnecessary dependency 추가
- Rationale:
- 네이티브 메서드로 충분히 명확
- 번들 사이즈 증가 (수십 KB)
- 팀원 모두 네이티브 메서드에 익숙
- recommended: ❌ Unnecessary
-
tests/user.test.ts:123- Add test cases 제안- Suggestion: 엣지 케이스 10개 추가
- Assessment: 과도한 테스트, 실용성 낮음
- Rationale:
- 제안된 케이스들이 실제 발생 가능성 극히 낮음
- 테스트 유지보수 비용 증가
- 핵심 시나리오는 이미 커버
- recommended: ❌ Unnecessary
processing 방안 제안
즉시 applied / apply recommended: CRITICAL 2items + MAJOR 5items + MINOR applied / applyrecommended 4items = 11items Consider in future: MINOR 선택applied / apply 9items applied / apply 안 함: MINOR Unnecessary 3items
How would you like to proceed?
- [1] recommended사항 모두 applied / apply (11items) - 추천
- [2] CRITICAL/MAJOR만 applied / apply (7items)
- [3] 개별 선택 (원하는 항목만 선택)
- [4] 선택 applied / apply 항목도 함께 review
- [5] 전체 중단
[사용자 선택 대기]
**Step 2.4 - Individual Selection for MINOR (Option 3 or 4):**
3
개별 선택 모드로 진행하겠습니다. 먼저 CRITICAL/MAJOR부터 확인합니다. (강력 recommended)
[CRITICAL/MAJOR 7items 개별 확인... 위의 2.2 과정]
이제 MINOR applied / apply recommended 항목을 확인하시겠습니까? [Y/n]
Y
[recommended 1/4] utils/format.ts:34 - 변수명 명확화
현재 코드:
function formatUser(raw: any) {
const data = {
name: raw.userName,
email: raw.userEmail
};
return data;
}
제안 변경:
function formatUser(raw: any) {
const formattedUserData = {
name: raw.userName,
email: raw.userEmail
};
return formattedUserData;
}
analysis / analyzing:
- ✅ 가독성 향상 확실
- ✅ 영향 범위 최소 (5줄)
- ✅ 부작용 없음
- ✅ 다른 data 변수와 구분 명확
applied / apply하시겠습니까? [Y/n/skip/detail]
Y
✅ applied / apply 목록에 추가
[recommended 2/4] api/response.ts:67 - Error handling improvement
[...]
**Step 2.5 - Final Confirmation:**
최종 processing 요약
✅ applied / apply 예정: 11items
- CRITICAL: 2items
- auth/login.ts:45 - SQL Injection 수정
- data/sync.ts:89 - 트랜잭션 추가
- MAJOR: 5items
- api/users.ts:123 - N+1 쿼리 해결
- cache/redis.ts:56 - 메모리 누수 수정
- [...3items 더]
- MINOR (applied / apply recommended): 4items
- utils/format.ts:34 - 변수명 명확화
- api/response.ts:67 - 에러 로깅 추가
- models/user.ts:123 - 타입 가드 사용
- services/notification.ts:45 - Extract magic number to constant
🔄 skipped - Consider in future: 9items
- components/Button.tsx:89 - 함수 분리 (현재 복잡도 적정)
- hooks/useAuth.ts:34 - 커스텀 훅 (반복 3회, 4회부터 고려)
- [...7items 더]
❌ skipped - Unnecessary: 3items
- config/db.ts:12 - Excessive comments (코드가 자명)
- utils/array.ts:56 - Unnecessary dependency 추가
- tests/user.test.ts:123 - 과도한 엣지 케이스
Proceed as planned?
- [1] 예, 진행 (11items applied / apply)
- [2] review 내용 수정 (추가/제거)
- [3] 전체 중단
[사용자 선택 대기]
### Phase 3: Application & Completion (Automatic with Verification)
**Step 3.1 - Apply Changes:**
changes을 applied / apply하겠습니다.
[1/11] CRITICAL: auth/login.ts:45 - SQL Injection 수정 ✅ complete / completed
[2/11] CRITICAL: data/sync.ts:89 - 트랜잭션 추가 ✅ complete / completed
[3/11] MAJOR: api/users.ts:123 - N+1 쿼리 해결 ✅ complete / completed
[...]
[11/11] MINOR: services/notification.ts:45 - 상수화 ✅ complete / completed
✅ 모든 changes applied / apply complete / completed (11/11)
**Step 3.2 - Commit & Push:**
changes을 commit하고 push합니다.
commit 메시지: "fix: Apply CodeRabbit feedback
- CRITICAL: SQL injection, transaction safety
- MAJOR: N+1 queries, memory leaks, resource handling
- MINOR: Code quality improvements
Applied 11 items (2 critical, 5 major, 4 minor recommended)"
[실행] git add . ✅ Staged 6 files
[실행] git commit -m "..." ✅ Commit created: a1b2c3d
[실행] git push ✅ Pushed to origin/coderabbit-review-skill
모든 changes이 commit되고 push되었습니다.
**Step 3.3 - Generate & Review PR Comment:**
PR에 post할 코멘트를 작성했습니다.
@coderabbitai resolve
CodeRabbit 피드백 processing complete / completed
applied / apply complete / completed (11items)
CRITICAL (2items)
auth/login.ts:45- SQL Injection 취약점 수정 (Prepared statement applied / apply)data/sync.ts:89- 트랜잭션 추가로 데이터 손실 위험 제거
MAJOR (5items)
api/users.ts:123- N+1 쿼리 해결 (eager loading으로 101→1 쿼리 감소)cache/redis.ts:56- 메모리 누수 수정 (finally 블록 추가)services/payment.ts:234- 결제 실패 시 롤백 로직 추가api/search.ts:89- 인덱스 누락 경고 해결 (복합 인덱스 추가)workers/job.ts:156- 무한 루프 위험 제거 (최대 재시도 횟수 설정)
MINOR - applied / apply recommended (4items)
utils/format.ts:34- 변수명 명확화 (data → formattedUserData)api/response.ts:67- 에러 로깅 추가models/user.ts:123- 타입 가드 사용으로 안정성 향상services/notification.ts:45- Extract magic number to constant
review complete / completed - applied / apply 안 함 (12items)
Consider in future 항목 (9items)
components/Button.tsx:89- Function extraction suggestion (현재 복잡도 적정)hooks/useAuth.ts:34- Extract custom hook (반복 3회, 4회부터 고려)api/middleware.ts:78- Detailed error messages (보안 정책 review 필요)utils/validator.ts:45- 정규식 성능 최적화 (현재 사용량에서 영향 미미)components/Modal.tsx:123- 접근성 속성 추가 (다음 스프린트 일괄 applied / apply 예정)services/cache.ts:67- 캐시 무효화 전략 개선 (아키텍처 논의 후 결정)api/pagination.ts:34- 커서 기반 페이지네이션 (현재 offset 방식 충분)tests/integration/api.test.ts:89- 테스트 격리 개선 (리팩토링 시 함께 진행)docs/api.md:12- API 문서 업데이트 (다음 릴리스 전 일괄 작업)
Unnecessary (3items)
config/db.ts:12- Excessive comments 추가 (코드가 충분히 자명함)utils/array.ts:56- Lodash 사용 제안 (Unnecessary dependency, 네이티브로 충분)tests/user.test.ts:123- 극단적 엣지 케이스 테스트 (실용성 낮음)
Statistics
- Total 23items review
- applied / apply: 11items (CRITICAL 2 + MAJOR 5 + MINOR 4)
- Consider in future: 9items
- Unnecessary: 3items
이 코멘트를 PR에 post하시겠습니까?
- [1] 예, post
- [2] 내용 수정
- [3] post 안 함 (recommended하지 않음)
[사용자 선택 대기]
**Step 3.4 - Edit Mode (Option 2):**
2
코멘트를 어떻게 수정하시겠습니까?
- [1] applied / apply 항목 설명 추가/수정
- [2] items너뛴 항목 설명 추가/수정
- [3] 직접 편집 (전체 텍스트)
- [4] 취소하고 그대로 post
1
applied / apply 항목 중 수정할 항목의 번호나 파일명을 입력하세요: (예: "1", "auth/login.ts:45", 또는 "done"으로 complete / completed)
api/users.ts:123
현재 설명: "N+1 쿼리 해결 (eager loading으로 101→1 쿼리 감소)"
새 설명을 입력하세요: (빈 줄 입력 시 현재 유지)
N+1 쿼리 해결 (includes를 사용한 eager loading으로 성능 개선)
✅ 업데이트 complete / completed
다음 항목? (번호/파일명 또는 "done")
done
수정된 코멘트를 확인하시겠습니까? [Y/n]
Y
[수정된 코멘트 전체 다시 표시]
post하시겠습니까? [Y/n/edit]
Y
**Step 3.5 - Post & Verify:**
PR 코멘트를 post하고 검증합니다.
[실행] gh pr comment 123 --body "..." ✅ 코멘트 post 성공
[대기] GitHub API 동기화 중... (2초)
[검증 1/3] 최신 코멘트 조회 중... ✅ 코멘트 확인
[검증 2/3] @coderabbitai resolve 태그 존재 확인... ✅ 태그 확인
[검증 3/3] 코멘트 내용 무결성 확인... ✅ 모든 섹션 포함 확인
✅ 모든 단계 complete / completed! 🎉
최종 요약
- ✅ 11items 코드 변경 applied / apply
- ✅ changes commit 및 push (a1b2c3d)
- ✅ PR 코멘트 post 및 검증
- ✅ CodeRabbit 해결 마킹 complete / completed
processing 내용:
- CRITICAL: 2items (보안 취약점, 데이터 손실 위험 해결)
- MAJOR: 5items (성능 및 중요 버그 수정)
- MINOR: 4items (코드 품질 개선)
Consider in future 항목 9items은 적절한 시점에 review하시면 됩니다.
## The Iron Law: PR Comment is MANDATORY
**PR comment with @coderabbitai resolve is NOT optional.**
### Triple Verification System
1. **Create Dedicated TodoWrite Item:**
- Post @coderabbitai resolve comment to PR (MANDATORY)
2. **Post Comment:**
```bash
gh pr comment "$PR_NUMBER" --body "$(cat <<'COMMENT_EOF'
@coderabbitai resolve
## CodeRabbit 피드백 processing complete / completed
[내용...]
COMMENT_EOF
)"
-
Immediate Verification (3 Checks):
# Check 1: Command succeeded if [ $? -ne 0 ]; then echo "❌ CRITICAL: Comment post failed" # Retry logic fi # Wait for API sync sleep 2 # Check 2: Comment exists LAST_COMMENT=$(gh pr view "$PR_NUMBER" --json comments --jq '.comments[-1].body') # Check 3: Contains resolve tag if ! echo "$LAST_COMMENT" | grep -q "@coderabbitai resolve"; then echo "❌ CRITICAL: PR comment missing @coderabbitai resolve tag" # Retry logic else echo "✅ VERIFIED: PR comment posted with @coderabbitai resolve" fi -
Retry Logic:
post_pr_comment_with_verification() { local pr_number=$1 local comment_body=$2 local max_attempts=3 local attempt=1 while [ $attempt -le $max_attempts ]; do echo "[Attempt $attempt/$max_attempts] Posting PR comment..." if gh pr comment "$pr_number" --body "$comment_body"; then sleep 2 local last_comment=$(gh pr view "$pr_number" --json comments --jq '.comments[-1].body') if echo "$last_comment" | grep -q "@coderabbitai resolve"; then echo "✅ SUCCESS: PR comment verified" return 0 fi fi echo "⚠️ Attempt $attempt failed, retrying..." ((attempt++)) sleep 3 done echo "❌ CRITICAL FAILURE: Failed after $max_attempts attempts" return 1 }
Why This Matters
- CodeRabbit tracks resolution through these comments
- Without comment, feedback thread stays open indefinitely
- Team members can't see what was addressed
- Automated workflows depend on resolution markers
- GitHub PR timeline needs closure for audit trail
Success Checklist
Before marking workflow complete, verify ALL:
gh pr commentcommand executed- Command exit code = 0
- Waited 2 seconds for API sync
- Latest PR comment retrieved successfully
- Comment contains "@coderabbitai resolve"
- Comment contains summary of applied changes
- Comment contains summary of skipped items
- TodoWrite item marked completed
- Output: "✅ VERIFIED: PR comment posted"
No shortcuts. No assumptions. Verify every time.
Red Flags - Signs You're Skipping Verification
STOP immediately if you think:
- "I'll just post the comment, verification is overkill"
- "The command succeeded, that's enough"
- "I'll check manually later"
- "User can verify in the PR"
- "Let me mark this todo as done..."
ALL OF THESE ARE FAILURES - VERIFY THE COMMENT
Common Mistakes
❌ Skipping Pagination
Problem: Missing comments when PR has 100+ comments Fix: Use GraphQL/REST pagination to collect up to 200 comments
❌ Not Providing Rationale
Problem: User doesn't understand why suggestions are categorized as recommended/optional/unnecessary Fix: Include 1-2 line rationale for each MINOR item classification
❌ Skipping PR Comment Verification
Problem: Assuming comment was posted without verification Fix: Always run triple-verification (command success + API sync + tag check)
❌ Auto-Applying Without Discussion
Problem: Applying changes user didn't explicitly approve Fix: Present summary, get user decision, then apply only agreed items
❌ Incomplete Error Recovery
Problem: Stopping workflow when single item fails Fix: Skip failed item with explanation, continue with others, complete Phase 3
Success Criteria
- ✅ Collected all unresolved comments (up to 200 with pagination)
- ✅ Classified each item by severity (CRITICAL/MAJOR/MINOR)
- ✅ Discussed CRITICAL/MAJOR items with user
- ✅ Analyzed MINOR items with clear rationale
- ✅ Applied only user-approved changes
- ✅ Committed and pushed all changes
- ✅ Posted PR comment with @coderabbitai resolve
- ✅ Verified comment posting with triple-check system
- ✅ All TodoWrite items marked completed
Real-World Impact
Before this skill:
- Manual classification of 20+ CodeRabbit comments took 15+ minutes
- Unclear why certain suggestions weren't applied
- Risk of missing important items due to pagination limits
- Inconsistent PR comment posting
- No verification that CodeRabbit received resolution
After this skill:
- Interactive guided review in 5-7 minutes
- Clear rationale for each classification decision
- Complete coverage up to 200 comments with pagination
- Guaranteed PR comment posting with triple verification
- User feels confident about decisions with analysis support