CDK Review (CDK Code Review) コマンド
AWS CDK インフラコードを詳細にレビューし、型安全性、CDKベストプラクティス、プロジェクトルール準拠を自動チェックするスキルです。
このスキルは、cdk-reviewer-agent サブエージェントを呼び出して、以下の処理を実行します。
処理内容
Phase 1: ファイル検出と対象ファイルの決定
- •Globツールで
cdk/**/*.tsを検出 - •テストコード(
**/*.test.ts)、設定ファイル(*.config.*,cdk.json)、node_modulesを除外 - •検出されたすべてのファイルを種別ごとに分類(App/Stack/Construct/Parameter)
- •デフォルトですべてのファイルをレビュー対象とする
Phase 2: コード種別の判定
- •各ファイルのパスから種別を自動判定:
- •App:
cdk/bin/*.ts - •Stack:
cdk/lib/*-stack.ts - •Construct:
cdk/lib/constructs/*.tsまたはcdk/lib/*-construct.ts - •Parameter:
cdk/parameter.tsまたはcdk/lib/parameters/*.ts
- •App:
Phase 3: レビュー観点の定義
TypeScript共通観点(8項目、24点満点):
- •型安全性:
anyの使用、型アサーション、型推論の活用(3点) - •命名規則: 変数名、関数名、Construct IDのパスカルケース(3点)
- •単一責任: Constructの責務の明確性(3点)
- •重複コード: DRY原則の遵守(3点)
- •コメント: WHYコメント、日本語コメントの存在(3点)
- •エラーハンドリング: 適切なエラー処理(3点)
- •セキュリティ: ハードコード、環境変数の適切な扱い(3点)
- •Import順序: CDKルールに準拠(標準ライブラリ → サードパーティ(CDK含む) → 自作モジュール)(3点)
CDK固有観点(9項目、27点満点):
- •宣言的記述: ifなどの制御構文の多用を避ける(3点)
- •L2 Construct優先: L2 Construct優先、L1使用時は理由記載(3点)
- •Import形式統一:
aws_* as service形式の使用(3点) - •IAM自動生成活用: grant*メソッド活用、明示的Role避ける(3点)
- •リソース名自動生成: 不必要にリソース名を指定しない(3点)
- •RemovalPolicy明示: Statefulリソースに適切に設定(3点)
- •Construct ID規則: 自作Constructの中のメインリソースIDが
Resource/Default(3点) - •スタック分割の適切さ: デプロイ単位として適切に分割(3点)
- •循環参照の検出: リソース間の依存関係に循環がないか(3点)
Phase 4: レビュー実行(各ファイルに対して実行)
検出されたすべてのファイルに対して、以下を順次実行:
- •Readツールでファイル内容を取得
- •Bashツールで git log から変更履歴を確認
- •各観点をチェック:
- •Grepで型安全性(anyの使用)を検索
- •Grepで Import 形式を検証
- •Grepで L2 Construct の使用状況を確認
- •Grepで明示的なIAM Role定義を検出
- •import順序を検証
- •Construct の長さ、コメントの質を分析
- •CDKリソース数をカウント(Construct、Lambda、S3、DynamoDBなど)
- •依存関係グラフを生成し、循環参照をチェック
- •3点満点でスコアリング(各観点)
Phase 5: 結果出力
各ファイルに対して個別のレビューレポートを生成し、最後に全体サマリーを出力:
レビューレポートフォーマット:
code
## CDK Code Review Report ### 📁 ファイル情報 - ファイル: [ファイルパス] - 種別: [App/Stack/Construct/Parameter] - 最終更新: [git log による最終コミット日時] ### 📊 総合評価 - スコア: X / 51点(17項目 × 3点) - レベル: [優秀 (45+) / 良好 (36-44) / 要改善 (27-35) / 要リファクタリング (27未満)] ### 🏗️ CDKリソース情報 - Construct数: X - Lambda関数: X - S3バケット: X - DynamoDBテーブル: X - その他のリソース: X ### ✅ 良い点(最低3つ) - [具体的な良い点] - [具体的な良い点] - [具体的な良い点] ### 🔧 改善が必要な点 #### 🚨 必須(Critical) - [セキュリティリスク、型安全性の重大な問題など] #### ⚠️ 推奨(Recommended) - [CDKベストプラクティス違反、保守性の問題など] #### 💡 提案(Suggested) - [命名、コメント、スタイル改善など] ### 📏 CDKルールへの準拠 - ✅ / ⚠️ / ❌ L2 Construct優先: [詳細] - ✅ / ⚠️ / ❌ Import形式統一: [詳細] - ✅ / ⚠️ / ❌ Import順序: [詳細] - ✅ / ⚠️ / ❌ 日本語コメント: [詳細] - ✅ / ⚠️ / ❌ IAM自動生成活用: [詳細] - ✅ / ⚠️ / ❌ リソース名自動生成: [詳細] ### 🔗 依存関係グラフ [リソース間の依存関係を可視化したグラフまたは説明] ### 🚀 次のステップ(優先度付き) 1. [最優先で修正すべき項目] 2. [次に修正すべき項目] 3. [時間があれば改善したい項目] --- (各ファイルのレポート生成後、全体サマリーを出力) ## 📊 CDKコード全体レビューサマリー ### レビュー対象 - レビューファイル数: X ファイル - 総行数: X 行 ### ファイル別スコア [各ファイルのスコア一覧表] ### 全体評価 - 平均スコア: XX / 51点 - 全体レベル: [優秀/良好/要改善/要リファクタリング] ### 共通の良い点・改善点 [複数ファイルに共通する良い点と改善点] ### 全体の次のステップ [プロジェクト全体で取り組むべき優先タスク]
使用方法
code
/cdk-review
このコマンドを実行すると、cdk-reviewer-agent サブエージェントが起動し、以下の処理を自動実行します:
- •レビュー対象ファイルの検出と一覧表示(種別ごと)
- •検出されたすべてのファイルを自動的にレビュー(ファイル選択のステップはスキップ)
- •各ファイルのコード種別を自動判定
- •各ファイルに対して17項目のレビュー観点に基づく評価
- •各ファイルの詳細レポート生成
- •全ファイルのレビュー完了後、全体サマリーを出力
レビューの姿勢
エージェントは以下の姿勢でレビューを実施します:
- •建設的: 批判ではなく、改善提案を提示
- •具体的: 抽象的な指摘ではなく、具体的なコード例を提示
- •バランス: 良い点も必ず指摘(最低3つ)
- •実用的: 理想論ではなく、現実的な改善案を提示
- •根拠: なぜその改善が必要かを明確に説明
既存スキルとの違い
| スキル | スコープ | 用途 |
|---|---|---|
/cdk-ci | 静的解析 + テスト(全体) | デプロイ前の品質チェック |
/cdk-dev | CDK実装(Issue ベース) | 設計書からCDK実装 |
/cdk-review (新規) | コードレビュー(特定ファイル) | 人間レビュー前の自動品質チェック |
/review | Backend/Frontend レビュー | アプリケーションコードレビュー |
レビュー対象の制限
以下のファイルはレビュー対象外です:
- •テストコード:
cdk/**/*.test.ts - •設定ファイル:
*.config.ts,*.config.js,cdk.json - •ビルド成果物:
cdk.out/ - •node_modules
実行指示(Claude Code への指示)
このスキルが呼び出されたら、以下を厳格に実行すること:
1. エージェントの起動
Task ツールを使用して cdk-reviewer-agent サブエージェントを起動:
code
subagent_type: "cdk-reviewer-agent" prompt: "AWS CDK インフラコードをレビューしてください"
2. 出力の表示
エージェントが完了したら、その出力をそのまま全文表示すること。
重要: 以下の行為は禁止:
- •エージェントの出力を要約する
- •エージェントの出力を加工する
- •エージェントの出力にコメントを追加する
許可される行為:
- •エージェントの出力を全文そのまま表示する
エージェントの出力には、レビューレポート、改善提案、次のステップが含まれているため、ユーザーにそのまま提示すること。