返回 Skill 列表
extension
分类: 开发与工程无需 API Key

review-guidelines

定义各评审代理参考的详细评审视角(数据库设计、安全性、后端、前端、基础设施)

person作者: jakexiaohubgithub

レビュー観点詳細ガイド

本ドキュメントは、各レビュアーエージェントが参照する詳細なレビュー観点を定義します。


1. DB設計レビュー観点 (@database-reviewer)

1.1 仕様との整合性(配点: 25点)

| チェック項目 | 確認内容 | |-------------|---------| | エンティティ網羅 | 要件・基本設計で定義されたエンティティがテーブル化されているか | | API対応 | APIのリクエスト/レスポンスに必要なカラムが含まれているか | | ビジネスルール | ビジネスルールを実現できる設計か(制約、トリガー等) |

1.2 正規化(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | 正規形 | 第3正規形以上に正規化されているか | | 冗長性 | 不要な重複データがないか | | 非正規化 | 意図的な非正規化は理由が明記されているか |

1.3 リレーション(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | 外部キー | 外部キー制約が適切に設定されているか | | カスケード | ON DELETE / ON UPDATE が適切に設定されているか | | 整合性 | 参照整合性が保たれているか |

1.4 データ型(配点: 10点)

| チェック項目 | 確認内容 | |-------------|---------| | 適切性 | 用途に適したデータ型が選択されているか | | サイズ | VARCHAR長、数値範囲が適切か | | DBエンジン対応 | 対象DBエンジンに適した型か |

1.5 インデックス(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | 検索パターン | 想定される検索パターンに対応しているか | | 外部キー | 外部キーカラムにインデックスが付与されているか | | 複合インデックス | 選択性の高いカラムが先に配置されているか | | 過剰インデックス | 不要なインデックスがないか |

1.6 命名規則(配点: 10点)

| チェック項目 | 確認内容 | |-------------|---------| | テーブル名 | snake_case、複数形が守られているか | | カラム名 | snake_case、外部キーは {参照テーブル単数形}_id 形式か | | インデックス名 | idx_{テーブル}_{カラム} 形式か |

1.7 共通カラム(配点: 5点)

| チェック項目 | 確認内容 | |-------------|---------| | 主キー | id (BIGINT UNSIGNED AUTO_INCREMENT) があるか | | タイムスタンプ | created_at, updated_at があるか | | ソフトデリート | 必要なテーブルに deleted_at があるか |

1.8 セキュリティ(配点: 5点)

| チェック項目 | 確認内容 | |-------------|---------| | パスワード | パスワードはハッシュ化前提のカラム設計か | | 機密データ | PII/機密データの暗号化が考慮されているか |


2. セキュリティレビュー観点 (@security-reviewer)

2.1 脆弱性情報の参照(必須)

実装レビュー時は以下のサイトで最新の脆弱性情報を確認:

| サイト | URL | 説明 | |--------|-----|------| | JVN | https://jvn.jp/ | 日本の脆弱性情報ポータル(必須) | | JVN iPedia | https://jvndb.jvn.jp/ | 脆弱性対策情報データベース | | CVE | https://cve.mitre.org/ | 国際的な脆弱性識別子 | | NVD | https://nvd.nist.gov/ | 米国国立脆弱性データベース |

2.2 OWASP Top 10 (2021) チェック

| # | 脆弱性 | チェック項目 | |---|--------|-------------| | A01 | アクセス制御の不備 | 認可チェックが全エンドポイントで実装されているか | | A02 | 暗号化の失敗 | 強い暗号化アルゴリズムを使用しているか(bcrypt, argon2等) | | A03 | インジェクション | SQL/コマンド/XSSインジェクション対策があるか | | A04 | 安全でない設計 | 脅威モデリングが実施されているか | | A05 | セキュリティ設定ミス | 本番環境でデバッグモードが無効か | | A06 | 脆弱なコンポーネント | 依存パッケージに既知の脆弱性がないか | | A07 | 認証の失敗 | ブルートフォース対策(レート制限)があるか | | A08 | 整合性の不具合 | ロックファイルがコミットされているか | | A09 | ログ監視の不足 | セキュリティイベントがログ出力されているか | | A10 | SSRF | 外部URLアクセス時の検証があるか |

2.3 入力検証

| チェック項目 | 確認内容 | |-------------|---------| | 全入力の検証 | ユーザー入力はすべてサーバー側で検証されているか | | 型チェック | 適切な型チェックが実装されているか | | 長さ制限 | 入力長の制限が設けられているか | | サニタイズ | 特殊文字のエスケープ/サニタイズが行われているか |

2.4 認証・認可

| チェック項目 | 確認内容 | |-------------|---------| | 認証保護 | 認証が必要なエンドポイントが保護されているか | | 認可チェック | リソースへのアクセス権限が検証されているか | | セッション管理 | セッションが適切に管理されているか | | トークン | JWTの有効期限、署名検証が適切か |

2.5 データ保護

| チェック項目 | 確認内容 | |-------------|---------| | 機密データ暗号化 | 機密データは暗号化されて保存されているか | | パスワードハッシュ | パスワードは強いハッシュアルゴリズムで保存されているか | | ログ出力 | ログに機密情報(パスワード、トークン等)が出力されていないか | | ハードコード | 機密情報がコードにハードコードされていないか |


3. バックエンドレビュー観点 (@backend-reviewer)

3.1 アーキテクチャ準拠(配点: 25点)

| チェック項目 | 確認内容 | |-------------|---------| | 層構造 | オニオン/クリーンアーキテクチャの層構造が守られているか | | 依存方向 | 依存関係が内側(ドメイン)に向いているか | | 責務分離 | 各層の責務が適切に分離されているか |

3.2 API設計(配点: 20点)

| チェック項目 | 確認内容 | |-------------|---------| | RESTful | RESTful設計原則に従っているか | | ステータスコード | HTTPステータスコードが適切か | | エラーレスポンス | エラーレスポンス形式が統一されているか | | バージョニング | APIバージョニングが考慮されているか |

3.3 エラーハンドリング(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | 例外処理 | 例外が適切にキャッチ・処理されているか | | ログ出力 | エラー時のログ出力が適切か | | ユーザー向けメッセージ | 内部情報が漏洩しないメッセージになっているか |

3.4 パフォーマンス(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | N+1問題 | N+1クエリ問題がないか | | ページネーション | 大量データ取得時にページネーションがあるか | | キャッシュ | 適切なキャッシュ戦略が実装されているか |

3.5 テスト(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | カバレッジ | 新規コードのカバレッジが80%以上か | | 境界値 | 境界値テストが実装されているか | | 異常系 | 異常系テストが網羅されているか |

3.6 コード品質(配点: 10点)

| チェック項目 | 確認内容 | |-------------|---------| | 500行ルール | 1ファイル500行以下か | | 命名規則 | 命名規則が守られているか | | 重複 | コードの重複がないか |


4. フロントエンドレビュー観点 (@frontend-reviewer)

4.1 アーキテクチャ準拠(配点: 25点)

| チェック項目 | 確認内容 | |-------------|---------| | Atomic Design | コンポーネントが5階層で適切に分類されているか | | MVVM | Model-View-ViewModelの分離が適切か | | 責務分離 | コンポーネントの責務が単一か |

4.2 コンポーネント設計(配点: 20点)

| チェック項目 | 確認内容 | |-------------|---------| | 再利用性 | コンポーネントが再利用可能な設計か | | Props設計 | Propsの型定義が適切か | | 状態管理 | 状態管理が適切なスコープで行われているか |

4.3 アクセシビリティ(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | セマンティックHTML | 適切なHTML要素が使用されているか | | ARIA属性 | 必要なARIA属性が設定されているか | | キーボード操作 | キーボードのみで操作可能か | | コントラスト | 色のコントラスト比が適切か |

4.4 パフォーマンス(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | レンダリング最適化 | 不要な再レンダリングがないか | | バンドルサイズ | 不要な依存関係がないか | | 画像最適化 | 画像が最適化されているか |

4.5 UX/UI(配点: 15点)

| チェック項目 | 確認内容 | |-------------|---------| | ローディング | ローディング状態が表示されるか | | エラー表示 | エラーが適切に表示されるか | | レスポンシブ | レスポンシブデザインが実装されているか |

4.6 コード品質(配点: 10点)

| チェック項目 | 確認内容 | |-------------|---------| | 500行ルール | 1ファイル500行以下か | | 型安全性 | TypeScriptの型が適切に定義されているか | | Lint | ESLint/Prettierのエラーがないか |


5. インフラレビュー観点 (@infra-reviewer)

5.1 Well-Architected Framework(配点: 40点)

| 柱 | チェック項目 | |----|-------------| | セキュリティ | 暗号化、最小権限、ネットワーク分離 | | 信頼性 | Multi-AZ、Auto Scaling、バックアップ | | パフォーマンス効率 | 適切なインスタンスサイズ、キャッシュ活用 | | コスト最適化 | 不要なリソースがないか | | 運用上の優秀性 | CloudWatch、タグ付け、IaC |

5.2 Terraform ベストプラクティス(配点: 30点)

| チェック項目 | 確認内容 | |-------------|---------| | モジュール構成 | 責務ごとに適切に分離されているか | | 命名規則 | {project}-{env}-{resource} 形式か | | 変数化 | ハードコードがないか | | バージョン固定 | providerバージョンが固定されているか | | 出力定義 | 必要なoutputsが定義されているか |

5.3 Docker Compose ベストプラクティス(配点: 30点)

| チェック項目 | 確認内容 | |-------------|---------| | バージョン | version: '3.8' 以上か | | ネットワーク | 適切なネットワーク分離がされているか | | ボリューム | 永続化が適切に設定されているか | | 環境変数 | .env ファイルから参照しているか | | ヘルスチェック | healthcheckが設定されているか |


スコア算出方法

各レビュアーは100点満点でスコアを算出し、以下の基準で判定:

| スコア | 判定 | アクション | |--------|------|----------| | 90-100 | 合格 | マージ可能 | | 70-89 | 要修正 | 指摘事項を修正して再レビュー | | 0-69 | 不合格 | 設計から見直し |


変更履歴

| 日付 | バージョン | 変更内容 | |:---|:---|:---| | 2026-01-02 | 1.0.0 | 初版作成(ai-frameworkからの取り込み) |