codebase-inspection について
pygountでリポジトリの規模や構成を調べるスキルです。コード量を把握したい開発者向けに、言語・ファイル・コード行・コメント行の集計や、除外設定と出力形式を案内します。
主な機能
- 01言語とファイル数の集計
- 02コードとコメントの比率分析
- 03フォルダー除外の案内
- 04言語別の絞り込み
- 05サマリーとJSON出力
活用シーン
- 01リポジトリ規模の見積もり
- 02言語構成の比較
- 03依存・ビルドフォルダーの除外
- 04集計結果のプログラム利用
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nousresearch/ hermes-agent --skill codebase-inspectionインストール後、Claude Code で/codebase-inspectionを入力して読み込まれたか確認します。
詳細
pygount によるコードベースの調査
pygount を使用して、リポジトリのコード行数、言語の内訳、ファイル数、コードとコメントの比率を分析します。
使用する場面
- ユーザーが LOC(コード行数)を尋ねたとき
- ユーザーがリポジトリの言語の内訳を知りたいとき
- ユーザーがコードベースの規模や構成を尋ねたとき
- ユーザーがコードとコメントの比率を知りたいとき
- 「このリポジトリの規模はどのくらいですか」といった一般的な質問
前提条件
pip install --break-system-packages pygount 2>/dev/null || pip install pygount
1. 基本的な概要(最も一般的)
ファイル数、コード行数、コメント行数を含む、言語の内訳を取得します。
cd /path/to/repo
pygount --format=summary \
--folders-to-skip=".git,node_modules,venv,.venv,__pycache__,.cache,dist,build,.next,.tox,.eggs,*.egg-info" \
.
重要: 依存関係やビルドのディレクトリを除外するため、必ず --folders-to-skip を使用してください。使用しないと pygount がそれらを走査し、非常に時間がかかったり、停止したりすることがあります。
2. よくあるフォルダーの除外
プロジェクトの種類に応じて調整してください。
# Python projects
--folders-to-skip=".git,venv,.venv,__pycache__,.cache,dist,build,.tox,.eggs,.mypy_cache"
# JavaScript/TypeScript projects
--folders-to-skip=".git,node_modules,dist,build,.next,.cache,.turbo,coverage"
# General catch-all
--folders-to-skip=".git,node_modules,venv,.venv,__pycache__,.cache,dist,build,.next,.tox,vendor,third_party"
3. 特定の言語で絞り込む
# Only count Python files
pygount --suffix=py --format=summary .
# Only count Python and YAML
pygount --suffix=py,yaml,yml --format=summary .
4. ファイルごとの詳細な出力
# Default format shows per-file breakdown
pygount --folders-to-skip=".git,node_modules,venv" .
# Sort by code lines (pipe through sort)
pygount --folders-to-skip=".git,node_modules,venv" . | sort -t$'\t' -k1 -nr | head -20
5. 出力形式
# Summary table (default recommendation)
pygount --format=summary .
# JSON output for programmatic use
pygount --format=json .
# Pipe-friendly: Language, file count, code, docs, empty, string
pygount --format=summary . 2>/dev/null
6. 結果の解釈
概要テーブルの列:
- Language — 検出されたプログラミング言語
- Files — その言語のファイル数
- Code — 実際のコード(実行可能または宣言的なコード)の行数
- Comment — コメントまたはドキュメントの行数
- % — 合計に対する割合
特殊な疑似言語:
__empty__— 空のファイル__binary__— バイナリファイル(画像、コンパイル済みファイルなど)__generated__— 自動生成されたファイル(ヒューリスティックにより検出)__duplicate__— 内容が同一のファイル__unknown__— 認識されないファイル形式
注意点
- 必ず .git、node_modules、venv を除外してください —
--folders-to-skipを指定しないと pygount がすべてを走査するため、依存関係の多い大規模なツリーでは数分かかったり、停止したりすることがあります。 - Markdown のコード行数が 0 と表示される — pygount は Markdown の内容をすべてコードではなくコメントとして分類します。これは想定どおりの動作です。
- JSON ファイルのコード行数が少なく表示される — pygount は JSON の行数を控えめに数えることがあります。JSON の正確な行数を調べるには、
wc -lを直接使用してください。 - 大規模なモノレポ — 非常に大きなリポジトリでは、すべてを走査するのではなく、
--suffixを使って特定の言語を対象にすることを検討してください。
コメント
Markdown 対応