{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
Codebase Inspection
用 pygount 检视代码库:LOC、语言、比率。
Skill 元数据
| 来源 | 内置(默认安装) |
| 路径 | skills/software-development/codebase-inspection |
| 版本 | 1.0.0 |
| 作者 | Hermes Agent |
| 许可证 | MIT |
| 平台 | linux, macos, windows |
| 标签 | LOC, Code Analysis, pygount, Codebase, Metrics, Repository |
| 相关 skill | github |
参考:完整 SKILL.md
INFO
以下是 Hermes 在触发该 skill 时加载的完整 skill 定义。这是 agent 在 skill 激活时所看到的指令内容。
用 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 项目
--folders-to-skip=".git,venv,.venv,__pycache__,.cache,dist,build,.tox,.eggs,.mypy_cache"
# JavaScript/TypeScript 项目
--folders-to-skip=".git,node_modules,dist,build,.next,.cache,.turbo,coverage"
# 通用兜底
--folders-to-skip=".git,node_modules,venv,.venv,__pycache__,.cache,dist,build,.next,.tox,vendor,third_party"
3. 按特定语言过滤
# 只统计 Python 文件
pygount --suffix=py --format=summary .
# 只统计 Python 和 YAML
pygount --suffix=py,yaml,yml --format=summary .
4. 逐文件详细输出
# 默认格式显示逐文件分布
pygount --folders-to-skip=".git,node_modules,venv" .
# 按代码行排序(经 sort 管道)
pygount --folders-to-skip=".git,node_modules,venv" . | sort -t$'\t' -k1 -nr | head -20
5. 输出格式
# 摘要表(默认推荐)
pygount --format=summary .
# JSON 输出供程序化使用
pygount --format=json .
# 管道友好:Language、文件数、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。 - 大型 monorepo——对极大仓库,考虑用
--suffix针对特定语言,而非扫描一切。