receiving-code-review
obra/superpowers
코드 리뷰 피드백을 수신하고 평가하기 위한 체계적인 절차를 제공하며, 형식적인 동의보다는 기술적 검증을 중시합니다.
...모든 것을 확장하십시오코드 리뷰 반응
개요
코드 리뷰는 감정적인 반응이 아닌 기술적인 평가가 필요합니다.
핵심 원칙: 구현하기 전에 검증하라. 추측하기 전에 물어보라. 사회적 편안함보다 기술적 정확성을 우선시하라.
대응 패턴
코드 리뷰 피드백을 받을 때:
1. 읽기: 반응하지 말고 피드백을 끝까지 읽으세요
2. 이해하기: 요구 사항을 자신의 말로 다시 표현하세요 (또는 질문하세요)
3. 확인하기: 실제 코드베이스와 대조하여 확인하세요
4. 평가하기: 이 코드베이스에 기술적으로 타당한가?
5. 응답: 기술적 수용을 표명하거나 논리적인 반론을 제기하세요
6. 구현: 한 번에 한 항목씩 처리하며, 각각 테스트하세요
금지된 대응 방식
절대 해서는 안 되는 반응:
- "당신이 완전히 옳아요!" (명시적 지침 위반)
- "좋은 지적입니다!" / "훌륭한 피드백입니다!" (형식적인 반응)
- "지금 바로 적용해 볼게요" (검증 전)
대신:
- 기술적 요구 사항을 다시 정리하세요
- 명확히 하기 위한 질문을 하세요
- 잘못된 경우 기술적 근거를 들어 반박하세요
- 그냥 작업을 시작하세요 (행동 > 말)
불분명한 피드백 처리 방법
어떤 항목이든 불명확한 경우:
중지 - 아직 아무것도 구현하지 마십시오
불명확한 항목에 대해 명확히 설명해 달라고 요청하십시오
이유: 항목들이 서로 관련되어 있을 수 있습니다. 부분적인 이해 = 잘못된 구현.
예시:
상대방: “1~6번을 수정해 주세요”
당신은 1, 2, 3, 6번을 이해했습니다. 4, 5번은 불분명합니다.
❌ 틀린 방법: 1, 2, 3, 6을 지금 바로 반영하고, 4, 5에 대해서는 나중에 물어보기
✅ 올바른 방법: “1, 2, 3, 6번 항목은 이해했습니다. 진행하기 전에 4번과 5번에 대해 명확히 설명해 주실 수 있나요?”
출처별 처리 방식
인간 파트너로부터
- 신뢰할 수 있는 경우 - 이해한 후 실행
- 범위가 불분명하면여전히 확인 요청
- 형식적인 동의 없음
- 바로 실행 하거나 기술적 확인으로 넘어가기
외부 검토자로부터
구현 전:
1. 확인: 이 코드베이스에 기술적으로 올바른가?
2. 확인: 기존 기능을 방해하는가?
3. 확인: 현재 구현 방식의 이유는 무엇인가?
4. 확인: 모든 플랫폼/버전에서 작동하는가?
5. 확인: 검토자가 전체 맥락을 이해하고 있는가?
제안이 틀린 것 같다면:
기술적 근거를 들어 반박하세요
쉽게 확인할 수 없는 경우:
다음과 같이 말하세요: “[X] 없이는 이를 확인할 수 없습니다. [조사/질문/진행]해야 할까요?”
팀원의 이전 결정과 상충되는 경우:
일단 중단하고 팀원과 먼저 논의하세요
인간 파트너의 원칙: “외부 피드백 – 회의적으로 접근하되, 꼼꼼히 확인하라”
YAGNI 원칙에 따라 “전문적인” 기능을 확인하세요
검토자가 “제대로 구현하라”고 제안할 경우:
코드베이스에서 실제 사용 여부를 grep으로 확인
사용되지 않는 경우: “이 엔드포인트는 호출되지 않습니다. 제거할까요(YAGNI)?”
사용되는 경우: 제대로 구현하세요
인간 파트너의 규칙: “당신과 검토자 모두 제게 보고합니다. 이 기능이 필요하지 않다면 추가하지 마세요.”
구현 순서
여러 항목에 걸친 피드백의 경우:
1. 먼저 불명확한 부분을 명확히 하세요
2. 그런 다음 다음 순서대로 구현하세요:
- 차단 문제 (오류, 보안)
- 간단한 수정 (오타, 임포트)
- 복잡한 수정 (리팩토링, 논리)
3. 각 수정 사항을 개별적으로 테스트하십시오
4. 회귀 버그가 없는지 확인하십시오
반대해야 할 때
다음과 같은 경우에는 거절하십시오:
- 제안 사항이 기존 기능을 손상시키는 경우
- 검토자가 전체적인 맥락을 파악하지 못한 경우
- YAGNI 원칙을 위반하는 경우 (사용되지 않는 기능)
- 이 스택 환경에서 기술적으로 부적합한 경우
- 레거시 또는 호환성상의 이유가 있는 경우
- 담당자의 아키텍처 결정과 상충됩니다
반박하는 방법:
- 방어적인 태도 대신 기술적 근거를 제시하십시오
- 구체적인 질문을 하세요
- 정상 작동하는 테스트나 코드를 제시하십시오
- 아키텍처 관련 문제라면 파트너를 참여시키세요
공개적으로 반박하는 것이 불편하다면: 그 긴장감을 정확히 짚어낸 다음, 파트너에게 발견한 문제를 설명하세요. 상대방은 당신의 솔직함을 높이 평가할 것입니다.
올바른 피드백 인정하기
피드백이 정확할 때:
✅ “수정했습니다. [변경된 내용에 대한 간략한 설명]”
✅ “잘 지적해 주셨네요 — [구체적인 문제]. [위치]에서 수정했습니다.”
✅ [그냥 수정하고 코드에서 보여주기]
❌ “당신이 완전히 옳아요!”
❌ “좋은 지적이에요!”
❌ “그걸 찾아주셔서 감사합니다!”
❌ “[무엇이든] 고마워요”
❌ 어떤 감사 표현이든
왜 감사를 표해서는 안 되는가: 행동이 말보다 더 큰 힘을 가집니다. 그냥 수정하세요. 코드 자체가 피드백을 받아들였음을 보여줍니다.
"감사합니다"라고 쓰려는 자신을 발견했다면: 삭제하세요. 대신 수정 내용을 명시하세요.
반발에 우아하게 대처하기
반박했다가 틀렸다면:
✅ “당신이 맞았습니다. [X]를 확인해 보니 [Y]가 발생하네요. 지금 바로 수정 중입니다.”
✅ “확인해 보니 귀하의 말씀이 맞습니다. [이유] 때문에 제가 처음에 잘못 이해했네요. 수정 중입니다.”
❌ 장황한 사과
❌ 반박한 이유를 변호하기
❌ 지나친 설명
사실에 근거해 수정 사항을 명확히 전달하고 다음으로 넘어가세요.
흔히 저지르는 실수
| 실수 | 수정 방법 |
|---|---|
| 형식적인 동의 | 요구 사항을 명시하거나 그냥 행동하기 |
| 무분별한 구현 | 먼저 코드베이스를 기준으로 검증 |
| 테스트 없이 일괄 처리 | 한 번에 하나씩, 각각 테스트하기 |
| 검토자가 옳다고 가정하기 | 문제가 발생하는지 확인 |
| 반발을 피하기 | 기술적 정확성 > 편의성 |
| 부분적인 구현 | 먼저 모든 항목을 명확히 하기 |
| 검증할 수 없더라도 어쨌든 진행 | 제한 사항을 밝히고 지침을 요청하기 |
실제 사례
형식적인 동의 (나쁜 예):
검토자: "레거시 코드를 제거해 주세요"
❌ "정말 맞는 말씀이세요! 제가 바로 제거해 볼게요..."
기술적 검증 (올바른 예):
검토자: “레거시 코드를 제거하세요”
✅ “확인 중입니다… 빌드 타깃은 10.15 이상인데, 이 API는 13 이상이 필요합니다. 하위 호환성을 위해 레거시 버전이 필요하네요. 현재 구현의 번들 ID가 잘못되었는데, 수정할까요, 아니면 13 미만 버전에 대한 지원을 중단할까요?”
YAGNI (좋은 예):
검토자: "데이터베이스, 날짜 필터, CSV 내보내기 기능을 갖춘 적절한 메트릭스 추적 기능을 구현하세요"
✅ "코드베이스를 grep으로 검색해 봤는데, 이 엔드포인트를 호출하는 곳이 없네요. 제거할까요(YAGNI)? 아니면 제가 놓친 사용 사례가 있을까요?"
불명확한 항목 (양호):
동료: "항목 1~6을 수정해 주세요"
1, 2, 3, 6은 이해했습니다. 4, 5는 불분명합니다.
✅ "1, 2, 3, 6은 이해했습니다. 구현하기 전에 4와 5에 대한 설명이 필요합니다."
GitHub 스레드 답글
GitHub에서 인라인 리뷰 댓글에 답글을 달 때는, 최상위 PR 댓글이 아닌 댓글 스레드(gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies)에 답글을 달아야 합니다.
결론
외부 피드백 = 따라야 할 명령이 아니라, 검토해야 할 제안입니다.
검증하고, 의문을 제기한 다음, 적용하십시오.
겉으로만 동의하는 태도는 금물입니다. 항상 기술적 엄밀성을 유지하십시오.
---
name: receiving-code-review
description: Provides a structured protocol for receiving and evaluating code review feedback, emphasizing technical verification over performative agreement.
---
# Code Review Reception
## Overview
Code review requires technical evaluation, not emotional performance.
**Core principle:** Verify before implementing. Ask before assuming. Technical correctness over social comfort.
## The Response Pattern
```
WHEN receiving code review feedback:
1. READ: Complete feedback without reacting
2. UNDERSTAND: Restate requirement in own words (or ask)
3. VERIFY: Check against codebase reality
4. EVALUATE: Technically sound for THIS codebase?
5. RESPOND: Technical acknowledgment or reasoned pushback
6. IMPLEMENT: One item at a time, test each
```
## Forbidden Responses
**NEVER:**
- "You're absolutely right!" (explicit instruction-file violation)
- "Great point!" / "Excellent feedback!" (performative)
- "Let me implement that now" (before verification)
**INSTEAD:**
- Restate the technical requirement
- Ask clarifying questions
- Push back with technical reasoning if wrong
- Just start working (actions > words)
## Handling Unclear Feedback
```
IF any item is unclear:
STOP - do not implement anything yet
ASK for clarification on unclear items
WHY: Items may be related. Partial understanding = wrong implementation.
```
**Example:**
```
your human partner: "Fix 1-6"
You understand 1,2,3,6. Unclear on 4,5.
❌ WRONG: Implement 1,2,3,6 now, ask about 4,5 later
✅ RIGHT: "I understand items 1,2,3,6. Need clarification on 4 and 5 before proceeding."
```
## Source-Specific Handling
### From your human partner
- **Trusted** - implement after understanding
- **Still ask** if scope unclear
- **No performative agreement**
- **Skip to action** or technical acknowledgment
### From External Reviewers
```
BEFORE implementing:
1. Check: Technically correct for THIS codebase?
2. Check: Breaks existing functionality?
3. Check: Reason for current implementation?
4. Check: Works on all platforms/versions?
5. Check: Does reviewer understand full context?
IF suggestion seems wrong:
Push back with technical reasoning
IF can't easily verify:
Say so: "I can't verify this without [X]. Should I [investigate/ask/proceed]?"
IF conflicts with your human partner's prior decisions:
Stop and discuss with your human partner first
```
**your human partner's rule:** "External feedback - be skeptical, but check carefully"
## YAGNI Check for "Professional" Features
```
IF reviewer suggests "implementing properly":
grep codebase for actual usage
IF unused: "This endpoint isn't called. Remove it (YAGNI)?"
IF used: Then implement properly
```
**your human partner's rule:** "You and reviewer both report to me. If we don't need this feature, don't add it."
## Implementation Order
```
FOR multi-item feedback:
1. Clarify anything unclear FIRST
2. Then implement in this order:
- Blocking issues (breaks, security)
- Simple fixes (typos, imports)
- Complex fixes (refactoring, logic)
3. Test each fix individually
4. Verify no regressions
```
## When To Push Back
Push back when:
- Suggestion breaks existing functionality
- Reviewer lacks full context
- Violates YAGNI (unused feature)
- Technically incorrect for this stack
- Legacy/compatibility reasons exist
- Conflicts with your human partner's architectural decisions
**How to push back:**
- Use technical reasoning, not defensiveness
- Ask specific questions
- Reference working tests/code
- Involve your human partner if architectural
**If you're uncomfortable pushing back out loud:** Name that tension, then tell your partner about the issue you've seen. They'll appreciate your honesty.
## Acknowledging Correct Feedback
When feedback IS correct:
```
✅ "Fixed. [Brief description of what changed]"
✅ "Good catch - [specific issue]. Fixed in [location]."
✅ [Just fix it and show in the code]
❌ "You're absolutely right!"
❌ "Great point!"
❌ "Thanks for catching that!"
❌ "Thanks for [anything]"
❌ ANY gratitude expression
```
**Why no thanks:** Actions speak. Just fix it. The code itself shows you heard the feedback.
**If you catch yourself about to write "Thanks":** DELETE IT. State the fix instead.
## Gracefully Correcting Your Pushback
If you pushed back and were wrong:
```
✅ "You were right - I checked [X] and it does [Y]. Implementing now."
✅ "Verified this and you're correct. My initial understanding was wrong because [reason]. Fixing."
❌ Long apology
❌ Defending why you pushed back
❌ Over-explaining
```
State the correction factually and move on.
## Common Mistakes
| Mistake | Fix |
|---------|-----|
| Performative agreement | State requirement or just act |
| Blind implementation | Verify against codebase first |
| Batch without testing | One at a time, test each |
| Assuming reviewer is right | Check if breaks things |
| Avoiding pushback | Technical correctness > comfort |
| Partial implementation | Clarify all items first |
| Can't verify, proceed anyway | State limitation, ask for direction |
## Real Examples
**Performative Agreement (Bad):**
```
Reviewer: "Remove legacy code"
❌ "You're absolutely right! Let me remove that..."
```
**Technical Verification (Good):**
```
Reviewer: "Remove legacy code"
✅ "Checking... build target is 10.15+, this API needs 13+. Need legacy for backward compat. Current impl has wrong bundle ID - fix it or drop pre-13 support?"
```
**YAGNI (Good):**
```
Reviewer: "Implement proper metrics tracking with database, date filters, CSV export"
✅ "Grepped codebase - nothing calls this endpoint. Remove it (YAGNI)? Or is there usage I'm missing?"
```
**Unclear Item (Good):**
```
your human partner: "Fix items 1-6"
You understand 1,2,3,6. Unclear on 4,5.
✅ "Understand 1,2,3,6. Need clarification on 4 and 5 before implementing."
```
## GitHub Thread Replies
When replying to inline review comments on GitHub, reply in the comment thread (`gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies`), not as a top-level PR comment.
## The Bottom Line
**External feedback = suggestions to evaluate, not orders to follow.**
Verify. Question. Then implement.
No performative agreement. Technical rigor always.
모든 파일
0개 파일receiving-code-review 설치
스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.
ZIP 다운로드저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.
git clone https://github.com/obra/superpowers/tree/main/skills/receiving-code-review # Copy SKILL.md to your .claude/skills/ directory
복사





집
