@gian-tiaga/eda 3.14.0 → 4.0.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.
Files changed (78) hide show
  1. package/MIGRATION.md +23 -2
  2. package/README.md +131 -223
  3. package/agents/eda-aim-executor/prompt.md +2 -0
  4. package/agents/eda-aim-verifier/prompt.md +2 -0
  5. package/agents/eda-review-api/prompt.md +4 -4
  6. package/agents/eda-review-architecture/prompt.md +4 -4
  7. package/agents/eda-review-business/prompt.md +5 -12
  8. package/agents/eda-review-code-quality/prompt.md +4 -4
  9. package/agents/eda-review-correctness/prompt.md +3 -3
  10. package/agents/eda-review-database/prompt.md +4 -4
  11. package/agents/eda-review-documentation/prompt.md +4 -4
  12. package/agents/eda-review-frontend/prompt.md +4 -4
  13. package/agents/eda-review-infra/agent.json +14 -0
  14. package/agents/eda-review-infra/prompt.md +36 -0
  15. package/agents/eda-review-performance/prompt.md +7 -7
  16. package/agents/eda-review-plan-alignment/prompt.md +4 -4
  17. package/agents/eda-review-previous-reviews/prompt.md +5 -4
  18. package/agents/eda-review-references/prompt.md +4 -4
  19. package/agents/eda-review-rules/prompt.md +4 -4
  20. package/agents/eda-review-security/prompt.md +4 -4
  21. package/agents/eda-review-seo/agent.json +14 -0
  22. package/agents/eda-review-seo/prompt.md +36 -0
  23. package/agents/eda-review-tests/prompt.md +4 -4
  24. package/agents/eda-review-triage/agent.json +14 -0
  25. package/agents/eda-review-triage/prompt.md +38 -0
  26. package/lib/catalog.js +28 -1
  27. package/lib/install.js +221 -590
  28. package/lib/prompts.js +53 -0
  29. package/lib/renderers/codex-agent.js +3 -1
  30. package/lib/renderers/codex-skill.js +21 -1
  31. package/lib/renderers/opencode-skill.js +2 -2
  32. package/package.json +2 -3
  33. package/skills/_shared/done.md +15 -0
  34. package/skills/_shared/questions.md +9 -0
  35. package/skills/eda-aim/SKILL.md +2 -3
  36. package/skills/eda-business/SKILL.md +5 -6
  37. package/skills/eda-commit/SKILL.md +2 -3
  38. package/skills/eda-discover-automations/SKILL.md +6 -7
  39. package/skills/eda-explore/SKILL.md +28 -15
  40. package/skills/eda-fix/SKILL.md +7 -7
  41. package/skills/eda-fix-by-review/SKILL.md +4 -3
  42. package/skills/eda-just-do-it/SKILL.md +4 -4
  43. package/skills/eda-manual-test/SKILL.md +7 -5
  44. package/skills/eda-merge-worktree/SKILL.md +2 -3
  45. package/skills/eda-new-project/SKILL.md +3 -5
  46. package/skills/eda-orhestra/SKILL.md +3 -4
  47. package/skills/eda-plan/SKILL.md +126 -168
  48. package/skills/eda-plan-execute/SKILL.md +72 -92
  49. package/skills/eda-plan-polish/SKILL.md +14 -14
  50. package/skills/eda-plan-review/SKILL.md +25 -10
  51. package/skills/eda-plan-review-fix/SKILL.md +10 -7
  52. package/skills/eda-polish/SKILL.md +9 -6
  53. package/skills/eda-prepare-ai/SKILL.md +35 -15
  54. package/skills/eda-prod-check/SKILL.md +129 -0
  55. package/skills/eda-review/SKILL.md +92 -64
  56. package/skills/eda-review/references/checks/api.md +18 -0
  57. package/skills/eda-review/references/checks/architecture.md +16 -0
  58. package/skills/eda-review/references/checks/business.md +13 -0
  59. package/skills/eda-review/references/checks/code-quality.md +18 -0
  60. package/skills/eda-review/references/checks/correctness.md +19 -0
  61. package/skills/eda-review/references/checks/database.md +17 -0
  62. package/skills/eda-review/references/checks/documentation.md +13 -0
  63. package/skills/eda-review/references/checks/frontend.md +19 -0
  64. package/skills/eda-review/references/checks/infra.md +16 -0
  65. package/skills/eda-review/references/checks/performance.md +21 -0
  66. package/skills/eda-review/references/checks/plan-alignment.md +16 -0
  67. package/skills/eda-review/references/checks/previous-reviews.md +9 -0
  68. package/skills/eda-review/references/checks/references.md +11 -0
  69. package/skills/eda-review/references/checks/rules.md +16 -0
  70. package/skills/eda-review/references/checks/security.md +26 -0
  71. package/skills/eda-review/references/checks/seo.md +16 -0
  72. package/skills/eda-review/references/checks/tests.md +18 -0
  73. package/skills/eda-review/references/defects.md +24 -0
  74. package/skills/eda-review/references/triage.md +23 -0
  75. package/skills/eda-roadmap/SKILL.md +2 -4
  76. package/skills/eda-send-review/SKILL.md +3 -5
  77. package/skills/eda-worktree/SKILL.md +2 -3
  78. package/skills/eda-review/references/review-matrix.md +0 -72
package/README.md CHANGED
@@ -21,13 +21,13 @@ npm install -g @gian-tiaga/eda
21
21
  eda init
22
22
  ```
23
23
 
24
- Установщик покажет чекбоксы: стрелками выбираешь среду, пробелом отмечаешь, Enter продолжает. Можно выбрать любую комбинацию Claude Code, Codex CLI и OpenCode. Устанавливаются и скилы, и агенты. Если `docs/settings.yaml` ещё нет, установщик предложит настройки скилов и проверок review, включая модели Claude/Codex. Без интерактивного терминала устанавливаются все три среды и записывается сбалансированный профиль. В конце `eda init` отдельно пишет, какие скилы и агенты реально установлены или изменились.
24
+ Установщик построен на `@clack/prompts`. Сначала он спрашивает платформы: по умолчанию ничего не отмечено, пробел отмечает Claude Code, OpenCode или Codex CLI, Enter продолжает, нужна хотя бы одна. Устанавливаются и скилы, и агенты. Если `docs/settings.yaml` ещё нет, установщик спрашивает только основные настройки в порядке работы: `eda-plan` (размер, решения, тесты), где выполнять `eda-plan-execute`, `eda-review` и `eda-polish`, глубину `eda-manual-test`, режим, этапы и исполнение `eda-orhestra`. Первым в каждом вопросе стоит вариант по умолчанию, «Спрашивать каждый раз» — последним. Редкие настройки и модели `review.agents` получают defaults и меняются вручную в `docs/settings.yaml`. Без интерактивного терминала устанавливаются все три среды и записываются defaults. В конце `eda init` отдельно пишет, какие скилы и агенты реально установлены или изменились.
25
25
 
26
- Чтобы добавить OpenCode или другую платформу в проект с уже установленным EDA, запусти `eda update`. В интерактивном терминале команда при каждом запуске показывает все платформы: установленные уже отмечены, остальные можно добавить. Установленные снимать нельзя — `update` их обновляет, а не удаляет. Enter без изменений обновляет текущий набор. Выбор фиксируется установленными каталогами и manifest каждой платформы, поэтому при следующем запуске она уже отмечена; отдельный список в `docs/settings.yaml` не нужен. Без TTY новые платформы не добавляются. Если ни одной среды ещё нет, сначала нужен `eda init`. У `update-all` выбор платформ не меняется: он обновляет только уже найденные среды.
26
+ Чтобы добавить OpenCode или другую платформу в проект с уже установленным EDA, запусти `eda update`. В интерактивном терминале команда при каждом запуске показывает все платформы: установленные уже отмечены, остальные можно добавить. Установленные обновляются в любом случае: снятая с них отметка ничего не удаляет. Enter без изменений обновляет текущий набор. Выбор фиксируется установленными каталогами и manifest каждой платформы, поэтому при следующем запуске она уже отмечена; отдельный список в `docs/settings.yaml` не нужен. Без TTY новые платформы не добавляются. Если ни одной среды ещё нет, сначала нужен `eda init`. У `update-all` выбор платформ не меняется: он обновляет только уже найденные среды.
27
27
 
28
28
  После выбора платформ `eda update` переносит старые рабочие каталоги из `docs/<тип>/` в `docs/artifacts/<тип>/`, затем обновляет настройки, скилы и агентов. Содержимое файлов при переносе не меняется. Если один относительный путь уже существует в новой структуре, новый файл сохраняется, а старый удаляется.
29
29
 
30
- Полный валидный v3-конфиг сохраняется, пока совпадает с актуальным шаблоном; если в пакете появились новые значения или подсказки, файл молча перерисовывается с сохранением ваших значений. Старый, неизвестный или неполный файл разбирается как YAML: известные значения переносятся, в TTY спрашиваются только отсутствующие, затем профиль целиком атомарно записывается как v3. Без TTY используются перенесённые значения и defaults.
30
+ Полный валидный v3-конфиг сохраняется, пока совпадает с актуальным шаблоном; если в пакете появились новые значения или подсказки, файл молча перерисовывается с сохранением ваших значений. Старый, неизвестный или неполный файл разбирается как YAML: известные значения переносятся, в TTY спрашиваются только отсутствующие основные настройки, редкие получают defaults, затем профиль целиком атомарно записывается как v3. Без TTY используются перенесённые значения и defaults.
31
31
 
32
32
  Если пакет уже стоит во многих проектах, можно обновить его одной командой:
33
33
 
@@ -46,25 +46,26 @@ eda update-all ~/Code
46
46
  | `eda-orhestra` | Выполняет настраиваемую цепочку `eda-*`-скилов. В `subagents` каждый этап получает чистый контекст, в `main` этапы выполняет текущий агент, а `main_propagated` дополнительно передаёт `main` в совместимые execute/review-этапы. По умолчанию: план без проверок → полировка плана → выполнение → автономное ревью и исправления → ручные тесты. Если QA нашёл баг, оркестра запускает fix и повторяет только ручной тест. В `orhestra.steps` шаги можно переставлять, отключать и снабжать `args`. Не коммитит | Артефакты включённых скилов |
47
47
  | `eda-aim` | Сначала через отдельного агента-планировщика согласует с человеком одну или несколько простых проверяемых целей, затем передаёт их агентам-исполнителям и повторяет работу до независимого подтверждения агентом-проверяющим. При необходимости использует установленные скилы в отдельных изолированных субагентах. В `automatic` отвечает на безопасные рабочие вопросы самостоятельно, в `manual` передаёт их человеку; режим задаётся через `aim.mode` или текущий вызов. Точный список новых целей человек подтверждает всегда | `docs/artifacts/aims/` и артефакты задействованных скилов |
48
48
  | `eda-new-project` | Помогает стартовать новый проект: собирает и согласует требования, функциональность и границы, ограничения и архитектурные драйверы, сравнивает варианты основного стека и фиксирует выбранные компоненты с актуальными стабильными версиями. Если у стека есть официальный generator/scaffold CLI, передаёт его как обязательный способ разворачивания вместо ручного создания основы. Не проектирует архитектуру, правила, проверки, AI-скилы или MCP; сохраняет подтверждённый стартовый бриф и всегда без дополнительного вопроса запускает полный технический bootstrap через `eda-prepare-ai` | `docs/artifacts/project-starts/`, затем артефакты `eda-prepare-ai` |
49
- | `eda-business` | Совместно с человеком описывает целевое поведение проекта по тематическим карточкам: сложные темы фиксирует подробно, но без шума, соседних модулей и привязки к текущему коду. Может закрепить значимый механизм вроде JWT или серверного хранения токенов, но не язык, библиотеку или конкретную СУБД. `about` содержит лишь короткое описание проекта и основные возможности | `docs/business.md`, `docs/business/` |
49
+ | `eda-business` | Совместно с человеком описывает целевое поведение проекта по тематическим карточкам: сложные темы фиксирует подробно, но без шума, соседних модулей и привязки к текущему коду. Может закрепить значимый механизм вроде JWT или серверного хранения токенов, но не язык, библиотеку или конкретную СУБД. `about` содержит лишь короткое описание проекта и основные возможности. Карточка не больше 20 КБ: большую тему делит на подтемы, изменения вносит на месте без датированных дополнений | `docs/business.md`, `docs/business/` |
50
50
  | `eda-roadmap` | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | `docs/artifacts/roadmaps/` |
51
51
  | `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. После определения темы читает только применимые business- и reference-карточки. В дефолтном режиме ведёт исследование как диалог; для пакетов и ПО проверяет актуальные стабильные версии | `docs/artifacts/researches/` |
52
- | `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 артефакты |
53
- | `eda-plan-review` | Одним read-only проходом проверяет план по фиксированному чек-листу из 16 пунктов: покрытие запроса, отсутствие развилок, соответствие правилам и архитектуре, дубли, регистр текста, фазы и объём. Замечания вне списка не принимает. Оценка — доля закрытых пунктов, поэтому растёт монотонно. План не меняет | `docs/artifacts/plan-reviews/` |
54
- | `eda-plan-review-fix` | Закрывает проваленные пункты чек-листа минимальным изменением плана с совпадающим SHA-256. План не растёт: сначала удаление и замена, прирост объёма за один заход не больше 3%. Новое ревью не делает и код не меняет | `docs/artifacts/plan-review-fixes/` |
55
- | `eda-plan-polish` | Оркестрирует изолированный цикл plan-review → plan-review-fix. Хранит снапшот лучшей версии плана: как только score перестаёт расти, останавливается и восстанавливает лучшую версию, а не последнюю. По умолчанию одна итерация: проверка и исправление. Исправление проверяет ревью следующей итерации, поэтому при `limit 1` последняя правка остаётся неперепроверенной. Кросс-CLI strict не используется | `docs/artifacts/plan-reviews/`, `docs/artifacts/plan-review-fixes/` |
56
- | `eda-plan-execute` | Управляет выполнением плана по фазам в режиме `subagents`, `main` или `auto`. В `subagents` каждую фазу целиком выполняет отдельный изолированный субагент: он читает план, правила, архитектуру и только business/reference-карточки затронутого поведения и компонентов. Фазы проходят строго последовательно и принимаются независимыми проверяющими. В `main` весь план по тем же правилам выполняет и проверяет основной агент в одном контексте, а `auto` выбирает режим по плану. Отметки подтверждённых задач и журнал ведёт основной агент | `docs/artifacts/executions/` |
52
+ | `eda-plan` | Пишет план реализации: закрывает решения с пользователем, фиксирует контракты БД и API, устройство и дизайн интерфейса, консольные команды и фазы, каждую из которых один агент выполняет и проверяет за один проход. В разделе `Рамка` по строке на пункт выписывает всё, что задача обязана соблюдать из правил, архитектуры, эталонов, бизнес-карточек и `AGENTS.md`. `Целевой алгоритм` пишет сценариями из нумерованных шагов в порядке выполнения, а каждую таблицу БД — своей таблицей колонок. Каждый ответ пользователя попадает в `Принятые решения`, механизмов вне запроса и рамки план не добавляет. На подтверждение показывает полный план: в Claude Code — через Plan Mode, в Codex — в чате; сохраняет тот же текст. Для затронутой инфраструктуры, публичных страниц и частого пути ввода-вывода записывает решения, которые иначе принял бы исполнитель: переменные окружения и деплой, адреса и индексацию, допустимое число запросов и внешних вызовов. Если целевое поведение ещё не описано в business-карточках, до реализации добавляет `Дополнить бизнесовые правила`; если решение противоречит правилам или архитектуре, сначала меняет сам документ. Полировку плана не запускает — для неё есть `eda-plan-polish` и этап `eda-orhestra`; `plan.strict` включает кросс-CLI ревью | `docs/artifacts/plans/`, опционально plan-review артефакты |
53
+ | `eda-plan-review` | Одним read-only проходом проверяет план по фиксированному чек-листу из 22 пунктов: покрытие запроса фазами, отсутствие развилок, качества без меры и механизмов вне запроса, полноту `Рамки`, дубли и одинаковые имена, порядок разделов, формат алгоритма и таблиц БД, ошибки и восстановление в сценариях, тесты на каждую ветку алгоритма, удаляемое поведение, фазы с проверяемым результатом, объём и записанные решения по затронутой инфраструктуре, публичным страницам и числу запросов на частом пути. Замечания вне списка не принимает. Оценка — доля закрытых пунктов, поэтому растёт монотонно. План не меняет | `docs/artifacts/plan-reviews/` |
54
+ | `eda-plan-review-fix` | Закрывает проваленные пункты чек-листа минимальным изменением плана с совпадающим SHA-256. План не растёт: сначала удаление и замена, прирост объёма за один заход не больше 3%. Пункт, который не закрыть без роста, оставляет открытым со статусом `partial`; если план не изменился — `no-change`. Оба статуса не блокируют полировку. Новое ревью не делает и код не меняет | `docs/artifacts/plan-review-fixes/` |
55
+ | `eda-plan-polish` | Оркестрирует изолированный цикл plan-review → plan-review-fix до подтверждённых 100/100 без открытых пунктов или лимита попыток. Отсутствие прогресса не останавливает цикл. Хранит снапшот лучшей версии для восстановления при завершении без успеха. По умолчанию одна итерация: проверка и исправление. Исправление проверяет ревью следующей итерации, поэтому при `limit 1` последняя правка остаётся неперепроверенной. Кросс-CLI strict не используется | `docs/artifacts/plan-reviews/`, `docs/artifacts/plan-review-fixes/` |
56
+ | `eda-plan-execute` | Управляет выполнением плана по фазам в режиме `subagents`, `main` или `auto`. В `subagents` каждую фазу целиком выполняет отдельный изолированный субагент: он полностью читает план, его `Рамку` и все файлы из `sources`. Перед сдачей фазы исполнитель сверяет изменения с каждым пунктом `Рамки` и `Принятых решений`, а проверяющий повторяет эту сверку независимо. Поле `Согласование` останавливает работу до ответа пользователя, механизмов вне плана исполнитель не добавляет. Фазы проходят строго последовательно и принимаются независимыми проверяющими. В `main` весь план по тем же правилам выполняет и проверяет основной агент в одном контексте, а `auto` выбирает режим по плану. Отметки подтверждённых задач и журнал ведёт основной агент | `docs/artifacts/executions/` |
57
57
  | `eda-just-do-it` | Сразу выполняет задачу из текста рядом с вызовом: определяет scope, загружает только необходимые проектные инструкции, business/reference-карточки, код и тесты, вносит нужные изменения и проверяет результат. Не подменяет выполнение планом и не делает git- или внешние действия без прямого указания | `docs/artifacts/just-do-it/` |
58
58
  | `eda-fix` | Делает обычные фиксы по короткому контексту, баг-репорту или плану. Перед правками читает правила, архитектуру и только применимые карточки, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | `docs/artifacts/fixes/` |
59
- | `eda-review` | Оркестрирует отдельные read-only проверки корректности, архитектуры, правил, references, business-правил, плана, качества, тестов, безопасности, производительности, frontend/UI/UX, API, БД, документации и предыдущих ревью. Для PR/MR переиспользует результаты CI текущего head и не запускает локально уже завершённые там тесты, линтеры, typecheck, сборку и аналогичные проверки; смысловое ревью diff при этом выполняется полностью. Сохраняет только доказанные дефекты, которые обязательно исправить; косметические и спекулятивные предложения отбрасывает. Любая находка даёт `changes-required`, а чистое ревью — `clean` и 100/100. Без аргументов ревьюит `git diff HEAD` | `docs/artifacts/reviews/` |
59
+ | `eda-review` | Сначала отдельный агент `eda-review-triage` по содержимому ревью выбирает нужные проверки и применимые карточки, затем параллельно запускаются только они. Оркестрирует отдельные read-only проверки корректности, архитектуры, правил, references, business-правил, плана, качества, тестов, безопасности, производительности, frontend/UI/UX, API, БД, инфраструктуры, SEO, документации и предыдущих ревью. Производительность сравнивает base и head: рост числа запросов к БД и внешних вызовов на ту же операцию считается дефектом, а не оптимизацией. Инфраструктура и SEO проверяют только затронутое изменением и берут проектные решения вроде канонического хоста из `docs/rules.md`. Для PR/MR переиспользует результаты CI текущего head и не запускает локально уже завершённые там тесты, линтеры, typecheck, сборку и аналогичные проверки; смысловое ревью diff при этом выполняется полностью. Сохраняет только доказанные дефекты, которые обязательно исправить; косметические и спекулятивные предложения отбрасывает. Любая находка даёт `changes-required`, а чистое ревью — `clean` и 100/100. Без аргументов ревьюит `git diff HEAD` | `docs/artifacts/reviews/` |
60
60
  | `eda-fix-by-review` | Применяет все находки из ревью с учётом правил, архитектуры и применимых карточек. Спрашивает только при неоднозначности, конфликте, расширении scope или рискованном действии. В конце ссылается на отчёт прямо в файле ревью | `docs/artifacts/review-fixes/` |
61
61
  | `eda-manual-test` | Делает ручную проверку после изменений. По умолчанию проверка полная: разбирает план или другой артефакт по разделам, дополняет его фактическим `git diff HEAD` и закрывает матрицу областей — API, база данных, консольные команды, интерфейс, алгоритмы, фон и интеграции, права и роли, конфигурация, логи, регрессии рядом. Область нельзя закрыть чтением кода или зелёными автотестами; незакрытая область даёт `blocked`. Быстрый smoke включается настройкой `manual-test.depth` или словом в запросе. Применимая business-карточка может добавить только относящийся к задаче инвариант или сценарий. Не правит код, не пишет автотесты и не коммитит | `docs/artifacts/manual-tests/` |
62
- | `eda-polish` | Оркестрирует доводку изменений: запускает полное `eda-review`, затем `eda-fix-by-review` и повторяет цикл до `clean` и отсутствия находок либо до лимита 5 итераций. Режим цикла задаёт `polish.execution`: в `main` оба контракта выполняет основной агент без субагентов, в `subagents` каждый шаг получает отдельный изолированный контекст. Все находки исправляются, score остаётся справочным. Не коммитит | `docs/artifacts/reviews/`, `docs/artifacts/review-fixes/` |
62
+ | `eda-prod-check` | Read-only диагностика работающего прода или стейджа: «почему каждая страница открывается 5 секунд». Сначала замеряет симптом в цифрах, затем проходит слои снаружи внутрь — сеть и TLS, отдача статики, сервер (CPU, steal, память, диск), веб-сервер, runtime (opcache, PHP-FPM), приложение (debug, кеши фреймворка, драйверы), база, фронтенд — и сохраняет отчёт с причинами, их вкладом, доказательствами и исправлениями с ожидаемым эффектом. На сервере ничего не меняет и секреты не выводит | `docs/artifacts/prod-checks/` |
63
+ | `eda-polish` | Оркестрирует доводку изменений: запускает полное `eda-review`, затем `eda-fix-by-review` и повторяет цикл до подтверждённых 100/100, `clean` и отсутствия находок либо до лимита 5 итераций. Отсутствие прогресса не останавливает цикл. Режим цикла задаёт `polish.execution`: в `main` оба контракта выполняет основной агент без субагентов, в `subagents` каждый шаг получает отдельный изолированный контекст. Все находки исправляются. Не коммитит | `docs/artifacts/reviews/`, `docs/artifacts/review-fixes/` |
63
64
  | `eda-send-review` | На `sonnet` / `gpt-5.6-terra` отправляет ревью на открытый GitHub PR через `gh` всегда в едином формате: общий комментарий-сводка плюс комментарии к строкам кода. Закрытый или смерженный PR не переиспользует и предлагает создать новый либо указать другой открытый PR. Без явно указанного типа использует `comment`; `approve` и `request-changes` берёт только из контекста текущего вызова. По настройке может скрыть предыдущие сводки eda-send-review и зарезолвить их inline-треды. По умолчанию шлёт все пункты. Claude-модель закрепляется при установке; Codex-модель хранится как рекомендуемый будущий override | (комментарий в PR) |
64
65
  | `eda-commit` | Работает как лёгкий оркестратор одного `sonnet` / `gpt-5.6-terra` агента: тот сам собирает git-контекст, пишет сообщения и тексты PR по исходному запросу и фактическим изменениям, точечно коммитит и выполняет явно заданные push/PR/merge-действия. Агент экономит время: собирает контекст одним вызовом, не читает кодовую базу и документацию целиком, вместо полного diff берёт сводку `--stat` и дочитывает только неясные файлы, а смысл работы берёт из свежих артефактов `docs/artifacts/**`, если они есть в составе изменений. Весь состав идёт одним коммитом; на несколько логически цельных коммитов он делится только по явной просьбе (`split`, «раздели», «отдельными коммитами») или при явно раздельном scope. Для PR использует шаблон репозитория, отражает все группы изменений и указывает только реально выполненные проверки; существующим считает только открытый PR, а после закрытого или смерженного создаёт новый. С явным контекстом охватывает указанный состав; без контекста коммитит всё — все tracked-изменения и все untracked-файлы независимо от авторства и связи с текущей задачей, кроме очевидных кэшей и локальных служебных артефактов вроде `.DS_Store`. В Claude Code сам оркестратор закреплён за `sonnet`; в Codex остаётся на активной модели сессии из-за отсутствия per-skill override. При вероятном секрете агент блокируется до индексации затронутой группы. После любого push всегда возвращает ссылку — на существующий PR или на его создание — и спрашивает, создавать ли PR, если его нет. Если продолжение не задано, предлагает применимые варианты | (git, опционально GitHub PR) |
65
66
  | `eda-worktree` | На `haiku` / `gpt-5.6-luna` создаёт через пакетного агента git worktree рядом с основным проектом в папке `{name}-work-{n}` и одноимённую ветку. Базу берёт из аргумента или спрашивает | соседняя папка `{name}-work-{n}` |
66
67
  | `eda-merge-worktree` | На `haiku` / `gpt-5.6-luna` мержит через пакетного агента ветку из соседнего worktree в текущую ветку. Принимает номер `1`, короткое имя `work-1` или полное имя `{name}-work-1`. Worktree и ветку после merge не удаляет | (git) |
67
- | `eda-prepare-ai` | Выполняет технический bootstrap нового или существующего проекта: проектирует архитектуру, строгие правила и профиль инструментов, проходит полный каталог автоматических проверок, подбирает применимые AI-скилы, роли и MCP, затем создаёт AI-документацию. Для нового проекта фиксирует точную команду официального scaffold CLI выбранного стека, чтобы основа создавалась штатным инструментом, а не вручную. Один факт хранит у одного владельца: `docs/rules.md` содержит рабочие действия, запреты и команды проверок, а `docs/arch.md` — топологию исходного кода, ownership, зависимости и потоки без рабочих инструкций. Подтверждённые требования, стек и архитектурные драйверы из `eda-new-project` принимает как обязательный вход и не переоткрывает без обнаруженного конфликта. Для пустого проекта не выдумывает reference-карточки и не выдаёт неустановленные инструменты за доступные | `docs/rules.md`, `docs/arch.md`, `docs/references.md`, `docs/references/`, `AGENTS.md`, `CLAUDE.md` |
68
+ | `eda-prepare-ai` | Выполняет технический bootstrap нового или существующего проекта: проектирует архитектуру, строгие правила и профиль инструментов, проходит полный каталог автоматических проверок, подбирает применимые AI-скилы, роли и MCP, затем создаёт AI-документацию. Для нового проекта фиксирует точную команду официального scaffold CLI выбранного стека, чтобы основа создавалась штатным инструментом, а не вручную. Один факт хранит у одного владельца: `docs/rules.md` содержит рабочие действия, запреты и команды проверок, а `docs/arch.md` — топологию исходного кода, ownership, зависимости и потоки без рабочих инструкций. Правила и архитектура — короткие индексы и карточки областей в `docs/rules/` и `docs/arch/`; любой файл рамки не больше 20 КБ, без датированных разделов и журналов изменений, чтобы агент читал его целиком. Подтверждённые требования, стек и архитектурные драйверы из `eda-new-project` принимает как обязательный вход и не переоткрывает без обнаруженного конфликта. Для пустого проекта не выдумывает reference-карточки и не выдаёт неустановленные инструменты за доступные | `docs/rules.md`, `docs/rules/`, `docs/arch.md`, `docs/arch/`, `docs/references.md`, `docs/references/`, `AGENTS.md`, `CLAUDE.md` |
68
69
  | `eda-discover-automations` | Проводит baseline gap-аудит проекта даже без истории, а при наличии анализирует ревью, планы и фиксы. Не ограничивает число предложений: проверяет тесты/e2e, стиль, статанализ, границы модулей, конфиги/IaC, API/БД, security/supply chain, performance, release, эксплуатацию, browser MCP и MCP стека. Для каждой идеи даёт команду, контур запуска и приоритет; ничего не внедряет | `docs/artifacts/automations/` |
69
70
 
70
71
  ### Структура `docs/`
@@ -83,7 +84,7 @@ eda update-all ~/Code
83
84
 
84
85
  ### Экстремальный профиль проверок
85
86
 
86
- `eda-prepare-ai` и `eda-discover-automations` проходят не короткий список, а полный стек-зависимый каталог. В него входят unit/integration/component/contract/API/e2e/smoke/regression-тесты; property-based, mutation и fuzz; visual regression, accessibility и cross-browser; форматирование, lint, сложность, дубли и dead code; typecheck, taint и sanitizers; границы модулей, циклы и направления зависимостей; валидация env, CI, Docker, Kubernetes, Terraform и других конфигов; API/схемы и migrations; security, supply chain и SBOM; performance/load/soak/chaos; reproducible build, compatibility и release checks; документация, observability, backup/restore, доменные инварианты и AI evals.
87
+ `eda-prepare-ai` и `eda-discover-automations` проходят не короткий список, а полный стек-зависимый каталог. В него входят unit/integration/component/contract/API/e2e/smoke/regression-тесты; property-based, mutation и fuzz; visual regression, accessibility и cross-browser; форматирование, lint, сложность, дубли и dead code; typecheck, taint и sanitizers; границы модулей, циклы и направления зависимостей; валидация env, CI, Docker, Kubernetes, Terraform, прокси и других конфигов, включая редиректы на HTTPS и канонический хост; API/схемы и migrations; security, supply chain и SBOM; performance/load/soak/chaos и тесты на число запросов к БД и внешних вызовов; SEO и индексация публичных страниц; reproducible build, compatibility и release checks; документация, observability, backup/restore, доменные инварианты и AI evals.
87
88
 
88
89
  Для каждой применимой проверки скил указывает инструмент, точную команду или сценарий, риск и место запуска: `pre-commit`, `pre-push`, `PR CI`, `nightly`, `release`, `post-deploy` или `MCP/manual`. Browser/Playwright MCP и MCP выбранного стека рассматриваются отдельно и не подменяют детерминированные CLI/CI-проверки. Фиксированного лимита предложений нет; неприменимые группы должны иметь явное обоснование.
89
90
 
@@ -102,6 +103,7 @@ eda update-all ~/Code
102
103
  | `eda-commit-executor` | `sonnet` | `gpt-5.6-terra` | Одним вызовом собирает git-контекст, пишет сообщения коммитов и PR по запросу, артефактам и фактическим изменениям, коммитит состав одним коммитом или по группам при `split` и выполняет явно разрешённые push/PR/merge-действия |
103
104
  | `eda-worktree-executor` | `haiku` | `gpt-5.6-luna` | Создаёт соседний worktree и одноимённую ветку, не изменяя файлы проекта |
104
105
  | `eda-merge-worktree-executor` | `haiku` | `gpt-5.6-luna` | Мержит ветку из соседнего worktree в текущую без cleanup и ручного разрешения конфликтов |
106
+ | `eda-review-triage` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Выбирает проверки и применимые карточки по содержимому ревью |
105
107
  | `eda-review-correctness` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет функциональную корректность и крайние случаи |
106
108
  | `eda-review-architecture` | `opus`, read-only | `gpt-5.6-sol`, read-only | Проверяет архитектурные границы и зависимости |
107
109
  | `eda-review-rules` | `haiku`, read-only | `gpt-5.6-luna`, read-only | Проверяет инструкции и правила проекта |
@@ -111,22 +113,26 @@ eda update-all ~/Code
111
113
  | `eda-review-code-quality` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет читаемость, сложность и поддерживаемость |
112
114
  | `eda-review-tests` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет тестовое покрытие и корректность тестов |
113
115
  | `eda-review-security` | `opus`, read-only | `gpt-5.6-sol`, read-only | Проверяет безопасность и границы доверия |
114
- | `eda-review-performance` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет производительность и масштабирование |
116
+ | `eda-review-performance` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет рост запросов, внешних вызовов, памяти и веса отдаваемого фронтенда |
115
117
  | `eda-review-frontend` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет frontend-код, UI и UX по исходникам |
116
118
  | `eda-review-api` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет API-контракты и совместимость |
117
119
  | `eda-review-database` | `opus`, read-only | `gpt-5.6-sol`, read-only | Проверяет схемы, миграции, запросы и целостность данных |
120
+ | `eda-review-infra` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет образы, контейнеры, прокси и TLS, сжатие и кеш статики, production-настройки, CI/CD и конфигурацию окружений |
121
+ | `eda-review-seo` | `sonnet`, read-only | `gpt-5.6-terra`, read-only | Проверяет индексацию публичных страниц: адреса, редиректы, canonical, robots, sitemap и метаданные |
118
122
  | `eda-review-documentation` | `haiku`, read-only | `gpt-5.6-luna`, read-only | Проверяет обязательные обновления документации |
119
123
  | `eda-review-previous-reviews` | `haiku`, read-only | `gpt-5.6-luna`, read-only | Перепроверяет незакрытые удалённые замечания |
120
124
 
121
- Агенты устанавливаются отдельно от скилов. Модели review-агентов в таблице — сбалансированные defaults; `docs/settings.yaml` или прямое указание пользователя может заменить модель конкретной проверки на текущий запуск в режиме `subagents`. `eda-aim` последовательно разделяет согласование, выполнение и независимую проверку, а при необходимости использует установленные скилы только в отдельных изолированных субагентах; основной агент передаёт вопросы и структурированные результаты. `eda-commit` сохраняет исходный запрос и целиком передаёт сбор контекста, выбор файлов, коммит и разрешённое продолжение одному простому агенту. `eda-worktree` и `eda-merge-worktree` передают одному специализированному агенту git-операцию, обрабатывают его вопрос или результат и сами команды не выполняют. `eda-review` поддерживает два режима: `subagents` параллельно запускает применимых review-агентов, а `main` выполняет те же проверки основным агентом по встроенной матрице без субагентов. В Codex специализированные review-агенты запускаются с `fork_turns: "none"`, без наследования истории. В `subagents` все выбранные проверки отправляются одним нативным параллельным пакетом без ручных партий и shell-опроса.
125
+ Агенты устанавливаются отдельно от скилов. Модели review-агентов в таблице — сбалансированные defaults; `docs/settings.yaml` или прямое указание пользователя может заменить модель конкретной проверки на текущий запуск в режиме `subagents`. `eda-aim` последовательно разделяет согласование, выполнение и независимую проверку, а при необходимости использует установленные скилы только в отдельных изолированных субагентах; основной агент передаёт вопросы и структурированные результаты. `eda-commit` сохраняет исходный запрос и целиком передаёт сбор контекста, выбор файлов, коммит и разрешённое продолжение одному простому агенту. `eda-worktree` и `eda-merge-worktree` передают одному специализированному агенту git-операцию, обрабатывают его вопрос или результат и сами команды не выполняют. `eda-review` поддерживает два режима: `subagents` параллельно запускает применимых review-агентов, а `main` выполняет те же проверки основным агентом без субагентов. Чек-лист каждой проверки хранится в одном файле `skills/eda-review/references/checks/<проверка>.md`: его читает `main`, а установщик встраивает в агента, поэтому оба режима проверяют одно и то же. Чек-лист перечисляет конкретные классы дефектов: тихие сбои и гонки, доступ к чужим объектам, SSRF и prompt injection, совместимость API для старых клиентов, миграции без простоя, вес CSS и JS, сжатие и кеш статики, production-настройки. В Codex специализированные review-агенты запускаются с `fork_turns: "none"`, без наследования истории. В `subagents` все выбранные проверки отправляются одним нативным параллельным пакетом без ручных партий и shell-опроса.
122
126
 
123
127
  Для Claude Code установленный `eda-commit` получает `model: sonnet`, а `eda-worktree` и `eda-merge-worktree` — `model: haiku`. В Codex у скилов пока нет отдельного per-skill model override: основной поток остаётся на выбранной пользователем модели, но он выполняет только лёгкую оркестрацию; содержательная работа `eda-commit` закреплена за `gpt-5.6-terra`, а worktree-операции — за `gpt-5.6-luna`.
124
128
 
129
+ Codex-копии скилов начинаются с платформенного адаптера, а Codex-агенты заканчиваются тем же правилом чтения. Codex обрезает середину длинного вывода команды, поэтому вывод с пометкой `tokens truncated` не считается прочитанным файлом: агент дочитывает пропущенные строки, большие файлы читает частями, а документы рамки и план — только целиком. Адаптер также сопоставляет `AskUserQuestion` с `request_user_input`, `Agent` — со `spawn_agent`, а Plan Mode — с показом полного плана в чате; `update_plan` документ плана не заменяет.
130
+
125
131
  ### OpenCode V2
126
132
 
127
133
  Вызывай скилы через `@eda-plan`, `@eda-review` и другие точные ID. OpenCode-копии содержат платформенный адаптер: вложенные скилы загружаются через `skill`, агенты запускаются через `subagent`, вопросы задаются через `question`. Изолированные шаги оркестраторов выполняет `eda-skill-runner`, а не встроенный general, у которого запрещены вложенные субагенты. Режимы `main` / `subagents` сохраняют обычные границы.
128
134
 
129
- Все OpenCode-агенты по умолчанию наследуют модель сессии: колонки Claude/Codex в таблице выше и соответствующие поля моделей в `docs/settings.yaml` к OpenCode не применяются. В каноническом `agent.json` можно задать необязательное `models.opencode` в формате `provider/model#variant`; variant необязателен. Модель можно настроить средствами OpenCode. Per-skill модель не назначается. При явном runtime override, который хост не поддерживает, скил возвращает `blocked`, а не молча заменяет модель.
135
+ Все OpenCode-агенты по умолчанию наследуют модель сессии: колонки Claude/Codex в таблице выше к OpenCode не применяются. Модели ролей ревью из `review.agents` в формате `provider/model#variant` OpenCode применяет как есть. В каноническом `agent.json` можно задать необязательное `models.opencode` в формате `provider/model#variant`; variant необязателен. Модель можно настроить средствами OpenCode. Per-skill модель не назначается. При явном runtime override, который хост не поддерживает, скил возвращает `blocked`, а не молча заменяет модель.
130
136
 
131
137
  Read-only роли используют V2 `permissions`: разрешены чтение, поиск и web-инструменты, запрещены shell, редакторы, MCP и субагенты. Оркестратор передаёт им diff и git/CI-контекст; такие агенты сами не запускают тесты. Git-write роли не получают редакторов, но shell наследует разрешения пользователя; workspace-write также не переопределяет пользовательские разрешения. Это правила инструментов, не отдельный OS sandbox.
132
138
 
@@ -138,23 +144,23 @@ Read-only роли используют V2 `permissions`: разрешены ч
138
144
 
139
145
  У некоторых скилов есть флаг `strict` — он включает дополнительные тяжёлые проверки. Передаётся как часть запроса агенту, например: `eda-explore strict <тема>`. Также strict можно включить отдельно в `docs/settings.yaml`, например через `explore.strict: true`. У `eda-review` режим исполнения задаётся через `subagents` / `main`, а состав проверок — через собственные `mode` и `model`.
140
146
 
141
- У `eda-plan-execute` есть режимы `subagents` / `main` / `auto`. Режим можно разово указать в вызове, например `eda-plan-execute main docs/artifacts/plans/....md`; без него используется `plan-execute.mode` из настроек, а без настроек — `auto`.
147
+ У `eda-plan-execute` есть режимы `main` / `auto` / `subagents`. Режим можно разово указать в вызове, например `eda-plan-execute subagents docs/artifacts/plans/....md`; без него используется `plan-execute.mode` из настроек, а без настроек — `main`.
142
148
 
143
149
  Выбранный режим исполнения обязателен для `eda-plan-execute`, `eda-review`, `eda-polish` и `eda-orhestra`. При `main` из вызова или настроек агент не может перейти к субагентам из-за большого плана, diff или нехватки контекста. Прогресс и режим сохраняются для продолжения после сжатия контекста; при технической невозможности продолжить агент сообщает блокер. Выбор по размеру плана разрешён только в `eda-plan-execute auto` до начала выполнения. Зафиксированный режим меняется только по новому прямому указанию пользователя; `automatic` оркестратора такого права не даёт. У оркестратора `main` по-прежнему управляет только верхней цепочкой, а `main_propagated` также передаёт `main` совместимым execute/review-этапам; остальные вложенные контракты сохраняются.
144
150
 
145
151
  У `eda-aim` есть режимы `automatic` / `manual`. В автоматическом основной агент сам отвечает на безопасные рабочие вопросы по рекомендации субагента и фактам проекта, в ручном передаёт их человеку. Режим можно разово указать в вызове; без него используется `aim.mode` из настроек. Точный список новых целей перед записью в `docs/artifacts/aims/` всё равно один раз подтверждает человек.
146
152
 
147
- Скилы, которых нет в таблице ниже, не поддерживают эти флаги. Набор проверок `eda-review` отдельно управляется через `review.agents`.
153
+ Скилы, которых нет в таблице ниже, не поддерживают эти флаги. Набор проверок `eda-review` выбирает `eda-review-triage` по содержимому ревью; модели и effort ролей задаются в `review.agents`.
148
154
 
149
155
  | Скил | Флаг | Что включает | Когда стоит использовать |
150
156
  |---|---|---|---|
151
157
  | `eda-orhestra` | `automatic` / `manual`, `subagents` / `main` / `main_propagated`, `без полировки плана`, `без полировки кода`, `полировка кода N итераций`, `без ручных тестов` | Разово меняет вопросы, исполнение, состав цепочки и параметры шагов поверх `docs/settings.yaml` | `main` экономит верхний слой, `main_propagated` также включает main у совместимых execute/review-этапов |
152
158
  | `eda-aim` | `automatic` / `manual` | Разово меняет способ ответа на рабочие вопросы поверх `aim.mode`; подтверждение точного списка новых целей остаётся обязательным | Автономная работа или совместное прохождение развилок с человеком |
153
159
  | `eda-explore` | `strict` | После сохранения отчёта отдаёт его соседнему CLI (Claude → Codex или наоборот) на критическое ревью конкретности, фактов, развилок, рисков и версий; затем доправляет отчёт по замечаниям | Серьёзные исследования, которые лягут в основу больших решений; когда хочется второго мнения от другой модели/среды |
154
- | `eda-plan` | `strict`, `без ревью плана`, `без проверок` | `strict` независимо включает кросс-CLI проверку; `без ревью плана` отключает встроенный review/fix; `без проверок` отключает оба вида ревью | Когда нужно разделить создание плана и его последующую полировку |
160
+ | `eda-plan` | `strict`, `без проверок` | `strict` включает кросс-CLI проверку плана; `без проверок` её отключает. Полировку плана `eda-plan` не запускает: для неё есть `eda-plan-polish` и этап `eda-orhestra` | Когда нужна независимая проверка плана другим CLI |
155
161
  | `eda-plan-review` | `threshold N` | Разово меняет долю закрытых пунктов, при которой план считается готовым | Для самостоятельного аудита готового плана |
156
162
  | `eda-plan-execute` | `subagents` / `main` / `auto` | Разово меняет, где выполняются фазы, поверх `plan-execute.mode` | `main` для обязательного выполнения основным агентом, `subagents` для изолированных фаз, `auto` для выбора по размеру плана |
157
- | `eda-plan-polish` | `threshold N`, `limit N` | Меняет gate и максимальное число итераций «проверка + исправление» | Для доводки ответственных планов перед `eda-plan-execute` |
163
+ | `eda-plan-polish` | `limit N` | Меняет максимальное число итераций «проверка + исправление»; gate всегда 100, `threshold N` игнорируется | Для доводки ответственных планов перед `eda-plan-execute` |
158
164
  | `eda-manual-test` | `full` / `полная проверка`, `smoke` / `быстро` | Разово меняет глубину ручной проверки поверх `manual-test.depth` | `smoke` для короткой правки, `full` — когда нужно закрыть все области после плана |
159
165
  | `eda-polish` | `subagents` / `main`, `limit N` | Разово меняет способ выполнения review и исправлений поверх `polish.execution` и число итераций | `subagents` держит каждый шаг в чистом контексте, `main` экономит контекст на мелкой доводке |
160
166
  | `eda-review` | `subagents` / `main` | Разово меняет способ выполнения выбранных проверок поверх `review.execution` | `main` экономит контекст на частых локальных ревью; `subagents` сохраняет независимость ролей для ответственных изменений |
@@ -170,6 +176,97 @@ Read-only роли используют V2 `permissions`: разрешены ч
170
176
  ```yaml
171
177
  version: 3
172
178
 
179
+ explore:
180
+ # Включает кросс-CLI ревью в eda-explore.
181
+ # false | true
182
+ strict: false
183
+ # Как eda-explore ведёт исследовательские развилки.
184
+ # recommend_and_ask | autonomous | ask_each_time
185
+ decision_mode: recommend_and_ask
186
+
187
+ plan:
188
+ # Размер плана.
189
+ # normal | short | ask_each_time
190
+ size: normal
191
+ # Как eda-plan принимает существенные решения.
192
+ # recommend_and_ask | autonomous | ask_each_time
193
+ decision_mode: recommend_and_ask
194
+ # Когда писать тесты и запускать автоматические проверки.
195
+ # phase_tests_final_checks | tdd_each_phase | after_each_phase | end_of_plan | ask_each_time
196
+ test_strategy: phase_tests_final_checks
197
+ # Стратегия логирования.
198
+ # standard | debug_precise | ask_each_time
199
+ logging_strategy: standard
200
+ # Включает кросс-CLI ревью в eda-plan.
201
+ # false | true
202
+ strict: false
203
+
204
+ plan-review:
205
+ # Доля закрытых пунктов чек-листа, при которой план считается готовым.
206
+ # 1..100
207
+ threshold: 100
208
+
209
+ plan-polish:
210
+ # Максимальное число итераций «проверка + исправление».
211
+ # Положительное целое число.
212
+ limit: 5
213
+
214
+ plan-execute:
215
+ # Где eda-plan-execute выполняет фазы плана.
216
+ # main — весь план одним контекстом, auto — решает по плану, subagents — каждая фаза в отдельном субагенте.
217
+ mode: main
218
+
219
+ review:
220
+ # Где eda-review выполняет выбранные проверки.
221
+ # main — все проверки основным агентом без субагентов, subagents — разведчик и отдельный агент на проверку.
222
+ execution: main
223
+ # Какие проверки нужны, решает eda-review-triage по содержимому ревью.
224
+ # Модель роли в subagents: default — модель установленного агента, иначе provider/model#variant,
225
+ # например anthropic/claude-opus-5-5#high или deepseek/deepseek-flash-4.1; variant задаёт effort.
226
+ # Если среда не может запустить модель, роль идёт на модели агента с предупреждением в ревью.
227
+ # В main все проверки выполняет текущая модель.
228
+ agents:
229
+ triage: default
230
+ correctness: default
231
+ architecture: default
232
+ rules: default
233
+ references: default
234
+ business: default
235
+ plan_alignment: default
236
+ code_quality: default
237
+ tests: default
238
+ security: default
239
+ performance: default
240
+ frontend: default
241
+ api: default
242
+ database: default
243
+ infra: default
244
+ seo: default
245
+ documentation: default
246
+ previous_reviews: default
247
+
248
+ polish:
249
+ # Где eda-polish выполняет review и исправления цикла полировки.
250
+ # subagents — каждое review и каждое исправление в отдельном изолированном субагенте, main — оба контракта основным агентом.
251
+ execution: subagents
252
+
253
+ manual-test:
254
+ # Глубина ручной проверки в eda-manual-test.
255
+ # full — закрыть все применимые области: API, база, консольные команды, интерфейс, алгоритмы, фон, права, конфигурацию, логи и регрессии рядом.
256
+ # smoke — только запуск и основной сценарий изменённой области.
257
+ # full | smoke | ask_each_time
258
+ depth: full
259
+
260
+ send-review:
261
+ # После успешной отправки скрывает предыдущие сводки eda-send-review и резолвит их inline-треды.
262
+ # true | false
263
+ close_previous_reviews: true
264
+
265
+ discover-automations:
266
+ # Добавляет docs/artifacts/plans/ в обычный запуск eda-discover-automations.
267
+ # false | true
268
+ include_plans: false
269
+
173
270
  orhestra:
174
271
  # Режим полного цикла eda-orhestra.
175
272
  # automatic | manual
@@ -217,197 +314,6 @@ aim:
217
314
  # Режим ответов на рабочие вопросы eda-aim.
218
315
  # automatic | manual
219
316
  mode: automatic
220
-
221
- explore:
222
- # Включает кросс-CLI ревью в eda-explore.
223
- # true | false
224
- strict: false
225
- # Определяет, как eda-explore ведёт исследовательские развилки.
226
- # autonomous | recommend_and_ask | ask_each_time
227
- decision_mode: recommend_and_ask
228
-
229
- plan:
230
- # Включает кросс-CLI ревью в eda-plan.
231
- # true | false
232
- strict: false
233
- # Запускает изолированный цикл eda-plan-polish.
234
- # true | false
235
- review: true
236
- # Задаёт размер плана.
237
- # normal | short | ask_each_time
238
- size: normal
239
- # Определяет, как eda-plan принимает существенные решения.
240
- # autonomous | recommend_and_ask | ask_each_time
241
- decision_mode: recommend_and_ask
242
- # Задаёт стратегию тестов и автоматических проверок.
243
- # after_each_phase | phase_tests_final_checks | tdd_each_phase | end_of_plan | ask_each_time
244
- test_strategy: ask_each_time
245
- # Задаёт стратегию логирования.
246
- # debug_precise | standard | ask_each_time
247
- logging_strategy: ask_each_time
248
-
249
- plan-review:
250
- # Доля закрытых пунктов чек-листа, при которой план считается готовым.
251
- threshold: 100
252
-
253
- plan-polish:
254
- # Максимальное число итераций «проверка + исправление».
255
- limit: 1
256
-
257
- plan-execute:
258
- # Где eda-plan-execute выполняет фазы плана.
259
- # subagents — каждая фаза в отдельном субагенте, main — весь план одним контекстом, auto — решает по плану.
260
- mode: auto
261
-
262
- polish:
263
- # Где eda-polish выполняет review и исправления цикла полировки.
264
- # subagents — каждое review и каждое исправление в отдельном изолированном субагенте, main — оба контракта основным агентом.
265
- execution: subagents
266
-
267
- manual-test:
268
- # Глубина ручной проверки в eda-manual-test.
269
- # full — закрыть все применимые области: API, база, консольные команды, интерфейс, алгоритмы, фон, права, конфигурацию, логи и регрессии рядом.
270
- # smoke — только запуск и основной сценарий изменённой области.
271
- # full | smoke | ask_each_time
272
- depth: full
273
-
274
- review:
275
- # subagents — отдельный специализированный агент на проверку, main — все проверки основным агентом без субагентов.
276
- execution: subagents
277
- # Каждая проверка имеет собственный режим запуска; модели применяются только в subagents.
278
- agents:
279
- # Проверяет ошибки в логике, крайние случаи и обработку ошибок.
280
- # Эта базовая проверка по умолчанию запускается всегда.
281
- correctness:
282
- # always — всегда, auto — когда применимо, off — отключено.
283
- mode: always
284
- model:
285
- # Модель для Claude Code.
286
- claude: sonnet
287
- # Модель для Codex.
288
- codex: gpt-5.6-terra
289
-
290
- # Проверяет архитектурные границы, зависимости и разделение ответственности.
291
- # В auto запускается при изменении модулей, зависимостей, публичных контрактов или границ системы.
292
- architecture:
293
- mode: auto
294
- model:
295
- claude: opus
296
- codex: gpt-5.6-sol
297
-
298
- # Проверяет соблюдение AGENTS.md, CLAUDE.md и docs/rules.md.
299
- # Эта базовая проверка по умолчанию запускается всегда.
300
- rules:
301
- mode: always
302
- model:
303
- claude: haiku
304
- codex: gpt-5.6-luna
305
-
306
- # Проверяет соответствие применимым карточкам из docs/references/.
307
- # В auto запускается только когда для изменений выбраны применимые карточки.
308
- references:
309
- mode: auto
310
- model:
311
- claude: haiku
312
- codex: gpt-5.6-luna
313
-
314
- # Проверяет изменённое поведение по применимым карточкам из docs/business/.
315
- # В auto запускается только когда изменения затрагивают поведение с применимой business-карточкой.
316
- business:
317
- mode: auto
318
- model:
319
- claude: sonnet
320
- codex: gpt-5.6-terra
321
-
322
- # Проверяет, что реализация соответствует указанному или однозначно найденному плану.
323
- # В auto запускается только когда у ревью есть конкретный план.
324
- plan_alignment:
325
- mode: auto
326
- model:
327
- claude: sonnet
328
- codex: gpt-5.6-terra
329
-
330
- # Проверяет читаемость, сложность, дублирование и поддерживаемость кода.
331
- # Эта базовая проверка по умолчанию запускается всегда.
332
- code_quality:
333
- mode: always
334
- model:
335
- claude: sonnet
336
- codex: gpt-5.6-terra
337
-
338
- # Проверяет достаточность, корректность и устойчивость тестов.
339
- # Эта базовая проверка по умолчанию запускается всегда.
340
- tests:
341
- mode: always
342
- model:
343
- claude: sonnet
344
- codex: gpt-5.6-terra
345
-
346
- # Проверяет уязвимости, права доступа, валидацию и работу с чувствительными данными.
347
- # В auto запускается для auth, permissions, внешнего ввода, файлов, сети, секретов и криптографии.
348
- security:
349
- mode: auto
350
- model:
351
- claude: opus
352
- codex: gpt-5.6-sol
353
-
354
- # Проверяет запросы, циклы, память, конкурентность и другие риски производительности.
355
- # В auto запускается при изменении запросов, кешей, конкурентности или горячих путей.
356
- performance:
357
- mode: auto
358
- model:
359
- claude: sonnet
360
- codex: gpt-5.6-terra
361
-
362
- # Проверяет фронтенд-код, UI, UX, адаптивность и состояния интерфейса.
363
- # В auto обязательно запускается при изменении компонентов, стилей, клиентских маршрутов или состояния UI.
364
- frontend:
365
- mode: auto
366
- model:
367
- claude: sonnet
368
- codex: gpt-5.6-terra
369
-
370
- # Проверяет API-контракты, совместимость, валидацию и обработку ошибок.
371
- # В auto запускается при изменении маршрутов, handlers, DTO, схем API, GraphQL или RPC.
372
- api:
373
- mode: auto
374
- model:
375
- claude: sonnet
376
- codex: gpt-5.6-terra
377
-
378
- # Проверяет схемы, миграции, запросы, индексы и целостность данных.
379
- # В auto запускается при изменении миграций, моделей хранения, SQL, схем или транзакций.
380
- database:
381
- mode: auto
382
- model:
383
- claude: opus
384
- codex: gpt-5.6-sol
385
-
386
- # Проверяет, обновлена ли документация для изменившегося пользовательского поведения.
387
- # В auto запускается при изменении публичного API, CLI, настроек или документируемого поведения.
388
- documentation:
389
- mode: auto
390
- model:
391
- claude: haiku
392
- codex: gpt-5.6-luna
393
-
394
- # Перепроверяет незакрытые замечания предыдущих ревью для удалённого PR или MR.
395
- # В auto запускается только для ссылки на PR/MR или другой цели с доступными удалёнными обсуждениями.
396
- previous_reviews:
397
- mode: auto
398
- model:
399
- claude: haiku
400
- codex: gpt-5.6-luna
401
-
402
- send-review:
403
- # После успешной отправки скрывает предыдущие сводки eda-send-review и резолвит их inline-треды.
404
- # true | false
405
- close_previous_reviews: false
406
-
407
- discover-automations:
408
- # Добавляет docs/artifacts/plans/ в обычный запуск eda-discover-automations.
409
- # true | false
410
- include_plans: false
411
317
  ```
412
318
 
413
319
  Что означают настройки:
@@ -418,23 +324,24 @@ discover-automations:
418
324
  - `steps[].on_failure` — настраивает исправление failed manual-test прямо рядом с этим шагом: `skill` и `args` задают фикс, `then` — повторяемые id шагов, `max_cycles` — лимит. Если обработчика нет, оркестратор сохраняет failed-отчёт и останавливается.
419
325
  - `aim.mode` — `automatic` самостоятельно выбирает безопасные ответы на рабочие вопросы; `manual` передаёт вопросы человеку. Явный режим в текущем вызове имеет приоритет.
420
326
  - `explore.strict` и `explore.decision_mode` — кросс-CLI ревью и способ выбора по исследовательским развилкам в `eda-explore`.
421
- - `plan.review` — изолированный цикл `eda-plan-polish` внутри `eda-plan`, ровно одна итерация полировки (`limit 1`); `plan.strict` независимо управляет кросс-CLI ревью.
422
- - `plan.size`, `plan.decision_mode`, `plan.test_strategy`, `plan.logging_strategy` — режим и структура работы `eda-plan`. Имя `test_strategy` сохранено для совместимости, но настройка управляет и тестами, и автоматическими проверками: `after_each_phase` запускает их после каждой фазы, `tdd_each_phase` сначала пишет тесты и после реализации запускает все проверки фазы, `phase_tests_final_checks` в фазе запускает только добавленные или изменённые ею тесты, а остальные проверки оставляет финалу, `end_of_plan` переносит тесты и автоматические проверки в конец плана.
327
+ - `plan.strict` — кросс-CLI ревью плана в `eda-plan`. Полировки плана внутри `eda-plan` нет: её делает `eda-plan-polish` отдельно или этапом `eda-orhestra`.
328
+ - `plan.size`, `plan.decision_mode`, `plan.test_strategy`, `plan.logging_strategy` — режим и структура работы `eda-plan`. Имя `test_strategy` сохранено для совместимости, но настройка управляет и тестами, и автоматическими проверками: `after_each_phase` запускает их после каждой фазы, `tdd_each_phase` сначала пишет тесты и после реализации запускает все проверки фазы, `phase_tests_final_checks` в фазе запускает только добавленные или изменённые ею тесты, а остальные проверки оставляет финалу, `end_of_plan` переносит тесты и автоматические проверки в конец плана. Defaults: `size: normal`, `decision_mode: recommend_and_ask`, `test_strategy: phase_tests_final_checks`, `logging_strategy: standard`.
423
329
  - `plan-review.threshold` — доля закрытых пунктов чек-листа для статуса `ready`, default `100`. Отдельных агентов у `plan-review` больше нет: проверку целиком делает один субагент.
424
- - `plan-polish.limit` — максимальное число итераций «проверка + исправление»; default `1`. Отдельного подтверждающего прохода нет: исправление проверяет ревью следующей итерации. Цикл останавливается раньше, если score перестал расти.
425
- - `plan-execute.mode` — где `eda-plan-execute` выполняет фазы: `subagents` — каждая фаза в отдельном изолированном субагенте с независимой проверкой, `main` — весь план одним контекстом без субагентов, `auto` — выбор по плану; default `auto`. Явный режим в вызове имеет приоритет.
330
+ - `plan-polish.limit` — максимальное число итераций «проверка + исправление»; default `5`. Отдельного подтверждающего прохода нет: исправление проверяет ревью следующей итерации. Отсутствие роста score, повторные пункты и исправление без изменений цикл не останавливают: он идёт до 100/100 или лимита.
331
+ - `plan-execute.mode` — где `eda-plan-execute` выполняет фазы: `subagents` — каждая фаза в отдельном изолированном субагенте с независимой проверкой, `main` — весь план одним контекстом без субагентов, `auto` — выбор по плану; default `main`. Явный режим в вызове имеет приоритет.
426
332
  - `polish.execution` — где `eda-polish` выполняет review и исправления своего цикла: `subagents` — каждый шаг в отдельном изолированном субагенте, `main` — оба контракта основным агентом; default `subagents`. Настройка независима от `review.execution`, которая задаёт только раскладку проверок внутри `eda-review`. Явный режим в вызове и `main` от `eda-orhestra` в `main_propagated` имеют приоритет.
427
333
  - `manual-test.depth` — глубина ручной проверки в `eda-manual-test`: `full` — закрыть все применимые области матрицы покрытия, `smoke` — только запуск и основной сценарий изменённой области, `ask_each_time` — спрашивать каждый раз; default `full`. Явная глубина в вызове имеет приоритет.
428
- - `review.execution` — где выполняются проверки `eda-review`: `subagents` запускает отдельные специализированные роли, `main` выполняет те же выбранные проверки основным агентом без субагентов и с однократной загрузкой общего контекста; default `subagents`. Явный режим в вызове имеет приоритет.
429
- - `review.agents.<check>.mode` — запускать проверку всегда, автоматически по контексту или отключить.
430
- - `review.agents.<check>.model.claude` и `.codex` — модель конкретной проверки в соответствующей среде для `subagents`; в `main` используется текущая модель агента.
334
+ - `review.execution` — где выполняются проверки `eda-review`: `subagents` запускает отдельные специализированные роли, `main` выполняет те же выбранные проверки основным агентом без субагентов и с однократной загрузкой общего контекста; default `main`. Явный режим в вызове имеет приоритет.
335
+ - `review.agents.<role>` — одна строка на роль: `default` или модель `provider/model#variant`, где provider и variant необязательны, а variant задаёт effort. Например: `security: anthropic/claude-opus-5-5#high`, `triage: deepseek/deepseek-flash-4.1`, `tests: default#high`. `default` — модель и effort установленного агента: в Claude Code и Codex — из `agent.json`, в OpenCode — модель агента или сессии. Установщик пишет `default` и о моделях не спрашивает; значения меняются вручную. Применяются только в `subagents`, в `main` работает текущая модель агента.
336
+ - Одна строка действует во всех средах проекта. Claude Code запускает только модели Claude, Codex — только OpenAI, OpenCode — любые. Если текущая среда не может запустить указанную модель, роль выполняется на модели установленного агента, а в покрытии ревью появляется warning.
337
+ - Режимов `always` / `auto` / `off` у проверок нет: какие проверки нужны, решает `eda-review-triage` по содержимому ревью, а в `main` — основной агент по той же таблице. При переходе на 4.0 `eda update` ставит `default` всем ролям и переписывает конфиг; после этого заданные вручную модели сохраняются, а значение не в формате `default` или `provider/model#variant` заменяется на `default` с сообщением.
431
338
  - `eda-review` не делит находки по обязательности: каждый принятый пункт требует исправления, а предложения без доказанного практического дефекта отбрасываются. Score остаётся экспертной оценкой серьёзности; любая находка блокирует `clean` независимо от score.
432
- - `send-review.close_previous_reviews` — после успешной новой отправки скрывает предыдущие сводки, созданные `eda-send-review` текущим GitHub-пользователем, и резолвит связанные inline-треды; прямое указание в текущем запросе переопределяет настройку.
339
+ - `send-review.close_previous_reviews` — после успешной новой отправки скрывает предыдущие сводки, созданные `eda-send-review` текущим GitHub-пользователем, и резолвит связанные inline-треды; default `true`, прямое указание в текущем запросе переопределяет настройку.
433
340
  - `discover-automations.include_plans` — добавляет `docs/artifacts/plans/` в обычный запуск `eda-discover-automations`.
434
341
 
435
- Каждый скилл читает только свой раздел. Для `eda-review` прямое указание в текущем запросе может разово включить или отключить проверку и заменить её модель, например: «без performance, включи business, architecture на opus».
342
+ Каждый скилл читает только свой раздел. Для `eda-review` прямое указание в текущем запросе может разово включить или отключить проверку и заменить её модель или effort, например: «без performance, включи business, architecture на anthropic/claude-opus-5-5#high, security на default#xhigh». Такие указания важнее выбора triage.
436
343
 
437
- Поддерживается только `version: 3`. Полный валидный v3 установщик сохраняет как есть, пока его текст совпадает с шаблоном пакета; когда шаблон меняется — например, у настройки появляется новое допустимое значение, — файл перерисовывается без вопросов: ваши значения переносятся, посторонние ключи и ручные комментарии не сохраняются. Старые, неизвестные и неполные файлы разбираются через YAML: валидные известные значения переносятся, в TTY спрашиваются только отсутствующие, затем профиль целиком атомарно нормализуется. Без TTY недостающие поля получают defaults. `plan.meta_review` переносится в `plan.review`, а `plan-polish.strict` удаляется.
344
+ Поддерживается только `version: 3`. Полный валидный v3 установщик сохраняет как есть, пока его текст совпадает с шаблоном пакета; когда шаблон меняется — например, у настройки появляется новое допустимое значение, — файл перерисовывается без вопросов: ваши значения переносятся, посторонние ключи и ручные комментарии не сохраняются. Старые, неизвестные и неполные файлы разбираются через YAML: валидные известные значения переносятся, в TTY спрашиваются только отсутствующие, затем профиль целиком атомарно нормализуется. Без TTY недостающие поля получают defaults. `plan.review`, `plan.meta_review` и `plan-polish.strict` удаляются.
438
345
 
439
346
  `eda update-all configure` записывает один общий v3-профиль. `skip` сохраняет актуальный полный v3 и перерисовывает устаревший по шаблону, индивидуально переносит остальные конфиги и создаёт defaults при отсутствии файла. Подробности перехода приведены в [MIGRATION.md](MIGRATION.md)
440
347
 
@@ -498,8 +405,9 @@ discover-automations может запускаться от review, fix-by-revie
498
405
  ## 🎯 Главные принципы
499
406
 
500
407
  - **Простой язык.** Скилы общаются с тобой так, чтобы понял человек без глубоких знаний предмета. Термины — только когда без них нельзя.
501
- - **Все вопросы — интерактивно.** В Claude Code — через `AskUserQuestion`; в интерактивном Codex — через `request_user_input` или блокирующий вопрос в чат. В `codex exec` и других неинтерактивных запусках скил не имитирует диалог: если без ответа нельзя безопасно продолжать, он завершает работу со статусом `blocked: нужен ответ пользователя`.
502
- - **Способ review настраивается.** В `subagents` `eda-review` запускает установленных read-only агентов нативным механизмом Claude/Codex и блокируется при их недоступности без CLI-fallback. В `main` основной агент выполняет те же выбранные проверки по общей матрице без субагентов и повторной загрузки общего контекста.
408
+ - **Вопросы — раундами с рекомендацией.** Скилы, которые согласуют решения (`eda-plan`, `eda-explore`, `eda-business`, `eda-new-project`, `eda-prepare-ai`), сначала сами выясняют факты, а затем задают раундом все вопросы, которые уже можно задать; вопрос, зависящий от ещё не данного ответа, ждёт следующего раунда. У каждого вопроса — зачем он, 2–4 варианта и рекомендованный вариант первым с причиной.
409
+ - **Все вопросы — интерактивно.** Скилы задают вопрос через `AskUserQuestion`, а платформенный адаптер подставляет инструмент среды: в Claude Code это сам `AskUserQuestion`, в Codex — `request_user_input` или блокирующий вопрос в чат, в OpenCode — `question`. В неинтерактивных запусках (`codex exec`, `claude -p`) скил не имитирует диалог: если без ответа нельзя безопасно продолжать, он завершает работу со статусом `blocked: нужен ответ пользователя`.
410
+ - **Способ review настраивается.** В `subagents` `eda-review` запускает установленных read-only агентов нативным механизмом Claude/Codex и блокируется при их недоступности без CLI-fallback. В `main` основной агент выполняет те же выбранные проверки по тем же чек-листам без субагентов и повторной загрузки общего контекста.
503
411
  - **Технические остановки обрабатываются по причине.** Оркестраторы ждут свободный слот при лимите параллельности, запрашивают недостающее разрешение, один раз продолжают агента после временной API-ошибки и без бессмысленных retry останавливаются при лимите глубины, исчерпанной квоте или неизвестном сбое.
504
412
  - **Повторяемые роли — в пакетных агентах.** Скилы управляют процессом, а стабильные изолированные роли получают собственный prompt, модель и доступ. Полные review-prompts не дублируются в оркестраторе.
505
413
  - **Артефакты по папкам.** Исследования отдельно, планы отдельно, ревью отдельно. Между файлами — ссылки. Через месяц легко найти, кто что когда решал.