@gian-tiaga/eda 0.8.6 → 1.0.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 (85) hide show
  1. package/MIGRATION.md +119 -0
  2. package/README.md +324 -71
  3. package/agents/eda-aim-executor/agent.json +15 -0
  4. package/agents/eda-aim-executor/prompt.md +61 -0
  5. package/agents/eda-aim-planner/agent.json +15 -0
  6. package/agents/eda-aim-planner/prompt.md +43 -0
  7. package/agents/eda-aim-verifier/agent.json +15 -0
  8. package/agents/eda-aim-verifier/prompt.md +57 -0
  9. package/agents/eda-commit-context/agent.json +15 -0
  10. package/agents/eda-commit-context/prompt.md +58 -0
  11. package/agents/eda-commit-executor/agent.json +15 -0
  12. package/agents/eda-commit-executor/prompt.md +87 -0
  13. package/agents/eda-merge-worktree-executor/agent.json +15 -0
  14. package/agents/eda-merge-worktree-executor/prompt.md +57 -0
  15. package/agents/eda-review-api/agent.json +15 -0
  16. package/agents/eda-review-api/prompt.md +34 -0
  17. package/agents/eda-review-architecture/agent.json +15 -0
  18. package/agents/eda-review-architecture/prompt.md +34 -0
  19. package/agents/eda-review-code-quality/agent.json +15 -0
  20. package/agents/eda-review-code-quality/prompt.md +34 -0
  21. package/agents/eda-review-correctness/agent.json +15 -0
  22. package/agents/eda-review-correctness/prompt.md +34 -0
  23. package/agents/eda-review-database/agent.json +15 -0
  24. package/agents/eda-review-database/prompt.md +34 -0
  25. package/agents/eda-review-documentation/agent.json +15 -0
  26. package/agents/eda-review-documentation/prompt.md +34 -0
  27. package/agents/eda-review-frontend/agent.json +15 -0
  28. package/agents/eda-review-frontend/prompt.md +34 -0
  29. package/agents/eda-review-performance/agent.json +15 -0
  30. package/agents/eda-review-performance/prompt.md +34 -0
  31. package/agents/eda-review-plan-alignment/agent.json +15 -0
  32. package/agents/eda-review-plan-alignment/prompt.md +34 -0
  33. package/agents/eda-review-previous-reviews/agent.json +15 -0
  34. package/agents/eda-review-previous-reviews/prompt.md +44 -0
  35. package/agents/eda-review-references/agent.json +15 -0
  36. package/agents/eda-review-references/prompt.md +34 -0
  37. package/agents/eda-review-rules/agent.json +15 -0
  38. package/agents/eda-review-rules/prompt.md +34 -0
  39. package/agents/eda-review-security/agent.json +15 -0
  40. package/agents/eda-review-security/prompt.md +34 -0
  41. package/agents/eda-review-tests/agent.json +15 -0
  42. package/agents/eda-review-tests/prompt.md +34 -0
  43. package/agents/eda-worktree-executor/agent.json +15 -0
  44. package/agents/eda-worktree-executor/prompt.md +49 -0
  45. package/bin/cli.js +4 -4
  46. package/lib/catalog.js +118 -0
  47. package/lib/install.js +921 -119
  48. package/lib/renderers/claude-agent.js +24 -0
  49. package/lib/renderers/claude-skill.js +11 -0
  50. package/lib/renderers/codex-agent.js +24 -0
  51. package/lib/renderers/codex-skill.js +3 -0
  52. package/package.json +5 -3
  53. package/skills/eda-aim/SKILL.md +212 -0
  54. package/skills/eda-commit/SKILL.md +124 -0
  55. package/skills/eda-commit/skill.json +6 -0
  56. package/skills/eda-discover-automations/SKILL.md +184 -0
  57. package/skills/{eda-explore.md → eda-explore/SKILL.md} +11 -8
  58. package/skills/{eda-fix.md → eda-fix/SKILL.md} +7 -6
  59. package/skills/{eda-fix-by-review.md → eda-fix-by-review/SKILL.md} +5 -4
  60. package/skills/{eda-manual-test.md → eda-manual-test/SKILL.md} +1 -1
  61. package/skills/eda-merge-worktree/SKILL.md +72 -0
  62. package/skills/eda-merge-worktree/skill.json +7 -0
  63. package/skills/eda-new-project/SKILL.md +163 -0
  64. package/skills/eda-orhestra/SKILL.md +146 -0
  65. package/skills/{eda-plan.md → eda-plan/SKILL.md} +39 -29
  66. package/skills/eda-plan-execute/SKILL.md +186 -0
  67. package/skills/{eda-plan-polish.md → eda-plan-polish/SKILL.md} +14 -13
  68. package/skills/eda-polish/SKILL.md +80 -0
  69. package/skills/eda-prepare-ai/SKILL.md +227 -0
  70. package/skills/eda-review/SKILL.md +212 -0
  71. package/skills/{eda-send-review.md → eda-send-review/SKILL.md} +66 -19
  72. package/skills/eda-send-review/skill.json +7 -0
  73. package/skills/eda-worktree/SKILL.md +73 -0
  74. package/skills/eda-worktree/skill.json +7 -0
  75. package/skills/eda-automate.md +0 -185
  76. package/skills/eda-commit.md +0 -91
  77. package/skills/eda-docs.md +0 -123
  78. package/skills/eda-execute.md +0 -140
  79. package/skills/eda-merge-worktree.md +0 -116
  80. package/skills/eda-polish.md +0 -113
  81. package/skills/eda-review-check.md +0 -149
  82. package/skills/eda-review.md +0 -173
  83. package/skills/eda-start.md +0 -233
  84. package/skills/eda-worktree.md +0 -113
  85. /package/skills/{eda-roadmap.md → eda-roadmap/SKILL.md} +0 -0
@@ -0,0 +1,186 @@
1
+ ---
2
+ name: eda-plan-execute
3
+ description: 'Управляет выполнением готового плана из docs/plans/: проходит фазы строго последовательно, строит волны задач по зависимостям и запускает безопасно совместимые задачи параллельно в отдельных изолированных субагентах. Разработку, исправления и все проверки выполняют только субагенты; основной агент координирует их, ведёт чекбоксы плана и журнал в docs/executions/. Не коммитит и не делает ревью.'
4
+ ---
5
+
6
+ # Скил: Управляющий выполнением плана (eda-plan-execute)
7
+
8
+ Оркестрируй выполнение готового плана. Сам не реализуй задачи и не запускай проверки проекта: передавай каждую задачу, исправление и проверку новому изолированному субагенту. Сам выбирай готовые к запуску задачи, связывай результаты, обновляй прогресс плана и журнал выполнения.
9
+
10
+ ## Вход из сообщения пользователя
11
+
12
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, задачу, путь к файлу, режим, ограничения и прямые указания.
13
+
14
+ Если этого входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не тот план. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
15
+
16
+ ## Главные правила
17
+
18
+ 1. **Основной агент только управляет.** Разрешены чтение контекста, построение очереди, запуск и контроль субагентов, вопросы пользователю, обновление `$PLAN_FILE` и `$EXECUTION_FILE`. Код, тесты, миграции, конфиги, зависимости, документацию проекта и git-состояние меняют только назначенные субагенты.
19
+ 2. **Фазы выполняй строго последовательно.** Не запускай задачу следующей фазы, пока все задачи текущей фазы не завершены и отдельная проверка фазы не прошла.
20
+ 3. **Каждая работа изолирована.** Каждую задачу плана, подготовку ветки/worktree, исправление после падения, проверку фазы и финальную проверку запускай новым субагентом со свежим контекстом без истории диалога.
21
+ 4. **Безопасную параллельность используй обязательно.** Внутри текущей фазы одновременно запускай все готовые задачи, которые план взаимно пометил как параллельные и которые не пересекаются по изменяемым файлам, контрактам, данным или общему состоянию. Остальные запускай последовательными волнами по зависимостям.
22
+ 5. **План и проектная документация — обязательная рамка исполнения.** Перед запуском прочитай план, `docs/rules.md`, `docs/arch.md` и карточки из `sources.references`; для старого плана выбери через `docs/references.md` только применимые карточки.
23
+ 6. **Соблюдай приоритет и блокируй конфликт.** Приоритет: подтверждённое решение пользователя → `docs/rules.md` → `docs/arch.md` → релевантные карточки. При конфликте или необоснованном отклонении от примера применимой карточки не поручай реализацию: спроси, адаптировать план, вернуться к `eda-plan` или отдельно изменить документацию.
24
+ 7. **Отмечай только подтверждённое.** Ставь задаче `[x]` только после `completed` от исполнителя и успешных обязательных проверок задачи. Фазу закрывай только после отдельного `passed` от проверяющего фазы. При последующем опровержении верни отметку в незавершённое состояние.
25
+ 8. **Проверки нельзя подавлять.** Не поручай отключать линтеры, тесты, typecheck, static analysis и другие проверки, добавлять игноры или ослаблять команды и правила. Причину падения исправляет отдельный субагент, затем новый субагент повторяет проверку.
26
+ 9. **Не коммить, не пушь и не делай ревью.** Это другие скилы.
27
+
28
+ ## Интерактивные вопросы
29
+
30
+ Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
31
+
32
+ - Claude Code: используй `AskUserQuestion`.
33
+ - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
34
+ - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
35
+ - Не запускай команды, которые ждут интерактивного ввода в терминале.
36
+
37
+ ## Этапы
38
+
39
+ ### 1. Выбрать план
40
+
41
+ - Если указан путь к плану — используй его как `$PLAN_FILE`.
42
+ - Если указано название или часть названия — найди совпадение в `docs/plans/`.
43
+ - Если написано «последний план» — возьми самый новый файл из `docs/plans/`.
44
+ - Если вставлен текст плана — сохрани или однозначно привяжи его к файлу в `docs/plans/` до инициализации прогресса.
45
+
46
+ Если найден ровно один план, продолжай без вопроса. При нескольких равных вариантах используй `AskUserQuestion`. Если плана нет, остановись со статусом `blocked: нужен план`.
47
+
48
+ Не исполняй план со статусом `draft`, открытыми вопросами, отсутствующими ID задач или неразрешёнными зависимостями. Попроси сначала завершить `eda-plan` или `eda-plan-polish`.
49
+
50
+ ### 2. Выбрать место выполнения
51
+
52
+ Через `AskUserQuestion` предложи текущую ветку, новую ветку от `main`, новую ветку от текущей или worktree от `main`. Если вызывающий оркестратор уже передал подтверждённый выбор, не спрашивай повторно.
53
+
54
+ Сам git-команды не выполняй. Для выбранной новой ветки или worktree запусти отдельного изолированного субагента подготовки окружения. Передай ему только выбранный вариант, slug плана, рабочую директорию и запрет менять код. Если выбран worktree, после успешного создания остановись и дай готовую команду перехода и нового запуска `eda-plan-execute <PLAN_FILE>`: текущая сессия не переезжает в другую директорию.
55
+
56
+ ### 3. Прочитать рамку и построить граф
57
+
58
+ Прочитай `$PLAN_FILE`, `docs/rules.md` и `docs/arch.md`, если они есть. Прочитай перечисленные в `sources.references` карточки. Для старого плана без поля прочитай индекс `docs/references.md` и выбери только карточки для затронутых компонентов.
59
+
60
+ Для каждой фазы извлеки задачи, ID, прямые зависимости, поле `Параллельно`, ожидаемый результат, сценарии тестирования и проверки. До запуска проверь:
61
+
62
+ - все ID уникальны, а ссылки ведут на существующие задачи;
63
+ - зависимости не образуют цикл и не ведут в будущую фазу;
64
+ - параллельность симметрична и не противоречит зависимостям;
65
+ - параллельные задачи не меняют одни файлы или участки, общий контракт, одну миграционную цепочку, общие генерируемые артефакты или иное изменяемое состояние;
66
+ - шаги не конфликтуют с правилами, архитектурой и применимыми карточками;
67
+ - у каждой фазы есть проверяемый результат и команда либо критерий проверки.
68
+
69
+ Если граф неоднозначен или небезопасен, не исправляй смысл плана молча. Используй `AskUserQuestion` с предложением вернуть план в `eda-plan` или `eda-plan-polish`.
70
+
71
+ ### 4. Инициализировать прогресс
72
+
73
+ Создай `$EXECUTION_FILE` по пути `docs/executions/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. В `$PLAN_FILE` добавь или актуализируй один раздел `## Прогресс выполнения` со ссылкой на журнал, фазами и задачами по исходным ID.
74
+
75
+ Используй в журнале структуру:
76
+
77
+ ```markdown
78
+ ---
79
+ plan: <путь>
80
+ started: <YYYY-MM-DD HH:MM>
81
+ status: in_progress
82
+ current_phase: <номер>
83
+ ---
84
+
85
+ # Журнал выполнения: <заголовок>
86
+
87
+ ## Фазы
88
+ | Фаза | Задачи | Проверка | Статус |
89
+ |---|---|---|---|
90
+
91
+ ## Запуски субагентов
92
+ | Время | Роль | Задача | Результат | Файлы | Проверки |
93
+ |---|---|---|---|---|---|
94
+
95
+ ## Решения и блокеры
96
+ ## Изменения в документации
97
+ ## Финальная проверка
98
+ ```
99
+
100
+ Основной агент пишет только этот журнал и отметки прогресса в плане. Субагентам явно запрети менять `$PLAN_FILE` и `$EXECUTION_FILE`.
101
+
102
+ ### 5. Запускать изолированных субагентов
103
+
104
+ В Codex используй `spawn_agent` с `fork_turns: "none"` или точный аналог. В Claude Code используй новый `Agent` с самодостаточным task-сообщением. Если чистая изоляция или субагенты недоступны, остановись с `blocked: недоступно изолированное выполнение`; не выполняй работу основным агентом и не добавляй CLI-fallback.
105
+
106
+ Каждому исполнителю задачи передай только:
107
+
108
+ - рабочую директорию, `$PLAN_FILE`, ID и полный текст одной задачи;
109
+ - цель и критерии готовности текущей фазы;
110
+ - прямые зависимости и краткие результаты уже завершённых зависимостей;
111
+ - пути к `docs/rules.md`, `docs/arch.md`, применимым карточкам и другим явно нужным источникам;
112
+ - команды или критерии проверки этой задачи;
113
+ - ограничения пользователя, запрет коммитить и запрет менять план и журнал.
114
+
115
+ Исполнитель сам читает переданные файлы, исследует нужный код, реализует только назначенную задачу и выполняет её точечные проверки. Требуй YAML-результат:
116
+
117
+ ```yaml
118
+ status: completed | needs_input | failed | blocked
119
+ task: <ID>
120
+ summary: <что сделано>
121
+ files_changed: [<пути>]
122
+ checks:
123
+ - command: <команда или критерий>
124
+ status: passed | failed | not_run
125
+ result: <кратко>
126
+ deviations: [<отклонения от плана или пусто>]
127
+ risks: [<остаточные риски или пусто>]
128
+ questions: [<вопросы или пусто>]
129
+ ```
130
+
131
+ Не принимай `completed`, если обязательная проверка задачи не прошла, исполнитель вышел за назначенный scope, молча отклонился от рамки или изменил план/журнал.
132
+
133
+ ### 6. Выполнять фазы волнами
134
+
135
+ Для каждой фазы по порядку:
136
+
137
+ 1. Вычисли готовые задачи: все их прямые зависимости уже отмечены выполненными.
138
+ 2. Из готовых задач собери максимальную безопасную волну по взаимным полям `Параллельно` и отсутствию пересечений. Не включай задачу в параллельную волну только по догадке, если план не разрешает параллельность явно.
139
+ 3. Запусти всех исполнителей волны одновременно одним batch до чтения отдельных результатов. Если лимит среды меньше размера волны, используй максимально доступное число слотов и запускай остаток сразу после освобождения слотов.
140
+ 4. После завершения каждого исполнителя проверь контракт, фактический scope файлов и результат точечных проверок. Запиши запуск в журнал и поставь `[x]` только успешной задаче.
141
+ 5. `needs_input` передай пользователю одним блокирующим вопросом и после ответа продолжи ту же задачу новым изолированным субагентом с ответом и предыдущим результатом.
142
+ 6. Для `failed` запусти нового изолированного субагента исправления этой же задачи. Передай исходную задачу, полный неуспешный результат и актуальное состояние файлов. После исправления новый субагент должен повторить точечную проверку. Если две попытки подряд возвращают ту же причину без содержательного изменения результата, остановись с `blocked: выполнение не сходится` и зафиксируй доказательства вместо бесконечного цикла.
143
+ 7. Для `blocked` останови зависимые задачи. Если блокер внешний или требует изменения scope, задай вопрос; основной агент не устраняет его содержательно.
144
+ 8. Когда волна завершена, пересчитай готовые задачи. Не переходи к следующей фазе, пока текущая не закрыта.
145
+
146
+ Если параллельные исполнители неожиданно пересеклись по файлам или контракту, не объединяй результаты вслепую. Останови затронутые задачи, запиши конфликт и запусти отдельного субагента для диагностики и безопасного согласования изменений.
147
+
148
+ ### 7. Проверять каждую фазу
149
+
150
+ После выполнения всех задач фазы запусти нового изолированного субагента-проверяющего. Он не меняет файлы, читает итог фазы, выполняет все проверки из раздела фазы и подтверждает критерии результата. Требуй YAML:
151
+
152
+ ```yaml
153
+ status: passed | failed | blocked
154
+ phase: <номер>
155
+ checks:
156
+ - command: <команда или критерий>
157
+ status: passed | failed
158
+ result: <кратко>
159
+ failures: [<проблемы с доказательствами или пусто>]
160
+ ```
161
+
162
+ При `failed` сопоставь проблемы с задачами и запусти по каждой отдельного изолированного субагента исправления. Затем запусти нового проверяющего всей фазы. Основной агент не чинит код и не переиспользует контекст прежнего проверяющего. При `passed` отметь фазу завершённой и только тогда переходи к следующей.
163
+
164
+ ### 8. Выполнить финальную проверку
165
+
166
+ После всех фаз запусти отдельного нового субагента для полного набора тестов, линтеров, typecheck, static analysis и других обязательных команд проекта. Он только проверяет и не меняет файлы.
167
+
168
+ Если финальная проверка упала из-за сделанных изменений, запусти изолированных субагентов исправления по независимым группам ошибок, затем повтори всю финальную проверку новым субагентом. Чужую или несвязанную поломку зафиксируй и используй `AskUserQuestion`, если без решения нельзя завершить план. Запрещено делать проверки зелёными через подавление ошибок, игноры, исключения, ослабление конфигов или изменение команд проверки.
169
+
170
+ Запиши команды и результаты в `## Финальная проверка`. Только после `passed` поставь в журнале `status: done` и время завершения. Если обязательная проверка объективно недоступна, сохрани `status: blocked`, причину и непройденные критерии; не выдавай план за выполненный.
171
+
172
+ ### 9. Финал
173
+
174
+ Коротко сообщи пути к плану и журналу, завершённые фазы и задачи, какие волны выполнялись параллельно, результат фазовых и финальной проверок, оставшиеся блокеры, состояние git «не закоммичено» и следующий шаг: `eda-review` или `eda-commit`.
175
+
176
+ ## Чего НЕ делать
177
+
178
+ - Самому менять код, тесты, миграции, конфиги, зависимости или проектную документацию.
179
+ - Самому запускать тесты, линтеры, typecheck, сборку, миграции, серверы или другие команды разработки и проверки.
180
+ - Передавать одному субагенту несколько независимых задач только ради экономии запусков.
181
+ - Запускать следующую фазу до успешной отдельной проверки текущей.
182
+ - Запускать параллельно задачи без явной безопасной маркировки плана или с пересечением изменяемых ресурсов.
183
+ - Давать субагентам историю диалога или разрешать им менять план и журнал.
184
+ - Исправлять падение основным агентом либо продолжать после него без повторной проверки новым субагентом.
185
+ - Подавлять ошибки проверок, ослаблять правила или менять команды ради зелёного результата.
186
+ - Коммитить, пушить, создавать PR или делать ревью.
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: eda-plan-polish
3
- description: 'Полирует готовый план из `docs/plans/...` до оценки 95/100 или заданного порога. Каждая итерация начинается с трёх изолированных параллельных агентов на быстрой, кодовой и флагманской моделях. В strict дополнительно запускает кросс-CLI ревью плана: Claude отдаёт план Codex, Codex отдаёт план Claude. Основной агент читает результаты, выставляет итоговую оценку, принимает или отклоняет предложения, содержательно правит только файл плана, не меняет код и не запускает проверки.'
3
+ description: 'Полирует готовый план из `docs/plans/...` до оценки 95/100 или заданного порога. Каждая итерация запускает три изолированных параллельных агента, которые читают правила, архитектуру, `sources.references`, research и релевантный код. В strict дополнительно запускает кросс-CLI ревью. Основной агент оценивает ответы, принимает или отклоняет предложения, содержательно правит только файл плана, не меняет код и не запускает проверки.'
4
4
  ---
5
5
 
6
6
  # Скил: Полировка плана (eda-plan-polish)
7
7
 
8
- Берёшь готовый план из `docs/plans/` и доводишь его до состояния, когда его можно передать в `eda-execute`. Порог по умолчанию — `95`, лимит по умолчанию — `5` итераций. В `strict` каждая итерация после трёх моделей дополнительно отдаёт план соседнему CLI на кросс-ревью.
8
+ Берёшь готовый план из `docs/plans/` и доводишь его до состояния, когда его можно передать в `eda-plan-execute`. Порог по умолчанию — `95`, лимит по умолчанию — `5` итераций. В `strict` каждая итерация после трёх моделей дополнительно отдаёт план соседнему CLI на кросс-ревью.
9
9
 
10
10
  Каждая итерация начинается с трёх независимых моделей с одним и тем же промптом. Основной агент не ставит предварительную оценку сам: он оценивает план только после ответов агентов, принимает или отклоняет предложения, правит план при оценке ниже порога и запускает новую итерацию.
11
11
 
@@ -19,9 +19,9 @@ description: 'Полирует готовый план из `docs/plans/...` д
19
19
 
20
20
  Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
21
21
 
22
- Дефолты: `defaults.strict: false`.
22
+ Поддерживается только `version: 2`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолт: `plan-polish.strict: false`.
23
23
 
24
- - `strict` включает кросс-CLI ревью плана после трёх агентов в каждой итерации; выключение: `normal`, `без strict`, `без строгого режима`.
24
+ - `plan-polish.strict` включает кросс-CLI ревью плана после трёх агентов в каждой итерации; выключение: `normal`, `без strict`, `без строгого режима`.
25
25
  - Порог качества по умолчанию — `95`, можно переопределить словами `до 90`, `threshold 90`, `цель 90`.
26
26
  - Лимит по умолчанию — `5` итераций, можно переопределить словами `лимит 3`, `max iterations 3`, `не больше 3 кругов`.
27
27
  - Оценка `95–100` означает готовность к исполнению; `80–94` — нужно уточнить; `60–79` — рискованный план; ниже `60` — нужен серьёзный переплан или вопросы пользователю.
@@ -57,9 +57,9 @@ description: 'Полирует готовый план из `docs/plans/...` д
57
57
  - входа нет — спроси, показав несколько последних планов;
58
58
  - `docs/plans/` нет или она пуста — остановись: `blocked: нужен готовый план`.
59
59
 
60
- Прочитай только выбранный план целиком. По front matter извлеки `status`, `mode`, `plan_size`, `test_strategy`, `logging_strategy`, `sources.rules`, `sources.arch`, `sources.research`, `meta_reviewers`.
60
+ Прочитай только выбранный план целиком. По front matter извлеки `status`, `mode`, `plan_size`, `test_strategy`, `logging_strategy`, `sources.rules`, `sources.arch`, `sources.references`, `sources.research`, `meta_reviewers`.
61
61
 
62
- Сам не читай `docs/rules.md`, `docs/arch.md`, `sources.research` и релевантный код на этом шаге. Передай эти пути агентам в общем промпте: проверка правил, архитектуры, research и кода — их работа. Основной агент может открыть внешний файл только позже и точечно, если нужно проверить конкретное предложение агента перед правкой плана. Не запускай проверки.
62
+ Сам не читай `docs/rules.md`, `docs/arch.md`, `sources.references`, `sources.research` и релевантный код на этом шаге. Передай эти пути агентам в общем промпте: проверка правил, архитектуры, эталонов, research и кода — их работа. Если старый план не содержит `sources.references`, но существует `docs/references.md`, передай агентам индекс: они должны выбрать только применимые карточки. Если индекса нет, продолжай без references. Основной агент может открыть внешний файл только позже и точечно, если нужно проверить конкретное предложение агента перед правкой плана. Не запускай проверки.
63
63
 
64
64
  ### 2. Запустить три модели
65
65
 
@@ -79,9 +79,9 @@ description: 'Полирует готовый план из `docs/plans/...` д
79
79
  Общий промпт каждому агенту:
80
80
 
81
81
  ```text
82
- Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, sources.research при наличии и релевантные файлы, на которые ссылается план.
82
+ Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, прочитай docs/references.md и выбери только применимые карточки.
83
83
 
84
- Проверь весь план целиком: исполнимость, соответствие правилам и архитектуре, полноту целевого алгоритма, БД/API/внешние контракты, фазы, тестовые сценарии, логирование, неподтверждённые решения, скрытые риски и места, где eda-execute не сможет продолжить без нового исследования.
84
+ Проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и применимым эталонам, обоснованность отклонений от примеров, полноту целевого алгоритма, БД/API/внешние контракты, фазы, тестовые сценарии, логирование, неподтверждённые решения, скрытые риски и места, где eda-plan-execute не сможет продолжить без нового исследования.
85
85
 
86
86
  Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы.
87
87
 
@@ -100,13 +100,13 @@ score: <0–100>
100
100
  Если ты в Claude Code — запускай Codex CLI:
101
101
 
102
102
  ```bash
103
- codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, sources.research при наличии и релевантные файлы, на которые ссылается план. Глубоко проверь весь план целиком: исполнимость, соответствие правилам и архитектуре, полноту целевого алгоритма, БД/API/внешние контракты, фазы, тесты, логирование, неподтверждённые решения, скрытые риски и места, где eda-execute не сможет продолжить без нового исследования. Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы. Ответь кратко: score: <0–100>; + Принять; ~ Уточнить; -- Убрать; ? Вопрос." > "${PLAN_FILE%.md}_strict_cli_review.md"
103
+ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, выбери применимые карточки через docs/references.md. Глубоко проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и эталонам, обоснованность отклонений, полноту целевого алгоритма, БД/API/внешние контракты, фазы, тесты, логирование, неподтверждённые решения и скрытые риски. Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы. Ответь кратко: score: <0–100>; + Принять; ~ Уточнить; -- Убрать; ? Вопрос." > "${PLAN_FILE%.md}_strict_cli_review.md"
104
104
  ```
105
105
 
106
106
  Если ты в Codex — запускай Claude CLI:
107
107
 
108
108
  ```bash
109
- claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, sources.research при наличии и релевантные файлы, на которые ссылается план. Глубоко проверь весь план целиком: исполнимость, соответствие правилам и архитектуре, полноту целевого алгоритма, БД/API/внешние контракты, фазы, тесты, логирование, неподтверждённые решения, скрытые риски и места, где eda-execute не сможет продолжить без нового исследования. Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы. Ответь кратко: score: <0–100>; + Принять; ~ Уточнить; -- Убрать; ? Вопрос." > "${PLAN_FILE%.md}_strict_cli_review.md"
109
+ claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, выбери применимые карточки через docs/references.md. Глубоко проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и эталонам, обоснованность отклонений, полноту целевого алгоритма, БД/API/внешние контракты, фазы, тесты, логирование, неподтверждённые решения и скрытые риски. Не правь файлы и не запускай проверки, тесты, линтеры, билды, typecheck, dev-серверы, миграции, браузерные проверки или API-запросы. Можно только читать файлы. Ответь кратко: score: <0–100>; + Принять; ~ Уточнить; -- Убрать; ? Вопрос." > "${PLAN_FILE%.md}_strict_cli_review.md"
110
110
  ```
111
111
 
112
112
  Если соседней CLI нет — `AskUserQuestion`: продолжить как `normal` без кросс-CLI или прервать полировку. Не заменяй кросс-CLI четвёртым локальным субагентом.
@@ -119,13 +119,14 @@ claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, sources.res
119
119
 
120
120
  Оцени:
121
121
  - план следует `docs/rules.md` и `docs/arch.md`;
122
+ - план следует применимым карточкам или содержит подтверждённую причину отклонения;
122
123
  - нет неподтверждённых существенных решений;
123
124
  - `Целевой алгоритм` описывает сквозное поведение;
124
125
  - `Контракты реализации` конкретны, особенно БД/API/внешние контракты;
125
126
  - фазы имеют цель, шаги, результат, сценарии тестирования и проверку;
126
127
  - `test_strategy` и `logging_strategy` отражены в фазах и разделах;
127
128
  - нет альтернатив вида «выбрать», «решить», «уточнить позже»;
128
- - план можно передать в `eda-execute` без нового исследования.
129
+ - план можно передать в `eda-plan-execute` без нового исследования.
129
130
 
130
131
  Если `$SCORE >= threshold`, не вноси содержательные правки ради формы. Только добавь или обнови:
131
132
 
@@ -185,7 +186,7 @@ claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, sources.res
185
186
 
186
187
  ## Финал
187
188
 
188
- Сообщи кратко: режим (`normal` или `strict`), путь к плану, путь к strict-review-файлу при наличии, итоговую оценку и порог, число итераций, какие модели и CLI запускались, главные принятые изменения, существенные отклонения, причину остановки и следующий шаг `eda-execute <PLAN_FILE>` при успехе. Если режим был обычный — добавь строку «кросс-CLI не запускался; для проверки соседним агентом — `eda-plan-polish strict <PLAN_FILE>`».
189
+ Сообщи кратко: режим (`normal` или `strict`), путь к плану, путь к strict-review-файлу при наличии, итоговую оценку и порог, число итераций, какие модели и CLI запускались, главные принятые изменения, существенные отклонения, причину остановки и следующий шаг `eda-plan-execute <PLAN_FILE>` при успехе. Если режим был обычный — добавь строку «кросс-CLI не запускался; для проверки соседним агентом — `eda-plan-polish strict <PLAN_FILE>`».
189
190
 
190
191
  ## Чего НЕ делать
191
192
 
@@ -199,4 +200,4 @@ claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, sources.res
199
200
  - Вставлять предложения агентов без анализа.
200
201
  - Добавлять существенные решения без подтверждения пользователя.
201
202
  - Превращать план в длинный отчёт о ревью.
202
- - Коммитить, пушить или запускать `eda-execute`.
203
+ - Коммитить, пушить или запускать `eda-plan-execute`.
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: eda-polish
3
+ description: 'Автономно доводит изменения до заданной оценки: в каждой итерации запускает полное `eda-review`, затем `eda-fix-by-review apply-optional` и повторяет цикл до порога или лимита. Все обязательные замечания исправляются, optional-пункты fix-агент применяет или отклоняет с причиной. По умолчанию цель — 95/100, лимит — 5 итераций. Каждый шаг идёт в изолированном субагенте. Не делает ревью или правки основным агентом и не коммитит.'
4
+ ---
5
+
6
+ # Скил: Полировка изменений (eda-polish)
7
+
8
+ Оркестрируй цикл `eda-review` → `eda-fix-by-review apply-optional` → повторное `eda-review`. Основной агент только управляет итерациями, читает сохранённые артефакты и сообщает результат.
9
+
10
+ ## Вход из сообщения пользователя
11
+
12
+ Текст рядом с вызовом скилла в текущем сообщении — главный вход. Разбери target, путь к плану, PR/ветку/diff/файл, желаемый порог, лимит итераций и ограничения. Передавай в каждый `eda-review` разовые overrides проверок и моделей из запроса пользователя.
13
+
14
+ Порог по умолчанию — `95`, лимит — `5` итераций. Пользователь может задать `до 90`, `threshold 90`, `цель 90` и `limit N`; допустимый score — 1–100, лимит — положительное целое число.
15
+
16
+ ## Правила
17
+
18
+ 1. Каждый вызов `eda-review` и `eda-fix-by-review apply-optional` запускай отдельным изолированным субагентом. Основной агент не делает их работу.
19
+ 2. Если нативные субагенты недоступны, остановись; не заменяй шаги CLI-процессами.
20
+ 3. Сравнивай порог только со `score` полного ревью со статусом `reviewed` или `reviewed-with-warnings`.
21
+ 4. Все пункты «править обязательно» исправь. Для каждого optional-пункта fix-агент сам решает, применять ли его, и сохраняет причины отклонения, чтобы следующие ревьюеры не повторяли решение без новых аргументов.
22
+ 5. Не коммить и не отправляй ревью.
23
+ 6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента, отсутствии применимых замечаний ниже порога или если score не растёт два круга подряд.
24
+
25
+ ## Вопросы
26
+
27
+ Если target неоднозначен, передай управление первому `eda-review`: он задаст один конкретный вопрос по правилам своей среды. Если шаг вернул `blocked`, основной агент повторяет только этот вопрос и после ответа продолжает тот же шаг.
28
+
29
+ ## Цикл
30
+
31
+ Сформируй `$TARGET_CONTEXT`, `$THRESHOLD`, `$LIMIT` и внутренний журнал: номер итерации, review file, score, fix report и причина продолжения.
32
+
33
+ Для каждой итерации:
34
+
35
+ 1. Запусти отдельного субагента с задачей:
36
+
37
+ ```text
38
+ Используй eda-review для <TARGET_CONTEXT>.
39
+ План: <PLAN_FILE | none>.
40
+ Overrides проверок и моделей: <из запроса | none>.
41
+ Верни путь к файлу, status, score и coverage.
42
+ ```
43
+
44
+ 2. Если review остановился из-за обязательного агента, останови весь цикл. `reviewed-with-warnings` из-за недоступных previous reviews разрешён и не блокирует цикл.
45
+ 3. Если `score >= threshold`, заверши успешно.
46
+ 4. Если score ниже порога, прочитай рекомендации. Если обязательных и optional-пунктов нет, остановись `blocked: нет применимых замечаний для повышения оценки`.
47
+ 5. Запусти отдельного субагента:
48
+
49
+ ```text
50
+ Используй eda-fix-by-review apply-optional для <REVIEW_FILE>.
51
+ Примени все обязательные замечания. По каждому optional сам реши, применять ли его; отклонённые решения сохрани с причиной.
52
+ Верни путь к fix-отчёту и результат проверок.
53
+ ```
54
+
55
+ 6. При успешных исправлениях начни следующую итерацию с новым полным `eda-review`.
56
+
57
+ Если score не растёт два проверенных круга подряд, остановись раньше лимита. Если достигнут лимит, не скрывай незавершённую сходимость.
58
+
59
+ ## Финал
60
+
61
+ Сообщи:
62
+
63
+ - результат: достигнут порог, достигнут лимит, blocked, нет применимых замечаний или score не растёт;
64
+ - итоговую оценку и порог;
65
+ - количество итераций;
66
+ - последний review file и fix report;
67
+ - предупреждения coverage, если они были;
68
+ - что изменения не закоммичены.
69
+
70
+ При успехе предложи `eda-commit`. При неуспехе назови конкретный блокер или оставшиеся замечания.
71
+
72
+ ## Чего НЕ делать
73
+
74
+ - Делать ревью или исправления основным агентом.
75
+ - Запускать отдельный этап проверки готового ревью.
76
+ - Сравнивать порог с неполным или заблокированным ревью.
77
+ - Механически применять все optional-пункты.
78
+ - Терять причины отклонённых optional-решений.
79
+ - Переписывать `docs/settings.yaml`, правила или архитектуру ради score.
80
+ - Коммитить, пушить или отправлять ревью.