@gian-tiaga/eda
v3.12.0
Published
Пакет скилов и специализированных агентов eda-* для Claude Code и Codex CLI
Maintainers
Readme
🌊 eda
Поточная разработка с AI-агентами — на русском языке. Пакет готовых скилов и специализированных агентов для Claude Code и Codex CLI, которые ведут тебя через весь цикл: от исследования до коммита.
eda — это двадцать три скила и пакетные агенты для повторяемых ролей. Скил отвечает за пользовательский workflow и оркестрацию, агент — за изолированную работу с закреплённой моделью и ограничениями. Вместо того чтобы каждый раз объяснять модели, как делать ревью или как исполнять план, ты говоришь одно слово — и она следует чёткой инструкции на русском, со всеми правилами, проверками и артефактами в нужных папках.
⚡ Установка
npm install -g @gian-tiaga/edaОбновляешься с 2.x или более ранней версии? Перед обновлением прочитай гайд по миграции на 3.0: рабочие артефакты теперь лежат в docs/artifacts/.
В корне твоего проекта:
eda initУстановщик покажет чекбоксы: стрелками выбираешь среду, пробелом отмечаешь, Enter продолжает. Можно поставить Claude Code, Codex CLI или обе среды сразу. Устанавливаются и скилы, и агенты. Если docs/settings.yaml ещё нет, установщик предложит настройки скилов, а для каждой проверки plan-review и review отдельно спросит режим и модели Claude/Codex. В неинтерактивном запуске записывается сбалансированный профиль. В конце eda init отдельно пишет, какие скилы и агенты реально установлены или изменились.
eda update сначала переносит старые рабочие каталоги из docs/<тип>/ в docs/artifacts/<тип>/, затем обновляет настройки, скилы и агентов. Содержимое файлов при переносе не меняется. Если один относительный путь уже существует в новой структуре, новый файл сохраняется, а старый удаляется.
Полный валидный v3-конфиг сохраняется, пока совпадает с актуальным шаблоном; если в пакете появились новые значения или подсказки, файл молча перерисовывается с сохранением ваших значений. Старый, неизвестный или неполный файл разбирается как YAML: известные значения переносятся, в TTY спрашиваются только отсутствующие, затем профиль целиком атомарно записывается как v3. Без TTY используются перенесённые значения и defaults.
Если пакет уже стоит во многих проектах, можно обновить его одной командой:
eda update-all ~/Codeeda update-all ищет проекты в указанной директории, её прямых подпапках и подпапках второго уровня. Проект считается найденным, если в нём уже есть установленный скил, агент или manifest eda для Claude/Codex. В каждом проекте команда переносит рабочие артефакты, затем предлагает настроить один общий профиль для всех проектов или выбрать skip. В режиме skip актуальный полный v3 сохраняется, устаревший по шаблону перерисовывается, старые и неполные конфиги индивидуально переносятся, отсутствующие создаются с defaults. Без TTY автоматически используется skip. Ошибка одного проекта не останавливает остальные.
🛠️ Скилы
| Скил | Что делает | Куда складывает |
|---|---|---|
| eda-orhestra | Выполняет настраиваемую цепочку eda-*-скилов. В subagents каждый этап получает чистый контекст, в main этапы выполняет текущий агент, а main_propagated дополнительно передаёт main в совместимые execute/review-этапы. По умолчанию: план без проверок → полировка плана → выполнение → автономное ревью и исправления → ручные тесты. Если QA нашёл баг, оркестра запускает fix и повторяет только ручной тест. В orhestra.steps шаги можно переставлять, отключать и снабжать args. Не коммитит | Артефакты включённых скилов |
| eda-aim | Сначала через отдельного агента-планировщика согласует с человеком одну или несколько простых проверяемых целей, затем передаёт их агентам-исполнителям и повторяет работу до независимого подтверждения агентом-проверяющим. При необходимости использует установленные скилы в отдельных изолированных субагентах. В automatic отвечает на безопасные рабочие вопросы самостоятельно, в manual передаёт их человеку; режим задаётся через aim.mode или текущий вызов. Точный список новых целей человек подтверждает всегда | docs/artifacts/aims/ и артефакты задействованных скилов |
| eda-new-project | Помогает стартовать новый проект: собирает и согласует требования, функциональность и границы, ограничения и архитектурные драйверы, сравнивает варианты основного стека и фиксирует выбранные компоненты с актуальными стабильными версиями. Не проектирует архитектуру, правила, проверки, AI-скилы или MCP; сохраняет подтверждённый стартовый бриф и всегда без дополнительного вопроса запускает полный технический bootstrap через eda-prepare-ai | docs/artifacts/project-starts/, затем артефакты eda-prepare-ai |
| eda-business | Совместно с человеком описывает целевое поведение проекта по тематическим карточкам: сложные темы фиксирует подробно, но без шума, соседних модулей и привязки к текущему коду. Может закрепить значимый механизм вроде JWT или серверного хранения токенов, но не язык, библиотеку или конкретную СУБД. about содержит лишь короткое описание проекта и основные возможности | docs/business.md, docs/business/ |
| eda-roadmap | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | docs/artifacts/roadmaps/ |
| eda-explore | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. После определения темы читает только применимые business- и reference-карточки. В дефолтном режиме ведёт исследование как диалог; для пакетов и ПО проверяет актуальные стабильные версии | docs/artifacts/researches/ |
| 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 артефакты |
| eda-plan-review | Одним read-only проходом проверяет план по фиксированному чек-листу из 16 пунктов: покрытие запроса, отсутствие развилок, соответствие правилам и архитектуре, дубли, регистр текста, фазы и объём. Замечания вне списка не принимает. Оценка — доля закрытых пунктов, поэтому растёт монотонно. План не меняет | docs/artifacts/plan-reviews/ |
| eda-plan-review-fix | Закрывает проваленные пункты чек-листа минимальным изменением плана с совпадающим SHA-256. План не растёт: сначала удаление и замена, прирост объёма за один заход не больше 3%. Новое ревью не делает и код не меняет | docs/artifacts/plan-review-fixes/ |
| eda-plan-polish | Оркестрирует изолированный цикл plan-review → plan-review-fix. Хранит снапшот лучшей версии плана: как только score перестаёт расти, останавливается и восстанавливает лучшую версию, а не последнюю. По умолчанию одна итерация: проверка и исправление. Исправление проверяет ревью следующей итерации, поэтому при limit 1 последняя правка остаётся неперепроверенной. Кросс-CLI strict не используется | docs/artifacts/plan-reviews/, docs/artifacts/plan-review-fixes/ |
| eda-plan-execute | Управляет выполнением плана по фазам в режиме subagents, main или auto. В subagents каждую фазу целиком выполняет отдельный изолированный субагент: он читает план, правила, архитектуру и только business/reference-карточки затронутого поведения и компонентов. Фазы проходят строго последовательно и принимаются независимыми проверяющими. В main весь план по тем же правилам выполняет и проверяет основной агент в одном контексте, а auto выбирает режим по плану. Отметки подтверждённых задач и журнал ведёт основной агент | docs/artifacts/executions/ |
| eda-just-do-it | Сразу выполняет задачу из текста рядом с вызовом: определяет scope, загружает только необходимые проектные инструкции, business/reference-карточки, код и тесты, вносит нужные изменения и проверяет результат. Не подменяет выполнение планом и не делает git- или внешние действия без прямого указания | docs/artifacts/just-do-it/ |
| eda-fix | Делает обычные фиксы по короткому контексту, баг-репорту или плану. Перед правками читает правила, архитектуру и только применимые карточки, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | docs/artifacts/fixes/ |
| eda-review | Оркестрирует отдельные read-only проверки корректности, архитектуры, правил, references, business-правил, плана, качества, тестов, безопасности, производительности, frontend/UI/UX, API, БД, документации и предыдущих ревью. Сохраняет только доказанные дефекты, которые обязательно исправить; косметические и спекулятивные предложения отбрасывает. Любая находка даёт changes-required, а чистое ревью — clean и 100/100. Без аргументов ревьюит git diff HEAD | docs/artifacts/reviews/ |
| eda-fix-by-review | Применяет все находки из ревью с учётом правил, архитектуры и применимых карточек. Спрашивает только при неоднозначности, конфликте, расширении scope или рискованном действии. В конце ссылается на отчёт прямо в файле ревью | docs/artifacts/review-fixes/ |
| eda-manual-test | Делает ручную проверку после изменений. По умолчанию проверка полная: разбирает план или другой артефакт по разделам, дополняет его фактическим git diff HEAD и закрывает матрицу областей — API, база данных, консольные команды, интерфейс, алгоритмы, фон и интеграции, права и роли, конфигурация, логи, регрессии рядом. Область нельзя закрыть чтением кода или зелёными автотестами; незакрытая область даёт blocked. Быстрый smoke включается настройкой manual-test.depth или словом в запросе. Применимая business-карточка может добавить только относящийся к задаче инвариант или сценарий. Не правит код, не пишет автотесты и не коммитит | docs/artifacts/manual-tests/ |
| eda-polish | Оркестрирует доводку изменений: запускает полное eda-review, затем eda-fix-by-review и повторяет цикл до clean и отсутствия находок либо до лимита 5 итераций. Режим цикла задаёт polish.execution: в main оба контракта выполняет основной агент без субагентов, в subagents каждый шаг получает отдельный изолированный контекст. Все находки исправляются, score остаётся справочным. Не коммитит | docs/artifacts/reviews/, docs/artifacts/review-fixes/ |
| eda-send-review | На sonnet / gpt-5.6-terra отправляет ревью на GitHub PR через gh всегда в едином формате: общий комментарий-сводка плюс комментарии к строкам кода. Без явно указанного типа использует comment; approve и request-changes берёт только из контекста текущего вызова. По настройке может скрыть предыдущие сводки eda-send-review и зарезолвить их inline-треды. По умолчанию шлёт все пункты. Claude-модель закрепляется при установке; Codex-модель хранится как рекомендуемый будущий override | (комментарий в PR) |
| eda-commit | Работает как лёгкий оркестратор одного sonnet / gpt-5.6-terra агента: тот сам собирает git-контекст, пишет сообщения и тексты PR по исходному запросу и фактическим изменениям, точечно коммитит и выполняет явно заданные push/PR/merge-действия. Агент экономит время: собирает контекст одним вызовом, не читает кодовую базу и документацию целиком, вместо полного diff берёт сводку --stat и дочитывает только неясные файлы, а смысл работы берёт из свежих артефактов docs/artifacts/**, если они есть в составе изменений. Весь состав идёт одним коммитом; на несколько логически цельных коммитов он делится только по явной просьбе (split, «раздели», «отдельными коммитами») или при явно раздельном scope. Для PR использует шаблон репозитория, отражает все группы изменений и указывает только реально выполненные проверки. С явным контекстом охватывает указанный состав; без контекста коммитит всё — все tracked-изменения и все untracked-файлы независимо от авторства и связи с текущей задачей, кроме очевидных кэшей и локальных служебных артефактов вроде .DS_Store. В Claude Code сам оркестратор закреплён за sonnet; в Codex остаётся на активной модели сессии из-за отсутствия per-skill override. При вероятном секрете агент блокируется до индексации затронутой группы. После любого push всегда возвращает ссылку — на существующий PR или на его создание — и спрашивает, создавать ли PR, если его нет. Если продолжение не задано, предлагает применимые варианты | (git, опционально GitHub PR) |
| eda-worktree | На haiku / gpt-5.6-luna создаёт через пакетного агента git worktree рядом с основным проектом в папке {name}-work-{n} и одноимённую ветку. Базу берёт из аргумента или спрашивает | соседняя папка {name}-work-{n} |
| eda-merge-worktree | На haiku / gpt-5.6-luna мержит через пакетного агента ветку из соседнего worktree в текущую ветку. Принимает номер 1, короткое имя work-1 или полное имя {name}-work-1. Worktree и ветку после merge не удаляет | (git) |
| eda-prepare-ai | Выполняет технический bootstrap нового или существующего проекта: проектирует архитектуру, строгие правила и профиль инструментов, проходит полный каталог автоматических проверок, подбирает применимые AI-скилы, роли и MCP, затем создаёт AI-документацию. Один факт хранит у одного владельца: 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 |
| eda-discover-automations | Проводит baseline gap-аудит проекта даже без истории, а при наличии анализирует ревью, планы и фиксы. Не ограничивает число предложений: проверяет тесты/e2e, стиль, статанализ, границы модулей, конфиги/IaC, API/БД, security/supply chain, performance, release, эксплуатацию, browser MCP и MCP стека. Для каждой идеи даёт команду, контур запуска и приоритет; ничего не внедряет | docs/artifacts/automations/ |
Структура docs/
Постоянная документация проекта остаётся непосредственно в docs/: settings.yaml, rules.md, arch.md, business.md, каталог business/, references.md и каталог references/. Все временные и рабочие результаты скилов лежат в docs/artifacts/<тип>/.
Версия 3.0 не поддерживает старые пути во время работы скилов. eda update и eda update-all физически переносят известные старые каталоги, но сохраняют байты файлов как есть: ссылки вида docs/plans/..., уже записанные внутри исторических документов, не переписываются. eda init миграцию артефактов не запускает.
Business-контекст
eda-business хранит в docs/business.md только простое оглавление из двух колонок — описание темы и ссылка на готовую согласованную карточку. Степень подробности определяется темой: сложная аутентификация может подробно фиксировать вид токенов, их выпуск, обновление и отзыв, тогда как about остаётся коротким описанием проекта и основных возможностей. Карточки не привязываются к путям, классам и внутренним модулям текущего кода; значимый механизм вроде JWT указать можно, а язык, библиотеку, конкретную СУБД и схему реализации — нет. Последний раздел содержит только прямые расхождения поведения по собственной теме.
Потребляющий скил сначала определяет текущую задачу и фактически затронутое поведение, а затем выбирает по описаниям только применимые business-карточки. Отсутствие подходящей карточки не является ошибкой и не требует загружать остальные. Если задача противоречит карточке, агент показывает конфликт и спрашивает человека, изменить задачу или пересогласовать правило через eda-business.
eda-review-check выведен из эксплуатации: его специализированные проверки теперь входят прямо в eda-review. eda-execute переименован в eda-plan-execute, eda-automate — в eda-discover-automations, eda-docs — в eda-prepare-ai, а eda-start — в eda-new-project. Контекстный агент eda-commit-context также выведен из эксплуатации: сбор контекста теперь выполняет единый eda-commit-executor. При обновлении старые имена удаляются из целевых сред. Установщик удаляет только управляемые EDA-копии retired-компонентов и не трогает чужие компоненты.
Экстремальный профиль проверок
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.
Для каждой применимой проверки скил указывает инструмент, точную команду или сценарий, риск и место запуска: pre-commit, pre-push, PR CI, nightly, release, post-deploy или MCP/manual. Browser/Playwright MCP и MCP выбранного стека рассматриваются отдельно и не подменяют детерминированные CLI/CI-проверки. Фиксированного лимита предложений нет; неприменимые группы должны иметь явное обоснование.
eda-prepare-ai разбирает значимые настройки каждого выбранного инструмента и предлагает самый строгий стабильный применимый профиль, а не конфигурацию по умолчанию. Для динамических и слаботипизированных языков это включает строгий typecheck, nullability, типизированные публичные контракты и runtime-валидацию внешних данных; для линтеров, статанализа, тестов, security и CI — максимальные полезные наборы проверок, нулевой бюджет предупреждений и явное обоснование каждого ослабления.
🤖 Пакетные агенты
| Агент | Claude Code | Codex | Роль |
|---|---|---|---|
| eda-aim-planner | sonnet, workspace-write | gpt-5.6-terra, workspace-write | Задаёт вопросы, формулирует простой проверяемый список и создаёт файл только после подтверждения человека |
| eda-aim-executor | opus, workspace-write | gpt-5.6-sol, workspace-write | Выполняет назначенные пункты, при необходимости запрашивает установленные скилы для запуска в изолированных субагентах и дополняет общий журнал |
| eda-aim-verifier | opus, workspace-write | gpt-5.6-sol, workspace-write | Независимо проверяет каждый критерий, отмечает подтверждённые цели и возвращает пробелы на новый круг выполнения |
| eda-commit-executor | sonnet | gpt-5.6-terra | Одним вызовом собирает git-контекст, пишет сообщения коммитов и PR по запросу, артефактам и фактическим изменениям, коммитит состав одним коммитом или по группам при split и выполняет явно разрешённые push/PR/merge-действия |
| eda-worktree-executor | haiku | gpt-5.6-luna | Создаёт соседний worktree и одноимённую ветку, не изменяя файлы проекта |
| eda-merge-worktree-executor | haiku | gpt-5.6-luna | Мержит ветку из соседнего worktree в текущую без cleanup и ручного разрешения конфликтов |
| eda-review-correctness | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет функциональную корректность и крайние случаи |
| eda-review-architecture | opus, read-only | gpt-5.6-sol, read-only | Проверяет архитектурные границы и зависимости |
| eda-review-rules | haiku, read-only | gpt-5.6-luna, read-only | Проверяет инструкции и правила проекта |
| eda-review-references | haiku, read-only | gpt-5.6-luna, read-only | Проверяет применимые эталонные карточки |
| eda-review-business | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет изменённое поведение по применимым business-карточкам |
| eda-review-plan-alignment | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет соответствие реализации плану |
| eda-review-code-quality | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет читаемость, сложность и поддерживаемость |
| eda-review-tests | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет тестовое покрытие и корректность тестов |
| eda-review-security | opus, read-only | gpt-5.6-sol, read-only | Проверяет безопасность и границы доверия |
| eda-review-performance | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет производительность и масштабирование |
| eda-review-frontend | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет frontend-код, UI и UX по исходникам |
| eda-review-api | sonnet, read-only | gpt-5.6-terra, read-only | Проверяет API-контракты и совместимость |
| eda-review-database | opus, read-only | gpt-5.6-sol, read-only | Проверяет схемы, миграции, запросы и целостность данных |
| eda-review-documentation | haiku, read-only | gpt-5.6-luna, read-only | Проверяет обязательные обновления документации |
| eda-review-previous-reviews | haiku, read-only | gpt-5.6-luna, read-only | Перепроверяет незакрытые удалённые замечания |
Агенты устанавливаются отдельно от скилов. Модели 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-опроса.
Для 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.
🚩 Флаги скилов
У некоторых скилов есть флаг strict — он включает дополнительные тяжёлые проверки. Передаётся как часть запроса агенту, например: eda-explore strict <тема>. Также strict можно включить отдельно в docs/settings.yaml, например через explore.strict: true. У eda-review режим исполнения задаётся через subagents / main, а состав проверок — через собственные mode и model.
У eda-plan-execute есть режимы subagents / main / auto. Режим можно разово указать в вызове, например eda-plan-execute main docs/artifacts/plans/....md; без него используется plan-execute.mode из настроек, а без настроек — auto.
Выбранный режим исполнения обязателен для eda-plan-execute, eda-review, eda-polish и eda-orhestra. При main из вызова или настроек агент не может перейти к субагентам из-за большого плана, diff или нехватки контекста. Прогресс и режим сохраняются для продолжения после сжатия контекста; при технической невозможности продолжить агент сообщает блокер. Выбор по размеру плана разрешён только в eda-plan-execute auto до начала выполнения. Зафиксированный режим меняется только по новому прямому указанию пользователя; automatic оркестратора такого права не даёт. У оркестратора main по-прежнему управляет только верхней цепочкой, а main_propagated также передаёт main совместимым execute/review-этапам; остальные вложенные контракты сохраняются.
У eda-aim есть режимы automatic / manual. В автоматическом основной агент сам отвечает на безопасные рабочие вопросы по рекомендации субагента и фактам проекта, в ручном передаёт их человеку. Режим можно разово указать в вызове; без него используется aim.mode из настроек. Точный список новых целей перед записью в docs/artifacts/aims/ всё равно один раз подтверждает человек.
Скилы, которых нет в таблице ниже, не поддерживают эти флаги. Набор проверок eda-review отдельно управляется через review.agents.
| Скил | Флаг | Что включает | Когда стоит использовать |
|---|---|---|---|
| eda-orhestra | automatic / manual, subagents / main / main_propagated, без полировки плана, без полировки кода, полировка кода N итераций, без ручных тестов | Разово меняет вопросы, исполнение, состав цепочки и параметры шагов поверх docs/settings.yaml | main экономит верхний слой, main_propagated также включает main у совместимых execute/review-этапов |
| eda-aim | automatic / manual | Разово меняет способ ответа на рабочие вопросы поверх aim.mode; подтверждение точного списка новых целей остаётся обязательным | Автономная работа или совместное прохождение развилок с человеком |
| eda-explore | strict | После сохранения отчёта отдаёт его соседнему CLI (Claude → Codex или наоборот) на критическое ревью конкретности, фактов, развилок, рисков и версий; затем доправляет отчёт по замечаниям | Серьёзные исследования, которые лягут в основу больших решений; когда хочется второго мнения от другой модели/среды |
| eda-plan | strict, без ревью плана, без проверок | strict независимо включает кросс-CLI проверку; без ревью плана отключает встроенный review/fix; без проверок отключает оба вида ревью | Когда нужно разделить создание плана и его последующую полировку |
| eda-plan-review | threshold N | Разово меняет долю закрытых пунктов, при которой план считается готовым | Для самостоятельного аудита готового плана |
| eda-plan-execute | subagents / main / auto | Разово меняет, где выполняются фазы, поверх plan-execute.mode | main для обязательного выполнения основным агентом, subagents для изолированных фаз, auto для выбора по размеру плана |
| eda-plan-polish | threshold N, limit N | Меняет gate и максимальное число итераций «проверка + исправление» | Для доводки ответственных планов перед eda-plan-execute |
| eda-manual-test | full / полная проверка, smoke / быстро | Разово меняет глубину ручной проверки поверх manual-test.depth | smoke для короткой правки, full — когда нужно закрыть все области после плана |
| eda-polish | subagents / main, limit N | Разово меняет способ выполнения review и исправлений поверх polish.execution и число итераций | subagents держит каждый шаг в чистом контексте, main экономит контекст на мелкой доводке |
| eda-review | subagents / main | Разово меняет способ выполнения выбранных проверок поверх review.execution | main экономит контекст на частых локальных ревью; subagents сохраняет независимость ролей для ответственных изменений |
⚙️ Настройки проекта
Скилы читают docs/settings.yaml, если файл есть. Прямое указание в текущем запросе важнее настроек: например, strict включает строгий режим для одного запуска, а normal / без strict выключает его. Для eda-plan явный short включает короткий план, а normal / обычный план — обычный.
Файл по умолчанию:
version: 3
orhestra:
# Режим полного цикла eda-orhestra.
# automatic | manual
mode: automatic
# Где выполняются этапы и передаётся ли main совместимым вложенным скилам.
# subagents | main | main_propagated
execution: subagents
# Упорядоченная цепочка. Шаги можно отключать, удалять и переставлять.
steps:
- id: plan
skill: eda-plan
enabled: true
# Строка аргументов передаётся скиллу как часть текущего вызова.
args: "без проверок"
- id: plan-polish
skill: eda-plan-polish
enabled: true
# Строка аргументов передаётся скиллу как часть текущего вызова.
args: ""
- id: execute
skill: eda-plan-execute
enabled: true
# Строка аргументов передаётся скиллу как часть текущего вызова.
args: ""
- id: polish
skill: eda-polish
enabled: true
# Строка аргументов передаётся скиллу как часть текущего вызова.
args: "limit 5"
- id: manual-test
skill: eda-manual-test
enabled: true
# Строка аргументов передаётся скиллу как часть текущего вызова.
args: ""
# Обработка failed-результата этого шага.
on_failure:
skill: eda-fix
args: ""
# После исправления повторно запускаются включённые шаги с этими id.
then:
- manual-test
max_cycles: 5
aim:
# Режим ответов на рабочие вопросы eda-aim.
# automatic | manual
mode: automatic
explore:
# Включает кросс-CLI ревью в eda-explore.
# true | false
strict: false
# Определяет, как eda-explore ведёт исследовательские развилки.
# autonomous | recommend_and_ask | ask_each_time
decision_mode: recommend_and_ask
plan:
# Включает кросс-CLI ревью в eda-plan.
# true | false
strict: false
# Запускает изолированный цикл eda-plan-polish.
# true | false
review: true
# Задаёт размер плана.
# normal | short | ask_each_time
size: normal
# Определяет, как eda-plan принимает существенные решения.
# autonomous | recommend_and_ask | ask_each_time
decision_mode: recommend_and_ask
# Задаёт стратегию тестов и автоматических проверок.
# after_each_phase | phase_tests_final_checks | tdd_each_phase | end_of_plan | ask_each_time
test_strategy: ask_each_time
# Задаёт стратегию логирования.
# debug_precise | standard | ask_each_time
logging_strategy: ask_each_time
plan-review:
# Доля закрытых пунктов чек-листа, при которой план считается готовым.
threshold: 100
plan-polish:
# Максимальное число итераций «проверка + исправление».
limit: 1
plan-execute:
# Где eda-plan-execute выполняет фазы плана.
# subagents — каждая фаза в отдельном субагенте, main — весь план одним контекстом, auto — решает по плану.
mode: auto
polish:
# Где eda-polish выполняет review и исправления цикла полировки.
# subagents — каждое review и каждое исправление в отдельном изолированном субагенте, main — оба контракта основным агентом.
execution: subagents
manual-test:
# Глубина ручной проверки в eda-manual-test.
# full — закрыть все применимые области: API, база, консольные команды, интерфейс, алгоритмы, фон, права, конфигурацию, логи и регрессии рядом.
# smoke — только запуск и основной сценарий изменённой области.
# full | smoke | ask_each_time
depth: full
review:
# subagents — отдельный специализированный агент на проверку, main — все проверки основным агентом без субагентов.
execution: subagents
# Каждая проверка имеет собственный режим запуска; модели применяются только в subagents.
agents:
# Проверяет ошибки в логике, крайние случаи и обработку ошибок.
# Эта базовая проверка по умолчанию запускается всегда.
correctness:
# always — всегда, auto — когда применимо, off — отключено.
mode: always
model:
# Модель для Claude Code.
claude: sonnet
# Модель для Codex.
codex: gpt-5.6-terra
# Проверяет архитектурные границы, зависимости и разделение ответственности.
# В auto запускается при изменении модулей, зависимостей, публичных контрактов или границ системы.
architecture:
mode: auto
model:
claude: opus
codex: gpt-5.6-sol
# Проверяет соблюдение AGENTS.md, CLAUDE.md и docs/rules.md.
# Эта базовая проверка по умолчанию запускается всегда.
rules:
mode: always
model:
claude: haiku
codex: gpt-5.6-luna
# Проверяет соответствие применимым карточкам из docs/references/.
# В auto запускается только когда для изменений выбраны применимые карточки.
references:
mode: auto
model:
claude: haiku
codex: gpt-5.6-luna
# Проверяет изменённое поведение по применимым карточкам из docs/business/.
# В auto запускается только когда изменения затрагивают поведение с применимой business-карточкой.
business:
mode: auto
model:
claude: sonnet
codex: gpt-5.6-terra
# Проверяет, что реализация соответствует указанному или однозначно найденному плану.
# В auto запускается только когда у ревью есть конкретный план.
plan_alignment:
mode: auto
model:
claude: sonnet
codex: gpt-5.6-terra
# Проверяет читаемость, сложность, дублирование и поддерживаемость кода.
# Эта базовая проверка по умолчанию запускается всегда.
code_quality:
mode: always
model:
claude: sonnet
codex: gpt-5.6-terra
# Проверяет достаточность, корректность и устойчивость тестов.
# Эта базовая проверка по умолчанию запускается всегда.
tests:
mode: always
model:
claude: sonnet
codex: gpt-5.6-terra
# Проверяет уязвимости, права доступа, валидацию и работу с чувствительными данными.
# В auto запускается для auth, permissions, внешнего ввода, файлов, сети, секретов и криптографии.
security:
mode: auto
model:
claude: opus
codex: gpt-5.6-sol
# Проверяет запросы, циклы, память, конкурентность и другие риски производительности.
# В auto запускается при изменении запросов, кешей, конкурентности или горячих путей.
performance:
mode: auto
model:
claude: sonnet
codex: gpt-5.6-terra
# Проверяет фронтенд-код, UI, UX, адаптивность и состояния интерфейса.
# В auto обязательно запускается при изменении компонентов, стилей, клиентских маршрутов или состояния UI.
frontend:
mode: auto
model:
claude: sonnet
codex: gpt-5.6-terra
# Проверяет API-контракты, совместимость, валидацию и обработку ошибок.
# В auto запускается при изменении маршрутов, handlers, DTO, схем API, GraphQL или RPC.
api:
mode: auto
model:
claude: sonnet
codex: gpt-5.6-terra
# Проверяет схемы, миграции, запросы, индексы и целостность данных.
# В auto запускается при изменении миграций, моделей хранения, SQL, схем или транзакций.
database:
mode: auto
model:
claude: opus
codex: gpt-5.6-sol
# Проверяет, обновлена ли документация для изменившегося пользовательского поведения.
# В auto запускается при изменении публичного API, CLI, настроек или документируемого поведения.
documentation:
mode: auto
model:
claude: haiku
codex: gpt-5.6-luna
# Перепроверяет незакрытые замечания предыдущих ревью для удалённого PR или MR.
# В auto запускается только для ссылки на PR/MR или другой цели с доступными удалёнными обсуждениями.
previous_reviews:
mode: auto
model:
claude: haiku
codex: gpt-5.6-luna
send-review:
# После успешной отправки скрывает предыдущие сводки eda-send-review и резолвит их inline-треды.
# true | false
close_previous_reviews: false
discover-automations:
# Добавляет docs/artifacts/plans/ в обычный запуск eda-discover-automations.
# true | false
include_plans: falseЧто означают настройки:
orhestra.mode—automaticбезопасно закрывает рабочие вопросы без промежуточных подтверждений;manualпишет план вместе с человеком и передаёт ему вопросы.orhestra.execution—subagentsзапускает каждый этап отдельно,mainвыполняет верхнюю цепочку текущим агентом,main_propagatedдополнительно передаётmainшагамeda-plan-execute,eda-polishи прямомуeda-review; defaultsubagents. Другие вложенные скилы сохраняют собственный контракт.orhestra.steps— выполняемый сверху вниз workflow.enabled: falseотключает шаг, аargsпередаёт ему дополнительные параметры. Например, дляeda-polish:args: "limit 2". Шаги можно переставлять или добавлять, но git/publish-скиллы оркестратор не запускает.- Старое значение
steps[].skill: eda-executeво время запуска автоматически понимается какeda-plan-execute; существующийdocs/settings.yamlустановщик не переписывает. steps[].on_failure— настраивает исправление failed manual-test прямо рядом с этим шагом:skillиargsзадают фикс,then— повторяемые id шагов,max_cycles— лимит. Если обработчика нет, оркестратор сохраняет failed-отчёт и останавливается.aim.mode—automaticсамостоятельно выбирает безопасные ответы на рабочие вопросы;manualпередаёт вопросы человеку. Явный режим в текущем вызове имеет приоритет.explore.strictиexplore.decision_mode— кросс-CLI ревью и способ выбора по исследовательским развилкам вeda-explore.plan.review— изолированный циклeda-plan-polishвнутриeda-plan, ровно одна итерация полировки (limit 1);plan.strictнезависимо управляет кросс-CLI ревью.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переносит тесты и автоматические проверки в конец плана.plan-review.threshold— доля закрытых пунктов чек-листа для статусаready, default100. Отдельных агентов уplan-reviewбольше нет: проверку целиком делает один субагент.plan-polish.limit— максимальное число итераций «проверка + исправление»; default1. Отдельного подтверждающего прохода нет: исправление проверяет ревью следующей итерации. Цикл останавливается раньше, если score перестал расти.plan-execute.mode— гдеeda-plan-executeвыполняет фазы:subagents— каждая фаза в отдельном изолированном субагенте с независимой проверкой,main— весь план одним контекстом без субагентов,auto— выбор по плану; defaultauto. Явный режим в вызове имеет приоритет.polish.execution— гдеeda-polishвыполняет review и исправления своего цикла:subagents— каждый шаг в отдельном изолированном субагенте,main— оба контракта основным агентом; defaultsubagents. Настройка независима отreview.execution, которая задаёт только раскладку проверок внутриeda-review. Явный режим в вызове иmainотeda-orhestraвmain_propagatedимеют приоритет.manual-test.depth— глубина ручной проверки вeda-manual-test:full— закрыть все применимые области матрицы покрытия,smoke— только запуск и основной сценарий изменённой области,ask_each_time— спрашивать каждый раз; defaultfull. Явная глубина в вызове имеет приоритет.review.execution— где выполняются проверкиeda-review:subagentsзапускает отдельные специализированные роли,mainвыполняет те же выбранные проверки основным агентом без субагентов и с однократной загрузкой общего контекста; defaultsubagents. Явный режим в вызове имеет приоритет.review.agents.<check>.mode— запускать проверку всегда, автоматически по контексту или отключить.review.agents.<check>.model.claudeи.codex— модель конкретной проверки в соответствующей среде дляsubagents; вmainиспользуется текущая модель агента.eda-reviewне делит находки по обязательности: каждый принятый пункт требует исправления, а предложения без доказанного практического дефекта отбрасываются. Score остаётся экспертной оценкой серьёзности; любая находка блокируетcleanнезависимо от score.send-review.close_previous_reviews— после успешной новой отправки скрывает предыдущие сводки, созданныеeda-send-reviewтекущим GitHub-пользователем, и резолвит связанные inline-треды; прямое указание в текущем запросе переопределяет настройку.discover-automations.include_plans— добавляетdocs/artifacts/plans/в обычный запускeda-discover-automations.
Каждый скилл читает только свой раздел. Для eda-review прямое указание в текущем запросе может разово включить или отключить проверку и заменить её модель, например: «без performance, включи business, architecture на opus».
Поддерживается только version: 3. Полный валидный v3 установщик сохраняет как есть, пока его текст совпадает с шаблоном пакета; когда шаблон меняется — например, у настройки появляется новое допустимое значение, — файл перерисовывается без вопросов: ваши значения переносятся, посторонние ключи и ручные комментарии не сохраняются. Старые, неизвестные и неполные файлы разбираются через YAML: валидные известные значения переносятся, в TTY спрашиваются только отсутствующие, затем профиль целиком атомарно нормализуется. Без TTY недостающие поля получают defaults. plan.meta_review переносится в plan.review, а plan-polish.strict удаляется.
eda update-all configure записывает один общий v3-профиль. skip сохраняет актуальный полный v3 и перерисовывает устаревший по шаблону, индивидуально переносит остальные конфиги и создаёт defaults при отсутствии файла. Подробности перехода приведены в MIGRATION.md
🔄 Воркфлоу
eda-orhestra по умолчанию запускает основной цикл одной командой:
В default subagents каждая стрелка передаёт явный вход и пути к артефактам в новый изолированный субагент. В main и main_propagated верхние этапы идут последовательно в текущем контексте.
plan без проверок → plan-polish → plan-execute → polish → manual-test ──passed──> готово
^ │
└── fix <───┘ failededa-aim может обернуть любую цепочку ниже в автономный цикл:
согласование цели → выполнение с нужными скилами в изолированных субагентах → независимая проверка
^ │
└──── устранение пробелов ─┘new-project ───────> prepare-ai ─────────┬───────────────┐
│ │ │
v v v
roadmap ────────> explore ─────> plan ───> plan-polish ───> plan-execute ───┬──> manual-test ───> review ───> fix-by-review ───┬──> send-review
│ │ │
└────────────> plan v └──> commit
fix ─────────────> manual-testЕсли проект уже существует, можно начинать без eda-new-project:
prepare-ai ─────────┬───────────────┐
│ │
v v
roadmap ────────> explore ─────> plan ───> plan-polish ───> plan-execute ───┬──> manual-test ───> review ───> fix-by-review ───┬──> send-review
│ │ │
└──────────────> plan v └──> commit
fix ─────────────> manual-test
polish = полное review ─> fix-by-review всех находок ─> подтверждающий review до clean и нужной оценки
plan-polish = итерации «plan-review ─> plan-review-fix всех находок» до gate или limit
discover-automations может запускаться от review, fix-by-review или fix.eda-manual-test обычно ставится после eda-plan-execute, eda-fix или eda-fix-by-review, чтобы руками проверить API, базу, консольные команды, интерфейс и алгоритмы перед ревью или коммитом.
Использовать всю цепочку не обязательно — каждый скил самодостаточен. Для полного прохода одной задачи можно вызвать 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.
Вызов eda-commit без контекста охватывает все незакоммиченные tracked-изменения и все untracked-файлы, в том числе чужие и не относящиеся к текущей задаче; очевидные кэши, временные и локальные служебные артефакты вроде .DS_Store остаются вне коммитов. Executor коммитит полный состав одним коммитом; чтобы получить несколько логически цельных коммитов, добавь в запрос split, «раздели» или «отдельными коммитами». Например, запрос eda-commit сразу отправь ветку, создай PR и дай ссылку использует тот же полный состав и выполняет всю указанную цепочку без отдельного вопроса после серии коммитов.
🎯 Главные принципы
- Простой язык. Скилы общаются с тобой так, чтобы понял человек без глубоких знаний предмета. Термины — только когда без них нельзя.
- Все вопросы — интерактивно. В Claude Code — через
AskUserQuestion; в интерактивном Codex — черезrequest_user_inputили блокирующий вопрос в чат. Вcodex execи других неинтерактивных запусках скил не имитирует диалог: если без ответа нельзя безопасно продолжать, он завершает работу со статусомblocked: нужен ответ пользователя. - Способ review настраивается. В
subagentseda-reviewзапускает установленных read-only агентов нативным механизмом Claude/Codex и блокируется при их недоступности без CLI-fallback. Вmainосновной агент выполняет те же выбранные проверки по общей матрице без субагентов и повторной загрузки общего контекста. - Технические остановки обрабатываются по причине. Оркестраторы ждут свободный слот при лимите параллельности, запрашивают недостающее разрешение, один раз продолжают агента после временной API-ошибки и без бессмысленных retry останавливаются при лимите глубины, исчерпанной квоте или неизвестном сбое.
- Повторяемые роли — в пакетных агентах. Скилы управляют процессом, а стабильные изолированные роли получают собственный prompt, модель и доступ. Полные review-prompts не дублируются в оркестраторе.
- Артефакты по папкам. Исследования отдельно, планы отдельно, ревью отдельно. Между файлами — ссылки. Через месяц легко найти, кто что когда решал.
- Границы между скилами жёсткие.
plan-executeтолько управляет субагентами и не коммитит — это работаcommit.reviewне правит код — этоfix-by-review. Никаких размытых ответственностей. - Доверие модели. Скилы короткие. Они говорят «что» и «почему», а «как именно» — модель разбирается сама.
💻 Команды
eda init # выбрать Claude Code / Codex / обе среды и установить пакет
eda update # дополнить недостающие настройки и обновить скилы и агенты
eda update-all [dir] # сохранить конфиги или настроить общий и обновить проекты на глубине 2
eda --version # показать версию установленного пакета
eda --help # справкаКогда выходит новая версия пакета:
npm update -g @gian-tiaga/eda # подтянуть новый код
eda update # синхронизировать пакет в текущем проектеДля папки с несколькими проектами:
npm update -g @gian-tiaga/eda
eda update-all ~/Code📁 Структура и установка компонентов
Исходники скилов лежат в skills/<skill>/SKILL.md. Дополнительные ресурсы скила можно хранить рядом; skill.json содержит только платформенные настройки и в проект пользователя не копируется. Поля claude.context: fork и claude.agent renderer добавляет только во front matter Claude-копии скила. models.codex можно хранить как зарезервированную настройку для будущего per-skill override, но текущий Codex renderer её не добавляет в SKILL.md.
Исходники агентов лежат в agents/<agent>/agent.json и prompt.md. Установщик рендерит единый агентный контракт в нативный формат выбранной среды.
| Компонент | Claude Code | Codex CLI |
|---|---|---|
| Скил | .claude/skills/<skill>/SKILL.md | .agents/skills/<skill>/SKILL.md |
| Агент | .claude/agents/<agent>.md | .codex/agents/<agent>.toml |
| Manifest владения | .claude/eda-manifest.json | .codex/eda-manifest.json |
eda update переносит известные старые каталоги артефактов, сохраняет актуальный полный v3-конфиг как есть, устаревший по шаблону перерисовывает с сохранением значений, а старый или неполный умно переносит и целиком нормализует; затем идемпотентно синхронизирует обе группы компонентов и отдельно показывает реально изменившиеся скилы и агенты. Manifest хранит только идентификаторы компонентов, которыми владеет eda: retired-компоненты удаляются, а чужие скилы и агенты остаются нетронутыми. eda update-all [dir] выполняет тот же перенос артефактов в каждом проекте, затем либо записывает общий профиль, либо в skip сохраняет актуальный полный v3, перерисовывает устаревший по шаблону и переносит остальные настройки. При миграции Codex установщик переносит актуальные скилы в .agents/skills/ и удаляет принадлежащие eda старые копии .codex/skills/<skill>/ и .codex/skills/<skill>.md, не затрагивая чужие компоненты.
Установленные копии не являются источником правды. Локальные изменения внутри .claude/skills/eda-*, .agents/skills/eda-*, .claude/agents/eda-* или .codex/agents/eda-* будут заменены следующим обновлением.
AGENTS.md (как и любые другие файлы в корне проекта) установщик не трогает. Codex автоматически обнаруживает проектные скилы в .agents/skills/.
🤝 Для кого это
- Для тех, кто постоянно пишет код с AI-агентом и устал каждый раз заново объяснять, как делать ревью.
- Для команд, где хочется единый стандарт работы с агентами — чтобы ревью у всех было пронумеровано и оценено, планы лежали в одной папке, а коммиты были по одному стилю.
- Для разработчиков, которые любят строгость: максимально жёсткие правила, обязательные тесты и отдельные контекстные проверки ревью на подходящих моделях.
📜 Лицензия
MIT.
Используй, форкай, переписывай под себя. Будет здорово, если поделишься улучшениями обратно.
