@gian-tiaga/eda 2.0.0 → 2.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 (43) hide show
  1. package/MIGRATION.md +5 -3
  2. package/README.md +18 -19
  3. package/agents/eda-plan-review-api/prompt.md +5 -4
  4. package/agents/eda-plan-review-architecture/prompt.md +5 -4
  5. package/agents/eda-plan-review-database/prompt.md +5 -4
  6. package/agents/eda-plan-review-execution/agent.json +1 -1
  7. package/agents/eda-plan-review-execution/prompt.md +5 -4
  8. package/agents/eda-plan-review-feasibility/prompt.md +5 -4
  9. package/agents/eda-plan-review-frontend/prompt.md +5 -4
  10. package/agents/eda-plan-review-performance/prompt.md +5 -4
  11. package/agents/eda-plan-review-previous/agent.json +1 -1
  12. package/agents/eda-plan-review-previous/prompt.md +5 -5
  13. package/agents/eda-plan-review-requirements/prompt.md +5 -4
  14. package/agents/eda-plan-review-rules/prompt.md +5 -4
  15. package/agents/eda-plan-review-security/prompt.md +5 -4
  16. package/agents/eda-plan-review-verification/prompt.md +5 -4
  17. package/agents/eda-review-api/prompt.md +4 -3
  18. package/agents/eda-review-architecture/prompt.md +4 -3
  19. package/agents/eda-review-business/prompt.md +4 -3
  20. package/agents/eda-review-code-quality/prompt.md +5 -4
  21. package/agents/eda-review-correctness/prompt.md +4 -3
  22. package/agents/eda-review-database/prompt.md +4 -3
  23. package/agents/eda-review-documentation/prompt.md +4 -3
  24. package/agents/eda-review-frontend/prompt.md +4 -3
  25. package/agents/eda-review-performance/prompt.md +4 -3
  26. package/agents/eda-review-plan-alignment/prompt.md +4 -3
  27. package/agents/eda-review-previous-reviews/prompt.md +5 -4
  28. package/agents/eda-review-references/prompt.md +4 -3
  29. package/agents/eda-review-rules/prompt.md +4 -3
  30. package/agents/eda-review-security/prompt.md +4 -3
  31. package/agents/eda-review-tests/prompt.md +4 -3
  32. package/lib/install.js +3 -3
  33. package/package.json +1 -1
  34. package/skills/eda-business/SKILL.md +47 -32
  35. package/skills/eda-fix-by-review/SKILL.md +41 -58
  36. package/skills/eda-orhestra/SKILL.md +1 -1
  37. package/skills/eda-plan/SKILL.md +18 -23
  38. package/skills/eda-plan-polish/SKILL.md +12 -12
  39. package/skills/eda-plan-review/SKILL.md +25 -24
  40. package/skills/eda-plan-review-fix/SKILL.md +22 -39
  41. package/skills/eda-polish/SKILL.md +19 -31
  42. package/skills/eda-review/SKILL.md +8 -16
  43. package/skills/eda-send-review/SKILL.md +7 -7
@@ -5,80 +5,72 @@ description: 'Исправляет код по готовому ревью из
5
5
 
6
6
  # Скил: Исправитель по ревью (eda-fix-by-review)
7
7
 
8
- Берёшь готовое ревью из `docs/reviews/`, применяешь замечания к коду, сохраняешь отчёт о фиксах в `docs/review-fixes/`. После всех правок — полный прогон тестов и линтеров.
8
+ Берёшь готовое ревью из `docs/reviews/` или сообщения, применяешь все находки к коду и сохраняешь отчёт в `docs/review-fixes/`. После правок выполняешь полный прогон тестов и линтеров.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
12
- Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, задачу, путь к файлу, режим, ограничения и прямые указания.
12
+ Текст рядом с вызовом скилла в текущем сообщении — главный вход. Сначала разбери тему, задачу, путь к файлу, номера замечаний, ограничения и прямые указания. Если входа достаточно, продолжай без вопроса. Старое обсуждение не считай входом, если пользователь явно не связал его с текущим вызовом.
13
13
 
14
- Если этого входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не ту задачу. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
15
-
16
- ## Режим запуска
17
-
18
- Обычный режим: все пункты «Править обязательно» применяешь сразу, «На усмотрение автора» выносишь через `AskUserQuestion`, «Не править» пропускаешь.
19
-
20
- Режим `apply-optional`: все пункты «Править обязательно» применяешь без исключений. По каждому пункту «На усмотрение автора» сам принимаешь решение без вопроса: применяешь, если правка явно улучшает качество, снижает риск или стоит дёшево; отклоняешь, если польза спорная, правка расширяет scope, создаёт риск регрессии, конфликтует с правилами/архитектурой или требует продуктового решения. Название режима означает «разобрать optional без вопроса», а не «механически применить все optional». Пункты «Не править» всё равно пропускаешь.
14
+ У нового формата ревью одна группа находок: каждый пункт обязательно исправить. Режимов выбора рекомендаций нет. Если дан старый файл с разделами `Править обязательно`, `На усмотрение автора` и `Не править`, применяй только пункты из `Править обязательно`; остальные старые предложения не переноси в работу и отчёт.
21
15
 
22
16
  ## Главные правила
23
17
 
24
- 1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`. Сначала определи замечания и затронутое ими поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов. Если подходящих business-карточек нет, продолжай без них. Сделай это один раз в начале.
25
- 2. **Интерактивные вопросы** — по разделу ниже.
26
- 3. **Не переформулируй замечания.** Применяй то, что написано в ревью. Если непонятно — спроси через `AskUserQuestion`.
27
- 4. **Не делаешь само ревью и не коммитишь.** Только применяешь замечания и пишешь отчёт.
28
- 5. **Логика по группам ревью:** «Править обязательно» — правишь все сразу; «На усмотрение автора» — спроси через `AskUserQuestion`, кроме режима `apply-optional`, где сам решаешь применить или отклонить; «Не править» — пропускаешь и отмечаешь в отчёте.
29
- 6. **Тесты — внутри той же правки.** Замечание касается поведения → правка кода + тесты к ней в одном шаге, точечно прогнал.
30
- 7. **Финальный полный прогон тестов и линтеров — обязателен.** В конце, не на каждой правке.
31
- 8. **Простой язык** в формулировках и сообщениях. **Таблицы** для отчёта о фиксах.
18
+ 1. Перед правкой прочитай `docs/rules.md` и `docs/arch.md`. Определи замечания и затронутое поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов.
19
+ 2. Применяй все выбранные находки. Не переоценивай их полезность и не превращай исправление в более широкий рефакторинг.
20
+ 3. Задавай вопрос только если находка неоднозначна, противоречит коду или обязательной документации, требует продуктового решения, расширяет scope либо ведёт к рискованному действию. В остальных случаях работай автономно.
21
+ 4. Не делай новое ревью и не коммить. Только исправляй замечания и пиши отчёт.
22
+ 5. Если находка касается поведения, добавь или обнови точечный тест в той же правке и прогони его.
23
+ 6. В конце обязательно прогони полный набор тестов и линтеров один раз.
24
+ 7. Пиши просто и конкретно; в отчёте используй таблицу.
32
25
 
33
26
  ## Интерактивные вопросы
34
27
 
35
- Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
28
+ Когда без ответа нельзя безопасно продолжать:
29
+
36
30
  - Claude Code: используй `AskUserQuestion`.
37
- - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
38
- - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
39
- - Не запускай команды, которые ждут интерактивного ввода в терминале; перед такими командами спроси в хост-интерфейсе или остановись с `blocked`.
40
- - Для исправления кода это правило важнее требования довести фиксы до конца: не применяй пункты «на усмотрение автора» без ответа пользователя, кроме явного режима `apply-optional`, где решение принимает сам агент; не переформулируй замечания и не правь чужие/несвязанные поломки вместо ответа пользователя.
31
+ - Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 2–3 вариантами и остановись до ответа.
32
+ - Codex exec и другой неинтерактивный запуск: не читай stdin; верни `blocked: нужен ответ пользователя`, перечисли вопрос и варианты, не выполняй рискованное действие.
33
+
34
+ Не запускай команды, которые ждут интерактивного ввода в терминале. Вопрос не разрешает молча заменить находку другой правкой или исправлять несвязанные поломки.
41
35
 
42
36
  ## Этапы
43
37
 
44
38
  ### 1. Выбрать ревью
45
- Сначала разбери текст рядом с вызовом: путь к ревью, название или часть названия, «последнее ревью», номера замечаний или вставленный текст замечаний. Если замечания вставлены в сообщение — используй режим `$REVIEW_SOURCE=review_text`, не выбирай файл ревью и сохрани отчёт с `review: text`.
46
39
 
47
- Если найдено ровно одно ревью — используй режим `$REVIEW_SOURCE=review_file` и продолжай без вопроса. Если замечания даны текстом — используй режим `$REVIEW_SOURCE=review_text` и продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста и вход не содержит замечания — остановись с понятным вопросом или статусом `blocked: нужно ревью`.
40
+ Разбери путь к ревью, название, «последнее ревью», номера находок или вставленный текст. Для текста используй `$REVIEW_SOURCE=review_text`, не выбирай файл и сохраняй отчёт с `review: text`.
41
+
42
+ Если найден ровно один файл, используй `$REVIEW_SOURCE=review_file`. Если найдено несколько равно подходящих файлов или входа нет, задай один вопрос со списком. Если `docs/reviews/` пуста и текст замечаний не дан, остановись с `blocked: нужно ревью`.
48
43
 
49
44
  ### 2. Прочитать контекст
50
- Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Если связанный план содержит `sources.business`, прочитай только перечисленные карточки, относящиеся к исправляемым замечаниям; иначе выбери их по описаниям через `docs/business.md`. Отсутствие подходящей карточки не является блокером. Через `docs/references.md` выбери только применимые технические карточки. Если связанный план содержит `sources.references`, прочитай перечисленные карточки и не загружай остальные.
51
45
 
52
- Если `$REVIEW_SOURCE=review_file`, прочитай сам файл ревью. Если ревью ссылается на план/research — прочитай и их.
46
+ Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Для исправляемого поведения выбери только применимые business-карточки и технические reference-карточки. Если связанный план уже задаёт `sources.business` или `sources.references`, используй относящиеся к находкам пути из этих списков.
47
+
48
+ При `$REVIEW_SOURCE=review_file` прочитай ревью целиком, а также явно связанные план и research. При `$REVIEW_SOURCE=review_text` работай по текущему сообщению. Файла ревью нет: не пытайся читать `$REVIEW_FILE` и не ищи план или research без явной ссылки.
53
49
 
54
- Если `$REVIEW_SOURCE=review_text`, работай по замечаниям из текущего сообщения пользователя. Файла ревью нет: не пытайся читать `$REVIEW_FILE` и не ищи связанные plan/research, если они не указаны в тексте.
50
+ ### 3. Применить находки
55
51
 
56
- ### 3. Применить замечания
57
- Раздели пункты ревью по группам (берёшь из раздела «Рекомендации»):
58
- - **Править обязательно** → правишь все пункты сразу. Если меняешь поведение — добавь точечный тест в этой же правке.
59
- - **На усмотрение автора** → в обычном режиме собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя; в режиме `apply-optional` сам реши по каждому пункту, применяй только принятые решения без вопроса, а отклонённые фиксируй с причиной.
60
- - **Не править** → пропусти.
52
+ Исправь все находки нового формата либо выбранные пользователем номера. Для старого формата возьми только пункты из `Править обязательно`. Делай минимальную достаточную правку и точечную проверку после каждого логического изменения.
61
53
 
62
- Останавливайся и спрашивай, если замечание непонятно, противоречит коду или проектной документации либо задевает рискованное вне ревью (удаление, миграции, секреты). Если исправление противоречит применимой business-карточке, покажи конфликт и спроси: изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Не разрешай такой конфликт автоматически даже в `apply-optional`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
54
+ Остановись с вопросом при неоднозначности, конфликте с правилами, архитектурой или business-карточкой, необходимости расширить scope либо выполнить рискованное действие. При конфликте с business-карточкой предложи изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
63
55
 
64
56
  ### 4. Финальная проверка
65
- Прогони полный сьют тестов и линтеры. Команды — стандартные для стека; непонятно — `AskUserQuestion`. Свои поломки — правишь и повторяешь. Чужие/несвязанные — `AskUserQuestion`.
66
57
 
67
- ### 5. Сохранить отчёт о фиксах и связать с ревью
68
- Сохрани отчёт в `docs/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md` (slug — тот же что у ревью или близкий). Если `$REVIEW_SOURCE=review_file`, затем **допиши в конец файла ревью** (`$REVIEW_FILE`) раздел со ссылкой:
58
+ Прогони полный сьют тестов и линтеры стандартными командами проекта. Свои поломки исправь и повтори проверку. При чужой или несвязанной ошибке остановись с конкретным блокером.
59
+
60
+ ### 5. Сохранить отчёт и связать с ревью
61
+
62
+ Сохрани `docs/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Если `$REVIEW_SOURCE=review_file`, допиши в конец `$REVIEW_FILE`:
69
63
 
70
64
  ```markdown
71
65
  ## Применённые фиксы
72
66
  Отчёт: `docs/review-fixes/{file}.md`
73
67
  ```
74
68
 
75
- Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью: такого файла нет. В отчёте укажи `review: text`.
76
-
77
- Шаблон отчёта:
69
+ Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью: исходного файла нет.
78
70
 
79
71
  ```markdown
80
72
  ---
81
- review: <путь к docs/reviews/...>
73
+ review: <docs/reviews/... | text>
82
74
  date: <YYYY-MM-DD HH:MM>
83
75
  status: done
84
76
  ---
@@ -89,13 +81,6 @@ status: done
89
81
  | # | Замечание | Файлы | Тесты | Статус |
90
82
  |---|-----------|-------|-------|--------|
91
83
  | 1 | <кратко из ревью> | `path/a.py` | `path/test_a.py` (2 ✓) | ✓ применено |
92
- | 2 | ... | ... | — | ✓ применено |
93
- | 3 | ... | — | — | ✗ отклонено (на усмотрение, причина: <короткое обоснование>) |
94
- | 4 | ... | — | — | — не править (по решению ревью) |
95
-
96
- ## Решения по optional
97
- - **Принято:** <номера и коротко почему>
98
- - **Отклонено:** <номера и коротко почему, чтобы следующие ревьюеры не повторяли это как открытое замечание>
99
84
 
100
85
  ## Финальная проверка
101
86
  - **Тесты:** `<команда>` — ✓ / ✗
@@ -103,18 +88,16 @@ status: done
103
88
  - **Заметки:** <если что-то осталось не зелёным — почему>
104
89
  ```
105
90
 
106
- Если `$REVIEW_SOURCE=review_file` и в режиме `apply-optional` отклонены пункты «На усмотрение автора», в добавляемом в ревью разделе `## Применённые фиксы` после ссылки на отчёт добавь короткий список `Отклонённые optional-решения` с причинами. Это нужно, чтобы следующие ревьюеры видели уже принятое решение и не повторяли тот же optional-пункт без новых аргументов.
107
-
108
91
  ### 6. Финал
109
- Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к отчёту о фиксах, сколько применено / пропущено / отклонено, результат финальной проверки, состояние git («не закоммичено»). Подсказка дальше — `eda-commit`.
92
+
93
+ Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к fix-отчёту, сколько находок применено, результат финальной проверки и состояние git «не закоммичено». Предложи `eda-commit`.
110
94
 
111
95
  ## Чего НЕ делать
96
+
112
97
  - Делать само ревью — это `eda-review`.
113
- - Коммитить, пушить — это `eda-commit`.
114
- - Применять или отклонять «на усмотрение» молча без явного режима `apply-optional` или ответа пользователя.
115
- - Игнорировать «не править» и пробовать «на всякий случай» — это нарушает решение ревью.
116
- - Гонять полный сьют и линтеры на каждой правке — только в конце.
117
- - Пропускать финальную проверку.
118
- - Сохранять отчёт куда-либо кроме `docs/review-fixes/`.
119
- - Загружать несвязанные business-карточки или расширять ими состав исправлений.
120
- - Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
98
+ - Коммитить или пушить — это `eda-commit`.
99
+ - Выбирать, какие находки достойны исправления: принятая находка уже обязательна.
100
+ - Расширять scope ради улучшений, которых нет в находках.
101
+ - Гонять полный сьют после каждого пункта или пропускать финальную проверку.
102
+ - Сохранять отчёт вне `docs/review-fixes/`.
103
+ - Загружать несвязанные business-карточки или молча отклоняться от применимого правила.
@@ -119,7 +119,7 @@ orhestra:
119
119
  1. Запусти скилл с подготовленным вводом.
120
120
  2. Обработай его вопрос по режиму.
121
121
  3. Прочитай сохранённый артефакт и явный статус. `blocked`, неполный обязательный результат или непройденная обязательная проверка останавливают цепочку.
122
- 4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings` и `score >= threshold`; отдельного polish-файла нет.
122
+ 4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean`, без находок и с `score >= threshold`; отдельного polish-файла нет.
123
123
  5. Для успешного шага сохрани все пути и передай их следующему.
124
124
 
125
125
  Если `eda-manual-test` вернул `failed`:
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: eda-plan
3
- description: 'Создаёт подробный исполнимый план реализации задачи и сохраняет его в `docs/plans/`.'
3
+ description: 'Создаёт конкретный исполнимый план реализации задачи и сохраняет его в `docs/plans/`.'
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/plans/`, явно помечаешь зависимости задач и формируешь связные фазы для выполнения одним агентом. По настройкам запускаешь специализированный цикл `eda-plan-polish`, а в strict — независимую кросс-CLI проверку.
9
9
 
10
10
  ## Режим запуска
11
11
 
@@ -66,6 +66,7 @@ description: 'Создаёт подробный исполнимый план р
66
66
  9. Если нужны пакеты, библиотеки, CLI, сервисы или другое ПО, а версия не указана в контексте или lock/config-файлах, найди последнюю стабильную версию через context7 или web search по официальным источникам. Не пиши `latest` без конкретной версии и источника.
67
67
  10. Если выбран `plan.size: short`, но задача не укладывается в ограничения, не сохраняй short-план: объясни причину, оцени нужный объём и спроси, продолжать в `normal` или сузить задачу.
68
68
  11. Каждой задаче в фазах присвой уникальный ID и укажи её прямые зависимости. Собери каждую фазу вокруг одной связной цели и объёма, который один исполнитель может реализовать и проверить за один проход; слишком крупную или несвязную фазу раздели.
69
+ 12. Пиши конкретно и без воды. Каждая формулировка должна определять действие, место изменения, поведение или контракт, зависимость, проверку либо существенное принятое решение. Если её удаление ничего из этого не меняет, удали её из плана.
69
70
 
70
71
  ## Этапы
71
72
 
@@ -92,6 +93,7 @@ description: 'Создаёт подробный исполнимый план р
92
93
  6. Требование: план следует правилам, архитектуре и применимым эталонам с указанным приоритетом; при конфликте или необоснованном отклонении остановиться и спросить пользователя.
93
94
  7. Требование: финальный план нормализуется в структуру ниже, не смешивает исследование с исполнением и не добавляет неподтверждённые существенные решения.
94
95
  8. Требование: каждая задача получает уникальный ID и прямые зависимости, а каждая фаза образует связный объём работы для одного исполнителя.
96
+ 9. Требование: конкретика не равна максимальной подробности. Не пересказывать запрос и существующий код, не повторять один контракт в нескольких разделах, не добавлять очевидные пояснения и не выдумывать пути, символы или API ради видимости конкретики.
95
97
 
96
98
  Не выходи из Plan Mode, пока пользователь не подтвердил план.
97
99
 
@@ -175,6 +177,8 @@ sources:
175
177
  - Одну фазу целиком выполняет один изолированный субагент `eda-plan-execute`. Задачи фазы должны относиться к общей цели, иметь согласованный scope и помещаться в один исполнительский проход вместе с точечными и фазовыми проверками.
176
178
  - В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты; если область не затрагивается, напиши `Не затрагивается`.
177
179
  - В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
180
+ - Не дублируй один и тот же контракт, решение или критерий между разделами. Зафиксируй его в наиболее подходящем месте, а в задачах укажи только действие, которое опирается на него.
181
+ - Не пересказывай задачу, кодовую базу и очевидные механические шаги. Оставляй только сведения, которые меняют реализацию или способ её проверки; точные пути и символы указывай только когда они подтверждены контекстом.
178
182
  - Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай plan-review до ответа пользователя.
179
183
 
180
184
  Quality gate перед сохранением и после каждой включённой проверки:
@@ -191,42 +195,33 @@ Quality gate перед сохранением и после каждой вкл
191
195
  - для `short` не больше 2 фаз и явно указан ожидаемый объём;
192
196
  - пакеты/ПО имеют конкретные версии или ссылку на существующий lock/config;
193
197
  - нет неподтверждённых существенных решений и неразрешённых альтернатив;
198
+ - нет общих призывов, повторов и пояснений, удаление которых не меняет действия, контракты, зависимости, проверки или принятые решения;
194
199
  - план можно передать в `eda-plan-execute` без нового исследования.
195
200
 
196
- ### 4. Специализированный plan-review и один fix
201
+ ### 4. Специализированная полировка плана
197
202
 
198
203
  Если `plan.review: false`, пропусти этап, оставь `plan_review: none`, `plan_review_fix: none` и перейди к strict-этапу или финалу. Не запускай старое общее мета-ревью.
199
204
 
200
- Если `plan.review: true`, каждый вложенный скил запускай в отдельном изолированном субагенте с чистым контекстом. Основной планировщик не делает их работу. При недоступности нативных субагентов остановись; не используй CLI-fallback для этого этапа.
205
+ Если `plan.review: true`, запусти `eda-plan-polish` в отдельном изолированном субагенте с чистым контекстом. Основной планировщик не делает review или fix. При недоступности нативных субагентов остановись; не используй CLI-fallback для этого этапа.
201
206
 
202
- 1. Запусти один `eda-plan-review`:
207
+ 1. Запусти один `eda-plan-polish`:
203
208
 
204
209
  ```text
205
- Используй eda-plan-review для <PLAN_FILE>.
210
+ Используй eda-plan-polish для <PLAN_FILE>.
206
211
  Исходная задача и решения: <текущий запрос и ответы пользователя>.
207
- Верни путь к review, status, score, threshold и required/optional ID.
212
+ Верни результат, последний review/fix, score, threshold и открытые ID.
208
213
  ```
209
214
 
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
- ```
218
-
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` передай один конкретный вопрос пользователю и продолжи тот же вложенный шаг после ответа.
221
-
222
- `meta-reviewed` означает один review и один неперепроверенный fix и остаётся допустимым входом для `eda-plan-execute`. Подтверждённый gate после fix выполняет отдельный `eda-plan-polish`.
215
+ 2. Проверь артефакты и SHA-256 цепочку, затем снова прогони локальный quality gate структуры плана.
216
+ 3. При `ready` убедись, что front matter содержит `status: reviewed`, последний `plan_review` и последний `plan_review_fix` либо `none`. Содержательных правок не делай.
217
+ 4. При limit, отсутствии прогресса или `blocked` не выдавай план за подтверждённый; сообщи открытые ID и передай пользователю только конкретный вопрос, если он действительно нужен.
223
218
 
224
219
  ### 5. Strict: кросс-CLI и допил
225
220
 
226
221
  `plan.strict` не зависит от `plan.review`. Обычный режим пропускает этот этап. В `strict` отдай файл соседнему CLI:
227
222
 
228
223
  ```bash
229
- codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, нарушения бизнес-требований, неучтённые зависимости, нарушения правил, архитектуры и эталонов, необоснованные отклонения, скрытые риски, недостающие тесты и шаги без критериев готовности. Список '- [тип] описание — что предлагаешь'." > "${PLAN_FILE%.md}_review.md"
224
+ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Верни только конкретные ошибки и неточности, которые обязательно исправить: для каждой укажи место, доказательство, практический риск и минимальную правку. Не предлагай стилистические улучшения, дополнительные пояснения или расширение текста, если без них план уже однозначно исполним. Список '- [тип] описание — что исправить'." > "${PLAN_FILE%.md}_review.md"
230
225
  ```
231
226
 
232
227
  Если ты в Codex — запускай `claude -p` с тем же заданием. Если соседней CLI нет, спроси, продолжать без ревью или прервать.
@@ -235,7 +230,7 @@ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, приме
235
230
 
236
231
  ### 6. Финал
237
232
 
238
- Коротко сообщи режим, выполнялись ли plan-review/fix и strict, путь к плану, пути к plan-review/plan-review-fix и strict-review при наличии, итоговый status, 3–5 главных шагов и что дальше делает `eda-plan-execute`. Для `meta-reviewed` явно укажи, что подтверждающий gate выполняет `eda-plan-polish`.
233
+ Коротко сообщи режим, выполнялись ли plan-polish и strict, путь к плану, пути к последним plan-review/plan-review-fix и strict-review при наличии, итоговый status, score/threshold, открытые ID, 3–5 главных шагов и что дальше делает `eda-plan-execute`.
239
234
 
240
235
  ## Чего НЕ делать
241
236
 
@@ -249,5 +244,5 @@ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, приме
249
244
  - Сохранять сырой текст Plan Mode без нормализации.
250
245
  - Оставлять финальный план исследованием, списком наблюдений или журналом мета-ревью.
251
246
  - Смешивать альтернативы с принятыми решениями.
252
- - Выполнять plan-review или plan-review-fix основным агентом, запускать старые три общих ревьюера или делать второй review внутри `eda-plan`.
247
+ - Выполнять plan-review, plan-review-fix или plan-polish основным агентом либо запускать старые три общих ревьюера.
253
248
  - Пропускать кросс-CLI молча в `strict`: если CLI нет, спроси.
@@ -5,7 +5,7 @@ description: 'Оркестрирует review и исправления гото
5
5
 
6
6
  # Скил: Полировка плана (eda-plan-polish)
7
7
 
8
- Оркестрируй цикл `eda-plan-review` → `eda-plan-review-fix apply-optional` → повторный `eda-plan-review`. Основной агент только выбирает план, запускает каждый скил в отдельном изолированном субагенте, проверяет артефакты и управляет остановкой.
8
+ Оркестрируй цикл `eda-plan-review` → `eda-plan-review-fix` → повторный `eda-plan-review`. Основной агент только выбирает план, запускает каждый скил в отдельном изолированном субагенте, проверяет артефакты и управляет остановкой.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
@@ -25,9 +25,9 @@ description: 'Оркестрирует review и исправления гото
25
25
 
26
26
  ## Правила
27
27
 
28
- 1. Каждый вызов `eda-plan-review` и `eda-plan-review-fix apply-optional` запускай отдельным изолированным субагентом с чистым контекстом.
28
+ 1. Каждый вызов `eda-plan-review` и `eda-plan-review-fix` запускай отдельным изолированным субагентом с чистым контекстом.
29
29
  2. Если нативные субагенты или вложенная делегация недоступны, остановись; не выполняй review/fix основным агентом и не используй CLI-fallback.
30
- 3. Успех определяется только review со статусом `ready`, без required findings и `score >= threshold`.
30
+ 3. Успех определяется только review со статусом `ready`, без открытых находок и `score >= threshold`.
31
31
  4. Limit считает подтверждающие review-итерации. После review на последней итерации не запускай fix, который нельзя перепроверить.
32
32
  5. Основной агент не делает содержательных правок плана. После ready он может обновить только front matter: `status`, `plan_review`, `plan_review_fix`.
33
33
  6. Не запускай проверки проекта и не коммить.
@@ -42,7 +42,7 @@ description: 'Оркестрирует review и исправления гото
42
42
 
43
43
  ## Цикл
44
44
 
45
- Сформируй `$PLAN_FILE`, `$THRESHOLD`, `$LIMIT` и внутренний журнал: iteration, review path, plan SHA-256, score, состояния findings, fix path и причина продолжения.
45
+ Сформируй `$PLAN_FILE`, `$THRESHOLD`, `$LIMIT` и внутренний журнал: iteration, review path, plan SHA-256, score, состояния находок, fix path и причина продолжения.
46
46
 
47
47
  Для `$ITERATION` от `1` до `$LIMIT`:
48
48
 
@@ -53,20 +53,20 @@ description: 'Оркестрирует review и исправления гото
53
53
  Previous review: <PREVIOUS_REVIEW | none>.
54
54
  Previous fix: <PREVIOUS_FIX | none>.
55
55
  Overrides проверок и моделей: <из текущего вызова | none>.
56
- Верни путь, status, plan_sha256, score, required/optional ID и coverage.
56
+ Верни путь, status, plan_sha256, score, открытые ID и coverage.
57
57
  ```
58
58
 
59
- 2. Прочитай review-артефакт и проверь, что status/score/threshold/findings согласованы.
59
+ 2. Прочитай review-артефакт и проверь, что status/score/threshold/находки согласованы.
60
60
  3. Если status `ready`, обнови front matter плана: `status: reviewed`, `plan_review: <REVIEW_FILE>`, `plan_review_fix: <последний FIX_FILE | none>`. Заверши успешно.
61
61
  4. Если это последняя разрешённая review-итерация, остановись `достигнут limit`; fix не запускай.
62
- 5. Если относительно предыдущего review не изменились open/resolved/regressed/waived ID и score, остановись `blocked: review не показывает прогресса`.
63
- 6. Если ниже gate нет применимых findings, остановись `blocked: нет применимых правок для повышения оценки`.
62
+ 5. Если относительно предыдущего review не изменились open/resolved/regressed ID и score, остановись `blocked: review не показывает прогресса`.
63
+ 6. Если status `changes-required`, но открытых находок нет, остановись `blocked: review нарушает контракт gate`; score ниже threshold нельзя исправлять без конкретных находок.
64
64
  7. Запусти новый изолированный субагент:
65
65
 
66
66
  ```text
67
- Используй eda-plan-review-fix apply-optional для <REVIEW_FILE>.
68
- Примени все required, самостоятельно разбери optional и сохрани waived с причинами.
69
- Верни путь к fix, before_sha256, after_sha256, applied и waived ID.
67
+ Используй eda-plan-review-fix для <REVIEW_FILE>.
68
+ Примени все открытые находки минимальным изменением плана.
69
+ Верни путь к fix, before_sha256, after_sha256 и applied ID.
70
70
  ```
71
71
 
72
72
  8. Проверь, что `before_sha256` равен `plan_sha256` review. Если `after_sha256` равен `before_sha256`, остановись `blocked: fix не изменил план`.
@@ -76,7 +76,7 @@ Score не повышай и не пересчитывай сам: исполь
76
76
 
77
77
  ## Финал
78
78
 
79
- Сообщи результат (`ready`, limit, no progress, no applicable fixes или blocked), план, последний review/fix, score/threshold, число review-итераций, open ID и coverage warnings. При ready предложи `eda-plan-execute`; при неуспехе перечисли конкретные оставшиеся findings.
79
+ Сообщи результат (`ready`, limit, no progress, invalid gate или blocked), план, последний review/fix, score/threshold, число review-итераций, open ID и coverage warnings. При ready предложи `eda-plan-execute`; при неуспехе перечисли конкретные оставшиеся находки.
80
80
 
81
81
  ## Чего НЕ делать
82
82
 
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: eda-plan-review
3
- description: 'Проводит специализированное read-only ревью готового плана и сохраняет findings с оценкой готовности.'
3
+ description: 'Проводит специализированное read-only ревью готового плана и сохраняет находки с оценкой готовности.'
4
4
  ---
5
5
 
6
6
  # Скил: Ревью плана (eda-plan-review)
7
7
 
8
- Работай как оркестратор установленных `eda-plan-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их prompts в task-сообщения. Выбери план и проверки, запусти агентов, проверь структурированные ответы, дедуплицируй подтверждённые findings, выставь экспертный score и сохрани один review-артефакт.
8
+ Работай как оркестратор установленных `eda-plan-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их prompts в task-сообщения. Выбери план и проверки, запусти агентов, проверь структурированные ответы, дедуплицируй подтверждённые находки, выставь экспертный score и сохрани один review-артефакт.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
@@ -85,34 +85,36 @@ description: 'Проводит специализированное read-only р
85
85
 
86
86
  - один YAML-блок и допустимый `status`;
87
87
  - `check` совпадает с ролью, `model` — с фактической моделью;
88
- - `findings` и `prior_findings` — массивы;
89
- - у каждого finding есть fingerprint, severity, recommendation, plan_location, problem, evidence, impact, fix, acceptance;
90
- - `blocked` содержит question; `not_applicable` не содержит findings.
88
+ - `находки` и `предыдущие_находки` — массивы;
89
+ - у каждой находки есть fingerprint, severity, plan_location, problem, evidence, impact, fix, acceptance;
90
+ - `blocked` содержит question; `not_applicable` не содержит находок.
91
91
 
92
92
  Невалидного или упавшего агента один раз повтори на той же модели с указанием только нарушения контракта. Повторный сбой любой выбранной проверки блокирует всё ревью; итоговый файл не сохраняй.
93
93
 
94
- ## Агрегировать findings
94
+ ## Агрегировать находки
95
95
 
96
96
  1. Подтверди evidence точечным чтением указанных файлов. Не добавляй самостоятельные domain-находки.
97
- 2. Отклони недоказанное, вкусовое, уже закрытое, выходящее за scope или противоречащее подтверждённому решению. Существенные отклонения сохрани с fingerprint и причиной.
98
- 3. Объедини findings с одной первопричиной и одной правкой, сохранив все checks и evidence.
99
- 4. Для совпадающего fingerprint сохрани прежний ID. Новому finding дай следующий свободный `PR-NNN`; номер не переиспользуй.
100
- 5. Статусы `waived` сохраняй без повторного открытия, пока нет нового evidence. Required нельзя сделать waived без явного решения пользователя, меняющего исходное требование.
101
- 6. В итог включай только открытые required/optional findings и состояния прошлых ID.
97
+ 2. Прими находку только когда план обязательно нужно изменить: есть точное место, доказательство, практическая ошибка или существенная неоднозначность, минимальная правка и проверяемая приёмка. Если замечание можно без последствий не применять, это не находка.
98
+ 3. Отклони недоказанное, вкусовое, уже закрытое, выходящее за scope или противоречащее подтверждённому решению. Также отклоняй «лучше подробнее», дополнительные пояснения, обоснования и стилистические улучшения, если без них план уже однозначно исполним.
99
+ 4. Недостаток конкретики подтверждён только когда исполнителю придётся заново исследовать область, принять незафиксированное существенное решение или можно получить две существенно разные реализации. Вода или повтор подтверждены, когда точный фрагмент не меняет действие, контракт, зависимость, проверку или решение; исправление для них должно быть удалением либо короткой заменой.
100
+ 5. Объедини находки с одной первопричиной и одной правкой, сохранив все checks и evidence.
101
+ 6. Для совпадающего fingerprint сохрани прежний ID. Новой находке дай следующий свободный `PR-NNN`; номер не переиспользуй.
102
+ 7. В итог включай только открытые находки и состояния прошлых ID. Предложения, которые не требуют обязательной правки плана, сохраняй только в `Отклонённые предложения` и не учитывай в score.
102
103
 
103
104
  ## Выставить score и gate
104
105
 
105
106
  Score выставляет главный агент экспертно после обработки всех агентов. Не усредняй оценки, не используй формулу вычетов и не проси агентов ставить score.
106
107
 
107
- - `95–100`: обязательных findings нет, план исполним.
108
- - `80–94`: остаётся required medium или несколько существенных optional.
109
- - `60–79`: есть required high.
108
+ - `100`: открытых находок нет, план конкретен и исполним.
109
+ - `95–99`: остаются только локальные, но обязательные находки low.
110
+ - `80–94`: есть находка medium или несколько находок low.
111
+ - `60–79`: есть находка high.
110
112
  - ниже `60`: есть critical или требуется серьёзное перепланирование.
111
- - при отсутствии открытых findings score равен `100`.
112
- - если состояния open/resolved/regressed/waived не изменились относительно предыдущего review, score не меняй.
113
+ - при отсутствии открытых находок score равен `100`.
114
+ - если состояния open/resolved/regressed не изменились относительно предыдущего review, score не меняй.
113
115
  - каждое изменение score объясни закрытыми, новыми или регрессировавшими ID.
114
116
 
115
- Статус `ready` ставь только когда нет открытых required и `$SCORE >= $THRESHOLD`. Иначе статус `changes-required`. Не выдумывай finding только ради достижения threshold.
117
+ Статус `ready` ставь только когда нет открытых находок и `$SCORE >= $THRESHOLD`. Любая открытая находка даёт `changes-required`, независимо от score. Score ниже threshold без открытых находок недопустим: не снижай оценку за необязательные пожелания и не выдумывай находку только ради числа.
116
118
 
117
119
  ## Сохранить review
118
120
 
@@ -145,16 +147,15 @@ checks:
145
147
  - **Skipped:** <checks и причины>
146
148
  - **Warnings:** <warnings или «нет»>
147
149
 
148
- ## Состояние предыдущих findings
150
+ ## Состояние предыдущих находок
149
151
  | ID | Статус | Доказательство |
150
152
  |---|---|---|
151
153
 
152
- ## Findings
154
+ ## Находки
153
155
 
154
156
  ### PR-001. <заголовок>
155
157
  - **Checks:** <роли>
156
158
  - **Severity:** <critical | high | medium | low>
157
- - **Recommendation:** <required | optional>
158
159
  - **Fingerprint:** `<fingerprint>`
159
160
  - **Место в плане:** <раздел или задача>
160
161
  - **Проблема:** <что не так>
@@ -167,8 +168,7 @@ checks:
167
168
  - `<fingerprint>` — <причина или «нет»>
168
169
 
169
170
  ## Gate
170
- - **Required open:** <ID или «нет»>
171
- - **Optional open:** <ID или «нет»>
171
+ - **Открытые находки:** <ID или «нет»>
172
172
  - **Результат:** <ready | changes-required>
173
173
  ```
174
174
 
@@ -176,7 +176,7 @@ Review содержит только проблемы и техническое
176
176
 
177
177
  ## Финал
178
178
 
179
- Сообщи путь, status, score/threshold, число required/optional, completed/skipped и previous chain. При `changes-required` предложи `eda-plan-review-fix`; при `ready` — `eda-plan-execute` или возврат вызывающему `eda-plan-polish`.
179
+ Сообщи путь, status, score/threshold, открытые ID, completed/skipped и previous chain. При `changes-required` предложи `eda-plan-review-fix`; при `ready` — `eda-plan-execute` или возврат вызывающему `eda-plan-polish`.
180
180
 
181
181
  ## Чего НЕ делать
182
182
 
@@ -184,5 +184,6 @@ Review содержит только проблемы и техническое
184
184
  - Запускать тесты, lint, build, typecheck, серверы, миграции, браузерные проверки или API-запросы.
185
185
  - Выполнять специализированную роль главным агентом.
186
186
  - Запускать другой CLI или generic-fallback.
187
- - Усреднять score агентов, менять score без изменения findings или переоткрывать waived без нового evidence.
187
+ - Усреднять score агентов, менять score без изменения находок или снижать его за необязательные пожелания.
188
+ - Принимать косметическое расширение текста, дополнительное объяснение или вкусовую формулировку как находку.
188
189
  - Сохранять итог после повторного сбоя выбранного агента.