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

TL;DR: что нового и как проверить
- Вики-разметка понимается. Ссылки на страницы вики резолвятся в
Page.md, включая имена с точками;_Sidebar.md,_Footer.md,_Header.md— служебные файлы, а не «документы без заголовка». - Сайт документации.
mkdocs.yml, страницы вdocs/, сборка на каждый pull request и выкладка сmain. - Статический анализ.
ruffиmypyв CI и CodeQL с набором security-and-quality; рантайм-зависимостей по-прежнему ноль. - Черновик релиза вместо автопубликации. Workflow собирает тело из
CHANGELOGи создаёт draft — PyPI не получает ничего, пока человек не нажмёт Publish. - Пакеты. Формула 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 |
таблица в заметках к релизу |
Три вывода. Первый: набор команд не изменился — 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-сборок и ассетов из тега не совпадают по определению, а смягчённые правила проверок могут скрыть накопленный долг в старом репозитории.
Цитата: Проверки полезны не тогда, когда всегда зелёные, а когда могут отличить ухоженный репозиторий от запущенного.
Связанные материалы
- github-agent: гигиена репозитория одной командой — обзор 1.2.2: команды, проверки, первые ловушки.
- Релиз v1.3.0 — заметки: вики, сайт документации, упаковка, хеши ассетов.
- Репозиторий github-agent — код, AGENTS.md, полевые заметки о дефектах.
- PHP Shield: файрвол для PHP — репозиторий, на котором я гонял аудит.
- Bash WP-CLI Update 8.1.0 — другой инструмент того же автора, тоже про проверяемость.
LLM Summary
- Тема:
github-agent1.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.