レビュー観点詳細ガイド
本ドキュメントは、各レビュアーエージェントが参照する詳細なレビュー観点を定義します。
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 脆弱性情報の参照(必須)
実装レビュー時は以下のサイトで最新の脆弱性情報を確認:
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からの取り込み) |