@gian-tiaga/eda 1.0.2 → 1.0.3
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/README.md +2 -2
- package/package.json +1 -1
- package/skills/eda-aim/SKILL.md +1 -1
- package/skills/eda-commit/SKILL.md +1 -1
- package/skills/eda-discover-automations/SKILL.md +1 -1
- package/skills/eda-explore/SKILL.md +1 -1
- package/skills/eda-fix/SKILL.md +1 -1
- package/skills/eda-fix-by-review/SKILL.md +1 -1
- package/skills/eda-manual-test/SKILL.md +1 -1
- package/skills/eda-merge-worktree/SKILL.md +4 -2
- package/skills/eda-new-project/SKILL.md +1 -1
- package/skills/eda-orhestra/SKILL.md +1 -1
- package/skills/eda-plan/SKILL.md +11 -12
- package/skills/eda-plan-execute/SKILL.md +42 -46
- package/skills/eda-plan-polish/SKILL.md +5 -4
- package/skills/eda-polish/SKILL.md +2 -1
- package/skills/eda-prepare-ai/SKILL.md +1 -1
- package/skills/eda-review/SKILL.md +1 -1
- package/skills/eda-roadmap/SKILL.md +1 -1
- package/skills/eda-send-review/SKILL.md +1 -1
- package/skills/eda-worktree/SKILL.md +3 -1
package/README.md
CHANGED
|
@@ -42,9 +42,9 @@ eda update-all ~/Code
|
|
|
42
42
|
| `eda-new-project` | Помогает стартовать новый проект: собирает и согласует требования, функциональность и границы, ограничения и архитектурные драйверы, сравнивает варианты основного стека и фиксирует выбранные компоненты с актуальными стабильными версиями. Не проектирует архитектуру, правила, проверки, AI-скилы или MCP; сохраняет подтверждённый стартовый бриф и всегда без дополнительного вопроса запускает полный технический bootstrap через `eda-prepare-ai` | `docs/project-starts/`, затем артефакты `eda-prepare-ai` |
|
|
43
43
|
| `eda-roadmap` | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | `docs/roadmaps/` |
|
|
44
44
|
| `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. Читает только применимые карточки из `docs/references/`, если они есть. В дефолтном режиме ведёт исследование как диалог; для пакетов и ПО проверяет актуальные стабильные версии | `docs/researches/` |
|
|
45
|
-
| `eda-plan` | Пишет план реализации через стандартный Plan Mode хост-агента. `docs/rules.md`, `docs/arch.md` и применимые кодовые эталоны использует как обязательную рамку. В плане явно фиксирует контракты БД/API, прямые зависимости задач и
|
|
45
|
+
| `eda-plan` | Пишет план реализации через стандартный Plan Mode хост-агента. `docs/rules.md`, `docs/arch.md` и применимые кодовые эталоны использует как обязательную рамку. В плане явно фиксирует контракты БД/API, прямые зависимости задач и связные фазы, рассчитанные на одного исполнителя. Затем три параллельных субагента/модели проверяют реалистичность, полноту и соблюдение рамки | `docs/plans/` |
|
|
46
46
|
| `eda-plan-polish` | Полирует готовый план до оценки 95/100 или заданного порога. Каждая итерация запускает три изолированных агента, которые проверяют план по правилам, архитектуре, `sources.references`, research и коду. В strict дополнительно запускается кросс-ревью Claude ↔ Codex. Основной агент правит только файл плана и не запускает проверки проекта | `docs/plans/` |
|
|
47
|
-
| `eda-plan-execute` | Управляет выполнением плана по фазам.
|
|
47
|
+
| `eda-plan-execute` | Управляет выполнением плана по фазам. Каждую фазу целиком выполняет отдельный изолированный субагент: он читает план, правила и архитектуру, а применимые карточки — по ходу работы через индекс `docs/references.md`. Фазы проходят строго последовательно и принимаются независимыми проверяющими. Основной агент отмечает подтверждённые задачи и ведёт журнал | `docs/executions/` |
|
|
48
48
|
| `eda-fix` | Делает обычные фиксы по короткому контексту, баг-репорту или плану. Перед правками читает правила, архитектуру и только применимые карточки, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | `docs/fixes/` |
|
|
49
49
|
| `eda-review` | Оркестрирует отдельные read-only проверки корректности, архитектуры, правил, references, плана, качества, тестов, безопасности, производительности, frontend/UI/UX, API, БД, документации и предыдущих ревью. По конфигу запускает только применимые packaged-агенты, объединяет подтверждённые проблемы, ставит экспертную оценку 0–100 и сохраняет покрытие. Без аргументов ревьюит `git diff HEAD`. Код и удалённые обсуждения не меняет | `docs/reviews/` |
|
|
50
50
|
| `eda-fix-by-review` | Применяет замечания из ревью с учётом правил, архитектуры и применимых карточек. Обязательные пункты исправляет сразу; optional-пункты спрашивает или решает сам в `apply-optional`. В конце ссылается на отчёт прямо в файле ревью | `docs/review-fixes/` |
|
package/package.json
CHANGED
package/skills/eda-aim/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-aim
|
|
3
|
-
description: 'Согласует
|
|
3
|
+
description: 'Согласует одну или несколько проверяемых целей и ведёт их выполнение до независимо подтверждённого результата.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Достижение цели (eda-aim)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-commit
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Создаёт один логический git-коммит и по явному запросу выполняет push, создание PR или merge.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Коммитер (eda-commit)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-discover-automations
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Аудирует автоматические проверки проекта и предлагает недостающие тесты, статический анализ, CI, MCP и другие автоматизации.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Поиск автоматизаций (eda-discover-automations)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-explore
|
|
3
|
-
description: 'Исследует тему или
|
|
3
|
+
description: 'Исследует техническую тему или задачу, сравнивает варианты и фиксирует выбранное решение без плана реализации.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Исследователь решений (eda-explore)
|
package/skills/eda-fix/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-fix
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Вносит изменения в код по плану или текстовому описанию задачи и проверяет результат.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Фиксер (eda-fix)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-fix-by-review
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Исправляет код по готовому ревью из файла или сообщения и проверяет результат.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Исправитель по ревью (eda-fix-by-review)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-manual-test
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Проводит ручную smoke/acceptance-проверку изменённого API или интерфейса и сохраняет отчёт.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Ручное тестирование (eda-manual-test)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-merge-worktree
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Мержит ветку из соседнего git worktree в текущую рабочую ветку.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Merge из worktree (eda-merge-worktree)
|
|
@@ -9,7 +9,7 @@ description: 'Оркестрирует merge ветки из соседнего
|
|
|
9
9
|
|
|
10
10
|
## Вход из сообщения пользователя
|
|
11
11
|
|
|
12
|
-
Сохрани весь текст текущего сообщения дословно в `$USER_REQUEST`. Это главный вход: номер worktree, короткое имя
|
|
12
|
+
Сохрани весь текст текущего сообщения дословно в `$USER_REQUEST`. Это главный вход: номер worktree, короткое имя или полное имя, ограничения и прямые указания. Аргумент принимает как `1`, `work-1` или `{name}-work-1`.
|
|
13
13
|
|
|
14
14
|
Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно. При последующем ответе на вопрос сохрани исходный `$USER_REQUEST` и передай ответ отдельно.
|
|
15
15
|
|
|
@@ -64,6 +64,8 @@ USER_REQUEST:
|
|
|
64
64
|
- статус: `merged`, `already up to date` или `conflict`;
|
|
65
65
|
- что worktree и исходная ветка не удалялись.
|
|
66
66
|
|
|
67
|
+
После успешного merge скил не удаляет worktree и ветку.
|
|
68
|
+
|
|
67
69
|
## Чего НЕ делать
|
|
68
70
|
|
|
69
71
|
- Выполнять работу `eda-merge-worktree-executor` основным агентом.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-new-project
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Собирает и согласует требования, границы, архитектурные драйверы и основной стек нового проекта, затем запускает его техническую подготовку.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Новый проект (eda-new-project)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-orhestra
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Выполняет настраиваемую цепочку `eda-*`-скилов для задачи или готового артефакта.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Оркестра полного цикла (eda-orhestra)
|
package/skills/eda-plan/SKILL.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
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/`, явно помечаешь зависимости задач и формируешь связные фазы для выполнения одним агентом, затем проверяешь план тремя параллельными субагентами/моделями. В `strict` добавляешь кросс-CLI проверку.
|
|
9
9
|
|
|
10
10
|
## Режим запуска
|
|
11
11
|
|
|
@@ -61,7 +61,7 @@ description: 'Пишет исполнимый план реализации че
|
|
|
61
61
|
7. Финальный план должен быть простым, исполнимым и без альтернатив вида «выбрать», «решить», «можно так или так», «предпочтительно».
|
|
62
62
|
8. Если нужны пакеты, библиотеки, CLI, сервисы или другое ПО, а версия не указана в контексте или lock/config-файлах, найди последнюю стабильную версию через context7 или web search по официальным источникам. Не пиши `latest` без конкретной версии и источника.
|
|
63
63
|
9. Если выбран `plan.size: short`, но задача не укладывается в ограничения, не сохраняй short-план: объясни причину, оцени нужный объём и спроси, продолжать в `normal` или сузить задачу.
|
|
64
|
-
10. Каждой задаче в фазах присвой уникальный ID
|
|
64
|
+
10. Каждой задаче в фазах присвой уникальный ID и укажи её прямые зависимости. Собери каждую фазу вокруг одной связной цели и объёма, который один исполнитель может реализовать и проверить за один проход; слишком крупную или несвязную фазу раздели.
|
|
65
65
|
|
|
66
66
|
## Этапы
|
|
67
67
|
|
|
@@ -86,7 +86,7 @@ description: 'Пишет исполнимый план реализации че
|
|
|
86
86
|
5. Пути к `docs/rules.md`, `docs/arch.md`, применимым карточкам, research и выписку обязательных элементов рамки.
|
|
87
87
|
6. Требование: план следует правилам, архитектуре и применимым эталонам с указанным приоритетом; при конфликте или необоснованном отклонении остановиться и спросить пользователя.
|
|
88
88
|
7. Требование: финальный план нормализуется в структуру ниже, не смешивает исследование с исполнением и не добавляет неподтверждённые существенные решения.
|
|
89
|
-
8. Требование: каждая задача получает уникальный ID
|
|
89
|
+
8. Требование: каждая задача получает уникальный ID и прямые зависимости, а каждая фаза образует связный объём работы для одного исполнителя.
|
|
90
90
|
|
|
91
91
|
Не выходи из Plan Mode, пока пользователь не подтвердил план.
|
|
92
92
|
|
|
@@ -135,9 +135,9 @@ sources:
|
|
|
135
135
|
Цель: <зачем нужна фаза>.
|
|
136
136
|
|
|
137
137
|
Что сделать:
|
|
138
|
-
- `[1.1]` <конкретная задача>. Зависит от: `—`.
|
|
139
|
-
- `[1.2]` <конкретная задача>. Зависит от:
|
|
140
|
-
- `[1.3]` <конкретная задача>. Зависит от: `[1.
|
|
138
|
+
- `[1.1]` <конкретная задача>. Зависит от: `—`.
|
|
139
|
+
- `[1.2]` <конкретная задача>. Зависит от: `[1.1]`.
|
|
140
|
+
- `[1.3]` <конкретная задача>. Зависит от: `[1.2]`.
|
|
141
141
|
|
|
142
142
|
Результат: <готовое состояние>.
|
|
143
143
|
|
|
@@ -163,10 +163,9 @@ sources:
|
|
|
163
163
|
Правила структуры:
|
|
164
164
|
|
|
165
165
|
- Риски не выносятся в отдельный обязательный раздел; закрытые риски встраиваются в решения, фазы, сценарии тестирования, проверки, логирование или эксплуатацию.
|
|
166
|
-
- Отдельный раздел порядка выполнения не нужен: основной поток задаётся номерами фаз, ID задач и их
|
|
166
|
+
- Отдельный раздел порядка выполнения не нужен: основной поток задаётся номерами фаз, ID задач и их зависимостями.
|
|
167
167
|
- ID задачи имеет формат `[<номер фазы>.<номер задачи>]` и уникален во всём плане. В `Зависит от` перечисляй только прямые зависимости; `—` означает, что задачу можно начинать независимо от других задач плана.
|
|
168
|
-
-
|
|
169
|
-
- Перед маркировкой проверь пересечения по файлам и участкам кода, данным, БД-миграциям, API/событийным схемам, сгенерированным артефактам и общему изменяемому состоянию. При конфликте или зависимости параллельность запрещена.
|
|
168
|
+
- Одну фазу целиком выполняет один изолированный субагент `eda-plan-execute`. Задачи фазы должны относиться к общей цели, иметь согласованный scope и помещаться в один исполнительский проход вместе с точечными и фазовыми проверками.
|
|
170
169
|
- В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты; если область не затрагивается, напиши `Не затрагивается`.
|
|
171
170
|
- В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
|
|
172
171
|
- Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай мета-ревью до ответа пользователя.
|
|
@@ -179,7 +178,7 @@ Quality gate перед сохранением и после мета-ревью
|
|
|
179
178
|
- нет конфликтов с правилами, архитектурой, границами модулей, API, миграциями, зависимостями и командами проверки;
|
|
180
179
|
- БД/API изменения описаны конкретно, а не общими словами;
|
|
181
180
|
- каждая фаза имеет цель, шаги, результат, сценарии тестирования и проверку;
|
|
182
|
-
- каждая задача имеет уникальный ID
|
|
181
|
+
- каждая задача имеет уникальный ID и прямые зависимости, ссылки на ID существуют, а каждая фаза связна и выполнима одним агентом за один проход;
|
|
183
182
|
- `test_strategy` и `logging_strategy` применены в фазах и отдельных разделах;
|
|
184
183
|
- для `short` не больше 2 фаз и явно указан ожидаемый объём;
|
|
185
184
|
- пакеты/ПО имеют конкретные версии или ссылку на существующий lock/config;
|
|
@@ -198,7 +197,7 @@ Quality gate перед сохранением и после мета-ревью
|
|
|
198
197
|
|
|
199
198
|
В интерактивном Codex, если доступен инструмент субагентов (`spawn_agent` или аналог), используй его. Не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны. В неинтерактивном fallback запускай три `codex exec --model <id>` параллельно одной Bash-командой с `&` и общим `wait`.
|
|
200
199
|
|
|
201
|
-
Промпт всем: прочитать план, `docs/rules.md`, `docs/arch.md`, карточки из `sources.references`, research из `sources.research` при наличии и релевантный код по глубине модели. Найти пропущенные шаги, нарушения правил/архитектуры/эталонов, необоснованные отклонения, скрытые риски, риски для смежного кода, недостающие тесты, шаги без критериев готовности, неверные зависимости и
|
|
200
|
+
Промпт всем: прочитать план, `docs/rules.md`, `docs/arch.md`, карточки из `sources.references`, research из `sources.research` при наличии и релевантный код по глубине модели. Найти пропущенные шаги, нарушения правил/архитектуры/эталонов, необоснованные отклонения, скрытые риски, риски для смежного кода, недостающие тесты, шаги без критериев готовности, неверные зависимости и слишком крупные или несвязные фазы для одного исполнителя. Формат ответа: `+ N | − N | ~ N: причина`; флагману явно скажи открывать файлы модулей, API, тестов и сценариев, на которые ссылается план.
|
|
202
201
|
|
|
203
202
|
После ответов интегрируй принятые замечания в основные разделы плана, снова прогони quality gate и добавь:
|
|
204
203
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan-execute
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Выполняет готовый план из `docs/plans/` последовательно по фазам с независимой проверкой результата.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Управляющий выполнением плана (eda-plan-execute)
|
|
7
7
|
|
|
8
|
-
Оркестрируй выполнение готового плана. Сам не реализуй задачи и не запускай проверки проекта: передавай каждую
|
|
8
|
+
Оркестрируй выполнение готового плана. Сам не реализуй задачи и не запускай проверки проекта: передавай каждую фазу целиком отдельному изолированному субагенту, а её приёмку — отдельному проверяющему. Связывай результаты фаз, обновляй прогресс плана и журнал выполнения.
|
|
9
9
|
|
|
10
10
|
## Вход из сообщения пользователя
|
|
11
11
|
|
|
@@ -16,14 +16,13 @@ description: 'Управляет выполнением готового пла
|
|
|
16
16
|
## Главные правила
|
|
17
17
|
|
|
18
18
|
1. **Основной агент только управляет.** Разрешены чтение контекста, построение очереди, запуск и контроль субагентов, вопросы пользователю, обновление `$PLAN_FILE` и `$EXECUTION_FILE`. Код, тесты, миграции, конфиги, зависимости, документацию проекта и git-состояние меняют только назначенные субагенты.
|
|
19
|
-
2. **Фазы выполняй строго последовательно.** Не запускай
|
|
20
|
-
3.
|
|
21
|
-
4.
|
|
22
|
-
5.
|
|
23
|
-
6.
|
|
24
|
-
7.
|
|
25
|
-
8.
|
|
26
|
-
9. **Не коммить, не пушь и не делай ревью.** Это другие скилы.
|
|
19
|
+
2. **Фазы выполняй строго последовательно.** Не запускай следующую фазу, пока исполнитель текущей не завершил все её задачи и отдельная проверка фазы не прошла.
|
|
20
|
+
3. **Одна фаза — один исполнитель.** Запускай каждую фазу целиком в новом субагенте со свежим контекстом без истории диалога. Сохраняй идентификатор исполнителя и продолжай его же для вопросов и исправлений этой фазы, пока среда позволяет.
|
|
21
|
+
4. **Рамку читает исполнитель фазы.** Каждый исполнитель целиком читает план, `docs/rules.md`, `docs/arch.md` и индекс `docs/references.md`, если файлы существуют. Если выполнение фазы затрагивает компонент, для которого в `docs/references.md` указана карточка, исполнитель читает эту карточку целиком перед соответствующим изменением.
|
|
22
|
+
5. **Соблюдай приоритет и блокируй конфликт.** Приоритет: подтверждённое решение пользователя → `docs/rules.md` → `docs/arch.md` → релевантные карточки. При конфликте или необоснованном отклонении от примера применимой карточки исполнитель возвращает `blocked`, а основной агент спрашивает, адаптировать план, вернуться к `eda-plan` или отдельно изменить документацию.
|
|
23
|
+
6. **Отмечай только подтверждённое.** Ставь задаче `[x]` только после `completed` от исполнителя и успешной точечной проверки. Фазу закрывай только после отдельного `passed` от проверяющего фазы. При последующем опровержении верни отметку в незавершённое состояние.
|
|
24
|
+
7. **Проверки нельзя подавлять.** Не поручай отключать линтеры, тесты, typecheck, static analysis и другие проверки, добавлять игноры или ослаблять команды и правила. Причину падения исправляет исполнитель соответствующей фазы, затем отдельный субагент повторяет проверку.
|
|
25
|
+
8. **Не коммить, не пушь и не делай ревью.** Это другие скилы.
|
|
27
26
|
|
|
28
27
|
## Интерактивные вопросы
|
|
29
28
|
|
|
@@ -53,19 +52,16 @@ description: 'Управляет выполнением готового пла
|
|
|
53
52
|
|
|
54
53
|
Сам git-команды не выполняй. Для выбранной новой ветки или worktree запусти отдельного изолированного субагента подготовки окружения. Передай ему только выбранный вариант, slug плана, рабочую директорию и запрет менять код. Если выбран worktree, после успешного создания остановись и дай готовую команду перехода и нового запуска `eda-plan-execute <PLAN_FILE>`: текущая сессия не переезжает в другую директорию.
|
|
55
54
|
|
|
56
|
-
### 3. Прочитать
|
|
55
|
+
### 3. Прочитать план и проверить фазы
|
|
57
56
|
|
|
58
|
-
Прочитай `$PLAN_FILE
|
|
59
|
-
|
|
60
|
-
Для каждой фазы извлеки задачи, ID, прямые зависимости, поле `Параллельно`, ожидаемый результат, сценарии тестирования и проверки. До запуска проверь:
|
|
57
|
+
Прочитай `$PLAN_FILE`. Для каждой фазы извлеки задачи, ID, прямые зависимости, ожидаемый результат, сценарии тестирования и проверки. До запуска проверь:
|
|
61
58
|
|
|
62
59
|
- все ID уникальны, а ссылки ведут на существующие задачи;
|
|
63
60
|
- зависимости не образуют цикл и не ведут в будущую фазу;
|
|
64
|
-
- параллельность симметрична и не противоречит зависимостям;
|
|
65
|
-
- параллельные задачи не меняют одни файлы или участки, общий контракт, одну миграционную цепочку, общие генерируемые артефакты или иное изменяемое состояние;
|
|
66
|
-
- шаги не конфликтуют с правилами, архитектурой и применимыми карточками;
|
|
67
61
|
- у каждой фазы есть проверяемый результат и команда либо критерий проверки.
|
|
68
62
|
|
|
63
|
+
Поля `Параллельно` в старых планах не влияют на исполнение: все задачи фазы выполняет один субагент по зависимостям.
|
|
64
|
+
|
|
69
65
|
Если граф неоднозначен или небезопасен, не исправляй смысл плана молча. Используй `AskUserQuestion` с предложением вернуть план в `eda-plan` или `eda-plan-polish`.
|
|
70
66
|
|
|
71
67
|
### 4. Инициализировать прогресс
|
|
@@ -89,7 +85,7 @@ current_phase: <номер>
|
|
|
89
85
|
|---|---|---|---|
|
|
90
86
|
|
|
91
87
|
## Запуски субагентов
|
|
92
|
-
| Время | Роль |
|
|
88
|
+
| Время | Роль | Фаза | Результат | Файлы | Проверки |
|
|
93
89
|
|---|---|---|---|---|---|
|
|
94
90
|
|
|
95
91
|
## Решения и блокеры
|
|
@@ -103,22 +99,26 @@ current_phase: <номер>
|
|
|
103
99
|
|
|
104
100
|
В Codex используй `spawn_agent` с `fork_turns: "none"` или точный аналог. В Claude Code используй новый `Agent` с самодостаточным task-сообщением. Если чистая изоляция или субагенты недоступны, остановись с `blocked: недоступно изолированное выполнение`; не выполняй работу основным агентом и не добавляй CLI-fallback.
|
|
105
101
|
|
|
106
|
-
Каждому исполнителю
|
|
102
|
+
Каждому исполнителю фазы передай:
|
|
107
103
|
|
|
108
|
-
- рабочую директорию, `$PLAN_FILE`,
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
- команды или критерии проверки этой задачи;
|
|
113
|
-
- ограничения пользователя, запрет коммитить и запрет менять план и журнал.
|
|
104
|
+
- рабочую директорию, `$PLAN_FILE`, номер и полный текст текущей фазы;
|
|
105
|
+
- краткие результаты уже завершённых фаз;
|
|
106
|
+
- пути к `docs/rules.md`, `docs/arch.md` и `docs/references.md`;
|
|
107
|
+
- ограничения пользователя, команды и критерии проверки фазы, запрет коммитить и запрет менять план и журнал.
|
|
114
108
|
|
|
115
|
-
Исполнитель
|
|
109
|
+
Исполнитель целиком читает `$PLAN_FILE`, `docs/rules.md` и `docs/arch.md`, затем выполняет все задачи назначенной фазы по прямым зависимостям. Если выполнение фазы затрагивает компонент, для которого в `docs/references.md` указана карточка, исполнитель читает эту карточку целиком перед соответствующим изменением. После каждой задачи он выполняет её точечные проверки, а в конце — все проверки фазы. Требуй YAML-результат:
|
|
116
110
|
|
|
117
111
|
```yaml
|
|
118
112
|
status: completed | needs_input | failed | blocked
|
|
119
|
-
|
|
113
|
+
phase: <номер>
|
|
120
114
|
summary: <что сделано>
|
|
115
|
+
tasks:
|
|
116
|
+
- id: <ID>
|
|
117
|
+
status: completed | failed | blocked
|
|
118
|
+
summary: <кратко>
|
|
119
|
+
checks: [<результаты точечных проверок>]
|
|
121
120
|
files_changed: [<пути>]
|
|
121
|
+
references_read: [<пути или пусто>]
|
|
122
122
|
checks:
|
|
123
123
|
- command: <команда или критерий>
|
|
124
124
|
status: passed | failed | not_run
|
|
@@ -128,26 +128,22 @@ risks: [<остаточные риски или пусто>]
|
|
|
128
128
|
questions: [<вопросы или пусто>]
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
-
Не принимай `completed`, если обязательная проверка
|
|
131
|
+
Не принимай `completed`, если хотя бы одна задача или обязательная проверка фазы не прошла, исполнитель вышел за назначенный scope, молча отклонился от рамки или изменил план/журнал.
|
|
132
132
|
|
|
133
|
-
### 6. Выполнять фазы
|
|
133
|
+
### 6. Выполнять фазы
|
|
134
134
|
|
|
135
135
|
Для каждой фазы по порядку:
|
|
136
136
|
|
|
137
|
-
1.
|
|
138
|
-
2.
|
|
139
|
-
3.
|
|
140
|
-
4.
|
|
141
|
-
5. `
|
|
142
|
-
6.
|
|
143
|
-
7. Для `blocked` останови зависимые задачи. Если блокер внешний или требует изменения scope, задай вопрос; основной агент не устраняет его содержательно.
|
|
144
|
-
8. Когда волна завершена, пересчитай готовые задачи. Не переходи к следующей фазе, пока текущая не закрыта.
|
|
145
|
-
|
|
146
|
-
Если параллельные исполнители неожиданно пересеклись по файлам или контракту, не объединяй результаты вслепую. Останови затронутые задачи, запиши конфликт и запусти отдельного субагента для диагностики и безопасного согласования изменений.
|
|
137
|
+
1. Запусти одного нового изолированного исполнителя и сохрани его идентификатор как исполнителя этой фазы.
|
|
138
|
+
2. После ответа проверь YAML-контракт, фактический scope файлов и результаты точечных и фазовых проверок. Запиши запуск в журнал и поставь `[x]` только задачам со статусом `completed` и успешными точечными проверками.
|
|
139
|
+
3. `needs_input` передай пользователю одним блокирующим вопросом. После ответа продолжи того же исполнителя фазы с ответом и его предыдущим результатом. Если среда не умеет продолжать завершённого субагента, запусти нового изолированного исполнителя этой же фазы и передай ему полный предыдущий результат.
|
|
140
|
+
4. Для `failed` продолжи того же исполнителя фазы с полным неуспешным результатом и поручением исправить причину и повторить проверки. Если две попытки подряд возвращают ту же причину без содержательного изменения результата, остановись с `blocked: выполнение не сходится` и зафиксируй доказательства вместо бесконечного цикла.
|
|
141
|
+
5. Для `blocked` останови выполнение. Если блокер внешний или требует изменения scope, задай вопрос; основной агент не устраняет его содержательно.
|
|
142
|
+
6. После `completed` запусти независимую проверку фазы. Не переходи к следующей фазе, пока текущая не закрыта.
|
|
147
143
|
|
|
148
144
|
### 7. Проверять каждую фазу
|
|
149
145
|
|
|
150
|
-
После
|
|
146
|
+
После `completed` от исполнителя запусти нового изолированного субагента-проверяющего. Он не меняет файлы, целиком читает план, `docs/rules.md`, `docs/arch.md` и индекс `docs/references.md`, если они существуют. Если итог фазы затрагивает компонент, для которого в индексе указана карточка, проверяющий читает её целиком. Затем он выполняет все проверки из раздела фазы и подтверждает критерии результата. Требуй YAML:
|
|
151
147
|
|
|
152
148
|
```yaml
|
|
153
149
|
status: passed | failed | blocked
|
|
@@ -157,29 +153,29 @@ checks:
|
|
|
157
153
|
status: passed | failed
|
|
158
154
|
result: <кратко>
|
|
159
155
|
failures: [<проблемы с доказательствами или пусто>]
|
|
156
|
+
references_read: [<пути или пусто>]
|
|
160
157
|
```
|
|
161
158
|
|
|
162
|
-
При `failed`
|
|
159
|
+
При `failed` передай полный результат проверки исполнителю этой фазы и поручи исправить все подтверждённые проблемы, затем запусти нового проверяющего всей фазы. Если продолжить прежнего исполнителя невозможно, запусти одного нового изолированного исполнителя для исправления всей фазы с её полным контекстом. Основной агент не чинит код и не переиспользует контекст прежнего проверяющего. При `passed` отметь фазу завершённой и только тогда переходи к следующей.
|
|
163
160
|
|
|
164
161
|
### 8. Выполнить финальную проверку
|
|
165
162
|
|
|
166
|
-
После всех фаз запусти отдельного нового субагента для полного набора тестов, линтеров, typecheck, static analysis и других обязательных команд проекта. Он только проверяет и не меняет
|
|
163
|
+
После всех фаз запусти отдельного нового субагента для полного набора тестов, линтеров, typecheck, static analysis и других обязательных команд проекта. Он только проверяет и не меняет файлы, целиком читает план, `docs/rules.md`, `docs/arch.md` и индекс `docs/references.md`, если они существуют. Если итоговые изменения затрагивают компонент, для которого в индексе указана карточка, проверяющий читает её целиком перед оценкой соответствующего результата.
|
|
167
164
|
|
|
168
|
-
Если финальная проверка упала из-за сделанных изменений,
|
|
165
|
+
Если финальная проверка упала из-за сделанных изменений, сопоставь ошибки с фазами и передай каждую группу исполнителю соответствующей фазы; несколько затронутых фаз исправляй по порядку плана. Если продолжить прежнего исполнителя невозможно, запусти одного нового изолированного исполнителя для каждой затронутой фазы. Затем повтори всю финальную проверку новым субагентом. Чужую или несвязанную поломку зафиксируй и используй `AskUserQuestion`, если без решения нельзя завершить план. Запрещено делать проверки зелёными через подавление ошибок, игноры, исключения, ослабление конфигов или изменение команд проверки.
|
|
169
166
|
|
|
170
167
|
Запиши команды и результаты в `## Финальная проверка`. Только после `passed` поставь в журнале `status: done` и время завершения. Если обязательная проверка объективно недоступна, сохрани `status: blocked`, причину и непройденные критерии; не выдавай план за выполненный.
|
|
171
168
|
|
|
172
169
|
### 9. Финал
|
|
173
170
|
|
|
174
|
-
Коротко сообщи пути к плану и журналу, завершённые фазы и задачи,
|
|
171
|
+
Коротко сообщи пути к плану и журналу, завершённые фазы и задачи, результат фазовых и финальной проверок, оставшиеся блокеры, состояние git «не закоммичено» и следующий шаг: `eda-review` или `eda-commit`.
|
|
175
172
|
|
|
176
173
|
## Чего НЕ делать
|
|
177
174
|
|
|
178
175
|
- Самому менять код, тесты, миграции, конфиги, зависимости или проектную документацию.
|
|
179
176
|
- Самому запускать тесты, линтеры, typecheck, сборку, миграции, серверы или другие команды разработки и проверки.
|
|
180
|
-
-
|
|
177
|
+
- Дробить одну фазу между несколькими исполнителями или поручать одному исполнителю несколько фаз.
|
|
181
178
|
- Запускать следующую фазу до успешной отдельной проверки текущей.
|
|
182
|
-
- Запускать параллельно задачи без явной безопасной маркировки плана или с пересечением изменяемых ресурсов.
|
|
183
179
|
- Давать субагентам историю диалога или разрешать им менять план и журнал.
|
|
184
180
|
- Исправлять падение основным агентом либо продолжать после него без повторной проверки новым субагентом.
|
|
185
181
|
- Подавлять ошибки проверок, ослаблять правила или менять команды ради зелёного результата.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan-polish
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Проверяет и улучшает готовый план реализации итерациями до заданной оценки.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Полировка плана (eda-plan-polish)
|
|
@@ -81,7 +81,7 @@ description: 'Полирует готовый план из `docs/plans/...` д
|
|
|
81
81
|
```text
|
|
82
82
|
Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, прочитай docs/references.md и выбери только применимые карточки.
|
|
83
83
|
|
|
84
|
-
Проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и применимым эталонам, обоснованность отклонений от примеров, полноту целевого алгоритма, БД/API/внешние контракты,
|
|
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.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, выбери применимые карточки через docs/references.md. Глубоко проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и эталонам, обоснованность отклонений, полноту целевого алгоритма, БД/API/внешние контракты,
|
|
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.references, sources.research при наличии и релевантные файлы, на которые ссылается план. Если sources.references отсутствует, выбери применимые карточки через docs/references.md. Глубоко проверь весь план целиком: исполнимость, соответствие правилам, архитектуре и эталонам, обоснованность отклонений, полноту целевого алгоритма, БД/API/внешние контракты,
|
|
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 четвёртым локальным субагентом.
|
|
@@ -124,6 +124,7 @@ claude -p "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карто
|
|
|
124
124
|
- `Целевой алгоритм` описывает сквозное поведение;
|
|
125
125
|
- `Контракты реализации` конкретны, особенно БД/API/внешние контракты;
|
|
126
126
|
- фазы имеют цель, шаги, результат, сценарии тестирования и проверку;
|
|
127
|
+
- каждая фаза связна и выполнима одним агентом за один проход;
|
|
127
128
|
- `test_strategy` и `logging_strategy` отражены в фазах и разделах;
|
|
128
129
|
- нет альтернатив вида «выбрать», «решить», «уточнить позже»;
|
|
129
130
|
- план можно передать в `eda-plan-execute` без нового исследования.
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-polish
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Итеративно ревьюит и исправляет изменения до заданной оценки качества.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Полировка изменений (eda-polish)
|
|
7
7
|
|
|
8
8
|
Оркестрируй цикл `eda-review` → `eda-fix-by-review apply-optional` → повторное `eda-review`. Основной агент только управляет итерациями, читает сохранённые артефакты и сообщает результат.
|
|
9
|
+
В начале каждой итерации запускай полное `eda-review` целевого изменения.
|
|
9
10
|
|
|
10
11
|
## Вход из сообщения пользователя
|
|
11
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-prepare-ai
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Готовит проект к работе с AI: проектирует архитектуру, правила, проверки, references и агентный процесс.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Подготовка проекта для AI (eda-prepare-ai)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-review
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Проводит полное read-only ревью diff, ветки, PR/MR, коммита, папки или файла и сохраняет итоговый отчёт.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Ревьюер (eda-review)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-roadmap
|
|
3
|
-
description: 'Создаёт
|
|
3
|
+
description: 'Создаёт продуктовый или технический roadmap как список будущих задач без деталей реализации.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Roadmap (eda-roadmap)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-send-review
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Публикует готовое ревью из `docs/reviews/` в GitHub PR как сводку и inline-комментарии.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Отправитель ревью (eda-send-review)
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-worktree
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Создаёт новый соседний git worktree и одноимённую ветку для изолированной работы.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Создатель worktree (eda-worktree)
|
|
7
7
|
|
|
8
8
|
Работай как лёгкий оркестратор установленного агента `eda-worktree-executor`. Сам не исследуй git-состояние, не выбирай имя или базу и не выполняй команды.
|
|
9
|
+
Создаваемые директория и ветка используют шаблон `{name}-work-{n}`.
|
|
9
10
|
|
|
10
11
|
## Вход из сообщения пользователя
|
|
11
12
|
|
|
12
13
|
Сохрани весь текст текущего сообщения дословно в `$USER_REQUEST`. Это главный вход: базовая ветка или ref, ограничения и прямые указания.
|
|
14
|
+
Базовую ветку берёт из текста рядом с вызовом исполнитель; если она не указана, он возвращает вопрос.
|
|
13
15
|
|
|
14
16
|
Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно. При последующем ответе на вопрос сохрани исходный `$USER_REQUEST` и передай ответ отдельно.
|
|
15
17
|
|