Code Review

xtone/ai_development_tools/development_workflows/skills/code-review

作者 xtone630d61d2acfc无许可证3 个星标收录于 2026年10月8日更新于 2026年10月8日仓库2天前更新

PRやコード変更の汎用コードレビューを実施します。コードの品質、セキュリティ、設計を共通基準で評価し、approve/rejectを判断します。「このPRをレビュー」「コードレビューして」「マージ前チェック」などの依頼や、gh pr viewコマンドの実行時に使用してください。

AI 生成的概览

依据通用的质量、安全与设计标准审查拉取请求和代码变更,并给出批准或拒绝的结论。

功能
提供与语言无关的拉取请求和代码变更审查流程,涵盖安全、逻辑与正确性、设计与可维护性、性能以及测试。它按严重程度(Critical、Major、Minor、Suggestion)对问题评分,并输出批准、有条件批准或拒绝的结论及结构化报告。它还支持面向 CI 的分诊与增量审查状态文件,并指向 TypeScript、授权、GitHub PR 操作和技能审查的参考文档。
适用场景
当被要求审查拉取请求或代码变更、在合并前检查代码,或执行 gh pr view 命令时使用。适用于合并前的质量把关和基于 CI 的 PR 审查流程。
运行要求
仅为说明文档,不含随附脚本。它会读取技能文件夹中的参考文件,并可能使用工作目录中的分诊文件和审查状态文件。在 GitHub 上发布评论需要 gh 命令和 CI 环境;React/Next.js 检查依赖另行安装的 vercel-react-best-practices 技能。

コードレビュー

PRやコード変更を体系的にレビューするための汎用スキルです。 言語非依存の共通レビュー基準と、言語/フレームワーク固有のベストプラクティスを組み合わせて使用します。

ディレクトリ構成

code-review/├── SKILL.md (このファイル)└── references/    ├── typescript-best-practices.md       # TypeScript固有のチェック    ├── authorization-review-general.md    # 認可レビュー観点(一般編)    ├── authorization-review-postgres-rls.md  # 認可レビュー観点(PostgreSQL RLS編)    ├── github-pr-review-actions.md        # GitHub PRレビューアクション    ├── ci-optimized-workflow.md           # CI環境でのコスト最適化ワークフロー    ├── incremental-review.md             # インクリメンタルレビューの詳細    ├── skill-review.md                    # Claude Codeスキル(SKILL.md)レビュー基準    ├── skill-overview.md                  # スキル概要(公式ドキュメント)    └── skill-best-practices.md            # スキルベストプラクティス(公式ドキュメント)

ランタイムファイル

CI実行時に自動生成されるファイル。リポジトリにはコミットしない。

ファイル用途ライフサイクル
.pr-triage.jsonトリアージ結果毎回生成
.pr-review-state.jsonレビュー状態actions/cache で実行間永続化

外部スキル連携

React / Next.js のベストプラクティスは、Vercel提供の vercel-react-best-practices スキルを使用する。

  • リポジトリ: https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices
  • インストール: npx -y skills add vercel-labs/agent-skills --skill vercel-react-best-practices --agent claude-code --yes
  • カバー範囲: 非同期ウォーターフォール排除、バンドルサイズ最適化、サーバー側パフォーマンス、クライアント側データ取得、再レンダリング最適化、レンダリングパフォーマンス、高度なパターン、JavaScriptパフォーマンス(8カテゴリ、40以上のルール)

コスト最適化(CI環境)

GitHub Actions等のCI環境で実行する場合、トリアージフェーズを軽量モデル(Haiku)に委任することでコストを大幅に削減できる。 詳細は references/ci-optimized-workflow.md [blocked] を参照。

トリアージ結果の活用

CI環境で事前トリアージが実行されている場合、作業ディレクトリに .pr-triage.json が存在する。 このファイルが存在する場合、以下の最適化を適用する:

  1. ステップ1をスキップ — トリアージ結果の summary を使用する
  2. リファレンスの選択的読み込み — required_references に含まれるものだけを読む
  3. 表層チェックの省略 — surface_issues に含まれるMinor/Suggestion問題は既にチェック済みとして、Critical/Major分析に集中する
  4. 差分の効率的な確認 — files のカテゴリ分類を活用し、重要度の高いファイルから優先的にレビューする
json
// .pr-triage.json の構造{  "pr_number": 123,  "summary": "認証ミドルウェアの追加とユーザーAPI新規作成",  "files": {    "added": ["src/middleware/auth.ts", "src/api/users.ts"],    "modified": ["src/routes/index.ts"],    "deleted": []  },  "languages": ["typescript"],  "frameworks": ["express"],  "change_categories": {    "has_auth_changes": true,    "has_db_changes": false,    "has_rls_changes": false,    "has_api_changes": true,    "has_test_changes": false,    "has_config_changes": false,    "has_skill_changes": false  },  "required_references": [    "typescript-best-practices.md",    "authorization-review-general.md"  ],  "surface_issues": [    {      "severity": "Minor",      "file": "src/api/users.ts",      "line": 15,      "issue": "`any`型が使用されている",      "suggestion": "具体的な型に変更する"    }  ],  "diff_summary": "認証ミドルウェアを新規追加。JWTトークン検証を実装。ユーザーCRUD APIを新規作成。テストは未追加。",  "estimated_complexity": "medium",  "focus_areas": ["セキュリティ: JWT検証の実装", "認可: ユーザーAPIのアクセス制御"]}

.pr-triage.json が存在しない場合は、従来通りステップ1から全ステップを実行する(後方互換性あり)。

インクリメンタルレビュー(PR更新時の差分最適化)

PR更新(synchronizeイベント)時に、前回のレビュー状態を活用してトークン消費を削減する。 詳細は references/incremental-review.md [blocked] を参照。

.pr-review-state.json が存在しない場合(初回レビュー)は、インクリメンタル最適化は適用されず、フルトリアージを実行する。不正な形式の場合も警告を出力してフルトリアージを実行する。

レビューワークフロー

以下のチェックリストをコピーして進行状況を追跡します:

レビュー進捗:- [ ] ステップ1: 変更概要の把握- [ ] ステップ2: 共通品質チェック- [ ] ステップ3: 言語/フレームワーク固有チェック- [ ] ステップ4: approve/reject判定- [ ] ステップ5: レビュー結果の出力

ステップ1: 変更概要の把握

.pr-triage.json が存在する場合: このファイルを読み込み、summary、files、change_categories、diff_summary を使用する。以下の手動確認はスキップしてステップ2へ進む。

変更内容を理解する。

  1. 変更ファイル一覧を確認 - 変更の範囲とスコープを把握
  2. コード差分を確認 - 追加・変更・削除された内容を把握
  3. 変更の意図を理解 - PR説明やコミットメッセージから目的を確認

確認すべきポイント:

  • 変更は単一の目的にフォーカスしているか
  • スコープが適切か(1つのPRで多すぎる変更をしていないか)
  • 関連する変更が漏れなく含まれているか

ステップ2: 共通品質チェック

.pr-triage.json が存在する場合: surface_issues に含まれるMinor/Suggestionの問題は既にチェック済み。ここではCritical/Majorレベル(セキュリティ、ロジック・正確性、パフォーマンスの重大問題)の検出に集中する。表層的な問題(命名規則、デストラクチャリング等)は再チェック不要。

言語に依存しない汎用的なチェックを実施する。

2-1. セキュリティ
チェック項目重要度
ハードコードされた秘密情報(APIキー、パスワード、トークン)がないかCritical
ユーザー入力の適切なバリデーション・サニタイズがあるかCritical
SQLインジェクション、XSS、コマンドインジェクションの脆弱性がないかCritical
認証・認可のチェックが適切に実装されているかCritical
機密データが不用意にログ出力されていないかMajor
CORS設定が適切かMajor

認可(Authorization)の詳細レビュー:認可に関わる変更がある場合は、references/authorization-review-general.md [blocked] を参照して詳細なチェックを行う。PostgreSQL RLSを使用している場合は、追加で references/authorization-review-postgres-rls.md [blocked] も参照する。

2-2. ロジック・正確性
チェック項目重要度
エッジケースが適切に処理されているか(null、空配列、境界値)Major
エラーハンドリングが適切か(例外の握りつぶし、不適切なcatch)Major
条件分岐のロジックが正しいか(off-by-one、論理演算子の誤り)Major
非同期処理の競合状態(race condition)がないかMajor
リソースの確実な解放(ファイル、接続、ロック)Major
2-3. 設計・保守性
チェック項目重要度
関数/メソッドの責務が単一かMinor
DRY原則: 不要な重複コードがないかMinor
命名が意図を正確に表しているかMinor
マジックナンバーや意味不明な文字列リテラルがないかMinor
適切な抽象度で設計されているか(過剰な抽象化・不足)Minor
循環参照・不適切な依存関係がないかMajor
2-4. パフォーマンス
チェック項目重要度
N+1クエリなど非効率なデータアクセスパターンがないかMajor
不要なループやネスト、計算量の大きい処理がないかMinor
メモリリークの可能性がないかMajor
大量データの適切なページネーション・ストリーミング処理Minor
2-5. テスト
チェック項目重要度
変更に対応するテストが追加/更新されているかMajor
エッジケースのテストが含まれているかMinor
テストが実装詳細でなく振る舞いをテストしているかMinor
テスト名がテスト対象の振る舞いを明確に表しているかSuggestion

ステップ3: 言語/フレームワーク固有チェック

.pr-triage.json が存在する場合: required_references に記載されたリファレンスのみを読み込む。リストにないリファレンスは読み込まない(トークン節約)。

変更ファイルの言語/フレームワークに応じて、対応するリファレンスファイルを参照する。

参照可能なリファレンス:

言語/FW参照先種別
TypeScriptreferences/typescript-best-practices.md [blocked]内部リファレンス
React / Next.jsvercel-react-best-practices スキル(Vercel提供)外部スキル
観点参照先種別
認可(一般)references/authorization-review-general.md [blocked]内部リファレンス
認可(PostgreSQL RLS)references/authorization-review-postgres-rls.md [blocked]内部リファレンス
GitHub PRレビューreferences/github-pr-review-actions.md [blocked]内部リファレンス
Claude Codeスキルreferences/skill-review.md [blocked]内部リファレンス

参照ルール:

  • TypeScriptの変更 → 内部リファレンスを読み込む
  • React / Next.js の変更 → vercel-react-best-practices スキルを併用する(インストール済みの場合)
  • 認可に関わる変更(認証/権限チェック、データアクセス制御等) → 認可リファレンス(一般編)を参照
  • PostgreSQL RLSを使用している場合 → 認可リファレンス(RLS編)も追加で参照
  • GitHub Actions等のCI環境でPRレビューを実行する場合 → GitHub PRレビューアクションを参照(コメント投稿・評価方法)
  • SKILL.mdファイルが含まれる変更 → スキルレビューリファレンスを参照し、スキル品質チェックを追加実施する
  • 複数の言語/FWにまたがる変更の場合は、すべての該当リファレンスを参照する
  • リファレンスが存在しない言語の場合は、ステップ2の共通チェックのみで判断する

ステップ4: approve/reject判定

すべてのチェック結果に基づき、以下の基準でapprove/rejectを判定する。

問題の重要度と減点
重要度説明減点
Criticalマージ前に必ず修正が必要。セキュリティ脆弱性、データ損失リスク、重大なバグ-3点/件
Major優先的に修正すべき。ロジックの問題、パフォーマンス劣化、テスト不足-2点/件
Minor改善が望ましい。設計改善、可読性向上、軽微な問題-1点/件
Suggestion提案。ベストプラクティスの推奨、より良いアプローチの提示-0.5点/件
判定基準

満点は10点とし、以下の基準で判定する。

判定条件アクション
RejectCritical問題が1件以上あるREQUEST_CHANGES
RejectMajor問題が3件以上あるREQUEST_CHANGES
Rejectスコアが5点未満REQUEST_CHANGES
Conditional ApproveCritical問題なし、Major 1-2件、スコア5点以上APPROVE(改善点をコメント)
ApproveCritical/Major問題なし、スコア8点以上APPROVE
判定フローチャート
Critical問題あり? → Yes → Reject(REQUEST_CHANGES)       ↓ NoMajor問題が3件以上? → Yes → Reject(REQUEST_CHANGES)       ↓ Noスコア5点未満? → Yes → Reject(REQUEST_CHANGES)       ↓ NoMajor問題が1-2件? → Yes → Conditional Approve       ↓ Noスコア8点以上? → Yes → Approve       ↓ NoConditional Approve

ステップ5: レビュー結果の出力

.pr-triage.json が存在する場合: トリアージフェーズの surface_issues をレビュー結果の「検出された問題」テーブルにマージする(重複を除外)。スコアリングにはトリアージの指摘も含める。

以下のフォーマットでレビュー結果を出力する。

GitHub上でのレビュー投稿:GitHub Actions等のCI環境でPRレビューを実行している場合のみ、references/github-pr-review-actions.md [blocked] を参照して、ghコマンドやインラインコメントを使用してレビュー結果をGitHub上に投稿する。ローカル環境での実行時は、結果を標準出力に表示するのみとする。

修正済み問題のフォローアップ:.pr-triage.json に resolved_issues が含まれる場合(インクリメンタルレビュー時)、元のインラインコメントにリプライして修正を報告する。レビュー完了後、投稿したコメントIDを .pr-review-state.json に記録する。

markdown
## Code Review: [判定結果]
### 変更概要- **スコープ**: [変更の概要を1-2文で]- **変更ファイル数**: [N]ファイル- **主な言語/FW**: [検出された言語/FW]
### スコア: X/10
### 検出された問題
| # | 重要度 | ファイル | 問題 | 推奨される対応 ||---|--------|---------|------|---------------|| 1 | [Critical/Major/Minor/Suggestion] | [ファイルパス:行番号] | [問題の説明] | [対応方法] |
### 良い点- [コードの良い点を具体的に記載]
### 判定- **結果**: [Approve / Conditional Approve / Reject]- **理由**: [判定理由の要約]
### 次のステップ- [修正が必要な場合の具体的なアクション]

重要な注意事項

  • レビューはコードの品質向上が目的であり、批判ではない。建設的なフィードバックを心がける
  • 問題の指摘には必ず具体的な改善案を添える
  • 変更の意図を尊重し、スタイルの好みではなく客観的な基準で判断する
  • 自動検出が困難なドメイン知識やビジネスロジックの判断は、人間のレビュアーに委ねる
  • Suggestionは強制ではなく、採用するかどうかは著者の判断に任せる

来源与署名

来源:xtone/ai_development_tools位于development_workflows/skills/code-review提交630d61d

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架