AI хорошо известен в роли код-генератора. Скилл смотрит на спецификацию или промпт, выдаёт реализацию. Это полезно, но это не самое ценное, что AI делает в архитектурной работе.
Самая недооценённая роль — AI как design-критик: проверка дизайна до того, как написана хоть одна строка кода. Валидация спеки, разбор Event Storming-черновика, поиск противоречий в Ubiquitous Language, выявление агрегатов, перегруженных инвариантами. Тех вещей, на которых архитектор-человек спотыкается ровно потому, что читает спеку сверху вниз и не держит в голове все 16 разделов одновременно.
Что внутри (на 30 секунд):
- Три роли AI: code-generator, code-reviewer, design-critic. Их часто путают, на деле это разные задачи и разные классы ошибок
- 9 категорий проверок дизайна: Tier consistency, Ubiquitous Language, Bounded Context, Aggregates, Actors/Roles, Commands, Domain Events, Failure Domains, Data Ownership, Acceptance Criteria, NFR
- Скилл
ucp-spec-review— парный кucp-spec-design. Делает симметрию полной: для каждого design-скилла теперь есть симметричный review- Существующий сервис: скилл работает на спеке, восстановленной из реального состояния кода — не только на свежем драфте
- Триггер появления — комментарий Senior architect под публикацией, что в индустрии этот класс работ AI выполняет лучше человека
Три роли AI в работе с кодом и архитектурой
Их часто сваливают в одну. Тем не менее это три отдельных класса задач, с разными требованиями, разными ошибками, разной точкой включения в процесс.
Code-generator
AI пишет код по описанию. Промпт — спецификация — реализация. Пример скиллов в нашей цепочке: ucp-pattern-design, ucp-api-design, ucp-ddd-tactical-design, ucp-bootstrap-design.
Что AI делает хорошо: воспроизводит идиоматический код по чётко заданным правилам. На Java/Spring со скиллами Use Case Pattern одинаковая задача даёт одинаковый код у разных разработчиков.
Что AI делает плохо без правил: «средний код из training data» — Spring Data JPA где надо jOOQ, контроллер с бизнес-логикой, отсутствие идемпотентности. Об этом — отдельная статья «AI пишет код. Зачем тогда методология?».
Code-reviewer
AI проверяет уже написанный код против правил. Промпт — diff (или весь файл) — список замечаний с цитированием правил. Пример скиллов: ucp-pattern-review, ucp-api-review, ucp-java-style-review, ucp-ddd-tactical-review, ucp-auth-review.
Что AI делает хорошо: проходит по чек-листу из десятков правил быстрее любого человека. Не устаёт. Не пропускает «вот это уже в третий раз». Цитирует код правила (R-7, JS-2.5, BR-C5) — замечание понятно автору.
Что AI делает плохо без контекста: не видит «вписывается ли это в архитектуру в целом», не оценивает компромиссы. Это работа человека, AI закрывает банальное, чтобы человек сосредоточился на нетривиальном.
Подробнее — «Как ревьюить код, который написал AI».
Design-critic
AI проверяет дизайн — спеку, Event Storming-черновик, Context Map — на противоречия, пропуски, несогласованность. До того, как написана строка кода. Это самая недооценённая роль.
Что AI делает уникально хорошо:
- Кросс-секционные проверки. Человек читает спеку сверху вниз. Глоссарий в §2, команда в §7, event в §8, AC в §15 — между ними десятки страниц. Несовпадение «команда
CancelOrderв §7 vs терминcancellationотсутствует в глоссарии» человек пропустит на 80% спек. AI проверяет все 16 разделов в одном проходе. - Дубликаты и синонимы в Ubiquitous Language.
OrdervsPurchasevsSaleдля одной сущности. Архитектор замечает только когда уже сидит на ревью; AI ловит сразу. - Подсчёт инвариантов в агрегатах. Тут даже архитектор обычно не считает — а агрегат с 12 инвариантами почти всегда реальный split candidate.
- Orphans. Событие без потребителя, актор без роли, BR без AC. Класс ошибок «что-то лишнее или что-то недостающее» — AI сильнее.
Чего AI не делает: не принимает архитектурное решение. Не выбирает между Saga и 2PC, между event-sourcing и snapshot. Это всё ещё человек.
9 категорий проверок: что валидирует ucp-spec-review
Скилл ucp-spec-review — парный к ucp-spec-design. Симметричная пара design ↔ critic, как у других скиллов методологии. На входе — спека (16 разделов или Tier A/B/C) или Event Storming-черновик, на выходе — список находок с кодами правил и приоритетами.
Категорий правил девять. Каждая отвечает на конкретный класс «что обычно ломается в спеке».
1. Tier consistency (SR-T-*)
Заявленный Tier и реальная глубина спеки совпадают. Спека «Order Service (Tier C)» без агрегатов — критический рассинхрон. Спека «Notification (Tier A)» с тремя агрегатами — переусложнение, перевести на Tier B.
2. Ubiquitous Language (SR-UL-*)
Каждый термин глоссария используется в других секциях. Один концепт — одно имя (нет Order / Purchase / Sale для одной сущности). Команды и события из §7-§8 используют термины глоссария, не выдуманы заново. Каждый термин имеет определение, не просто упомянут.
Это самая частая категория находок на свежих спеках. На Tier C-сервисе с 30+ терминами в глоссарии у людей не хватает рабочей памяти проверить все упоминания.
3. Bounded Context (SR-BC-*)
§1 имеет явный scope И not-scope. Каждая команда в §7 принадлежит этому контексту, не соседнему. Нет невидимого пересечения с соседями (Catalog upstream — а в §3 у нас Product как entity? Ошибка).
4. Aggregates / Domain Model (SR-AG-*, Tier C)
Каждый агрегат имеет ≤ 7 инвариантов (split candidate). Агрегат-корень явный, под-сущности внутри. Нет циклических ссылок. Value Objects иммутабельны. Identity-типы — OrderId, не Long.
5. Actors / Roles (SR-AR-*)
Каждый актор, упомянутый в §10 или §7 — есть в §5 ролей. Каждая роль имеет матрицу прав по §7 командам и §9 запросам. Каждая команда в §7 декларирует роли-инициаторы.
6. Commands (SR-CM-*)
У каждой команды: успешный результат, набор бизнес-ошибок (со ссылкой на §13), пред- и пост-условия. На Tier C — целевой агрегат. CQRS: команды не возвращают «толстые» read-DTO. Money-команды — обязательная идемпотентность.
7. Domain Events (SR-EV-*, Tier B+)
У каждого события минимум один потребитель (внутренний или внешний из §14). Имена — глаголы в прошедшем времени (OrderPaid, не PayOrder). retryable события требуют идемпотентного консьюмера. На Tier C — публикация через Outbox, не eventBus.publish() после save().
8. Failure Domains (SR-FD-*)
У каждого внешнего соседа — стратегия при отказе (плавная деградация / очередь / запасной путь / отказ). §16 НФТ говорит, где допустим eventual consistency, где обязателен strong. У внешних вызовов — таймаут или Circuit Breaker.
9. Data Ownership / NFR / Acceptance Criteria
Каждая сущность в §3 — ровно один владелец-сервис. PII-поля — явная политика хранения и удаления. Каждое бизнес-правило в §6 покрыто хотя бы одним AC в §15. Каждая команда — happy + error path AC. NFR — измеримые пороги, не «быстро» / «надёжно».
Триггер: реакция рынка
Этот скилл и эта статья появились не из плана, а из комментария под LinkedIn-публикацией про 7 шагов до AI. Senior architect в комментарии написал примерно так:
«AI хорошо работает именно на 0-шаге — валидировать Event Storming-черновик, искать пропущенных акторов, проверять Ubiquitous Language на согласованность. Это не "AI после спеки", а AI как design-критик. Часто полезнее, чем AI как кодогенератор.»
Точное наблюдение от практика. На него отвечать — мало; имеет смысл встроить в продукт. Через сутки появился ucp-spec-review.
Это и есть ценность открытого фидбека: рынок подсвечивает пробелы быстрее, чем команда сама их видит.
Существующий сервис: тот же скилл на восстановленной спеке
Возражение из того же комментария: бóльшая часть AI-кодинга — инкременты в существующих кодовых базах, не на чистом листе. Там 0-шаг другой:
- Восстановить реальные границы — не из Confluence, а из ArchUnit-аудита графа зависимостей, Kafka-ивентов, общих таблиц БД. Реконструируем data ownership как есть.
- Спека получается частичная — половина уже сделана, и часто плохо. Но даже частичную спеку можно прогнать через
ucp-spec-reviewи получить список «что нужно дописать прямо сейчас, что можно отложить». - Решение по слоям — что трогаем по чистой границе как новый модуль, что пока работает по правилам существующей архитектуры.
ucp-spec-review работает в режиме es (Event Storming-черновик) или на частично заполненной спеке — пропускает категории правил, требующие полностью заполненных секций, и фокусируется на том, что есть.
Это превращает спека-аудит из «давайте перепишем всю документацию заново» (которое никто не делает) в «10 минут на скилл, получаем приоритизированный список — что критично, что подождёт».
Цепочка design ↔ critic ↔ code
Чтобы видно было, как это встаёт в общий процесс:
бизнес-описание / Event Storming-черновик
↓
ucp-spec-design → спека в docs/spec/ (16 разделов или Tier A/B/C)
↓
ucp-spec-review → список находок с кодами правил
↓
человек правит спеку (или re-run ucp-spec-design с поправками)
↓
ucp-spec-review (Fast) → 0 Critical
↓
ucp-pattern-design / ucp-ddd-tactical-design / ucp-api-design
↓
код в repo
↓
ucp-pattern-review / ucp-api-review / ... → замечания на код
↓
PR-ревью человеком
↓
merge
Раньше переход «спека → код» был необратимым. Спека написана, код пишут по ней, через две недели обнаруживают дыру — переписывают код. Со скилл-парой spec-design ↔ spec-review дыры подсвечиваются до кодогенерации. Это и есть «AI как партнёр архитектора», а не «AI как пишущая машинка».
Где это применимо, где нет
Применимо:
- Новый сервис с нуля — после
ucp-spec-designзапуститеucp-spec-reviewперед первой кодогенерацией. - Аудит существующего сервиса — у вас есть PDF-стандарт, который не исполняется. Импортируете спеку как markdown, прогоняете через
ucp-spec-review— получаете срез её слабых мест. - Event Storming-черновик — после workshop-а, перед формализацией. Режим
esподсветит пропущенных акторов и язык-несогласованности. - Регулярный design-аудит — раз в квартал прогон по всем спекам сервисов в монорепо. На больших командах это снимает «Confluence-протух».
Не применимо:
- Очень тонкая спека (< 5 из 16 секций заполнено). Скилл вернёт «not enough material» — нечего проверять.
- Принятие архитектурного решения — Saga vs 2PC, монолит vs микросервисы. Это работа человека или
superpowers:brainstorming, не review-скилла. - Прозвон бизнес-логики на корректность — спека может быть чисто внутренне согласованной, но реализовать неверный бизнес-процесс. Это работа бизнес-аналитика и продакта.
Что дальше
- Скиллы UCP — каталог и установка — как добавить
ucp-spec-reviewв свой проект (после клона репоinstall.shподхватывает его автоматически) - Use Case Pattern: пошаговый гид — как
ucp-spec-reviewвстаёт в цепочку «бизнес-описание → код» - Use Case спецификация: универсальный шаблон — формат, против которого валидирует скилл
- Внедрение в команде — на странице услуг описан формат: 2–6 месяцев, методология + AI-скиллы + поддержка автора