@gian-tiaga/eda 0.6.2 → 0.7.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.
@@ -1,257 +1,94 @@
1
1
  ---
2
2
  name: eda-plan
3
- description: 'Пишет план реализации по тексту рядом с вызовом или указанному research-файлу через стандартный Plan Mode (Claude Code / Codex). Перед планированием читает docs/rules.md и docs/arch.md как обязательную рамку: выделяет применимые правила и архитектурные ограничения, передаёт их в Plan Mode и не финализирует план при конфликте без ответа пользователя. Research подтягивает без вопроса, если он указан или явно нужен. Поддерживает `short` для небольших фич: 1–2 фазы и компактный ревьюируемый объём. Фиксирует режим принятия решений, стратегию тестов и логирования из docs/settings.yaml или уточняет их у пользователя. Нормализует результат в исполнимый план с алгоритмом, фазами, проверками и без неразрешённых альтернатив; сохраняет его в docs/plans/. Всегда проверяет план тремя субагентами/моделями. Кросс-CLI включается флагом `strict` или настройкой `defaults.strict: true`.'
3
+ description: 'Пишет исполнимый план реализации через стандартный Plan Mode Claude Code / Codex и сохраняет его в docs/plans/. Перед планированием читает docs/rules.md и docs/arch.md как обязательную рамку, подтягивает указанный research, фиксирует strict/short, decision_mode, test_strategy и logging_strategy из docs/settings.yaml или текущего запроса. Не оставляет неподтверждённых существенных решений, явно описывает БД/API-контракты, проверяет версии пакетов и ПО по актуальным источникам. После сохранения всегда запускает три параллельных мета-ревьюера; strict добавляет кросс-CLI.'
4
4
  ---
5
5
 
6
6
  # Скил: Планировщик (eda-plan)
7
7
 
8
- Собираешь контекст, прогоняешь задачу через **стандартный Plan Mode** хост-агента, нормализуешь результат в исполнимый план и сохраняешь его в файл. Затем три параллельных субагента/модели проверяют план на реалистичность главный планировщик сам решает, что применить из их предложений. При `strict` ещё и кросс-CLI на втором круге.
8
+ Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, затем проверяешь план тремя параллельными субагентами/моделями. В `strict` добавляешь кросс-CLI проверку.
9
9
 
10
- ## Режимы вызова
10
+ ## Режим запуска
11
11
 
12
- | Режим | Запуск | Что делает |
12
+ Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
13
+
14
+ Дефолты: `defaults.strict: false`, `defaults.plan_size: normal`, `defaults.decision_mode: recommend_and_ask`, `defaults.test_strategy: ask_each_time`, `defaults.logging_strategy: ask_each_time`.
15
+
16
+ | Настройка | Значения | Аргументы в сообщении |
13
17
  |---|---|---|
14
- | Обычный | `eda-plan <тема>` | Этапы 1–6 + финал. Кросс-CLI не запускается. |
15
- | Строгий | `eda-plan strict <тема>` | + кросс-CLI соседним агентом + допил. |
16
- | Короткий | `eda-plan short <тема>` | План для небольшой фичи: 1–2 фазы и компактный ревьюируемый объём. |
17
- | Короткий строгий | `eda-plan strict short <тема>` | `short`-план + кросс-CLI соседним агентом + допил. |
18
+ | `defaults.strict` | `true`, `false` | `strict`; выключение: `normal`, `без strict`, `без строгого режима` |
19
+ | `defaults.plan_size` | `normal`, `short`, `ask_each_time` | `short`; обычный: `обычный план`, `не short` |
20
+ | `defaults.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай», «спрашивай всё» |
21
+ | `defaults.test_strategy` | `after_each_phase`, `tdd_each_phase`, `end_of_plan`, `ask_each_time` | явное указание стратегии тестов |
22
+ | `defaults.logging_strategy` | `debug_precise`, `standard`, `ask_each_time` | явное указание стратегии логирования |
18
23
 
19
- Если в `docs/settings.yaml` указано `defaults.strict: true`, строгий режим включён по умолчанию. Явное указание пользователя в текущем сообщении важнее настройки: `strict` включает строгий режим, `normal` / `без strict` / `без строгого режима` выключает его для текущего запуска.
24
+ Если значение из настроек неизвестно, используй дефолт. Если итоговое значение `plan_size`, `test_strategy` или `logging_strategy` равно `ask_each_time`, задай блокирующий вопрос, кроме случая, когда пользователь уже выбрал значение в текущем сообщении.
20
25
 
21
- Размер плана берётся из явного указания пользователя или `defaults.plan_size` в `docs/settings.yaml`. Явное `short` включает `plan_size: short`; явное `normal` / `обычный план` включает `plan_size: normal`.
26
+ Варианты вопросов: размер плана `normal` / `short`; тесты `after_each_phase` / `tdd_each_phase` / `end_of_plan`; логирование `debug_precise` / `standard`.
27
+
28
+ `test_strategy` обязан менять план: `tdd_each_phase` начинает каждую фазу с тестов, `after_each_phase` добавляет тесты после реализации каждой фазы, `end_of_plan` выносит тесты в отдельную финальную фазу. `logging_strategy` обязан отражаться в алгоритме, фазах и разделе `Логирование`.
22
29
 
23
30
  ## Вход из сообщения пользователя
24
31
 
25
- Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, задачу, путь к файлу, режим, ограничения и прямые указания.
32
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Разбери тему, задачу, путь к файлу, режим, ограничения и прямые указания.
26
33
 
27
- Если этого входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не ту задачу. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
34
+ Если входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не ту задачу. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
28
35
 
29
- ## Настройки проекта
36
+ ## Вопросы и решения
30
37
 
31
- Перед выбором режима прочитай `docs/settings.yaml`, если файл есть.
38
+ `decision_mode`: `autonomous` выбирай сам и записывай причину; `recommend_and_ask` рекомендуй вариант и спрашивай по существенным решениям; `ask_each_time` — спрашивай по каждой значимой развилке.
32
39
 
33
- Если файла нет используй значение по умолчанию:
34
- - `defaults.strict: false`
35
- - `defaults.plan_size: normal`
36
- - `defaults.decision_mode: recommend_and_ask`
37
- - `defaults.test_strategy: ask_each_time`
38
- - `defaults.logging_strategy: ask_each_time`
40
+ Существенные решения: новые зависимости, БД/ORM/очереди/кэш/storage/search, миграции, схемы таблиц, API и внешние контракты, auth/permissions/payments/secrets/персональные данные, cloud/provider/cost/lock-in/SLA, архитектурные паттерны и публичные контракты.
39
41
 
40
- Прямое указание пользователя в текущем сообщении важнее `docs/settings.yaml`.
42
+ Если research содержит подтверждённый ответ пользователя, не спрашивай повторно. Если есть только рекомендация агента, спрашивай в `recommend_and_ask` и `ask_each_time`.
41
43
 
42
- Поддерживаемые настройки:
44
+ Если задача меняет БД или API/внешний контракт, проверь, подтверждены ли конкретные схемы таблиц или API-контракты пользователем в текущем сообщении, правилах, архитектуре или research с подтверждённым ответом; если конкретные схемы БД или API-контракты не подтверждены явно, получи подтверждение пользователя и не проектируй таблицы и маршруты молча внутри Plan Mode.
45
+
46
+ Когда инструкция говорит `AskUserQuestion`, это блокирующий вопрос:
43
47
 
44
- | Ключ | Значения | Что значит |
45
- |---|---|---|
46
- | `defaults.strict` | `true`, `false` | Включает или выключает строгий режим по умолчанию. |
47
- | `defaults.plan_size` | `normal`, `short`, `ask_each_time` | Размер плана по умолчанию для `eda-plan`: обычный, короткий или спрашивать каждый раз. |
48
- | `defaults.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | Как `eda-explore` и `eda-plan` закрывают существенные решения: сами, через рекомендацию с подтверждением или через вопрос по каждой значимой развилке. |
49
- | `defaults.test_strategy` | `after_each_phase` | Тесты пишутся и запускаются после каждой фазы плана. |
50
- | `defaults.test_strategy` | `tdd_each_phase` | В начале каждой фазы сначала пишутся тесты, затем код под них. |
51
- | `defaults.test_strategy` | `end_of_plan` | Тесты пишутся в конце плана отдельной финальной фазой. |
52
- | `defaults.test_strategy` | `ask_each_time` | В начале каждого планирования задай пользователю вопрос о стратегии тестов. |
53
- | `defaults.logging_strategy` | `debug_precise` | Дебаг-логирование на каждом важном шаге для точной отладки. |
54
- | `defaults.logging_strategy` | `standard` | Стандартные `info`, `warning`, `error` там, где это нужно для эксплуатации и диагностики. |
55
- | `defaults.logging_strategy` | `ask_each_time` | В начале каждого планирования задай пользователю вопрос о стратегии логирования. |
56
-
57
- Если `defaults.plan_size` отсутствует или неизвестен, считай его `normal`. Если настройка равна `ask_each_time`, в начале каждого планирования задай пользователю вопрос о размере плана.
58
-
59
- Если `defaults.decision_mode` отсутствует или неизвестен, считай его `recommend_and_ask`.
60
-
61
- Если `defaults.test_strategy` или `defaults.logging_strategy` отсутствует или неизвестен, считай его `ask_each_time`.
62
-
63
- В самом начале составления плана, после чтения текущего сообщения и `docs/settings.yaml`, но до Plan Mode и до содержательного планирования, зафиксируй:
64
- - размер плана;
65
- - режим принятия решений;
66
- - стратегию тестов;
67
- - стратегию логирования.
68
-
69
- Если в `defaults.plan_size`, `defaults.test_strategy` или `defaults.logging_strategy` стоит `ask_each_time`, задай блокирующий `AskUserQuestion` с вариантами для этой настройки. Если пользователь уже явно выбрал размер плана или стратегию в текущем сообщении, используй её без дополнительного вопроса.
70
-
71
- Варианты вопроса про размер плана:
72
- 1. `normal` — обычный план без искусственного ограничения по количеству фаз.
73
- 2. `short` — короткий план на 1–2 фазы для локальной правки.
74
-
75
- Варианты вопроса про тесты:
76
- 1. `after_each_phase` — писать и запускать тесты после каждой фазы.
77
- 2. `tdd_each_phase` — начинать каждую фазу с тестов, затем писать код.
78
- 3. `end_of_plan` — писать тесты в конце плана отдельной фазой.
79
-
80
- Варианты вопроса про логирование:
81
- 1. `debug_precise` — дебаг-логи в каждом важном шаге для точной отладки.
82
- 2. `standard` — `info`, `warning`, `error` там, где это нужно.
83
-
84
- Выбранные значения передай в Plan Mode и обязательно зафиксируй в финальном плане в YAML-шапке, `Принятых решениях`, `Фазах выполнения`, `Тестах` и `Логировании`.
85
-
86
- ## Режим принятия решений
87
-
88
- `decision_mode: autonomous` — агент сам выбирает по коду, правилам, архитектуре, источникам и рискам, затем записывает причину.
89
-
90
- `decision_mode: recommend_and_ask` — дефолт. Агент исследует варианты, рекомендует один, но по существенным решениям задаёт блокирующий вопрос до Plan Mode или до финализации.
91
-
92
- `decision_mode: ask_each_time` — агент спрашивает по каждой значимой развилке, даже если есть сильная рекомендация.
93
-
94
- Существенные решения — это решения, которые меняют архитектуру, зависимости, стоимость, безопасность, эксплуатацию или будущую миграцию проекта. Всегда считай существенными:
95
- - выбор нового пакета, библиотеки, фреймворка, SDK, CLI или сервиса;
96
- - выбор базы данных, ORM/query builder, очереди, кэша, storage, search, background jobs;
97
- - миграции данных, изменение схемы, формат хранения или стратегия совместимости;
98
- - новые или изменённые схемы таблиц: поля, типы, связи, индексы, уникальные ограничения;
99
- - новые или изменённые API/внешние контракты: маршруты, auth/permissions, request/query/body, response, ошибки и статус-коды;
100
- - auth, permissions, payments, crypto, secrets, персональные данные и другие security-sensitive решения;
101
- - cloud/provider choices, managed services, лицензии, cost/lock-in и SLA;
102
- - архитектурные паттерны, затрагивающие несколько модулей или публичные контракты.
103
-
104
- Если research уже содержит вопрос и ответ пользователя по конкретному существенному решению, используй этот ответ без повторного вопроса. Если research содержит только рекомендацию или выбор агента без ответа пользователя, в `recommend_and_ask` и `ask_each_time` спроси подтверждение до Plan Mode.
105
-
106
- ## Главные правила
107
-
108
- 1. **Никаких правок кода.** Запись только в `docs/plans/`.
109
- 2. **Интерактивные вопросы** — по разделу ниже.
110
- 3. **`docs/rules.md` и `docs/arch.md` — обязательная рамка планирования, а не справочный контекст.** Перед Plan Mode прочитай оба файла, если они есть, выдели применимые к задаче правила и архитектурные ограничения и передай их в Plan Mode как обязательные требования. Финальный план должен строго следовать этим правилам и архитектуре.
111
- 4. **Конфликт с рамкой проекта блокирует финализацию.** Если запрос пользователя, research, черновик Plan Mode или отдельное решение противоречит `docs/rules.md` или `docs/arch.md`, не скрывай конфликт и не сохраняй план как готовый. Остановись и задай `AskUserQuestion`: изменить подход под правила/архитектуру, изменить сами правила/архитектуру отдельной задачей или прервать планирование.
112
- 5. **Plan Mode — главный инструмент.** Он даёт содержательный черновик, но финальный файл обязан быть нормализован в формат этого скилла.
113
- 6. **Не переформулируй запрос пользователя** перед Plan Mode. Уйдёт оригинал + ответы на уточнения. Своя цель/критерии разводят смысл.
114
- 7. **План сохраняется в файл до любой верификации** — иначе ревьюеру нечего читать.
115
- 8. **Максимально простой язык.** Пиши план так, чтобы его понял человек без глубокого погружения в код. Избегай жаргона, сокращений и внутренних названий без необходимости. Термины используй только когда без них нельзя точно донести смысл, и сразу объясняй их простыми словами.
116
- 9. **Диаграммы — желательно, не любой ценой.** Линейный план — диаграмма не нужна.
117
- 10. **Таблицы > сплошной текст** для структурируемых данных.
118
- 11. **Финальный план — не исследование.** Исследовательские факты идут в контекст, выбранные подходы — в решения, исполнимые шаги — в фазы.
119
- 12. **Не оставляй неоднозначности.** Если в плане остаётся «выбрать», «решить», «можно так или так», «предпочтительно» — задай вопрос до финализации или зафиксируй одно принятое решение. Существенные решения фиксируй только по правилам `decision_mode`.
120
- 13. **Версии пакетов и ПО проверяй до планирования.** Если для задачи нужно устанавливать пакет, библиотеку, сервис, CLI или другое ПО, а версия не указана в контексте, используй `context7`, если он доступен, или веб-поиск, чтобы найти актуальную последнюю стабильную версию. Зафиксируй найденную версию и источник в контексте/решениях плана. Не оставляй в плане «установить latest» без конкретной версии.
121
-
122
- ## Размер плана
123
-
124
- `plan_size: normal` — обычный план без искусственного ограничения по количеству фаз.
125
-
126
- `plan_size: short` — план для небольшой фичи или локальной правки, которую можно легко отревьюить за один проход.
127
-
128
- Ограничения `short`:
129
- - 1–2 фазы максимум;
130
- - ориентир: до 5–10 затронутых файлов;
131
- - ориентир: до 400 строк осмысленного diff;
132
- - изменения должны быть локальными и понятными для ревью за один проход;
133
- - если файлов больше 10, но изменения однотипные и маленькие, `short` допустим только если это явно объяснено в плане;
134
- - сгенерированные файлы, lock-файлы, форматирование и механические snapshot-обновления не считаются как основной объём, но должны быть отдельно перечислены.
135
-
136
- Если по контексту видно, что задача не укладывается в `short`:
137
- - не составляй и не сохраняй `short`-план;
138
- - коротко объясни, почему `short` не подходит;
139
- - напиши примерную оценку: сколько фаз и какой крупный объём нужен;
140
- - задай блокирующий вопрос: продолжать в `normal` или сузить задачу до `short`;
141
- - жди ответа пользователя.
142
-
143
- ## Интерактивные вопросы
144
-
145
- Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
146
48
  - Claude Code: используй `AskUserQuestion`.
147
- - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
148
- - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
149
- - Не запускай команды, которые ждут интерактивного ввода в терминале; перед такими командами спроси в хост-интерфейсе или остановись с `blocked`.
49
+ - Codex interactive: если доступен `request_user_input`, используй его; иначе задай один короткий вопрос в чат с вариантами 1–3 и остановись до ответа.
50
+ - Codex exec / non-interactive: не читай stdin; если без ответа нельзя безопасно продолжать, заверши со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты.
51
+ - Не запускай команды, которые ждут интерактивного ввода.
52
+
53
+ ## Обязательные правила
54
+
55
+ 1. Никаких правок кода, миграций, конфигов и зависимостей. Запись только в `docs/plans/`.
56
+ 2. `docs/rules.md` и `docs/arch.md` — обязательная рамка планирования, а не справочный контекст. Прочитай их, выдели применимые правила и архитектурные ограничения, передай их в Plan Mode как обязательные требования.
57
+ 3. Если запрос, research, черновик Plan Mode или шаг плана конфликтует с `docs/rules.md` или `docs/arch.md`, не финализируй план. Спроси: адаптировать подход под правила/архитектуру, изменить правила/архитектуру отдельной задачей или прервать планирование.
58
+ 4. Не переформулируй запрос пользователя перед Plan Mode: передавай оригинал, ответы на вопросы и найденную рамку.
59
+ 5. План сохраняется до мета-ревью, иначе ревьюерам нечего читать.
60
+ 6. Финальный план должен быть простым, исполнимым и без альтернатив вида «выбрать», «решить», «можно так или так», «предпочтительно».
61
+ 7. Если нужны пакеты, библиотеки, CLI, сервисы или другое ПО, а версия не указана в контексте или lock/config-файлах, найди последнюю стабильную версию через context7 или web search по официальным источникам. Не пиши `latest` без конкретной версии и источника.
62
+ 8. Если `plan_size: short` не укладывается в ограничения, не сохраняй short-план: объясни причину, оцени нужный объём и спроси, продолжать в `normal` или сузить задачу.
150
63
 
151
64
  ## Этапы
152
65
 
153
- ### 1. Подтянуть контекст
154
- Разбери текст текущего сообщения рядом с вызовом скилла и сохрани его как исходный запрос для Plan Mode.
155
-
156
- Определи `plan_size`:
157
- - если пользователь указал `short` в текущем сообщении — `short`;
158
- - если пользователь указал `normal`, `обычный план` или `не short` в текущем сообщении `normal`;
159
- - иначе возьми `defaults.plan_size` из `docs/settings.yaml`;
160
- - если значение равно `ask_each_time` задай `AskUserQuestion` с двумя вариантами: `normal`, `short`;
161
- - если значение отсутствует или неизвестно — `normal`.
162
-
163
- Определи `decision_mode`:
164
- - если пользователь явно указал `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай» или «спрашивай всё» в текущем сообщении — используй это;
165
- - иначе возьми `defaults.decision_mode` из `docs/settings.yaml`;
166
- - если значение отсутствует или неизвестно — `recommend_and_ask`.
167
-
168
- Прочитай `docs/rules.md`, `docs/arch.md` (если есть) и строго следуй им при планировании. Выдели применимые правила и архитектурные ограничения: команды проверки, требования к тестам, границы модулей, зависимости, API, миграции, безопасность, документацию и локальные запреты. Передай эту рамку в Plan Mode как обязательные требования, а не как справочный контекст.
169
-
170
- Если задача, research или очевидный подход конфликтует с `docs/rules.md` или `docs/arch.md`, остановись до Plan Mode и задай `AskUserQuestion`: изменить подход под правила/архитектуру, изменить сами правила/архитектуру отдельной задачей или прервать планирование.
171
-
172
- Research подтягивай так:
173
- - если в сообщении указан путь к `docs/researches/...` или другой research-файл — прочитай его без вопроса;
174
- - если в сообщении есть описание задачи без research-файла — используй описание как контекст и не спрашивай research автоматически;
175
- - если пользователь явно просит использовать research, но файл не указал — через `AskUserQuestion` выбери из последних файлов `docs/researches/` + опция «нет»;
176
- - если `docs/researches/` отсутствует или пуста, а research явно нужен — сообщи об этом и продолжай без research, если задачи достаточно; если без research нельзя безопасно планировать, задай один блокирующий вопрос;
177
- - если текста задачи нет совсем — спроси через `AskUserQuestion`, что нужно планировать.
178
-
179
- Если из задачи следует установка пакетов или ПО:
180
- - проверь, указана ли версия в сообщении пользователя, правилах, архитектуре, research или существующих lock/config-файлах;
181
- - если версия не указана, используй `context7`, если он доступен, или веб-поиск по официальным источникам, чтобы найти последнюю стабильную версию;
182
- - сохрани название, выбранную версию и источник — это пойдёт в Plan Mode и финальный план;
183
- - если источники противоречат друг другу или последняя версия нестабильна/preview, задай блокирующий вопрос.
184
-
185
- До Plan Mode закрой существенные решения:
186
- - выпиши существенные развилки, которые следуют из задачи и контекста;
187
- - если research содержит подтверждённый ответ пользователя по развилке — используй его и запиши как подтверждённое решение;
188
- - если задача меняет БД или API/внешний контракт, проверь, подтверждены ли конкретные схемы таблиц или API-контракты пользователем в текущем сообщении, правилах, архитектуре или research с подтверждённым ответом пользователя;
189
- - если конкретные схемы БД или API-контракты не подтверждены явно, до Plan Mode задай блокирующий вопрос и получи подтверждение пользователя; не проектируй таблицы и маршруты молча внутри Plan Mode;
190
- - если `decision_mode: autonomous` и выбор можно обосновать кодом, правилами, архитектурой, источниками и рисками — выбери сам и запиши почему;
191
- - если `decision_mode: recommend_and_ask` — задай `AskUserQuestion`: 2–3 варианта, первым рекомендованный, короткая причина рекомендации, вариант «свой вариант», фраза «Я продолжу только после ответа.»;
192
- - если `decision_mode: ask_each_time` — задай `AskUserQuestion` по каждой значимой развилке, даже при сильной рекомендации;
193
- - если выбор зависит только от пользователя — задай `AskUserQuestion` в любом режиме.
194
-
195
- Не запускай Plan Mode, пока в `recommend_and_ask` или `ask_each_time` есть неподтверждённое существенное решение. Например, если нужен пакет для базы данных, сначала сравни 2–3 варианта и получи подтверждение выбора БД/пакета.
196
-
197
- Если `plan_size: short`, до Plan Mode оцени задачу по найденному контексту:
198
- - можно ли уложиться в 1–2 фазы;
199
- - ожидается ли не больше 5–10 затронутых файлов или есть понятное объяснение для большего числа маленьких однотипных правок;
200
- - ожидается ли не больше 400 строк осмысленного diff;
201
- - можно ли будет отревьюить изменения за один проход.
202
-
203
- Если ответ «нет» хотя бы по одному пункту, остановись по правилам раздела `Размер плана`.
204
-
205
- ### 2. Зафиксировать стратегии тестов и логирования
206
- Это обязательный ранний шаг. Выполни его до содержательных уточнений и до Plan Mode.
207
-
208
- Определи `test_strategy`:
209
- - если пользователь явно указал стратегию тестов в текущем сообщении — используй её;
210
- - иначе возьми `defaults.test_strategy` из `docs/settings.yaml`;
211
- - если значение равно `ask_each_time`, отсутствует или неизвестно — задай `AskUserQuestion` с тремя вариантами: `after_each_phase`, `tdd_each_phase`, `end_of_plan`.
212
-
213
- Определи `logging_strategy`:
214
- - если пользователь явно указал стратегию логирования в текущем сообщении — используй её;
215
- - иначе возьми `defaults.logging_strategy` из `docs/settings.yaml`;
216
- - если значение равно `ask_each_time`, отсутствует или неизвестно — задай `AskUserQuestion` с двумя вариантами: `debug_precise`, `standard`.
217
-
218
- Сохрани итоговые значения как обязательные входные данные Plan Mode.
219
-
220
- Как отражать `test_strategy` в плане:
221
- - `after_each_phase` — в каждой фазе есть шаги написания/обновления тестов после реализации и проверка запуском этих тестов;
222
- - `tdd_each_phase` — каждая фаза начинается с тестов, затем идут изменения кода, затем запуск тестов;
223
- - `end_of_plan` — в фазах реализации не планируй написание тестов, кроме технически неизбежных; добавь отдельную финальную фазу написания и запуска тестов по всем ключевым сценариям.
224
-
225
- Как отражать `logging_strategy` в плане:
226
- - `debug_precise` — запланируй дебаг-логи на каждом важном шаге целевого алгоритма, с идентификаторами операций и без секретов/персональных данных;
227
- - `standard` — запланируй только необходимые `info`, `warning`, `error` для эксплуатации, ошибок и важных переходов состояния, без лишнего debug-шума.
228
-
229
- ### 3. Уточнить, если есть неясность
230
- Не переформулируй запрос. Если есть конкретная неясность, без которой планировать нельзя — задай 1–4 точечных вопроса через `AskUserQuestion`. Не задавай «на всякий случай». Пары «вопрос → ответ» сохрани — они идут в Plan Mode.
231
-
232
- ### 4. Спланировать через Plan Mode
233
- Войди в Plan Mode хост-агента (`EnterPlanMode` в Claude Code, встроенный план-режим в Codex). На вход:
66
+ ### 1. Собрать контекст
67
+
68
+ - Разбери текущий вход и настройки.
69
+ - Прочитай `docs/rules.md`, `docs/arch.md`, если они есть; выпиши применимые команды проверки, требования к тестам, границы модулей, зависимости, API, миграции, безопасность, документацию и локальные запреты.
70
+ - Research подтягивай без вопроса, если путь указан; если в сообщении есть описание задачи без research-файла используй описание как контекст и не спрашивай research автоматически. Если пользователь явно просит research, но файл не указал, предложи последние файлы из `docs/researches/` и вариант «нет».
71
+ - Проверь версии нужных пакетов/ПО, если они не зафиксированы в запросе, правилах, архитектуре, research или lock/config-файлах.
72
+ - Закрой существенные решения по `decision_mode`.
73
+ - Для `short` оцени число фаз, файлов, строк diff и ревьюируемость за один проход.
74
+
75
+ ### 2. Запустить Plan Mode
76
+
77
+ Передай в Plan Mode:
78
+
234
79
  1. Дословный запрос пользователя.
235
- 2. Зафиксированный `plan_size`.
236
- 3. Зафиксированный `decision_mode` и все подтверждённые пользователем существенные решения.
237
- 4. Зафиксированные `test_strategy` и `logging_strategy`.
238
- 5. Найденные версии пакетов/ПО и источники, если задача требует установки.
239
- 6. Пары «вопрос ответ» из этапа 3 и подтверждения существенных решений из research.
240
- 7. Ссылки на `docs/rules.md`, `docs/arch.md`, исследование (без пересказа Plan Mode прочитает сам) и явное требование строго следовать правилам и архитектуре.
241
- 8. Выписку применимых правил и архитектурных ограничений из `docs/rules.md` и `docs/arch.md` как обязательную рамку планирования.
242
- 9. Инструкция: «если запрос, research, решение или шаг плана противоречит `docs/rules.md` или `docs/arch.md`, не финализируй план; остановись и спроси пользователя».
243
- 10. Инструкция: «все вопросы пользователю — только по разделу "Интерактивные вопросы", никаких догадок и продолжения без ответа».
244
- 11. Инструкция: «финальный план должен быть нормализован в обязательную структуру из этапа 5 и не должен смешивать исследование с планом исполнения».
245
- 12. Инструкция: «зафиксированные стратегии тестов и логирования должны быть применены в плане, а не просто записаны в YAML».
246
- 13. Инструкция: «если `plan_size: short`, соблюдай ограничения короткого плана из раздела "Размер плана"».
247
- 14. Инструкция: «не добавляй неподтверждённые существенные решения в финальный план; если они возникли внутри Plan Mode, остановись и спроси пользователя».
248
-
249
- Не выходи, пока пользователь не подтвердил план.
250
-
251
- ### 5. Сохранить файл
252
- Перед сохранением нормализуй подтверждённый черновик Plan Mode в обязательную структуру. Смысл решений не меняй без вопроса пользователю, но форму, порядок и ясность правь обязательно.
253
-
254
- Финальный план должен быть пригоден для `eda-execute` без дополнительного исследования. Структура файла `docs/plans/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
80
+ 2. `plan_size`, `decision_mode`, `test_strategy`, `logging_strategy`.
81
+ 3. Все подтверждённые существенные решения и пары «вопрос ответ».
82
+ 4. Найденные версии пакетов/ПО и источники.
83
+ 5. Пути к `docs/rules.md`, `docs/arch.md`, research и выписку применимых правил.
84
+ 6. Требование: план строго следует `docs/rules.md` и `docs/arch.md`; при конфликте остановиться и спросить пользователя.
85
+ 7. Требование: финальный план нормализуется в структуру ниже, не смешивает исследование с исполнением и не добавляет неподтверждённые существенные решения.
86
+
87
+ Не выходи из Plan Mode, пока пользователь не подтвердил план.
88
+
89
+ ### 3. Нормализовать и сохранить
90
+
91
+ Сохрани подтверждённый план в `docs/plans/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Смысл решений не меняй без вопроса, но форму, порядок и ясность правь обязательно.
255
92
 
256
93
  ```markdown
257
94
  ---
@@ -280,175 +117,120 @@ sources:
280
117
  Факты из кода, правил, архитектуры и исследований. Здесь можно объяснять причины, но не хранить исполнимые шаги.
281
118
 
282
119
  ## Принятые решения
283
- Список зафиксированных архитектурных и продуктовых решений. Без вариантов «или». Для существенных решений укажи источник подтверждения: ответ пользователя, research с ответом пользователя или `decision_mode: autonomous` с причиной.
284
-
285
- Если `plan_size: short`, добавь решение про ожидаемый объём: сколько фаз, сколько примерно файлов и строк осмысленного diff.
120
+ Выбранные архитектурные и продуктовые решения без вариантов. Для существенных решений укажи источник подтверждения: ответ пользователя, research с ответом пользователя или `decision_mode: autonomous` с причиной. Для `short` укажи ожидаемый объём.
286
121
 
287
122
  ## Целевой алгоритм
288
- Пошаговое описание целевого поведения системы от входного события до финального состояния. Это обзор всей картины, не список файлов.
123
+ Сквозное поведение системы от входного события до финального состояния.
289
124
 
290
125
  ## Контракты реализации
291
126
 
292
127
  ### Данные и БД
293
- Если БД не меняется: `Не затрагивается`.
294
-
295
- Если меняется, явно укажи таблицы, поля, типы, обязательность, default, связи, индексы, уникальные ограничения, миграции и совместимость со старыми данными. Backfill и rollback укажи, если они нужны.
128
+ Если БД не меняется: `Не затрагивается`. Если меняется, укажи таблицы, поля, типы, обязательность, default, связи, индексы, unique, миграции, совместимость со старыми данными, backfill и rollback при необходимости.
296
129
 
297
130
  ### API и внешние контракты
298
- Если API и внешние контракты не меняются: `Не затрагивается`.
299
-
300
- Если меняются, явно укажи метод и путь, auth/permissions, request/query/body, response, ошибки и статус-коды. Webhooks, events, queues и внешние сервисы укажи, если они есть.
131
+ Если API и внешние контракты не меняются: `Не затрагивается`. Если меняются, укажи метод и путь, auth/permissions, request/query/body, response, ошибки/status codes, webhooks/events/queues/внешние сервисы при наличии.
301
132
 
302
133
  ## Фазы выполнения
303
134
 
304
135
  ### 1. <Название фазы>
305
- Цель: зачем нужна эта фаза.
136
+ Цель: <зачем нужна фаза>.
306
137
 
307
138
  Что сделать:
308
- - ...
139
+ - <конкретные шаги>
309
140
 
310
- Результат: какое состояние системы должно получиться.
141
+ Результат: <готовое состояние>.
311
142
 
312
143
  Сценарии тестирования:
313
- - сценарии, которые нужно покрыть в этой фазе.
144
+ - <сценарии>
314
145
 
315
146
  Проверка:
316
- - тест, команда или критерий готовности.
147
+ - <команда или критерий>
317
148
 
318
149
  ## Тесты
319
- Стратегия: <когда и как писать тесты согласно test_strategy>.
150
+ Стратегия: <как применён test_strategy>.
320
151
 
321
152
  ## Логирование
322
- Стратегия: <уровень подробности согласно logging_strategy>.
153
+ Стратегия: <как применён logging_strategy>.
323
154
 
324
155
  ## Документация и эксплуатация
325
156
  Что обновить в env/docs/runbook и что важно для релиза.
326
157
  ```
327
158
 
328
159
  Правила структуры:
329
- - В `Контекст` попадают исследовательские наблюдения и ограничения.
330
- - В `Принятые решения` попадают только выбранные решения, без альтернатив.
331
- - Риски не выносятся в отдельный обязательный раздел. Закрытые риски из research, контекста и мета-ревью должны быть встроены туда, где они исполняются: в `Принятые решения`, фазы, сценарии тестирования, проверки, логирование или эксплуатационные шаги.
332
- - Существенные решения в `Принятых решениях` имеют источник подтверждения или явное обоснование автономного выбора.
333
- - В `Целевой алгоритм` попадает сквозная картина процесса.
334
- - В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты. Если область не затрагивается, напиши `Не затрагивается`.
335
- - Если план меняет БД, `Данные и БД` обязаны явно описывать таблицы, поля, типы, обязательность/default, связи, индексы/unique, миграции и совместимость со старыми данными.
336
- - Если план меняет API или внешний контракт, `API и внешние контракты` обязаны явно описывать method/path, auth/permissions, request/query/body, response, ошибки/status codes и внешние каналы при наличии.
337
- - В `Фазы выполнения` попадают только исполнимые шаги.
338
- - Каждая фаза обязана иметь `Цель`, `Что сделать`, `Результат`, `Сценарии тестирования`, `Проверка`.
339
- - В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Если фаза затрагивает UI, опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат. Если фаза затрагивает внутреннюю логику, опиши ответственность изменяемых частей, поток данных, новые состояния/ошибки и существующие места, которые нужно адаптировать.
160
+
161
+ - Риски не выносятся в отдельный обязательный раздел; закрытые риски встраиваются в решения, фазы, сценарии тестирования, проверки, логирование или эксплуатацию.
340
162
  - Отдельный раздел порядка выполнения не нужен: линейный порядок задаётся номерами фаз и шагами внутри фаз.
341
- - `test_strategy` обязан менять структуру фаз: TDD тесты в начале фаз, after_each_phase тесты после каждой фазы, end_of_plan — отдельная финальная фаза тестов.
342
- - `logging_strategy` обязан быть отражён в целевом алгоритме, фазах и отдельном разделе `Логирование`.
343
- - Для `plan_size: short` фаз должно быть не больше 2, а ожидаемый объём должен быть явно указан в `Принятых решениях`.
344
- - Если план включает установку пакетов или ПО, версии должны быть конкретными и подкреплёнными источником, если они не были заданы контекстом.
345
- - Если нужен раздел `Открытые вопросы`, план остаётся `draft`; после сохранения остановись и не запускай мета-ревью до ответа пользователя.
346
-
347
- Перед сохранением проверь quality gate:
348
- - есть `Целевой алгоритм`;
349
- - есть `Контракты реализации` с подразделами `Данные и БД` и `API и внешние контракты`;
163
+ - В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты; если область не затрагивается, напиши `Не затрагивается`.
164
+ - В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
165
+ - Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай мета-ревью до ответа пользователя.
166
+
167
+ Quality gate перед сохранением и после мета-ревью:
168
+
169
+ - есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и БД`, `API и внешние контракты`;
350
170
  - план строго следует `docs/rules.md` и `docs/arch.md`;
351
- - применимые правила и архитектурные ограничения учтены в решениях, фазах, тестах и проверках;
352
- - нет шагов, зависимостей, API, миграций, границ модулей или команд, которые противоречат `docs/rules.md` или `docs/arch.md`;
353
- - если найден конфликт с правилами или архитектурой, план не финализирован до ответа пользователя;
354
- - если задача затрагивает БД, схема данных не пропущена и не заменена общими словами;
355
- - если задача затрагивает API или внешний контракт, маршруты/контракты не пропущены и не заменены общими словами;
356
- - фазы идут в реалистичном порядке реализации;
357
- - у каждой фазы есть цель, результат, сценарии тестирования и проверка;
358
- - UI и внутренняя логика в фазах описаны через конкретное поведение, поток данных, состояния и ошибки, если задача их затрагивает;
359
- - нет неразрешённых формулировок «выбрать», «решить», «можно так или так», «предпочтительно», «при необходимости»;
360
- - текст написан простым языком: без лишнего жаргона, непояснённых сокращений и тяжёлых терминов;
361
- - мета-уровень не смешан с шагами исполнения;
362
- - стратегия тестов зафиксирована в разделе `Тесты` и последовательно применена в фазах, сценариях тестирования и проверках;
363
- - стратегия логирования зафиксирована и последовательно применена в алгоритме, фазах и разделе `Логирование`;
364
- - тесты связаны с ключевыми сценариями и закрытыми рисками из research/контекста, если такие риски есть;
365
- - если `plan_size: short`, фаз не больше 2, ожидаемый объём укладывается в ориентиры short или исключение явно объяснено;
366
- - все пакеты/ПО, которые нужно установить, имеют конкретные версии или явное объяснение, почему версия берётся из существующего lock/config-файла;
367
- - нет неподтверждённых существенных решений при `decision_mode: recommend_and_ask` или `decision_mode: ask_each_time`;
171
+ - нет конфликтов с правилами, архитектурой, границами модулей, API, миграциями, зависимостями и командами проверки;
172
+ - БД/API изменения описаны конкретно, а не общими словами;
173
+ - каждая фаза имеет цель, шаги, результат, сценарии тестирования и проверку;
174
+ - `test_strategy` и `logging_strategy` применены в фазах и отдельных разделах;
175
+ - для `short` не больше 2 фаз и явно указан ожидаемый объём;
176
+ - пакеты/ПО имеют конкретные версии или ссылку на существующий lock/config;
177
+ - нет неподтверждённых существенных решений и неразрешённых альтернатив;
368
178
  - план можно передать в `eda-execute` без нового исследования.
369
179
 
370
- Сохрани файл и покажи путь.
180
+ ### 4. Мета-ревью тремя субагентами/моделями
371
181
 
372
- ### 6. Мета-ревью плана тремя субагентами/моделями (параллельно)
373
- Запусти **в одном сообщении и одним batch** трёх агентов на трёх разных моделях — слабая, средняя, мощная. В интерактивном Codex это означает субагентов, а не отдельные процессы `codex exec`. Не запускай сначала одного-двух, не жди их ответы и не запускай третьего позже: все три проверки должны стартовать до чтения любого результата.
182
+ Запусти три проверки параллельно, в одном batch, до чтения любого результата. Главный планировщик сам решает, что применять; предложения не вставляются механически.
374
183
 
375
- | Среда | Слабая (быстрая) | Средняя (код) | Мощная (флагман) |
184
+ | Среда | Быстрая | Кодовая | Флагман |
376
185
  |---|---|---|---|
377
- | Claude Code (`Agent` tool) | `model: "haiku"` | `model: "sonnet"` | `model: "opus"` |
186
+ | Claude Code (`Agent` tool) | `haiku` | `sonnet` | `opus` |
378
187
  | Codex interactive (`spawn_agent`) | `gpt-5.4-mini` | `gpt-5.3-codex` | `gpt-5.5` |
379
- | Codex exec / non-interactive fallback (`codex exec --model …`) | `gpt-5.4-mini` | `gpt-5.3-codex` | `gpt-5.5` |
380
-
381
- В Claude Code запускай три параллельных `Agent` tool в одном ответе/tool-use batch с моделями из таблицы и передавай им промпты нужной глубины из таблицы ниже.
382
-
383
- В интерактивном Codex, если доступен инструмент субагентов (`spawn_agent` или аналог), запускай три параллельных субагента через него. Не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны.
384
-
385
- В `codex exec`, другом неинтерактивном режиме или Codex без инструмента субагентов используй fallback: три параллельных `codex exec --model <id>` одной Bash-командой с `&` и общим `wait`.
386
-
387
- Если `gpt-5.5` недоступен (ограничение account/auth) — возьми `gpt-5.4` как мощную. Если какой-либо идентификатор отсутствует у тебя — возьми ближайший аналог того же тира из доступных в твоей версии Codex.
188
+ | Codex exec / non-interactive fallback | `gpt-5.4-mini` | `gpt-5.3-codex` | `gpt-5.5` |
388
189
 
389
- Каждому передай путь к файлу плана, `docs/rules.md`, `docs/arch.md` (если есть), исследование из `sources.research` (если есть). Формулируй задание как содержательную проверку с глубиной чтения, указанной для тира модели ниже.
190
+ В интерактивном Codex, если доступен инструмент субагентов (`spawn_agent` или аналог), используй его. Не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны. В неинтерактивном fallback запускай три `codex exec --model <id>` параллельно одной Bash-командой с `&` и общим `wait`.
390
191
 
391
- Глубина проверки зависит от модели:
192
+ Промпт всем: прочитать план, `docs/rules.md`, `docs/arch.md`, research из `sources.research` при наличии и релевантный код по глубине модели. Найти пропущенные шаги, нарушения правил/архитектуры, скрытые риски, риски для смежного кода, недостающие тесты и шаги без критериев готовности. Формат ответа: `+ N | − N | ~ N: причина`; флагману явно скажи открывать файлы модулей, API, тестов и сценариев, на которые ссылается план.
392
193
 
393
- | Модель | Что просить |
394
- |---|---|
395
- | Слабая | Быстро проверить план, правила, архитектуру и исследование; код смотреть только точечно, если без этого нельзя оценить риск. |
396
- | Средняя | Проверить план по исследованию и прочитать релевантные файлы/контракты, которые прямо следуют из плана; найти пропущенные шаги, зависимости и тесты. |
397
- | Мощная | Провести глубокую проверку: прочитать план, правила, архитектуру, исследование и релевантный код настолько глубоко, чтобы подтвердить реализуемость шагов, совместимость со смежным кодом, нужные тесты и отсутствие скрытых архитектурных рисков. |
398
-
399
- Базовый формат ответа для всех: `+ N | − N | ~ N: причина`, без воды. Для мощной модели добавь явную инструкцию: «Если план ссылается на модуль, API, тесты или сценарий, открой соответствующие файлы и проверь фактическую структуру проекта.»
400
-
401
- Когда все три ответили — прочитай ответы, **сам реши**, что применять (не вставляй чужие пункты механически). Принятые замечания сначала интегрируй в основные разделы плана: решения, алгоритм, фазы, тесты, логирование, документацию и эксплуатацию. Не оставляй важные требования только в changelog.
402
-
403
- После интеграции снова прогони quality gate из этапа 5. Затем допиши в конец короткий раздел:
194
+ После ответов интегрируй принятые замечания в основные разделы плана, снова прогони quality gate и добавь:
404
195
 
405
196
  ```markdown
406
197
  ## Изменения после мета-ревью
407
198
 
408
199
  ### После моделей
409
- - **+ Добавлено:** 3–7 главных принятых изменений.
410
- - **~ Изменено:** 1–5 существенных уточнений структуры или решений.
411
- - **− Убрано:** если что-то удалено.
412
- - **Отклонено:** если отклонялись существенные предложения, коротко почему.
200
+ - **+ Добавлено:** <3–7 главных изменений>
201
+ - **~ Изменено:** <1–5 уточнений>
202
+ - **− Убрано:** <если удалено>
203
+ - **Отклонено:** <существенные отклонённые предложения и причина>
413
204
  ```
414
205
 
415
- В YAML-шапке: `status: draft` `meta-reviewed`, в `meta_reviewers` имена/идентификаторы моделей.
206
+ В YAML поменяй `status: draft` на `meta-reviewed`, в `meta_reviewers` запиши модели.
416
207
 
417
- ### 7. Кросс-CLI только в `strict`
418
- Обычный режим — пропусти этапы 7–8, иди на финал.
208
+ ### 5. Strict: кросс-CLI и допил
419
209
 
420
- В `strict`: отдай файл соседнему агенту через `Bash`. Если ты в Claude Code — запускай Codex CLI:
210
+ Обычный режим пропускает этот этап. В `strict` отдай файл соседнему CLI:
421
211
 
422
212
  ```bash
423
213
  codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, неучтённые зависимости, нарушения правил и архитектуры, скрытые риски, риски для смежного кода, недостающие тесты, шаги без критериев готовности. Список '- [тип] описание — что предлагаешь'." > "${PLAN_FILE%.md}_review.md"
424
214
  ```
425
215
 
426
- Если ты в Codex — запускай Claude CLI с теми же требованиями глубины:
216
+ Если ты в Codex — запускай `claude -p` с тем же заданием. Если соседней CLI нет, спроси, продолжать без ревью или прервать.
427
217
 
428
- ```bash
429
- claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, неучтённые зависимости, нарушения правил и архитектуры, скрытые риски, риски для смежного кода, недостающие тесты, шаги без критериев готовности. Список '- [тип] описание — что предлагаешь'." > "${PLAN_FILE%.md}_review.md"
430
- ```
431
-
432
- Соседней CLI нет — `AskUserQuestion`: продолжать без ревью или прервать.
218
+ Бесспорные замечания внеси в план, спорные вынеси через `AskUserQuestion`, отклонённые зафиксируй с причиной в `## Реакция на ревью`. Поменяй `status: meta-reviewed` на `reviewed`, покажи дифф.
433
219
 
434
- ### 8. Допилить по ревью — только в `strict`
435
- Бесспорные замечания → правишь сразу. Спорные → `AskUserQuestion`. Отклонённые → оставляешь, причина в журнал. В конец файла добавь раздел `## Реакция на ревью` (Принято / Отклонено / Спорное). Поменяй `status: meta-reviewed` → `reviewed`. Покажи дифф.
220
+ ### 6. Финал
436
221
 
437
- ### 9. Финал
438
- Короткое сообщение: режим, путь к плану, путь к ревью (если был `strict`), 3–5 главных шагов простыми словами, что предлагаешь дальше (но не делай — это `eda-execute`).
222
+ Коротко сообщи режим, путь к плану, путь к review-файлу в `strict`, 3–5 главных шагов простыми словами и что дальше делает `eda-execute`.
439
223
 
440
224
  ## Чего НЕ делать
441
- - Править код, запускать миграции.
225
+
226
+ - Править код, миграции, конфиги или зависимости.
442
227
  - Считать `docs/rules.md` и `docs/arch.md` просто контекстом для ознакомления.
443
- - Исполнять или сохранять план, который противоречит правилам или архитектуре проекта.
228
+ - Сохранять план, который противоречит правилам или архитектуре проекта.
444
229
  - Обходить правило или архитектурное ограничение без явного решения пользователя.
445
- - Задавать вопросы без блокировки и продолжать работу до ответа.
230
+ - Задавать вопросы без блокировки и продолжать до ответа.
446
231
  - Переформулировать запрос пользователя своими словами перед Plan Mode.
447
- - Пропускать сохранение файла плана.
448
- - Сохранять сырой текст Plan Mode без нормализации в обязательный формат.
449
- - Оставлять финальный план в виде исследования, списка наблюдений или журнала мета-ревью.
450
- - Смешивать альтернативы с принятыми решениями: если выбор нужен — спроси пользователя до финализации.
451
- - Пропускать мета-ревью тремя моделями это часть обычного режима, не под флагом.
452
- - Запускать мета-ревьюеров частями: сначала 1–2 агента, потом третьего. Все три стартуют сразу.
453
- - Вставлять предложения мета-ревьюеров механически — каждое решение принимаешь ты.
454
- - Пропускать кросс-CLI молча в `strict` (если CLI нет — спроси).
232
+ - Сохранять сырой текст Plan Mode без нормализации.
233
+ - Оставлять финальный план исследованием, списком наблюдений или журналом мета-ревью.
234
+ - Смешивать альтернативы с принятыми решениями.
235
+ - Пропускать мета-ревью тремя моделями или запускать ревьюеров частями.
236
+ - Пропускать кросс-CLI молча в `strict`: если CLI нет, спроси.