receiving-code-review
obra/superpowers
コードレビューのフィードバックを受け取り、評価するための体系的な手順を提供し、形式的な合意よりも技術的な検証を重視する。
...すべて拡張しますコードレビューの受付
概要
コードレビューには技術的な評価が必要であり、感情的なパフォーマンスは求められません。
基本原則:実装する前に検証する。推測する前に質問する。社会的快適さよりも技術的な正確さを優先する。
対応パターン
コードレビューのフィードバックを受けた際の対応:
1. 読む:反応せずにフィードバックを最後まで読む
2. 理解する:要件を自分の言葉で言い換える(または質問する)
3. 検証する:実際のコードベースと照らし合わせて確認する
4. 評価する:このコードベースにおいて技術的に妥当か?
5. 応答:技術的な承認、または理にかなった反論
6. 実装:1項目ずつ進め、それぞれをテストする
避けるべき対応
絶対にやってはいけないこと:
- 「その通りです!」(明示的な指示ファイル違反)
- 「素晴らしい指摘ですね!」/「素晴らしいフィードバックです!」(パフォーマンス的な発言)
- 「今すぐ実装します」(検証前)
代わりに:
- 技術要件を再確認する
- 明確化のための質問をする
- 間違っている場合は、技術的な根拠を挙げて反論する
- ただ作業を始める(行動>言葉)
不明確なフィードバックへの対処法
もし不明な項目がある場合は:
STOP - まだ何も実装しない
不明な項目について明確化を求める
理由:項目同士が関連している可能性がある。部分的な理解=誤った実装につながる。
例:
人間のパートナー:「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]という動作をすることを確認しました。今すぐ実装します。」
✅ 「確認したところ、あなたの指摘は正しかったです。[理由] のため、当初の理解が間違っていました。修正します。」
❌ 長々とした謝罪
❌ 反論した理由を弁明する
❌ 説明しすぎる
事実に基づいて修正点を伝え、話を進めましょう。
よくある間違い
| 間違い | 修正 |
|---|---|
| 形だけの同意 | 要件を述べるか、単に実行する |
| 安易な実装 | まずコードベースと照合する |
| テストなしで一括処理 | 1つずつ、それぞれをテストする |
| レビュー担当者が正しいと仮定する | 不具合が発生しないか確認する |
| 反論を避ける | 技術的な正確性 > 使いやすさ |
| 部分的な実装 | まずすべての項目を明確にする |
| 検証できないが、とにかく進める | 制約を伝え、指示を求める |
実例
形式的な合意(NG):
レビュー担当者:「レガシーコードを削除してください」
❌ 「その通りです! 削除させていただきます……」
技術的な検証(良い例):
レビュー担当者:「レガシーコードを削除してください」
✅ 「確認中……ビルドターゲットは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
コピー





家
