@gian-tiaga/eda 1.0.5 → 2.0.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.
Files changed (48) hide show
  1. package/MIGRATION.md +58 -80
  2. package/README.md +113 -32
  3. package/agents/eda-plan-review-api/agent.json +9 -0
  4. package/agents/eda-plan-review-api/prompt.md +34 -0
  5. package/agents/eda-plan-review-architecture/agent.json +9 -0
  6. package/agents/eda-plan-review-architecture/prompt.md +34 -0
  7. package/agents/eda-plan-review-database/agent.json +9 -0
  8. package/agents/eda-plan-review-database/prompt.md +34 -0
  9. package/agents/eda-plan-review-execution/agent.json +9 -0
  10. package/agents/eda-plan-review-execution/prompt.md +34 -0
  11. package/agents/eda-plan-review-feasibility/agent.json +9 -0
  12. package/agents/eda-plan-review-feasibility/prompt.md +34 -0
  13. package/agents/eda-plan-review-frontend/agent.json +9 -0
  14. package/agents/eda-plan-review-frontend/prompt.md +34 -0
  15. package/agents/eda-plan-review-performance/agent.json +9 -0
  16. package/agents/eda-plan-review-performance/prompt.md +34 -0
  17. package/agents/eda-plan-review-previous/agent.json +9 -0
  18. package/agents/eda-plan-review-previous/prompt.md +28 -0
  19. package/agents/eda-plan-review-requirements/agent.json +9 -0
  20. package/agents/eda-plan-review-requirements/prompt.md +34 -0
  21. package/agents/eda-plan-review-rules/agent.json +9 -0
  22. package/agents/eda-plan-review-rules/prompt.md +34 -0
  23. package/agents/eda-plan-review-security/agent.json +9 -0
  24. package/agents/eda-plan-review-security/prompt.md +34 -0
  25. package/agents/eda-plan-review-verification/agent.json +9 -0
  26. package/agents/eda-plan-review-verification/prompt.md +34 -0
  27. package/agents/eda-review-business/agent.json +15 -0
  28. package/agents/eda-review-business/prompt.md +46 -0
  29. package/bin/cli.js +2 -2
  30. package/lib/install.js +524 -368
  31. package/package.json +3 -2
  32. package/skills/eda-aim/SKILL.md +1 -1
  33. package/skills/eda-business/SKILL.md +147 -0
  34. package/skills/eda-discover-automations/SKILL.md +4 -2
  35. package/skills/eda-explore/SKILL.md +7 -6
  36. package/skills/eda-fix/SKILL.md +5 -4
  37. package/skills/eda-fix-by-review/SKILL.md +5 -4
  38. package/skills/eda-manual-test/SKILL.md +13 -5
  39. package/skills/eda-orhestra/SKILL.md +13 -10
  40. package/skills/eda-plan/SKILL.md +46 -38
  41. package/skills/eda-plan-execute/SKILL.md +8 -6
  42. package/skills/eda-plan-polish/SKILL.md +53 -169
  43. package/skills/eda-plan-review/SKILL.md +188 -0
  44. package/skills/eda-plan-review-fix/SKILL.md +105 -0
  45. package/skills/eda-prepare-ai/SKILL.md +7 -2
  46. package/skills/eda-review/SKILL.md +13 -5
  47. package/skills/eda-roadmap/SKILL.md +6 -3
  48. package/skills/eda-send-review/SKILL.md +1 -1
@@ -5,17 +5,18 @@ description: 'Создаёт подробный исполнимый план р
5
5
 
6
6
  # Скил: Планировщик (eda-plan)
7
7
 
8
- Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, явно помечаешь зависимости задач и формируешь связные фазы для выполнения одним агентом, затем проверяешь план тремя параллельными субагентами/моделями. В `strict` добавляешь кросс-CLI проверку.
8
+ Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, явно помечаешь зависимости задач и формируешь связные фазы для выполнения одним агентом. По настройкам запускаешь один специализированный `eda-plan-review`, при необходимости один `eda-plan-review-fix`, а в strict — независимую кросс-CLI проверку.
9
9
 
10
10
  ## Режим запуска
11
11
 
12
12
  Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
13
13
 
14
- Поддерживается только `version: 2`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолты: `plan.strict: false`, `plan.size: normal`, `plan.decision_mode: recommend_and_ask`, `plan.test_strategy: ask_each_time`, `plan.logging_strategy: ask_each_time`.
14
+ Поддерживается только `version: 3`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолты: `plan.strict: false`, `plan.review: true`, `plan.size: normal`, `plan.decision_mode: recommend_and_ask`, `plan.test_strategy: ask_each_time`, `plan.logging_strategy: ask_each_time`.
15
15
 
16
16
  | Настройка | Значения | Аргументы в сообщении |
17
17
  |---|---|---|
18
18
  | `plan.strict` | `true`, `false` | `strict`; выключение: `normal`, `без strict`, `без строгого режима` |
19
+ | `plan.review` | `true`, `false` | включение: `с ревью плана`, `с plan-review`; выключение: `без ревью плана`, `без plan-review` |
19
20
  | `plan.size` | `normal`, `short`, `ask_each_time` | `short`; обычный: `обычный план`, `не short` |
20
21
  | `plan.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай», «спрашивай всё» |
21
22
  | `plan.test_strategy` | `after_each_phase`, `tdd_each_phase`, `end_of_plan`, `ask_each_time` | явное указание стратегии тестов |
@@ -27,6 +28,8 @@ description: 'Создаёт подробный исполнимый план р
27
28
 
28
29
  `test_strategy` обязан менять план: `tdd_each_phase` начинает каждую фазу с тестов, `after_each_phase` добавляет тесты после реализации каждой фазы, `end_of_plan` выносит тесты в отдельную финальную фазу. `logging_strategy` обязан отражаться в алгоритме, фазах и разделе `Логирование`.
29
30
 
31
+ `без проверок` одновременно устанавливает `plan.review: false` и `plan.strict: false`. `plan.review` и `plan.strict` независимы: можно оставить только один вид проверки. Более конкретное прямое указание в том же сообщении имеет приоритет.
32
+
30
33
  ## Вход из сообщения пользователя
31
34
 
32
35
  Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Разбери тему, задачу, путь к файлу, режим, ограничения и прямые указания.
@@ -54,14 +57,15 @@ description: 'Создаёт подробный исполнимый план р
54
57
 
55
58
  1. Никаких правок кода, миграций, конфигов и зависимостей. Запись только в `docs/plans/`.
56
59
  2. `docs/rules.md` и `docs/arch.md` — обязательная рамка планирования, а не справочный контекст. Прочитай их, выдели применимые правила и архитектурные ограничения, передай их в Plan Mode как обязательные требования.
57
- 3. Если существует `docs/references.md`, прочитай индекс, выбери только карточки для затронутых компонентов и прочитай их целиком. Их кодовые примеры задают ожидаемую форму реализации; нерелевантные карточки не загружай.
58
- 4. Приоритет: подтверждённое решение пользователя → `docs/rules.md` → `docs/arch.md` → релевантные карточки. Если запрос, research, черновик или шаг плана конфликтует с этой рамкой, не финализируй план. Спроси, адаптировать подход, отдельно изменить рамку или прервать планирование. Отклонение от карточки допустимо только с подтверждённой причиной, записанной в плане.
59
- 5. Не переформулируй запрос пользователя перед Plan Mode: передавай оригинал, ответы на вопросы и найденную рамку.
60
- 6. План сохраняется до мета-ревью, иначе ревьюерам нечего читать.
61
- 7. Финальный план должен быть простым, исполнимым и без альтернатив вида «выбрать», «решить», «можно так или так», «предпочтительно».
62
- 8. Если нужны пакеты, библиотеки, CLI, сервисы или другое ПО, а версия не указана в контексте или lock/config-файлах, найди последнюю стабильную версию через context7 или web search по официальным источникам. Не пиши `latest` без конкретной версии и источника.
63
- 9. Если выбран `plan.size: short`, но задача не укладывается в ограничения, не сохраняй short-план: объясни причину, оцени нужный объём и спроси, продолжать в `normal` или сузить задачу.
64
- 10. Каждой задаче в фазах присвой уникальный ID и укажи её прямые зависимости. Собери каждую фазу вокруг одной связной цели и объёма, который один исполнитель может реализовать и проверить за один проход; слишком крупную или несвязную фазу раздели.
60
+ 3. Сначала определи задачу и затронутое поведение. Если существует `docs/business.md`, по описаниям выбери только применимые карточки и прочитай их целиком; нерелевантные карточки не загружай. Business-карточки ограничивают только затронутое поведение и не расширяют задачу.
61
+ 4. Если существует `docs/references.md`, прочитай индекс, выбери только карточки для затронутых компонентов и прочитай их целиком. Их кодовые примеры задают ожидаемую форму реализации; нерелевантные карточки не загружай.
62
+ 5. Если запрос, research или черновик плана противоречит применимой business-карточке, не выбирай источник молча и не финализируй план. Покажи конфликт и через `AskUserQuestion` спроси: изменить задачу или сначала пересогласовать business-правило через `eda-business`. Конфликты с rules, architecture или references разрешай отдельным явным решением пользователя.
63
+ 6. Не переформулируй запрос пользователя перед Plan Mode: передавай оригинал, ответы на вопросы и найденную рамку.
64
+ 7. План сохраняется до любой включённой проверки, иначе ревьюерам нечего читать.
65
+ 8. Финальный план должен быть простым, исполнимым и без альтернатив вида «выбрать», «решить», «можно так или так», «предпочтительно».
66
+ 9. Если нужны пакеты, библиотеки, CLI, сервисы или другое ПО, а версия не указана в контексте или lock/config-файлах, найди последнюю стабильную версию через context7 или web search по официальным источникам. Не пиши `latest` без конкретной версии и источника.
67
+ 10. Если выбран `plan.size: short`, но задача не укладывается в ограничения, не сохраняй short-план: объясни причину, оцени нужный объём и спроси, продолжать в `normal` или сузить задачу.
68
+ 11. Каждой задаче в фазах присвой уникальный ID и укажи её прямые зависимости. Собери каждую фазу вокруг одной связной цели и объёма, который один исполнитель может реализовать и проверить за один проход; слишком крупную или несвязную фазу раздели.
65
69
 
66
70
  ## Этапы
67
71
 
@@ -69,6 +73,7 @@ description: 'Создаёт подробный исполнимый план р
69
73
 
70
74
  - Разбери текущий вход и настройки.
71
75
  - Прочитай `docs/rules.md`, `docs/arch.md`, если они есть; выпиши применимые команды проверки, требования к тестам, границы модулей, зависимости, API, миграции, безопасность, документацию и локальные запреты.
76
+ - Если есть `docs/business.md`, сначала установи границы задачи, затем по описаниям выбери только карточки затронутого поведения и выпиши применимые требования, сценарии и критерии приёмки. Если подходящих карточек нет, продолжай без business-контекста.
72
77
  - Если есть `docs/references.md`, выбери по индексу применимые карточки, прочитай их и выпиши обязательные элементы кодовых примеров.
73
78
  - Research подтягивай без вопроса, если путь указан; если в сообщении есть описание задачи без research-файла — используй описание как контекст и не спрашивай research автоматически. Если пользователь явно просит research, но файл не указал, предложи последние файлы из `docs/researches/` и вариант «нет».
74
79
  - Проверь версии нужных пакетов/ПО, если они не зафиксированы в запросе, правилах, архитектуре, research или lock/config-файлах.
@@ -103,12 +108,14 @@ plan_size: <normal | short>
103
108
  decision_mode: <autonomous | recommend_and_ask | ask_each_time>
104
109
  status: <draft | meta-reviewed | reviewed>
105
110
  reviewer: <pending | none | claude | codex>
106
- meta_reviewers: []
111
+ plan_review: <docs/plan-reviews/... | none>
112
+ plan_review_fix: <docs/plan-review-fixes/... | none>
107
113
  test_strategy: <after_each_phase | tdd_each_phase | end_of_plan>
108
114
  logging_strategy: <debug_precise | standard>
109
115
  sources:
110
116
  rules: <путь или —>
111
117
  arch: <путь или —>
118
+ business: [<пути к применимым карточкам или пусто>]
112
119
  references: [<пути к применимым карточкам или пусто>]
113
120
  research: <путь или —>
114
121
  ---
@@ -168,13 +175,14 @@ sources:
168
175
  - Одну фазу целиком выполняет один изолированный субагент `eda-plan-execute`. Задачи фазы должны относиться к общей цели, иметь согласованный scope и помещаться в один исполнительский проход вместе с точечными и фазовыми проверками.
169
176
  - В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты; если область не затрагивается, напиши `Не затрагивается`.
170
177
  - В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
171
- - Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай мета-ревью до ответа пользователя.
178
+ - Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай plan-review до ответа пользователя.
172
179
 
173
- Quality gate перед сохранением и после мета-ревью:
180
+ Quality gate перед сохранением и после каждой включённой проверки:
174
181
 
175
182
  - есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и БД`, `API и внешние контракты`;
183
+ - применимые business-карточки выбраны только после определения scope задачи, записаны в `sources.business` и отражены в поведении и критериях приёмки;
176
184
  - план строго следует `docs/rules.md` и `docs/arch.md`;
177
- - план следует применимым карточкам или явно фиксирует подтверждённую причину отклонения;
185
+ - план следует применимым reference-карточкам или явно фиксирует подтверждённую причину отклонения;
178
186
  - нет конфликтов с правилами, архитектурой, границами модулей, API, миграциями, зависимостями и командами проверки;
179
187
  - БД/API изменения описаны конкретно, а не общими словами;
180
188
  - каждая фаза имеет цель, шаги, результат, сценарии тестирования и проверку;
@@ -185,49 +193,49 @@ Quality gate перед сохранением и после мета-ревью
185
193
  - нет неподтверждённых существенных решений и неразрешённых альтернатив;
186
194
  - план можно передать в `eda-plan-execute` без нового исследования.
187
195
 
188
- ### 4. Мета-ревью тремя субагентами/моделями
196
+ ### 4. Специализированный plan-review и один fix
189
197
 
190
- Запусти три проверки параллельно, в одном batch, до чтения любого результата. Главный планировщик сам решает, что применять; предложения не вставляются механически.
198
+ Если `plan.review: false`, пропусти этап, оставь `plan_review: none`, `plan_review_fix: none` и перейди к strict-этапу или финалу. Не запускай старое общее мета-ревью.
191
199
 
192
- | Среда | Быстрая | Кодовая | Флагман |
193
- |---|---|---|---|
194
- | Claude Code (`Agent` tool) | `haiku` | `sonnet` | `opus` |
195
- | Codex interactive (`spawn_agent`) | `gpt-5.4-mini` | `gpt-5.3-codex` | `gpt-5.5` |
196
- | Codex exec / non-interactive fallback | `gpt-5.4-mini` | `gpt-5.3-codex` | `gpt-5.5` |
200
+ Если `plan.review: true`, каждый вложенный скил запускай в отдельном изолированном субагенте с чистым контекстом. Основной планировщик не делает их работу. При недоступности нативных субагентов остановись; не используй CLI-fallback для этого этапа.
197
201
 
198
- В интерактивном Codex, если доступен инструмент субагентов (`spawn_agent` или аналог), используй его. Не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны. В неинтерактивном fallback запускай три `codex exec --model <id>` параллельно одной Bash-командой с `&` и общим `wait`.
202
+ 1. Запусти один `eda-plan-review`:
199
203
 
200
- Промпт всем: прочитать план, `docs/rules.md`, `docs/arch.md`, карточки из `sources.references`, research из `sources.research` при наличии и релевантный код по глубине модели. Найти пропущенные шаги, нарушения правил/архитектуры/эталонов, необоснованные отклонения, скрытые риски, риски для смежного кода, недостающие тесты, шаги без критериев готовности, неверные зависимости и слишком крупные или несвязные фазы для одного исполнителя. Формат ответа: `+ N | − N | ~ N: причина`; флагману явно скажи открывать файлы модулей, API, тестов и сценариев, на которые ссылается план.
204
+ ```text
205
+ Используй eda-plan-review для <PLAN_FILE>.
206
+ Исходная задача и решения: <текущий запрос и ответы пользователя>.
207
+ Верни путь к review, status, score, threshold и required/optional ID.
208
+ ```
201
209
 
202
- После ответов интегрируй принятые замечания в основные разделы плана, снова прогони quality gate и добавь:
210
+ 2. Если review имеет `status: ready`, обнови front matter: `status: reviewed`, `plan_review: <REVIEW_FILE>`, `plan_review_fix: none`. Содержательных правок не делай.
211
+ 3. Если review имеет `status: changes-required`, запусти ровно один новый изолированный субагент:
203
212
 
204
- ```markdown
205
- ## Изменения после мета-ревью
213
+ ```text
214
+ Используй eda-plan-review-fix apply-optional для <REVIEW_FILE>.
215
+ Примени все required, самостоятельно разбери optional и сохрани waived с причинами.
216
+ Верни путь к fix, before_sha256, after_sha256, applied и waived ID.
217
+ ```
206
218
 
207
- ### После моделей
208
- - **+ Добавлено:** <3–7 главных изменений>
209
- - **~ Изменено:** <1–5 уточнений>
210
- - **− Убрано:** <если удалено>
211
- - **Отклонено:** <существенные отклонённые предложения и причина>
212
- ```
219
+ 4. Проверь связь SHA-256. После успешного fix установи `status: meta-reviewed`, `plan_review: <REVIEW_FILE>`, `plan_review_fix: <FIX_FILE>` и снова прогони локальный quality gate структуры плана. Не запускай второй review внутри `eda-plan`.
220
+ 5. При `blocked` передай один конкретный вопрос пользователю и продолжи тот же вложенный шаг после ответа.
213
221
 
214
- В YAML поменяй `status: draft` на `meta-reviewed`, в `meta_reviewers` запиши модели.
222
+ `meta-reviewed` означает один review и один неперепроверенный fix и остаётся допустимым входом для `eda-plan-execute`. Подтверждённый gate после fix выполняет отдельный `eda-plan-polish`.
215
223
 
216
224
  ### 5. Strict: кросс-CLI и допил
217
225
 
218
- Обычный режим пропускает этот этап. В `strict` отдай файл соседнему CLI:
226
+ `plan.strict` не зависит от `plan.review`. Обычный режим пропускает этот этап. В `strict` отдай файл соседнему CLI:
219
227
 
220
228
  ```bash
221
- codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, неучтённые зависимости, нарушения правил, архитектуры и эталонов, необоснованные отклонения, скрытые риски, недостающие тесты и шаги без критериев готовности. Список '- [тип] описание — что предлагаешь'." > "${PLAN_FILE%.md}_review.md"
229
+ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, нарушения бизнес-требований, неучтённые зависимости, нарушения правил, архитектуры и эталонов, необоснованные отклонения, скрытые риски, недостающие тесты и шаги без критериев готовности. Список '- [тип] описание — что предлагаешь'." > "${PLAN_FILE%.md}_review.md"
222
230
  ```
223
231
 
224
232
  Если ты в Codex — запускай `claude -p` с тем же заданием. Если соседней CLI нет, спроси, продолжать без ревью или прервать.
225
233
 
226
- Бесспорные замечания внеси в план, спорные вынеси через `AskUserQuestion`, отклонённые зафиксируй с причиной в `## Реакция на ревью`. Поменяй `status: meta-reviewed` на `reviewed`, покажи дифф.
234
+ Бесспорные замечания внеси в план, спорные вынеси через `AskUserQuestion`, отклонённые зафиксируй с причиной в `## Реакция на ревью`. Поменяй `status: draft` или `status: meta-reviewed` на `reviewed`, покажи дифф.
227
235
 
228
236
  ### 6. Финал
229
237
 
230
- Коротко сообщи режим, путь к плану, путь к review-файлу в `strict`, 3–5 главных шагов простыми словами и что дальше делает `eda-plan-execute`.
238
+ Коротко сообщи режим, выполнялись ли plan-review/fix и strict, путь к плану, пути к plan-review/plan-review-fix и strict-review при наличии, итоговый status, 3–5 главных шагов и что дальше делает `eda-plan-execute`. Для `meta-reviewed` явно укажи, что подтверждающий gate выполняет `eda-plan-polish`.
231
239
 
232
240
  ## Чего НЕ делать
233
241
 
@@ -241,5 +249,5 @@ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карто
241
249
  - Сохранять сырой текст Plan Mode без нормализации.
242
250
  - Оставлять финальный план исследованием, списком наблюдений или журналом мета-ревью.
243
251
  - Смешивать альтернативы с принятыми решениями.
244
- - Пропускать мета-ревью тремя моделями или запускать ревьюеров частями.
252
+ - Выполнять plan-review или plan-review-fix основным агентом, запускать старые три общих ревьюера или делать второй review внутри `eda-plan`.
245
253
  - Пропускать кросс-CLI молча в `strict`: если CLI нет, спроси.
@@ -18,8 +18,8 @@ description: 'Выполняет готовый план из `docs/plans/` по
18
18
  1. **Основной агент только управляет.** Разрешены чтение контекста, построение очереди, запуск и контроль субагентов, вопросы пользователю, обновление `$PLAN_FILE` и `$EXECUTION_FILE`. Код, тесты, миграции, конфиги, зависимости, документацию проекта и git-состояние меняют только назначенные субагенты.
19
19
  2. **Фазы выполняй строго последовательно.** Не запускай следующую фазу, пока исполнитель текущей не завершил все её задачи и отдельная проверка фазы не прошла.
20
20
  3. **Одна фаза — один исполнитель.** Запускай каждую фазу целиком в новом субагенте со свежим контекстом без истории диалога. Сохраняй идентификатор исполнителя и продолжай его же для вопросов и исправлений этой фазы, пока среда позволяет.
21
- 4. **Рамку читает исполнитель фазы.** Каждый исполнитель целиком читает план, `docs/rules.md`, `docs/arch.md` и индекс `docs/references.md`, если файлы существуют. Если выполнение фазы затрагивает компонент, для которого в `docs/references.md` указана карточка, исполнитель читает эту карточку целиком перед соответствующим изменением.
22
- 5. **Соблюдай приоритет и блокируй конфликт.** Приоритет: подтверждённое решение пользователя → `docs/rules.md` → `docs/arch.md` → релевантные карточки. При конфликте или необоснованном отклонении от примера применимой карточки исполнитель возвращает `blocked`, а основной агент спрашивает, адаптировать план, вернуться к `eda-plan` или отдельно изменить документацию.
21
+ 4. **Рамку читает исполнитель фазы.** Каждый исполнитель целиком читает план, `docs/rules.md` и `docs/arch.md`. Для поведения своей фазы он читает карточки из `sources.business`; у старого плана без поля выбирает через `docs/business.md` только непосредственно применимые карточки. Для затронутых компонентов так же выбирает технические карточки через `sources.references` или `docs/references.md`. Нерелевантные карточки не загружает.
22
+ 5. **Блокируй конфликт.** План задаёт область выполняемой работы, а применимые business-карточки — требования к затронутому поведению. Если план противоречит business-карточке, исполнитель возвращает `blocked`, а основной агент показывает конфликт и через `AskUserQuestion` спрашивает: изменить план через `eda-plan` или сначала пересогласовать правило через `eda-business`. Конфликты с rules, architecture или references также не разрешай молча.
23
23
  6. **Отмечай только подтверждённое.** Ставь задаче `[x]` только после `completed` от исполнителя и успешной точечной проверки. Фазу закрывай только после отдельного `passed` от проверяющего фазы. При последующем опровержении верни отметку в незавершённое состояние.
24
24
  7. **Проверки нельзя подавлять.** Не поручай отключать линтеры, тесты, typecheck, static analysis и другие проверки, добавлять игноры или ослаблять команды и правила. Причину падения исправляет исполнитель соответствующей фазы, затем отдельный субагент повторяет проверку.
25
25
  8. **Не коммить, не пушь и не делай ревью.** Это другие скилы.
@@ -103,10 +103,10 @@ current_phase: <номер>
103
103
 
104
104
  - рабочую директорию, `$PLAN_FILE`, номер и полный текст текущей фазы;
105
105
  - краткие результаты уже завершённых фаз;
106
- - пути к `docs/rules.md`, `docs/arch.md` и `docs/references.md`;
106
+ - пути к `docs/rules.md`, `docs/arch.md`, `docs/business.md` и `docs/references.md`;
107
107
  - ограничения пользователя, команды и критерии проверки фазы, запрет коммитить и запрет менять план и журнал.
108
108
 
109
- Исполнитель целиком читает `$PLAN_FILE`, `docs/rules.md` и `docs/arch.md`, затем выполняет все задачи назначенной фазы по прямым зависимостям. Если выполнение фазы затрагивает компонент, для которого в `docs/references.md` указана карточка, исполнитель читает эту карточку целиком перед соответствующим изменением. После каждой задачи он выполняет её точечные проверки, а в конце — все проверки фазы. Требуй YAML-результат:
109
+ Исполнитель целиком читает `$PLAN_FILE`, `docs/rules.md` и `docs/arch.md`, затем выполняет все задачи назначенной фазы по прямым зависимостям. Перед изменением поведения он читает применимые карточки из `sources.business`; если поле отсутствует, выбирает их по описаниям из `docs/business.md`. Если подходящих карточек нет, продолжает без business-контекста. Если выполнение фазы затрагивает компонент, для которого в `docs/references.md` указана карточка, исполнитель читает эту карточку целиком перед соответствующим изменением. После каждой задачи он выполняет её точечные проверки, а в конце — все проверки фазы. Требуй YAML-результат:
110
110
 
111
111
  ```yaml
112
112
  status: completed | needs_input | failed | blocked
@@ -118,6 +118,7 @@ tasks:
118
118
  summary: <кратко>
119
119
  checks: [<результаты точечных проверок>]
120
120
  files_changed: [<пути>]
121
+ business_read: [<пути или пусто>]
121
122
  references_read: [<пути или пусто>]
122
123
  checks:
123
124
  - command: <команда или критерий>
@@ -143,7 +144,7 @@ questions: [<вопросы или пусто>]
143
144
 
144
145
  ### 7. Проверять каждую фазу
145
146
 
146
- После `completed` от исполнителя запусти нового изолированного субагента-проверяющего. Он не меняет файлы, целиком читает план, `docs/rules.md`, `docs/arch.md` и индекс `docs/references.md`, если они существуют. Если итог фазы затрагивает компонент, для которого в индексе указана карточка, проверяющий читает её целиком. Затем он выполняет все проверки из раздела фазы и подтверждает критерии результата. Требуй YAML:
147
+ После `completed` от исполнителя запусти нового изолированного субагента-проверяющего. Он не меняет файлы, целиком читает план, `docs/rules.md` и `docs/arch.md`. Он читает только business-карточки, применимые к поведению этой фазы, и только reference-карточки затронутых компонентов; для старого плана использует соответствующие индексы как fallback. Отсутствие применимой business-карточки не блокирует проверку. Затем он выполняет все проверки из раздела фазы и подтверждает критерии результата. Требуй YAML:
147
148
 
148
149
  ```yaml
149
150
  status: passed | failed | blocked
@@ -153,6 +154,7 @@ checks:
153
154
  status: passed | failed
154
155
  result: <кратко>
155
156
  failures: [<проблемы с доказательствами или пусто>]
157
+ business_read: [<пути или пусто>]
156
158
  references_read: [<пути или пусто>]
157
159
  ```
158
160
 
@@ -160,7 +162,7 @@ references_read: [<пути или пусто>]
160
162
 
161
163
  ### 8. Выполнить финальную проверку
162
164
 
163
- После всех фаз запусти отдельного нового субагента для полного набора тестов, линтеров, typecheck, static analysis и других обязательных команд проекта. Он только проверяет и не меняет файлы, целиком читает план, `docs/rules.md`, `docs/arch.md` и индекс `docs/references.md`, если они существуют. Если итоговые изменения затрагивают компонент, для которого в индексе указана карточка, проверяющий читает её целиком перед оценкой соответствующего результата.
165
+ После всех фаз запусти отдельного нового субагента для полного набора тестов, линтеров, typecheck, static analysis и других обязательных команд проекта. Он только проверяет и не меняет файлы, целиком читает план, `docs/rules.md` и `docs/arch.md`, затем выбирает только business-карточки итогового изменённого поведения и reference-карточки затронутых компонентов. Отсутствие подходящей business-карточки не требует предупреждения и не блокирует проверку.
164
166
 
165
167
  Если финальная проверка упала из-за сделанных изменений, сопоставь ошибки с фазами и передай каждую группу исполнителю соответствующей фазы; несколько затронутых фаз исправляй по порядку плана. Если продолжить прежнего исполнителя невозможно, запусти одного нового изолированного исполнителя для каждой затронутой фазы. Затем повтори всю финальную проверку новым субагентом. Чужую или несвязанную поломку зафиксируй и используй `AskUserQuestion`, если без решения нельзя завершить план. Запрещено делать проверки зелёными через подавление ошибок, игноры, исключения, ослабление конфигов или изменение команд проверки.
166
168
 
@@ -1,204 +1,88 @@
1
1
  ---
2
2
  name: eda-plan-polish
3
- description: 'Проверяет и улучшает готовый план реализации итерациями до заданной оценки.'
3
+ description: 'Оркестрирует review и исправления готового плана до подтверждённой оценки готовности.'
4
4
  ---
5
5
 
6
6
  # Скил: Полировка плана (eda-plan-polish)
7
7
 
8
- Берёшь готовый план из `docs/plans/` и доводишь его до состояния, когда его можно передать в `eda-plan-execute`. Порог по умолчанию — `95`, лимит по умолчанию — `5` итераций. В `strict` каждая итерация после трёх моделей дополнительно отдаёт план соседнему CLI на кросс-ревью.
9
-
10
- Каждая итерация начинается с трёх независимых моделей с одним и тем же промптом. Основной агент не ставит предварительную оценку сам: он оценивает план только после ответов агентов, принимает или отклоняет предложения, правит план при оценке ниже порога и запускает новую итерацию.
8
+ Оркестрируй цикл `eda-plan-review` → `eda-plan-review-fix apply-optional` → повторный `eda-plan-review`. Основной агент только выбирает план, запускает каждый скил в отдельном изолированном субагенте, проверяет артефакты и управляет остановкой.
11
9
 
12
10
  ## Вход из сообщения пользователя
13
11
 
14
- Текст рядом с вызовом скилла — главный вход. Разбери путь к плану, название или часть названия, «последний план», порог, лимит итераций, ограничения и прямые запреты.
12
+ Текст рядом с вызовом — главный вход. Разбери путь или название плана, «последний план», threshold, limit, отключённые/принудительные проверки, разовые модели и ограничения. Передавай overrides в каждый review.
15
13
 
16
- Если входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, найдено несколько равных вариантов или есть риск полировать не тот план. Старую историю не считай входом, если пользователь не связал её с текущим вызовом явно.
14
+ Если план выбирается однозначно, продолжай без вопроса. При нескольких равных вариантах передай выбор первому `eda-plan-review` или используй `AskUserQuestion` по правилам среды.
17
15
 
18
16
  ## Настройки
19
17
 
20
- Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
21
-
22
- Поддерживается только `version: 2`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолт: `plan-polish.strict: false`.
23
-
24
- - `plan-polish.strict` включает кросс-CLI ревью плана после трёх агентов в каждой итерации; выключение: `normal`, `без strict`, `без строгого режима`.
25
- - Порог качества по умолчанию — `95`, можно переопределить словами `до 90`, `threshold 90`, `цель 90`.
26
- - Лимит по умолчанию — `5` итераций, можно переопределить словами `лимит 3`, `max iterations 3`, `не больше 3 кругов`.
27
- - Оценка `95–100` означает готовность к исполнению; `80–94` — нужно уточнить; `60–79` — рискованный план; ниже `60` — нужен серьёзный переплан или вопросы пользователю.
28
-
29
- ## Жёсткие правила
30
-
31
- 1. Работай только с готовым файлом плана в `docs/plans/`.
32
- 2. Не правишь код. Содержательно менять можно только выбранный файл плана; в `strict` можно создать или обновить только вспомогательный файл `${PLAN_FILE%.md}_strict_cli_review.md`. Миграции, конфиги, зависимости и lock-файлы не трогай.
33
- 3. Не запускай проверки и исполняющие команды: `test`, `lint`, `build`, `typecheck`, `check`, `dev`, `start`, миграции, seed, smoke-тесты, браузерные проверки и API-запросы. При полировке плана можно читать файлы и искать по коду, но нельзя проверять проект выполнением команд.
34
- 4. Не ставь предварительную оценку без агентов. Сразу запускай три изолированных агента параллельно, одним batch, до чтения любого результата.
35
- 5. Итоговую оценку 0–100 выставляй только после чтения результатов всех трёх агентов, а в `strict` — ещё и результата соседнего CLI.
36
- 6. У всех трёх агентов один общий промпт: каждый проверяет весь план целиком, а не отдельную роль.
37
- 7. Не добавляй неподтверждённые существенные решения: БД/API-контракты, зависимости, архитектурные развилки, auth/permissions/payments/secrets/персональные данные и миграции.
38
- 8. Сохраняй структуру `eda-plan`: `Целевой алгоритм`, `Контракты реализации`, `Фазы выполнения`, `Тесты`, `Логирование`, если эти разделы есть или должны быть по формату.
39
- 9. Не пропускай кросс-CLI молча в `strict`: если соседней CLI нет, спроси через `AskUserQuestion`, завершить как normal или прервать.
40
- 10. Если качество не растёт два круга подряд, достигнут лимит или нужен ответ пользователя, остановись и честно назови причину.
41
-
42
- ## Интерактивные вопросы
43
-
44
- Когда инструкция говорит `AskUserQuestion`, это блокирующий вопрос:
45
- - Claude Code: используй `AskUserQuestion`.
46
- - Codex interactive: если доступен `request_user_input`, используй его; иначе задай один короткий вопрос в чат с вариантами 1–3 и остановись до ответа.
47
- - Codex exec / non-interactive: не читай stdin; если без ответа нельзя безопасно продолжать, заверши со статусом `blocked: нужен ответ пользователя`.
48
-
49
- ## Процесс
50
-
51
- ### 1. Выбрать план
52
-
53
- Определи `$PLAN_FILE`:
54
- - указан путь — используй его;
55
- - указано название или часть названия — найди совпадение в `docs/plans/`;
56
- - сказано «последний план» — возьми самый новый файл из `docs/plans/`;
57
- - входа нет — спроси, показав несколько последних планов;
58
- - `docs/plans/` нет или она пуста — остановись: `blocked: нужен готовый план`.
59
-
60
- Прочитай только выбранный план целиком. По front matter извлеки `status`, `mode`, `plan_size`, `test_strategy`, `logging_strategy`, `sources.rules`, `sources.arch`, `sources.references`, `sources.research`, `meta_reviewers`.
61
-
62
- Сам не читай `docs/rules.md`, `docs/arch.md`, `sources.references`, `sources.research` и релевантный код на этом шаге. Передай эти пути агентам в общем промпте: проверка правил, архитектуры, эталонов, research и кода — их работа. Если старый план не содержит `sources.references`, но существует `docs/references.md`, передай агентам индекс: они должны выбрать только применимые карточки. Если индекса нет, продолжай без references. Основной агент может открыть внешний файл только позже и точечно, если нужно проверить конкретное предложение агента перед правкой плана. Не запускай проверки.
63
-
64
- ### 2. Запустить три модели
65
-
66
- В каждой итерации, включая первую, запускай в одном batch три изолированных агента:
67
-
68
- | Уровень | Claude Code (`Agent` tool) | Codex interactive (`spawn_agent`) | Codex exec / non-interactive fallback |
69
- |---|---|---|---|
70
- | Быстрая модель | `haiku` | `gpt-5.4-mini` | `gpt-5.4-mini` |
71
- | Кодовая модель | `sonnet` | `gpt-5.3-codex` | `gpt-5.3-codex` |
72
- | Флагманская модель | `opus` | `gpt-5.5` | `gpt-5.5` |
73
-
74
- - Claude Code: используй `Agent` tool с моделями из таблицы.
75
- - Codex interactive: если доступен `spawn_agent` или аналог, используй субагентов с моделями из таблицы. Не используй отдельные `codex exec`, когда субагенты доступны.
76
- - Codex exec / non-interactive fallback: если субагентов нет, запусти три `codex exec --model <id>` параллельно одной Bash-командой с `&` и общим `wait`.
77
- - Если модель недоступна, возьми ближайшую code-capable модель того же уровня. Не заменяй три уровня одной моделью.
78
-
79
- Общий промпт каждому агенту:
80
-
81
- ```text
82
- Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, прочитай docs/references.md и выбери только применимые карточки.
83
-
84
- Проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и применимым эталонам, обоснованность отклонений от примеров, полноту целевого алгоритма, БД/API/внешние контракты, связность и размер фаз для одного исполнителя на фазу, тестовые сценарии, логирование, неподтверждённые решения, скрытые риски и места, где eda-plan-execute не сможет продолжить без нового исследования.
85
-
86
- Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы.
87
-
88
- Ответь кратко:
89
- score: <0–100>
90
- + Принять: <конкретная правка и куда встроить>
91
- ~ Уточнить: <что переформулировать>
92
- -- Убрать: <что неверно, лишнее или противоречит контексту>
93
- ? Вопрос: <что нельзя безопасно решить без пользователя>
94
- ```
95
-
96
- ### 3. Strict: кросс-CLI ревью плана
97
-
98
- Обычный режим пропускает этот этап. В `strict` после ответов трёх агентов, но до итоговой оценки, отдай план соседнему CLI через `Bash`.
99
-
100
- Если ты в Claude Code — запускай Codex CLI:
101
-
102
- ```bash
103
- codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, выбери применимые карточки через docs/references.md. Глубоко проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и эталонам, обоснованность отклонений, полноту целевого алгоритма, БД/API/внешние контракты, связность и размер фаз для одного исполнителя на фазу, тесты, логирование, неподтверждённые решения и скрытые риски. Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы. Ответь кратко: score: <0–100>; + Принять; ~ Уточнить; -- Убрать; ? Вопрос." > "${PLAN_FILE%.md}_strict_cli_review.md"
104
- ```
105
-
106
- Если ты в Codex — запускай Claude CLI:
107
-
108
- ```bash
109
- claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, выбери применимые карточки через docs/references.md. Глубоко проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и эталонам, обоснованность отклонений, полноту целевого алгоритма, БД/API/внешние контракты, связность и размер фаз для одного исполнителя на фазу, тесты, логирование, неподтверждённые решения и скрытые риски. Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы. Ответь кратко: score: <0–100>; + Принять; ~ Уточнить; -- Убрать; ? Вопрос." > "${PLAN_FILE%.md}_strict_cli_review.md"
110
- ```
111
-
112
- Если соседней CLI нет — `AskUserQuestion`: продолжить как `normal` без кросс-CLI или прервать полировку. Не заменяй кросс-CLI четвёртым локальным субагентом.
113
-
114
- Прочитай ответ соседнего CLI и дальше оцени его вместе с тремя агентами. Файл `${PLAN_FILE%.md}_strict_cli_review.md` можно создать и обновлять в `strict`; это единственный вспомогательный файл, кроме самого плана, который разрешён в strict-режиме.
115
-
116
- ### 4. Оценить результаты
18
+ Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version: 3`; иначе используй defaults и предупреди.
117
19
 
118
- Когда все три агента ответили, а в `strict` ещё и соседний CLI, прочитай их замечания и оценки. После этого основной агент выставляет итоговый `$SCORE` по шкале 0–100.
20
+ - threshold берётся из `plan-review.threshold`, default `95`, допустим `1–100`;
21
+ - limit берётся из `plan-polish.limit`, default `3`, это положительное целое число;
22
+ - прямые `threshold N` и `limit N` важнее settings.
119
23
 
120
- Оцени:
121
- - план следует `docs/rules.md` и `docs/arch.md`;
122
- - план следует применимым карточкам или содержит подтверждённую причину отклонения;
123
- - нет неподтверждённых существенных решений;
124
- - `Целевой алгоритм` описывает сквозное поведение;
125
- - `Контракты реализации` конкретны, особенно БД/API/внешние контракты;
126
- - фазы имеют цель, шаги, результат, сценарии тестирования и проверку;
127
- - каждая фаза связна и выполнима одним агентом за один проход;
128
- - `test_strategy` и `logging_strategy` отражены в фазах и разделах;
129
- - нет альтернатив вида «выбрать», «решить», «уточнить позже»;
130
- - план можно передать в `eda-plan-execute` без нового исследования.
24
+ `strict` и кросс-CLI не поддерживаются. Не читай устаревшие поля настроек и не запускай соседний CLI: используй только специализированный workflow этого скилла.
131
25
 
132
- Если `$SCORE >= threshold`, не вноси содержательные правки ради формы. Только добавь или обнови:
26
+ ## Правила
133
27
 
134
- ```markdown
135
- ## Оценка plan-polish
136
- - **Итоговая оценка:** <score>/100
137
- - **Порог:** <threshold>/100
138
- - **Итерации:** <N>
139
- - **Модели:** <фактически запущенные модели и соседний CLI в strict>
140
- - **Режим:** <normal | strict>
141
- - **Решение:** план готов к исполнению.
142
- ```
28
+ 1. Каждый вызов `eda-plan-review` и `eda-plan-review-fix apply-optional` запускай отдельным изолированным субагентом с чистым контекстом.
29
+ 2. Если нативные субагенты или вложенная делегация недоступны, остановись; не выполняй review/fix основным агентом и не используй CLI-fallback.
30
+ 3. Успех определяется только review со статусом `ready`, без required findings и `score >= threshold`.
31
+ 4. Limit считает подтверждающие review-итерации. После review на последней итерации не запускай fix, который нельзя перепроверить.
32
+ 5. Основной агент не делает содержательных правок плана. После ready он может обновить только front matter: `status`, `plan_review`, `plan_review_fix`.
33
+ 6. Не запускай проверки проекта и не коммить.
143
34
 
144
- На этом остановись.
35
+ ## Вопросы
145
36
 
146
- ### 5. Отредактировать план
37
+ Если вложенный скил вернул `blocked` с вопросом, передай пользователю только этот вопрос и после ответа продолжи тот же шаг с полным предыдущим контекстом.
147
38
 
148
- Если `$SCORE < threshold`, сгруппируй замечания:
149
- - **Принять** — подтверждено планом, правилами, архитектурой, research или кодом и улучшает исполнимость без новой развилки.
150
- - **Отклонить** — противоречит контексту, дублирует уже закрытое, расширяет задачу или требует неподтверждённого решения.
151
- - **Спросить** — полезно, но требует выбора пользователя или меняет подтверждённое решение.
39
+ - Claude Code: `AskUserQuestion`.
40
+ - Codex interactive: `request_user_input`, если доступен, иначе короткий вопрос с вариантами.
41
+ - Codex exec/non-interactive: остановись `blocked: нужен ответ пользователя`.
152
42
 
153
- Если есть вопросы класса **Спросить**, задай один сгруппированный `AskUserQuestion` и не редактируй план до ответа. Если предложение можно безопасно отклонить как расширение задачи, отклони его и продолжай.
43
+ ## Цикл
154
44
 
155
- Принятые замечания встраивай в основные разделы плана. Журнал в конце держи коротким:
45
+ Сформируй `$PLAN_FILE`, `$THRESHOLD`, `$LIMIT` и внутренний журнал: iteration, review path, plan SHA-256, score, состояния findings, fix path и причина продолжения.
156
46
 
157
- ```markdown
158
- ## Изменения после plan-polish
47
+ Для `$ITERATION` от `1` до `$LIMIT`:
159
48
 
160
- ### Итерация <N>
161
- - **Оценка после проверки:** <score>/100
162
- - **Модели:** <фактически запущенные модели и соседний CLI в strict>
163
- - **+ Добавлено:** <3–7 главных изменений>
164
- - **~ Уточнено:** <1–5 важных уточнений>
165
- - **− Убрано:** <если удалено>
166
- - **Отклонено:** <существенные отклонённые предложения и причина>
167
- - **Вопросы пользователя:** <если были, кратко решение>
168
- ```
49
+ 1. Запусти новый изолированный субагент:
169
50
 
170
- В `meta_reviewers`, если поле есть, добавь фактически запущенные модели и имя соседнего CLI в `strict`. Если `status: draft` и открытых вопросов не осталось, поменяй на `status: meta-reviewed`; `meta-reviewed` и `reviewed` не понижай.
51
+ ```text
52
+ Используй eda-plan-review для <PLAN_FILE> с threshold <THRESHOLD>.
53
+ Previous review: <PREVIOUS_REVIEW | none>.
54
+ Previous fix: <PREVIOUS_FIX | none>.
55
+ Overrides проверок и моделей: <из текущего вызова | none>.
56
+ Верни путь, status, plan_sha256, score, required/optional ID и coverage.
57
+ ```
171
58
 
172
- ### 6. Продолжить или остановиться
59
+ 2. Прочитай review-артефакт и проверь, что status/score/threshold/findings согласованы.
60
+ 3. Если status `ready`, обнови front matter плана: `status: reviewed`, `plan_review: <REVIEW_FILE>`, `plan_review_fix: <последний FIX_FILE | none>`. Заверши успешно.
61
+ 4. Если это последняя разрешённая review-итерация, остановись `достигнут limit`; fix не запускай.
62
+ 5. Если относительно предыдущего review не изменились open/resolved/regressed/waived ID и score, остановись `blocked: review не показывает прогресса`.
63
+ 6. Если ниже gate нет применимых findings, остановись `blocked: нет применимых правок для повышения оценки`.
64
+ 7. Запусти новый изолированный субагент:
173
65
 
174
- После правок обнови:
66
+ ```text
67
+ Используй eda-plan-review-fix apply-optional для <REVIEW_FILE>.
68
+ Примени все required, самостоятельно разбери optional и сохрани waived с причинами.
69
+ Верни путь к fix, before_sha256, after_sha256, applied и waived ID.
70
+ ```
175
71
 
176
- ```markdown
177
- ## Оценка plan-polish
178
- - **Итоговая оценка:** <score>/100
179
- - **Порог:** <threshold>/100
180
- - **Итерации:** <N>
181
- - **Модели:** <фактически запущенные модели и соседний CLI в strict>
182
- - **Режим:** <normal | strict>
183
- - **Решение:** <готов к исполнению | нужен следующий круг | blocked | достигнут лимит>
184
- ```
72
+ 8. Проверь, что `before_sha256` равен `plan_sha256` review. Если `after_sha256` равен `before_sha256`, остановись `blocked: fix не изменил план`.
73
+ 9. Сохрани review/fix как previous chain и начни следующую review-итерацию.
185
74
 
186
- Если оценка ниже порога и лимит не достигнут, запускай новую итерацию с тремя агентами. Если оценка не выросла два круга подряд — остановись `blocked: score не растёт`. Если лимит достигнут — остановись и явно скажи, что порог не достигнут.
75
+ Score не повышай и не пересчитывай сам: используй только полный `eda-plan-review`.
187
76
 
188
77
  ## Финал
189
78
 
190
- Сообщи кратко: режим (`normal` или `strict`), путь к плану, путь к strict-review-файлу при наличии, итоговую оценку и порог, число итераций, какие модели и CLI запускались, главные принятые изменения, существенные отклонения, причину остановки и следующий шаг `eda-plan-execute <PLAN_FILE>` при успехе. Если режим был обычный — добавь строку «кросс-CLI не запускался; для проверки соседним агентом — `eda-plan-polish strict <PLAN_FILE>`».
79
+ Сообщи результат (`ready`, limit, no progress, no applicable fixes или blocked), план, последний review/fix, score/threshold, число review-итераций, open ID и coverage warnings. При ready предложи `eda-plan-execute`; при неуспехе перечисли конкретные оставшиеся findings.
191
80
 
192
81
  ## Чего НЕ делать
193
82
 
194
- - Создавать новый план вместо полировки существующего.
195
- - Править код, миграции, конфиги, lock-файлы или зависимости.
196
- - Запускать любые проверки проекта, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы.
197
- - Ставить предварительную оценку без трёх агентных проверок.
198
- - Запускать агентов последовательно или давать им разные промпты.
199
- - Запускать все три прохода на одной модели.
200
- - Пропускать кросс-CLI молча в `strict`.
201
- - Вставлять предложения агентов без анализа.
202
- - Добавлять существенные решения без подтверждения пользователя.
203
- - Превращать план в длинный отчёт о ревью.
204
- - Коммитить, пушить или запускать `eda-plan-execute`.
83
+ - Делать review, выставлять score или исправлять содержание плана основным агентом.
84
+ - Запускать старые три общих ревью одним промптом.
85
+ - Запускать кросс-CLI, `strict`, `codex exec` или `claude -p`.
86
+ - Запускать fix после последней review-итерации.
87
+ - Ждать два одинаковых круга: один подтверждённый круг без прогресса уже останавливает цикл.
88
+ - Писать длинный журнал полировки в план, менять код или запускать проверки проекта.