@gian-tiaga/eda 0.7.0 → 0.8.1

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
 
@@ -35,14 +35,17 @@ eda update-all ~/Code
35
35
 
36
36
  | Скил | Что делает | Куда складывает |
37
37
  |---|---|---|
38
+ | `eda-start` | Помогает стартовать новый проект: собирает требования, вместе с пользователем выбирает стек, архитектуру, инструменты качества кода, AI-скилы, агентные инструкции, MCP-серверы и правила проекта. Для выбранных пакетов всегда ищет последние стабильные версии по официальным источникам. Не пишет код и не ставит зависимости; сохраняет согласованные стартовые решения и по подтверждению создаёт черновики правил/архитектуры/AGENTS | `docs/project-starts/`, опционально `docs/rules.md`, `docs/arch.md`, `AGENTS.md` |
38
39
  | `eda-roadmap` | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | `docs/roadmaps/` |
39
40
  | `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. В дефолтном режиме ведёт исследование как диалог: факты собирает сам, а значимые развилки выносит тебе с рекомендацией. Если нужны пакеты или ПО — проверяет актуальные стабильные версии через context7 или web search | `docs/researches/` |
40
41
  | `eda-plan` | Пишет план реализации через стандартный Plan Mode хост-агента. `docs/rules.md` и `docs/arch.md` использует как обязательную рамку, а не справочный контекст: план должен строго следовать правилам и архитектуре. В плане явно фиксирует контракты БД/API, если задача их затрагивает. Затем три параллельных субагента/модели (слабая, средняя, мощная) проверяют план на реалистичность, пропущенные шаги и нарушения правил — главный планировщик сам решает, что применить | `docs/plans/` |
42
+ | `eda-plan-polish` | Полирует уже готовый план до оценки 95/100 или заданного порога. Сначала основной агент оценивает план; если оценка ниже порога, запускает три изолированных параллельных plan-polish агента, анализирует их предложения, правит только файл плана и повторяет цикл до качества или лимита | `docs/plans/` |
41
43
  | `eda-execute` | Выполняет план. Спрашивает, где работать (текущая ветка, новая ветка, отдельный worktree). Перед правками читает план, `docs/rules.md` и `docs/arch.md`; правила и архитектура обязательны к исполнению. Если шаг плана им противоречит, останавливается и спрашивает. Тесты пишет внутри каждого шага. В конце — полный прогон тестов и линтеров | `docs/executions/` |
42
44
  | `eda-fix` | Делает обычные фиксы по короткому контексту, баг-репорту или файлу плана. Перед правками читает правила и архитектуру, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | `docs/fixes/` |
43
- | `eda-review` | Делает код-ревью с оценкой 0–100 и сверкой с планом работ, но в файл пишет только проблемы: ошибки, недоделки, неточности, нарушения правил/архитектуры, риски и недостающие тесты. Не перечисляет выполненную работу. В обычном режиме после черновика передаёт файл в `eda-review-check`; с флагом `draft` сохраняет только первичное ревью без субагентов | `docs/reviews/` |
44
- | `eda-review-check` | Проверяет готовое ревью из `docs/reviews/` специализированными субагентами: выполнение плана, архитектуру, правила и при включённой настройке качество кода. В строгом режиме добавляет кросс-ревью между Claude и Codex. Сам применяет подтверждённые замечания к файлу ревью, но не правит код | `docs/reviews/` |
45
+ | `eda-review` | Делает код-ревью с оценкой 0–100 и сверкой с планом работ, но в файл пишет только проблемы: ошибки, недоделки, неточности, нарушения правил/архитектуры, риски и недостающие тесты. Если запущен без аргументов, ревьюит незакоммиченный `git diff HEAD` без проверки плана. Не перечисляет выполненную работу. В обычном режиме после черновика передаёт файл в `eda-review-check`; с флагом `draft` сохраняет только первичное ревью без субагентов | `docs/reviews/` |
46
+ | `eda-review-check` | Проверяет готовое ревью из `docs/reviews/` специализированными субагентами: архитектуру, правила, выполнение плана при указанном plan-файле и при включённой настройке качество кода. В строгом режиме добавляет кросс-ревью между Claude и Codex. Сам применяет подтверждённые замечания к файлу ревью, но не правит код | `docs/reviews/` |
45
47
  | `eda-fix-by-review` | Применяет замечания из ревью. Обязательные — сразу. Спорные — спрашивает. В конце ссылается на отчёт прямо в файле ревью | `docs/review-fixes/` |
48
+ | `eda-manual-test` | Делает ручную smoke/acceptance-проверку после изменений: API прогоняет через `curl`/HTTP-запросы, фронт — через Playwright или доступную browser automation. Сам строит чеклист из входа, плана или diff, запускает очевидные dev/API-серверы и сохраняет QA-отчёт. Не правит код, не пишет автотесты и не коммитит | `docs/manual-tests/` |
46
49
  | `eda-polish` | Оркестрирует доводку изменений: запускает `eda-review draft`, затем `eda-review-check`, затем `eda-fix-by-review apply-optional` и повторяет цикл до оценки 95/100 или лимита 5 итераций. Каждый шаг идёт в изолированном субагенте или отдельном CLI-процессе. Не коммитит | `docs/reviews/`, `docs/review-fixes/` |
47
50
  | `eda-send-review` | Отправляет ревью на GitHub PR через `gh` — как комментарий, review, approve или request-changes. Сам определяет PR по текущей ветке | (комментарий в PR) |
48
51
  | `eda-commit` | Делает один аккуратный коммит в стиле проекта. В конце спрашивает: push, merge в main + удалить ветку, или ничего | (git) |
@@ -122,21 +125,36 @@ review:
122
125
 
123
126
  ## 🔄 Воркфлоу
124
127
 
128
+ ```text
129
+ start ─────────────> docs ───────────────┬───────────────┐
130
+ │ │ │
131
+ v v v
132
+ roadmap ────────> explore ─────> plan ───> plan-polish ───> execute ───┬──> manual-test ───> review ───> review-check ───> fix-by-review ───┬──> send-review
133
+ │ │ │
134
+ └────────────> plan v └──> commit
135
+ fix ─────────────> manual-test
136
+ ```
137
+
138
+ Если проект уже существует, можно начинать без `eda-start`:
139
+
125
140
  ```text
126
141
  docs ───────────────┬───────────────┐
127
142
  │ │
128
143
  v v
129
- roadmap ────────> explore ─────> plan ───> execute ───┬──> review ───> review-check ───> fix-by-review ───┬──> send-review
144
+ roadmap ────────> explore ─────> plan ───> plan-polish ───> execute ───┬──> manual-test ───> review ───> review-check ───> fix-by-review ───┬──> send-review
130
145
  │ │ │
131
146
  └──────────────> plan v └──> commit
132
- fix ─────────────> review
147
+ fix ─────────────> manual-test
133
148
 
134
149
  polish = review draft ─> review-check ─> fix-by-review apply-optional ─> повтор до нужной оценки
150
+ plan-polish = оценка плана ─> 3 plan-polish агента ─> правка плана ─> повтор до 95/100
135
151
 
136
152
  automate может запускаться от review, fix-by-review или fix.
137
153
  ```
138
154
 
139
- Использовать всю цепочку не обязательно — каждый скил самодостаточен. Можно начать с `eda-roadmap`, `eda-explore`, или сразу с `eda-execute` на готовом плане, или просто `eda-commit`, когда правки уже сделаны. Для параллельной работы есть `eda-worktree`, а для возврата ветки из worktree в текущую ветку — `eda-merge-worktree`.
155
+ `eda-manual-test` обычно ставится после `eda-execute`, `eda-fix` или `eda-fix-by-review`, чтобы руками проверить API/UI перед ревью или коммитом.
156
+
157
+ Использовать всю цепочку не обязательно — каждый скил самодостаточен. Новый проект можно начать с `eda-start`; существующий — с `eda-roadmap`, `eda-explore`, или сразу с `eda-execute` на готовом плане, или просто `eda-commit`, когда правки уже сделаны. Для параллельной работы есть `eda-worktree`, а для возврата ветки из worktree в текущую ветку — `eda-merge-worktree`.
140
158
 
141
159
  ---
142
160
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gian-tiaga/eda",
3
- "version": "0.7.0",
4
- "description": "Набор скилов eda-* для Claude Code и Codex CLI: roadmap, explore, plan, execute, fix, review, review-check, fix-by-review, polish, send-review, commit, worktree, merge-worktree, docs, automate",
3
+ "version": "0.8.1",
4
+ "description": "Набор скилов eda-* для Claude Code и Codex CLI: start, roadmap, explore, plan, plan-polish, execute, fix, review, review-check, fix-by-review, manual-test, polish, send-review, commit, worktree, merge-worktree, docs, automate",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "eda": "bin/cli.js"
@@ -0,0 +1,135 @@
1
+ ---
2
+ name: eda-manual-test
3
+ description: 'Делает ручную smoke/acceptance-проверку после изменений: сам строит чеклист из входа пользователя, плана или незакоммиченного diff; для API выполняет curl/HTTP-запросы, для фронта использует Playwright или доступную browser automation. Сам запускает очевидные dev/API-серверы, фиксирует фактическое поведение и сохраняет QA-отчёт в docs/manual-tests/. Не правит код, не пишет автотесты, не ставит зависимости, не коммитит.'
4
+ ---
5
+
6
+ # Скил: Ручное тестирование (eda-manual-test)
7
+
8
+ Делаешь ручную smoke/acceptance-проверку уже сделанных изменений. Проверяешь не «что тесты зелёные», а что пользовательский или API-сценарий реально работает: страница открывается, действие проходит, endpoint отвечает, ошибки выглядят ожидаемо. Сохраняешь QA-отчёт. Код не правишь.
9
+
10
+ ## Вход из сообщения пользователя
11
+
12
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: URL, endpoint, сценарий, план, ревью, issue, ветку, ограничение по окружению, логин/роль без секретов и прямые указания.
13
+
14
+ Если входа достаточно, продолжай без вопроса. Если входа нет, построй минимальный smoke-чеклист по незакоммиченному `git diff HEAD`, релевантному коду и документации проекта. `AskUserQuestion` задавай только если цель противоречива, найдено несколько равных окружений/URL, нужна авторизация без доступных тестовых данных или есть риск выполнить разрушительное действие. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
15
+
16
+ ## Главные правила
17
+
18
+ 1. **Ручная проверка, не разработка.** Не правь код, не пиши и не обновляй автотесты, не меняй конфиги, не коммить и не пушь.
19
+ 2. **Smoke по умолчанию.** Проверь запуск, основной happy path изменённой области и 1–2 негативных или edge-сценария, которые естественно следуют из задачи.
20
+ 3. **API проверяй запросами.** Используй `curl`, встроенный HTTP-клиент, Node `fetch` или проектные scripts. Фиксируй method, URL, важные headers без секретов, body, status code и ключевые поля ответа.
21
+ 4. **Фронт проверяй браузером.** Если в проекте есть Playwright — используй Playwright. Если Playwright не установлен, используй доступную browser automation хост-агента. Если браузерной автоматизации нет — спроси через `AskUserQuestion`; не устанавливай зависимости молча.
22
+ 5. **Серверы поднимай сам, если это очевидно.** Определи команды по `package.json`, README, docker compose, Makefile или локальным инструкциям. Останавливай только процессы, которые сам запустил.
23
+ 6. **Секреты не трогай.** Используй только уже доступные локальные `.env`, тестовые аккаунты и настройки. Не проси пользователя прислать секреты в чат и не печатай токены, cookies, passwords, API keys или Authorization headers в отчёт.
24
+ 7. **Разрушительное подтверждай.** Реальные платежи, удаление данных, отправку email/SMS/push, изменение production/staging-данных, миграции, очистку БД и похожие действия выполняй только после `AskUserQuestion`.
25
+ 8. **Проверяй фактическое поведение.** Не ограничивайся чтением кода. Если сценарий нельзя выполнить, зафиксируй `blocked` и конкретную причину.
26
+ 9. **Отчёт обязателен.** Сохрани результат в `docs/manual-tests/`, даже если проверка заблокирована или нашла баги.
27
+
28
+ ## Интерактивные вопросы
29
+
30
+ Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
31
+ - Claude Code: используй `AskUserQuestion`.
32
+ - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
33
+ - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
34
+ - Не запускай команды, которые ждут интерактивного ввода в терминале; перед такими командами спроси в хост-интерфейсе или остановись с `blocked`.
35
+
36
+ ## Этапы
37
+
38
+ ### 1. Определить цель проверки
39
+ Разбери вход пользователя. Если указан файл плана, ревью, research, issue или другой артефакт — прочитай его. Если входа нет, изучи `git diff HEAD`, изменённые файлы, README и релевантные роуты/страницы/компоненты.
40
+
41
+ Определи `$TEST_TARGET`: `api`, `frontend`, `fullstack` или `other`. Если цель всё ещё неоднозначна и можно проверить не то окружение или не тот сценарий — спроси через `AskUserQuestion`.
42
+
43
+ ### 2. Прочитать рамку проекта
44
+ Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Найди команды запуска, тестовые URL, API-контракты, seed/test users и ограничения окружения в README, package scripts, docker compose, Makefile, OpenAPI/Swagger/Postman-файлах и существующих e2e-тестах.
45
+
46
+ Не устанавливай Playwright, браузеры, пакеты, docker images или системные зависимости молча. Если без этого проверка невозможна — спроси через `AskUserQuestion` или зафиксируй `blocked` в неинтерактивном режиме.
47
+
48
+ ### 3. Составить smoke-чеклист
49
+ Составь короткий чеклист:
50
+ - запуск приложения или API;
51
+ - основной happy path изменённой области;
52
+ - 1–2 негативных или edge-сценария;
53
+ - явные acceptance criteria из плана или входа пользователя;
54
+ - для фронта: console errors, network errors и видимые regressions на основной странице;
55
+ - для API: status code, схема/ключевые поля ответа, обработка неверного ввода или прав доступа, если это относится к задаче.
56
+
57
+ Не расширяй проверку до полного exploratory QA, если пользователь не попросил.
58
+
59
+ ### 4. Запустить окружение
60
+ Если приложение ещё не запущено и команды очевидны, запусти нужные dev/API-серверы. Дождись готовности по логам, healthcheck, открытому порту или успешному запросу. Если порт занят, проверь, подходит ли уже запущенный сервис; если нет — спроси или выбери очевидный альтернативный порт только когда проект это поддерживает.
61
+
62
+ Фиксируй команды запуска в черновике отчёта. Не заверши свой ответ, пока запущенные тобой процессы, нужные только для проверки, ещё работают.
63
+
64
+ ### 5. Проверить API
65
+ Для API-сценариев выполни реальные запросы. Предпочитай воспроизводимые команды `curl`, но можно использовать Node `fetch` или проектный HTTP-клиент, если так безопаснее.
66
+
67
+ Проверяй:
68
+ - успешный status code и ключевые поля ответа;
69
+ - корректную ошибку для неверного ввода, отсутствующих прав или несуществующей сущности, если это относится к задаче;
70
+ - отсутствие явных server errors, stack traces и утечек секретов в ответе.
71
+
72
+ Секретные headers и cookies в отчёт не вставляй: пиши `<redacted>`.
73
+
74
+ ### 6. Проверить фронт
75
+ Для фронтовых сценариев открой страницу в браузере. Если доступен Playwright, используй его для навигации, кликов, ввода и проверок. Если доступен browser plugin или другой инструмент браузерной автоматизации — используй его. Проверяй фактический UI, а не только DOM-текст.
76
+
77
+ Проверяй:
78
+ - страница загружается без критических console/network errors;
79
+ - основной сценарий пользователя проходит до ожидаемого результата;
80
+ - видимые состояния ошибок, пустых данных или невалидного ввода, если они относятся к задаче;
81
+ - текст и элементы управления не ломаются на очевидном desktop/mobile viewport, если менялась вёрстка.
82
+
83
+ Скриншоты сохраняй только если инструмент это поддерживает и они помогают подтвердить результат или баг. Складывай их рядом с отчётом или в подпапку `docs/manual-tests/assets/`.
84
+
85
+ ### 7. Сохранить отчёт
86
+ Сохрани отчёт в `docs/manual-tests/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
87
+
88
+ ```markdown
89
+ ---
90
+ date: <YYYY-MM-DD HH:MM>
91
+ source: <text | git diff HEAD | docs/plans/... | docs/reviews/...>
92
+ target: <api | frontend | fullstack | other>
93
+ status: <passed | failed | blocked>
94
+ ---
95
+
96
+ # Ручная проверка: <краткий заголовок>
97
+
98
+ ## Контекст
99
+ <что проверялось и откуда взяты сценарии>
100
+
101
+ ## Окружение
102
+ | Что | Значение |
103
+ |---|---|
104
+ | Команды запуска | `<command>` |
105
+ | URL / endpoint | `<url или endpoint>` |
106
+ | Авторизация | `<не нужна | тестовый пользователь | уже настроена | blocked>` |
107
+
108
+ ## Чеклист
109
+ | # | Сценарий | Способ проверки | Результат | Заметки |
110
+ |---|----------|-----------------|-----------|---------|
111
+ | 1 | ... | `curl ...` / Playwright / browser | ✓ / ✗ / ? | ... |
112
+
113
+ ## Найденные проблемы
114
+ <если нет — «Явных проблем не найдено»; если есть — список с воспроизведением и фактическим/ожидаемым результатом>
115
+
116
+ ## Артефакты
117
+ <ссылки на скриншоты, логи или «Нет»>
118
+
119
+ ## Итог
120
+ <passed / failed / blocked и короткое объяснение>
121
+ ```
122
+
123
+ Если найден баг, статус отчёта `failed`. Если проверка невозможна из-за окружения, авторизации, отсутствующих зависимостей или непонятного риска, статус `blocked`.
124
+
125
+ ### 8. Финал
126
+ Короткое сообщение: путь к отчёту, итог `passed` / `failed` / `blocked`, какие сценарии реально проверены, какие процессы остановлены, состояние git («не закоммичено»). Если итог `failed` или `blocked` — предложи дальше `eda-fix`. Если итог `passed` — предложи дальше `eda-review` или `eda-commit`.
127
+
128
+ ## Чего НЕ делать
129
+ - Править код, конфиги, миграции, seed-данные или документацию проекта, кроме отчёта в `docs/manual-tests/`.
130
+ - Писать или обновлять unit/e2e/autotests. Это работа `eda-fix`, `eda-execute` или отдельной задачи.
131
+ - Устанавливать Playwright, браузеры, npm-пакеты, docker images или системные зависимости без явного подтверждения.
132
+ - Подменять ручную проверку запуском `npm test` без фактического прохождения API/UI-сценария.
133
+ - Проверять production или staging с изменением данных без подтверждения пользователя.
134
+ - Сохранять секреты, cookies, токены или passwords в отчёт.
135
+ - Коммитить, пушить, создавать PR или отправлять ревью.
@@ -0,0 +1,209 @@
1
+ ---
2
+ name: eda-plan-polish
3
+ description: 'Итерационно полирует готовый план из `docs/plans/...` до оценки 95/100 или заданного порога. Сначала основной агент оценивает план по шкале 0–100. Если оценка ниже порога, запускает три изолированных параллельных plan-polish агента, получает конкретные предложения правок, сам принимает или отклоняет замечания, правит только файл плана и пересчитывает оценку. Не создаёт план с нуля, не меняет код, конфиги и зависимости.'
4
+ ---
5
+
6
+ # Скил: Полировка плана (eda-plan-polish)
7
+
8
+ Берёшь готовый план из `docs/plans/`, оцениваешь его по шкале 0–100 и доводишь до качества, достаточного для `eda-execute`. Порог по умолчанию — `95`: если план уже набирает 95 или выше, фиксируешь оценку и ничего не меняешь. Если ниже — запускаешь цикл полировки через три изолированных агента, применяешь принятые замечания, снова оцениваешь план и повторяешь до порога или лимита.
9
+
10
+ Основной агент остаётся редактором: он не вставляет предложения механически, а решает, какие принять, какие отклонить и какие требуют вопроса пользователю.
11
+
12
+ ## Вход из сообщения пользователя
13
+
14
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: путь к плану, название или часть названия, «последний план», желаемый порог, лимит итераций, ограничения, прямые указания и запреты на типы правок.
15
+
16
+ Если этого входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск полировать не тот план. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
17
+
18
+ ## Режим запуска
19
+
20
+ Порог качества по умолчанию — `95`. Пользователь может переопределить его в текущем сообщении: `до 90`, `threshold 90`, `цель 90`. Допустимые значения — от `1` до `100`.
21
+
22
+ Лимит по умолчанию — `5` итераций полировки. Пользователь может явно задать меньший или больший лимит словами `лимит 3`, `max iterations 3`, `не больше 3 кругов`.
23
+
24
+ Оценка плана:
25
+ - `95–100` — план готов к исполнению, агенты полировки не нужны;
26
+ - `80–94` — план в целом рабочий, но требует уточнений перед `eda-execute`;
27
+ - `60–79` — план рискован: есть пропуски, общие шаги или слабые критерии готовности;
28
+ - `<60` — план нельзя исполнять без серьёзной переработки или вопросов пользователю.
29
+
30
+ ## Главные правила
31
+
32
+ 1. **Не создаёшь план с нуля.** Входом всегда является уже сохранённый файл `docs/plans/...`.
33
+ 2. **Не правишь код, миграции, конфиги и зависимости.** Можно менять только выбранный файл плана.
34
+ 3. **Сначала оцениваешь план сам.** До запуска агентов поставь текущую оценку 0–100 и коротко зафиксируй причины.
35
+ 4. **Агенты запускаются только если оценка ниже порога.** Если план набрал `threshold` или выше, не запускай изолированные проверки ради формы.
36
+ 5. **Три изолированных plan-polish агента обязательны в каждой итерации ниже порога.** Запусти `completeness-polisher`, `rules-arch-polisher` и `execution-readiness-polisher` параллельно, до чтения любого результата.
37
+ 6. **Главный редактор плана — ты.** Субагенты предлагают конкретные правки; решение применить, отклонить или спросить пользователя принимаешь сам.
38
+ 7. **Не добавляй неподтверждённые существенные решения.** Новые БД/API-контракты, зависимости, архитектурные развилки, auth/permissions/payments/secrets/персональные данные и миграции можно добавить только если они уже подтверждены в плане, research, `docs/rules.md`, `docs/arch.md` или ответом пользователя.
39
+ 8. **План должен остаться планом.** Не превращай его в отчёт ревью: принятые замечания встраивай в целевые разделы, а журнал решений держи коротким в конце.
40
+ 9. **Структуру `eda-plan` сохраняй.** Не удаляй обязательные разделы `Целевой алгоритм`, `Контракты реализации`, `Фазы выполнения`, `Тесты`, `Логирование`, если они есть или должны быть по формату `eda-plan`.
41
+ 10. **Останавливайся на блокерах.** Если качество не растёт два круга подряд, агенты предлагают только неподтверждённые развилки, нужен ответ пользователя или достигнут лимит — остановись и честно назови причину.
42
+
43
+ ## Интерактивные вопросы
44
+
45
+ Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
46
+ - Claude Code: используй `AskUserQuestion`.
47
+ - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
48
+ - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
49
+ - Не запускай команды, которые ждут интерактивного ввода в терминале; перед такими командами спроси в хост-интерфейсе или остановись с `blocked`.
50
+
51
+ ## Этапы
52
+
53
+ ### 1. Выбрать план и прочитать контекст
54
+
55
+ Определи `$PLAN_FILE`:
56
+ - если пользователь указал путь к плану — используй его;
57
+ - если указал название или часть названия — найди совпадение в `docs/plans/`;
58
+ - если написал «последний план» — возьми самый новый файл из `docs/plans/`;
59
+ - если входа нет — `AskUserQuestion` со списком последних файлов из `docs/plans/`;
60
+ - если `docs/plans/` отсутствует или пуста — остановись со статусом `blocked: нужен готовый план`.
61
+
62
+ Прочитай `$PLAN_FILE` целиком. Из front matter извлеки `status`, `mode`, `plan_size`, `test_strategy`, `logging_strategy`, `sources.rules`, `sources.arch`, `sources.research`, `meta_reviewers`.
63
+
64
+ Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Если в `sources.research` указан файл исследования — прочитай его. Если план ссылается на конкретные файлы, модули, API, миграции или тесты, открой достаточно релевантного кода, чтобы понять реализуемость плана.
65
+
66
+ ### 2. Первичная оценка плана
67
+
68
+ Поставь `$SCORE` по шкале 0–100. Оцени:
69
+ - следование `docs/rules.md` и `docs/arch.md`;
70
+ - отсутствие неподтверждённых существенных решений;
71
+ - конкретность `Целевого алгоритма`;
72
+ - полноту `Контрактов реализации`, особенно БД/API/внешних контрактов;
73
+ - исполнимость фаз: цель, шаги, результат, сценарии тестирования, проверка;
74
+ - применение `test_strategy` и `logging_strategy`;
75
+ - отсутствие альтернатив вида «выбрать», «решить», «уточнить позже»;
76
+ - возможность передать план в `eda-execute` без нового исследования.
77
+
78
+ Если `$SCORE >= threshold`, добавь или обнови в конце плана короткий раздел:
79
+
80
+ ```markdown
81
+ ## Оценка plan-polish
82
+ - **Итоговая оценка:** <score>/100
83
+ - **Порог:** <threshold>/100
84
+ - **Итерации:** 0
85
+ - **Решение:** план уже готов к исполнению, изолированные агенты не запускались.
86
+ ```
87
+
88
+ После этого переходи к финалу.
89
+
90
+ ### 3. Итерационный цикл полировки
91
+
92
+ Если `$SCORE < threshold`, повторяй до достижения порога или лимита.
93
+
94
+ #### 3.1. Запустить три изолированных агента
95
+
96
+ Запусти **в одном сообщении и одним batch** три роли. Не запускай сначала одного агента, не читай его ответ и не стартуй остальных после этого.
97
+
98
+ Роли:
99
+ - `completeness-polisher` — предлагает конкретные правки для пропущенных шагов, состояний UI/API, миграций/backfill/rollback, edge cases, документации и эксплуатационных шагов.
100
+ - `rules-arch-polisher` — предлагает конкретные правки для соответствия `docs/rules.md`, `docs/arch.md`, границам модулей, локальным запретам, архитектурным решениям, API/БД-контрактам и требованиям к проверкам.
101
+ - `execution-readiness-polisher` — предлагает конкретные правки, чтобы `eda-execute` мог выполнить план без нового исследования: фазы, критерии готовности, порядок работ, тестовые сценарии, команды проверки, логирование и удаление альтернатив вида «выбрать» или «решить».
102
+
103
+ Модели:
104
+ - Claude Code: запускай все роли через `Agent` tool, предпочтительно на `model: "sonnet"`.
105
+ - Codex interactive: если доступен инструмент субагентов (`spawn_agent` или аналог), запускай все роли через него, предпочтительно на `gpt-5.3-codex`.
106
+ - Codex exec / неинтерактивный fallback: если инструмента субагентов нет, запускай три `codex exec --model gpt-5.3-codex` параллельно одной Bash-командой с `&` и общим `wait`.
107
+ - Если указанный идентификатор модели недоступен, возьми ближайшую code-capable модель того же уровня. Не используй одну и ту же беседу вместо изолированных агентов.
108
+
109
+ Каждому агенту дай путь к `$PLAN_FILE`, текущий `$SCORE`, `$threshold`, номер итерации, `docs/rules.md`, `docs/arch.md`, `sources.research` при наличии и список релевантных файлов, найденных при чтении плана. Проси открывать код только в рамках своей роли и не править файлы.
110
+
111
+ Формат ответа агентов:
112
+
113
+ ```text
114
+ score: <оценка плана 0–100 по мнению агента>
115
+ + Применить: <конкретная правка и куда встроить>
116
+ ~ Уточнить: <что переформулировать>
117
+ -- Убрать: <что неверно, лишнее или противоречит контексту>
118
+ ? Вопрос: <что нельзя безопасно решить без пользователя>
119
+ ```
120
+
121
+ #### 3.2. Проанализировать замечания
122
+
123
+ Когда все три агента ответили, сгруппируй замечания:
124
+ - **Принять** — подтверждено планом, правилами, архитектурой, research или кодом; улучшает исполнимость без новой развилки.
125
+ - **Отклонить** — противоречит контексту, дублирует уже закрытый пункт, расширяет задачу, требует неподтверждённого существенного решения или выходит за рамки плана.
126
+ - **Спросить** — замечание выглядит существенным и полезным, но требует выбора пользователя или меняет ранее подтверждённое решение.
127
+
128
+ Если есть вопросы класса **Спросить**, задай один сгруппированный `AskUserQuestion` и не редактируй план до ответа. Если вопрос нужен только из-за предложения субагента, которое можно безопасно отклонить как расширение задачи, отклони его и продолжай.
129
+
130
+ #### 3.3. Отредактировать план
131
+
132
+ Внеси принятые замечания в основные разделы плана:
133
+ - конкретизируй `Целевой алгоритм`, если не хватает сквозного поведения;
134
+ - уточни `Контракты реализации`, если БД/API/внешние контракты затронуты, но описаны неполно;
135
+ - дополни фазы шагами, результатами, сценариями тестирования и проверками;
136
+ - приведи `Тесты` и `Логирование` в соответствие с `test_strategy` и `logging_strategy`;
137
+ - убери неподтверждённые альтернативы, общие формулировки и противоречия правилам/архитектуре.
138
+
139
+ Не меняй смысл подтверждённых решений без вопроса. Если план был `short`, не раздувай его больше 2 фаз: лучше заменить общие шаги конкретными, а лишнее отклонить как выход за short-рамку.
140
+
141
+ В конец плана добавь или обнови раздел:
142
+
143
+ ```markdown
144
+ ## Изменения после plan-polish
145
+
146
+ ### Итерация <N>: completeness-polisher / rules-arch-polisher / execution-readiness-polisher
147
+ - **Оценка до:** <score_before>/100
148
+ - **+ Добавлено:** <3–7 главных изменений>
149
+ - **~ Уточнено:** <1–5 важных уточнений>
150
+ - **− Убрано:** <если удалено>
151
+ - **Отклонено:** <существенные отклонённые предложения и причина>
152
+ - **Вопросы пользователя:** <если были, кратко решение>
153
+ ```
154
+
155
+ В front matter добавь фактически запущенные роли в `meta_reviewers`, если поле есть. Если поля нет — не перестраивай весь YAML ради этого, достаточно раздела `Изменения после plan-polish`. Если `status: draft` и после правок не осталось открытых вопросов, поменяй на `status: meta-reviewed`. Если статус уже `meta-reviewed` или `reviewed`, оставь его.
156
+
157
+ #### 3.4. Пересчитать оценку
158
+
159
+ Перечитай изменённый план и поставь новую оценку `$SCORE`.
160
+
161
+ Добавь или обнови в разделе `## Оценка plan-polish`:
162
+
163
+ ```markdown
164
+ ## Оценка plan-polish
165
+ - **Итоговая оценка:** <score>/100
166
+ - **Порог:** <threshold>/100
167
+ - **Итерации:** <N>
168
+ - **Решение:** <готов к исполнению | нужен следующий круг | blocked | достигнут лимит>
169
+ ```
170
+
171
+ Если `$SCORE >= threshold`, останови цикл: план готов. Если оценка не выросла два круга подряд, остановись `blocked: score не растёт`. Если лимит достигнут, остановись и прямо сообщи, что порог не достигнут.
172
+
173
+ ### 4. Финальная самопроверка
174
+
175
+ Перед финалом перечитай изменённый план и проверь:
176
+ - план строго следует `docs/rules.md` и `docs/arch.md`;
177
+ - нет неподтверждённых существенных решений и альтернатив вида «выбрать» / «решить»;
178
+ - БД/API изменения описаны конкретно или явно помечены как `Не затрагивается`;
179
+ - каждая фаза имеет цель, шаги, результат, сценарии тестирования и проверку;
180
+ - `test_strategy` и `logging_strategy` применены в фазах и отдельных разделах;
181
+ - план можно передать в `eda-execute` без нового исследования;
182
+ - журнал `Изменения после plan-polish` не заменяет содержание плана, а только объясняет редакторские решения.
183
+
184
+ Если после самопроверки остаётся блокер, не маскируй его правками: остановись со статусом `blocked` и назови, какой ответ или файл нужен.
185
+
186
+ ### 5. Финал
187
+
188
+ Короткое сообщение:
189
+ - путь к отполированному плану;
190
+ - итоговая оценка и порог;
191
+ - сколько итераций выполнено;
192
+ - какие три агента запускались, если запускались;
193
+ - 3–5 главных принятых изменений;
194
+ - существенные отклонённые замечания, если были;
195
+ - причина остановки: `готов`, `достигнут лимит`, `score не растёт`, `blocked`;
196
+ - следующий шаг при успехе: `eda-execute <PLAN_FILE>`.
197
+
198
+ ## Чего НЕ делать
199
+
200
+ - Создавать новый план вместо полировки существующего.
201
+ - Править код, миграции, конфиги, lock-файлы или зависимости.
202
+ - Запускать агентов, если первичная оценка уже достигла порога.
203
+ - Запускать агентов последовательно и менять промпты следующих агентов после первых ответов.
204
+ - Вставлять все предложения субагентов без анализа.
205
+ - Добавлять новые существенные решения без подтверждения пользователя.
206
+ - Удалять обязательные разделы плана ради краткости.
207
+ - Превращать план в длинный отчёт о ревью.
208
+ - Скрывать, что порог не достигнут.
209
+ - Коммитить, пушить или запускать `eda-execute`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: eda-review-check
3
- description: 'Проверяет готовое ревью из `docs/reviews/...` специализированными субагентами и, в strict-режиме, соседним CLI. Не делает первичное ревью и не правит код. Читает ревью, target/plan из front matter, `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml` и связанный research при наличии. Запускает plan-check, architecture-check, rules-check и опциональный quality-check, затем сам применяет подтверждённые замечания к файлу ревью: добавляет, убирает или переформулирует пункты, обновляет score/status/meta_reviewers и раздел изменений после мета-ревью.'
3
+ description: 'Проверяет готовое ревью из `docs/reviews/...` специализированными субагентами и, в strict-режиме, соседним CLI. Не делает первичное ревью и не правит код. Читает ревью, target/plan из front matter, `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml` и связанный research при наличии. Запускает architecture-check, rules-check, plan-check только при указанном plan-файле и опциональный quality-check, затем сам применяет подтверждённые замечания к файлу ревью: добавляет, убирает или переформулирует пункты, обновляет score/status/meta_reviewers и раздел изменений после мета-ревью.'
4
4
  ---
5
5
 
6
6
  # Скил: Проверка ревью (eda-review-check)
@@ -30,7 +30,7 @@ description: 'Проверяет готовое ревью из `docs/reviews/..
30
30
 
31
31
  1. **Не делаешь первичное ревью.** Входом всегда является готовый файл `docs/reviews/...`.
32
32
  2. **Не правишь код.** Можно менять только выбранный файл ревью и вспомогательный файл `${REVIEW_FILE%.md}_cli_meta.md` в strict-режиме.
33
- 3. **Мета-ревью специализированными агентами обязательно.** Базовые роли: `plan-check`, `architecture-check`, `rules-check`. Если включена проверка качества кода — добавь `quality-check` в тот же batch.
33
+ 3. **Мета-ревью специализированными агентами обязательно.** Базовые роли: `architecture-check`, `rules-check`. `plan-check` запускай только если в front matter ревью `plan` указывает на конкретный файл. Если включена проверка качества кода — добавь `quality-check` в тот же batch.
34
34
  4. **Главный редактор ревью — ты.** Субагенты дают предложения; решение добавить, убрать или переформулировать пункт принимаешь сам.
35
35
  5. **Ревью остаётся ревью только по проблемам.** Не добавляй выполненные пункты, похвалу, нейтральный отчёт о diff или общие рассуждения.
36
36
  6. **Каждое принятое изменение фиксируй в `## Изменения после мета-ревью`.** Отклонённые предложения тоже запиши коротко с причиной.
@@ -55,16 +55,16 @@ description: 'Проверяет готовое ревью из `docs/reviews/..
55
55
  - если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`;
56
56
  - если `docs/reviews/` отсутствует или пуста — остановись со статусом `blocked: нужно ревью`.
57
57
 
58
- Прочитай `$REVIEW_FILE` целиком. Из front matter и текста извлеки `$TARGET`, `$PLAN_FILE`, текущие `mode`, `score`, `status`, `meta_reviewers`. Если target указывает на diff-команду, получи актуальный diff. Если target указывает на файл, папку или PR — прочитай достаточно кода, чтобы проверить замечания. Прочитай `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml`, если они есть. Если ревью ссылается на `docs/researches/...`, прочитай связанный research.
58
+ Прочитай `$REVIEW_FILE` целиком. Из front matter и текста извлеки `$TARGET`, `$PLAN_FILE`, текущие `mode`, `score`, `status`, `meta_reviewers`. Если `plan: none` или план явно помечен как пропущенный, установи `$PLAN_FILE=none`. Если target указывает на diff-команду, получи актуальный diff. Если target указывает на файл, папку или PR — прочитай достаточно кода, чтобы проверить замечания. Прочитай `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml`, если они есть. Если ревью ссылается на `docs/researches/...`, прочитай связанный research.
59
59
 
60
- Если `$PLAN_FILE` отсутствует, не угадывай план. `plan-check` всё равно запускается, но получает явную инструкцию вернуть только `? план не проверен: нужен путь к файлу`.
60
+ Если `$PLAN_FILE=none` или отсутствует, не угадывай план и не запускай `plan-check`. В разделе изменений после мета-ревью коротко зафиксируй: «plan-check не запускался: план не указан в ревью».
61
61
 
62
62
  ### 2. Запустить специализированных субагентов
63
63
 
64
- Запусти **в одном сообщении и одним batch** агентов с разными ролями. В интерактивном Codex это означает субагентов, а не отдельные процессы `codex exec`. Не запускай сначала часть агентов, не жди их ответы и не запускай остальных позже: все проверки должны стартовать до чтения любого результата.
64
+ Запусти **в одном сообщении и одним batch** агентов с выбранными ролями. В интерактивном Codex это означает субагентов, а не отдельные процессы `codex exec`. Не запускай сначала часть агентов, не жди их ответы и не запускай остальных позже: все выбранные проверки должны стартовать до чтения любого результата.
65
65
 
66
66
  Роли агентов:
67
- - `plan-check`: проверяет, что реализация действительно выполнила `$PLAN_FILE`, включая частичные пункты, пропущенные требования, лишние отклонения и недостающие проверки.
67
+ - `plan-check`: запускай только если `$PLAN_FILE` указывает на существующий файл. Проверяет, что реализация действительно выполнила `$PLAN_FILE`, включая частичные пункты, пропущенные требования, лишние отклонения и недостающие проверки.
68
68
  - `architecture-check`: проверяет следование `docs/arch.md`, границы модулей, контракты, зависимости и соответствие существующим архитектурным решениям.
69
69
  - `rules-check`: проверяет следование `docs/rules.md`, локальным запретам, обязательным командам, требованиям к тестам, миграциям, документации и процессу.
70
70
  - `quality-check`: запускай только если `review.include_code_quality: true` или пользователь явно попросил качество кода. Проверяет качество реализации: читаемость, сложность, дублирование, имена, размер и ответственность функций/классов, сцепление модулей, поддерживаемость и соответствие локальному стилю. Quality-замечания помечай типом `quality`; по умолчанию рекомендация `на усмотрение автора`, кроме случаев, где сложность, дублирование или неясная структура реально создают риск багов, тестовых пробелов или дорогого сопровождения.
@@ -73,9 +73,9 @@ description: 'Проверяет готовое ревью из `docs/reviews/..
73
73
  - Claude Code: запускай все роли через `Agent` tool на `model: "sonnet"`.
74
74
  - Codex interactive: если доступен инструмент субагентов (`spawn_agent` или аналог), запускай все роли через него на `gpt-5.3-codex`; не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны.
75
75
  - Codex exec / неинтерактивный fallback: если инструмента субагентов нет, запускай роли через параллельные `codex exec --model gpt-5.3-codex` одной Bash-командой с `&` и общим `wait`.
76
- - Если нужный идентификатор недоступен, возьми ближайшую code-capable модель того же уровня. Не используй быструю слабую модель для этих проверок: они должны читать diff, план, правила, архитектуру и релевантный код.
76
+ - Если нужный идентификатор недоступен, возьми ближайшую code-capable модель того же уровня. Не используй быструю слабую модель для этих проверок: они должны читать diff, план при наличии, правила, архитектуру и релевантный код.
77
77
 
78
- Каждому агенту дай путь к `$REVIEW_FILE`, `$TARGET`, `$PLAN_FILE`, `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml`, связанный research при наличии. Каждый агент должен читать не только ревью, но и фактический diff/код, достаточный для проверки своей роли.
78
+ Каждому агенту дай путь к `$REVIEW_FILE`, `$TARGET`, `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml`, связанный research при наличии. `plan-check` дополнительно получает `$PLAN_FILE`, если он есть. Каждый агент должен читать не только ревью, но и фактический diff/код, достаточный для проверки своей роли.
79
79
 
80
80
  Формат ответа агентов:
81
81
  - `+` какую проблему добавить в ревью;
@@ -83,7 +83,7 @@ description: 'Проверяет готовое ревью из `docs/reviews/..
83
83
  - `~` что переформулировать;
84
84
  - `?` что невозможно проверить и почему.
85
85
 
86
- Для `plan-check` добавь явную инструкцию: «Если `$PLAN_FILE` не передан или файл не найден, верни только `? план не проверен: нужен путь к файлу`; не пытайся угадывать план.»
86
+ Если `$PLAN_FILE` не передан, равен `none` или файл не найден, `plan-check` не запускай.
87
87
 
88
88
  ### 3. Применить результаты обычного мета-ревью
89
89
 
@@ -99,7 +99,7 @@ description: 'Проверяет готовое ревью из `docs/reviews/..
99
99
  - **Отклонено:** <короткий список с причиной>
100
100
  ```
101
101
 
102
- Поменяй `status: draft` → `meta-reviewed`, если статус был draft. В `meta_reviewers` добавь `plan-check`, `architecture-check`, `rules-check`, а если запускался — `quality-check`, и фактические модели, например `gpt-5.3-codex` или `sonnet`. Если оценка после корректировок изменилась — обнови `score`.
102
+ Поменяй `status: draft` → `meta-reviewed`, если статус был draft. В `meta_reviewers` добавь только фактически запущенные роли: `architecture-check`, `rules-check`, `plan-check` при наличии `$PLAN_FILE`, а если запускался — `quality-check`, и фактические модели, например `gpt-5.3-codex` или `sonnet`. Если оценка после корректировок изменилась — обнови `score`.
103
103
 
104
104
  ### 4. Кросс-CLI: отдать соседнему агенту — только в `strict`
105
105
 
@@ -117,6 +117,8 @@ codex exec "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, d
117
117
  claude -p "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, docs/arch.md, связанный research при наличии. Затем глубоко проверь ревью по плану, правилам, архитектуре и релевантному коду: открой файлы, модули, API и тесты, которые следуют из diff и замечаний, и оцени фактическую корректность. Мета-ревью на русском: какие проблемы добавить, убрать, переформулировать; какие баги, риски для смежного кода и недостающие тесты пропущены. Не предлагай перечислять выполненную работу. Формат: '+', '−', '~', '?'." > "${REVIEW_FILE%.md}_cli_meta.md"
118
118
  ```
119
119
 
120
+ Если `$PLAN_FILE=none`, в промпте соседнему CLI явно напиши: «План не указан; не проверяй выполнение плана и не угадывай файл плана, проверь только правила, архитектуру и код».
121
+
120
122
  Соседней CLI нет — `AskUserQuestion`: завершить как есть или прервать.
121
123
 
122
124
  Прочитай ответ, **сам реши**, что применять. Допиши в `## Изменения после мета-ревью`:
@@ -139,7 +141,7 @@ claude -p "Прочитай $REVIEW_FILE, $TARGET, $PLAN_FILE, docs/rules.md, do
139
141
  - Делать первичное ревью. Это `eda-review`.
140
142
  - Править код. Это `eda-fix-by-review`.
141
143
  - Пропускать мета-ревью специализированными агентами.
142
- - Запускать мета-ревьюеров частями: сначала 1–2 агента, потом остальных. Все обязательные проверки стартуют сразу.
144
+ - Запускать мета-ревьюеров частями: сначала 1–2 агента, потом остальных. Все выбранные обязательные проверки стартуют сразу.
143
145
  - Пропускать кросс-CLI молча в `strict` (если соседней CLI нет — спроси через `AskUserQuestion`).
144
146
  - Вставлять чужие предложения механически — каждое решение принимай ты.
145
147
  - Задавать вопросы без блокировки и продолжать работу до ответа.
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: eda-review
3
- description: 'Ревью изменений (незакоммиченный diff, ветка, PR, папка/файл) с обязательной сверкой с планом работ из `docs/plans/`. Если план не указан и его нельзя однозначно определить, спрашивает путь к плану до ревью. Перед ревью читает `docs/rules.md` и `docs/arch.md`. Формирует ревью только по проблемам, сохраняет в `docs/reviews/` и в обычном режиме передаёт файл в `eda-review-check` для мета-проверки субагентами. Флаг `draft` сохраняет только черновое ревью без субагентов. Кросс-CLI включается флагом `strict` или настройкой `defaults.strict: true`. Не правит код — это `eda-fix-by-review`.'
3
+ description: 'Ревью изменений (незакоммиченный diff, ветка, PR, папка/файл) с оценкой и сверкой с планом работ из `docs/plans/`, когда план указан или однозначно найден. Если запущен без аргументов, ревьюит незакоммиченный `git diff HEAD` без проверки плана. Перед ревью читает `docs/rules.md` и `docs/arch.md`. Формирует ревью только по проблемам, сохраняет в `docs/reviews/` и в обычном режиме передаёт файл в `eda-review-check` для мета-проверки субагентами. Флаг `draft` сохраняет только черновое ревью без субагентов. Кросс-CLI включается флагом `strict` или настройкой `defaults.strict: true`. Не правит код — это `eda-fix-by-review`.'
4
4
  ---
5
5
 
6
6
  # Скил: Ревьюер (eda-review)
7
7
 
8
- Делаешь ревью изменений: сверяешь diff с планом работ, правилами и архитектурой, пишешь только найденные проблемы, ставишь оценку, сохраняешь файл. Каждый пункт начинаешь с короткого человеческого объяснения риска, без технической перегрузки; файлы, строки, детали кода и способ исправления даёшь ниже в блоке «Технические детали». Не перечисляешь, что выполнено хорошо или без замечаний. Затем в обычном режиме запускаешь `eda-review-check`, который проверяет ревью параллельными специализированными агентами; в `strict` он добавляет соседний CLI. В `draft` останавливаешься сразу после сохранения черновика.
8
+ Делаешь ревью изменений: сверяешь diff с планом работ, правилами и архитектурой, пишешь только найденные проблемы, ставишь оценку, сохраняешь файл. Если скилл вызван без аргументов, ревьюишь незакоммиченный `git diff HEAD` и не проверяешь план. Каждый пункт начинаешь с короткого человеческого объяснения риска, без технической перегрузки; файлы, строки, детали кода и способ исправления даёшь ниже в блоке «Технические детали». Не перечисляешь, что выполнено хорошо или без замечаний. Затем в обычном режиме запускаешь `eda-review-check`, который проверяет ревью параллельными специализированными агентами; в `strict` он добавляет соседний CLI. В `draft` останавливаешься сразу после сохранения черновика.
9
9
 
10
10
  ## Режим запуска
11
11
 
@@ -33,7 +33,7 @@ description: 'Ревью изменений (незакоммиченный diff
33
33
  1. **Перед ревью** прочитай `docs/rules.md` и `docs/arch.md`, если есть, и строго следуй им. Замечания должны опираться на правила и архитектуру проекта, а не на твои общие представления.
34
34
  2. **Интерактивные вопросы** — по разделу ниже. Если контекст понятен, не спрашивай.
35
35
  3. **Не правишь код.** Только ревью. Запись только в `docs/reviews/`.
36
- 4. **План работ обязателен для ревью выполненных изменений.** Если путь к плану не указан в запросе и его нельзя однозначно определить из diff/ссылок, спроси путь к файлу плана и остановись до ответа. Не подставляй «последний план» наугад.
36
+ 4. **План работ обязателен для явно заданного ревью выполненных изменений.** Если пользователь указал файл, папку, PR, ветку, тип diff или другую цель ревью, а путь к плану не указан и его нельзя однозначно определить из diff/ссылок, спроси путь к файлу плана и остановись до ответа. Исключение: запуск без аргументов — ревью незакоммиченного `git diff HEAD` без проверки плана. Не подставляй «последний план» наугад.
37
37
  5. **Мета-ревью специализированными агентами — обязательно в normal/strict**, но выполняется отдельным скиллом `eda-review-check`. В `draft` мета-ревью не запускается.
38
38
  6. **Главный ревьюер — ты.** Мета-ревьюеры дают подсказки; решение — добавить, убрать или оставить пункт — за тобой. Не вставляй чужие пункты механически.
39
39
  7. **Простой язык** в формулировках замечаний и рекомендаций. Технические термины — только если без них нельзя, и сразу с пояснением.
@@ -48,7 +48,7 @@ description: 'Ревью изменений (незакоммиченный diff
48
48
 
49
49
  ## Интерактивные вопросы
50
50
 
51
- Если цель ревью понятна из запроса или текущего состояния репозитория, **не задавай вопрос о цели ревью**. Это не отменяет обязательный вопрос о `$PLAN_FILE`, если план не указан и не найден однозначно. Примеры понятного контекста:
51
+ Если цель ревью понятна из запроса или текущего состояния репозитория, **не задавай вопрос о цели ревью**. Это не отменяет обязательный вопрос о `$PLAN_FILE` для явно заданной цели, если план не указан и не найден однозначно. Для запуска без аргументов вопрос о плане не задавай: проверка плана пропускается. Примеры понятного контекста:
52
52
  - пользователь указал файл, папку, PR, ветку или тип diff;
53
53
  - в запросе есть «ревью незакоммиченных изменений», «ревью текущей ветки», «проверь PR #N»;
54
54
  - в рабочем дереве есть незакоммиченные изменения и пользователь просит «сделай ревью» без других целей.
@@ -70,16 +70,17 @@ description: 'Ревью изменений (незакоммиченный diff
70
70
 
71
71
  Получи diff/исходник в `$TARGET`. Прочитай `docs/rules.md`, `docs/arch.md` и строго следуй им.
72
72
 
73
- Определи `$PLAN_FILE`:
73
+ Определи `$PLAN_FILE` и `$PLAN_MODE`:
74
+ - если пользователь вызвал скилл без аргументов, а целью выбран незакоммиченный `git diff HEAD` — установи `$PLAN_FILE=none`, `$PLAN_MODE=skipped_no_args` и не спрашивай план;
74
75
  - если пользователь указал путь к плану — используй его;
75
76
  - если в diff, описании задачи или уже существующем review-файле есть однозначная ссылка на `docs/plans/...` — используй её;
76
- - если есть несколько возможных планов или нет ни одного — спроси: «Какой файл плана использовать для проверки выполнения работ?» и остановись до ответа;
77
+ - если цель ревью явно задана пользователем и есть несколько возможных планов или нет ни одного — спроси: «Какой файл плана использовать для проверки выполнения работ?» и остановись до ответа;
77
78
  - если пользователь явно просит ревью без сверки с планом — продолжай, но в ревью укажи, что проверка выполнения плана пропущена по явному указанию пользователя.
78
79
 
79
80
  Если в diff видно отсылки к исследованию из `docs/researches/` — прочитай его тоже.
80
81
 
81
82
  ### 2. Сделать первичное ревью и сохранить
82
- Пройдись по изменениям. Сначала проверь, выполнен ли `$PLAN_FILE`, но в ревью выноси только проблемы: что сделано частично, что не сделано, какие отклонения создают риск, какие проверки отсутствуют. Не перечисляй выполненные пункты плана. Затем проверь нарушения правил, архитектуры, баги, тестовые пробелы, безопасность, производительность и документацию. Если `review.include_code_quality: true` или пользователь явно попросил качество кода, отдельно проверь качество реализации: читаемость, сложность, дублирование, имена, границы ответственности, связность модулей, поддерживаемость и соответствие стилю уже существующего кода.
83
+ Пройдись по изменениям. Если `$PLAN_FILE` указывает на файл, сначала проверь, выполнен ли план, но в ревью выноси только проблемы: что сделано частично, что не сделано, какие отклонения создают риск, какие проверки отсутствуют. Если `$PLAN_FILE=none`, не делай проверку плана и не пытайся восстановить план из последних файлов. Не перечисляй выполненные пункты плана. Затем проверь нарушения правил, архитектуры, баги, тестовые пробелы, безопасность, производительность и документацию. Если `review.include_code_quality: true` или пользователь явно попросил качество кода, отдельно проверь качество реализации: читаемость, сложность, дублирование, имена, границы ответственности, связность модулей, поддерживаемость и соответствие стилю уже существующего кода.
83
84
 
84
85
  Каждое замечание должно быть самостоятельным блоком:
85
86
  - заголовок с номером и коротким смыслом;
@@ -95,6 +96,7 @@ description: 'Ревью изменений (незакоммиченный diff
95
96
  title: <заголовок>
96
97
  date: <YYYY-MM-DD HH:MM>
97
98
  target: <git diff HEAD | main...HEAD | path | PR#>
99
+ plan: <docs/plans/... | none>
98
100
  mode: <draft | normal | strict>
99
101
  score: <0..100>
100
102
  status: draft
@@ -109,7 +111,7 @@ meta_reviewers: []
109
111
 
110
112
  ## Проблемы сверки с планом
111
113
 
112
- <Если проблем по плану нет: «Явных проблем по плану не найдено.»>
114
+ <Если `$PLAN_FILE=none`: «Проверка плана пропущена: запуск без аргументов использует незакоммиченный `git diff HEAD` без сверки с планом.» Если проблем по плану нет: «Явных проблем по плану не найдено.»>
113
115
 
114
116
  ### 1. <недоделка, отклонение или непроверенный пункт>
115
117
 
@@ -154,7 +156,7 @@ meta_reviewers: []
154
156
  Если режим `draft` — не запускай субагентов и не вызывай `eda-review-check`; сразу переходи к финалу draft.
155
157
 
156
158
  ### 3. Проверить ревью через `eda-review-check`
157
- В normal/strict запусти `eda-review-check` для `$REVIEW_FILE` и передай выбранный режим (`normal` или `strict`). Именно `eda-review-check` запускает `plan-check`, `architecture-check`, `rules-check` и при включённой настройке `quality-check`, обновляет `status`, `meta_reviewers`, `score` и раздел `## Изменения после мета-ревью`.
159
+ В normal/strict запусти `eda-review-check` для `$REVIEW_FILE` и передай выбранный режим (`normal` или `strict`). Именно `eda-review-check` запускает `architecture-check`, `rules-check`, а если `plan` в front matter указывает на файл — ещё и `plan-check`; при включённой настройке `quality-check` тоже запускается. Затем `eda-review-check` обновляет `status`, `meta_reviewers`, `score` и раздел `## Изменения после мета-ревью`.
158
160
 
159
161
  Требования к средам остаются частью контракта ревью: Codex interactive: если доступен инструмент субагентов (`spawn_agent` или аналог), используй его; не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны. Codex exec / неинтерактивный fallback допустим только как fallback и описан в `eda-review-check`. Кросс-CLI выполняет только `eda-review-check strict`.
160
162
 
@@ -0,0 +1,233 @@
1
+ ---
2
+ name: eda-start
3
+ description: 'Помогает стартовать новый проект: собирает требования, критерии MVP, ограничения и риски; вместе с пользователем выбирает стек, архитектуру, инструменты качества кода, AI-скилы, агентные инструкции, MCP-серверы и правила проекта. Для пакетов всегда ищет последние стабильные версии по официальным источникам; для библиотек, CLI, сервисов и MCP проверяет актуальные стабильные версии, если они не заданы. Не пишет код и не устанавливает зависимости: сохраняет согласованный стартовый документ в docs/project-starts/ и черновики docs/rules.md / docs/arch.md / AGENTS.md, если пользователь это подтвердил.'
4
+ ---
5
+
6
+ # Скил: Старт проекта (eda-start)
7
+
8
+ Помогаешь начать новый проект с понятной рамкой: что делаем, для кого, на каком стеке, с какой архитектурой, какими проверками качества, какими AI-скилами и MCP-серверами, и какие правила сразу внедряем. Работаешь как технический партнёр: сначала собираешь факты, затем рекомендуешь варианты и принимаешь решения вместе с пользователем.
9
+
10
+ ## Вход из сообщения пользователя
11
+
12
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: идею проекта, продуктовую цель, аудиторию, ограничения, сроки, предпочтения по стеку, инфраструктуре, бюджету, команде, требованиям к качеству, безопасности и эксплуатации.
13
+
14
+ Если входа достаточно для первого анализа, не спрашивай подтверждение самой темы, но всё равно задай вопросы по значимым стартовым решениям. `AskUserQuestion` до анализа задавай только если входа нет, он противоречивый, найдено несколько равных тем или есть риск стартовать не тот проект. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
15
+
16
+ ## Главные правила
17
+
18
+ 1. **Интерактивное совместное решение обязательно.** Нельзя молча выбрать стек, архитектуру, правила, MCP или инструменты качества, если это значимо влияет на проект.
19
+ 2. **Не пишешь код и не ставишь пакеты.** Запись только в `docs/project-starts/` и, после явного подтверждения пользователя, в `docs/rules.md`, `docs/arch.md`, `AGENTS.md`.
20
+ 3. **Требования раньше стека.** Сначала выясни продукт, пользователей, MVP, ограничения, данные, интеграции, безопасность, эксплуатацию и команду. Только после этого выбирай стек.
21
+ 4. **Стек подбирается под задачу.** Не навязывай любимые технологии. Для каждого ключевого выбора дай 2–3 реалистичных варианта, рекомендацию и причину.
22
+ 5. **Инструменты качества обязательны для выбранного стека.** Подбери форматтер, линтер, статанализатор/typecheck, тестовый стек, coverage, dependency/security audit, pre-commit и CI-проверки, если они есть и уместны в выбранной экосистеме.
23
+ 6. **MCP и скилы — только по делу.** Рекомендуй MCP-сервер или скил, когда он закрывает реальную нехватку контекста, интеграцию, повторяемый процесс или качество агентной работы.
24
+ 7. **Версии пакетов проверяй всегда.** Если предлагаешь npm/pip/gem/cargo/go/composer-пакет или пакет из другой экосистемы, найди последнюю стабильную версию через context7, если он доступен, или через web search по официальной документации, registry, release notes или репозиторию проекта. Не пиши `latest` без конкретной версии и источника. Если пользователь явно зафиксировал другую версию, не меняй её молча: покажи текущую стабильную, зафиксированную пользователем и причину расхождения.
25
+ 8. **Версии ПО тоже проверяй.** Если предлагаешь CLI, фреймворки, сервисы или MCP-серверы, а версия не зафиксирована пользователем, проверь актуальную стабильную версию через context7, если он доступен, или через web search по официальным источникам.
26
+ 9. **Архитектура должна быть объяснима.** Выбранная архитектура обязана соответствовать масштабу MVP, рискам, команде и будущему росту. Не предлагай сложность без причины.
27
+ 10. **Правила должны быть применимы.** Каждое правило должно отвечать на конкретный риск проекта и иметь понятную проверку: автоматическую, ревью-проверку или договорённость в `docs/rules.md`.
28
+ 11. **Простой язык. Таблицы** используй для сравнений стека, инструментов, MCP, скилов, правил и архитектурных вариантов.
29
+
30
+ ## Интерактивные вопросы
31
+
32
+ Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
33
+ - Claude Code: используй `AskUserQuestion`.
34
+ - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
35
+ - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
36
+ - Не запускай команды, которые ждут интерактивного ввода в терминале.
37
+
38
+ Вопросы задавай пакетами по 1–3 за раз. Сначала спрашивай только то, без чего следующий шаг будет гаданием. После каждого пакета используй ответ, обновляй рекомендацию и продолжай.
39
+
40
+ ## Этапы
41
+
42
+ ### 1. Собрать требования
43
+
44
+ Собери и зафиксируй:
45
+ - цель проекта и аудиторию;
46
+ - MVP и что точно не входит в первую версию;
47
+ - основные пользовательские сценарии;
48
+ - типы данных, чувствительные данные, персональные данные и требования к хранению;
49
+ - интеграции, платежи, auth, уведомления, файлы, поиск, аналитика, админку;
50
+ - нагрузку, SLA, бюджет, сроки, размер команды и опыт команды;
51
+ - платформы: web, mobile, desktop, API, CLI, bot, internal tool;
52
+ - ограничения по хостингу, лицензиям, vendor lock-in, compliance и региону.
53
+
54
+ Если не хватает критичных требований, задай `AskUserQuestion` и остановись до ответа.
55
+
56
+ ### 2. Выбрать стек
57
+
58
+ Сравни 2–3 подходящих варианта стека. Для каждого укажи:
59
+ - где он силён для этого проекта;
60
+ - главный риск;
61
+ - стоимость внедрения и поддержки;
62
+ - зрелость экосистемы;
63
+ - совместимость с командой и MVP.
64
+
65
+ Рекомендуй один вариант. Если пользователь не дал режим «сам выбирай», задай `AskUserQuestion`: принять рекомендацию / выбрать альтернативу / сузить требования и пересчитать выбор.
66
+
67
+ Для выбранного стека зафиксируй конкретные версии основных компонентов или источник версии: runtime, framework, БД, ORM, тестовый фреймворк, build tool, package manager, контейнеры и ключевые сервисы.
68
+
69
+ Для каждого выбранного пакета отдельно зафиксируй:
70
+ - последнюю стабильную версию;
71
+ - источник версии и дату проверки;
72
+ - если версия зафиксирована пользователем и отличается от последней стабильной — обе версии и причину, почему остаёмся на pinned-версии или почему предлагаем обновление.
73
+
74
+ ### 3. Подобрать инструменты качества
75
+
76
+ Для выбранного стека подбери инструменты с обоснованием:
77
+ - форматирование кода;
78
+ - линтеры;
79
+ - статический анализ и typecheck;
80
+ - unit/integration/e2e/contract-тесты;
81
+ - coverage;
82
+ - dependency audit и security scan;
83
+ - schema/API validation;
84
+ - миграции БД и проверки миграций;
85
+ - pre-commit hooks;
86
+ - CI pipeline;
87
+ - генераторы типов или клиентов, если API/схемы это требуют.
88
+
89
+ Не предлагай инструмент, если он дублирует уже выбранный инструмент того же класса без явной пользы. Если в экосистеме есть несколько нормальных вариантов, сравни их и выбери один.
90
+
91
+ ### 4. Выбрать архитектуру
92
+
93
+ Предложи 2–3 архитектурных варианта, соответствующих выбранному стеку и масштабу:
94
+ - простой монолит / modular monolith;
95
+ - API + frontend;
96
+ - event-driven части;
97
+ - serverless;
98
+ - mobile-first / offline-first;
99
+ - plugin/module architecture;
100
+ - другой вариант, если он лучше подходит.
101
+
102
+ Для каждого варианта покажи границы модулей, поток данных, риски и что будет сложно менять позже. Рекомендуй один вариант и задай `AskUserQuestion`, если выбор влияет на стоимость, сроки, масштабирование, данные или команду.
103
+
104
+ ### 5. Решить правила проекта
105
+
106
+ Сформируй набор правил, которые стоит внедрить с первого дня:
107
+ - структура проекта и границы модулей;
108
+ - стиль кода и naming;
109
+ - работа с ошибками и логированием;
110
+ - тестовая стратегия;
111
+ - миграции и данные;
112
+ - API-контракты;
113
+ - безопасность и секреты;
114
+ - доступность и UX, если есть UI;
115
+ - observability;
116
+ - работа с AI-агентами, планами, ревью и коммитами;
117
+ - политика зависимостей и обновлений.
118
+
119
+ Для каждого правила укажи: какой риск оно закрывает, как проверяется, где будет зафиксировано. Затем спроси пользователя, какие правила принять сейчас, какие оставить предложениями и какие убрать.
120
+
121
+ ### 6. Подобрать AI-скилы, агентные инструкции и MCP
122
+
123
+ Подбирай рабочий набор AI-инструментов только после требований, стека, инструментов качества, архитектуры и правил. Эти решения задают контекст: какие источники нужны агенту, какие проверки уже закрыты кодовыми инструментами, где нужны отдельные роли и какие права доступа допустимы.
124
+
125
+ Подбери:
126
+ - какие AI-скилы, slash-команды, агентные инструкции или специализированные роли нужны сразу: старт проекта, продуктовый discovery, планирование, исполнение задач, ревью, security review, проверка доступности, работа с документацией, релизный процесс, domain-expert по предметной области;
127
+ - какие готовые скилы можно взять из доступных наборов, включая `eda-*`, Claude/Codex skills, командные инструкции репозитория или публичные каталоги, если они подходят;
128
+ - какие проектные скилы стоит написать специально под этот проект: например для доменной модели, архитектурных границ, API-контрактов, миграций, дизайн-системы, ревью UI, работы с данными или внутренними интеграциями;
129
+ - какие скилы и агентные роли отложить до появления кода, команды или повторяющейся проблемы;
130
+ - какие MCP-серверы помогут агенту: файловая система, GitHub/GitLab, Postgres/SQLite, браузер, Playwright, Figma, документация, API-клиенты, issue tracker, cloud provider;
131
+ - какие MCP не нужны, потому что выбранная архитектура, правила или инструменты качества уже закрывают задачу.
132
+
133
+ Для каждого скила или агентной инструкции укажи: какую работу закрывает, кто запускает, на каких источниках должен основываться, какой артефакт создаёт, чем проверять результат и почему обычного промпта недостаточно. Не ограничивайся `eda-*`: они только один из возможных источников.
134
+
135
+ Для каждого MCP укажи: зачем он нужен именно при выбранной архитектуре и правилах, какие данные откроет агенту, риски доступа, минимальные права и когда подключать. MCP с доступом к продакшену, секретам, платежам или персональным данным не включай по умолчанию: вынеси на отдельное подтверждение.
136
+
137
+ ### 7. Сохранить стартовый документ
138
+
139
+ Сохрани стартовый документ в `docs/project-starts/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
140
+
141
+ Формат:
142
+
143
+ ```markdown
144
+ ---
145
+ title: <заголовок>
146
+ date: <YYYY-MM-DD HH:MM>
147
+ status: draft
148
+ sources:
149
+ existing_rules: <путь или —>
150
+ existing_arch: <путь или —>
151
+ ---
152
+
153
+ # Старт проекта
154
+
155
+ ## Требования
156
+ <цель, аудитория, MVP, ограничения, не входит>
157
+
158
+ ## Принятые решения
159
+ | Область | Решение | Почему | Подтверждение |
160
+ |---|---|---|---|
161
+ | Стек | ... | ... | ответ пользователя / рекомендация принята |
162
+
163
+ ## Стек
164
+ | Компонент | Выбор | Версия / источник | Обоснование |
165
+ |---|---|---|---|
166
+
167
+ ## Инструменты качества
168
+ | Класс | Инструмент | Где запускать | Почему |
169
+ |---|---|---|---|
170
+
171
+ ## Архитектура
172
+ <выбранный вариант, границы модулей, поток данных, важные ограничения>
173
+
174
+ ## Правила
175
+ | Правило | Риск | Проверка | Статус |
176
+ |---|---|---|---|
177
+
178
+ ## AI-скилы и агентные инструкции
179
+ | Скил / инструкция | Источник | Когда использовать | Артефакт | Почему |
180
+ |---|---|---|---|---|
181
+
182
+ ## MCP
183
+ | MCP | Когда подключать | Права доступа | Риски |
184
+ |---|---|---|---|
185
+
186
+ ## Открытые вопросы
187
+ - <если есть>
188
+
189
+ ## Следующие шаги
190
+ 1. <создать/обновить docs/rules.md>
191
+ 2. <создать/обновить docs/arch.md>
192
+ 3. <запустить eda-plan для первого инкремента>
193
+ ```
194
+
195
+ Quality gate перед сохранением:
196
+ - есть требования и границы MVP;
197
+ - выбран один основной стек, а не список равных вариантов;
198
+ - инструменты качества покрывают форматирование, lint/static analysis/typecheck, тесты и CI или объясняют, почему часть не нужна;
199
+ - выбрана архитектура и описаны границы;
200
+ - правила имеют риск и способ проверки;
201
+ - есть список AI-скилов, агентных инструкций или ролей с назначением, источником и артефактом, подобранный под выбранную архитектуру и правила;
202
+ - MCP-серверы имеют обоснование, права и риски, связанные с выбранной архитектурой, данными и интеграциями;
203
+ - все значимые решения имеют подтверждение пользователя или явно помечены как автономная рекомендация;
204
+ - для каждого выбранного пакета указана последняя стабильная версия и источник; если используется не последняя стабильная версия, причина явно записана;
205
+ - версии другого ПО проверены или объяснено, почему это не требуется.
206
+
207
+ ### 8. Создать черновики правил и архитектуры
208
+
209
+ После сохранения стартового документа спроси `AskUserQuestion`: создать черновики `docs/rules.md`, `docs/arch.md` и `AGENTS.md` сейчас / только стартовый документ / выбрать отдельные документы.
210
+
211
+ Если пользователь подтвердил:
212
+ - не перезаписывай существующие файлы молча;
213
+ - для каждого существующего файла спроси: дополнить / создать рядом / оставить как есть;
214
+ - в `docs/rules.md` перенеси только принятые правила, а предложения оставь отдельным разделом;
215
+ - в `docs/arch.md` перенеси выбранную архитектуру, границы модулей, поток данных, данные и интеграции;
216
+ - в `AGENTS.md` добавь краткую карту проекта и ссылки на `docs/rules.md`, `docs/arch.md`, стартовый документ и команды проверки.
217
+
218
+ Если пользователь отказался, не создавай эти файлы и запиши отказ в финале.
219
+
220
+ ### 9. Финал
221
+
222
+ Короткое сообщение: путь к стартовому документу, какие решения приняты, какие документы созданы или не созданы, какие вопросы остались открытыми, какой следующий скил логично использовать (`eda-plan` для первого инкремента или `eda-docs` для доработки правил и архитектуры).
223
+
224
+ ## Чего НЕ делать
225
+
226
+ - Создавать приложение, писать код, миграции, конфиги, CI или устанавливать зависимости.
227
+ - Выбирать стек до требований.
228
+ - Давать один вариант без объяснения альтернатив, если решение значимое.
229
+ - Ставить MCP по умолчанию с широкими правами доступа.
230
+ - Подменять линтеры, статанализаторы, typecheck и тесты агентными проверками.
231
+ - Внедрять правила без согласия пользователя.
232
+ - Перезаписывать существующие `docs/rules.md`, `docs/arch.md` или `AGENTS.md` без отдельного подтверждения.
233
+ - Сохранять стартовый документ куда-либо кроме `docs/project-starts/`.