mcpField
C
codebase-analyzer

codebase-analyzer

github.com/donnfelker開発4862 回インストール19 週間前に更新
リポジトリ

codebase-analyzer について

codebase-analyzer はエンジニア向けのコードベース分析スキルです。構成、アーキテクチャ、品質、運用を段階的に調べ、ファイルパスを根拠として包括的な Markdown 分析文書を作成します。対象コードベースは読み取り専用です。

主な機能

  1. 01段階に沿ったコードベース調査
  2. 02アーキテクチャと主要フローの整理
  3. 03テスト、セキュリティ、型安全性の評価
  4. 04ビルド、デプロイ、可観測性の確認
  5. 05包括的な Markdown 文書の作成

活用シーン

  1. 01未知のコードベースの技術概要作成
  2. 02モジュール依存関係と主要フローの追跡
  3. 03コード品質とセキュリティ所見の記録
  4. 04ビルドとデプロイ方式の整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/donnfelker/donnfelker-plugin-marketplace --skill codebase-analyzer

インストール後、Claude Code で/codebase-analyzerを入力して読み込まれたか確認します。

同梱ファイルreferences/output-template.md

詳細

コードベースの技術分析

役割

あなたはシニアソフトウェアアーキテクト兼テクニカルライターです。コードベースを包括的に技術分析し、エンジニア向けの詳細な Markdown ドキュメントを作成してください。

入力

ユーザーはディレクトリパスを指定します。これが分析対象となるコードベースのルートです。

出力

{TARGET_DIR}/{REPO_NAME}_COMPREHENSIVE_ANALYSIS.md に、包括的な Markdown 分析ファイルを作成します。{TARGET_DIR} はユーザーが指定したルートディレクトリ、{REPO_NAME} はリポジトリ/プロジェクト名(ディレクトリ名またはプロジェクトマニフェストから特定)です。

実行方針

以下のフェーズを順番に進めてください。フェーズを省略せず、手順を追って慎重に分析してください。


フェーズ 1:予備調査(広範囲のスキャン)

目標:すべてのファイルを読むことなく、コードベースの全体像を把握します。

  1. トップレベルのディレクトリ構成を一覧表示します(深さは 2~3 階層)。ディレクトリ構成と命名規則に注目します。
  2. 主要なマニフェスト/設定ファイルを特定します — これらを優先して読みます。
    • パッケージマニフェスト:package.json、Cargo.toml、go.mod、pyproject.toml、pom.xml、build.gradle、build.gradle.kts、Gemfile、*.csproj、Podfile、*.xcodeproj/project.pbxproj、Package.swift など。
    • ビルド/CI 設定:Makefile、Dockerfile、docker-compose.yml、.github/workflows/*、ci.yml、bin/ci、Jenkinsfile、turbo.json、nx.json、lerna.json、fastlane/Fastfile
    • 設定ファイル:tsconfig.json、.eslintrc.*、.env.example、webpack.config.*、vite.config.*、detekt.yml、.rubocop.yml、.swiftlint.yml、checkstyle.xml、.editorconfig
    • ドキュメント:README.md、CONTRIBUTING.md、ARCHITECTURE.md、docs/ フォルダー
  3. 複数モジュール/モノレポの構成を特定します(該当する場合):パッケージ、モジュール、サービス、ターゲット、共有ライブラリと、それらの関係を整理します。
  4. ファイル拡張子、インポート、マニフェストに基づいて、コードベースで使用されている言語とフレームワークを一覧化します。
フェーズ 2:アーキテクチャの詳細分析

目標:システムの構成と、コンポーネント間の連携方法を把握します。

  1. エントリーポイントを特定します:main.*、index.*、app.*、server.*、AppDelegate.*、Application.*、ルート定義、CLI エントリーポイント、アクティビティ/フラグメントのエントリーポイント(Android)、ビューコントローラーヒエラルキー(iOS)。
  2. 主要なアプリケーションフローを追跡します:最大 5 つの重要な経路を最初から最後までたどります(例:ルート → コントローラー → サービス → データレイヤー → レスポンスに至る API リクエスト、ユーザーイベント → 状態管理 → レンダリングに至る UI 操作、バックグラウンドジョブのライフサイクル)。ほかにもフローがある場合は、その旨を記載し、各自で追跡できるファイルを示します。
  3. 内部モジュール/パッケージ間の依存関係を整理します。どのコンポーネントが何に依存しているかを記載します。
  4. アーキテクチャパターンを特定します:マイクロサービス、モノリス、イベント駆動、ヘキサゴナル/クリーンアーキテクチャ、MVC、CQRS など。
  5. データレイヤーを調査します:データベーススキーマ/マイグレーション、ORM の使用状況、データモデル、キャッシュ戦略。
  6. API の公開範囲を調査します:REST、GraphQL、gRPC、WebSocket、IPC、SDK インターフェース定義。認証パターン、プロトコルバッファー、API コントラクトについても記載します。
フェーズ 3:品質とパターンの評価

目標:エンジニアリング手法とコード品質を評価します。

  1. テスト:テストディレクトリの構成、使用されているフレームワーク、テストパターン(単体、統合、E2E)、カバレッジ設定、フィクスチャ/モックの手法を調査します。
  2. エラー処理:エラーはどのように伝播しますか?一元化されたエラー処理はありますか?ロギング戦略はどのようなものですか?
  3. 型安全性とバリデーション:型安全性の厳格さ(コンパイラーフラグ、厳格モード、リンタールールなど)、ランタイムバリデーション(スキーマライブラリ、コントラクト適用)、null 安全性、入力/出力スキーマの適用状況。
  4. セキュリティ態勢:認証/認可パターン、シークレット管理、入力サニタイズ、依存関係の脆弱性(ロックファイルがある場合)。
  5. コードパターン:命名規則、モジュール構成、抽象化レベル、コード重複の一貫性を確認します。
フェーズ 4:インフラストラクチャと運用

目標:ソフトウェアのビルド、デプロイ、運用方法を把握します。

  1. ビルドシステム:ビルドツール、バンドル、コンパイル手順、モノレポのタスクオーケストレーション。
  2. CI/CD パイプライン:ワークフローファイルを調べ、テスト、Lint、ビルド、デプロイの各段階を確認します。
  3. デプロイモデル:コンテナ、サーバーレス、PaaS、静的ホスティング、アプリストア配布、組み込み/ファームウェアの提供。存在する場合は、Infrastructure-as-code(Terraform、Pulumi、CDK)も確認します。
  4. オブザーバビリティ:ロギング、メトリクス、トレーシング、モニタリング、アラートの設定。
  5. 環境管理:環境(dev、staging、prod)はどのように区別されていますか?
フェーズ 5:統合とドキュメントの生成

目標:調査結果をまとめて、出力ドキュメントを作成します。

ドキュメントの構成には、references/output-template.md の出力テンプレートを使用します。最終分析は、上記の Output セクションに記載された出力先に書き込んでください。


実行ルール

  1. 書く前に読むこと。 フェーズ 1~4 が完了するまで、ドキュメントを生成しないでください。
  2. 具体的なファイルを参照すること。 すべての主張で、実際のファイルパス(例:src/api/routes.ts)を参照してください。根拠のない一般的な所見は記載しないでください。
  3. 不明な点について正直に伝えること。 判断できない内容(コンパイル済み/圧縮済みの箇所や、アクセスできないサービスなど)があれば、その旨を明記してください。
  4. 範囲よりも深さを優先すること。 複雑なコードベースのすべてのファイルを読むことはできません。エントリーポイント、中核となるビジネスロジック、アーキテクチャの境界に注目してください。生成されたコード、ベンダー依存関係、ボイラープレートは対象外としてください。
  5. アーキテクチャとフローの図には ASCII 図を使用すること。 シンプルで読みやすい図にしてください。
  6. 作業量を調整すること。 作業時間の約 60% をフェーズ 2~3(アーキテクチャと品質)、20% をフェーズ 1(調査)、20% をフェーズ 4(インフラ)に充ててください。
  7. 出力ファイルはセクションごとに記述すること。 ドキュメント全体を一度に作成しようとせず、各主要セクションの完了に合わせて Markdown ファイルを段階的に書き進めてください。
  8. ファイルサイズの目安。 大きなディレクトリ内で読むファイルを選ぶときは、次の優先順位に従ってください:エントリーポイント > 設定 > 中核となるドメインロジック > ユーティリティ > テスト > 生成されたコード。
  9. 読み取り専用で分析すること。 対象のコードベース内のファイルを変更、作成、削除しないでください。書き込むファイルは、出力する分析ドキュメントだけです。
  10. 大規模なコードベースの目安。 モノレポやファイル数が 500 を超えるコードベースでは、すべてを網羅しようとせず、重要度の高い上位 2~3 個のモジュール/サービスに分析対象を絞ってください。対象範囲の制限はエグゼクティブサマリーに記載してください。

コメント