Обзор инструмента вышел в конце октября, и с тех пор у него появилось то, чего обычно не хватает подобным утилитам: понимание вики, собственный сайт документации и упаковка в пакеты для двух менеджеров. github-agent 1.3.0 — релиз про то, чтобы проверки не спотыкались о вики-разметку, а публикация не уезжала в PyPI без человека. Ниже — что именно изменилось, как это проверить и что показал мой прогон: обновление с 1.2.2 до 1.3.0, те же 13 команд и аудит на живом репозитории с результатом 100 % и кодом 0.

github agent 1 3 0 cover

TL;DR: что нового и как проверить

  1. Вики-разметка понимается. Ссылки на страницы вики резолвятся в Page.md, включая имена с точками; _Sidebar.md, _Footer.md, _Header.md — служебные файлы, а не «документы без заголовка».
  2. Сайт документации. mkdocs.yml, страницы в docs/, сборка на каждый pull request и выкладка с main.
  3. Статический анализ. ruff и mypy в CI и CodeQL с набором security-and-quality; рантайм-зависимостей по-прежнему ноль.
  4. Черновик релиза вместо автопубликации. Workflow собирает тело из CHANGELOG и создаёт draft — PyPI не получает ничего, пока человек не нажмёт Publish.
  5. Пакеты. Формула Homebrew и манифест Scoop плюс Windows-бандл в ассетах; отдельная CI-задача скачивает и сверяет хеши.
pip install --user --upgrade "github-agent-cli==1.3.0"
ghagent --version                 # github-agent 1.3.0
ghagent audit . --min-score 90    # у меня: score 100.0%, код 0
python tests/run_tests.py         # по заметкам к релизу: 194 из 194

Что нового в 1.3.0

Что добавлено Зачем Ограничение
Понимание вики в md.link-local ссылки на страницы вики не считаются битыми работает в вики-чекауте, определяемом по _Sidebar.md или _Footer.md
docs/FIELD-NOTES.md десять дефектов из реальных репозиториев: симптом, причина, правило страница сайта документации
Сайт документации (mkdocs Material) единая точка для документации сборка на каждом PR
ruff, mypy, CodeQL статический анализ и безопасность в CI инструменты разработки, рантайм не тянет
release-draft.yml черновик релиза из CHANGELOG публикация — только вручную
tools/make_demo.py и assets/demo.gif анимация в README из реального вывода показать несуществующее нельзя
Ключи exclude_dirs, safe_email_domains исключать каталоги сборки, разрешать служебные домены в .ghagent.json
Формула Homebrew и манифест Scoop установка без Python-окружения вручную канонические копии в отдельных репозиториях
flowchart TB
  REPO["репозиторий"] --> DOCS["документация: mkdocs, GitHub Pages"]
  REPO --> CI["CI: ruff, mypy, CodeQL, manifests"]
  REPO --> REL["release-draft: черновик из CHANGELOG"]
  REL --> HUMAN{"человек нажимает Publish?"}
  HUMAN -- да --> PYPI["публикация пакета"]
  HUMAN -- нет --> STOP["ничего не уходит"]
  REPO --> PKG["упаковка: Homebrew, Scoop, Windows-бандл"]

Ключевые изменения

Вики перестала быть «чужим форматом»

Раньше проверка локальных ссылок исходила из обычного репозитория: ссылка на Page без расширения — это ошибка, потому что на GitHub Pages такой файл даст 404. В вики правило другое: страница называется Page.md, и ссылка на неё корректна. Теперь инструмент определяет вики-чекаут по служебным файлам (_Sidebar.md или _Footer.md) и резолвит имена страниц, включая варианты с точками вроде Migration-3.x-to-4.0.

Заодно служебные файлы вики (_Sidebar.md, _Footer.md, _Header.md) перестали считаться документами без заголовка: им выставляется замечание, а не ошибка. Это мелочь ровно до того момента, когда CI краснеет из-за файла, который по определению не имеет H1.

Сборка документации и упаковка

Сайт на mkdocs — не «красивость», а способ держать документацию проверяемой: сборка идёт на каждом pull request, а хук hooks/repo_links.py перенаправляет ссылки, которые уводят за пределы docs/, на репозиторий, а не на несуществующую страницу.

Упаковка закрывает вопрос «а как это поставить без pip»: формула Homebrew ставит sdist из PyPI в виртуальное окружение с Python 3.13, манифест Scoop — Windows-бандл. В CI появилась задача, которая скачивает обе ссылки, сверяет SHA-256 и проверяет раскладку бандла: неверный хеш или устаревшая версия валят pull request.

Публикация перестала быть необратимой

release-draft.yml собирает тело релиза из CHANGELOG и создаёт черновик. Черновик не запускает publish.yml, поэтому в PyPI ничего не попадает до нажатия кнопки. Для инструмента, который сам проверяет чужие репозитории, это логично: ошибка в релизных заметках не должна становиться необратимой публикацией.

Проверка Было Стало
changelog.link-refs ошибка предупреждение: Keep a Changelog их не требует
changelog.types подзаголовок ломал поиск ### Added — template language читается как Added
doc и privacy разные обходы дерева один обход, пропускает точечные каталоги кроме .github/ и .well-known/
doc и ignore_rules читал только audit читают оба
meta check --repo проверял пустые аргументы читает репозиторий через gh api
audit без каталога wiki/ падал пропускает проверку

Замеры и цифры

Снято 08.11.2026: обновление пакета через pip и аудит на реальном репозитории (PHP-Shield, 16 страниц вики, MIT).

Что измерено Значение Как
Версия до обновления github-agent 1.2.2 ghagent --version
Версия после pip install --user -U github-agent-cli==1.3.0 github-agent 1.3.0 ghagent --version
Команд в CLI 13 (audit, doc, privacy, assets, wiki, changelog, meta, install, verify-install, uninstall, snippet, report, selftest) ghagent --help
Аудит живого репозитория score 100.0 %, 34 проверки, 0 пропущено, код 0 ghagent audit . --min-score 90
Проверки, которые прошли в аудите README (сводка, бейджи, оглавление, установка, использование, лицензия), CHANGELOG (версии, Unreleased, типы), AGENTS.md (наличие, команды, проверка, ловушки), wiki-source (16 страниц), ассеты (баннер, соцпревью 1280×640) вывод аудита
Хеши ассетов релиза wheel 71 318 Б 1769712f…ff76, sdist 317 245 Б 759b65f4…e7ae, Windows-бандл 72 886 Б cd88d485…77fe таблица в заметках к релизу
github-agent 1.3.0: проверки на живом репозитории и размеры пакетов

Три вывода. Первый: набор команд не изменился — 13 и было 13, релиз про качество проверок, а не про новые подкоманды. Второй: аудит на ухоженном репозитории даёт ровно 100 % и код 0 — то есть проверки не «всегда что-то находят», а действительно различают состояние. Третий: хеши в заметках даны отдельно для сборок на раннере и для ассетов из тега, и это разные файлы одного коммита — сравнивать надо каждый со своим, а не один с другим.

Чего замеры не показывают: я не проверял работу вики-резолвера на реальном вики-чекауте и не собирал сайт на mkdocs — в репозитории, где гонялся аудит, сайт не настроен. Установку через Homebrew и Scoop тоже не проверял: у меня Windows без этих менеджеров и без Ruby. Эти части — по заметкам к релизу.

Установка и обновление

flowchart LR
  A["pip install --user -U github-agent-cli==1.3.0"] --> B["ghagent --version"]
  B --> C["ghagent audit . --min-score 90"]
  C --> D{"код 0?"}
  D -- да --> E["проход по репозиторию"]
  D -- нет --> F["смотреть таблицу проверок"]
  E --> G["ghagent doc, wiki verify, report"]
# обновление пакета
pip install --user --upgrade "github-agent-cli==1.3.0"
ghagent --version

# проверка на своём репозитории
cd /путь/к/репозиторию
ghagent audit . --min-score 90
Способ Команда Когда удобно
pip pip install --user github-agent-cli обычная установка Python-инструмента
Homebrew brew install paulmann/github-agent-cli/github-agent-cli macOS и Linux с Homebrew (формула ставит sdist в venv)
Scoop scoop install github-agent-cli Windows с Scoop (бандл плюс Python)
Windows-бандл распаковать github-agent-cli-1.3.0-windows-x64.zip когда Python ставить не хочется

Проверка после обновления

flowchart TD
  V1["версия: ghagent --version"] --> V2["свои тесты: python tests/run_tests.py"]
  V2 --> V3["аудит на живом репозитории: score и код"]
  V3 --> V4["док-проверки: ссылки, якоря, приватность"]
Шаг Ожидание Что значит отклонение
ghagent --version github-agent 1.3.0 старая версия в PATH — проверьте, откуда запускается
ghagent --help 13 команд и код 0 код не 0 — проблема установки, а не проверок
ghagent audit . таблица проверок и итоговый score низкий score — реальные замечания, смотрите строки fail
ghagent doc --root . проверка markdown, ссылок, якорей ошибки ссылок в вики — см. новое правило резолва
python tests/run_tests.py по заметкам к релизу: 194 из 194 провал — среда Python не та

Совместимость

Что Состояние
Python 3.13 в формуле и бандле; пакет ставится в виртуальное окружение
Рантайм-зависимости ноль; ruff, mypy, CodeQL — только для разработки
Поведение проверок часть правил смягчена: changelog.link-refs — предупреждение вместо ошибки
Репозитории без вики audit больше не падает, wiki-source пропускается
Репозитории без сайта документации новые проверки не требуют его наличия

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

  • Черновик релиза — это черновик. Он не публикует пакет, и если ждать автопубликации, релиз просто не выйдет: Publish нажимается руками.
  • Хеши сборок разные. В заметках прямо сказано: файлы из PyPI собраны на раннере, ассеты релиза — из дерева тега. Сверять каждый со своим хешем, иначе получите ложное расхождение.
  • Резолв вики зависит от служебных файлов. Если в каталоге нет _Sidebar.md и _Footer.md, ссылки будут проверяться по обычным правилам репозитория — и «страница без расширения» снова станет ошибкой.
  • ignore_rules теперь влияет и на doc. Кто привык, что исключения действуют только в audit, увидит меньше ошибок в doc — это ожидаемо, но лучше знать заранее.
  • Смягчённые правила скрывают долг. changelog.link-refs из ошибки стал предупреждением: CI позеленеет там, где раньше падал. Для нового репозитория это удобно, для старого — способ не заметить разъехавшиеся ссылки.
  • Формула Homebrew ставит конкретную версию sdist. При обновлении ждите отставания между PyPI и формулой: livecheck подскажет, но обновлять надо отдельным PR.
  • Аудит на «своём» репозитории может дать 100 %. Это не значит, что всё хорошо: проверки покрывают гигиену, а не логику. 100 % — про форму, не про содержание.

FAQ

Что главное в 1.3.0?

Вики-aware проверки и предсказуемая публикация: ссылки на страницы вики больше не считаются битыми, а релиз создаётся черновиком и ждёт человека.

Есть ли новые команды?

Нет. Их по-прежнему 13: audit, doc, privacy, assets, wiki, changelog, meta, install, verify-install, uninstall, snippet, report, selftest. Релиз про поведение, а не про расширение CLI.

Почему аудит дал ровно 100 %?

Потому что репозиторий, на котором я его гонял, ухожен: README с оглавлением и установкой, CHANGELOG с Unreleased, AGENTS.md с командами и ловушками, 16 страниц вики, баннер и соцпревью. На запущенном репозитории score будет ниже, и это нормально.

Нужен ли mkdocs, чтобы пользоваться инструментом?

Нет. Сайт документации — часть репозитория самого инструмента; на вашем репозитории достаточно, чтобы проверки проходили.

Чем Homebrew-формула отличается от pip?

Она ставит sdist в отдельное виртуальное окружение с Python 3.13, то есть не трогает системный Python. Версия в формуле может отставать от PyPI — это нормально для упаковки.

Что делать, если после обновления аудит покраснел?

Смотреть строки fail в таблице: каждая называет правило и объект. Часть старых правил смягчена, так что чаще причина в реальном замечании, а не в изменении поведения.

Итог

1.3.0 — релиз зрелости: инструмент перестал спотыкаться о вики, получил проверяемую документацию, статический анализ и упаковку, а публикацию сделал ручной и потому предсказуемой. Мои замеры простые и проверяемые: обновление с 1.2.2 до 1.3.0 прошло, команд по-прежнему 13, аудит на ухоженном репозитории дал 100 % и код 0. Что стоит держать в голове — хеши PyPI-сборок и ассетов из тега не совпадают по определению, а смягчённые правила проверок могут скрыть накопленный долг в старом репозитории.

Цитата: Проверки полезны не тогда, когда всегда зелёные, а когда могут отличить ухоженный репозиторий от запущенного.

Связанные материалы

LLM Summary

  • Тема: github-agent 1.3.0 — инструмент гигиены репозитория: вики-aware проверки, сайт документации, статический анализ, черновик релиза, упаковка.
  • Новое: понимание вики в md.link-local (имена с точками), служебные файлы вики как замечание, сайт на mkdocs Material с хуком для внешних ссылок, ruff/mypy/CodeQL в CI, release-draft.yml (draft вместо автопубликации), Homebrew-формула, Scoop-манифест, Windows-бандл.
  • Изменено: changelog.link-refs — предупреждение, changelog.types понимает подзаголовки, doc и privacy используют один обход дерева, doc читает ignore_rules, meta check --repo работает через gh api, audit пропускает отсутствующую вики.
  • Замеры 08.11.2026: обновление github-agent-cli==1.3.0 через pip —user, ghagent --version → 1.3.0; в CLI 13 команд; ghagent audit . --min-score 90 на живом репозитории → score 100.0 %, 34 проверки, 0 пропущено, код 0.
  • Хеши релиза: wheel 71 318 Б 1769712f…ff76; sdist 317 245 Б 759b65f4…e7ae; Windows-бандл 72 886 Б cd88d485…77fe.
  • Важно: сборки PyPI и ассеты из тега — разные файлы одного коммита, сверять каждый со своим хешем.
  • Не проверялось: вики-резолвер на реальном вики-чекауте, сборка mkdocs, установка через Homebrew и Scoop.
  • Ссылки: https://github.com/paulmann/github-agent/releases/tag/v1.3.0, https://sysadministrator.ru/github-agent/

Промт для агента (установка и настройка)

Готовый промт для AI-агента: скопируйте блок целиком. Шаги опираются на AGENTS.md репозитория github-agent и раздел Verification заметок к релизу.

Задача: обновить github-agent до 1.3.0 и прогнать проверки на своём репозитории, не меняя его содержимое.

Материалы:
- репозиторий: https://github.com/paulmann/github-agent
- контракт для агентов: https://github.com/paulmann/github-agent/blob/main/AGENTS.md
- релиз: https://github.com/paulmann/github-agent/releases/tag/v1.3.0

Шаг 1. Установить или обновить:
pip install --user --upgrade "github-agent-cli==1.3.0"
ghagent --version            # ожидается github-agent 1.3.0

Шаг 2. Сверить набор команд: ghagent --help
# ожидается 13 команд: audit, doc, privacy, assets, wiki, changelog, meta, install,
# verify-install, uninstall, snippet, report, selftest

Шаг 3. Аудит репозитория без изменений:
cd /путь/к/репозиторию && ghagent audit . --min-score 90
# код 0 — порог пройден; строки fail называют правило и объект

Шаг 4. Проверки документации: ghagent doc --root .
# в вики-чекауте (есть _Sidebar.md или _Footer.md) ссылки на страницы резолвятся в Page.md

Шаг 5. Свои тесты пакета: python tests/run_tests.py (по заметкам к релизу — 194 из 194)
Шаг 6. Единый отчёт: ghagent report .

Запрещено:
- править репозиторий во время аудита: проверки должны читать, а не менять;
- ждать автопубликации релиза: release-draft создаёт черновик, Publish нажимает человек;
- сверять хеш PyPI-сборки с хешем ассета релиза: это разные файлы одного коммита;
- считать score 100 % доказательством корректности кода: проверки про гигиену, а не про логику;
- отключать ignore_rules «чтобы позеленело»: правило теперь влияет и на doc, и на audit.

Что считать успехом: версия 1.3.0, 13 команд, аудит с кодом 0 и понятным score, отчёт без новых fail.