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 仅针对特定语言,而不是扫描所有内容。

评论

支持 Markdown