@gian-tiaga/eda 0.5.2 → 0.5.4
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 +7 -6
- package/lib/install.js +1 -1
- package/package.json +1 -1
- package/skills/eda-explore.md +18 -12
- package/skills/eda-plan.md +41 -11
- package/skills/eda-review.md +5 -4
package/README.md
CHANGED
|
@@ -28,8 +28,8 @@ eda init
|
|
|
28
28
|
| Скил | Что делает | Куда складывает |
|
|
29
29
|
|---|---|---|
|
|
30
30
|
| `eda-roadmap` | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | `docs/roadmaps/` |
|
|
31
|
-
| `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. Если нужны пакеты или ПО — проверяет актуальные стабильные версии через context7 или web search | `docs/researches/` |
|
|
32
|
-
| `eda-plan` | Пишет план реализации через стандартный Plan Mode хост-агента. Подтягивает контекст из `docs/rules.md`, `docs/arch.md`, при желании — релевантное исследование. Затем три параллельных
|
|
31
|
+
| `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. В дефолтном режиме ведёт исследование как диалог: факты собирает сам, а значимые развилки выносит тебе с рекомендацией. Если нужны пакеты или ПО — проверяет актуальные стабильные версии через context7 или web search | `docs/researches/` |
|
|
32
|
+
| `eda-plan` | Пишет план реализации через стандартный Plan Mode хост-агента. Подтягивает контекст из `docs/rules.md`, `docs/arch.md`, при желании — релевантное исследование. В плане явно фиксирует контракты БД/API, если задача их затрагивает. Затем три параллельных субагента/модели (слабая, средняя, мощная) проверяют план на реалистичность, пропущенные шаги и нарушения правил — главный планировщик сам решает, что применить | `docs/plans/` |
|
|
33
33
|
| `eda-execute` | Выполняет план. Спрашивает, где работать (текущая ветка, новая ветка, отдельный worktree). Тесты пишет внутри каждого шага. В конце — полный прогон тестов и линтеров | `docs/executions/` |
|
|
34
34
|
| `eda-fix` | Делает обычные фиксы по короткому контексту, баг-репорту или файлу плана. Перед правками читает правила и архитектуру, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | `docs/fixes/` |
|
|
35
35
|
| `eda-review` | Делает код-ревью с оценкой 0–100 и сверкой с планом работ, но в файл пишет только проблемы: ошибки, недоделки, неточности, нарушения правил/архитектуры, риски и недостающие тесты. Не перечисляет выполненную работу. Затем параллельные специализированные агенты проверяют выполнение плана, архитектуру, правила и при включённой настройке качество кода. В строгом режиме — ещё и кросс-ревью между Claude и Codex | `docs/reviews/` |
|
|
@@ -50,8 +50,8 @@ eda init
|
|
|
50
50
|
| Скил | Флаг | Что включает | Когда стоит использовать |
|
|
51
51
|
|---|---|---|---|
|
|
52
52
|
| `eda-explore` | `strict` | После сохранения отчёта отдаёт его соседнему CLI (Claude → Codex или наоборот) на критическое ревью конкретности, фактов, развилок, рисков и версий; затем доправляет отчёт по замечаниям | Серьёзные исследования, которые лягут в основу больших решений; когда хочется второго мнения от другой модели/среды |
|
|
53
|
-
| `eda-plan` | `strict` | После мета-ревью трёх
|
|
54
|
-
| `eda-review` | `strict` | После мета-ревью специализированными
|
|
53
|
+
| `eda-plan` | `strict` | После обычного мета-ревью трёх субагентов/моделей отдаёт план соседнему CLI на дополнительный круг проверки; доправляет план | Большие или ответственные планы, особенно затрагивающие смежные системы |
|
|
54
|
+
| `eda-review` | `strict` | После обычного мета-ревью специализированными субагентами отдаёт ревью соседнему CLI на дополнительный круг проверки; доправляет ревью по его замечаниям | Ревью важных PR; когда нужен максимальный охват |
|
|
55
55
|
|
|
56
56
|
---
|
|
57
57
|
|
|
@@ -71,7 +71,7 @@ defaults:
|
|
|
71
71
|
# Задаёт размер плана по умолчанию для eda-plan.
|
|
72
72
|
# normal | short | ask_each_time
|
|
73
73
|
plan_size: normal
|
|
74
|
-
# Определяет, как eda-explore
|
|
74
|
+
# Определяет, как eda-explore ведёт исследовательские развилки, а eda-plan принимает существенные решения.
|
|
75
75
|
# autonomous | recommend_and_ask | ask_each_time
|
|
76
76
|
decision_mode: recommend_and_ask
|
|
77
77
|
# Задаёт стратегию тестов по умолчанию для eda-plan.
|
|
@@ -95,7 +95,7 @@ review:
|
|
|
95
95
|
Что означают настройки:
|
|
96
96
|
- `defaults.strict` — включает strict-режим по умолчанию для `eda-explore`, `eda-plan` и `eda-review`.
|
|
97
97
|
- `defaults.plan_size` — размер плана для `eda-plan`: `normal`, `short` или `ask_each_time`.
|
|
98
|
-
- `defaults.decision_mode` — как `eda-explore`
|
|
98
|
+
- `defaults.decision_mode` — как `eda-explore` ведёт исследовательские развилки, а `eda-plan` принимает существенные решения: `autonomous` выбирает сам, `recommend_and_ask` рекомендует и спрашивает по значимым развилкам, `ask_each_time` спрашивает по каждой развилке, которая влияет на ход работы или итоговый выбор.
|
|
99
99
|
- `defaults.test_strategy` — стратегия тестов для `eda-plan`: `after_each_phase`, `tdd_each_phase`, `end_of_plan` или `ask_each_time`.
|
|
100
100
|
- `defaults.logging_strategy` — стратегия логирования для `eda-plan`: `debug_precise`, `standard` или `ask_each_time`.
|
|
101
101
|
- `automate.include_plans` — добавляет `docs/plans/` в обычный запуск `eda-automate`.
|
|
@@ -127,6 +127,7 @@ automate может запускаться от review, fix-by-review или fix
|
|
|
127
127
|
|
|
128
128
|
- **Простой язык.** Скилы общаются с тобой так, чтобы понял человек без глубоких знаний предмета. Термины — только когда без них нельзя.
|
|
129
129
|
- **Все вопросы — интерактивно.** В Claude Code — через `AskUserQuestion`; в интерактивном Codex — через `request_user_input` или блокирующий вопрос в чат. В `codex exec` и других неинтерактивных запусках скил не имитирует диалог: если без ответа нельзя безопасно продолжать, он завершает работу со статусом `blocked: нужен ответ пользователя`.
|
|
130
|
+
- **Мета-проверки — через субагентов.** В интерактивном Codex обычные проверки планов и ревью запускаются через `spawn_agent` или аналогичный инструмент субагентов. Отдельный `codex exec` остаётся fallback для неинтерактивного режима и механизмом strict-кросс-проверки соседним CLI.
|
|
130
131
|
- **Артефакты по папкам.** Исследования отдельно, планы отдельно, ревью отдельно. Между файлами — ссылки. Через месяц легко найти, кто что когда решал.
|
|
131
132
|
- **Границы между скилами жёсткие.** `execute` не коммитит — это работа `commit`. `review` не правит код — это `fix-by-review`. Никаких размытых ответственностей.
|
|
132
133
|
- **Доверие модели.** Скилы короткие. Они говорят «что» и «почему», а «как именно» — модель разбирается сама.
|
package/lib/install.js
CHANGED
|
@@ -270,7 +270,7 @@ defaults:
|
|
|
270
270
|
# Задаёт размер плана по умолчанию для eda-plan.
|
|
271
271
|
# normal | short | ask_each_time
|
|
272
272
|
plan_size: ${settings.planSize}
|
|
273
|
-
# Определяет, как eda-explore
|
|
273
|
+
# Определяет, как eda-explore ведёт исследовательские развилки, а eda-plan принимает существенные решения.
|
|
274
274
|
# autonomous | recommend_and_ask | ask_each_time
|
|
275
275
|
decision_mode: ${settings.decisionMode}
|
|
276
276
|
# Задаёт стратегию тестов по умолчанию для eda-plan.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gian-tiaga/eda",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "Набор скилов eda-* для Claude Code и Codex CLI: roadmap, explore, plan, execute, fix, review, fix-by-review, send-review, commit, docs, automate",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/skills/eda-explore.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-explore
|
|
3
|
-
description: 'Исследует тему или задачу до конкретного результата: проясняет проблему, архитектуру, развилки,
|
|
3
|
+
description: 'Исследует тему или задачу до конкретного результата: проясняет проблему, архитектуру, развилки, риски и короткий выбранный вариант решения без плана реализации. Работает read-only и ведёт исследование как диалог: факты собирает сам, а значимые развилки выносит пользователю по `defaults.decision_mode` из `docs/settings.yaml`. Если исследование касается пакетов, библиотек, CLI, сервисов или другого ПО, проверяет актуальные стабильные версии через context7, если он доступен, или через web search по официальным источникам. Итог сохраняет в docs/researches/. Кросс-ревью соседним агентом (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true`.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Исследователь решений (eda-explore)
|
|
@@ -20,7 +20,7 @@ description: 'Исследует тему или задачу до конкре
|
|
|
20
20
|
|
|
21
21
|
Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, задачу, путь к файлу, режим, ограничения и прямые указания.
|
|
22
22
|
|
|
23
|
-
Если входа достаточно,
|
|
23
|
+
Если входа достаточно, не спрашивай подтверждение самой темы. `AskUserQuestion` на этом этапе задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск исследовать не то. Это не отменяет обязательные вопросы по исследовательским развилкам ниже. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
|
|
24
24
|
|
|
25
25
|
## Настройки проекта
|
|
26
26
|
|
|
@@ -37,24 +37,28 @@ description: 'Исследует тему или задачу до конкре
|
|
|
37
37
|
| Ключ | Значения | Что значит |
|
|
38
38
|
|---|---|---|
|
|
39
39
|
| `defaults.decision_mode` | `autonomous` | Агент сам выбирает по коду, правилам, архитектуре, источникам и рискам, затем записывает причину. |
|
|
40
|
-
| `defaults.decision_mode` | `recommend_and_ask` | Агент
|
|
41
|
-
| `defaults.decision_mode` | `ask_each_time` | Агент спрашивает по каждой
|
|
40
|
+
| `defaults.decision_mode` | `recommend_and_ask` | Дефолт. Агент сам собирает факты, рекомендует вариант и спрашивает пользователя по каждой значимой развилке исследования до финализации. |
|
|
41
|
+
| `defaults.decision_mode` | `ask_each_time` | Агент спрашивает по каждой развилке, которая влияет на направление исследования или итоговый выбор, даже если есть сильная рекомендация. |
|
|
42
42
|
|
|
43
43
|
Если `defaults.decision_mode` отсутствует или неизвестен, считай его `recommend_and_ask`.
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
Значимая исследовательская развилка — это выбор, который меняет направление исследования, итоговую рекомендацию, границы задачи, архитектуру, зависимости, стоимость, безопасность, эксплуатацию, совместимость или будущую миграцию проекта. Не спрашивай о фактах, которые можно выяснить через код, документы или источники; спрашивай о выборе, предпочтении или компромиссе.
|
|
46
|
+
|
|
47
|
+
Всегда считай значимыми:
|
|
46
48
|
- выбор нового пакета, библиотеки, фреймворка, SDK, CLI или сервиса;
|
|
47
49
|
- выбор базы данных, ORM/query builder, очереди, кэша, storage, search, background jobs;
|
|
48
50
|
- миграции данных, изменение схемы, формат хранения или стратегия совместимости;
|
|
49
51
|
- auth, permissions, payments, crypto, secrets, персональные данные и другие security-sensitive решения;
|
|
50
52
|
- cloud/provider choices, managed services, лицензии, cost/lock-in и SLA;
|
|
51
53
|
- архитектурные паттерны, затрагивающие несколько модулей или публичные контракты.
|
|
54
|
+
- продуктовый компромисс между скоростью, качеством, UX, стоимостью, сроком или объёмом;
|
|
55
|
+
- выбор, который влияет на то, какой результат будет передан в `eda-plan`.
|
|
52
56
|
|
|
53
57
|
## Главные правила
|
|
54
58
|
|
|
55
59
|
1. **Никаких правок кода.** Запись только в `docs/researches/`.
|
|
56
60
|
2. **Итог — конкретика.** Нельзя заканчивать абстрактными описаниями, списком возможностей или «можно выбрать один из вариантов».
|
|
57
|
-
3. **Развилки закрывай по `decision_mode`.**
|
|
61
|
+
3. **Развилки закрывай по `decision_mode`.** В `recommend_and_ask` значимые развилки исследования подтверждай у пользователя до финализации: сначала собери факты, затем дай рекомендацию и варианты. В `ask_each_time` спрашивай ещё чаще: по каждой развилке, которая влияет на ход исследования или итоговый выбор. В `autonomous` выбирай сам, если выбор можно обосновать кодом, правилами, архитектурой, источниками и рисками. Мелкие локальные решения, которые не меняют смысл исследования и легко обратимы, выбирай сам и не создавай шум.
|
|
58
62
|
4. **Риски вплетай в исследование.** Не создавай отдельный обязательный раздел или этап рисков. Если риск влияет на выбор, источник, ограничение или будущую проверку, фиксируй его рядом с соответствующим решением: что может пойти не так и как это учитывается — снимаем, принимаем или выносим за рамки.
|
|
59
63
|
5. **Версии проверяй.** Если речь о пакетах, библиотеках, CLI, сервисах или другом ПО, а версия не задана контекстом, проверь последнюю стабильную версию через context7, если он доступен, или через web search по официальным источникам.
|
|
60
64
|
6. **Прочитай `docs/rules.md` и `docs/arch.md`**, если есть, и используй их как рамку.
|
|
@@ -94,19 +98,21 @@ description: 'Исследует тему или задачу до конкре
|
|
|
94
98
|
|
|
95
99
|
### 3. Закрыть развилки
|
|
96
100
|
|
|
97
|
-
Собери все
|
|
101
|
+
Собери все значимые развилки: архитектурные, продуктовые, технические, миграционные, по зависимостям и совместимости.
|
|
102
|
+
|
|
103
|
+
Не начинай с вопросов, если можно сначала быстро собрать факты. После первичного контекста сгруппируй близкие развилки в пакет из 1–3 вопросов, чтобы пользователь принимал решения осознанно, а диалог не распадался на мелочи.
|
|
98
104
|
|
|
99
105
|
Для каждой развилки:
|
|
100
106
|
- перечисли варианты;
|
|
101
107
|
- выбери один вариант или подготовь рекомендацию;
|
|
102
108
|
- запиши источник и причину выбора;
|
|
103
109
|
- если у варианта есть важный риск, опиши его здесь же и сразу зафиксируй, как он влияет на выбранное решение;
|
|
104
|
-
- если развилка
|
|
105
|
-
- если развилка
|
|
110
|
+
- если развилка значимая и `decision_mode: recommend_and_ask` — задай `AskUserQuestion`: 2–3 варианта, первым рекомендованный, короткая причина рекомендации, вариант «свой вариант», фраза «Я продолжу только после ответа.»;
|
|
111
|
+
- если развилка влияет на ход исследования или итоговый выбор и `decision_mode: ask_each_time` — задай `AskUserQuestion` даже при сильной рекомендации;
|
|
106
112
|
- если `decision_mode: autonomous` и выбор можно обосновать кодом, правилами, архитектурой, источниками и рисками — выбери сам и запиши почему;
|
|
107
113
|
- если выбрать нельзя без пользовательского решения — задай `AskUserQuestion` и не продолжай финализацию.
|
|
108
114
|
|
|
109
|
-
Не прячь
|
|
115
|
+
Не прячь значимый выбор внутри текста. Например, если нужен пакет для базы данных, сначала сравни 2–3 подходящих варианта, затем в `recommend_and_ask` спроси подтверждение выбора пакета/БД до записи финального решения.
|
|
110
116
|
|
|
111
117
|
Если по ходу исследования находится высокий риск без понятного решения, это блокер: задай `AskUserQuestion` или заверши со статусом `blocked`. Не выноси риски в отдельную секцию ради формы; они должны естественно лежать в `Решении`, причинах выбора, ограничениях, проверках версий или итоговом выводе.
|
|
112
118
|
|
|
@@ -143,7 +149,7 @@ sources:
|
|
|
143
149
|
- объяснение, почему выбран этот вариант, а не альтернативы.
|
|
144
150
|
|
|
145
151
|
## Ответы на вопросы
|
|
146
|
-
|
|
152
|
+
Вопросы и развилки, которые были вынесены пользователю в процессе исследования, а также ответы пользователя. Если вопросов не было — «Не требовались.»
|
|
147
153
|
|
|
148
154
|
## Итог
|
|
149
155
|
Короткая конкретика: что делать дальше на уровне подхода, без плана реализации.
|
|
@@ -154,7 +160,7 @@ Quality gate перед сохранением:
|
|
|
154
160
|
- в `Суть` чётко описано, что исследовали и какая проблема решается;
|
|
155
161
|
- в `Решение` есть выбранный вариант решения, а не набор равных альтернатив;
|
|
156
162
|
- в `Решение` есть описание архитектуры или явно сказано, почему архитектурный слой не затронут;
|
|
157
|
-
- в `Ответы на вопросы` записаны все
|
|
163
|
+
- в `Ответы на вопросы` записаны все вопросы и пользовательские выборы по развилкам, заданные в процессе исследования, чтобы `eda-plan` не задавал их повторно;
|
|
158
164
|
- в `Итог` есть короткая конкретика, что делать дальше на уровне подхода, без пошагового плана;
|
|
159
165
|
- нет незакрытых развилок;
|
|
160
166
|
- нет рисков, которые перечислены отдельно от решения и никак не влияют на выбор, ограничения или будущие проверки;
|
package/skills/eda-plan.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan
|
|
3
|
-
description: 'Пишет план реализации по тексту рядом с вызовом или указанному research-файлу через стандартный Plan Mode (Claude Code / Codex). Перед планированием читает docs/rules.md, docs/arch.md и строго следует им; research подтягивает без вопроса, если он указан или явно нужен. Поддерживает `short` для небольших фич: 1–2 фазы и компактный ревьюируемый объём. В начале фиксирует режим принятия решений, стратегию тестов и логирования из docs/settings.yaml или уточняет их у пользователя. Существенные решения подтверждает по `defaults.decision_mode`. Нормализует результат в исполнимый план с алгоритмом, фазами, проверками и без неразрешённых альтернатив; сохраняет его в docs/plans/. Всегда проверяет план тремя
|
|
3
|
+
description: 'Пишет план реализации по тексту рядом с вызовом или указанному research-файлу через стандартный Plan Mode (Claude Code / Codex). Перед планированием читает docs/rules.md, docs/arch.md и строго следует им; research подтягивает без вопроса, если он указан или явно нужен. Поддерживает `short` для небольших фич: 1–2 фазы и компактный ревьюируемый объём. В начале фиксирует режим принятия решений, стратегию тестов и логирования из docs/settings.yaml или уточняет их у пользователя. Существенные решения подтверждает по `defaults.decision_mode`. Нормализует результат в исполнимый план с алгоритмом, фазами, проверками и без неразрешённых альтернатив; сохраняет его в docs/plans/. Всегда проверяет план тремя субагентами/моделями на реалистичность, пропущенные шаги, нарушения правил и риски. Кросс-CLI включается флагом `strict` или настройкой `defaults.strict: true`. Вопросы задаёт только когда без ответа нельзя безопасно продолжать, настройки требуют спрашивать или существенное решение требует подтверждения.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Планировщик (eda-plan)
|
|
7
7
|
|
|
8
|
-
Собираешь контекст, прогоняешь задачу через **стандартный Plan Mode** хост-агента, нормализуешь результат в исполнимый план и сохраняешь его в файл. Затем три
|
|
8
|
+
Собираешь контекст, прогоняешь задачу через **стандартный Plan Mode** хост-агента, нормализуешь результат в исполнимый план и сохраняешь его в файл. Затем три параллельных субагента/модели проверяют план на реалистичность — главный планировщик сам решает, что применить из их предложений. При `strict` — ещё и кросс-CLI на втором круге.
|
|
9
9
|
|
|
10
10
|
## Режимы вызова
|
|
11
11
|
|
|
@@ -95,6 +95,8 @@ description: 'Пишет план реализации по тексту ряд
|
|
|
95
95
|
- выбор нового пакета, библиотеки, фреймворка, SDK, CLI или сервиса;
|
|
96
96
|
- выбор базы данных, ORM/query builder, очереди, кэша, storage, search, background jobs;
|
|
97
97
|
- миграции данных, изменение схемы, формат хранения или стратегия совместимости;
|
|
98
|
+
- новые или изменённые схемы таблиц: поля, типы, связи, индексы, уникальные ограничения;
|
|
99
|
+
- новые или изменённые API/внешние контракты: маршруты, auth/permissions, request/query/body, response, ошибки и статус-коды;
|
|
98
100
|
- auth, permissions, payments, crypto, secrets, персональные данные и другие security-sensitive решения;
|
|
99
101
|
- cloud/provider choices, managed services, лицензии, cost/lock-in и SLA;
|
|
100
102
|
- архитектурные паттерны, затрагивающие несколько модулей или публичные контракты.
|
|
@@ -179,6 +181,8 @@ Research подтягивай так:
|
|
|
179
181
|
До Plan Mode закрой существенные решения:
|
|
180
182
|
- выпиши существенные развилки, которые следуют из задачи и контекста;
|
|
181
183
|
- если research содержит подтверждённый ответ пользователя по развилке — используй его и запиши как подтверждённое решение;
|
|
184
|
+
- если задача меняет БД или API/внешний контракт, проверь, подтверждены ли конкретные схемы таблиц или API-контракты пользователем в текущем сообщении, правилах, архитектуре или research с подтверждённым ответом пользователя;
|
|
185
|
+
- если конкретные схемы БД или API-контракты не подтверждены явно, до Plan Mode задай блокирующий вопрос и получи подтверждение пользователя; не проектируй таблицы и маршруты молча внутри Plan Mode;
|
|
182
186
|
- если `decision_mode: autonomous` и выбор можно обосновать кодом, правилами, архитектурой, источниками и рисками — выбери сам и запиши почему;
|
|
183
187
|
- если `decision_mode: recommend_and_ask` — задай `AskUserQuestion`: 2–3 варианта, первым рекомендованный, короткая причина рекомендации, вариант «свой вариант», фраза «Я продолжу только после ответа.»;
|
|
184
188
|
- если `decision_mode: ask_each_time` — задай `AskUserQuestion` по каждой значимой развилке, даже при сильной рекомендации;
|
|
@@ -231,11 +235,10 @@ Research подтягивай так:
|
|
|
231
235
|
6. Пары «вопрос → ответ» из этапа 3 и подтверждения существенных решений из research.
|
|
232
236
|
7. Ссылки на `docs/rules.md`, `docs/arch.md`, исследование (без пересказа — Plan Mode прочитает сам) и явное требование строго следовать правилам и архитектуре.
|
|
233
237
|
8. Инструкция: «все вопросы пользователю — только по разделу "Интерактивные вопросы", никаких догадок и продолжения без ответа».
|
|
234
|
-
9. Инструкция: «финальный план должен
|
|
235
|
-
10. Инструкция:
|
|
236
|
-
11. Инструкция: «если `plan_size: short`,
|
|
237
|
-
12. Инструкция:
|
|
238
|
-
13. Инструкция: «не добавляй неподтверждённые существенные решения в финальный план; если они возникли внутри Plan Mode, остановись и спроси пользователя».
|
|
238
|
+
9. Инструкция: «финальный план должен быть нормализован в обязательную структуру из этапа 5 и не должен смешивать исследование с планом исполнения».
|
|
239
|
+
10. Инструкция: «зафиксированные стратегии тестов и логирования должны быть применены в плане, а не просто записаны в YAML».
|
|
240
|
+
11. Инструкция: «если `plan_size: short`, соблюдай ограничения короткого плана из раздела "Размер плана"».
|
|
241
|
+
12. Инструкция: «не добавляй неподтверждённые существенные решения в финальный план; если они возникли внутри Plan Mode, остановись и спроси пользователя».
|
|
239
242
|
|
|
240
243
|
Не выходи, пока пользователь не подтвердил план.
|
|
241
244
|
|
|
@@ -278,6 +281,18 @@ sources:
|
|
|
278
281
|
## Целевой алгоритм
|
|
279
282
|
Пошаговое описание целевого поведения системы от входного события до финального состояния. Это обзор всей картины, не список файлов.
|
|
280
283
|
|
|
284
|
+
## Контракты реализации
|
|
285
|
+
|
|
286
|
+
### Данные и БД
|
|
287
|
+
Если БД не меняется: `Не затрагивается`.
|
|
288
|
+
|
|
289
|
+
Если меняется, явно укажи таблицы, поля, типы, обязательность, default, связи, индексы, уникальные ограничения, миграции и совместимость со старыми данными. Backfill и rollback укажи, если они нужны.
|
|
290
|
+
|
|
291
|
+
### API и внешние контракты
|
|
292
|
+
Если API и внешние контракты не меняются: `Не затрагивается`.
|
|
293
|
+
|
|
294
|
+
Если меняются, явно укажи метод и путь, auth/permissions, request/query/body, response, ошибки и статус-коды. Webhooks, events, queues и внешние сервисы укажи, если они есть.
|
|
295
|
+
|
|
281
296
|
## Фазы выполнения
|
|
282
297
|
|
|
283
298
|
### 1. <Название фазы>
|
|
@@ -310,8 +325,12 @@ sources:
|
|
|
310
325
|
- Риски не выносятся в отдельный обязательный раздел. Закрытые риски из research, контекста и мета-ревью должны быть встроены туда, где они исполняются: в `Принятые решения`, фазы, сценарии тестирования, проверки, логирование или эксплуатационные шаги.
|
|
311
326
|
- Существенные решения в `Принятых решениях` имеют источник подтверждения или явное обоснование автономного выбора.
|
|
312
327
|
- В `Целевой алгоритм` попадает сквозная картина процесса.
|
|
328
|
+
- В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты. Если область не затрагивается, напиши `Не затрагивается`.
|
|
329
|
+
- Если план меняет БД, `Данные и БД` обязаны явно описывать таблицы, поля, типы, обязательность/default, связи, индексы/unique, миграции и совместимость со старыми данными.
|
|
330
|
+
- Если план меняет API или внешний контракт, `API и внешние контракты` обязаны явно описывать method/path, auth/permissions, request/query/body, response, ошибки/status codes и внешние каналы при наличии.
|
|
313
331
|
- В `Фазы выполнения` попадают только исполнимые шаги.
|
|
314
332
|
- Каждая фаза обязана иметь `Цель`, `Что сделать`, `Результат`, `Сценарии тестирования`, `Проверка`.
|
|
333
|
+
- В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Если фаза затрагивает UI, опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат. Если фаза затрагивает внутреннюю логику, опиши ответственность изменяемых частей, поток данных, новые состояния/ошибки и существующие места, которые нужно адаптировать.
|
|
315
334
|
- Отдельный раздел порядка выполнения не нужен: линейный порядок задаётся номерами фаз и шагами внутри фаз.
|
|
316
335
|
- `test_strategy` обязан менять структуру фаз: TDD — тесты в начале фаз, after_each_phase — тесты после каждой фазы, end_of_plan — отдельная финальная фаза тестов.
|
|
317
336
|
- `logging_strategy` обязан быть отражён в целевом алгоритме, фазах и отдельном разделе `Логирование`.
|
|
@@ -321,8 +340,12 @@ sources:
|
|
|
321
340
|
|
|
322
341
|
Перед сохранением проверь quality gate:
|
|
323
342
|
- есть `Целевой алгоритм`;
|
|
343
|
+
- есть `Контракты реализации` с подразделами `Данные и БД` и `API и внешние контракты`;
|
|
344
|
+
- если задача затрагивает БД, схема данных не пропущена и не заменена общими словами;
|
|
345
|
+
- если задача затрагивает API или внешний контракт, маршруты/контракты не пропущены и не заменены общими словами;
|
|
324
346
|
- фазы идут в реалистичном порядке реализации;
|
|
325
347
|
- у каждой фазы есть цель, результат, сценарии тестирования и проверка;
|
|
348
|
+
- UI и внутренняя логика в фазах описаны через конкретное поведение, поток данных, состояния и ошибки, если задача их затрагивает;
|
|
326
349
|
- нет неразрешённых формулировок «выбрать», «решить», «можно так или так», «предпочтительно», «при необходимости»;
|
|
327
350
|
- текст написан простым языком: без лишнего жаргона, непояснённых сокращений и тяжёлых терминов;
|
|
328
351
|
- мета-уровень не смешан с шагами исполнения;
|
|
@@ -336,15 +359,22 @@ sources:
|
|
|
336
359
|
|
|
337
360
|
Сохрани файл и покажи путь.
|
|
338
361
|
|
|
339
|
-
### 6. Мета-ревью плана тремя
|
|
340
|
-
Запусти **в одном сообщении и одним batch** трёх агентов на трёх разных моделях — слабая, средняя, мощная. Не запускай сначала одного-двух, не жди их ответы и не запускай третьего позже: все три проверки должны стартовать до чтения любого результата.
|
|
362
|
+
### 6. Мета-ревью плана тремя субагентами/моделями (параллельно)
|
|
363
|
+
Запусти **в одном сообщении и одним batch** трёх агентов на трёх разных моделях — слабая, средняя, мощная. В интерактивном Codex это означает субагентов, а не отдельные процессы `codex exec`. Не запускай сначала одного-двух, не жди их ответы и не запускай третьего позже: все три проверки должны стартовать до чтения любого результата.
|
|
341
364
|
|
|
342
365
|
| Среда | Слабая (быстрая) | Средняя (код) | Мощная (флагман) |
|
|
343
366
|
|---|---|---|---|
|
|
344
367
|
| Claude Code (`Agent` tool) | `model: "haiku"` | `model: "sonnet"` | `model: "opus"` |
|
|
345
|
-
| Codex
|
|
368
|
+
| Codex interactive (`spawn_agent`) | `gpt-5.4-mini` | `gpt-5.3-codex` | `gpt-5.5` |
|
|
369
|
+
| Codex exec / non-interactive fallback (`codex exec --model …`) | `gpt-5.4-mini` | `gpt-5.3-codex` | `gpt-5.5` |
|
|
370
|
+
|
|
371
|
+
В Claude Code запускай три параллельных `Agent` tool в одном ответе/tool-use batch с моделями из таблицы и передавай им промпты нужной глубины из таблицы ниже.
|
|
372
|
+
|
|
373
|
+
В интерактивном Codex, если доступен инструмент субагентов (`spawn_agent` или аналог), запускай три параллельных субагента через него. Не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны.
|
|
374
|
+
|
|
375
|
+
В `codex exec`, другом неинтерактивном режиме или Codex без инструмента субагентов используй fallback: три параллельных `codex exec --model <id>` одной Bash-командой с `&` и общим `wait`.
|
|
346
376
|
|
|
347
|
-
|
|
377
|
+
Если `gpt-5.5` недоступен (ограничение account/auth) — возьми `gpt-5.4` как мощную. Если какой-либо идентификатор отсутствует у тебя — возьми ближайший аналог того же тира из доступных в твоей версии Codex.
|
|
348
378
|
|
|
349
379
|
Каждому передай путь к файлу плана, `docs/rules.md`, `docs/arch.md` (если есть), исследование из `sources.research` (если есть). Формулируй задание как содержательную проверку с глубиной чтения, указанной для тира модели ниже.
|
|
350
380
|
|
package/skills/eda-review.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-review
|
|
3
|
-
description: 'Ревью изменений (незакоммиченный diff, ветка, PR, папка/файл) с обязательной сверкой с планом работ из `docs/plans/`. Если план не указан и его нельзя однозначно определить, спрашивает путь к плану до ревью. Перед ревью читает `docs/rules.md` и `docs/arch.md`. Формирует ревью только по проблемам: ошибки, недоделки, неточности, нарушения правил/архитектуры, риски и недостающие тесты. Не перечисляет выполненную работу. Сохраняет в docs/reviews/. Всегда запускает параллельные специализированные проверки: выполнение плана, следование архитектуре, следование правилам; проверка качества кода включается настройкой `review.include_code_quality: true` в `docs/settings.yaml`. Кросс-CLI (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true`. Не правит код — это `eda-fix-by-review`.'
|
|
3
|
+
description: 'Ревью изменений (незакоммиченный diff, ветка, PR, папка/файл) с обязательной сверкой с планом работ из `docs/plans/`. Если план не указан и его нельзя однозначно определить, спрашивает путь к плану до ревью. Перед ревью читает `docs/rules.md` и `docs/arch.md`. Формирует ревью только по проблемам: ошибки, недоделки, неточности, нарушения правил/архитектуры, риски и недостающие тесты. Не перечисляет выполненную работу. Сохраняет в docs/reviews/. Всегда запускает параллельные специализированные субагентные проверки: выполнение плана, следование архитектуре, следование правилам; проверка качества кода включается настройкой `review.include_code_quality: true` в `docs/settings.yaml`. Кросс-CLI (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true`. Не правит код — это `eda-fix-by-review`.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Ревьюер (eda-review)
|
|
@@ -174,7 +174,7 @@ meta_reviewers: []
|
|
|
174
174
|
Покажи путь.
|
|
175
175
|
|
|
176
176
|
### 3. Мета-ревью специализированными агентами (параллельно)
|
|
177
|
-
Запусти **в одном сообщении и одним batch** агентов с разными ролями. Базовые три роли обязательны всегда. Если включена проверка качества кода, в тот же batch добавь четвёртого агента `quality-check`. Не запускай сначала часть агентов, не жди их ответы и не запускай остальных позже: все проверки должны стартовать до чтения любого результата.
|
|
177
|
+
Запусти **в одном сообщении и одним batch** агентов с разными ролями. В интерактивном Codex это означает субагентов, а не отдельные процессы `codex exec`. Базовые три роли обязательны всегда. Если включена проверка качества кода, в тот же batch добавь четвёртого агента `quality-check`. Не запускай сначала часть агентов, не жди их ответы и не запускай остальных позже: все проверки должны стартовать до чтения любого результата.
|
|
178
178
|
|
|
179
179
|
Роли агентов:
|
|
180
180
|
- `plan-check`: проверяет, что реализация действительно выполнила `$PLAN_FILE`, включая частичные пункты, пропущенные требования, лишние отклонения и недостающие проверки.
|
|
@@ -183,8 +183,9 @@ meta_reviewers: []
|
|
|
183
183
|
- `quality-check`: запускай только если `review.include_code_quality: true` или пользователь явно попросил качество кода. Проверяет качество реализации: читаемость, сложность, дублирование, имена, размер и ответственность функций/классов, сцепление модулей, поддерживаемость и соответствие локальному стилю. Quality-замечания помечай типом `quality`; по умолчанию рекомендация `на усмотрение автора`, кроме случаев, где сложность, дублирование или неясная структура реально создают риск багов, тестовых пробелов или дорогого сопровождения.
|
|
184
184
|
|
|
185
185
|
Модели:
|
|
186
|
-
- Claude Code: запускай все роли на `model: "sonnet"`.
|
|
187
|
-
- Codex: запускай все роли на `gpt-5.3-codex
|
|
186
|
+
- Claude Code: запускай все роли через `Agent` tool на `model: "sonnet"`.
|
|
187
|
+
- Codex interactive: если доступен инструмент субагентов (`spawn_agent` или аналог), запускай все роли через него на `gpt-5.3-codex`; не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны.
|
|
188
|
+
- Codex exec / неинтерактивный fallback: если инструмента субагентов нет, запускай роли через параллельные `codex exec --model gpt-5.3-codex` одной Bash-командой с `&` и общим `wait`.
|
|
188
189
|
- Если нужный идентификатор недоступен, возьми ближайшую code-capable модель того же уровня. Не используй быструю слабую модель для этих проверок: они должны читать diff, план, правила, архитектуру и релевантный код.
|
|
189
190
|
|
|
190
191
|
Каждому дай путь к файлу ревью, `$TARGET`, `$PLAN_FILE`, `docs/rules.md`, `docs/arch.md`, `docs/settings.yaml`, связанный research при наличии. Каждый агент должен читать не только ревью, но и фактический diff/код, достаточный для проверки своей роли.
|