mcpField
C
codebase-inspection

codebase-inspection

github.com/nousresearch開発258.1k422 回インストール今日更新
リポジトリ

codebase-inspection について

pygountでリポジトリの規模や構成を調べるスキルです。コード量を把握したい開発者向けに、言語・ファイル・コード行・コメント行の集計や、除外設定と出力形式を案内します。

主な機能

  1. 01言語とファイル数の集計
  2. 02コードとコメントの比率分析
  3. 03フォルダー除外の案内
  4. 04言語別の絞り込み
  5. 05サマリーとJSON出力

活用シーン

  1. 01リポジトリ規模の見積もり
  2. 02言語構成の比較
  3. 03依存・ビルドフォルダーの除外
  4. 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__ — 認識されないファイル形式

注意点

  1. 必ず .git、node_modules、venv を除外してください — --folders-to-skip を指定しないと pygount がすべてを走査するため、依存関係の多い大規模なツリーでは数分かかったり、停止したりすることがあります。
  2. Markdown のコード行数が 0 と表示される — pygount は Markdown の内容をすべてコードではなくコメントとして分類します。これは想定どおりの動作です。
  3. JSON ファイルのコード行数が少なく表示される — pygount は JSON の行数を控えめに数えることがあります。JSON の正確な行数を調べるには、wc -l を直接使用してください。
  4. 大規模なモノレポ — 非常に大きなリポジトリでは、すべてを走査するのではなく、--suffix を使って特定の言語を対象にすることを検討してください。

コメント