@gian-tiaga/eda 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > Поточная разработка с AI-агентами — на русском языке.
4
4
  > Набор готовых скилов для **Claude Code** и **Codex CLI**, которые ведут тебя через весь цикл: от исследования до коммита.
5
5
 
6
- `eda` — это десять скилов, каждый отвечает за свой кусок работы. Вместо того чтобы каждый раз объяснять модели, как делать ревью или как исполнять план, ты говоришь одно слово — и она следует чёткой инструкции на русском, со всеми правилами, проверками и артефактами в нужных папках.
6
+ `eda` — это одиннадцать скилов, каждый отвечает за свой кусок работы. Вместо того чтобы каждый раз объяснять модели, как делать ревью или как исполнять план, ты говоришь одно слово — и она следует чёткой инструкции на русском, со всеми правилами, проверками и артефактами в нужных папках.
7
7
 
8
8
  ---
9
9
 
@@ -27,11 +27,12 @@ eda init
27
27
 
28
28
  | Скил | Что делает | Куда складывает |
29
29
  |---|---|---|
30
+ | `eda-roadmap` | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | `docs/roadmaps/` |
30
31
  | `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. Если нужны пакеты или ПО — проверяет актуальные стабильные версии через context7 или web search | `docs/researches/` |
31
32
  | `eda-plan` | Пишет план реализации через стандартный Plan Mode хост-агента. Подтягивает контекст из `docs/rules.md`, `docs/arch.md`, при желании — релевантное исследование. Затем три параллельных модели (слабая, средняя, мощная) проверяют план на реалистичность, пропущенные шаги и нарушения правил — главный планировщик сам решает, что применить | `docs/plans/` |
32
33
  | `eda-execute` | Выполняет план. Спрашивает, где работать (текущая ветка, новая ветка, отдельный worktree). Тесты пишет внутри каждого шага. В конце — полный прогон тестов и линтеров | `docs/executions/` |
33
34
  | `eda-fix` | Делает обычные фиксы по короткому контексту, баг-репорту или файлу плана. Перед правками читает правила и архитектуру, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | `docs/fixes/` |
34
- | `eda-review` | Делает код-ревью с оценкой 0–100 и сверкой с планом работ. Замечания пишет блоками: сначала контекст и риск, потом конкретные файлы/строки и шаги исправления. Затем параллельные специализированные агенты проверяют выполнение плана, архитектуру, правила и при включённой настройке качество кода. В строгом режиме — ещё и кросс-ревью между Claude и Codex | `docs/reviews/` |
35
+ | `eda-review` | Делает код-ревью с оценкой 0–100 и сверкой с планом работ, но в файл пишет только проблемы: ошибки, недоделки, неточности, нарушения правил/архитектуры, риски и недостающие тесты. Не перечисляет выполненную работу. Затем параллельные специализированные агенты проверяют выполнение плана, архитектуру, правила и при включённой настройке качество кода. В строгом режиме — ещё и кросс-ревью между Claude и Codex | `docs/reviews/` |
35
36
  | `eda-fix-by-review` | Применяет замечания из ревью. Обязательные — сразу. Спорные — спрашивает. В конце ссылается на отчёт прямо в файле ревью | `docs/review-fixes/` |
36
37
  | `eda-send-review` | Отправляет ревью на GitHub PR через `gh` — как комментарий, review, approve или request-changes. Сам определяет PR по текущей ветке | (комментарий в PR) |
37
38
  | `eda-commit` | Делает один аккуратный коммит в стиле проекта. В конце спрашивает: push, merge в main + удалить ветку, или ничего | (git) |
@@ -103,15 +104,15 @@ review:
103
104
  docs ───────────────┬───────────────┐
104
105
  │ │
105
106
  v v
106
- explore ─────────> plan ────────> execute ───┬──> review ───> fix-by-review ───┬──> send-review
107
- │ │
108
- v └──> commit
109
- fix ─────────────> review
107
+ roadmap ────────> explore ─────> plan ───> execute ───┬──> review ───> fix-by-review ───┬──> send-review
108
+ │ │
109
+ └──────────────> plan v └──> commit
110
+ fix ─────────────> review
110
111
 
111
112
  automate может запускаться от review, fix-by-review или fix.
112
113
  ```
113
114
 
114
- Использовать всю цепочку не обязательно — каждый скил самодостаточен. Можно начать с `eda-explore`, или сразу с `eda-execute` на готовом плане, или просто `eda-commit`, когда правки уже сделаны.
115
+ Использовать всю цепочку не обязательно — каждый скил самодостаточен. Можно начать с `eda-roadmap`, `eda-explore`, или сразу с `eda-execute` на готовом плане, или просто `eda-commit`, когда правки уже сделаны.
115
116
 
116
117
  ---
117
118
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gian-tiaga/eda",
3
- "version": "0.4.5",
4
- "description": "Набор скилов eda-* для Claude Code и Codex CLI: explore, plan, execute, fix, review, fix-by-review, send-review, commit, docs, automate",
3
+ "version": "0.5.0",
4
+ "description": "Набор скилов eda-* для Claude Code и Codex CLI: roadmap, explore, plan, execute, fix, review, fix-by-review, send-review, commit, docs, automate",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "eda": "bin/cli.js"
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: eda-review
3
- description: 'Ревью изменений (незакоммиченный diff, ветка, PR, папка/файл) с обязательной сверкой с планом работ из `docs/plans/`. Если план не указан и его нельзя однозначно определить, спрашивает путь к плану до ревью. Перед ревью читает `docs/rules.md` и `docs/arch.md`. Формирует ревью по Markdown-шаблону из этапа 2: с блоками «контекст», «риск», «где», «детали», «как исправить» и пустой строкой между каждым блоком. Сохраняет в docs/reviews/. Всегда запускает параллельные специализированные проверки: выполнение плана, следование архитектуре, следование правилам; проверка качества кода включается настройкой `review.include_code_quality: true` в `docs/settings.yaml`. Кросс-CLI (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true`. Не правит код — это `eda-fix-by-review`.'
3
+ description: 'Ревью изменений (незакоммиченный diff, ветка, PR, папка/файл) с обязательной сверкой с планом работ из `docs/plans/`. Если план не указан и его нельзя однозначно определить, спрашивает путь к плану до ревью. Перед ревью читает `docs/rules.md` и `docs/arch.md`. Формирует ревью только по проблемам: ошибки, недоделки, неточности, нарушения правил/архитектуры, риски и недостающие тесты. Не перечисляет выполненную работу. Сохраняет в docs/reviews/. Всегда запускает параллельные специализированные проверки: выполнение плана, следование архитектуре, следование правилам; проверка качества кода включается настройкой `review.include_code_quality: true` в `docs/settings.yaml`. Кросс-CLI (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true`. Не правит код — это `eda-fix-by-review`.'
4
4
  ---
5
5
 
6
6
  # Скил: Ревьюер (eda-review)
7
7
 
8
- Делаешь ревью изменений: сверяешь diff с планом работ, правилами и архитектурой, пишешь замечания, ставишь оценку, сохраняешь файл. Затем проверяешь ревью параллельными специализированными агентами; в `strict` — ещё и через соседний CLI. После каждой проверки **сам корректируешь** своё ревью: что-то добавляешь, что-то убираешь, что-то переформулируешь.
8
+ Делаешь ревью изменений: сверяешь diff с планом работ, правилами и архитектурой, пишешь только найденные проблемы, ставишь оценку, сохраняешь файл. Не перечисляешь, что выполнено хорошо или без замечаний. Затем проверяешь ревью параллельными специализированными агентами; в `strict` — ещё и через соседний CLI. После каждой проверки **сам корректируешь** своё ревью: что-то добавляешь, что-то убираешь, что-то переформулируешь.
9
9
 
10
10
  ## Режимы вызова
11
11
 
@@ -39,8 +39,9 @@ description: 'Ревью изменений (незакоммиченный diff
39
39
  5. **Мета-ревью специализированными агентами — обязательно**, без флага: проверка выполнения плана, проверка архитектуры, проверка правил. Если включена проверка качества кода — добавь `quality-check` тем же batch. Кросс-CLI — только в `strict`.
40
40
  6. **Главный ревьюер — ты.** Мета-ревьюеры дают подсказки; решение — добавить, убрать или оставить пункт — за тобой. Не вставляй чужие пункты механически.
41
41
  7. **Простой язык** в формулировках замечаний и рекомендаций. Технические термины — только если без них нельзя, и сразу с пояснением.
42
- 8. **Формат файла ревью Markdown-блоки по шаблону из этапа 2.** Сверку с планом, каждое замечание и рекомендации пиши отдельными блоками с подзаголовками. Между заголовком блока, статусом/типом, контекстом, риском, локациями, деталями и исправлением всегда оставляй одну пустую строку.
43
- 9. **В каждом замечании сначала объясняй контекст без привязки к коду**, чтобы читатель понял проблему и риск. Только после этого давай конкретные файлы/строки. Исправление оформляй так же: сначала общий подход, затем конкретные шаги по коду.
42
+ 8. **Ревью содержит только проблемы.** Не пиши отчёт о выполненной работе, список успешно сделанных пунктов, похвалу или нейтральное перечисление изменений. В файл попадают только ошибки, недоделки, неточности, спорные решения, нарушения правил/архитектуры, риски и недостающие проверки. Если проблем нет, напиши коротко: «Явных проблем не найдено», без пересказа diff.
43
+ 9. **Формат файла ревью Markdown-блоки по шаблону из этапа 2.** Проблемы сверки с планом, каждое замечание и рекомендации пиши отдельными блоками с подзаголовками. Между заголовком блока, статусом/типом, контекстом, риском, локациями, деталями и исправлением всегда оставляй одну пустую строку.
44
+ 10. **В каждом замечании сначала объясняй контекст без привязки к коду**, чтобы читатель понял проблему и риск. Только после этого давай конкретные файлы/строки. Исправление оформляй так же: сначала общий подход, затем конкретные шаги по коду.
44
45
 
45
46
  ## Интерактивные вопросы
46
47
 
@@ -75,11 +76,11 @@ description: 'Ревью изменений (незакоммиченный diff
75
76
  Если в diff видно отсылки к исследованию из `docs/researches/` — прочитай его тоже.
76
77
 
77
78
  ### 2. Сделать первичное ревью и сохранить
78
- Пройдись по изменениям. Сначала проверь, выполнен ли `$PLAN_FILE`: что сделано, что сделано частично, что не сделано, какие отклонения создают риск. Затем проверь нарушения правил, архитектуры, баги, тестовые пробелы, безопасность, производительность и документацию. Если `review.include_code_quality: true` или пользователь явно попросил качество кода, отдельно проверь качество реализации: читаемость, сложность, дублирование, имена, границы ответственности, связность модулей, поддерживаемость и соответствие стилю уже существующего кода.
79
+ Пройдись по изменениям. Сначала проверь, выполнен ли `$PLAN_FILE`, но в ревью выноси только проблемы: что сделано частично, что не сделано, какие отклонения создают риск, какие проверки отсутствуют. Не перечисляй выполненные пункты плана. Затем проверь нарушения правил, архитектуры, баги, тестовые пробелы, безопасность, производительность и документацию. Если `review.include_code_quality: true` или пользователь явно попросил качество кода, отдельно проверь качество реализации: читаемость, сложность, дублирование, имена, границы ответственности, связность модулей, поддерживаемость и соответствие стилю уже существующего кода.
79
80
 
80
81
  Каждое замечание должно быть самостоятельным блоком:
81
82
  - заголовок с номером и коротким смыслом;
82
- - тип и рекомендация: `править обязательно`, `на усмотрение автора` или `не править`;
83
+ - тип и рекомендация: `править обязательно` или `на усмотрение автора`;
83
84
  - контекст: объяснение проблемы без привязки к конкретному коду;
84
85
  - риск: почему это важно для поведения, сопровождения, денег, безопасности или эксплуатации;
85
86
  - где: конкретные файлы/строки;
@@ -108,24 +109,31 @@ meta_reviewers: []
108
109
 
109
110
  **<N>/100.** <одно-два предложения почему>
110
111
 
111
- ## Сверка с планом
112
+ ## Проблемы сверки с планом
112
113
 
113
- ### 1. <пункт или этап плана>
114
+ <Если проблем по плану нет: «Явных проблем по плану не найдено.»>
114
115
 
115
- Статус: <выполнено | частично | не выполнено | не проверялось>
116
+ ### 1. <недоделка, отклонение или непроверенный пункт>
117
+
118
+ Статус: <частично | не выполнено | не проверялось | отклонение>
116
119
 
117
120
  Контекст:
118
121
  <что требовал план простыми словами, без привязки к коду>
119
122
 
120
- Итог:
121
- <что фактически сделано или не сделано>
123
+ Проблема:
124
+ <что не сделано, сделано неточно или не подтверждено>
122
125
 
123
- Конкретика:
126
+ Риск:
127
+ <почему это важно>
124
128
 
125
- - `<path/file.ts:42>` — <короткое подтверждение>
129
+ Где:
130
+
131
+ - `<path/file.ts:42>` — <что смотреть>
126
132
 
127
133
  ## Замечания
128
134
 
135
+ <Если замечаний нет: «Явных проблем в коде не найдено.»>
136
+
129
137
  ### 1. <короткий заголовок проблемы>
130
138
 
131
139
  Тип: `bug`
@@ -157,7 +165,6 @@ meta_reviewers: []
157
165
 
158
166
  - **Править обязательно:** <номера>
159
167
  - **На усмотрение автора:** <номера>
160
- - **Не править:** <номера или —>
161
168
 
162
169
  ## Изменения после мета-ревью
163
170
 
@@ -183,14 +190,14 @@ meta_reviewers: []
183
190
  Каждому дай путь к файлу ревью, `$TARGET`, `$PLAN_FILE`, `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml`, связанный research при наличии. Каждый агент должен читать не только ревью, но и фактический diff/код, достаточный для проверки своей роли.
184
191
 
185
192
  Формат ответа агентов:
186
- - `+` что добавить в ревью;
193
+ - `+` какую проблему добавить в ревью;
187
194
  - `−` что убрать как неверное или недоказанное;
188
195
  - `~` что переформулировать;
189
196
  - `?` что невозможно проверить и почему.
190
197
 
191
198
  Для `plan-check` добавь явную инструкцию: «Если `$PLAN_FILE` не передан или файл не найден, верни только `? план не проверен: нужен путь к файлу`; не пытайся угадывать план.»
192
199
 
193
- Когда все агенты ответили: прочитай ответы, **сам реши**, что применять. Внеси правки в файл ревью. В разделе `## Изменения после мета-ревью` запиши:
200
+ Когда все агенты ответили: прочитай ответы, **сам реши**, что применять. Добавляй только подтверждённые проблемы; предложения вида «добавить, что пункт выполнен» отклоняй как неформат ревью. Внеси правки в файл ревью. В разделе `## Изменения после мета-ревью` запиши:
194
201
 
195
202
  ```markdown
196
203
  ### После plan-check / architecture-check / rules-check / quality-check
@@ -208,13 +215,13 @@ meta_reviewers: []
208
215
  В `strict`: отдай файл соседнему агенту через `Bash`. Если ты в Claude Code — запускай Codex CLI:
209
216
 
210
217
  ```bash
211
- codex exec "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, docs/arch.md, связанный research при наличии. Затем глубоко проверь ревью по плану, правилам, архитектуре и релевантному коду: открой файлы, модули, API и тесты, которые следуют из diff и замечаний, и оцени фактическую корректность. Мета-ревью на русском: что добавить, убрать, переформулировать; какие баги, риски для смежного кода и недостающие тесты пропущены. Формат: '+', '−', '~', '?'." > "${REVIEW_FILE%.md}_cli_meta.md"
218
+ codex exec "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, docs/arch.md, связанный research при наличии. Затем глубоко проверь ревью по плану, правилам, архитектуре и релевантному коду: открой файлы, модули, API и тесты, которые следуют из diff и замечаний, и оцени фактическую корректность. Мета-ревью на русском: какие проблемы добавить, убрать, переформулировать; какие баги, риски для смежного кода и недостающие тесты пропущены. Не предлагай перечислять выполненную работу. Формат: '+', '−', '~', '?'." > "${REVIEW_FILE%.md}_cli_meta.md"
212
219
  ```
213
220
 
214
221
  Если ты в Codex — запускай Claude CLI с теми же требованиями глубины:
215
222
 
216
223
  ```bash
217
- claude -p "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, docs/arch.md, связанный research при наличии. Затем глубоко проверь ревью по плану, правилам, архитектуре и релевантному коду: открой файлы, модули, API и тесты, которые следуют из diff и замечаний, и оцени фактическую корректность. Мета-ревью на русском: что добавить, убрать, переформулировать; какие баги, риски для смежного кода и недостающие тесты пропущены. Формат: '+', '−', '~', '?'." > "${REVIEW_FILE%.md}_cli_meta.md"
224
+ claude -p "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, docs/arch.md, связанный research при наличии. Затем глубоко проверь ревью по плану, правилам, архитектуре и релевантному коду: открой файлы, модули, API и тесты, которые следуют из diff и замечаний, и оцени фактическую корректность. Мета-ревью на русском: какие проблемы добавить, убрать, переформулировать; какие баги, риски для смежного кода и недостающие тесты пропущены. Не предлагай перечислять выполненную работу. Формат: '+', '−', '~', '?'." > "${REVIEW_FILE%.md}_cli_meta.md"
218
225
  ```
219
226
 
220
227
  Соседней CLI нет — `AskUserQuestion`: завершить как есть или прервать.
@@ -231,7 +238,7 @@ claude -p "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, do
231
238
  Добавь в `meta_reviewers` имя CLI. `status: meta-reviewed` → `final`.
232
239
 
233
240
  ### 5. Финал
234
- Короткое сообщение: режим (`normal` или `strict`), путь к файлу ревью, итоговая оценка, сколько пунктов «править обязательно» / «на усмотрение» / «не править». Если режим был обычный — добавь строку «кросс-CLI не запускался; для проверки соседним агентом — `eda-review strict`». Что предлагаешь дальше — `eda-fix-by-review` для применения или `eda-commit` если оценка приемлема.
241
+ Короткое сообщение: режим (`normal` или `strict`), путь к файлу ревью, итоговая оценка, сколько пунктов «править обязательно» / «на усмотрение». Не пересказывай выполненную работу. Если режим был обычный — добавь строку «кросс-CLI не запускался; для проверки соседним агентом — `eda-review strict`». Что предлагаешь дальше — `eda-fix-by-review` для применения или `eda-commit` если оценка приемлема.
235
242
 
236
243
  ## Чего НЕ делать
237
244
  - Править код. Это `eda-fix-by-review`.
@@ -242,3 +249,4 @@ claude -p "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, do
242
249
  - Задавать вопросы без блокировки и продолжать работу до ответа.
243
250
  - Сохранять ревью куда-либо кроме `docs/reviews/`.
244
251
  - Оформлять замечания без контекста перед конкретикой.
252
+ - Перечислять выполненные пункты плана или давать общий отчёт о проделанной работе.
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: eda-roadmap
3
+ description: 'Создаёт roadmap-файл по продуктовой или технической теме: собирает из сообщения пользователя цель, ограничения и список задач, формулирует задачи коротко, понятно и недвусмысленно, без деталей реализации, файлов, библиотек, API и пошагового плана. При необходимости читает docs/rules.md, docs/arch.md и существующие docs/roadmaps/. Задаёт вопросы только если без ответа нельзя составить корректный список задач. Итог сохраняет в docs/roadmaps/. Не исследует глубоко, не планирует реализацию и не меняет код.'
4
+ ---
5
+
6
+ # Скил: Roadmap (eda-roadmap)
7
+
8
+ Создаёшь roadmap: список будущих задач по продуктовой или технической теме. Roadmap отвечает на вопрос «что нужно сделать и зачем», но не отвечает «как именно реализовывать».
9
+
10
+ ## Режимы вызова
11
+
12
+ | Режим | Запуск | Что делает |
13
+ |---|---|---|
14
+ | Обычный | `eda-roadmap <тема>` | Создаёт roadmap-файл в `docs/roadmaps/`. |
15
+ | Из текста | `eda-roadmap <список идей или требований>` | Нормализует вход в ясный список задач без деталей реализации. |
16
+
17
+ ## Вход из сообщения пользователя
18
+
19
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, цель, аудиторию, ограничения, примерный горизонт roadmap, уже названные задачи и прямые указания.
20
+
21
+ Если входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск составить roadmap не для той цели. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
22
+
23
+ ## Главные правила
24
+
25
+ 1. **Никаких правок кода.** Запись только в `docs/roadmaps/`.
26
+ 2. **Roadmap — не план реализации.** Не указывай файлы, модули, библиотеки, API, миграции, команды, схемы данных, тесты и порядок технической реализации.
27
+ 3. **Задачи формулируй как пользовательскую или проектную ценность.** Хорошо: «Аутентификация через email, ВК и Яндекс». Плохо: «Добавить OAuth-клиент, роуты callback и таблицу provider_accounts».
28
+ 4. **Каждая задача короткая, но однозначная.** Читатель должен понять границы задачи без дополнительного созвона.
29
+ 5. **Можно чуть подробнее, если это снимает двусмысленность.** Допускается одно короткое описание: что должно появиться, для кого и какой результат ожидается.
30
+ 6. **Не выдумывай обязательства.** Если пользователь дал только направление, формулируй разумный черновик и явно помечай предположения.
31
+ 7. **Прочитай `docs/rules.md` и `docs/arch.md`**, если есть, чтобы не противоречить зафиксированным правилам и архитектурным ограничениям.
32
+ 8. **Существующие roadmap-файлы учитывай только при явной необходимости.** Если пользователь просит продолжить, обновить или не дублировать прошлый roadmap — прочитай релевантные файлы из `docs/roadmaps/`.
33
+
34
+ ## Интерактивные вопросы
35
+
36
+ Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
37
+ - Claude Code: используй `AskUserQuestion`.
38
+ - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
39
+ - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
40
+ - Не запускай команды, которые ждут интерактивного ввода в терминале.
41
+
42
+ ## Этапы
43
+
44
+ ### 1. Понять назначение roadmap
45
+
46
+ Определи:
47
+ - тему roadmap;
48
+ - для кого он нужен: продукт, команда разработки, владелец проекта, пользовательский сценарий;
49
+ - горизонт, если он указан: ближайший релиз, квартал, MVP, несколько этапов;
50
+ - уровень детализации: только список задач или задачи с короткими описаниями.
51
+
52
+ Если тема или назначение неясны — задай `AskUserQuestion` и остановись до ответа.
53
+
54
+ ### 2. Собрать минимальный контекст
55
+
56
+ Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Не делай глубокое исследование кода, если пользователь прямо не просит привязать roadmap к текущему состоянию проекта.
57
+
58
+ Если пользователь просит продолжить или обновить существующий roadmap:
59
+ - найди релевантный файл по указанному пути или теме;
60
+ - если найдено несколько равных вариантов, спроси, какой использовать;
61
+ - не перезаписывай старый файл, если пользователь явно не попросил обновить именно его.
62
+
63
+ ### 3. Сформировать задачи
64
+
65
+ Собери задачи в список. Для каждой задачи:
66
+ - дай короткое название;
67
+ - добавь 1–2 предложения описания, если без них задача может быть понята по-разному;
68
+ - опиши результат на уровне поведения или возможности, а не реализации;
69
+ - не добавляй подзадачи с техническими шагами;
70
+ - не добавляй оценки сроков, если пользователь не просил.
71
+
72
+ Хорошие формулировки:
73
+ - «Аутентификация через email, ВК и Яндекс. Пользователь может войти удобным способом и восстановить доступ без обращения в поддержку.»
74
+ - «Личный кабинет пользователя. Пользователь видит свои данные, статус подписки и основные действия по аккаунту в одном месте.»
75
+ - «Базовая модерация контента. Команда может скрывать спорные материалы и видеть причину модерационного решения.»
76
+
77
+ Плохие формулировки:
78
+ - «Подключить `passport-yandex`, добавить callback route и таблицу OAuth-профилей.»
79
+ - «Создать `auth.service.ts`, миграцию и e2e-тесты.»
80
+ - «Реализовать через Redis и очередь фоновых задач.»
81
+
82
+ ### 4. Сохранить файл
83
+
84
+ Сохрани roadmap в `docs/roadmaps/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
85
+
86
+ Формат файла:
87
+
88
+ ```markdown
89
+ ---
90
+ title: <заголовок>
91
+ date: <YYYY-MM-DD HH:MM>
92
+ status: draft
93
+ sources:
94
+ rules: <путь или —>
95
+ arch: <путь или —>
96
+ previous_roadmap: <путь или —>
97
+ ---
98
+
99
+ # <Заголовок>
100
+
101
+ ## Контекст
102
+
103
+ Коротко: зачем нужен roadmap, для кого он и какой горизонт покрывает.
104
+
105
+ ## Предположения
106
+
107
+ - <предположение, если было>
108
+
109
+ Если предположений нет: «Не требовались.»
110
+
111
+ ## Задачи
112
+
113
+ | # | Задача | Описание |
114
+ |---|---|---|
115
+ | 1 | <короткая задача> | <понятное описание без деталей реализации> |
116
+
117
+ ## Не входит
118
+
119
+ - <что явно не включаем, если это важно>
120
+
121
+ Если явных исключений нет: «Не зафиксировано.»
122
+ ```
123
+
124
+ Quality gate перед сохранением:
125
+ - файл лежит в `docs/roadmaps/`;
126
+ - есть ровно один основной список задач в разделе `Задачи`;
127
+ - каждая задача имеет короткое название и понятное описание;
128
+ - задачи не содержат деталей реализации: файлов, библиотек, API, команд, миграций, схем таблиц, тестовых стратегий;
129
+ - roadmap можно использовать как вход для `eda-explore` или `eda-plan`, но сам он не является исследованием или планом реализации.
130
+
131
+ ### 5. Финал
132
+
133
+ Короткое сообщение: путь к roadmap-файлу, количество задач, 3–5 самых важных задач простыми словами. Если были предположения — явно скажи, что они записаны в файл.
134
+
135
+ ## Чего НЕ делать
136
+
137
+ - Править код, конфиги, зависимости или тесты.
138
+ - Писать план реализации по фазам.
139
+ - Делать техническое исследование вместо roadmap.
140
+ - Указывать конкретные библиотеки, файлы, API, миграции, команды или тестовые сценарии.
141
+ - Раздувать задачу до спецификации или ТЗ.
142
+ - Сохранять файл куда-либо кроме `docs/roadmaps/`.