ForgePlan v0.31.0 — что закрыли в этом релизе.
Версия от 2026-05-13.
Спринт без громких функций — методичная уборка после жёсткой проверки.
На этот раз я устроил собственному инструменту настоящий разнос: спринт с тремя волнами и 5-тью разными проверяющими агентами. Параллельно искали дыры в логике, в безопасности, в архитектуре. Нашли 19 проблем — одну критичную, две серьёзных, девять средних, семь мелких. Все 19 закрыли в этом релизе.
Что закрыли:
🔺 Самая неудобная история — гонка между параллельными копиями репозитория.
• Два агента в соседних рабочих копиях одного проекта одновременно создают новый артефакт и получают один и тот же номер. Один тихо затирает работу другого. Так в этом же спринте я сжёг два собственных подтверждения — EVID-118 и EVID-119. Пришлось чинить сам инструмент, которым отлаживал.
• Починили так: один общий замок на номера для всех копий плюс повторная проверка после записи. Если кто-то всё же успел вперёд — откатываемся и берём следующий номер.
🔺 Четыре дыры в безопасности.
• В заголовок артефакта можно было воткнуть невидимые управляющие символы. Глазами читаешь одно, инструмент видит другое — известная атака «Trojan Source». Защита была, но работала только в одном из четырёх мест записи. Три обходили её. Подняли проверку в общее ядро, подключили ко всем.
• Чистка вывода от опасных символов теперь работает во всех восьми местах печати, а не в части из них.
• Путь к домашней папке (а вместе с ним — логин) больше не утекает в JSON-ответ и в логи Claude Desktop. Раньше ошибка вида
chdir failed: /Users/alice отдавала имя пользователя наружу.• Все 40+ мест, где MCP возвращает внутреннюю ошибку, идут через очиститель чувствительных данных. До этого через него проходили только три.
🔺 Третий раз поймали один и тот же паттерн.
• CLI и MCP отдают «один и тот же отчёт», но через разные функции, и эти функции расходятся. Выделили одну общую функцию сборки JSON-отчёта
forgeplan health для обеих поверхностей. PROB-064 был первым случаем, CR-001 — вторым, теперь третий.🔺 Новая команда:
forgeplan release-notes.• Сама обходит коммиты между двумя точками в git, собирает артефакты, которые там менялись, и раскладывает по разделам Keep-a-Changelog. PRD → Added, PROB → Fixed, изменения с тегом безопасности → Security. Следующий релизный пост хочу сгенерировать этой командой и сравнить с тем, что написал бы руками.
🔺
forgeplan health --strict — для CI. Возвращает 1, если состояние не «здоровое». Один булевый сигнал, не надо собирать его самому из счётчиков.🔺 Прошлись по алертам Dependabot: обновили openssl (две уязвимости в цепочке), mermaid и uuid в
website/ (ещё пять). Добавили cargo-deny отдельным шагом проверки — теперь репозиторий каждый push и раз в неделю прогоняется через политики безопасности.🔺 Тесты: +33 интеграционных для 16 ранее непокрытых команд, +59 контрактных для MCP. Все 64 публичных инструмента теперь достижимы через JSON-RPC и покрыты регрессионными тестами.
🔺 Размер релиза: 26 коммитов, ~3500 строк изменений, 19 закрытий за один проход.
Рабочий каталог, на котором сам живу:
• 61 PRD
• 9 RFC
• 12 ADR
• 5 Spec
• 8 Epic
• 125 Evidence
• 66 Problem
• 43 Note
• 77 команд CLI
• 64 инструмента MCP
Все делают агенты, идут по линейке как солдаты с помощью
forgeplan + mcp. В следующих постах буду писать про функционал. Как использовать и какие тулы для каких задач. А также как засетапить у себя в проекте.
Установка:
brew install ForgePlan/tap/forgeplanИ скиллы для работы — здесь:
🔹 https://github.com/ForgePlan/marketplace
Полный список изменений:
🔹 https://github.com/ForgePlan/forgeplan/blob/main/CHANGELOG.md
