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