@gian-tiaga/eda 2.0.0 → 3.1.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 (64) hide show
  1. package/MIGRATION.md +68 -67
  2. package/README.md +44 -86
  3. package/agents/eda-aim-planner/prompt.md +1 -1
  4. package/agents/eda-review-api/prompt.md +5 -3
  5. package/agents/eda-review-architecture/prompt.md +6 -4
  6. package/agents/eda-review-business/prompt.md +5 -3
  7. package/agents/eda-review-code-quality/prompt.md +7 -5
  8. package/agents/eda-review-correctness/prompt.md +5 -3
  9. package/agents/eda-review-database/prompt.md +5 -3
  10. package/agents/eda-review-documentation/prompt.md +5 -3
  11. package/agents/eda-review-frontend/prompt.md +5 -3
  12. package/agents/eda-review-performance/prompt.md +7 -5
  13. package/agents/eda-review-plan-alignment/prompt.md +5 -3
  14. package/agents/eda-review-previous-reviews/prompt.md +6 -4
  15. package/agents/eda-review-references/prompt.md +5 -3
  16. package/agents/eda-review-rules/prompt.md +5 -3
  17. package/agents/eda-review-security/prompt.md +5 -3
  18. package/agents/eda-review-tests/prompt.md +5 -3
  19. package/bin/cli.js +2 -2
  20. package/lib/install.js +124 -160
  21. package/package.json +1 -1
  22. package/skills/eda-aim/SKILL.md +2 -2
  23. package/skills/eda-business/SKILL.md +47 -32
  24. package/skills/eda-discover-automations/SKILL.md +9 -9
  25. package/skills/eda-explore/SKILL.md +3 -3
  26. package/skills/eda-fix/SKILL.md +6 -6
  27. package/skills/eda-fix-by-review/SKILL.md +47 -58
  28. package/skills/eda-manual-test/SKILL.md +5 -5
  29. package/skills/eda-new-project/SKILL.md +3 -3
  30. package/skills/eda-orhestra/SKILL.md +2 -2
  31. package/skills/eda-plan/SKILL.md +92 -111
  32. package/skills/eda-plan-execute/SKILL.md +43 -68
  33. package/skills/eda-plan-polish/SKILL.md +51 -42
  34. package/skills/eda-plan-review/SKILL.md +89 -135
  35. package/skills/eda-plan-review-fix/SKILL.md +38 -63
  36. package/skills/eda-polish/SKILL.md +25 -35
  37. package/skills/eda-prepare-ai/SKILL.md +1 -1
  38. package/skills/eda-review/SKILL.md +18 -17
  39. package/skills/eda-roadmap/SKILL.md +5 -5
  40. package/skills/eda-send-review/SKILL.md +11 -11
  41. package/agents/eda-plan-review-api/agent.json +0 -9
  42. package/agents/eda-plan-review-api/prompt.md +0 -34
  43. package/agents/eda-plan-review-architecture/agent.json +0 -9
  44. package/agents/eda-plan-review-architecture/prompt.md +0 -34
  45. package/agents/eda-plan-review-database/agent.json +0 -9
  46. package/agents/eda-plan-review-database/prompt.md +0 -34
  47. package/agents/eda-plan-review-execution/agent.json +0 -9
  48. package/agents/eda-plan-review-execution/prompt.md +0 -34
  49. package/agents/eda-plan-review-feasibility/agent.json +0 -9
  50. package/agents/eda-plan-review-feasibility/prompt.md +0 -34
  51. package/agents/eda-plan-review-frontend/agent.json +0 -9
  52. package/agents/eda-plan-review-frontend/prompt.md +0 -34
  53. package/agents/eda-plan-review-performance/agent.json +0 -9
  54. package/agents/eda-plan-review-performance/prompt.md +0 -34
  55. package/agents/eda-plan-review-previous/agent.json +0 -9
  56. package/agents/eda-plan-review-previous/prompt.md +0 -28
  57. package/agents/eda-plan-review-requirements/agent.json +0 -9
  58. package/agents/eda-plan-review-requirements/prompt.md +0 -34
  59. package/agents/eda-plan-review-rules/agent.json +0 -9
  60. package/agents/eda-plan-review-rules/prompt.md +0 -34
  61. package/agents/eda-plan-review-security/agent.json +0 -9
  62. package/agents/eda-plan-review-security/prompt.md +0 -34
  63. package/agents/eda-plan-review-verification/agent.json +0 -9
  64. package/agents/eda-plan-review-verification/prompt.md +0 -34
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: eda-plan
3
- description: 'Создаёт подробный исполнимый план реализации задачи и сохраняет его в `docs/plans/`.'
3
+ description: 'Создаёт понятный исполнимый план реализации задачи перед началом разработки.'
4
4
  ---
5
5
 
6
6
  # Скил: Планировщик (eda-plan)
7
7
 
8
- Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, явно помечаешь зависимости задач и формируешь связные фазы для выполнения одним агентом. По настройкам запускаешь один специализированный `eda-plan-review`, при необходимости один `eda-plan-review-fix`, а в strict — независимую кросс-CLI проверку.
8
+ Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/artifacts/plans/` и делишь работу на фазы, каждую из которых один агент выполняет и проверяет за один проход. По настройкам запускаешь `eda-plan-polish`, а в strict — независимую кросс-CLI проверку.
9
9
 
10
10
  ## Режим запуска
11
11
 
@@ -28,11 +28,11 @@ description: 'Создаёт подробный исполнимый план р
28
28
 
29
29
  `test_strategy` обязан менять план: `tdd_each_phase` начинает каждую фазу с тестов, `after_each_phase` добавляет тесты после реализации каждой фазы, `end_of_plan` выносит тесты в отдельную финальную фазу. `logging_strategy` обязан отражаться в алгоритме, фазах и разделе `Логирование`.
30
30
 
31
- `без проверок` одновременно устанавливает `plan.review: false` и `plan.strict: false`. `plan.review` и `plan.strict` независимы: можно оставить только один вид проверки. Более конкретное прямое указание в том же сообщении имеет приоритет.
31
+ `без проверок` одновременно устанавливает `plan.review: false` и `plan.strict: false`. `plan.review` и `plan.strict` независимы.
32
32
 
33
33
  ## Вход из сообщения пользователя
34
34
 
35
- Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Разбери тему, задачу, путь к файлу, режим, ограничения и прямые указания.
35
+ Текст рядом с вызовом скила в текущем сообщении — главный вход. Разбери тему, задачу, путь к файлу, режим, ограничения и прямые указания.
36
36
 
37
37
  Если входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не ту задачу. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
38
38
 
@@ -42,43 +42,38 @@ description: 'Создаёт подробный исполнимый план р
42
42
 
43
43
  Существенные решения: новые зависимости, БД/ORM/очереди/кэш/storage/search, миграции, схемы таблиц, API и внешние контракты, auth/permissions/payments/secrets/персональные данные, cloud/provider/cost/lock-in/SLA, архитектурные паттерны и публичные контракты.
44
44
 
45
- Если research содержит подтверждённый ответ пользователя, не спрашивай повторно. Если есть только рекомендация агента, спрашивай в `recommend_and_ask` и `ask_each_time`.
45
+ Если research содержит подтверждённый ответ пользователя, не спрашивай повторно. Если задача меняет БД или API, проверь, подтверждены ли конкретные схемы таблиц и API-контракты; если конкретные схемы БД или API-контракты не подтверждены явно, получи подтверждение пользователя и не проектируй таблицы и маршруты молча внутри Plan Mode.
46
46
 
47
- Если задача меняет БД или API/внешний контракт, проверь, подтверждены ли конкретные схемы таблиц или API-контракты пользователем в текущем сообщении, правилах, архитектуре или research с подтверждённым ответом; если конкретные схемы БД или API-контракты не подтверждены явно, получи подтверждение пользователя и не проектируй таблицы и маршруты молча внутри Plan Mode.
48
-
49
- Когда инструкция говорит `AskUserQuestion`, это блокирующий вопрос:
50
-
51
- - Claude Code: используй `AskUserQuestion`.
52
- - Codex interactive: если доступен `request_user_input`, используй его; иначе задай один короткий вопрос в чат с вариантами 1–3 и остановись до ответа.
53
- - Codex exec / non-interactive: не читай stdin; если без ответа нельзя безопасно продолжать, заверши со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты.
54
- - Не запускай команды, которые ждут интерактивного ввода.
47
+ Блокирующий вопрос: Claude Code — `AskUserQuestion`; Codex interactive — `request_user_input` или короткий вопрос с вариантами; Codex exec — не читай stdin, заверши со статусом `blocked: нужен ответ пользователя`.
55
48
 
56
49
  ## Обязательные правила
57
50
 
58
- 1. Никаких правок кода, миграций, конфигов и зависимостей. Запись только в `docs/plans/`.
51
+ 1. Никаких правок кода, миграций, конфигов и зависимостей. Запись только в `docs/artifacts/plans/`.
59
52
  2. `docs/rules.md` и `docs/arch.md` — обязательная рамка планирования, а не справочный контекст. Прочитай их, выдели применимые правила и архитектурные ограничения, передай их в Plan Mode как обязательные требования.
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 и укажи её прямые зависимости. Собери каждую фазу вокруг одной связной цели и объёма, который один исполнитель может реализовать и проверить за один проход; слишком крупную или несвязную фазу раздели.
53
+ 3. Сначала определи задачу и затронутое поведение. Если есть `docs/business.md`, прочитай целиком только применимые карточки. Карточка задаёт требования к тому поведению, которое задача уже затрагивает; работу, которую пользователь не просил, она в план не добавляет. Если карточка описывает больше сценариев, чем затронуто задачей, остальные в план не идут.
54
+ 4. Если нужный пункт в них отсутствует, описан не полностью или задача расширяет существующее business-правило, добавь до соответствующей реализации отдельную фазу или пункт `Дополнить бизнесовые правила: <конкретная тема и изменение>`. Чисто техническое изменение без изменения целевого поведения этого не требует.
55
+ 5. Если есть `docs/references.md`, прочитай применимые карточки затронутых компонентов. Их кодовые примеры задают форму реализации.
56
+ 6. Конфликт запроса, research или черновика плана с применимой business-карточкой не разрешай молча и не финализируй план: покажи конфликт и через `AskUserQuestion` спроси, менять задачу или сначала пересогласовать правило через `eda-business`.
57
+ 7. План не отклоняется от `docs/rules.md`, `docs/arch.md` и карточек. Если нужное решение им противоречит, план сначала меняет сам документ: добавь отдельный пункт `Обновить правила` или `Обновить архитектуру: <тема и изменение>` до зависимой реализации. Отклонения «с причиной в докблоке» не бывает — она разводит код и документацию.
58
+ 8. Не переформулируй запрос пользователя перед Plan Mode: передавай оригинал, ответы на вопросы и найденную рамку.
59
+ 9. План сохраняется до любой включённой проверки.
60
+ 10. План фиксирует решения, границы, контракты и критерии приёмки. Он не фиксирует реализацию: сигнатуры чужих методов, формулы, приведения типов, порядок строк внутри метода, форму классов. Если утверждение можно проверить только запуском кода, оно относится к code review, а не к плану.
61
+ 11. Не пересказывай прозой то, что уже лежит рядом: правила, архитектуру и кодовые примеры карточек. Ссылайся на них.
62
+ 12. Один факт — одно место. Поведение описано в `Целевом алгоритме`, контракты — в `Контрактах реализации`, фаза на них опирается и не повторяет их.
63
+ 13. План доводится до первой точки, где результат можно запустить и проверить целиком. Дальше планируй следующей вехой, на фактах.
64
+ 14. Если нужны пакеты, библиотеки, CLI или сервисы, а версия не указана в контексте или lock-файлах, найди последнюю стабильную версию через context7 или web search. Не пиши `latest` без конкретной версии и источника.
65
+ 15. Финальный план прост, исполним и без альтернатив вида «выбрать», «решить», «можно так или так», «предпочтительно».
69
66
 
70
67
  ## Этапы
71
68
 
72
69
  ### 1. Собрать контекст
73
70
 
74
- - Разбери текущий вход и настройки.
75
- - Прочитай `docs/rules.md`, `docs/arch.md`, если они есть; выпиши применимые команды проверки, требования к тестам, границы модулей, зависимости, API, миграции, безопасность, документацию и локальные запреты.
76
- - Если есть `docs/business.md`, сначала установи границы задачи, затем по описаниям выбери только карточки затронутого поведения и выпиши применимые требования, сценарии и критерии приёмки. Если подходящих карточек нет, продолжай без business-контекста.
77
- - Если есть `docs/references.md`, выбери по индексу применимые карточки, прочитай их и выпиши обязательные элементы кодовых примеров.
78
- - Research подтягивай без вопроса, если путь указан; если в сообщении есть описание задачи без research-файла — используй описание как контекст и не спрашивай research автоматически. Если пользователь явно просит research, но файл не указал, предложи последние файлы из `docs/researches/` и вариант «нет».
79
- - Проверь версии нужных пакетов/ПО, если они не зафиксированы в запросе, правилах, архитектуре, research или lock/config-файлах.
71
+ - Разбери вход и настройки.
72
+ - Прочитай `docs/rules.md` и `docs/arch.md`; выпиши применимые команды проверки, требования к тестам, границы модулей, зависимости, миграции, безопасность и локальные запреты.
73
+ - Выбери и прочитай применимые карточки `docs/business.md` и `docs/references.md`. Нерелевантные не загружай.
74
+ - Research подтягивай без вопроса, если путь указан; если в сообщении есть описание задачи без research-файла, используй описание как контекст и не спрашивай research автоматически. Если пользователь явно просит research, но файл не указал, предложи последние файлы из `docs/artifacts/researches/` и вариант «нет».
75
+ - Проверь версии нужных пакетов, если они не зафиксированы.
80
76
  - Закрой существенные решения по `decision_mode`.
81
- - Для `short` оцени число фаз, файлов, строк diff и ревьюируемость за один проход.
82
77
 
83
78
  ### 2. Запустить Plan Mode
84
79
 
@@ -86,18 +81,18 @@ description: 'Создаёт подробный исполнимый план р
86
81
 
87
82
  1. Дословный запрос пользователя.
88
83
  2. `plan_size`, `decision_mode`, `test_strategy`, `logging_strategy`.
89
- 3. Все подтверждённые существенные решения и пары «вопрос → ответ».
90
- 4. Найденные версии пакетов/ПО и источники.
91
- 5. Пути к `docs/rules.md`, `docs/arch.md`, применимым карточкам, research и выписку обязательных элементов рамки.
92
- 6. Требование: план следует правилам, архитектуре и применимым эталонам с указанным приоритетом; при конфликте или необоснованном отклонении остановиться и спросить пользователя.
93
- 7. Требование: финальный план нормализуется в структуру ниже, не смешивает исследование с исполнением и не добавляет неподтверждённые существенные решения.
94
- 8. Требование: каждая задача получает уникальный ID и прямые зависимости, а каждая фаза образует связный объём работы для одного исполнителя.
84
+ 3. Подтверждённые существенные решения и пары «вопрос → ответ».
85
+ 4. Найденные версии пакетов и источники.
86
+ 5. Пути к `docs/rules.md`, `docs/arch.md`, применимым карточкам и research с выпиской обязательных требований рамки.
87
+ 6. Требование: план следует правилам, архитектуре и применимым эталонам. Если нужное решение им противоречит, план сначала меняет сам документ отдельным пунктом, а не отклоняется от него.
88
+ 7. Требование: план нормализуется в структуру ниже и делится на фазы, каждую из которых один агент выполняет и проверяет за один проход.
89
+ 8. Требование: конкретика не равна максимальной подробности. План описывает, что и зачем меняется, а не как это написать: не пересказывать запрос и существующий код, не повторять один контракт в нескольких разделах, не выдумывать пути, символы или API ради видимости конкретики. Реализацию задают `docs/rules.md`, `docs/arch.md` и карточки.
95
90
 
96
91
  Не выходи из Plan Mode, пока пользователь не подтвердил план.
97
92
 
98
93
  ### 3. Нормализовать и сохранить
99
94
 
100
- Сохрани подтверждённый план в `docs/plans/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Смысл решений не меняй без вопроса, но форму, порядок и ясность правь обязательно.
95
+ Сохрани подтверждённый план в `docs/artifacts/plans/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Смысл решений не меняй без вопроса, форму и ясность правь обязательно.
101
96
 
102
97
  ```markdown
103
98
  ---
@@ -108,8 +103,8 @@ plan_size: <normal | short>
108
103
  decision_mode: <autonomous | recommend_and_ask | ask_each_time>
109
104
  status: <draft | meta-reviewed | reviewed>
110
105
  reviewer: <pending | none | claude | codex>
111
- plan_review: <docs/plan-reviews/... | none>
112
- plan_review_fix: <docs/plan-review-fixes/... | none>
106
+ plan_review: <docs/artifacts/plan-reviews/... | none>
107
+ plan_review_fix: <docs/artifacts/plan-review-fixes/... | none>
113
108
  test_strategy: <after_each_phase | tdd_each_phase | end_of_plan>
114
109
  logging_strategy: <debug_precise | standard>
115
110
  sources:
@@ -123,131 +118,117 @@ sources:
123
118
  # План реализации
124
119
 
125
120
  ## Задача
126
- Коротко: что нужно реализовать и какой результат считается готовым.
121
+ Что нужно реализовать и какой результат считается готовым. Что в план не входит, если границу легко перепутать.
127
122
 
128
123
  ## Целевой алгоритм
129
- Сквозное поведение системы от входного события до финального состояния.
124
+ Сквозное поведение системы от входного события до финального состояния. Единственное место, где описано поведение. Состояния и переходы — таблицей, проза только для связок.
130
125
 
131
126
  ## Контракты реализации
132
127
 
133
128
  ### Данные и БД
134
- Если БД не меняется: `Не затрагивается`. Если меняется, укажи таблицы, поля, типы, обязательность, default, связи, индексы, unique, миграции, совместимость со старыми данными, backfill и rollback при необходимости.
129
+ Если БД не меняется: `Не затрагивается`. Иначе таблицы, поля, типы, обязательность, default, связи, индексы, unique, миграции, совместимость со старыми данными и rollback.
135
130
 
136
131
  ### API и внешние контракты
137
- Если API и внешние контракты не меняются: `Не затрагивается`. Если меняются, укажи метод и путь, auth/permissions, request/query/body, response, ошибки/status codes, webhooks/events/queues/внешние сервисы при наличии.
132
+ Если не меняются: `Не затрагивается`. Иначе метод и путь, auth/permissions, request/query/body, response, ошибки и status codes, события, очереди и внешние сервисы.
138
133
 
139
134
  ## Фазы выполнения
140
135
 
141
136
  ### 1. <Название фазы>
142
- Цель: <зачем нужна фаза>.
137
+ Цель: одно предложение — зачем нужна фаза.
143
138
 
144
- Что сделать:
145
- - `[1.1]` <конкретная задача>. Зависит от: `—`.
146
- - `[1.2]` <конкретная задача>. Зависит от: `[1.1]`.
147
- - `[1.3]` <конкретная задача>. Зависит от: `[1.2]`.
139
+ Что сделать: несколько предложений — что появляется в системе и как части связаны между собой. Не как это писать.
148
140
 
149
- Результат: <готовое состояние>.
150
-
151
- Сценарии тестирования:
152
- - <сценарии>
141
+ Результат: проверяемое состояние системы после фазы.
153
142
 
154
143
  Проверка:
155
- - <команда или критерий>
144
+ - команда или критерий готовности.
156
145
 
157
146
  ## Тесты
158
- Стратегия: <как применён test_strategy>.
147
+ Стратегия и сценарии по поведению — в одном месте, а не внутри каждой фазы.
159
148
 
160
149
  ## Логирование
161
- Стратегия: <как применён logging_strategy>.
150
+ Стратегия, уровни, обязательные поля и что писать запрещено.
162
151
 
163
152
  ## Документация и эксплуатация
164
- Что обновить в env/docs/runbook и что важно для релиза.
165
- ```
153
+ Что обновить в env, docs, runbook и что важно для релиза.
166
154
 
167
155
  ## Принятые решения
168
- Выбранные архитектурные и продуктовые решения без вариантов. Для существенных решений укажи источник подтверждения: ответ пользователя, research с ответом пользователя или `decision_mode: autonomous` с причиной. Для `short` укажи ожидаемый объём.
156
+ Выбранные решения без вариантов. Для существенных — источник подтверждения: ответ пользователя, research или `autonomous` с причиной.
157
+ ```
169
158
 
170
159
  Правила структуры:
171
160
 
172
- - Риски не выносятся в отдельный обязательный раздел; закрытые риски встраиваются в решения, фазы, сценарии тестирования, проверки, логирование или эксплуатацию.
173
- - Отдельный раздел порядка выполнения не нужен: основной поток задаётся номерами фаз, ID задач и их зависимостями.
174
- - ID задачи имеет формат `[<номер фазы>.<номер задачи>]` и уникален во всём плане. В `Зависит от` перечисляй только прямые зависимости; `—` означает, что задачу можно начинать независимо от других задач плана.
175
- - Одну фазу целиком выполняет один изолированный субагент `eda-plan-execute`. Задачи фазы должны относиться к общей цели, иметь согласованный scope и помещаться в один исполнительский проход вместе с точечными и фазовыми проверками.
176
- - В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты; если область не затрагивается, напиши `Не затрагивается`.
177
- - В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
178
- - Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай plan-review до ответа пользователя.
161
+ - Задач с идентификаторами внутри фаз нет. Порядок фаз задаёт порядок работы.
162
+ - Фаза — это цель, что сделать, результат и проверка. Ничего больше.
163
+ - В `Что сделать` пиши связным текстом, а не перечнем файлов: должно быть видно, как части работают вместе. Каждое предложение говорит, что появится, как это связано с остальным или чем ограничено. Если её удаление ничего из этого не меняет, удали её из плана.
164
+ - В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха и ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
165
+ - Не описывай в фазе то, что уже зафиксировано в `Целевом алгоритме`, `Контрактах` или `Принятых решениях`: сошлись на них.
166
+ - Риски и порядок выполнения отдельными разделами не выносятся: закрытые риски встраиваются в решения, фазы, тесты и проверки.
167
+ - Раздела `Открытые вопросы` в плане нет. Незакрытая развилка — это блокирующий вопрос пользователю до сохранения, а не пункт в файле.
179
168
 
180
169
  Quality gate перед сохранением и после каждой включённой проверки:
181
170
 
182
- - есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и БД`, `API и внешние контракты`;
183
- - применимые business-карточки выбраны только после определения scope задачи, записаны в `sources.business` и отражены в поведении и критериях приёмки;
184
- - план строго следует `docs/rules.md` и `docs/arch.md`;
185
- - план следует применимым reference-карточкам или явно фиксирует подтверждённую причину отклонения;
186
- - нет конфликтов с правилами, архитектурой, границами модулей, API, миграциями, зависимостями и командами проверки;
187
- - БД/API изменения описаны конкретно, а не общими словами;
188
- - каждая фаза имеет цель, шаги, результат, сценарии тестирования и проверку;
189
- - каждая задача имеет уникальный ID и прямые зависимости, ссылки на ID существуют, а каждая фаза связна и выполнима одним агентом за один проход;
190
- - `test_strategy` и `logging_strategy` применены в фазах и отдельных разделах;
191
- - для `short` не больше 2 фаз и явно указан ожидаемый объём;
192
- - пакеты/ПО имеют конкретные версии или ссылку на существующий lock/config;
193
- - нет неподтверждённых существенных решений и неразрешённых альтернатив;
171
+ - есть `Целевой алгоритм` и `Контракты реализации` с обоими подразделами;
172
+ - применимые business-карточки выбраны после определения scope, записаны в `sources.business` и отражены в критериях приёмки;
173
+ - каждый отсутствующий, неполный или расширяемый пункт целевого поведения покрыт отдельной задачей `Дополнить бизнесовые правила` до зависимой реализации; для чисто технических изменений такая задача не добавлена;
174
+ - план строго следует `docs/rules.md` и `docs/arch.md`, а также применимым reference-карточкам; там, где нужно другое поведение, есть отдельный пункт на изменение самого документа до зависимой реализации;
175
+ - каждая фаза имеет цель, что сделать, результат и проверку и выполнима одним агентом за один проход;
176
+ - в фазах нет сигнатур, формул, приведений типов и пересказа карточек;
177
+ - ни один факт не описан в двух разделах;
178
+ - `test_strategy` и `logging_strategy` применены;
179
+ - пакеты имеют конкретные версии или ссылку на существующий lock;
180
+ - нет неподтверждённых существенных решений, неразрешённых альтернатив и открытых вопросов;
181
+ - нет общих призывов, повторов и пояснений, удаление которых не меняет действия, контракты, проверки или принятые решения;
182
+ - объём: `normal` — не больше 40 КБ, `short` — не больше 12 КБ и 2 фаз. Это стоп, а не цель: план настолько короткий, насколько позволяет однозначность. При превышении раздели план по вехам и предложи пользователю первую;
194
183
  - план можно передать в `eda-plan-execute` без нового исследования.
195
184
 
196
- ### 4. Специализированный plan-review и один fix
197
-
198
- Если `plan.review: false`, пропусти этап, оставь `plan_review: none`, `plan_review_fix: none` и перейди к strict-этапу или финалу. Не запускай старое общее мета-ревью.
185
+ ### 4. Полировка плана
199
186
 
200
- Если `plan.review: true`, каждый вложенный скил запускай в отдельном изолированном субагенте с чистым контекстом. Основной планировщик не делает их работу. При недоступности нативных субагентов остановись; не используй CLI-fallback для этого этапа.
187
+ Если `plan.review: false`, пропусти этап, оставь `plan_review: none`, `plan_review_fix: none` и перейди дальше.
201
188
 
202
- 1. Запусти один `eda-plan-review`:
189
+ Иначе запусти `eda-plan-polish` в отдельном изолированном субагенте с чистым контекстом. Основной планировщик не делает review или fix сам.
203
190
 
204
- ```text
205
- Используй eda-plan-review для <PLAN_FILE>.
206
- Исходная задача и решения: <текущий запрос и ответы пользователя>.
207
- Верни путь к review, status, score, threshold и required/optional ID.
208
- ```
191
+ 1. Запусти один `eda-plan-polish`:
209
192
 
210
- 2. Если review имеет `status: ready`, обнови front matter: `status: reviewed`, `plan_review: <REVIEW_FILE>`, `plan_review_fix: none`. Содержательных правок не делай.
211
- 3. Если review имеет `status: changes-required`, запусти ровно один новый изолированный субагент:
212
-
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
- ```
193
+ ```text
194
+ Используй eda-plan-polish для <PLAN_FILE>.
195
+ Исходная задача и решения: <текущий запрос и ответы пользователя>.
196
+ Верни результат, последний review/fix, score, threshold и открытые ID.
197
+ ```
218
198
 
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` передай один конкретный вопрос пользователю и продолжи тот же вложенный шаг после ответа.
199
+ Проверь артефакты и снова прогони quality gate. При `ready` убедись, что front matter содержит `status: reviewed` и последние пути review/fix. Содержательных правок сам не делай. При limit, отсутствии прогресса или `blocked` не выдавай план за подтверждённый.
221
200
 
222
- `meta-reviewed` означает один review и один неперепроверенный fix и остаётся допустимым входом для `eda-plan-execute`. Подтверждённый gate после fix выполняет отдельный `eda-plan-polish`.
201
+ При недоступности нативных субагентов остановись; не используй CLI-fallback для этого этапа.
223
202
 
224
- ### 5. Strict: кросс-CLI и допил
203
+ ### 5. Strict: кросс-CLI
225
204
 
226
- `plan.strict` не зависит от `plan.review`. Обычный режим пропускает этот этап. В `strict` отдай файл соседнему CLI:
205
+ `plan.strict` не зависит от `plan.review`. Обычный режим этап пропускает. В `strict` отдай файл соседнему CLI:
227
206
 
228
207
  ```bash
229
- codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, нарушения бизнес-требований, неучтённые зависимости, нарушения правил, архитектуры и эталонов, необоснованные отклонения, скрытые риски, недостающие тесты и шаги без критериев готовности. Список '- [тип] описание — что предлагаешь'." > "${PLAN_FILE%.md}_review.md"
208
+ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md и применимые карточки из sources. Проверь план по релевантному коду: открой файлы, модули и тесты, которые следуют из плана, и оцени фактическую реализуемость. Верни только конкретные ошибки, которые обязательно исправить: место, доказательство, риск и минимальную правку. Не предлагай расширение текста и стилистику. Список '- [тип] описание — что исправить'." > "${PLAN_FILE%.md}_review.md"
230
209
  ```
231
210
 
232
211
  Если ты в Codex — запускай `claude -p` с тем же заданием. Если соседней CLI нет, спроси, продолжать без ревью или прервать.
233
212
 
234
- Бесспорные замечания внеси в план, спорные вынеси через `AskUserQuestion`, отклонённые зафиксируй с причиной в `## Реакция на ревью`. Поменяй `status: draft` или `status: meta-reviewed` на `reviewed`, покажи дифф.
213
+ Бесспорные замечания внеси в план, спорные вынеси через `AskUserQuestion`, отклонённые зафиксируй с причиной в `## Реакция на ревью`. Поставь `status: reviewed`, покажи дифф.
235
214
 
236
215
  ### 6. Финал
237
216
 
238
- Коротко сообщи режим, выполнялись ли plan-review/fix и strict, путь к плану, пути к plan-review/plan-review-fix и strict-review при наличии, итоговый status, 3–5 главных шагов и что дальше делает `eda-plan-execute`. Для `meta-reviewed` явно укажи, что подтверждающий gate выполняет `eda-plan-polish`.
217
+ Коротко сообщи режим, выполнялись ли polish и strict, путь к плану, пути к последним артефактам проверок, итоговый статус, открытые вопросы, 3–5 главных шагов и что дальше делает `eda-plan-execute`.
239
218
 
240
219
  ## Чего НЕ делать
241
220
 
242
221
  - Править код, миграции, конфиги или зависимости.
243
222
  - Считать `docs/rules.md` и `docs/arch.md` просто контекстом для ознакомления.
244
- - Игнорировать применимую карточку или молча отклоняться от её примера.
245
- - Сохранять план, который противоречит правилам или архитектуре проекта.
246
- - Обходить правило или архитектурное ограничение без явного решения пользователя.
247
- - Задавать вопросы без блокировки и продолжать до ответа.
248
- - Переформулировать запрос пользователя своими словами перед Plan Mode.
223
+ - Писать в план сигнатуры чужих методов, формулы, приведения типов и форму классов.
224
+ - Пересказывать прозой правила, архитектуру и кодовые примеры карточек.
225
+ - Отклоняться от правил и архитектуры «с причиной» вместо того, чтобы менять сам документ.
226
+ - Разбивать фазы на задачи с идентификаторами и графом зависимостей.
227
+ - Повторять один факт в нескольких разделах.
228
+ - Планировать дальше первой проверяемой вехи и добивать план до потолка объёма.
229
+ - Переформулировать запрос пользователя перед Plan Mode.
249
230
  - Сохранять сырой текст Plan Mode без нормализации.
250
- - Оставлять финальный план исследованием, списком наблюдений или журналом мета-ревью.
251
- - Смешивать альтернативы с принятыми решениями.
252
- - Выполнять plan-review или plan-review-fix основным агентом, запускать старые три общих ревьюера или делать второй review внутри `eda-plan`.
231
+ - Оставлять план исследованием, списком наблюдений или журналом ревью.
232
+ - Сохранять план с открытыми вопросами вместо того, чтобы задать их пользователю.
233
+ - Выполнять plan-review, plan-review-fix или plan-polish основным агентом.
253
234
  - Пропускать кросс-CLI молча в `strict`: если CLI нет, спроси.