@gian-tiaga/eda 2.1.0 → 3.1.1

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