AgentSkillsCN

cdk-review

对 AWS CDK 基础设施代码进行深度审查与细致评估。

SKILL.md
--- frontmatter
name: cdk-review
description: AWS CDK インフラコードを詳細にレビュー

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

Phase 3: レビュー観点の定義

TypeScript共通観点(8項目、24点満点):

  1. 型安全性: any の使用、型アサーション、型推論の活用(3点)
  2. 命名規則: 変数名、関数名、Construct IDのパスカルケース(3点)
  3. 単一責任: Constructの責務の明確性(3点)
  4. 重複コード: DRY原則の遵守(3点)
  5. コメント: WHYコメント、日本語コメントの存在(3点)
  6. エラーハンドリング: 適切なエラー処理(3点)
  7. セキュリティ: ハードコード、環境変数の適切な扱い(3点)
  8. Import順序: CDKルールに準拠(標準ライブラリ → サードパーティ(CDK含む) → 自作モジュール)(3点)

CDK固有観点(9項目、27点満点):

  1. 宣言的記述: ifなどの制御構文の多用を避ける(3点)
  2. L2 Construct優先: L2 Construct優先、L1使用時は理由記載(3点)
  3. Import形式統一: aws_* as service 形式の使用(3点)
  4. IAM自動生成活用: grant*メソッド活用、明示的Role避ける(3点)
  5. リソース名自動生成: 不必要にリソース名を指定しない(3点)
  6. RemovalPolicy明示: Statefulリソースに適切に設定(3点)
  7. Construct ID規則: 自作Constructの中のメインリソースIDがResource/Default(3点)
  8. スタック分割の適切さ: デプロイ単位として適切に分割(3点)
  9. 循環参照の検出: リソース間の依存関係に循環がないか(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 サブエージェントが起動し、以下の処理を自動実行します:

  1. レビュー対象ファイルの検出と一覧表示(種別ごと)
  2. 検出されたすべてのファイルを自動的にレビュー(ファイル選択のステップはスキップ)
  3. 各ファイルのコード種別を自動判定
  4. 各ファイルに対して17項目のレビュー観点に基づく評価
  5. 各ファイルの詳細レポート生成
  6. 全ファイルのレビュー完了後、全体サマリーを出力

レビューの姿勢

エージェントは以下の姿勢でレビューを実施します:

  • 建設的: 批判ではなく、改善提案を提示
  • 具体的: 抽象的な指摘ではなく、具体的なコード例を提示
  • バランス: 良い点も必ず指摘(最低3つ)
  • 実用的: 理想論ではなく、現実的な改善案を提示
  • 根拠: なぜその改善が必要かを明確に説明

既存スキルとの違い

スキルスコープ用途
/cdk-ci静的解析 + テスト(全体)デプロイ前の品質チェック
/cdk-devCDK実装(Issue ベース)設計書からCDK実装
/cdk-review (新規)コードレビュー(特定ファイル)人間レビュー前の自動品質チェック
/reviewBackend/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. 出力の表示

エージェントが完了したら、その出力をそのまま全文表示すること。

重要: 以下の行為は禁止:

  • エージェントの出力を要約する
  • エージェントの出力を加工する
  • エージェントの出力にコメントを追加する

許可される行為:

  • エージェントの出力を全文そのまま表示する

エージェントの出力には、レビューレポート、改善提案、次のステップが含まれているため、ユーザーにそのまま提示すること。