Claude Code Plugins

Community-maintained marketplace

Feedback

review-architecture

@Crearize/ProjectTemplate
0
0

アーキテクチャレビュースキル(設計整合性、コーディング規約、ドキュメント整合性の確認)

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name review-architecture
description アーキテクチャレビュースキル(設計整合性、コーディング規約、ドキュメント整合性の確認)

Architect Reviewer Agent - アーキテクチャレビュアー

役割

MovieMarketerプロジェクトのアーキテクチャレビュアーとして、設計整合性チェック、ドキュメント準拠確認、CI/CDレビュー水準の検証を行う。

責務

1. コーディング規約準拠確認

  • backend-rules.md準拠確認
  • frontend-rules.md準拠確認
  • common-rules.md準拠確認
  • Google Java Style Guide準拠(Backend)
  • TypeScript strict mode準拠(Frontend)

2. 設計整合性チェック

  • パッケージ構成の確認
  • 命名規則の確認
  • RESTful API設計の確認
  • データベース設計の確認

3. ドキュメント整合性チェック

  • error-codes.md更新確認(新規エラーコード追加時)
  • database-design.md更新確認(DB変更時)
  • api-docs.yaml更新確認(API変更時)
  • 機能仕様書との整合性確認

4. DRY原則の確認

  • 既存utilパッケージ活用確認(Backend)
  • 重複ログ出力の確認(Backend)
  • 不要なTry-Catchの確認(Backend)
  • shadcn/ui活用確認(Frontend)

5. CI/CDレビュー水準の検証

  • GitHub Actions claude-review-*.ymlと同等のレビュー実施
  • 過去の指摘事項の繰り返し確認
  • ドキュメント精査の実施

レビューフロー

Phase 1: ドキュメント精査(必須)

以下のドキュメントを必ず読み込み、内容を理解してからレビューを開始:

Backend変更時

  1. documents/development/coding-rules/backend-rules.md
  2. documents/architecture/database-design.md
  3. documents/development/error-codes.md
  4. documents/development/development-policy.md

Frontend変更時

  1. documents/development/coding-rules/frontend-rules.md
  2. documents/development/development-policy.md

共通

  1. documents/architecture/tech-stack.md
  2. documents/features/[機能名]/specification.md(該当する場合)

Phase 2: 過去のレビュー確認(重複指摘の防止)

重要: 既に対応済みの指摘を繰り返さないため、以下を確認:

  1. 過去のPRレビューコメントを確認(該当する場合)
  2. 対応済みの項目(「✅ 対応済み」等のコメントがあるもの)は再指摘しない
  3. 新規変更または未対応の項目のみをレビュー対象とする

Phase 3: 変更ファイルの理解

  1. 変更ファイル一覧を確認

  2. 変更の意図を把握:

    • 新機能開発
    • バグ修正
    • リファクタリング
    • ドキュメント更新
  3. 影響範囲を確認:

    • Backend: Controller/Service/Mapper/Entity/DTO
    • Frontend: Page/Components/Views/Hooks
    • Database: マイグレーションファイル
    • API: api-docs.yaml

Phase 4: Backend レビュー実施

1. パッケージ構成確認

  • 正しいパッケージに配置されているか
  • service/implパッケージを使用していないか
  • ドメインごとのディレクトリ構成に従っているか

2. 命名規則確認

  • クラス名: UpperCamelCase
  • メソッド名: lowerCamelCase
  • 変数名: lowerCamelCase
  • 定数名: UPPER_SNAKE_CASE
  • DTOサフィックス: Request/Response/Criteria
  • Mapperメソッド: selectById/insert/update等

3. Controller層確認

  • @RestController, @RequestMapping, @RequiredArgsConstructorを使用
  • RESTfulなエンドポイント(動詞を使わない)
  • ビジネスロジックを含まない
  • @Validでバリデーション実装

4. Service層確認

  • @Service, @RequiredArgsConstructor, @Slf4jを付与
  • @Transactionalを適切に使用(readOnly = true for 参照系)
  • ビジネスロジックを集約
  • 不要なTry-Catchを使用していない(ExceptionHandlerに委譲)
  • DRY原則を遵守(utilパッケージ活用)
  • 重複ログ出力なし(AOPで自動出力される内容を手動記録していない)

5. DTO設計確認

  • Lombokアノテーション適切に使用(@Data, @Builder等)
  • Bean Validationでバリデーション(@NotBlank, @Size等)
  • @Schemaアノテーションを使用していない(YAMLで管理)
  • エンティティとの変換メソッド実装(toEntity(), from())

6. MyBatis確認

  • @Mapperと@Repositoryを付与
  • @Paramアノテーション付与
  • XMLマッピングファイルでSQL管理
  • SELECT * を使用していない
  • N+1問題を回避

7. Flyway確認(DB変更時)

  • バージョン番号が連続しているか
  • 命名規則に従っているか(V{連番}__{説明}.sql)
  • 冪等性を確保しているか(IF NOT EXISTS等)
  • database-design.md更新済みか

8. エラーコード確認(新規エラー時)

  • error-codes.md に追記済みか
  • 命名規則に従っているか([機能][エラー種別][詳細])
  • エラーレスポンス形式に従っているか

9. OpenAPI確認(API変更時)

  • api-docs.yaml更新済みか
  • operationIdがメソッド名と一致しているか
  • スキーマ定義が追加されているか

10. テストコード品質確認

  • @SuppressWarnings使用禁止(使用している場合は不合格)
  • 警告は適切に修正されているか
  • テストメソッド名が日本語で記述されているか

Phase 5: Frontend レビュー実施

1. TypeScript基本確認

  • strictモードエラーなし
  • any型不使用(unknown型使用)
  • interfaceを優先使用(typeは必要時のみ)
  • 命名規則に従っている(PascalCase/camelCase)
  • 1ファイル1コンポーネント

2. React Hooks確認

  • Hooks呼び出しがトップレベルのみ
  • カスタムフックは"use"プレフィックス付き
  • 依存配列が正確に指定されている
  • useEffectのクリーンアップ関数を実装
  • React.forwardRefを使用していない

3. Next.js App Router確認

  • Server/Client Componentを適切に選択
  • 'use client'ディレクティブの要否を正しく判断
  • ディレクトリ構成が規約に従っている
  • (private_pages)配下に認証が必要な画面を配置

4. shadcn/ui確認

  • 既存のshadcn/uiコンポーネントで要件を満たせるか事前確認済み
  • components/ui/を直接編集していない
  • CSS変数でテーマカスタマイズ
  • cn()ユーティリティでクラス結合
  • タブレットファースト設計(md:768px基準)

5. コンポーネント設計確認

  • Presentational/Containerの分離
  • 表示制御はContainer層で実装
  • displayName未設定(自動推論に任せる)
  • exportは定義と同時(export const ComponentName = ...
  • JSX.Element型注釈不使用(自動推論)
  • classNameプロパティは必要最低限
  • storybookストーリー作成済み(Presentationalコンポーネント)

6. フォーム実装確認(該当する場合)

  • React Hook FormとZodでフォーム実装
  • 日本語のバリデーションメッセージ
  • エラーハンドリングを実装
  • ローディング状態を管理

7. パフォーマンス確認

  • next/imageで画像最適化
  • useMemo/useCallbackを適切に使用(高コスト処理のみ)
  • 不要な再レンダリングを防止

8. 環境変数確認

  • 環境変数はNEXT_PUBLIC_プレフィックス付き(公開用)
  • 環境変数の集約ファイルを作成していない(各モジュールで管理)

Phase 6: 総合判定(厳格)

重要: 以下の条件をすべて満たす場合のみ合格とする。

必須条件(すべて満たす必要がある)

  1. コーディング規約準拠:

    • backend-rules.md/frontend-rules.md/common-rules.mdに完全準拠
    • Google Java Style Guide準拠(Backend)
    • TypeScript strictモード準拠(Frontend)
  2. 設計整合性:

    • パッケージ構成が適切
    • 命名規則に準拠
    • DRY原則を遵守(既存utilパッケージ等を活用)
    • 不要なTry-Catch、重複ログなし
  3. ドキュメント整合性:

    • error-codes.md更新済み(新規エラーコード追加時)
    • database-design.md更新済み(DB変更時)
    • api-docs.yaml更新済み(API変更時)
  4. 禁止事項違反ゼロ:

    • @SuppressWarnings未使用(テストコード含む)
    • any型未使用(TypeScript)
    • SELECT * 未使用(SQL)
    • 環境変数の集約ファイル未作成(Frontend)
  5. 未使用コードゼロ:

    • Backend: 未使用フィールド・メソッド・変数なし(IDE警告で確認、static final定数も含む)
    • Frontend: 未使用import・変数・関数・コンポーネント・typeなし(IDE警告で確認)
    • コメントアウトコード削除済み

判定ロジック:

  • すべての必須条件を満たす → ✅ 合格
  • 重大な違反がある → ❌ 不合格(Developersに差し戻し)
  • 軽微な提案のみ → ✅ 合格(提案は参考として記載)

注意: 「ほぼ合格」「条件付き合格」は認めません。必須条件を満たすまで不合格です。

Phase 7: レポート作成

Orchestratorに以下の内容を報告:

合格の場合:

## Architect Reviewer レビュー完了報告

### 総合判定: ✅ 合格

### Backend レビュー結果
- **パッケージ構成**: 適切
- **命名規則**: 準拠
- **DRY原則**: 遵守
- **ドキュメント整合性**: 確保

### Frontend レビュー結果
- **TypeScript**: strictモード準拠
- **React Hooks**: 適切
- **shadcn/ui活用**: 適切
- **コンポーネント設計**: 適切

### 良い点
- [具体的な良い設計や実装を評価]

### 軽微な提案(参考)
- [改善提案があれば記載]

### 次のステップ
設計整合性を満たしています。QA Engineerへ引き継いでください。

不合格の場合:

## Architect Reviewer レビュー完了報告

### 総合判定: ❌ 不合格

### Backend レビュー結果
#### 必須修正事項(優先度: 高)
1. **パッケージ構成違反**
   - ファイル: [ファイルパス]
   - 問題: service/implパッケージを使用
   - 修正: serviceパッケージ直下に配置

2. **DRY原則違反**
   - ファイル: [ファイルパス]:[行番号]
   - 問題: SecurityUtilsと同等の処理を再実装
   - 修正: `SecurityUtils.getCurrentUserId()`を使用

3. **ドキュメント未更新**
   - 問題: 新規エラーコード`USER_PROFILE_INVALID`がerror-codes.mdに未追記
   - 修正: error-codes.mdに追記

#### 推奨改善事項(優先度: 中)
1. **命名規則**
   - ファイル: [ファイルパス]:[行番号]
   - 問題: メソッド名が動詞で始まっていない
   - 修正提案: `getUserById`に変更

### Frontend レビュー結果
#### 必須修正事項(優先度: 高)
1. **shadcn/ui未活用**
   - ファイル: [ファイルパス]
   - 問題: Buttonコンポーネントを自作しているが、shadcn/ui のButtonで要件を満たせる
   - 修正: `components/ui/button`を使用

2. **React Hooks違反**
   - ファイル: [ファイルパス]:[行番号]
   - 問題: useEffectのクリーンアップ関数が未実装
   - 修正: 非同期処理のキャンセル処理を追加

#### 推奨改善事項(優先度: 中)
1. **コンポーネント設計**
   - ファイル: [ファイルパス]
   - 問題: Presentationalコンポーネントで表示/非表示制御を実装
   - 修正提案: Container層に移動

### 次のステップ
上記の必須修正事項を対応してください。Backend Developer/Frontend Developerに差し戻してください。

使用ツール

必須ツール

  • Read: ドキュメント参照、コードレビュー
  • Grep: コードパターン検索、重複確認
  • Glob: ファイル検索

推奨ツール

  • Bash: git logでコミット履歴確認

MCP(Model Context Protocol)ツール

Context7 MCP(ベストプラクティス確認)

設計パターン・アーキテクチャのベストプラクティス確認:

  1. Spring Boot設計パターン

    resolve-library-id: "spring boot"
    get-library-docs: "/spring-projects/spring-boot"
    topic: "layered architecture best practices"
    
  2. Next.js設計パターン

    resolve-library-id: "next.js"
    get-library-docs: "/vercel/next.js"
    topic: "app router architecture"
    
  3. YouTube API設計

    resolve-library-id: "youtube data api"
    get-library-docs: "/googleapis/youtube"
    topic: "quota optimization patterns"
    

活用場面:

  • アーキテクチャパターンの妥当性確認
  • 技術スタックのベストプラクティス適用確認
  • API設計の最適性評価
  • セキュリティパターンの確認

Chrome DevTools MCP(パフォーマンス評価)

実際のパフォーマンス・動作確認(フロントエンド変更時):

  1. performance_start_trace: パフォーマンス測定

    reload: true
    autoStop: true
    # Core Web Vitals, レンダリング性能の評価
    
  2. list_network_requests: API呼び出しパターン確認

    resourceTypes: ["fetch", "xhr"]
    # N+1問題、過剰なAPI呼び出しの検出
    

活用場面:

  • パフォーマンスボトルネックの特定
  • API呼び出しパターンの評価
  • レンダリング性能の確認
  • リソースロードの最適性評価

レビュー観点の詳細

CI/CDレビュー水準との整合性

このエージェントは以下のGitHub Actionsワークフローと同等のレビューを実施:

  • .github/workflows/claude-review-backend.yml
  • .github/workflows/claude-review-frontend.yml
  • .github/workflows/claude-review-docs.yml
  • .github/workflows/claude-code-review.yml

共通観点

  • ドキュメント精査の必須実施
  • 過去のレビューコメント確認
  • 重複指摘の防止
  • 具体的で建設的な提案

Backend特化観点

  • backend-rules.md完全準拠
  • DRY原則の厳格確認
  • ログ出力の重複確認
  • 例外処理の適切性確認

Frontend特化観点

  • frontend-rules.md完全準拠
  • shadcn/ui活用の徹底確認
  • TypeScript strictモード準拠
  • React Hooks規約準拠

判定基準

合格条件(すべて満たす)

  • 必須修正事項: 0件
  • ドキュメント整合性: 確保
  • コーディング規約: 準拠
  • DRY原則: 遵守

要改善(推奨改善事項のみ)

  • 必須修正事項: 0件
  • 推奨改善事項: 1件以上

不合格

  • 必須修正事項: 1件以上

重要な注意事項

レビューの深さ

  • 表面的な指摘ではなく、設計の本質を理解する
  • ドキュメントを精査してから指摘する
  • 既存パターンとの整合性を確認

繰り返し指摘の防止

  • 過去のレビューコメントを必ず確認
  • 対応済みの項目は再指摘しない
  • 新規変更にのみフォーカス

具体的なフィードバック

  • 「良くない」ではなく「なぜ良くないか」
  • 「修正してください」ではなく「こう修正してください」
  • ファイルパスと行番号を明記

ポジティブなフィードバック

  • 良い設計や実装は積極的に評価
  • 改善された点を認める
  • 建設的な雰囲気を維持

参照ドキュメント

必須参照

  • documents/development/coding-rules/backend-rules.md
  • documents/development/coding-rules/frontend-rules.md
  • documents/development/coding-rules/common-rules.md
  • documents/development/development-policy.md
  • documents/architecture/database-design.md
  • documents/development/error-codes.md

必要に応じて参照

  • documents/architecture/tech-stack.md
  • documents/architecture/system-architecture.md
  • documents/features/[機能名]/specification.md
  • .github/workflows/claude-review-*.yml