@gian-tiaga/eda 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,7 +27,7 @@ eda init
27
27
 
28
28
  | Скил | Что делает | Куда складывает |
29
29
  |---|---|---|
30
- | `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки и риски, короткий выбранный вариант решения без плана. Если нужны пакеты или ПО — проверяет актуальные стабильные версии через context7 или web search | `docs/researches/` |
30
+ | `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. Если нужны пакеты или ПО — проверяет актуальные стабильные версии через context7 или web search | `docs/researches/` |
31
31
  | `eda-plan` | Пишет план реализации через стандартный Plan Mode хост-агента. Подтягивает контекст из `docs/rules.md`, `docs/arch.md`, при желании — релевантное исследование. Затем три параллельных модели (слабая, средняя, мощная) проверяют план на реалистичность, пропущенные шаги и нарушения правил — главный планировщик сам решает, что применить | `docs/plans/` |
32
32
  | `eda-execute` | Выполняет план. Спрашивает, где работать (текущая ветка, новая ветка, отдельный worktree). Тесты пишет внутри каждого шага. В конце — полный прогон тестов и линтеров | `docs/executions/` |
33
33
  | `eda-fix` | Делает обычные фиксы по короткому контексту, баг-репорту или файлу плана. Перед правками читает правила и архитектуру, добавляет нужные тесты, прогоняет проверки и сохраняет историю правок | `docs/fixes/` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gian-tiaga/eda",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "Набор скилов eda-* для Claude Code и Codex CLI: explore, plan, execute, fix, review, fix-by-review, send-review, commit, docs, automate",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,11 +1,11 @@
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` в `docs/settings.yaml`.'
3
+ description: 'Исследует тему или задачу до конкретного результата: проясняет проблему, архитектуру, развилки, связанные риски и короткий выбранный вариант решения без плана реализации. Работает read-only, задаёт блокирующие вопросы, когда без ответа нельзя выбрать решение, а существенные решения подтверждает по `defaults.decision_mode` из `docs/settings.yaml`. Если исследование касается пакетов, библиотек, CLI, сервисов или другого ПО, проверяет актуальные стабильные версии через context7, если он доступен, или через web search по официальным источникам. Итог сохраняет в docs/researches/. Кросс-ревью соседним агентом (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true` в `docs/settings.yaml`.'
4
4
  ---
5
5
 
6
6
  # Скил: Исследователь решений (eda-explore)
7
7
 
8
- Проводишь исследование так, чтобы на выходе была не подборка рассуждений, а конкретная рамка для следующего шага: что за проблема, как устроена релевантная архитектура, какие решения приняты, какие риски закрыты и какой вариант решения выбран.
8
+ Проводишь исследование так, чтобы на выходе была не подборка рассуждений, а конкретная рамка для следующего шага: что за проблема, как устроена релевантная архитектура, какие решения приняты, какие риски учтены в этих решениях и какой вариант решения выбран.
9
9
 
10
10
  ## Режимы вызова
11
11
 
@@ -55,12 +55,12 @@ description: 'Исследует тему или задачу до конкре
55
55
  1. **Никаких правок кода.** Запись только в `docs/researches/`.
56
56
  2. **Итог — конкретика.** Нельзя заканчивать абстрактными описаниями, списком возможностей или «можно выбрать один из вариантов».
57
57
  3. **Развилки закрывай по `decision_mode`.** Обычные локальные развилки можно выбрать по коду, правилам, архитектуре, источникам и рискам. Существенные решения в `recommend_and_ask` и `ask_each_time` подтверждай у пользователя до финализации. Если выбор зависит только от пользователя — задай блокирующий вопрос в любом режиме.
58
- 4. **Риски закрывай.** Для каждого риска зафиксируй решение: mitigation, acceptance или out of scope. Нельзя оставлять риск просто перечисленным.
58
+ 4. **Риски вплетай в исследование.** Не создавай отдельный обязательный раздел или этап рисков. Если риск влияет на выбор, источник, ограничение или будущую проверку, фиксируй его рядом с соответствующим решением: что может пойти не так и как это учитывается — снимаем, принимаем или выносим за рамки.
59
59
  5. **Версии проверяй.** Если речь о пакетах, библиотеках, CLI, сервисах или другом ПО, а версия не задана контекстом, проверь последнюю стабильную версию через context7, если он доступен, или через web search по официальным источникам.
60
60
  6. **Прочитай `docs/rules.md` и `docs/arch.md`**, если есть, и используй их как рамку.
61
61
  7. **Каждое фактическое утверждение — со ссылкой** (`file.ext:42`, URL, коммит). Без ссылки — помечай как «гипотеза» и не делай её основанием выбранного решения.
62
62
  8. **Простой язык.** Термины — только когда без них нельзя, сразу с пояснением.
63
- 9. **Таблицы > сплошной текст** для фактов, развилок, рисков и решений.
63
+ 9. **Таблицы > сплошной текст** для фактов, развилок, сравнений, версий и источников.
64
64
 
65
65
  ## Интерактивные вопросы
66
66
 
@@ -100,6 +100,7 @@ description: 'Исследует тему или задачу до конкре
100
100
  - перечисли варианты;
101
101
  - выбери один вариант или подготовь рекомендацию;
102
102
  - запиши источник и причину выбора;
103
+ - если у варианта есть важный риск, опиши его здесь же и сразу зафиксируй, как он влияет на выбранное решение;
103
104
  - если развилка существенная и `decision_mode: recommend_and_ask` — задай `AskUserQuestion`: 2–3 варианта, первым рекомендованный, короткая причина рекомендации, вариант «свой вариант», фраза «Я продолжу только после ответа.»;
104
105
  - если развилка значимая и `decision_mode: ask_each_time` — задай `AskUserQuestion` даже при сильной рекомендации;
105
106
  - если `decision_mode: autonomous` и выбор можно обосновать кодом, правилами, архитектурой, источниками и рисками — выбери сам и запиши почему;
@@ -107,21 +108,13 @@ description: 'Исследует тему или задачу до конкре
107
108
 
108
109
  Не прячь существенный выбор внутри текста. Например, если нужен пакет для базы данных, сначала сравни 2–3 подходящих варианта, затем в `recommend_and_ask` спроси подтверждение выбора пакета/БД до записи финального решения.
109
110
 
110
- ### 4. Закрыть риски
111
+ Если по ходу исследования находится высокий риск без понятного решения, это блокер: задай `AskUserQuestion` или заверши со статусом `blocked`. Не выноси риски в отдельную секцию ради формы; они должны естественно лежать в `Решении`, причинах выбора, ограничениях, проверках версий или итоговом выводе.
111
112
 
112
- Для каждого риска зафиксируй:
113
- - что может пойти не так;
114
- - почему это важно;
115
- - выбранное решение: как снимаем, принимаем или выносим за рамки;
116
- - что это значит для будущего плана.
117
-
118
- Высокий риск без решения — блокер. Задай вопрос или заверши со статусом `blocked`.
119
-
120
- ### 5. Собрать отчёт
113
+ ### 4. Собрать отчёт
121
114
 
122
115
  Сохрани отчёт в `docs/researches/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
123
116
 
124
- Формат отчёта должен быть компактным и универсальным: три основных раздела, без обязательного раздувания под каждый тип исследования. Таблицы, ASCII-диаграммы и дополнительные подпункты добавляй внутри этих разделов только когда они действительно помогают ясности.
117
+ Формат отчёта должен быть компактным и универсальным: четыре основных раздела, без обязательного раздувания под каждый тип исследования. Таблицы, ASCII-диаграммы и дополнительные подпункты добавляй внутри этих разделов только когда они действительно помогают ясности.
125
118
 
126
119
  ```markdown
127
120
  ---
@@ -145,7 +138,8 @@ sources:
145
138
  Описание выбранного решения. Внутри этого раздела, если нужно, добавь:
146
139
  - описание релевантной архитектуры;
147
140
  - ASCII-диаграммы;
148
- - таблицы фактов, развилок, рисков, версий пакетов/ПО и источников;
141
+ - таблицы фактов, развилок, версий пакетов/ПО и источников;
142
+ - риски рядом с теми решениями, ограничениями или проверками, на которые они влияют;
149
143
  - объяснение, почему выбран этот вариант, а не альтернативы.
150
144
 
151
145
  ## Ответы на вопросы
@@ -163,13 +157,14 @@ Quality gate перед сохранением:
163
157
  - в `Ответы на вопросы` записаны все вопросы, заданные пользователю в процессе исследования, и ответы на них, чтобы `eda-plan` не задавал их повторно;
164
158
  - в `Итог` есть короткая конкретика, что делать дальше на уровне подхода, без пошагового плана;
165
159
  - нет незакрытых развилок;
166
- - нет рисков без решения;
160
+ - нет рисков, которые перечислены отдельно от решения и никак не влияют на выбор, ограничения или будущие проверки;
161
+ - нет высокого риска без понятного решения;
167
162
  - версии пакетов/ПО проверены или объяснено, почему это не требуется;
168
163
  - ключевые утверждения имеют источники.
169
164
 
170
- ### 6. Кросс-ревью — только в `strict`
165
+ ### 5. Кросс-ревью — только в `strict`
171
166
 
172
- Обычный режим — пропусти этапы 6–7, иди на финал. `reviewer: none`, `status: draft`.
167
+ Обычный режим — пропусти этапы 5–6, иди на финал. `reviewer: none`, `status: draft`.
173
168
 
174
169
  В `strict`: отдай файл соседнему агенту через `Bash` и сформулируй задание как глубокую проверку конкретности, фактов, развилок и рисков.
175
170
 
@@ -187,11 +182,11 @@ claude -p "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md при
187
182
 
188
183
  CLI нет — `AskUserQuestion`: продолжать без ревью или прервать.
189
184
 
190
- ### 7. Допилить по ревью — только в `strict`
185
+ ### 6. Допилить по ревью — только в `strict`
191
186
 
192
187
  Бесспорные замечания → правь. Спорные → `AskUserQuestion`. Отклонённые → оставь с причиной. В конец отчёта добавь раздел `## Реакция на ревью` (Принято / Отклонено / Спорное). `status: reviewed`. Покажи дифф.
193
188
 
194
- ### 8. Финал
189
+ ### 7. Финал
195
190
 
196
191
  Короткое сообщение: режим, путь к отчёту, путь к ревью (если `strict`), 3–5 конкретных выводов, выбранный вариант решения одной строкой. Не предлагай «исследовать дальше», если нет блокера.
197
192
 
@@ -302,21 +302,17 @@ sources:
302
302
 
303
303
  ## Документация и эксплуатация
304
304
  Что обновить в env/docs/runbook и что важно для релиза.
305
-
306
- ## Риски
307
- Риски и конкретное снижение каждого риска.
308
-
309
- ## Порядок выполнения
310
- Краткий линейный список действий для исполнителя.
311
305
  ```
312
306
 
313
307
  Правила структуры:
314
308
  - В `Контекст` попадают исследовательские наблюдения и ограничения.
315
309
  - В `Принятые решения` попадают только выбранные решения, без альтернатив.
310
+ - Риски не выносятся в отдельный обязательный раздел. Закрытые риски из research, контекста и мета-ревью должны быть встроены туда, где они исполняются: в `Принятые решения`, фазы, сценарии тестирования, проверки, логирование или эксплуатационные шаги.
316
311
  - Существенные решения в `Принятых решениях` имеют источник подтверждения или явное обоснование автономного выбора.
317
312
  - В `Целевой алгоритм` попадает сквозная картина процесса.
318
313
  - В `Фазы выполнения` попадают только исполнимые шаги.
319
314
  - Каждая фаза обязана иметь `Цель`, `Что сделать`, `Результат`, `Сценарии тестирования`, `Проверка`.
315
+ - Отдельный раздел порядка выполнения не нужен: линейный порядок задаётся номерами фаз и шагами внутри фаз.
320
316
  - `test_strategy` обязан менять структуру фаз: TDD — тесты в начале фаз, after_each_phase — тесты после каждой фазы, end_of_plan — отдельная финальная фаза тестов.
321
317
  - `logging_strategy` обязан быть отражён в целевом алгоритме, фазах и отдельном разделе `Логирование`.
322
318
  - Для `plan_size: short` фаз должно быть не больше 2, а ожидаемый объём должен быть явно указан в `Принятых решениях`.
@@ -332,7 +328,7 @@ sources:
332
328
  - мета-уровень не смешан с шагами исполнения;
333
329
  - стратегия тестов зафиксирована в разделе `Тесты` и последовательно применена в фазах, сценариях тестирования и проверках;
334
330
  - стратегия логирования зафиксирована и последовательно применена в алгоритме, фазах и разделе `Логирование`;
335
- - тесты связаны с ключевыми сценариями и рисками;
331
+ - тесты связаны с ключевыми сценариями и закрытыми рисками из research/контекста, если такие риски есть;
336
332
  - если `plan_size: short`, фаз не больше 2, ожидаемый объём укладывается в ориентиры short или исключение явно объяснено;
337
333
  - все пакеты/ПО, которые нужно установить, имеют конкретные версии или явное объяснение, почему версия берётся из существующего lock/config-файла;
338
334
  - нет неподтверждённых существенных решений при `decision_mode: recommend_and_ask` или `decision_mode: ask_each_time`;
@@ -362,7 +358,7 @@ sources:
362
358
 
363
359
  Базовый формат ответа для всех: `+ N | − N | ~ N: причина`, без воды. Для мощной модели добавь явную инструкцию: «Если план ссылается на модуль, API, тесты или сценарий, открой соответствующие файлы и проверь фактическую структуру проекта.»
364
360
 
365
- Когда все три ответили — прочитай ответы, **сам реши**, что применять (не вставляй чужие пункты механически). Принятые замечания сначала интегрируй в основные разделы плана: решения, алгоритм, фазы, тесты, риски. Не оставляй важные требования только в changelog.
361
+ Когда все три ответили — прочитай ответы, **сам реши**, что применять (не вставляй чужие пункты механически). Принятые замечания сначала интегрируй в основные разделы плана: решения, алгоритм, фазы, тесты, логирование, документацию и эксплуатацию. Не оставляй важные требования только в changelog.
366
362
 
367
363
  После интеграции снова прогони quality gate из этапа 5. Затем допиши в конец короткий раздел:
368
364