{/ Эта страница автоматически активируется из инструментов SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Инспекция кодекционной базы

Инсп кодекционных баз с помощью pygount: LOC, языки, коэффициенты.

Метаданные навыки

Источник Встроенный (устанавливается по умолчанию)
Путь skills/github/codebase-inspection
Версия 1.0.0
Автор Агент Гермес
Лицензия Массачусетский технологический институт
Платформы Linux, MacOS, Windows
Теги LOC, Анализ кода, pygount, Кодовая база, Метрики, Репозиторий
Связанные навыки github-repo-management

Справочник: полный SKILL.md:::информация

приведено полное определение навыков, которые Hermes загружает при активации этого навыка ниже. Это то, что агент видит в качестве инструкций, когда навыки активны.

Инспекция кодовой базы с помощью pygount

Анализируйте репозитории количества строк кода, разбивки по месяцам, количества файлов, ссылок на код и комментариев с помощью pygount.

Когда использовать

Предварительные требования

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.

# Удобный для конвейеров: Язык, количество файлов, код, документация, пусто, строка
pygount --format=summary. 2>/dev/null

6. Интерпретация результатов

Столбцы сводной таблицы: - Язык — Обнаруженный язык программирования. - Файлы — количество файлов на этом языке. - Code — строки фактического кода (исполняемого/декларативного) - Комментарий — строки, комментарии или документация. - % — процент от общего

Специальные псевдоязыки: - __empty__ — пустые файлы - __binary__ — бинарные файлы (изображения, скомпилированные и т.д.) - __generated__ — автоматически сгенерированные файлы (обнаруживаются эвристически) - __duulate__ — файлы с личным содержимым - __unknown__ — нераспознанные типы файлов.

Подводные камни

  1. Всегда выполняйте.git, node_modules, venv — без --folders-to-skip pygount будет сканировать всё и может занимать минуты или зависеть от больших трёх зависимостей.
  2. Markdown показывает 0 строк кода — pygount классифицирует стандарты Markdown всё как комментарии, а не код. Это ожидаемое поведение.
  3. Файлы JSON отображают небольшое количество кода — pygount может аккуратно подсчитать строки JSON. Для точной подсчета строки JSON воспользуйтесь wc -l напрямую.
  4. Большие монорепозитории — для очень больших репозиториев рассмотрите использование --суффикса для нацеливания на переменных вместо переменного числа.