@gian-tiaga/eda 3.7.0 → 3.9.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 +1 -1
- package/README.md +11 -10
- package/lib/install.js +3 -3
- package/package.json +1 -1
- package/skills/eda-just-do-it/SKILL.md +91 -0
- package/skills/eda-plan/SKILL.md +4 -1
- package/skills/eda-plan-polish/SKILL.md +13 -12
package/MIGRATION.md
CHANGED
|
@@ -86,7 +86,7 @@ docs/
|
|
|
86
86
|
Что в 3.x изменится в уже настроенном проекте:
|
|
87
87
|
|
|
88
88
|
- **Удалены двенадцать агентов `eda-plan-review-*`.** Проверку плана целиком выполняет один субагент по фиксированному чек-листу. `eda update` стирает файлы этих агентов из `.claude/agents/` и `.codex/agents/`.
|
|
89
|
-
- **Секция `plan-review.agents` больше не читается.** Начиная с 3.1.1 `eda update` находит её в готовом файле настроек и убирает вместе с другими устаревшими ключами — `review-check`, `review.strict`, `review.include_code_quality`. Дефолт `plan-review.threshold` — `100`, `plan-polish.limit` — `2
|
|
89
|
+
- **Секция `plan-review.agents` больше не читается.** Начиная с 3.1.1 `eda update` находит её в готовом файле настроек и убирает вместе с другими устаревшими ключами — `review-check`, `review.strict`, `review.include_code_quality`. Дефолт `plan-review.threshold` — `100`, `plan-polish.limit` — `1`: с 3.9.0 лимит считает итерации «проверка + исправление», а не review-проходы, поэтому сохранённое значение `2` теперь означает два круга правок вместо одного.
|
|
90
90
|
- **Режим `single` переименован в `main`.** `eda update` переносит `review.execution: single` и `plan-execute.mode: single` в `main`, а `orhestra.execution: single` и `single_propagated` — в `main` и `main_propagated`. В `main` работу выполняет основной агент без субагентов; модели отдельных `review.agents` не применяются.
|
|
91
91
|
- **У `eda-review` есть режим исполнения.** `review.execution` принимает `subagents` или `main`; default `subagents` сохраняет прежнее поведение. Безусловный Claude `context: fork` удалён, поэтому `main` не создаёт отдельного агента для ревью.
|
|
92
92
|
- **У `eda-orhestra` появился режим исполнения.** `orhestra.execution` принимает `subagents`, `main` или `main_propagated`; default `subagents` сохраняет прежнее поведение. `main` выполняет верхние этапы текущим агентом, а `main_propagated` дополнительно передаёт `main` совместимым execute/review-этапам.
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> Поточная разработка с AI-агентами — на русском языке.
|
|
4
4
|
> Пакет готовых скилов и специализированных агентов для **Claude Code** и **Codex CLI**, которые ведут тебя через весь цикл: от исследования до коммита.
|
|
5
5
|
|
|
6
|
-
`eda` — это двадцать
|
|
6
|
+
`eda` — это двадцать три скила и пакетные агенты для повторяемых ролей. Скил отвечает за пользовательский workflow и оркестрацию, агент — за изолированную работу с закреплённой моделью и ограничениями. Вместо того чтобы каждый раз объяснять модели, как делать ревью или как исполнять план, ты говоришь одно слово — и она следует чёткой инструкции на русском, со всеми правилами, проверками и артефактами в нужных папках.
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -47,11 +47,12 @@ eda update-all ~/Code
|
|
|
47
47
|
| `eda-business` | Совместно с человеком описывает целевое поведение проекта по тематическим карточкам: сложные темы фиксирует подробно, но без шума, соседних модулей и привязки к текущему коду. Может закрепить значимый механизм вроде JWT или серверного хранения токенов, но не язык, библиотеку или конкретную СУБД. `about` содержит лишь короткое описание проекта и основные возможности | `docs/business.md`, `docs/business/` |
|
|
48
48
|
| `eda-roadmap` | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | `docs/artifacts/roadmaps/` |
|
|
49
49
|
| `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. После определения темы читает только применимые business- и reference-карточки. В дефолтном режиме ведёт исследование как диалог; для пакетов и ПО проверяет актуальные стабильные версии | `docs/artifacts/researches/` |
|
|
50
|
-
| `eda-plan` | Пишет план реализации через Plan Mode: фиксирует решения, БД/API-контракты и фазы, каждую из которых один агент выполняет и проверяет за один проход. Задач с идентификаторами внутри фаз нет. Реализацию не описывает — её задают `docs/rules.md`, `docs/arch.md` и карточки. Если целевое поведение ещё не описано в business-карточках, до реализации добавляет `Дополнить бизнесовые правила`; если решение противоречит правилам или архитектуре, сначала меняет сам документ. По `plan.review` запускает изолированный `eda-plan-polish
|
|
50
|
+
| `eda-plan` | Пишет план реализации через Plan Mode: фиксирует решения, БД/API-контракты и фазы, каждую из которых один агент выполняет и проверяет за один проход. Задач с идентификаторами внутри фаз нет. Реализацию не описывает — её задают `docs/rules.md`, `docs/arch.md` и карточки. Если целевое поведение ещё не описано в business-карточках, до реализации добавляет `Дополнить бизнесовые правила`; если решение противоречит правилам или архитектуре, сначала меняет сам документ. По `plan.review` запускает изолированный `eda-plan-polish` ровно на одну итерацию полировки (`limit 1`); `plan.strict` независимо включает кросс-CLI ревью | `docs/artifacts/plans/`, опционально plan-review артефакты |
|
|
51
51
|
| `eda-plan-review` | Одним read-only проходом проверяет план по фиксированному чек-листу из 16 пунктов: покрытие запроса, отсутствие развилок, соответствие правилам и архитектуре, дубли, регистр текста, фазы и объём. Замечания вне списка не принимает. Оценка — доля закрытых пунктов, поэтому растёт монотонно. План не меняет | `docs/artifacts/plan-reviews/` |
|
|
52
52
|
| `eda-plan-review-fix` | Закрывает проваленные пункты чек-листа минимальным изменением плана с совпадающим SHA-256. План не растёт: сначала удаление и замена, прирост объёма за один заход не больше 3%. Новое ревью не делает и код не меняет | `docs/artifacts/plan-review-fixes/` |
|
|
53
|
-
| `eda-plan-polish` | Оркестрирует изолированный цикл plan-review → plan-review-fix. Хранит снапшот лучшей версии плана: как только score перестаёт расти, останавливается и восстанавливает лучшую версию, а не последнюю. По умолчанию
|
|
53
|
+
| `eda-plan-polish` | Оркестрирует изолированный цикл plan-review → plan-review-fix. Хранит снапшот лучшей версии плана: как только score перестаёт расти, останавливается и восстанавливает лучшую версию, а не последнюю. По умолчанию одна итерация: проверка и исправление. Исправление проверяет ревью следующей итерации, поэтому при `limit 1` последняя правка остаётся неперепроверенной. Кросс-CLI strict не используется | `docs/artifacts/plan-reviews/`, `docs/artifacts/plan-review-fixes/` |
|
|
54
54
|
| `eda-plan-execute` | Управляет выполнением плана по фазам в режиме `subagents`, `main` или `auto`. В `subagents` каждую фазу целиком выполняет отдельный изолированный субагент: он читает план, правила, архитектуру и только business/reference-карточки затронутого поведения и компонентов. Фазы проходят строго последовательно и принимаются независимыми проверяющими. В `main` весь план по тем же правилам выполняет и проверяет основной агент в одном контексте, а `auto` выбирает режим по плану. Отметки подтверждённых задач и журнал ведёт основной агент | `docs/artifacts/executions/` |
|
|
55
|
+
| `eda-just-do-it` | Сразу выполняет задачу из текста рядом с вызовом: определяет scope, загружает только необходимые проектные инструкции, business/reference-карточки, код и тесты, вносит нужные изменения и проверяет результат. Не подменяет выполнение планом и не делает git- или внешние действия без прямого указания | `docs/artifacts/just-do-it/` |
|
|
55
56
|
| `eda-fix` | Делает обычные фиксы по короткому контексту, баг-репорту или плану. Перед правками читает правила, архитектуру и только применимые карточки, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | `docs/artifacts/fixes/` |
|
|
56
57
|
| `eda-review` | Оркестрирует отдельные read-only проверки корректности, архитектуры, правил, references, business-правил, плана, качества, тестов, безопасности, производительности, frontend/UI/UX, API, БД, документации и предыдущих ревью. Сохраняет только доказанные дефекты, которые обязательно исправить; косметические и спекулятивные предложения отбрасывает. Любая находка даёт `changes-required`, а чистое ревью — `clean` и 100/100. Без аргументов ревьюит `git diff HEAD` | `docs/artifacts/reviews/` |
|
|
57
58
|
| `eda-fix-by-review` | Применяет все находки из ревью с учётом правил, архитектуры и применимых карточек. Спрашивает только при неоднозначности, конфликте, расширении scope или рискованном действии. В конце ссылается на отчёт прямо в файле ревью | `docs/artifacts/review-fixes/` |
|
|
@@ -138,7 +139,7 @@ eda update-all ~/Code
|
|
|
138
139
|
| `eda-plan` | `strict`, `без ревью плана`, `без проверок` | `strict` независимо включает кросс-CLI проверку; `без ревью плана` отключает встроенный review/fix; `без проверок` отключает оба вида ревью | Когда нужно разделить создание плана и его последующую полировку |
|
|
139
140
|
| `eda-plan-review` | `threshold N` | Разово меняет долю закрытых пунктов, при которой план считается готовым | Для самостоятельного аудита готового плана |
|
|
140
141
|
| `eda-plan-execute` | `subagents` / `main` / `auto` | Разово меняет, где выполняются фазы, поверх `plan-execute.mode` | `main` для небольшого плана в одном контексте, `subagents` для большого или тяжёлого |
|
|
141
|
-
| `eda-plan-polish` | `threshold N`, `limit N` | Меняет gate и максимальное число
|
|
142
|
+
| `eda-plan-polish` | `threshold N`, `limit N` | Меняет gate и максимальное число итераций «проверка + исправление» | Для доводки ответственных планов перед `eda-plan-execute` |
|
|
142
143
|
| `eda-manual-test` | `full` / `полная проверка`, `smoke` / `быстро` | Разово меняет глубину ручной проверки поверх `manual-test.depth` | `smoke` для короткой правки, `full` — когда нужно закрыть все области после плана |
|
|
143
144
|
| `eda-review` | `subagents` / `main` | Разово меняет способ выполнения выбранных проверок поверх `review.execution` | `main` экономит контекст на частых локальных ревью; `subagents` сохраняет независимость ролей для ответственных изменений |
|
|
144
145
|
|
|
@@ -234,8 +235,8 @@ plan-review:
|
|
|
234
235
|
threshold: 100
|
|
235
236
|
|
|
236
237
|
plan-polish:
|
|
237
|
-
# Максимальное число
|
|
238
|
-
limit:
|
|
238
|
+
# Максимальное число итераций «проверка + исправление».
|
|
239
|
+
limit: 1
|
|
239
240
|
|
|
240
241
|
plan-execute:
|
|
241
242
|
# Где eda-plan-execute выполняет фазы плана.
|
|
@@ -396,10 +397,10 @@ discover-automations:
|
|
|
396
397
|
- `steps[].on_failure` — настраивает исправление failed manual-test прямо рядом с этим шагом: `skill` и `args` задают фикс, `then` — повторяемые id шагов, `max_cycles` — лимит. Если обработчика нет, оркестратор сохраняет failed-отчёт и останавливается.
|
|
397
398
|
- `aim.mode` — `automatic` самостоятельно выбирает безопасные ответы на рабочие вопросы; `manual` передаёт вопросы человеку. Явный режим в текущем вызове имеет приоритет.
|
|
398
399
|
- `explore.strict` и `explore.decision_mode` — кросс-CLI ревью и способ выбора по исследовательским развилкам в `eda-explore`.
|
|
399
|
-
- `plan.review` — изолированный цикл `eda-plan-polish` внутри `eda-plan
|
|
400
|
+
- `plan.review` — изолированный цикл `eda-plan-polish` внутри `eda-plan`, ровно одна итерация полировки (`limit 1`); `plan.strict` независимо управляет кросс-CLI ревью.
|
|
400
401
|
- `plan.size`, `plan.decision_mode`, `plan.test_strategy`, `plan.logging_strategy` — режим и структура работы `eda-plan`.
|
|
401
402
|
- `plan-review.threshold` — доля закрытых пунктов чек-листа для статуса `ready`, default `100`. Отдельных агентов у `plan-review` больше нет: проверку целиком делает один субагент.
|
|
402
|
-
- `plan-polish.limit` — максимальное число
|
|
403
|
+
- `plan-polish.limit` — максимальное число итераций «проверка + исправление»; default `1`. Отдельного подтверждающего прохода нет: исправление проверяет ревью следующей итерации. Цикл останавливается раньше, если score перестал расти.
|
|
403
404
|
- `plan-execute.mode` — где `eda-plan-execute` выполняет фазы: `subagents` — каждая фаза в отдельном изолированном субагенте с независимой проверкой, `main` — весь план одним контекстом без субагентов, `auto` — выбор по плану; default `auto`. Явный режим в вызове имеет приоритет.
|
|
404
405
|
- `manual-test.depth` — глубина ручной проверки в `eda-manual-test`: `full` — закрыть все применимые области матрицы покрытия, `smoke` — только запуск и основной сценарий изменённой области, `ask_each_time` — спрашивать каждый раз; default `full`. Явная глубина в вызове имеет приоритет.
|
|
405
406
|
- `review.execution` — где выполняются проверки `eda-review`: `subagents` запускает отдельные специализированные роли, `main` выполняет те же выбранные проверки основным агентом без субагентов и с однократной загрузкой общего контекста; default `subagents`. Явный режим в вызове имеет приоритет.
|
|
@@ -459,14 +460,14 @@ roadmap ────────> explore ─────> plan ───> plan-
|
|
|
459
460
|
fix ─────────────> manual-test
|
|
460
461
|
|
|
461
462
|
polish = полное review ─> fix-by-review всех находок ─> подтверждающий review до clean и нужной оценки
|
|
462
|
-
plan-polish =
|
|
463
|
+
plan-polish = итерации «plan-review ─> plan-review-fix всех находок» до gate или limit
|
|
463
464
|
|
|
464
465
|
discover-automations может запускаться от review, fix-by-review или fix.
|
|
465
466
|
```
|
|
466
467
|
|
|
467
468
|
`eda-manual-test` обычно ставится после `eda-plan-execute`, `eda-fix` или `eda-fix-by-review`, чтобы руками проверить API, базу, консольные команды, интерфейс и алгоритмы перед ревью или коммитом.
|
|
468
469
|
|
|
469
|
-
Использовать всю цепочку не обязательно — каждый скил самодостаточен. Для полного прохода одной задачи можно вызвать `eda-orhestra automatic <задача>` или `eda-orhestra manual <задача>`. Разовые варианты: `eda-orhestra main <задача>`, `eda-orhestra main_propagated <задача>`, `eda-orhestra automatic без полировки плана <задача>`, `eda-orhestra полировка кода 2 итерации <задача>`, `eda-orhestra без ручных тестов <задача>`. Постоянный режим исполнения задаётся в `orhestra.execution`, порядок и аргументы — в `orhestra.steps`. Новый проект можно начать с `eda-new-project`; существующий — с `eda-prepare-ai`, `eda-roadmap`, `eda-explore`, или сразу с `eda-plan-execute` на готовом плане, или просто `eda-commit`, когда правки уже сделаны. Для параллельной работы есть `eda-worktree`, а для возврата ветки из worktree в текущую ветку — `eda-merge-worktree`.
|
|
470
|
+
Использовать всю цепочку не обязательно — каждый скил самодостаточен. Для полного прохода одной задачи можно вызвать `eda-orhestra automatic <задача>` или `eda-orhestra manual <задача>`. Разовые варианты: `eda-orhestra main <задача>`, `eda-orhestra main_propagated <задача>`, `eda-orhestra automatic без полировки плана <задача>`, `eda-orhestra полировка кода 2 итерации <задача>`, `eda-orhestra без ручных тестов <задача>`. Постоянный режим исполнения задаётся в `orhestra.execution`, порядок и аргументы — в `orhestra.steps`. Для прямой задачи без отдельного процесса вызови `eda-just-do-it <задача>`: скил сам выберет необходимый контекст, выполнит работу и сохранит отчёт. Новый проект можно начать с `eda-new-project`; существующий — с `eda-prepare-ai`, `eda-roadmap`, `eda-explore`, или сразу с `eda-plan-execute` на готовом плане, или просто `eda-commit`, когда правки уже сделаны. Для параллельной работы есть `eda-worktree`, а для возврата ветки из worktree в текущую ветку — `eda-merge-worktree`.
|
|
470
471
|
|
|
471
472
|
Вызов `eda-commit` без контекста охватывает все незакоммиченные tracked-изменения и содержательные untracked-файлы; очевидные кэши, временные и локальные служебные артефакты остаются вне коммитов. Executor сам делит полный состав на необходимое число логически цельных коммитов — один, три или больше. Например, запрос `eda-commit сразу отправь ветку, создай PR и дай ссылку` использует тот же полный состав и выполняет всю указанную цепочку без отдельного вопроса после серии коммитов.
|
|
472
473
|
|
package/lib/install.js
CHANGED
|
@@ -273,7 +273,7 @@ const DEFAULT_SETTINGS = {
|
|
|
273
273
|
threshold: 100
|
|
274
274
|
},
|
|
275
275
|
planPolish: {
|
|
276
|
-
limit:
|
|
276
|
+
limit: 1
|
|
277
277
|
},
|
|
278
278
|
planExecute: {
|
|
279
279
|
mode: 'auto'
|
|
@@ -785,7 +785,7 @@ export async function askSettings({
|
|
|
785
785
|
['plan', 'plan.testStrategy', settings.plan, 'testStrategy', 'Какую стратегию тестов eda-plan использовать по умолчанию?', TEST_STRATEGY_CHOICES],
|
|
786
786
|
['plan', 'plan.loggingStrategy', settings.plan, 'loggingStrategy', 'Какую стратегию логирования eda-plan использовать по умолчанию?', LOGGING_STRATEGY_CHOICES],
|
|
787
787
|
['plan-review', 'planReview.threshold', settings.planReview, 'threshold', 'Какой порог готовности использовать в eda-plan-review?', PLAN_REVIEW_THRESHOLD_CHOICES],
|
|
788
|
-
['plan-polish', 'planPolish.limit', settings.planPolish, 'limit', 'Сколько
|
|
788
|
+
['plan-polish', 'planPolish.limit', settings.planPolish, 'limit', 'Сколько итераций «проверка + исправление» разрешить eda-plan-polish?', PLAN_POLISH_LIMIT_CHOICES],
|
|
789
789
|
['plan-execute', 'planExecute.mode', settings.planExecute, 'mode', 'Как eda-plan-execute должен выполнять фазы по умолчанию?', PLAN_EXECUTE_MODE_CHOICES],
|
|
790
790
|
['manual-test', 'manualTest.depth', settings.manualTest, 'depth', 'Какую глубину ручной проверки использовать в eda-manual-test по умолчанию?', MANUAL_TEST_DEPTH_CHOICES],
|
|
791
791
|
['review', 'review.execution', settings.review, 'execution', 'Как eda-review должен выполнять проверки по умолчанию?', REVIEW_EXECUTION_CHOICES]
|
|
@@ -1485,7 +1485,7 @@ plan-review:
|
|
|
1485
1485
|
threshold: ${settings.planReview.threshold}
|
|
1486
1486
|
|
|
1487
1487
|
plan-polish:
|
|
1488
|
-
# Максимальное число
|
|
1488
|
+
# Максимальное число итераций «проверка + исправление».
|
|
1489
1489
|
# Положительное целое число.
|
|
1490
1490
|
limit: ${settings.planPolish.limit}
|
|
1491
1491
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-just-do-it
|
|
3
|
+
description: 'Прямо выполняет задачу, указанную пользователем рядом с вызовом скилла.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Просто сделай (eda-just-do-it)
|
|
7
|
+
|
|
8
|
+
Сразу доведи задачу пользователя до проверяемого результата в текущем проекте. Не заменяй выполнение планом, исследованием или ревью, если пользователь не попросил именно такой результат.
|
|
9
|
+
|
|
10
|
+
## Вход из сообщения пользователя
|
|
11
|
+
|
|
12
|
+
Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: требуемый результат, scope, пути, ограничения и явно разрешённые внешние действия. Старое обсуждение используй только там, где пользователь прямо связал его с текущей задачей.
|
|
13
|
+
|
|
14
|
+
Если входа достаточно, продолжай без подтверждения и без пересказа плана действий. `AskUserQuestion` задавай только когда отсутствует обязательный выбор, требования противоречат друг другу, есть несколько равнозначных целей или без ответа возникает существенный риск сделать не то.
|
|
15
|
+
|
|
16
|
+
## Главные правила
|
|
17
|
+
|
|
18
|
+
1. **Делай то, что попросили.** Сам выполни задачу в текущем контексте. Не отправляй пользователя к другому `eda-*`-скилу только потому, что существует более специализированный процесс. Другой скил применяй, только если пользователь явно включил его в задачу.
|
|
19
|
+
2. **Не расширяй scope.** Выполняй необходимые сопутствующие изменения, но не добавляй улучшения, которые не нужны для заданного результата.
|
|
20
|
+
3. **Загружай только нужный контекст.** Сначала определи scope, затем читай относящиеся к нему инструкции, документы, код и тесты. Не загружай все business- и reference-карточки на всякий случай.
|
|
21
|
+
4. **Сохраняй пользовательскую работу.** Перед изменениями проверь текущее состояние рабочей директории и не перезаписывай несвязанные правки.
|
|
22
|
+
5. **Проверяй результат.** Для изменений поведения добавь или обнови точечные тесты. Выполни применимые тесты, линтеры, typecheck, сборку или предметную проверку; не заявляй о том, что не запускалось.
|
|
23
|
+
6. **Внешние и git-действия — только по запросу.** Не коммить, не пушь, не создавай PR, не публикуй и не деплой без прямого указания рядом с вызовом. Для необратимого или разрушительного действия нужен однозначный target; при неоднозначности спроси.
|
|
24
|
+
7. **Артефакт обязателен.** Создай отчёт до первого содержательного изменения и поддерживай его в актуальном состоянии. Заверши отчёт даже при частичном результате, блокере или ошибке.
|
|
25
|
+
|
|
26
|
+
## Как выбрать контекст
|
|
27
|
+
|
|
28
|
+
1. Прочитай применимые `AGENTS.md` и другие проектные инструкции для затронутых путей.
|
|
29
|
+
2. Прочитай файлы и артефакты, прямо названные пользователем.
|
|
30
|
+
3. Если меняется проект, прочитай `docs/rules.md` и `docs/arch.md`, когда они существуют.
|
|
31
|
+
4. Сначала определи затронутое поведение. Если есть `docs/business.md`, выбери по описаниям и прочитай только применимые business-карточки из `docs/business/`. Отсутствие подходящей карточки не блокирует работу.
|
|
32
|
+
5. Если есть `docs/references.md`, выбери по индексу и прочитай только карточки затронутых компонентов из `docs/references/`.
|
|
33
|
+
6. Найди минимальный набор исходников, тестов, конфигурации и документации, необходимый для выполнения и проверки задачи. Расширяй контекст только когда обнаруженная зависимость действительно влияет на результат.
|
|
34
|
+
|
|
35
|
+
Если запрос противоречит проектной инструкции, business-правилу или архитектурному ограничению, не обходи их молча: зафиксируй конфликт в отчёте и запроси недостающее решение через `AskUserQuestion`.
|
|
36
|
+
|
|
37
|
+
## Выполнение
|
|
38
|
+
|
|
39
|
+
1. Сформулируй для себя проверяемый результат и границы задачи.
|
|
40
|
+
2. Собери необходимый контекст по правилам выше и проверь текущее состояние проекта.
|
|
41
|
+
3. Создай файл отчёта со статусом `in-progress`.
|
|
42
|
+
4. Выполни задачу полностью. Исправляй ошибки, вызванные своими изменениями; несвязанные проблемы не маскируй и не чини без необходимости.
|
|
43
|
+
5. Проверь фактический результат подходящими командами или наблюдаемым сценарием.
|
|
44
|
+
6. Обнови отчёт только подтверждёнными действиями и результатами, поставь итоговый статус `done`, `partial`, `blocked` или `failed`.
|
|
45
|
+
|
|
46
|
+
## Интерактивные вопросы
|
|
47
|
+
|
|
48
|
+
Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
|
|
49
|
+
|
|
50
|
+
- Claude Code: используй `AskUserQuestion`.
|
|
51
|
+
- Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
|
|
52
|
+
- Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, запиши вопрос и варианты в отчёт.
|
|
53
|
+
- Не запускай команды, которые ждут интерактивного ввода в терминале.
|
|
54
|
+
|
|
55
|
+
## Артефакт
|
|
56
|
+
|
|
57
|
+
Сохрани отчёт в `docs/artifacts/just-do-it/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Если имя занято, добавь числовой суффикс. Даже если задача завершилась до изменений, оказалась заблокирована или упала, отчёт должен существовать и честно описывать результат.
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
---
|
|
61
|
+
date: <YYYY-MM-DD HH:MM>
|
|
62
|
+
status: in-progress
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
# Just do it: <краткий заголовок>
|
|
66
|
+
|
|
67
|
+
## Запрос
|
|
68
|
+
<что пользователь поручил сделать>
|
|
69
|
+
|
|
70
|
+
## Учтённый контекст
|
|
71
|
+
- `<путь>` — <зачем прочитан>
|
|
72
|
+
|
|
73
|
+
## Что сделано
|
|
74
|
+
| # | Действие или файл | Результат |
|
|
75
|
+
|---|-------------------|-----------|
|
|
76
|
+
| 1 | ... | ... |
|
|
77
|
+
|
|
78
|
+
## Проверки
|
|
79
|
+
| Команда или сценарий | Результат | Заметки |
|
|
80
|
+
|----------------------|-----------|---------|
|
|
81
|
+
| `<command>` | ✓ / ✗ / не запускалась | ... |
|
|
82
|
+
|
|
83
|
+
## Осталось
|
|
84
|
+
<«Ничего» либо конкретный остаток, блокер и требуемое решение>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Перед завершением замени `in-progress` на итоговый статус. Не включай в артефакт секреты, токены и лишний вывод команд.
|
|
88
|
+
|
|
89
|
+
## Финал
|
|
90
|
+
|
|
91
|
+
Коротко сообщи: что выполнено, чем проверено, что осталось и путь к обязательному отчёту. Если были git- или внешние действия, перечисли только фактически выполненные.
|
package/skills/eda-plan/SKILL.md
CHANGED
|
@@ -201,10 +201,13 @@ Quality gate перед сохранением и после каждой вкл
|
|
|
201
201
|
|
|
202
202
|
Иначе запусти `eda-plan-polish` в отдельном изолированном субагенте с чистым контекстом. Основной планировщик не делает review или fix сам.
|
|
203
203
|
|
|
204
|
+
Прогоняется ровно одна итерация полировки — `limit 1`: одна проверка и одно исправление. Второй круг здесь не нужен: план уже прошёл quality gate, и лишние итерации чаще раздувают текст, чем улучшают его. Плата за это — исправление остаётся неперепроверенным, поэтому `status: reviewed` появится только если ревью сразу вернуло `ready`.
|
|
205
|
+
|
|
204
206
|
1. Запусти один `eda-plan-polish`:
|
|
205
207
|
|
|
206
208
|
```text
|
|
207
|
-
Используй eda-plan-polish для <PLAN_FILE
|
|
209
|
+
Используй eda-plan-polish для <PLAN_FILE> с limit 1.
|
|
210
|
+
Прогони ровно одну итерацию полировки: проверка и исправление. Дальше не иди.
|
|
208
211
|
Исходная задача и решения: <текущий запрос и ответы пользователя>.
|
|
209
212
|
Верни результат, последний review/fix, score, threshold и открытые ID.
|
|
210
213
|
```
|
|
@@ -5,7 +5,7 @@ description: 'Доводит план циклом ревью и исправл
|
|
|
5
5
|
|
|
6
6
|
# Скил: Полировка плана (eda-plan-polish)
|
|
7
7
|
|
|
8
|
-
Оркестрируй цикл `eda-plan-review` → `eda-plan-review-fix
|
|
8
|
+
Оркестрируй цикл `eda-plan-review` → `eda-plan-review-fix`. Сам план не правь и score не выставляй: ты выбираешь план, запускаешь каждый скил в отдельном изолированном субагенте, следишь за ростом оценки и решаешь, когда остановиться.
|
|
9
9
|
|
|
10
10
|
Главное отличие от простого повторения итераций: **цикл останавливается, как только оценка перестаёт расти, и оставляет лучшую версию плана, а не последнюю.**
|
|
11
11
|
|
|
@@ -20,7 +20,7 @@ description: 'Доводит план циклом ревью и исправл
|
|
|
20
20
|
Прочитай `docs/settings.yaml`, если есть. Поддерживается только `version: 3`; иначе defaults и предупреждение.
|
|
21
21
|
|
|
22
22
|
- `plan-review.threshold` — доля закрытых пунктов для `ready`, default `100`;
|
|
23
|
-
- `plan-polish.limit` — максимум
|
|
23
|
+
- `plan-polish.limit` — максимум итераций «проверка + исправление», default `1`;
|
|
24
24
|
- прямые `threshold N` и `limit N` в сообщении важнее файла.
|
|
25
25
|
|
|
26
26
|
`strict` и кросс-CLI здесь не поддерживаются.
|
|
@@ -29,7 +29,7 @@ description: 'Доводит план циклом ревью и исправл
|
|
|
29
29
|
|
|
30
30
|
1. Каждый вызов `eda-plan-review` и `eda-plan-review-fix` запускай отдельным изолированным субагентом с чистым контекстом.
|
|
31
31
|
2. Если нативные субагенты недоступны, остановись. Не делай review или fix сам и не используй CLI-fallback.
|
|
32
|
-
3. Успех — только review со статусом `ready`.
|
|
32
|
+
3. Успех — только review со статусом `ready`. Остановка сразу после fix успехом не считается.
|
|
33
33
|
4. Основной агент не меняет содержание плана. После `ready` он может обновить только front matter: `status`, `plan_review`, `plan_review_fix`.
|
|
34
34
|
5. Не запускай проверки проекта и не коммить.
|
|
35
35
|
|
|
@@ -44,7 +44,7 @@ description: 'Доводит план циклом ревью и исправл
|
|
|
44
44
|
- временная API-, server-, overload- или network-ошибка — один раз продолжи того же агента; если resume недоступен, один раз запусти ту же роль с исходным входом, полным частичным результатом и требованием сначала сверить текущее состояние; повторный такой сбой заверши как `blocked` с исходной ошибкой;
|
|
45
45
|
- неизвестная техническая ошибка — не угадывай причину и не зацикливай retry; заверши `blocked: техническая ошибка субагента` с полным исходным текстом.
|
|
46
46
|
|
|
47
|
-
Ожидание слота и один технический retry не расходуют `$LIMIT` и не считаются новой
|
|
47
|
+
Ожидание слота и один технический retry не расходуют `$LIMIT` и не считаются новой итерацией.
|
|
48
48
|
|
|
49
49
|
## Снапшот лучшей версии
|
|
50
50
|
|
|
@@ -52,10 +52,12 @@ description: 'Доводит план циклом ревью и исправл
|
|
|
52
52
|
|
|
53
53
|
Дальше на каждой итерации: если новый score выше лучшего — перезапиши снапшот и обнови лучший score. Если ниже или равен — снапшот не трогай.
|
|
54
54
|
|
|
55
|
-
При остановке без `ready`: если последний score ниже лучшего, восстанови план из снапшота и скажи об этом прямо. После успешного `ready` удали снапшот.
|
|
55
|
+
При остановке без `ready`: если последний score ниже лучшего, восстанови план из снапшота и скажи об этом прямо. Если цикл кончился сразу после fix, score этой версии не измерен — план не откатывай, но скажи, что последнее исправление не перепроверялось. После успешного `ready` удали снапшот.
|
|
56
56
|
|
|
57
57
|
## Цикл
|
|
58
58
|
|
|
59
|
+
Итерация — это `eda-plan-review` плюс `eda-plan-review-fix`. `$LIMIT` считает именно их, поэтому `limit 1` означает одну проверку и одно исправление. Отдельного подтверждающего прохода нет: исправление проверяет review следующей итерации, а после последнего исправления цикл заканчивается непроверенным — это цена низкого лимита.
|
|
60
|
+
|
|
59
61
|
Сформируй `$PLAN_FILE`, `$THRESHOLD`, `$LIMIT` и журнал: итерация, путь review, SHA-256 плана, score, открытые пункты, путь fix.
|
|
60
62
|
|
|
61
63
|
Для `$ITERATION` от `1` до `$LIMIT`:
|
|
@@ -73,8 +75,7 @@ description: 'Доводит план циклом ревью и исправл
|
|
|
73
75
|
4. Если статус `ready` — обнови front matter плана (`status: reviewed`, последние `plan_review` и `plan_review_fix`), удали снапшот, заверши успешно.
|
|
74
76
|
5. **Стоп по отсутствию роста.** Если это не первая итерация и score не вырос относительно предыдущей — останови цикл, восстанови лучшую версию и сообщи, какая итерация была лучшей. Дальнейшие круги только ухудшают план.
|
|
75
77
|
6. Если статус `changes-required`, но проваленных пунктов нет — остановись: `blocked: ревью нарушает контракт gate`.
|
|
76
|
-
7.
|
|
77
|
-
8. Запусти новый изолированный субагент:
|
|
78
|
+
7. Запусти новый изолированный субагент:
|
|
78
79
|
|
|
79
80
|
```text
|
|
80
81
|
Используй eda-plan-review-fix для <REVIEW_FILE>.
|
|
@@ -82,9 +83,9 @@ description: 'Доводит план циклом ревью и исправл
|
|
|
82
83
|
Верни путь к fix, before_sha256, after_sha256, before_bytes, after_bytes и закрытые пункты.
|
|
83
84
|
```
|
|
84
85
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
8. Проверь, что `before_sha256` равен `plan_sha256` из review. Если `after_sha256` равен `before_sha256` — остановись: `blocked: fix не изменил план`.
|
|
87
|
+
9. Если план вырос больше чем на 3%, зафиксируй это в журнале как предупреждение: рост объёма — причина следующих находок.
|
|
88
|
+
10. Сохрани review и fix как предыдущую цепочку. Есть неизрасходованные итерации — начни следующую: её review заодно проверит это исправление. Иначе остановись с причиной `достигнут limit`.
|
|
88
89
|
|
|
89
90
|
Score сам не считай и не корректируй: он приходит только из `eda-plan-review`.
|
|
90
91
|
|
|
@@ -92,7 +93,7 @@ Score сам не считай и не корректируй: он приход
|
|
|
92
93
|
|
|
93
94
|
Сообщи:
|
|
94
95
|
|
|
95
|
-
- результат: `ready`, `limit`, `нет роста` или `blocked
|
|
96
|
+
- результат: `ready`, `limit`, `нет роста` или `blocked`, и было ли последнее исправление перепроверено;
|
|
96
97
|
- путь к плану и какая версия в нём осталась — последняя или восстановленная лучшая;
|
|
97
98
|
- траекторию score по итерациям и номер лучшей;
|
|
98
99
|
- последние review и fix, порог, открытые пункты;
|
|
@@ -105,6 +106,6 @@ Score сам не считай и не корректируй: он приход
|
|
|
105
106
|
- Делать review, выставлять score или править содержание плана самому.
|
|
106
107
|
- Продолжать цикл, когда score не растёт.
|
|
107
108
|
- Оставлять последнюю версию, если лучшая была раньше.
|
|
108
|
-
-
|
|
109
|
+
- Выдавать план за подтверждённый, когда после последнего исправления review не было.
|
|
109
110
|
- Запускать кросс-CLI, `strict`, `codex exec` или `claude -p`.
|
|
110
111
|
- Писать журнал полировки в тело плана, менять код или запускать проверки проекта.
|