| name | code-review |
| description | 実装済みの差分、PR、コミット、指定ファイルをレビューし、実装者の前提や正常系中心の説明を鵜呑みにせず、見落とされた失敗条件を疑う基本姿勢で敵対的検証を行い、仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘するときに使う。実装方針の相談は code-refactor、コード変更の実装は code-general を優先する。 |
Code Review スキル
このドキュメントは、コードレビューを行うときの思考の枠組み・判断基準・進め方 を定義します。
これは実装方法のガイドではありません。
「どう直すか」ではなく 「何を疑い、何を優先して指摘するか」 を示します。
基本姿勢
- レビューは、実装者の説明やテスト結果が正しい前提であっても、反例や失敗条件が残っている前提で敵対的検証を行う
- 正常系の意図ではなく、実際の diff、公開契約、既存呼び出し元、失敗時の振る舞いを起点に判断する
- 人格や意図ではなく、システムの前提、境界、契約、データ、権限、並行実行を疑う
目的
- 実装された変更が仕様・制約を満たしていることを確認する
- 変更のリスクを早期に可視化し、必要な是正や検証を促す
- レビュー品質のばらつきを減らし、判断基準を揃える
このスキルを使うべきとき
- 既に実装された差分、PR、コミット、指定ファイルをレビューするとき
- 仕様違反、回帰、公開契約破壊、セキュリティ、データ整合性、並行性、検証不足などのリスクを重要度順に指摘したいとき
- より汎用的なレビューを行いたいとき
このスキルを使わないほうがいいとき
- まだ実装されていないアイデアや設計を議論するとき(code-architect や code-refactor を優先)
- 具体的なコード変更の実装方法を相談するとき(code-general を優先)
- 将来的な変更容易性やコード品質の重点的な観点で指摘したいとき(code-quality-review を優先)
このスキルが提供するもの
- レビュー時の観点と優先順位
- 重大度の付け方
findings first の出力形式
- 不明点や追加検証の整理方法
このスキルが提供しないもの
- パッチや具体的なコード変更
- 実装者向けの詳細な設計案
- 承認 / 却下の最終意思決定
絶対ルール
- 事実と推測を混同しない
- 差分を起点にレビューする
- 重大度の高い指摘を先に出す
- 根拠、影響、問題になる条件を説明できる指摘だけを出す
- 不確実なものは断定せず、質問や懸念として分ける
レビュー対象の境界
- 基本は 差分中心 で見る
- 差分の影響で壊れうる関連箇所は読む
- 未変更ファイルでも、差分が依存している契約・呼び出し先・テストは確認対象に含めてよい
- 今回の差分と無関係な既存不具合は、レビューの主題にせず補足扱いにとどめる
レビューの進め方
レビューは次の順で行う。
- 差分を読み、何が変わったかを把握する
- 仕様・公開契約・データ互換性を壊していないかを見る
- セキュリティ、整合性、並行性、破壊的変更など High リスクを先に疑う
- エラー処理、監視、テスト、回帰防止の不足を確認する
- 将来変更耐性、可読性、スタイルなどの二次観点を見る
- 指摘を重要度順に整理し、不明点と追加検証を分けて出す
軽微な命名やスタイルより、仕様違反・回帰・高リスク変更・未検証の方を優先する。
指摘として成立する条件
指摘を出すときは、最低限次を含める。
- 何が問題か
- どこで問題になるか
- なぜ問題だと判断したか
- どの条件で壊れるか、または何が未検証か
指摘に含めなくてよいもの:
- 具体的な修正コード
- 実装者の意図を決め打ちした断定
重要度の付け方
High
次のいずれかに当てはまるもの。
- 仕様違反、公開契約破壊、既存挙動の破壊
- セキュリティ、認可、情報漏えい
- データ破壊、整合性破壊、移行失敗
- 並行性、排他、冪等性の欠陥
- 本番障害や重大回帰につながる可能性が高いもの
Medium
次のいずれかに当てはまるもの。
- 重要なケースが未検証で、回帰を見逃しやすい
- エラー処理、監視、境界条件への考慮が不足している
- 将来の変更コストや障害調査コストを明確に増やす
Low
次のいずれかに当てはまるもの。
- 命名、可読性、軽微な構造改善
- 直ちに障害にはつながらないが、理解コストや保守コストを上げるもの
補足:
- カテゴリ名だけで重大度を決めない
- たとえばテスト不足でも、公開契約変更の未検証なら High になりうる
- 命名でも意味誤解により挙動を読み違えるなら Medium 以上になりうる
レビュー観点
references/points.md を参照。
出力形式
出力は次の順で行う。
- 指摘一覧
- 重要度 High / Medium / Low
- ファイル / 行
- 問題の要約
- 根拠と影響
- 壊れる条件、または不足している検証
- 不明点・仕様確認が必要な点
- テスト / 検証の不足
- 変更点の短い要約
必要な指摘がない場合:
重大な指摘はなし と明示する
- そのうえで残るリスクやテスト不足があれば書く
原則:
- 良い点の列挙を主目的にしない
悪い点 のような感想セクションは作らない
- 点数評価は行わない
レビュー時の注意
- 実装者の意図を好意的に補完しすぎない
- 一方で、根拠のない断定もしない
- 指摘が出ない場合でも、見た範囲と残る不確実性を意識する
- 軽微なスタイル論争で、重大なリスクを埋もれさせない