codebase-analyzer について
codebase-analyzer はエンジニア向けのコードベース分析スキルです。構成、アーキテクチャ、品質、運用を段階的に調べ、ファイルパスを根拠として包括的な Markdown 分析文書を作成します。対象コードベースは読み取り専用です。
主な機能
- 01段階に沿ったコードベース調査
- 02アーキテクチャと主要フローの整理
- 03テスト、セキュリティ、型安全性の評価
- 04ビルド、デプロイ、可観測性の確認
- 05包括的な Markdown 文書の作成
活用シーン
- 01未知のコードベースの技術概要作成
- 02モジュール依存関係と主要フローの追跡
- 03コード品質とセキュリティ所見の記録
- 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:予備調査(広範囲のスキャン)
目標:すべてのファイルを読むことなく、コードベースの全体像を把握します。
- トップレベルのディレクトリ構成を一覧表示します(深さは 2~3 階層)。ディレクトリ構成と命名規則に注目します。
- 主要なマニフェスト/設定ファイルを特定します — これらを優先して読みます。
- パッケージマニフェスト:
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/フォルダー
- パッケージマニフェスト:
- 複数モジュール/モノレポの構成を特定します(該当する場合):パッケージ、モジュール、サービス、ターゲット、共有ライブラリと、それらの関係を整理します。
- ファイル拡張子、インポート、マニフェストに基づいて、コードベースで使用されている言語とフレームワークを一覧化します。
フェーズ 2:アーキテクチャの詳細分析
目標:システムの構成と、コンポーネント間の連携方法を把握します。
- エントリーポイントを特定します:
main.*、index.*、app.*、server.*、AppDelegate.*、Application.*、ルート定義、CLI エントリーポイント、アクティビティ/フラグメントのエントリーポイント(Android)、ビューコントローラーヒエラルキー(iOS)。 - 主要なアプリケーションフローを追跡します:最大 5 つの重要な経路を最初から最後までたどります(例:ルート → コントローラー → サービス → データレイヤー → レスポンスに至る API リクエスト、ユーザーイベント → 状態管理 → レンダリングに至る UI 操作、バックグラウンドジョブのライフサイクル)。ほかにもフローがある場合は、その旨を記載し、各自で追跡できるファイルを示します。
- 内部モジュール/パッケージ間の依存関係を整理します。どのコンポーネントが何に依存しているかを記載します。
- アーキテクチャパターンを特定します:マイクロサービス、モノリス、イベント駆動、ヘキサゴナル/クリーンアーキテクチャ、MVC、CQRS など。
- データレイヤーを調査します:データベーススキーマ/マイグレーション、ORM の使用状況、データモデル、キャッシュ戦略。
- API の公開範囲を調査します:REST、GraphQL、gRPC、WebSocket、IPC、SDK インターフェース定義。認証パターン、プロトコルバッファー、API コントラクトについても記載します。
フェーズ 3:品質とパターンの評価
目標:エンジニアリング手法とコード品質を評価します。
- テスト:テストディレクトリの構成、使用されているフレームワーク、テストパターン(単体、統合、E2E)、カバレッジ設定、フィクスチャ/モックの手法を調査します。
- エラー処理:エラーはどのように伝播しますか?一元化されたエラー処理はありますか?ロギング戦略はどのようなものですか?
- 型安全性とバリデーション:型安全性の厳格さ(コンパイラーフラグ、厳格モード、リンタールールなど)、ランタイムバリデーション(スキーマライブラリ、コントラクト適用)、null 安全性、入力/出力スキーマの適用状況。
- セキュリティ態勢:認証/認可パターン、シークレット管理、入力サニタイズ、依存関係の脆弱性(ロックファイルがある場合)。
- コードパターン:命名規則、モジュール構成、抽象化レベル、コード重複の一貫性を確認します。
フェーズ 4:インフラストラクチャと運用
目標:ソフトウェアのビルド、デプロイ、運用方法を把握します。
- ビルドシステム:ビルドツール、バンドル、コンパイル手順、モノレポのタスクオーケストレーション。
- CI/CD パイプライン:ワークフローファイルを調べ、テスト、Lint、ビルド、デプロイの各段階を確認します。
- デプロイモデル:コンテナ、サーバーレス、PaaS、静的ホスティング、アプリストア配布、組み込み/ファームウェアの提供。存在する場合は、Infrastructure-as-code(Terraform、Pulumi、CDK)も確認します。
- オブザーバビリティ:ロギング、メトリクス、トレーシング、モニタリング、アラートの設定。
- 環境管理:環境(dev、staging、prod)はどのように区別されていますか?
フェーズ 5:統合とドキュメントの生成
目標:調査結果をまとめて、出力ドキュメントを作成します。
ドキュメントの構成には、references/output-template.md の出力テンプレートを使用します。最終分析は、上記の Output セクションに記載された出力先に書き込んでください。
実行ルール
- 書く前に読むこと。 フェーズ 1~4 が完了するまで、ドキュメントを生成しないでください。
- 具体的なファイルを参照すること。 すべての主張で、実際のファイルパス(例:
src/api/routes.ts)を参照してください。根拠のない一般的な所見は記載しないでください。 - 不明な点について正直に伝えること。 判断できない内容(コンパイル済み/圧縮済みの箇所や、アクセスできないサービスなど)があれば、その旨を明記してください。
- 範囲よりも深さを優先すること。 複雑なコードベースのすべてのファイルを読むことはできません。エントリーポイント、中核となるビジネスロジック、アーキテクチャの境界に注目してください。生成されたコード、ベンダー依存関係、ボイラープレートは対象外としてください。
- アーキテクチャとフローの図には ASCII 図を使用すること。 シンプルで読みやすい図にしてください。
- 作業量を調整すること。 作業時間の約 60% をフェーズ 2~3(アーキテクチャと品質)、20% をフェーズ 1(調査)、20% をフェーズ 4(インフラ)に充ててください。
- 出力ファイルはセクションごとに記述すること。 ドキュメント全体を一度に作成しようとせず、各主要セクションの完了に合わせて Markdown ファイルを段階的に書き進めてください。
- ファイルサイズの目安。 大きなディレクトリ内で読むファイルを選ぶときは、次の優先順位に従ってください:エントリーポイント > 設定 > 中核となるドメインロジック > ユーティリティ > テスト > 生成されたコード。
- 読み取り専用で分析すること。 対象のコードベース内のファイルを変更、作成、削除しないでください。書き込むファイルは、出力する分析ドキュメントだけです。
- 大規模なコードベースの目安。 モノレポやファイル数が 500 を超えるコードベースでは、すべてを網羅しようとせず、重要度の高い上位 2~3 個のモジュール/サービスに分析対象を絞ってください。対象範囲の制限はエグゼクティブサマリーに記載してください。