Навык gen-adr-assist
Используй этот навык, когда пользователь хочет создать, доработать, проверить или расширить архитектурное решение (ADR, Architectural Decision Record)
Когда применять навык
Применяй навык, если пользователь просит:
- написать ADR с нуля;
- превратить заметки, переписку или требования в ADR;
- сравнить варианты и зафиксировать решение;
- оформить выбор технологии, интеграционного подхода, модели данных, платформы, средства безопасности, варианта deployment;
- сначала сделать краткий draft, а затем полный документ;
- учитывать ограничения из
tech-radar.json.
Не применяй навык, если нужен:
- просто текст про архитектуру без фиксируемого решения;
- генерация кода без документирования решения;
- общее описание системы без выбора между альтернативами.
Именование файлов
- Файлы ADR должны именоваться по шаблону
adr-{номер:04d}-{slugify(заголовок)}.md, где slugify преобразует заголовок в нижний регистр, заменяет пробелы и знаки препинания на дефисы. Пример: adr-0001-ispolzovanie-postgresql.md.
- Папка для принятых ADR:
adr/ Не создавай в ней никаких файлов, кроме начинающхся с adr и файлов adr/history.log,adr/INDEX.md
- Папка для новых проектов ADR
adr/proposed
- Папка для устаревших ADR
adr/deprecated
- Папка для замененных ADR
adr/superseded
Добавляй в файл adr/history.log записи о создании ADR и изменении его статуса (переноса в соответствующий подкаталог) в формате YYYY-MM-DD {имя adr файла} {новый статус}
Структура навыка
Основные материалы лежат в двух каталогах:
assets/ — рабочие артефакты: шаблоны, checklist, tech-radar.json;
references/ — краткие руководства и справочные материалы.
Используй прежде всего:
assets/adr-template.md
assets/review-checklist.md
assets/tech-radar.json
references/question-flows.md
references/adr-types.md
references/adr-guide.md
references/tech-radar-guide.md
Обязательное поведение
- Проанализируй достаточность информации для заполнения шаблона:
assets/adr-template.md.
- Если информации недостаточно задай не более 3 вопросов из
references/question-flows.md.
- Чётко разделяй:
- факты;
- допущения (assumptions);
- варианты (options / alternatives);
- решение (decision);
- последствия (consequences).
- Один ADR = одно решение. Если решений несколько, предлагай разделить их на несколько ADR.
- Если пользователь назвал конкретную технологию, сначала проверь её в
assets/tech-radar.json.
- Если технология найдена и её
ring = hold, отвергни решение и прямо скажи, что технология находится в статусе hold в tech-radar.json навыка.
- Если технология не найдена в
assets/tech-radar.json, обязательно спроси, нужно ли добавить её в tech-radar.json навыка. До ответа пользователя не считай её согласованной по радару.
- Если технология имеет
ring = trial или assess, допускай её только с явной пометкой о риске, ограничении области применения и необходимости дополнительного обоснования.
tech-radar.json — это ограничение и источник governance-контекста, но не замена архитектурному мышлению.
Порядок работы
Шаг 0. Проверка упомянутых технологий в tech-radar.json
До архитектурных вопросов проверь, назвал ли пользователь конкретные продукты, frameworks, brokers, databases, platforms или tools.
Если технология названа:
- найди её в
assets/tech-radar.json;
- примени правила из
references/tech-radar-guide.md;
- только после этого переходи к формированию ADR.
Шаг 1. Определи тип ADR
Сопоставь запрос с одним из типовых решений:
- выбор технологии (technology choice);
- интеграция (integration style / API / messaging / file exchange);
- данные (data design / storage / ownership);
- безопасность (security / IAM / compliance);
- развертывание (deployment / runtime / platform);
- build vs buy;
- архитектурный принцип или правило.
Если тип неочевиден, используй references/question-flows.md.
Шаг 2. Задай минимум уточняющих вопросов
Задавай вопросы только о том, что меняет решение.
Обычно это:
- предмет решения;
- границы и затрагиваемые системы;
- драйверы решения (decision drivers);
- ограничения и стандарты;
- сроки или delivery pressure;
- ключевые quality attributes;
- варианты;
- риски и влияние на migration.
Нормальный объём — 3–5 сильных вопросов, а не длинная анкета.
Шаг 3. Подготовь ADR
Как только основы понятны, создай короткий draft по assets/adr-template.md.
Он должен содержать:
- заголовок;
- статус;
- краткий context;
- decision drivers;
- варианты с плюсами и минусами;
- предлагаемое решение;
- последствия;
- допущения и открытые вопросы.
Шаг 4. Отдай draft на review
После короткого draft попроси проверить:
- корректность формулировки решения;
- полноту вариантов;
- не пропущены ли ограничения;
- реалистичность последствий;
- можно ли раскрывать draft в полный ADR.
Используй assets/review-checklist.md.
Как задавать уточняющие вопросы
Руководствуйся references/question-flows.md и следующими правилами:
- задавай вопросы по важности для решения, а не по порядку разделов документа;
- предпочитай вопросы, на которые можно ответить коротко;
- там, где можно, предлагай варианты ответа;
- не спрашивай то, что уже можно вывести из контекста;
- не повторяй то, что пользователь уже сказал ранее.
Хорошие примеры:
- «Что именно выбираем: СУБД (database), способ интеграции (integration style) или границу владения данными (ownership boundary)?»
- «Что важнее: time-to-market, reliability, latency, cost или compliance?»
- «Есть ли ограничения по cloud, stack, data residency, support skills или стандартам безопасности?»
Плохие примеры:
- просить сразу заполнить все разделы ADR;
- задавать абстрактные вопросы без влияния на решение;
- требовать полный prose-текст до короткого draft.
Правила для tech-radar.json
Используй assets/tech-radar.json в формате Thoughtworks Build Your Own Radar.
Ожидаемая форма:
- корневое значение — JSON array;
- каждый элемент — blip / entry;
- обязательные поля обычно включают:
name
ring
quadrant
isNew
description
- дополнительное поле
status можно использовать для движения между ring.
Интерпретация ring:
adopt — предпочтительный вариант по умолчанию, если он подходит по драйверам;
trial — допустимо в ограниченном scope с явным описанием риска;
assess — допустимо как исследуемый вариант, обычно не как массовый стандарт;
hold — вариант должен быть отклонён.
Правило для явно названной технологии
Если пользователь прямо называет технологию:
- сначала проверь её в
assets/tech-radar.json;
- если
hold — отвергни решение;
- если записи нет — спроси, нужно ли создать дополнение к
tech-radar.json; сформируй файл дополнения
- до подтверждения не называй её «согласованной» или «рекомендованной» по радару.
Как писать об отклонении
Если технология в hold, формулируй примерно так:
- решение в текущем виде отклоняется;
- причина — технология находится в ring
hold в tech-radar.json навыка;
- предложи альтернативы из
adopt, trial или assess, если они есть;
- отрази это в ADR как ограничение или как отклонённую альтернативу.
Как писать о технологии, которой нет в радаре
Если технологии нет в assets/tech-radar.json:
- явно скажи, что она отсутствует в skill radar;
- спроси, нужно ли добавить её в
tech-radar.json навыка;
- если работу надо продолжать сразу, зафиксируй это как open governance question.
Требования к качеству ADR
Хороший ADR, созданный этим навыком:
- формулирует решение одной фразой;
- объясняет, почему вопрос возник сейчас;
- показывает реальные альтернативы;
- связывает аргументацию с decision drivers;
- честно отражает trade-offs;
- фиксирует последствия, включая негативные;
- определяет scope и impact;
- описывает migration / rollout, если это важно.
Слабый ADR обычно:
- описывает тему, но не решение;
- содержит только один вариант;
- скрывает компромиссы;
- смешивает несколько решений;
- не даёт понять, что делать дальше.
Предпочтительный формат ответа модели
Если данных мало
- кратко сформулируй, какое решение ты видишь;
- задай 3–5 вопросов;
- если пользователь уже назвал технологию — сначала обработай
tech-radar.json.
Если данных достаточно для short draft
- выдай короткий ADR по шаблону;
- отдельно покажи assumptions и open questions;
- предложи review по checklist.
Если есть подтверждение
- раскрой документ в полный ADR;
- сохрани решение и основные trade-offs;
- добавь детали implementation / migration / governance только там, где они уместны.
Краткий чек-лист перед сохранением
Используй assets/review-checklist.md для проверки решения
1---2name: gen-adr-assist3description: Creates, refines, reviews, and expands Architectural Decision Records (ADR) using project templates and tech-radar.json. Use when the user asks for ADRs, turns notes or requirements into ADR, compares architecture options, documents technology or integration choices.4---56# Навык `gen-adr-assist`78Используй этот навык, когда пользователь хочет **создать, доработать, проверить или расширить архитектурное решение (ADR, Architectural Decision Record)**910## Когда применять навык1112Применяй навык, если пользователь просит:13- написать ADR с нуля;14- превратить заметки, переписку или требования в ADR;15- сравнить варианты и зафиксировать решение;16- оформить выбор технологии, интеграционного подхода, модели данных, платформы, средства безопасности, варианта deployment;17- сначала сделать краткий draft, а затем полный документ;18- учитывать ограничения из `tech-radar.json`.1920Не применяй навык, если нужен:21- просто текст про архитектуру без фиксируемого решения;22- генерация кода без документирования решения;23- общее описание системы без выбора между альтернативами.2425## Именование файлов2627- Файлы ADR должны именоваться по шаблону `adr-{номер:04d}-{slugify(заголовок)}.md`, где slugify преобразует заголовок в нижний регистр, заменяет пробелы и знаки препинания на дефисы. Пример: `adr-0001-ispolzovanie-postgresql.md`.28- Папка для принятых ADR: `adr/` Не создавай в ней никаких файлов, кроме начинающхся с adr и файлов `adr/history.log`,`adr/INDEX.md`29- Папка для новых проектов ADR `adr/proposed`30- Папка для устаревших ADR `adr/deprecated`31- Папка для замененных ADR `adr/superseded`3233Добавляй в файл `adr/history.log` записи о создании ADR и изменении его статуса (переноса в соответствующий подкаталог) в формате `YYYY-MM-DD {имя adr файла} {новый статус}`343536## Структура навыка3738Основные материалы лежат в двух каталогах:39- `assets/` — рабочие артефакты: шаблоны, checklist, `tech-radar.json`;40- `references/` — краткие руководства и справочные материалы.4142Используй прежде всего:43- `assets/adr-template.md`44- `assets/review-checklist.md`45- `assets/tech-radar.json`46- `references/question-flows.md`47- `references/adr-types.md`48- `references/adr-guide.md`49- `references/tech-radar-guide.md`5051## Обязательное поведение52531. Проанализируй достаточность информации для заполнения шаблона: `assets/adr-template.md`. 542. Если информации недостаточно задай не более 3 вопросов из `references/question-flows.md`.553. Чётко разделяй:56 - факты;57 - допущения (assumptions);58 - варианты (options / alternatives);59 - решение (decision);60 - последствия (consequences).614. Один ADR = одно решение. Если решений несколько, предлагай разделить их на несколько ADR.625. Если пользователь назвал **конкретную технологию**, **сначала** проверь её в `assets/tech-radar.json`.636. Если технология найдена и её `ring` = **`hold`**, **отвергни решение** и прямо скажи, что технология находится в статусе `hold` в `tech-radar.json` навыка.647. Если технология **не найдена** в `assets/tech-radar.json`, **обязательно спроси**, нужно ли добавить её в `tech-radar.json` навыка. До ответа пользователя не считай её согласованной по радару.658. Если технология имеет `ring = trial` или `assess`, допускай её только с явной пометкой о риске, ограничении области применения и необходимости дополнительного обоснования.669. `tech-radar.json` — это ограничение и источник governance-контекста, но не замена архитектурному мышлению.6768## Порядок работы6970### Шаг 0. Проверка упомянутых технологий в `tech-radar.json`71До архитектурных вопросов проверь, назвал ли пользователь конкретные продукты, frameworks, brokers, databases, platforms или tools.7273Если технология названа:741. найди её в `assets/tech-radar.json`;752. примени правила из `references/tech-radar-guide.md`;763. только после этого переходи к формированию ADR.7778### Шаг 1. Определи тип ADR79Сопоставь запрос с одним из типовых решений:80- выбор технологии (technology choice);81- интеграция (integration style / API / messaging / file exchange);82- данные (data design / storage / ownership);83- безопасность (security / IAM / compliance);84- развертывание (deployment / runtime / platform);85- build vs buy;86- архитектурный принцип или правило.8788Если тип неочевиден, используй `references/question-flows.md`.8990### Шаг 2. Задай минимум уточняющих вопросов91Задавай вопросы только о том, что меняет решение.92Обычно это:93- предмет решения;94- границы и затрагиваемые системы;95- драйверы решения (decision drivers);96- ограничения и стандарты;97- сроки или delivery pressure;98- ключевые quality attributes;99- варианты;100- риски и влияние на migration.101102Нормальный объём — **3–5 сильных вопросов**, а не длинная анкета.103104### Шаг 3. Подготовь ADR105Как только основы понятны, создай короткий draft по `assets/adr-template.md`.106107Он должен содержать:108- заголовок;109- статус;110- краткий context;111- decision drivers;112- варианты с плюсами и минусами;113- предлагаемое решение;114- последствия;115- допущения и открытые вопросы.116117### Шаг 4. Отдай draft на review118После короткого draft попроси проверить:119- корректность формулировки решения;120- полноту вариантов;121- не пропущены ли ограничения;122- реалистичность последствий;123- можно ли раскрывать draft в полный ADR.124125Используй `assets/review-checklist.md`.126127## Как задавать уточняющие вопросы128129Руководствуйся `references/question-flows.md` и следующими правилами:130- задавай вопросы по важности для решения, а не по порядку разделов документа;131- предпочитай вопросы, на которые можно ответить коротко;132- там, где можно, предлагай варианты ответа;133- не спрашивай то, что уже можно вывести из контекста;134- не повторяй то, что пользователь уже сказал ранее.135136Хорошие примеры:137- «Что именно выбираем: СУБД (database), способ интеграции (integration style) или границу владения данными (ownership boundary)?»138- «Что важнее: time-to-market, reliability, latency, cost или compliance?»139- «Есть ли ограничения по cloud, stack, data residency, support skills или стандартам безопасности?»140141Плохие примеры:142- просить сразу заполнить все разделы ADR;143- задавать абстрактные вопросы без влияния на решение;144- требовать полный prose-текст до короткого draft.145146## Правила для `tech-radar.json`147148Используй `assets/tech-radar.json` в формате **Thoughtworks Build Your Own Radar**.149150Ожидаемая форма:151- корневое значение — **JSON array**;152- каждый элемент — blip / entry;153- обязательные поля обычно включают:154 - `name`155 - `ring`156 - `quadrant`157 - `isNew`158 - `description`159- дополнительное поле `status` можно использовать для движения между ring.160161Интерпретация `ring`:162- `adopt` — предпочтительный вариант по умолчанию, если он подходит по драйверам;163- `trial` — допустимо в ограниченном scope с явным описанием риска;164- `assess` — допустимо как исследуемый вариант, обычно не как массовый стандарт;165- `hold` — вариант должен быть отклонён.166167### Правило для явно названной технологии168169Если пользователь прямо называет технологию:1701. сначала проверь её в `assets/tech-radar.json`;1712. если `hold` — отвергни решение;1723. если записи нет — спроси, нужно ли создать дополнение к `tech-radar.json`; сформируй файл дополнения1734. до подтверждения не называй её «согласованной» или «рекомендованной» по радару.174175### Как писать об отклонении176177Если технология в `hold`, формулируй примерно так:178- решение в текущем виде отклоняется;179- причина — технология находится в ring `hold` в `tech-radar.json` навыка;180- предложи альтернативы из `adopt`, `trial` или `assess`, если они есть;181- отрази это в ADR как ограничение или как отклонённую альтернативу.182183### Как писать о технологии, которой нет в радаре184185Если технологии нет в `assets/tech-radar.json`:186- явно скажи, что она отсутствует в skill radar;187- спроси, нужно ли добавить её в `tech-radar.json` навыка;188- если работу надо продолжать сразу, зафиксируй это как open governance question.189190## Требования к качеству ADR191192Хороший ADR, созданный этим навыком:193- формулирует решение одной фразой;194- объясняет, почему вопрос возник сейчас;195- показывает реальные альтернативы;196- связывает аргументацию с decision drivers;197- честно отражает trade-offs;198- фиксирует последствия, включая негативные;199- определяет scope и impact;200- описывает migration / rollout, если это важно.201202Слабый ADR обычно:203- описывает тему, но не решение;204- содержит только один вариант;205- скрывает компромиссы;206- смешивает несколько решений;207- не даёт понять, что делать дальше.208209## Предпочтительный формат ответа модели210211### Если данных мало2121. кратко сформулируй, какое решение ты видишь;2132. задай 3–5 вопросов;2143. если пользователь уже назвал технологию — сначала обработай `tech-radar.json`.215216### Если данных достаточно для short draft2171. выдай короткий ADR по шаблону;2182. отдельно покажи assumptions и open questions;2193. предложи review по checklist.220221### Если есть подтверждение2221. раскрой документ в полный ADR;2232. сохрани решение и основные trade-offs;2243. добавь детали implementation / migration / governance только там, где они уместны.225226## Краткий чек-лист перед сохранением227Используй `assets/review-checklist.md` для проверки решения