@gian-tiaga/eda 0.8.6 → 1.0.1

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 (85) hide show
  1. package/MIGRATION.md +119 -0
  2. package/README.md +324 -71
  3. package/agents/eda-aim-executor/agent.json +15 -0
  4. package/agents/eda-aim-executor/prompt.md +61 -0
  5. package/agents/eda-aim-planner/agent.json +15 -0
  6. package/agents/eda-aim-planner/prompt.md +43 -0
  7. package/agents/eda-aim-verifier/agent.json +15 -0
  8. package/agents/eda-aim-verifier/prompt.md +57 -0
  9. package/agents/eda-commit-context/agent.json +15 -0
  10. package/agents/eda-commit-context/prompt.md +58 -0
  11. package/agents/eda-commit-executor/agent.json +15 -0
  12. package/agents/eda-commit-executor/prompt.md +87 -0
  13. package/agents/eda-merge-worktree-executor/agent.json +15 -0
  14. package/agents/eda-merge-worktree-executor/prompt.md +57 -0
  15. package/agents/eda-review-api/agent.json +15 -0
  16. package/agents/eda-review-api/prompt.md +34 -0
  17. package/agents/eda-review-architecture/agent.json +15 -0
  18. package/agents/eda-review-architecture/prompt.md +34 -0
  19. package/agents/eda-review-code-quality/agent.json +15 -0
  20. package/agents/eda-review-code-quality/prompt.md +34 -0
  21. package/agents/eda-review-correctness/agent.json +15 -0
  22. package/agents/eda-review-correctness/prompt.md +34 -0
  23. package/agents/eda-review-database/agent.json +15 -0
  24. package/agents/eda-review-database/prompt.md +34 -0
  25. package/agents/eda-review-documentation/agent.json +15 -0
  26. package/agents/eda-review-documentation/prompt.md +34 -0
  27. package/agents/eda-review-frontend/agent.json +15 -0
  28. package/agents/eda-review-frontend/prompt.md +34 -0
  29. package/agents/eda-review-performance/agent.json +15 -0
  30. package/agents/eda-review-performance/prompt.md +34 -0
  31. package/agents/eda-review-plan-alignment/agent.json +15 -0
  32. package/agents/eda-review-plan-alignment/prompt.md +34 -0
  33. package/agents/eda-review-previous-reviews/agent.json +15 -0
  34. package/agents/eda-review-previous-reviews/prompt.md +44 -0
  35. package/agents/eda-review-references/agent.json +15 -0
  36. package/agents/eda-review-references/prompt.md +34 -0
  37. package/agents/eda-review-rules/agent.json +15 -0
  38. package/agents/eda-review-rules/prompt.md +34 -0
  39. package/agents/eda-review-security/agent.json +15 -0
  40. package/agents/eda-review-security/prompt.md +34 -0
  41. package/agents/eda-review-tests/agent.json +15 -0
  42. package/agents/eda-review-tests/prompt.md +34 -0
  43. package/agents/eda-worktree-executor/agent.json +15 -0
  44. package/agents/eda-worktree-executor/prompt.md +49 -0
  45. package/bin/cli.js +4 -4
  46. package/lib/catalog.js +118 -0
  47. package/lib/install.js +921 -119
  48. package/lib/renderers/claude-agent.js +24 -0
  49. package/lib/renderers/claude-skill.js +11 -0
  50. package/lib/renderers/codex-agent.js +24 -0
  51. package/lib/renderers/codex-skill.js +3 -0
  52. package/package.json +5 -3
  53. package/skills/eda-aim/SKILL.md +212 -0
  54. package/skills/eda-commit/SKILL.md +124 -0
  55. package/skills/eda-commit/skill.json +6 -0
  56. package/skills/eda-discover-automations/SKILL.md +184 -0
  57. package/skills/{eda-explore.md → eda-explore/SKILL.md} +11 -8
  58. package/skills/{eda-fix.md → eda-fix/SKILL.md} +7 -6
  59. package/skills/{eda-fix-by-review.md → eda-fix-by-review/SKILL.md} +5 -4
  60. package/skills/{eda-manual-test.md → eda-manual-test/SKILL.md} +1 -1
  61. package/skills/eda-merge-worktree/SKILL.md +72 -0
  62. package/skills/eda-merge-worktree/skill.json +7 -0
  63. package/skills/eda-new-project/SKILL.md +163 -0
  64. package/skills/eda-orhestra/SKILL.md +146 -0
  65. package/skills/{eda-plan.md → eda-plan/SKILL.md} +39 -29
  66. package/skills/eda-plan-execute/SKILL.md +186 -0
  67. package/skills/{eda-plan-polish.md → eda-plan-polish/SKILL.md} +14 -13
  68. package/skills/eda-polish/SKILL.md +80 -0
  69. package/skills/eda-prepare-ai/SKILL.md +227 -0
  70. package/skills/eda-review/SKILL.md +212 -0
  71. package/skills/{eda-send-review.md → eda-send-review/SKILL.md} +66 -19
  72. package/skills/eda-send-review/skill.json +7 -0
  73. package/skills/eda-worktree/SKILL.md +73 -0
  74. package/skills/eda-worktree/skill.json +7 -0
  75. package/skills/eda-automate.md +0 -185
  76. package/skills/eda-commit.md +0 -91
  77. package/skills/eda-docs.md +0 -123
  78. package/skills/eda-execute.md +0 -140
  79. package/skills/eda-merge-worktree.md +0 -116
  80. package/skills/eda-polish.md +0 -113
  81. package/skills/eda-review-check.md +0 -149
  82. package/skills/eda-review.md +0 -173
  83. package/skills/eda-start.md +0 -233
  84. package/skills/eda-worktree.md +0 -113
  85. /package/skills/{eda-roadmap.md → eda-roadmap/SKILL.md} +0 -0
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: eda-discover-automations
3
+ description: 'Проводит экстремально широкий аудит автоматических проверок проекта и анализирует историю `docs/reviews/`, `docs/review-fixes/`, `docs/fixes/`, опционально `docs/plans/`. Перечисляет пробелы в тестах, e2e, стиле, статанализе, архитектурных границах, конфигах, безопасности, данных, производительности, релизах, browser MCP и MCP выбранного стека. Сначала предлагает детерминированные CLI/CI-проверки, затем MCP или агентные усиления. Не внедряет изменения — сохраняет приоритетный отчёт с командами и контурами запуска в `docs/automations/`.'
4
+ ---
5
+
6
+ # Скил: Поиск автоматизаций (eda-discover-automations)
7
+
8
+ Читаешь историю ревью и фиксов, находишь ошибки, ручные правки и недостающие проверки, которые полезно предотвращать автоматически.
9
+
10
+ ## Режим запуска
11
+
12
+ Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
13
+
14
+ Поддерживается только `version: 2`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолт: `discover-automations.include_plans: false`.
15
+
16
+ Если актуального раздела `discover-automations` нет, но есть прежний раздел `automate`, используй `automate.include_plans` как совместимый fallback и сообщи, что настройку следует переименовать. Если присутствуют оба раздела, применяй только `discover-automations`.
17
+
18
+ | Настройка | Значения | Аргументы в сообщении |
19
+ |---|---|---|
20
+ | `discover-automations.include_plans` | `true`, `false` | `plans`, «с планами»; выключение: `normal`, «без планов» |
21
+
22
+ Обычный режим анализирует текущий проект и, если они есть, `docs/reviews/`, `docs/review-fixes/`, `docs/fixes/`. Режим `discover-automations.include_plans: true` добавляет `docs/plans/`. Отсутствие истории не отменяет полный аудит текущих проверок.
23
+
24
+ ## Вход из сообщения пользователя
25
+
26
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, задачу, путь к файлу, режим, ограничения и прямые указания.
27
+
28
+ Если этого входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не ту задачу. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
29
+
30
+ ## Общие ограничения
31
+
32
+ 1. **Не внедряешь изменения.** Только отчёт с предложениями. Внедрение автоматизаций, MCP-серверов, новых скилов или правок `docs/rules.md`/`docs/arch.md` — через `eda-plan` + `eda-plan-execute`.
33
+ 2. **Повторяемость — сигнал, а не обязательное условие.** Единичную ошибку тоже предлагай закрыть, если у неё высокий ущерб, она может повториться, а проверка будет надёжной и оправданной по стоимости. Не автоматизируй малозначимые замечания только ради полноты отчёта.
34
+ 3. **Полнота каталога обязательна.** Не вводи лимит количества предложений и не останавливайся на привычном наборе `lint + unit`. Проверь каждую группу, поставь статус `покрыто` / `предложено` / `не применимо`; для `не применимо` запиши конкретную причину.
35
+ 4. **Детерминированная проверка приоритетнее AI/MCP.** MCP и агентные проверки дополняют CLI/CI только там, где нужен браузер, внешняя система или контекст, недоступный локальному инструменту.
36
+
37
+ ## Интерактивные вопросы
38
+
39
+ Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
40
+ - Claude Code: используй `AskUserQuestion`.
41
+ - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
42
+ - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
43
+ - Не запускай команды, которые ждут интерактивного ввода в терминале; перед такими командами спроси в хост-интерфейсе или остановись с `blocked`.
44
+
45
+ ## Этапы
46
+
47
+ ### 1. Выбрать диапазон
48
+ Определи режим и диапазон по текущему сообщению и `docs/settings.yaml`. Без вопроса используй вход, если он задаёт `plans` / `normal`, последние N, период или конкретные файлы/папки. Если диапазон не указан, но источники есть, используй все ревью + фиксы по ревью + обычные фиксы по умолчанию.
49
+
50
+ Если вход неоднозначен — `AskUserQuestion`: все ревью и фиксы / все ревью, фиксы и планы / последние N / период / конкретные файлы.
51
+
52
+ Получи список файлов из `docs/reviews/`, `docs/review-fixes/` и `docs/fixes/`. В режиме `plans` дополнительно получи список файлов из `docs/plans/`. Отсутствующие или пустые папки отметь в отчёте, но не блокируйся: проведи baseline gap-аудит по коду, manifest-файлам, конфигам, scripts и CI текущего проекта.
53
+
54
+ ### 2. Прочитать контекст
55
+ - Все выбранные ревью, отчёты о фиксах по ревью и обычные фиксы.
56
+ - В режиме `plans`: все выбранные планы из `docs/plans/`.
57
+ - `docs/rules.md`, `docs/arch.md` (если есть) — прочитай и строго следуй им.
58
+ - Какие языки и фреймворки в проекте — определи сам.
59
+ - Какие инструменты качества уже установлены и работают: линтеры, форматтеры, статанализаторы, typecheck, все виды тестов, coverage, архитектурные проверки, валидаторы конфигов, security/supply-chain сканеры, performance budgets, pre-commit, CI, release/post-deploy проверки и npm/composer/make-скрипты.
60
+ - Какие агентные усиления уже есть: `.claude/skills/`, `.codex/skills/`, MCP-конфиги, локальные скилы, команды для ревью/планирования. Не предлагай дубль уже установленному.
61
+
62
+ ### 3. Найти кандидатов на автоматизацию
63
+ Сгруппируй замечания по сути, затем независимо от истории пройди экстремальный каталог:
64
+
65
+ 1. **Тесты поведения:** unit, integration, component, contract/consumer-driven contract, API, e2e, smoke, acceptance, regression, negative и edge-case.
66
+ 2. **Глубокое тестирование:** property-based, mutation, fuzz, differential, metamorphic, snapshot/golden, repeatability и flaky-test detection.
67
+ 3. **UI и браузер:** browser e2e, visual regression, accessibility, keyboard/focus, responsive, cross-browser/device, hydration, broken links, формы/uploads, locale/timezone и browser-console errors.
68
+ 4. **Стиль и качество:** formatter, linter, naming, complexity, duplication, dead code, unused exports/dependencies, forbidden patterns, TODO/FIXME policy и лимиты размера.
69
+ 5. **Статический анализ:** typecheck, nullability, data-flow/taint, API misuse, unreachable code, unsafe/undefined behavior, memory/thread/address sanitizers и анализаторы выбранного языка.
70
+ 6. **Границы кода:** forbidden imports, dependency direction, cycles, layers, public API, ownership, package/module boundaries, generated-code boundaries и architecture fitness functions.
71
+ 7. **Конфиги и инфраструктура:** schema/parse для env, YAML/JSON/TOML, CI, Docker/Compose, Kubernetes/Helm, Terraform/IaC, proxy, feature flags, IAM, observability и env-example drift.
72
+ 8. **API и совместимость:** OpenAPI/GraphQL/Proto, breaking changes, generated-code drift, serialization, backward/forward compatibility, idempotency, pagination/filter/sort.
73
+ 9. **БД и данные:** migration lint/forward/rollback/dry-run, schema drift, constraints, fixtures, transactions, concurrency, query plans/N+1, backup/restore, retention/anonymization и data invariants.
74
+ 10. **Безопасность и supply chain:** secrets, SAST, DAST, dependency/container/IaC scan, licenses, SBOM, lockfile integrity, provenance/signatures, authn/authz negative tests, injection, XSS/CSRF/SSRF, CORS/CSP/headers, rate limits и PII leakage.
75
+ 11. **Производительность и надёжность:** benchmarks/budgets, bundle size, load/stress/spike/soak, leaks, startup, timeouts/retries/circuit breakers, graceful shutdown, fault injection/chaos и recovery.
76
+ 12. **Сборка и релиз:** clean-clone/reproducible build, generated artifacts, package contents, runtime/OS/architecture matrix, install/upgrade/downgrade, semver/changelog, release dry-run, canary/rollback и post-deploy smoke.
77
+ 13. **Документация:** Markdown/style/spell, links, executable snippets, CLI help/API docs drift, diagrams/schemas и migration/release notes.
78
+ 14. **Эксплуатация:** health/readiness/liveness, metrics/log/trace schemas, no secrets/PII in logs, alert rules, dashboards as code, SLO/error budgets, disaster recovery и restore drills.
79
+ 15. **Доменные проверки:** платежи, почта, очереди, jobs, webhooks, поиск, файлы/media, mobile signing, offline/sync, localization, analytics events и другие инварианты продукта.
80
+ 16. **AI-функции:** prompt/output schemas, evals, prompt injection/jailbreak, data leakage, tool permissions, nondeterminism, latency и token/cost budgets.
81
+ 17. **MCP:** browser/Playwright MCP для сценариев и визуальных доказательств; MCP для БД, API, документации, GitHub/GitLab, cloud, observability и выбранного языка/фреймворка. Укажи точный сценарий, минимальные права и почему CLI/CI недостаточно.
82
+ 18. **Агентный процесс и планы:** чтение обязательных источников, формат артефактов, проверка критериев готовности, файлов/модулей и зависимостей задач, rollback/backup для рискованных действий, запрет пропуска команд и повторяющиеся ошибки агентов.
83
+
84
+ Для каждого паттерна собери: доказательство из истории либо baseline-пробел в текущем проекте, затронутые файлы, возможный ущерб, вероятность, надёжность проверки и стоимость внедрения. Повторяющиеся паттерны обычно приоритетнее, но не отбрасывай сильного кандидата из-за одного случая или потому, что ошибка ещё не произошла.
85
+
86
+ ### 4. Предложить автоматизации и правки docs
87
+ Для каждого паттерна выбери одну или несколько недублирующих реакций: `automation`, `tests`, `tooling`, `agent`, `rules`, `architecture`.
88
+
89
+ **Сначала программная проверка.** Для каждого паттерна сначала оцени автоматизации на уровне языка и тулчейна: можно ли поймать его линтером, статанализатором, typecheck, тестом, pre-commit/CI-скриптом или валидатором. Агентные решения предлагай только если программная проверка невозможна, слишком дорогая или требует лучшего контекста для AI-агента.
90
+
91
+ Приоритет реакций:
92
+ 1. `automation` — правило линтера, статанализатора, typecheck, custom validator, pre-commit/CI/check-скрипт.
93
+ 2. `tests` — конкретный unit/integration/contract/e2e/regression-тест или тестовый helper, который ловит этот класс багов.
94
+ 3. `tooling` — новый или донастроенный инструмент качества, если в проекте нет подходящего и инструмент стандартный для стека.
95
+ 4. `agent` — MCP-сервер, новая/обновлённая eda-инструкция, специализированная агентная проверка или обязательный источник контекста. Предлагай только когда это закрывает значимую ошибку AI-процесса или даёт агенту данные, которые нельзя надёжно получить из кода.
96
+ 5. `rules` / `architecture` — текстовые правила и архитектурные уточнения, если проблема связана с договорённостью, границей модулей или ownership.
97
+
98
+ Предпочитай уже установленный инструмент, если он ловит этот класс проблем. Новый инструмент предлагай только если он не дублирует инструмент того же класса. Для проблем из планов предлагай проверку `docs/plans/*.md`, а не runtime-линтер кода. Если правило или архитектура уже зафиксированы, не дублируй текст; предложи только уточнение, которое закрывает найденный случай.
99
+
100
+ Подменять линтер, статанализатор или тест MCP-сервером/скилом нельзя, если ошибку можно надёжно поймать программной проверкой.
101
+
102
+ Для каждой программной проверки укажи точный инструмент, команду/сценарий и контур: `pre-commit`, `pre-push`, `PR CI`, `nightly`, `release`, `post-deploy`. Быстрые проверки отдели от тяжёлых. Для MCP укажи сервер/класс инструмента, проверяемый сценарий, минимальные права, тестовые данные и контур `MCP/manual`; MCP не называй автоматической CI-проверкой, если он реально не запускается без участия агента.
103
+
104
+ ### 5. Сохранить отчёт
105
+ `docs/automations/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Slug — короткое описание набора (например, `php-strict-rules`).
106
+
107
+ ```markdown
108
+ ---
109
+ date: <YYYY-MM-DD HH:MM>
110
+ sources: [docs/reviews/..., docs/review-fixes/..., docs/fixes/...]
111
+ mode: <normal | plans>
112
+ status: draft
113
+ ---
114
+
115
+ # Предложения по автоматизации
116
+
117
+ ## Контекст
118
+ - Проанализировано: N ревью + M фиксов по ревью + F обычных фиксов + K планов
119
+ - Стек проекта: <по конфигам>
120
+ - Уже работающие инструменты: <список>
121
+ - Уже найденные скилы/MCP/агентные проверки: <список или «не найдены»>
122
+
123
+ ## Покрытие экстремального каталога
124
+ | Группа | Уже есть | Пробелы | Статус | Причина N/A |
125
+ |---|---|---|---|---|
126
+ | Тесты поведения | ... | ... | covered / proposed / not_applicable | ... |
127
+
128
+ ## Проверки кода и тесты
129
+
130
+ ### 1. <название паттерна>
131
+ - **Тип:** automation / tests / tooling
132
+ - **Что ловит:** ...
133
+ - **Встречалось в:** `docs/reviews/...` (×1), `docs/reviews/...` (×2)
134
+ - **Почему автоматизировать:** <повторяемость либо высокий ущерб и вероятность повторения>
135
+ - **Инструмент:** <название или текущий test runner> (если новый для проекта — пометка «требует установки»)
136
+ - **Команда / сценарий:** <точная команда, glob, правило или тестовый сценарий>
137
+ - **Где запускать:** pre-commit / pre-push / PR CI / nightly / release / post-deploy
138
+ - **Черновик:**
139
+ ```<язык>
140
+ <псевдокод/skeleton>
141
+ ```
142
+ - **Польза:** low/medium/high
143
+
144
+ ### 2. ...
145
+
146
+ ## Агентные усиления
147
+
148
+ ### 1. <название паттерна>
149
+ - **Тип:** agent
150
+ - **Что закрывает:** <какую ошибку процесса или нехватку контекста>
151
+ - **Встречалось в:** `docs/reviews/...` (×1), `docs/fixes/...` (×1)
152
+ - **Почему автоматизировать:** <повторяемость либо высокий ущерб и вероятность повторения>
153
+ - **Предложение:** MCP-сервер / новый eda-скил / правка существующего скила / специализированная агентная проверка
154
+ - **Сценарий и доступ:** <что проверяет, минимальные права, тестовые данные, почему CLI/CI недостаточно>
155
+ - **Черновик:**
156
+ ```markdown
157
+ <конфиг, описание скила или инструкция агентной проверки>
158
+ ```
159
+ - **Польза:** low/medium/high
160
+
161
+ ## Правила и архитектура
162
+
163
+ ### 1. <название паттерна>
164
+ - **Тип:** rules / architecture
165
+ - **Куда:** `docs/rules.md` / `docs/arch.md`, раздел <название или «новый раздел»>
166
+ - **Почему:** <какой паттерн закрывает>
167
+ - **Встречалось в:** `docs/fixes/...` (×1), `docs/reviews/...` (×1)
168
+ - **Черновик текста:**
169
+ ```markdown
170
+ <готовый фрагмент для docs/rules.md или docs/arch.md>
171
+ ```
172
+ - **Польза:** low/medium/high
173
+
174
+ ## Приоритезация
175
+ | # | Тип | Паттерн | Польза | Приоритет |
176
+ |---|-----|---------|--------|-----------|
177
+ | 1 | automation | ... | high | 1 |
178
+
179
+ ## Рекомендация
180
+ <какие 1–3 внедрить первыми и почему — простыми словами>
181
+ ```
182
+
183
+ ### 6. Финал
184
+ Короткое сообщение: путь к отчёту, сколько групп каталога покрыто/предложено/неприменимо, общее число предложений и их распределение по контурам, сколько MCP/агентных усилений и правок docs, топ-3 рекомендации простыми словами, подсказка дальше — «хочешь внедрить → `eda-plan` для плана, потом `eda-plan-execute`».
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: eda-explore
3
- description: 'Исследует тему или задачу до конкретного результата: проясняет проблему, архитектуру, развилки, риски и короткий выбранный вариант решения без плана реализации. Работает read-only и ведёт исследование как диалог: факты собирает сам, а значимые развилки выносит пользователю по `defaults.decision_mode` из `docs/settings.yaml`. Если исследование касается пакетов, библиотек, CLI, сервисов или другого ПО, проверяет актуальные стабильные версии через context7, если он доступен, или через web search по официальным источникам. Итог сохраняет в docs/researches/. Кросс-ревью соседним агентом (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true`.'
3
+ description: 'Исследует тему или задачу до конкретного результата: проясняет проблему, архитектуру, развилки, риски и короткий выбранный вариант решения без плана реализации. Работает read-only, читает `docs/rules.md`, `docs/arch.md` и релевантные карточки из `docs/references/`, а значимые развилки выносит пользователю по `explore.decision_mode` из `docs/settings.yaml`. Для пакетов и другого ПО проверяет актуальные стабильные версии по официальным источникам. Итог сохраняет в docs/researches/. Кросс-ревью соседним агентом включается флагом `strict` или настройкой `explore.strict: true`.'
4
4
  ---
5
5
 
6
6
  # Скил: Исследователь решений (eda-explore)
@@ -11,12 +11,12 @@ description: 'Исследует тему или задачу до конкре
11
11
 
12
12
  Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
13
13
 
14
- Дефолты: `defaults.strict: false`, `defaults.decision_mode: recommend_and_ask`.
14
+ Поддерживается только `version: 2`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолты: `explore.strict: false`, `explore.decision_mode: recommend_and_ask`.
15
15
 
16
16
  | Настройка | Значения | Аргументы в сообщении |
17
17
  |---|---|---|
18
- | `defaults.strict` | `true`, `false` | `strict`; выключение: `normal`, `без strict`, `без строгого режима` |
19
- | `defaults.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай», «спрашивай всё» |
18
+ | `explore.strict` | `true`, `false` | `strict`; выключение: `normal`, `без strict`, `без строгого режима` |
19
+ | `explore.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай», «спрашивай всё» |
20
20
 
21
21
  Если значение из настроек отсутствует или неизвестно, используй дефолт. `strict` добавляет кросс-ревью соседним агентом; обычный режим сохраняет отчёт без кросс-ревью.
22
22
 
@@ -43,7 +43,8 @@ description: 'Исследует тему или задачу до конкре
43
43
  3. **Развилки закрывай по `decision_mode`.** Значимые развилки подтверждай до финализации, мелкие локальные решения выбирай сам и не создавай шум.
44
44
  4. **Риски вплетай в исследование.** Не создавай отдельный обязательный раздел или этап рисков. Если риск влияет на выбор, источник, ограничение или будущую проверку, фиксируй его рядом с соответствующим решением: что может пойти не так и как это учитывается — снимаем, принимаем или выносим за рамки.
45
45
  5. **Версии проверяй.** Если речь о пакетах, библиотеках, CLI, сервисах или другом ПО, а версия не задана контекстом, проверь последнюю стабильную версию через context7, если он доступен, или через web search по официальным источникам.
46
- 6. **Прочитай `docs/rules.md` и `docs/arch.md`**, если есть, и используй их как рамку.
46
+ 6. **Прочитай рамку проекта.** Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Если существует `docs/references.md`, прочитай индекс, выбери только карточки, применимые к исследуемым компонентам, и прочитай их целиком; нерелевантные карточки не загружай.
47
+ 7. **Соблюдай приоритеты.** Подтверждённое решение пользователя важнее `docs/rules.md`, затем идёт `docs/arch.md`, затем релевантные карточки. Не рекомендуй отклонение от эталона без явной причины и подтверждения пользователя.
47
48
  7. **Каждое фактическое утверждение — со ссылкой** (`file.ext:42`, URL, коммит). Без ссылки — помечай как «гипотеза» и не делай её основанием выбранного решения.
48
49
  8. **Простой язык.** Термины — только когда без них нельзя, сразу с пояснением.
49
50
  9. **Таблицы > сплошной текст** для фактов, развилок, сравнений, версий и источников.
@@ -69,7 +70,7 @@ description: 'Исследует тему или задачу до конкре
69
70
 
70
71
  ### 2. Собрать контекст
71
72
 
72
- Работай read-only: читай код, документы, конфиги, тесты, историю и внешние источники. Прочитай `docs/rules.md` и `docs/arch.md`, если они есть.
73
+ Работай read-only: читай код, документы, конфиги, тесты, историю и внешние источники. Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Если есть `docs/references.md`, выбери по индексу только применимые карточки и используй их кодовые примеры как эталон ожидаемой формы решения.
73
74
 
74
75
  Если исследование касается пакетов или ПО:
75
76
  - сначала проверь, не зафиксирована ли версия в запросе, lock-файле, package/config-файле, `docs/rules.md`, `docs/arch.md` или связанном документе;
@@ -101,6 +102,7 @@ reviewer: <pending | none | claude | codex>
101
102
  sources:
102
103
  rules: <путь или —>
103
104
  arch: <путь или —>
105
+ references: [<пути к применимым карточкам или пусто>]
104
106
  ---
105
107
 
106
108
  # <Заголовок>
@@ -135,6 +137,7 @@ Quality gate перед сохранением:
135
137
  - нет высокого риска без понятного решения;
136
138
  - версии пакетов/ПО проверены или объяснено, почему это не требуется;
137
139
  - ключевые утверждения имеют источники.
140
+ - выбранное решение следует применимым карточкам либо содержит подтверждённую пользователем причину отклонения.
138
141
 
139
142
  ### 5. Кросс-ревью — только в `strict`
140
143
 
@@ -145,13 +148,13 @@ Quality gate перед сохранением:
145
148
  Если ты в Claude Code — запускай Codex CLI:
146
149
 
147
150
  ```bash
148
- codex exec "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, архитектура не выдумана, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
151
+ codex exec "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md, карточки из sources.references при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, архитектура не выдумана, применимые эталоны учтены, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
149
152
  ```
150
153
 
151
154
  Если ты в Codex — запускай Claude CLI с теми же требованиями:
152
155
 
153
156
  ```bash
154
- claude -p "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, архитектура не выдумана, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
157
+ claude -p "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md, карточки из sources.references при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, архитектура не выдумана, применимые эталоны учтены, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
155
158
  ```
156
159
 
157
160
  CLI нет — `AskUserQuestion`: продолжать без ревью или прервать.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: eda-fix
3
- description: 'Делает обычные фиксы по плану, файлу плана или короткому текстовому контексту. Перед правками читает `docs/rules.md` и `docs/arch.md`, если есть, и строго следует им. Правит код, добавляет нужные тесты, прогоняет проверки и сохраняет историю в `docs/fixes/`. Не делает ревью и не коммитит.'
3
+ description: 'Делает обычные фиксы по плану, файлу плана или короткому текстовому контексту. Перед правками читает `docs/rules.md`, `docs/arch.md` и только релевантные карточки из `docs/references/`, если они есть, и следует им с установленным приоритетом. Правит код, добавляет нужные тесты, прогоняет проверки и сохраняет историю в `docs/fixes/`. Не делает ревью и не коммитит.'
4
4
  ---
5
5
 
6
6
  # Скил: Фиксер (eda-fix)
@@ -15,7 +15,7 @@ description: 'Делает обычные фиксы по плану, файлу
15
15
 
16
16
  ## Главные правила
17
17
 
18
- 1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`, если есть, и строго следуй им. Файлов нет — продолжай.
18
+ 1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`. Если есть `docs/references.md`, выбери по индексу только карточки для затронутых компонентов и прочитай их целиком. Приоритет: подтверждённое решение пользователя → правила → архитектура → карточки. Файлов нет — продолжай.
19
19
  2. **Вход обязателен.** Если не передан план, файл или понятный текст задачи — спроси через интерактивный вопрос.
20
20
  3. **Делай только указанные фиксы.** Не расширяй задачу до рефакторинга и не чини соседние проблемы без необходимости.
21
21
  4. **Тесты рядом с правкой.** Меняешь поведение — добавь или обнови точечный тест.
@@ -37,10 +37,10 @@ description: 'Делает обычные фиксы по плану, файлу
37
37
  Определи `$FIX_CONTEXT`: путь к файлу прочитай, план из `docs/plans/` используй как план фикса, текст используй как контекст. Если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
38
38
 
39
39
  ### 2. Прочитать рамку проекта
40
- Прочитай `docs/rules.md` и `docs/arch.md`, если есть, и строго следуй им. Если `$FIX_CONTEXT` ссылается на research, review, issue или другой файл — прочитай и его.
40
+ Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Если существует `docs/references.md`, выбери по индексу только применимые карточки и используй их примеры как ожидаемую форму реализации. Если `$FIX_CONTEXT` ссылается на план с `sources.references`, прочитай перечисленные карточки; если ссылается на research, review, issue или другой файл — прочитай и его.
41
41
 
42
42
  ### 3. Сделать фикс
43
- Найди релевантный код и внеси минимальные правки. Если задача состоит из нескольких пунктов, иди по ним последовательно. Останавливайся и спрашивай, если пункт противоречит коду, требует продуктового решения, рискованной операции, миграции, удаления данных или затрагивает секреты.
43
+ Найди релевантный код и внеси минимальные правки. Следуй применимому примеру; отклоняйся только по причине, подтверждённой пользователем или уже записанной во входном плане. Если задача состоит из нескольких пунктов, иди по ним последовательно. Останавливайся и спрашивай, если пункт противоречит коду или документации, требует необоснованного отклонения от карточки, продуктового решения, рискованной операции, миграции, удаления данных или затрагивает секреты.
44
44
 
45
45
  ### 4. Добавить или обновить тесты
46
46
  Если фикс меняет поведение — добавь тест рядом с изменением или обнови существующий. Если тесты не нужны, в отчёте коротко объясни почему.
@@ -61,7 +61,7 @@ status: done
61
61
  # Фикс: <краткий заголовок>
62
62
 
63
63
  ## Контекст
64
- <что было передано на вход и какие правила/архитектура учтены>
64
+ <что было передано на вход и какие правила, архитектура и карточки учтены>
65
65
 
66
66
  ## Что изменено
67
67
  | # | Файл | Что изменено | Зачем |
@@ -83,6 +83,7 @@ status: done
83
83
  ## Чего НЕ делать
84
84
  - Коммитить, пушить, создавать PR.
85
85
  - Делать ревью вместо фикса.
86
- - Выполнять большой план с чекбоксами и журналом `docs/executions/` — это `eda-execute`.
86
+ - Выполнять большой план с чекбоксами и журналом `docs/executions/` — это `eda-plan-execute`.
87
87
  - Применять замечания из готового ревью — это `eda-fix-by-review`.
88
88
  - Сохранять отчёт куда-либо кроме `docs/fixes/`.
89
+ - Игнорировать применимую карточку или молча отклоняться от её примера.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: eda-fix-by-review
3
- description: 'Применяет замечания из ревью (`docs/reviews/...`) или из текста рядом с вызовом к коду. Перед правками читает `docs/rules.md` и `docs/arch.md` и строго следует им. Все пункты «править обязательно» правит сразу. Пункты «на усмотрение» в обычном режиме выносит пользователю, а в `apply-optional` решает сам: применяет полезные и отклоняет нецелесообразные с причиной. «Не править» пропускает. После всех правок — полный прогон тестов и линтеров. Отчёт сохраняется в `docs/review-fixes/`. Не делает само ревью и не коммитит.'
3
+ description: 'Применяет замечания из ревью (`docs/reviews/...`) или текста к коду. Перед правками читает `docs/rules.md`, `docs/arch.md` и релевантные карточки из `docs/references/`. Все обязательные пункты правит сразу; optional-пункты выносит пользователю или решает сам в `apply-optional`. После правок прогоняет тесты и линтеры, сохраняет отчёт в `docs/review-fixes/`. Не делает само ревью и не коммитит.'
4
4
  ---
5
5
 
6
6
  # Скил: Исправитель по ревью (eda-fix-by-review)
@@ -21,7 +21,7 @@ description: 'Применяет замечания из ревью (`docs/revie
21
21
 
22
22
  ## Главные правила
23
23
 
24
- 1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`, если есть, и строго следуй им. Это рамка проекта. Один раз в начале.
24
+ 1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`. Если есть `docs/references.md`, выбери по индексу только карточки для затронутых замечаниями компонентов и прочитай их целиком. Приоритет: подтверждённое решение пользователя → правила → архитектура → карточки. Сделай это один раз в начале.
25
25
  2. **Интерактивные вопросы** — по разделу ниже.
26
26
  3. **Не переформулируй замечания.** Применяй то, что написано в ревью. Если непонятно — спроси через `AskUserQuestion`.
27
27
  4. **Не делаешь само ревью и не коммитишь.** Только применяешь замечания и пишешь отчёт.
@@ -47,7 +47,7 @@ description: 'Применяет замечания из ревью (`docs/revie
47
47
  Если найдено ровно одно ревью — используй режим `$REVIEW_SOURCE=review_file` и продолжай без вопроса. Если замечания даны текстом — используй режим `$REVIEW_SOURCE=review_text` и продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста и вход не содержит замечания — остановись с понятным вопросом или статусом `blocked: нужно ревью`.
48
48
 
49
49
  ### 2. Прочитать контекст
50
- `docs/rules.md`, `docs/arch.md` (если есть) — прочитай и строго следуй им.
50
+ Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Через `docs/references.md` выбери только применимые карточки. Если связанный план содержит `sources.references`, прочитай перечисленные карточки и не загружай остальные.
51
51
 
52
52
  Если `$REVIEW_SOURCE=review_file`, прочитай сам файл ревью. Если ревью ссылается на план/research — прочитай и их.
53
53
 
@@ -59,7 +59,7 @@ description: 'Применяет замечания из ревью (`docs/revie
59
59
  - **На усмотрение автора** → в обычном режиме собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя; в режиме `apply-optional` сам реши по каждому пункту, применяй только принятые решения без вопроса, а отклонённые фиксируй с причиной.
60
60
  - **Не править** → пропусти.
61
61
 
62
- Останавливайся и спрашивай, если: замечание непонятно / противоречит коду / задевает рискованное вне ревью (удаление, миграции, секреты).
62
+ Останавливайся и спрашивай, если замечание непонятно, противоречит коду или проектной документации, требует необоснованного отклонения от карточки либо задевает рискованное вне ревью (удаление, миграции, секреты). Подтверждённое отклонение зафиксируй в отчёте.
63
63
 
64
64
  ### 4. Финальная проверка
65
65
  Прогони полный сьют тестов и линтеры. Команды — стандартные для стека; непонятно — `AskUserQuestion`. Свои поломки — правишь и повторяешь. Чужие/несвязанные — `AskUserQuestion`.
@@ -116,3 +116,4 @@ status: done
116
116
  - Гонять полный сьют и линтеры на каждой правке — только в конце.
117
117
  - Пропускать финальную проверку.
118
118
  - Сохранять отчёт куда-либо кроме `docs/review-fixes/`.
119
+ - Игнорировать применимую карточку или молча отклоняться от её примера.
@@ -127,7 +127,7 @@ status: <passed | failed | blocked>
127
127
 
128
128
  ## Чего НЕ делать
129
129
  - Править код, конфиги, миграции, seed-данные или документацию проекта, кроме отчёта в `docs/manual-tests/`.
130
- - Писать или обновлять unit/e2e/autotests. Это работа `eda-fix`, `eda-execute` или отдельной задачи.
130
+ - Писать или обновлять unit/e2e/autotests. Это работа `eda-fix`, `eda-plan-execute` или отдельной задачи.
131
131
  - Устанавливать Playwright, браузеры, npm-пакеты, docker images или системные зависимости без явного подтверждения.
132
132
  - Подменять ручную проверку запуском `npm test` без фактического прохождения API/UI-сценария.
133
133
  - Проверять production или staging с изменением данных без подтверждения пользователя.
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: eda-merge-worktree
3
+ description: 'Оркестрирует merge ветки из соседнего git worktree через пакетного агента на `haiku` / `gpt-5.6-luna`. Аргумент принимает как номер `1`, короткое имя `work-1` или полное имя `{name}-work-1`. Перед merge проверяет оба worktree на незакоммиченные изменения. После успешного merge не удаляет worktree и ветку.'
4
+ ---
5
+
6
+ # Скил: Merge из worktree (eda-merge-worktree)
7
+
8
+ Работай как лёгкий оркестратор установленного агента `eda-merge-worktree-executor`. Сам не исследуй git-состояние, не определяй исходную ветку и не выполняй merge.
9
+
10
+ ## Вход из сообщения пользователя
11
+
12
+ Сохрани весь текст текущего сообщения дословно в `$USER_REQUEST`. Это главный вход: номер worktree, короткое имя `work-<n>`, полное имя `{name}-work-<n>`, ограничения и прямые указания.
13
+
14
+ Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно. При последующем ответе на вопрос сохрани исходный `$USER_REQUEST` и передай ответ отдельно.
15
+
16
+ ## Агент
17
+
18
+ | Агент | Claude Code | Codex | Доступ |
19
+ |---|---|---|---|
20
+ | `eda-merge-worktree-executor` | `haiku` | `gpt-5.6-luna` | git-write |
21
+
22
+ - В Claude Code запускай установленный custom agent через `Agent` tool по имени.
23
+ - В Codex запускай установленный custom agent через `spawn_agent` или аналог по имени.
24
+ - Не копируй в task-сообщение системный prompt агента: он уже установлен в `.claude/agents/` или `.codex/agents/`.
25
+ - Передавай агенту только рабочую директорию, данные текущего запуска и требуемый формат результата.
26
+ - Если custom agent или инструмент субагентов недоступен, остановись: `blocked: нужен установленный агент eda-merge-worktree-executor`. Не выполняй его роль основным агентом и не заменяй отдельным CLI-процессом.
27
+
28
+ ## Интерактивные вопросы
29
+
30
+ Когда агент вернул `blocked`, задай его один конкретный вопрос пользователю через общий паттерн `AskUserQuestion`.
31
+
32
+ - Claude Code: используй `AskUserQuestion`.
33
+ - Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 1–3 вариантами и остановись до ответа.
34
+ - Codex exec / неинтерактивный запуск: не читай stdin; заверши со статусом `blocked: нужен ответ пользователя`, перечисли вопрос и варианты.
35
+ - Не запускай команды, которые ждут интерактивного ввода в терминале.
36
+
37
+ После ответа продолжи того же агента, если хост это поддерживает. Иначе запусти `eda-merge-worktree-executor` заново с исходным запросом, полным предыдущим результатом и ответом пользователя.
38
+
39
+ ## Процесс
40
+
41
+ Запусти `eda-merge-worktree-executor` и передай:
42
+
43
+ ```text
44
+ Рабочая директория: <cwd>
45
+ USER_REQUEST:
46
+ <полный дословный запрос>
47
+
48
+ Верни результат строго по YAML-контракту агента.
49
+ ```
50
+
51
+ Обработай `status`:
52
+
53
+ - `merged` или `already-up-to-date` — переходи к финалу;
54
+ - `conflict` — сообщи список конфликтных файлов и что merge нужно завершить вручную;
55
+ - `blocked` — задай вопрос агента и продолжи после ответа;
56
+ - `failed` — коротко сообщи фактическую ошибку и безопасный следующий шаг.
57
+
58
+ ## Финал
59
+
60
+ Коротко сообщи из результата агента:
61
+
62
+ - исходную и текущую ветки;
63
+ - путь исходного worktree;
64
+ - статус: `merged`, `already up to date` или `conflict`;
65
+ - что worktree и исходная ветка не удалялись.
66
+
67
+ ## Чего НЕ делать
68
+
69
+ - Выполнять работу `eda-merge-worktree-executor` основным агентом.
70
+ - Переключать целевую ветку, править код или разрешать конфликты вручную.
71
+ - Делать отдельный commit, push или cleanup worktree и исходной ветки.
72
+ - Терять исходный `$USER_REQUEST` после интерактивного ответа.
@@ -0,0 +1,7 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "models": {
4
+ "claude": "haiku",
5
+ "codex": "gpt-5.6-luna"
6
+ }
7
+ }