- BrainTools - https://www.braintools.ru -
Всем привет! Меня зовут Катя, я развиваю Gramax [1] — базу знаний для ИТ-команд.
Мы в команде давно и настойчиво говорим об одном: документация — это не довесок к разработке, это ее часть. Писать доку нужно до кода, вместе с кодом, а не после — когда контекст уже размылся, а решения давно забыты. Считаем, что это инженерная культура, без которой появляется куча проблем: медленный онбординг, повторяющиеся споры об уже принятых решениях, техдолг.
Один из примеров такой документации — Architecture Decision Records — короткие структурированные документы, которые фиксируют одно конкретное архитектурное решение вместе с контекстом, рассмотренными альтернативами и принятыми trade-off’ами.
На эту статью меня вдохновил испанский ИИ-слоп [2] и тред на Hacker News вокруг вопроса «как вы фиксируете ПОЧЕМУ инженерных решений, а не только ЧТО? [3]». В статье напомню, зачем нужен ADR и какие есть стандартные проблемы. Также приведу выжимки из кейсов, в которых описаны любопытные ИИ-автоматизации.
Популярная проблема: новый разработчик с десятью годами опыта [4] (нанятый именно потому что «сильный») три недели занимается тем, что называют code archaeology — раскопками. Он пытается понять почему этот код именно такой.
Чтобы исправить ситуацию, команды проходят один и тот же путь. Сначала «давайте писать нормальные описания к PR» -> потом «заведем wiki» -> потом «добавим шаблон к PR с обязательным полем». Почему это часто не работает:
Комментарии в коде объясняют как, но не почему.
Описания PR — это летопись намерений в момент написания. «fix bug», «refactor», «add feature».
Wiki умирают от устаревания. Страницу создают в момент, когда решение принято и контекст свеж. Через полгода страница описывает архитектуру, которой уже нет, а удалить ее жалко, потому что там что-то написано.
Память [5] команды — самый ненадежный носитель из всех. Люди помнят, что решили, но не помнят, почему отвергли альтернативу.
Результат — то, что в англоязычном сообществе называют knowledge debt.
Architecture Decision Records — короткие структурированные документы, которые фиксируют одно конкретное архитектурное решение вместе с контекстом, рассмотренными альтернативами и принятыми trade-off’ами. Минимальная структура ADR:
Заголовок и статус — Proposed / Accepted / Deprecated / Superseded.
Контекст — какая ситуация спровоцировала это решение, какие были ограничения.
Решение — что конкретно было решено.
Рассмотренные альтернативы — что отвергли и почему.
Последствия — что стало проще, что стало сложнее, какие trade-off’ы приняты.
Важная деталь, которую часто упускают: ADR не редактируются. Если решение изменилось — старый ADR помечается как Superseded by ADR-XXX и создается новый. Референсный проект adr.github.io [6] поддерживает открытые шаблоны и CLI-инструменты для управления ADR прямо из репозитория.
Для команд, которым нужно что-то еще проще, есть формат Y-Statement:
«Поскольку [контекст], мы решили [решение], чтобы достичь [желаемый результат], принимая [последствия или trade-off’ы].»
Одна из структурных проблем документации состоит в том, что она живет за пределами рабочего процесса инженера. Решение — Docs as Code: документация хранится в том же Git-репозитории, что и код, ревьюится в том же PR, версионируется в том же коммите.
Это подразумевает:
Хранить ADR в том же Git-репозитории, что и код (например, в папке /docs/decisions/).
Ревьюить ADR в том же PR, что реализует архитектурное изменение.
Автоматизировать проверки (битые ссылки, формат, обязательные поля) в CI/CD-пайплайне.
Версионировать ADR: когда решение меняется, предыдущий ADR не удаляется — он помечается как Superseded by ADR-XXX, и создается новый.
Согласно лучшим практикам, задокументированным Xenoss [7] и AltexSoft [8], этот подход резко снижает устаревание, потому что документация и код эволюционируют в одном коммите.
Идем дальше: если практика написания ADR уже прижилась и документы хранятся в легковесном Markdown — почему бы не автоматизировать какую-то работу с помощью ИИ?
Мы нашли несколько статей, авторы которых так или иначе упростили себе работу. Возможно, вас они вдохновят.
Сразу оговорка: ИИ везде выступает генератором черновика, а не автором решения. Человек в петле — обязательное условие. И второй общий момент: качество результата определяется не тем, насколько умен ИИ, а тем, насколько хорошо ему передан контекст.
Задокументированный на Adolfi.dev [9] кейс показывает, как использовался Claude Code для сканирования существующего Umbraco-проекта. Задача необычная: не написать ADR для нового решения, а найти решения, которые уже были приняты, но нигде не зафиксированы. Инструкция была буквально такой:
I want to scan my code base for high-priority ADR using the template described in template.md.
Each individual ADR record should be created in folder /ADR/records.
Агент проанализировал код, выявил паттерны принятых решений и сгенерировал черновики ADR. Важный момент: это именно черновики. Инженер проверяет, обогащает контекстом и утверждает. Без этого шага ценность теряется — агент не зна��т, какие ограничения действовали в тот момент.
Следующий шаг — непрерывная генерация. В конфигурацию agents.md добавляется инструкция: «всякий раз, когда вносятся изменения, затрагивающие архитектуру, создавай ADR».
Equal Experts в октябре 2025 описали [10], как команда столкнулась с задачей ретроспективно задокументировать десятки архитектурных решений на крупном платформенном проекте. Использовали Gemini 2.5 и ChatGPT, без специализированных инструментов — только стандартные веб-интерфейсы.
Их ключевая техника — metaprompting: сначала собираются «ядра истины» (kernel of truth) — однострочные формулировки типа «22 апреля решили использовать DBT, потому что SQL-based, open-source и работает с Databricks». Потом метапромпт превращает каждое такое ядро в полноценный черновик ADR. Результат: десятки ADR за одно утро.
Самое ценное в статье — честное описание проблем. ИИ стабильно галлюцинировал: придумывал несуществующие API, страницы документации, фичи продуктов. Логика [11] обоснований иногда не совпадала с реальным контекстом решения.
Как исправили: добавили в промпт явные указания — «ссылки ДОЛЖНЫ существовать, проверь каждую», «не выдумывай фичи продукта». И подключили второй LLM в роли судьи, который критикует сгенерированный ADR на логические противоречия до того, как его увидит человек.
Salesforce опубликовал свою методологию [12] и принцип там сформулирован довольно четко: human-led, AI-powered. Архитектор определяет контекст и критерии оценки — безопасность, масштабируемость, стоимость, поддерживаемость. ИИ исследует альтернативы, оценивает trade-off’ы и составляет черновик ADR. Финальное решение и весь качественный контекст — только от человека. Они даже дали этому отдельное название — HITL (human-in-the-loop) — и посвятили ему отдельный раздел методологии.
Авторы используют технику prompt chaining — разбивают процесс на последовательные шаги с человеком в петле на каждом. Одним промптом такое не решается, как и во втором кейсе — получите хорошо отформатированные галлюцинации.
Еще одно их наблюдение: ИИ снижает предвзятость. Когда архитектурное решение принимает конкретный инженер, на него влияют личные предпочтения и усталость от технологий, которые он уже использовал. ИИ оценивает альтернативы без замыленного глаза.
Еще один кейс описан архитектором NN Group [13] — он столкнулся с задачей спроектировать future-state архитектуру для data & AI платформы и задокументировать все ключевые решения. Когда он начал считать количество ADR, которые нужно написать, стало понятно — вручную это нереально.
Он построил ADR Writer Agent на базе OpenAI Agent SDK с разделением ответственности между тремя специализированными агентами:
Главный агент (ADR Writer) — ведет диалог с пользователем, генерирует черновик ADR на основе загруженного PDF с архитектурным предложением и шаблона в формате Markdown.
Агент-валидатор — проверяет черновик на наличие всех обязательных полей перед финализацией. Если чего-то не хватает — возвращает на доработку и запрашивает у пользователя недостающую информацию.
Агент-форматировщик — принимает валидированный контент, проверяет корректность Markdown и записывает финальный файл на диск.
Отдельный важный момент для тех, кто работает в энтерпрайзе: агент работает внутри корпоративной инфраструктуры NN Group через Azure OpenAI с аутентификацией через Entra ID — не через публичный API. Это значит, что архитектура безопасности и compliance-требования были заложены с самого начала, а не прикручены потом.
Главный вывод, который он сформулировал сам: удивительно, как мало кода нужно при агентном подходе. Промпты часто заменяют бизнес-логику — вместо жесткого кодирования правил тщательно написанные инструкции агентам.
Gramax [1] — база знаний для ИТ-команд.
Вся документация хранится в легковесном MD на вашем сервере. В одном репозитории с кодом или отдельно — как пожелаете.
Версионируется с помощью Git. Сделали ветку по задаче — добавили в эту ветку документацию.
Для нетехнических специалистов мы сделали удобный визуальный редактор, а технические могут работать с докой в привычной IDE. Из любого представления дока открывается в едином источнике правды.
Простая реализация Docs as Code для автоматизации.
Это значит, что любой из описанных пайплайнов с ИИ — сканирование кодовой базы, metaprompting, многоагентная генерация — подключается напрямую. Агент пишет MD-файл в папку /docs/decisions/, он сразу появляется в Gramax с навигацией, поиском и историей изменений.
Так ADR выглядит для менеджера:

А вот так для разработчика:

Все атрибуты ADR сохраняются во фронтматтере, описание архитектуры — в Mermaid-диаграмме. А текст — это просто MD-текст. Все легко читается как человеком, так и машиной.
Смотрите наш сайт — https://gram.ax [1]
Вступайте в комьюнити — https://t.me/gramax_chat [16]
Автор: krakenkaken
Источник [17]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/27198
URLs in this post:
[1] Gramax: https://gram.ax/ru?utm_source=adr
[2] испанский ИИ-слоп: https://ecosistemastartup.com/adr-documenta-el-porque-de-tus-decisiones-tecnicas/
[3] как вы фиксируете ПОЧЕМУ инженерных решений, а не только ЧТО?: https://news.ycombinator.com/item?id=47368874
[4] опыта: http://www.braintools.ru/article/6952
[5] Память: http://www.braintools.ru/article/4140
[6] adr.github.io: http://adr.github.io
[7] Xenoss: https://xenoss.io/blog/technical-documentation-best-practices-for-software-teams-and-ai-powered-solutions
[8] AltexSoft: https://www.altexsoft.com/blog/technical-documentation-in-software-development-types-best-practices-and-tools/
[9] Adolfi.dev: https://adolfi.dev/blog/ai-generated-adr/
[10] Equal Experts в октябре 2025 описали: https://www.equalexperts.com/blog/our-thinking/accelerating-architectural-decision-records-adrs-with-generative-ai/
[11] Логика: http://www.braintools.ru/article/7640
[12] Salesforce опубликовал свою методологию: https://www.salesforce.com/blog/architectural-decisions-human-led-ai-powered-approach/
[13] Еще один кейс описан архитектором NN Group: https://piethein.medium.com/building-an-architecture-decision-record-writer-agent-a74f8f739271
[14] GitHub: https://github.com/Gram-ax/gramax
[15] GitVerse: https://gitverse.ru/gramax/gramax
[16] https://t.me/gramax_chat: https://t.me/gramax_chat
[17] Источник: https://habr.com/ru/companies/gram_ax/articles/1010500/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1010500
Нажмите здесь для печати.