@gian-tiaga/eda 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/MIGRATION.md +68 -67
  2. package/README.md +44 -86
  3. package/agents/eda-aim-planner/prompt.md +1 -1
  4. package/agents/eda-review-api/prompt.md +5 -3
  5. package/agents/eda-review-architecture/prompt.md +6 -4
  6. package/agents/eda-review-business/prompt.md +5 -3
  7. package/agents/eda-review-code-quality/prompt.md +7 -5
  8. package/agents/eda-review-correctness/prompt.md +5 -3
  9. package/agents/eda-review-database/prompt.md +5 -3
  10. package/agents/eda-review-documentation/prompt.md +5 -3
  11. package/agents/eda-review-frontend/prompt.md +5 -3
  12. package/agents/eda-review-performance/prompt.md +7 -5
  13. package/agents/eda-review-plan-alignment/prompt.md +5 -3
  14. package/agents/eda-review-previous-reviews/prompt.md +6 -4
  15. package/agents/eda-review-references/prompt.md +5 -3
  16. package/agents/eda-review-rules/prompt.md +5 -3
  17. package/agents/eda-review-security/prompt.md +5 -3
  18. package/agents/eda-review-tests/prompt.md +5 -3
  19. package/bin/cli.js +2 -2
  20. package/lib/install.js +124 -160
  21. package/package.json +1 -1
  22. package/skills/eda-aim/SKILL.md +2 -2
  23. package/skills/eda-business/SKILL.md +47 -32
  24. package/skills/eda-discover-automations/SKILL.md +9 -9
  25. package/skills/eda-explore/SKILL.md +3 -3
  26. package/skills/eda-fix/SKILL.md +6 -6
  27. package/skills/eda-fix-by-review/SKILL.md +47 -58
  28. package/skills/eda-manual-test/SKILL.md +5 -5
  29. package/skills/eda-new-project/SKILL.md +3 -3
  30. package/skills/eda-orhestra/SKILL.md +2 -2
  31. package/skills/eda-plan/SKILL.md +92 -111
  32. package/skills/eda-plan-execute/SKILL.md +43 -68
  33. package/skills/eda-plan-polish/SKILL.md +51 -42
  34. package/skills/eda-plan-review/SKILL.md +89 -135
  35. package/skills/eda-plan-review-fix/SKILL.md +38 -63
  36. package/skills/eda-polish/SKILL.md +25 -35
  37. package/skills/eda-prepare-ai/SKILL.md +1 -1
  38. package/skills/eda-review/SKILL.md +18 -17
  39. package/skills/eda-roadmap/SKILL.md +5 -5
  40. package/skills/eda-send-review/SKILL.md +11 -11
  41. package/agents/eda-plan-review-api/agent.json +0 -9
  42. package/agents/eda-plan-review-api/prompt.md +0 -34
  43. package/agents/eda-plan-review-architecture/agent.json +0 -9
  44. package/agents/eda-plan-review-architecture/prompt.md +0 -34
  45. package/agents/eda-plan-review-database/agent.json +0 -9
  46. package/agents/eda-plan-review-database/prompt.md +0 -34
  47. package/agents/eda-plan-review-execution/agent.json +0 -9
  48. package/agents/eda-plan-review-execution/prompt.md +0 -34
  49. package/agents/eda-plan-review-feasibility/agent.json +0 -9
  50. package/agents/eda-plan-review-feasibility/prompt.md +0 -34
  51. package/agents/eda-plan-review-frontend/agent.json +0 -9
  52. package/agents/eda-plan-review-frontend/prompt.md +0 -34
  53. package/agents/eda-plan-review-performance/agent.json +0 -9
  54. package/agents/eda-plan-review-performance/prompt.md +0 -34
  55. package/agents/eda-plan-review-previous/agent.json +0 -9
  56. package/agents/eda-plan-review-previous/prompt.md +0 -28
  57. package/agents/eda-plan-review-requirements/agent.json +0 -9
  58. package/agents/eda-plan-review-requirements/prompt.md +0 -34
  59. package/agents/eda-plan-review-rules/agent.json +0 -9
  60. package/agents/eda-plan-review-rules/prompt.md +0 -34
  61. package/agents/eda-plan-review-security/agent.json +0 -9
  62. package/agents/eda-plan-review-security/prompt.md +0 -34
  63. package/agents/eda-plan-review-verification/agent.json +0 -9
  64. package/agents/eda-plan-review-verification/prompt.md +0 -34
@@ -19,7 +19,7 @@ description: 'Аудирует автоматические проверки п
19
19
  |---|---|---|
20
20
  | `discover-automations.include_plans` | `true`, `false` | `plans`, «с планами»; выключение: `normal`, «без планов» |
21
21
 
22
- Обычный режим анализирует текущий проект и, если они есть, `docs/reviews/`, `docs/review-fixes/`, `docs/fixes/`. Режим `discover-automations.include_plans: true` добавляет `docs/plans/`. Отсутствие истории не отменяет полный аудит текущих проверок.
22
+ Обычный режим анализирует текущий проект и, если они есть, `docs/artifacts/reviews/`, `docs/artifacts/review-fixes/`, `docs/artifacts/fixes/`. Режим `discover-automations.include_plans: true` добавляет `docs/artifacts/plans/`. Отсутствие истории не отменяет полный аудит текущих проверок.
23
23
 
24
24
  ## Вход из сообщения пользователя
25
25
 
@@ -49,11 +49,11 @@ description: 'Аудирует автоматические проверки п
49
49
 
50
50
  Если вход неоднозначен — `AskUserQuestion`: все ревью и фиксы / все ревью, фиксы и планы / последние N / период / конкретные файлы.
51
51
 
52
- Получи список файлов из `docs/reviews/`, `docs/review-fixes/` и `docs/fixes/`. В режиме `plans` дополнительно получи список файлов из `docs/plans/`. Отсутствующие или пустые папки отметь в отчёте, но не блокируйся: проведи baseline gap-аудит по коду, manifest-файлам, конфигам, scripts и CI текущего проекта.
52
+ Получи список файлов из `docs/artifacts/reviews/`, `docs/artifacts/review-fixes/` и `docs/artifacts/fixes/`. В режиме `plans` дополнительно получи список файлов из `docs/artifacts/plans/`. Отсутствующие или пустые папки отметь в отчёте, но не блокируйся: проведи baseline gap-аудит по коду, manifest-файлам, конфигам, scripts и CI текущего проекта.
53
53
 
54
54
  ### 2. Прочитать контекст
55
55
  - Все выбранные ревью, отчёты о фиксах по ревью и обычные фиксы.
56
- - В режиме `plans`: все выбранные планы из `docs/plans/`.
56
+ - В режиме `plans`: все выбранные планы из `docs/artifacts/plans/`.
57
57
  - `docs/rules.md`, `docs/arch.md` (если есть) — прочитай и строго следуй им.
58
58
  - Сначала определи затронутые историей и текущим аудитом доменные области. Затем через `docs/business.md` выбери только карточки этих областей; если подходящих нет, продолжай без business-контекста. Используй карточки лишь для поиска автоматизируемых инвариантов и acceptance-сценариев, не расширяй аудит на несвязанные темы.
59
59
  - Какие языки и фреймворки в проекте — определи сам.
@@ -96,19 +96,19 @@ description: 'Аудирует автоматические проверки п
96
96
  4. `agent` — MCP-сервер, новая/обновлённая eda-инструкция, специализированная агентная проверка или обязательный источник контекста. Предлагай только когда это закрывает значимую ошибку AI-процесса или даёт агенту данные, которые нельзя надёжно получить из кода.
97
97
  5. `rules` / `architecture` — текстовые правила и архитектурные уточнения, если проблема связана с договорённостью, границей модулей или ownership.
98
98
 
99
- Предпочитай уже установленный инструмент, если он ловит этот класс проблем. Новый инструмент предлагай только если он не дублирует инструмент того же класса. Для проблем из планов предлагай проверку `docs/plans/*.md`, а не runtime-линтер кода. Если правило или архитектура уже зафиксированы, не дублируй текст; предложи только уточнение, которое закрывает найденный случай.
99
+ Предпочитай уже установленный инструмент, если он ловит этот класс проблем. Новый инструмент предлагай только если он не дублирует инструмент того же класса. Для проблем из планов предлагай проверку `docs/artifacts/plans/*.md`, а не runtime-линтер кода. Если правило или архитектура уже зафиксированы, не дублируй текст; предложи только уточнение, которое закрывает найденный случай.
100
100
 
101
101
  Подменять линтер, статанализатор или тест MCP-сервером/скилом нельзя, если ошибку можно надёжно поймать программной проверкой.
102
102
 
103
103
  Для каждой программной проверки укажи точный инструмент, команду/сценарий и контур: `pre-commit`, `pre-push`, `PR CI`, `nightly`, `release`, `post-deploy`. Быстрые проверки отдели от тяжёлых. Для MCP укажи сервер/класс инструмента, проверяемый сценарий, минимальные права, тестовые данные и контур `MCP/manual`; MCP не называй автоматической CI-проверкой, если он реально не запускается без участия агента.
104
104
 
105
105
  ### 5. Сохранить отчёт
106
- `docs/automations/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Slug — короткое описание набора (например, `php-strict-rules`).
106
+ `docs/artifacts/automations/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Slug — короткое описание набора (например, `php-strict-rules`).
107
107
 
108
108
  ```markdown
109
109
  ---
110
110
  date: <YYYY-MM-DD HH:MM>
111
- sources: [docs/reviews/..., docs/review-fixes/..., docs/fixes/..., docs/business/...]
111
+ sources: [docs/artifacts/reviews/..., docs/artifacts/review-fixes/..., docs/artifacts/fixes/..., docs/business/...]
112
112
  mode: <normal | plans>
113
113
  status: draft
114
114
  ---
@@ -132,7 +132,7 @@ status: draft
132
132
  ### 1. <название паттерна>
133
133
  - **Тип:** automation / tests / tooling
134
134
  - **Что ловит:** ...
135
- - **Встречалось в:** `docs/reviews/...` (×1), `docs/reviews/...` (×2)
135
+ - **Встречалось в:** `docs/artifacts/reviews/...` (×1), `docs/artifacts/reviews/...` (×2)
136
136
  - **Почему автоматизировать:** <повторяемость либо высокий ущерб и вероятность повторения>
137
137
  - **Инструмент:** <название или текущий test runner> (если новый для проекта — пометка «требует установки»)
138
138
  - **Команда / сценарий:** <точная команда, glob, правило или тестовый сценарий>
@@ -150,7 +150,7 @@ status: draft
150
150
  ### 1. <название паттерна>
151
151
  - **Тип:** agent
152
152
  - **Что закрывает:** <какую ошибку процесса или нехватку контекста>
153
- - **Встречалось в:** `docs/reviews/...` (×1), `docs/fixes/...` (×1)
153
+ - **Встречалось в:** `docs/artifacts/reviews/...` (×1), `docs/artifacts/fixes/...` (×1)
154
154
  - **Почему автоматизировать:** <повторяемость либо высокий ущерб и вероятность повторения>
155
155
  - **Предложение:** MCP-сервер / новый eda-скил / правка существующего скила / специализированная агентная проверка
156
156
  - **Сценарий и доступ:** <что проверяет, минимальные права, тестовые данные, почему CLI/CI недостаточно>
@@ -166,7 +166,7 @@ status: draft
166
166
  - **Тип:** rules / architecture
167
167
  - **Куда:** `docs/rules.md` / `docs/arch.md`, раздел <название или «новый раздел»>
168
168
  - **Почему:** <какой паттерн закрывает>
169
- - **Встречалось в:** `docs/fixes/...` (×1), `docs/reviews/...` (×1)
169
+ - **Встречалось в:** `docs/artifacts/fixes/...` (×1), `docs/artifacts/reviews/...` (×1)
170
170
  - **Черновик текста:**
171
171
  ```markdown
172
172
  <готовый фрагмент для docs/rules.md или docs/arch.md>
@@ -38,7 +38,7 @@ description: 'Исследует техническую тему или зада
38
38
 
39
39
  ## Главные правила
40
40
 
41
- 1. **Никаких правок кода.** Запись только в `docs/researches/`.
41
+ 1. **Никаких правок кода.** Запись только в `docs/artifacts/researches/`.
42
42
  2. **Итог — конкретика.** Нельзя заканчивать абстрактными описаниями, списком возможностей или «можно выбрать один из вариантов».
43
43
  3. **Развилки закрывай по `decision_mode`.** Значимые развилки подтверждай до финализации, мелкие локальные решения выбирай сам и не создавай шум.
44
44
  4. **Риски вплетай в исследование.** Не создавай отдельный обязательный раздел или этап рисков. Если риск влияет на выбор, источник, ограничение или будущую проверку, фиксируй его рядом с соответствующим решением: что может пойти не так и как это учитывается — снимаем, принимаем или выносим за рамки.
@@ -87,7 +87,7 @@ description: 'Исследует техническую тему или зада
87
87
 
88
88
  ### 4. Собрать отчёт
89
89
 
90
- Сохрани отчёт в `docs/researches/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
90
+ Сохрани отчёт в `docs/artifacts/researches/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
91
91
 
92
92
  Формат отчёта должен быть компактным и универсальным: четыре основных раздела, без обязательного раздувания под каждый тип исследования. Таблицы, ASCII-диаграммы и дополнительные подпункты добавляй внутри этих разделов только когда они действительно помогают ясности.
93
93
 
@@ -176,4 +176,4 @@ CLI нет — `AskUserQuestion`: продолжать без ревью или
176
176
  - Перечислять риски без выбранного закрытия.
177
177
  - Планировать реализацию по шагам — это работа `eda-plan`.
178
178
  - Указывать `latest` без конкретной проверенной версии и источника.
179
- - Сохранять отчёт куда-либо кроме `docs/researches/`.
179
+ - Сохранять отчёт куда-либо кроме `docs/artifacts/researches/`.
@@ -20,7 +20,7 @@ description: 'Вносит изменения в код по плану или
20
20
  3. **Делай только указанные фиксы.** Не расширяй задачу до рефакторинга и не чини соседние проблемы без необходимости.
21
21
  4. **Тесты рядом с правкой.** Меняешь поведение — добавь или обнови точечный тест.
22
22
  5. **Финальная проверка обязательна.** В конце прогони подходящие тесты и линтеры проекта.
23
- 6. **Историю фиксируй в `docs/fixes/`.** Отчёт обязателен даже для маленькой правки.
23
+ 6. **Историю фиксируй в `docs/artifacts/fixes/`.** Отчёт обязателен даже для маленькой правки.
24
24
  7. **Не коммить и не пушь.** Это `eda-commit`. Не делай ревью — это `eda-review`.
25
25
 
26
26
  ## Интерактивные вопросы
@@ -34,7 +34,7 @@ description: 'Вносит изменения в код по плану или
34
34
  ## Этапы
35
35
 
36
36
  ### 1. Определить задачу
37
- Определи `$FIX_CONTEXT`: путь к файлу прочитай, план из `docs/plans/` используй как план фикса, текст используй как контекст. Если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
37
+ Определи `$FIX_CONTEXT`: путь к файлу прочитай, план из `docs/artifacts/plans/` используй как план фикса, текст используй как контекст. Если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
38
38
 
39
39
  ### 2. Прочитать рамку проекта
40
40
  Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Сначала определи задачу фикса и затронутое поведение. Если связанный план содержит `sources.business`, прочитай только перечисленные применимые карточки; иначе через `docs/business.md` выбери по описаниям только карточки этой темы. Если подходящих карточек нет, продолжай без business-контекста. Если существует `docs/references.md`, выбери по индексу только применимые технические карточки и используй их примеры как ожидаемую форму реализации. Если `$FIX_CONTEXT` ссылается на research, review, issue или другой файл — прочитай и его.
@@ -49,12 +49,12 @@ description: 'Вносит изменения в код по плану или
49
49
  Прогони подходящие тесты и линтеры. Команды определи по стеку проекта. Свои поломки — исправь и повтори. Чужие или несвязанные поломки — зафиксируй в отчёте и спроси через `AskUserQuestion`, если без решения нельзя продолжать.
50
50
 
51
51
  ### 6. Сохранить отчёт
52
- Сохрани отчёт в `docs/fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
52
+ Сохрани отчёт в `docs/artifacts/fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
53
53
 
54
54
  ```markdown
55
55
  ---
56
56
  date: <YYYY-MM-DD HH:MM>
57
- source: <text | path | docs/plans/...>
57
+ source: <text | path | docs/artifacts/plans/...>
58
58
  status: done
59
59
  ---
60
60
 
@@ -83,8 +83,8 @@ status: done
83
83
  ## Чего НЕ делать
84
84
  - Коммитить, пушить, создавать PR.
85
85
  - Делать ревью вместо фикса.
86
- - Выполнять большой план с чекбоксами и журналом `docs/executions/` — это `eda-plan-execute`.
86
+ - Выполнять большой план с чекбоксами и журналом `docs/artifacts/executions/` — это `eda-plan-execute`.
87
87
  - Применять замечания из готового ревью — это `eda-fix-by-review`.
88
- - Сохранять отчёт куда-либо кроме `docs/fixes/`.
88
+ - Сохранять отчёт куда-либо кроме `docs/artifacts/fixes/`.
89
89
  - Загружать несвязанные business-карточки или расширять ими scope фикса.
90
90
  - Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
@@ -5,80 +5,73 @@ description: 'Исправляет код по готовому ревью из
5
5
 
6
6
  # Скил: Исправитель по ревью (eda-fix-by-review)
7
7
 
8
- Берёшь готовое ревью из `docs/reviews/`, применяешь замечания к коду, сохраняешь отчёт о фиксах в `docs/review-fixes/`. После всех правок — полный прогон тестов и линтеров.
8
+ Берёшь готовое ревью из `docs/artifacts/reviews/` или сообщения, применяешь все находки к коду и сохраняешь отчёт в `docs/artifacts/review-fixes/`. После правок выполняешь полный прогон тестов и линтеров.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
12
- Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, задачу, путь к файлу, режим, ограничения и прямые указания.
12
+ Текст рядом с вызовом скилла в текущем сообщении — главный вход. Сначала разбери тему, задачу, путь к файлу, номера замечаний, ограничения и прямые указания. Если входа достаточно, продолжай без вопроса. Старое обсуждение не считай входом, если пользователь явно не связал его с текущим вызовом.
13
13
 
14
- Если этого входа достаточно, продолжай без вопроса. `AskUserQuestion` задавай только если входа нет, он противоречивый, найдено несколько равных вариантов или есть риск выполнить не ту задачу. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
15
-
16
- ## Режим запуска
17
-
18
- Обычный режим: все пункты «Править обязательно» применяешь сразу, «На усмотрение автора» выносишь через `AskUserQuestion`, «Не править» пропускаешь.
19
-
20
- Режим `apply-optional`: все пункты «Править обязательно» применяешь без исключений. По каждому пункту «На усмотрение автора» сам принимаешь решение без вопроса: применяешь, если правка явно улучшает качество, снижает риск или стоит дёшево; отклоняешь, если польза спорная, правка расширяет scope, создаёт риск регрессии, конфликтует с правилами/архитектурой или требует продуктового решения. Название режима означает «разобрать optional без вопроса», а не «механически применить все optional». Пункты «Не править» всё равно пропускаешь.
14
+ У нового формата ревью одна группа находок: каждый пункт обязательно исправить. Режимов выбора рекомендаций нет. Если дан старый файл с разделами `Править обязательно`, `На усмотрение автора` и `Не править`, применяй только пункты из `Править обязательно`; остальные старые предложения не переноси в работу и отчёт.
21
15
 
22
16
  ## Главные правила
23
17
 
24
- 1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`. Сначала определи замечания и затронутое ими поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов. Если подходящих business-карточек нет, продолжай без них. Сделай это один раз в начале.
25
- 2. **Интерактивные вопросы** — по разделу ниже.
26
- 3. **Не переформулируй замечания.** Применяй то, что написано в ревью. Если непонятно — спроси через `AskUserQuestion`.
27
- 4. **Не делаешь само ревью и не коммитишь.** Только применяешь замечания и пишешь отчёт.
28
- 5. **Логика по группам ревью:** «Править обязательно» — правишь все сразу; «На усмотрение автора» — спроси через `AskUserQuestion`, кроме режима `apply-optional`, где сам решаешь применить или отклонить; «Не править» — пропускаешь и отмечаешь в отчёте.
29
- 6. **Тесты — внутри той же правки.** Замечание касается поведения → правка кода + тесты к ней в одном шаге, точечно прогнал.
30
- 7. **Финальный полный прогон тестов и линтеров — обязателен.** В конце, не на каждой правке.
31
- 8. **Простой язык** в формулировках и сообщениях. **Таблицы** для отчёта о фиксах.
18
+ 1. Перед правкой прочитай `docs/rules.md` и `docs/arch.md`. Определи замечания и затронутое поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов.
19
+ 2. Применяй все выбранные находки. Не переоценивай их полезность и не превращай исправление в более широкий рефакторинг.
20
+ 3. Отклонить находку можно, только если она фактически неверна: код уже делает требуемое, доказательство не воспроизводится или правка нарушает применимое правило либо архитектуру. Отклонение с причиной запиши в отчёт. Трудоёмкость, вкус и несогласие с формулировкой основанием не являются.
21
+ 4. Задавай вопрос только если находка неоднозначна, противоречит коду или обязательной документации, требует продуктового решения, расширяет scope либо ведёт к рискованному действию. В остальных случаях работай автономно.
22
+ 5. Не делай новое ревью и не коммить. Только исправляй замечания и пиши отчёт.
23
+ 6. Если находка касается поведения, добавь или обнови точечный тест в той же правке и прогони его.
24
+ 7. В конце обязательно прогони полный набор тестов и линтеров один раз.
25
+ 8. Пиши просто и конкретно; в отчёте используй таблицу.
32
26
 
33
27
  ## Интерактивные вопросы
34
28
 
35
- Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
29
+ Когда без ответа нельзя безопасно продолжать:
30
+
36
31
  - Claude Code: используй `AskUserQuestion`.
37
- - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
38
- - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
39
- - Не запускай команды, которые ждут интерактивного ввода в терминале; перед такими командами спроси в хост-интерфейсе или остановись с `blocked`.
40
- - Для исправления кода это правило важнее требования довести фиксы до конца: не применяй пункты «на усмотрение автора» без ответа пользователя, кроме явного режима `apply-optional`, где решение принимает сам агент; не переформулируй замечания и не правь чужие/несвязанные поломки вместо ответа пользователя.
32
+ - Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 2–3 вариантами и остановись до ответа.
33
+ - Codex exec и другой неинтерактивный запуск: не читай stdin; верни `blocked: нужен ответ пользователя`, перечисли вопрос и варианты, не выполняй рискованное действие.
34
+
35
+ Не запускай команды, которые ждут интерактивного ввода в терминале. Вопрос не разрешает молча заменить находку другой правкой или исправлять несвязанные поломки.
41
36
 
42
37
  ## Этапы
43
38
 
44
39
  ### 1. Выбрать ревью
45
- Сначала разбери текст рядом с вызовом: путь к ревью, название или часть названия, «последнее ревью», номера замечаний или вставленный текст замечаний. Если замечания вставлены в сообщение — используй режим `$REVIEW_SOURCE=review_text`, не выбирай файл ревью и сохрани отчёт с `review: text`.
46
40
 
47
- Если найдено ровно одно ревью — используй режим `$REVIEW_SOURCE=review_file` и продолжай без вопроса. Если замечания даны текстом — используй режим `$REVIEW_SOURCE=review_text` и продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста и вход не содержит замечания — остановись с понятным вопросом или статусом `blocked: нужно ревью`.
41
+ Разбери путь к ревью, название, «последнее ревью», номера находок или вставленный текст. Для текста используй `$REVIEW_SOURCE=review_text`, не выбирай файл и сохраняй отчёт с `review: text`.
42
+
43
+ Если найден ровно один файл, используй `$REVIEW_SOURCE=review_file`. Если найдено несколько равно подходящих файлов или входа нет, задай один вопрос со списком. Если `docs/artifacts/reviews/` пуста и текст замечаний не дан, остановись с `blocked: нужно ревью`.
48
44
 
49
45
  ### 2. Прочитать контекст
50
- Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Если связанный план содержит `sources.business`, прочитай только перечисленные карточки, относящиеся к исправляемым замечаниям; иначе выбери их по описаниям через `docs/business.md`. Отсутствие подходящей карточки не является блокером. Через `docs/references.md` выбери только применимые технические карточки. Если связанный план содержит `sources.references`, прочитай перечисленные карточки и не загружай остальные.
51
46
 
52
- Если `$REVIEW_SOURCE=review_file`, прочитай сам файл ревью. Если ревью ссылается на план/research — прочитай и их.
47
+ Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Для исправляемого поведения выбери только применимые business-карточки и технические reference-карточки. Если связанный план уже задаёт `sources.business` или `sources.references`, используй относящиеся к находкам пути из этих списков.
48
+
49
+ При `$REVIEW_SOURCE=review_file` прочитай ревью целиком, а также явно связанные план и research. При `$REVIEW_SOURCE=review_text` работай по текущему сообщению. Файла ревью нет: не пытайся читать `$REVIEW_FILE` и не ищи план или research без явной ссылки.
53
50
 
54
- Если `$REVIEW_SOURCE=review_text`, работай по замечаниям из текущего сообщения пользователя. Файла ревью нет: не пытайся читать `$REVIEW_FILE` и не ищи связанные plan/research, если они не указаны в тексте.
51
+ ### 3. Применить находки
55
52
 
56
- ### 3. Применить замечания
57
- Раздели пункты ревью по группам (берёшь из раздела «Рекомендации»):
58
- - **Править обязательно** → правишь все пункты сразу. Если меняешь поведение — добавь точечный тест в этой же правке.
59
- - **На усмотрение автора** → в обычном режиме собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя; в режиме `apply-optional` сам реши по каждому пункту, применяй только принятые решения без вопроса, а отклонённые фиксируй с причиной.
60
- - **Не править** → пропусти.
53
+ Исправь все находки нового формата либо выбранные пользователем номера. Для старого формата возьми только пункты из `Править обязательно`. Делай минимальную достаточную правку и точечную проверку после каждого логического изменения. Находку, которая оказалась фактически неверной, не исправляй: запиши её в «Отклонённые находки» с доказательством.
61
54
 
62
- Останавливайся и спрашивай, если замечание непонятно, противоречит коду или проектной документации либо задевает рискованное вне ревью (удаление, миграции, секреты). Если исправление противоречит применимой business-карточке, покажи конфликт и спроси: изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Не разрешай такой конфликт автоматически даже в `apply-optional`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
55
+ Остановись с вопросом при неоднозначности, конфликте с правилами, архитектурой или business-карточкой, необходимости расширить scope либо выполнить рискованное действие. При конфликте с business-карточкой предложи изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
63
56
 
64
57
  ### 4. Финальная проверка
65
- Прогони полный сьют тестов и линтеры. Команды — стандартные для стека; непонятно — `AskUserQuestion`. Свои поломки — правишь и повторяешь. Чужие/несвязанные — `AskUserQuestion`.
66
58
 
67
- ### 5. Сохранить отчёт о фиксах и связать с ревью
68
- Сохрани отчёт в `docs/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md` (slug — тот же что у ревью или близкий). Если `$REVIEW_SOURCE=review_file`, затем **допиши в конец файла ревью** (`$REVIEW_FILE`) раздел со ссылкой:
59
+ Прогони полный сьют тестов и линтеры стандартными командами проекта. Свои поломки исправь и повтори проверку. При чужой или несвязанной ошибке остановись с конкретным блокером.
60
+
61
+ ### 5. Сохранить отчёт и связать с ревью
62
+
63
+ Сохрани `docs/artifacts/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Если `$REVIEW_SOURCE=review_file`, допиши в конец `$REVIEW_FILE`:
69
64
 
70
65
  ```markdown
71
66
  ## Применённые фиксы
72
- Отчёт: `docs/review-fixes/{file}.md`
67
+ Отчёт: `docs/artifacts/review-fixes/{file}.md`
73
68
  ```
74
69
 
75
- Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью: такого файла нет. В отчёте укажи `review: text`.
76
-
77
- Шаблон отчёта:
70
+ Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью: исходного файла нет.
78
71
 
79
72
  ```markdown
80
73
  ---
81
- review: <путь к docs/reviews/...>
74
+ review: <docs/artifacts/reviews/... | text>
82
75
  date: <YYYY-MM-DD HH:MM>
83
76
  status: done
84
77
  ---
@@ -89,13 +82,11 @@ status: done
89
82
  | # | Замечание | Файлы | Тесты | Статус |
90
83
  |---|-----------|-------|-------|--------|
91
84
  | 1 | <кратко из ревью> | `path/a.py` | `path/test_a.py` (2 ✓) | ✓ применено |
92
- | 2 | ... | ... | — | ✓ применено |
93
- | 3 | ... | — | — | ✗ отклонено (на усмотрение, причина: <короткое обоснование>) |
94
- | 4 | ... | — | — | — не править (по решению ревью) |
95
85
 
96
- ## Решения по optional
97
- - **Принято:** <номера и коротко почему>
98
- - **Отклонено:** <номера и коротко почему, чтобы следующие ревьюеры не повторяли это как открытое замечание>
86
+ ## Отклонённые находки
87
+ | # | Замечание | Почему отклонена |
88
+ |---|-----------|------------------|
89
+ | 2 | <кратко из ревью> | <чем подтверждается, что находка неверна> |
99
90
 
100
91
  ## Финальная проверка
101
92
  - **Тесты:** `<команда>` — ✓ / ✗
@@ -103,18 +94,16 @@ status: done
103
94
  - **Заметки:** <если что-то осталось не зелёным — почему>
104
95
  ```
105
96
 
106
- Если `$REVIEW_SOURCE=review_file` и в режиме `apply-optional` отклонены пункты «На усмотрение автора», в добавляемом в ревью разделе `## Применённые фиксы` после ссылки на отчёт добавь короткий список `Отклонённые optional-решения` с причинами. Это нужно, чтобы следующие ревьюеры видели уже принятое решение и не повторяли тот же optional-пункт без новых аргументов.
107
-
108
97
  ### 6. Финал
109
- Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к отчёту о фиксах, сколько применено / пропущено / отклонено, результат финальной проверки, состояние git («не закоммичено»). Подсказка дальше — `eda-commit`.
98
+
99
+ Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к fix-отчёту, сколько находок применено и сколько отклонено, результат финальной проверки и состояние git «не закоммичено». Предложи `eda-commit`.
110
100
 
111
101
  ## Чего НЕ делать
102
+
112
103
  - Делать само ревью — это `eda-review`.
113
- - Коммитить, пушить — это `eda-commit`.
114
- - Применять или отклонять «на усмотрение» молча без явного режима `apply-optional` или ответа пользователя.
115
- - Игнорировать «не править» и пробовать «на всякий случай» — это нарушает решение ревью.
116
- - Гонять полный сьют и линтеры на каждой правке — только в конце.
117
- - Пропускать финальную проверку.
118
- - Сохранять отчёт куда-либо кроме `docs/review-fixes/`.
119
- - Загружать несвязанные business-карточки или расширять ими состав исправлений.
120
- - Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
104
+ - Коммитить или пушить — это `eda-commit`.
105
+ - Отклонять находку по вкусу, из-за трудоёмкости или несогласия с формулировкой: основание — только фактическая ошибка находки, и всегда с причиной в отчёте.
106
+ - Расширять scope ради улучшений, которых нет в находках.
107
+ - Гонять полный сьют после каждого пункта или пропускать финальную проверку.
108
+ - Сохранять отчёт вне `docs/artifacts/review-fixes/`.
109
+ - Загружать несвязанные business-карточки или молча отклоняться от применимого правила.
@@ -23,7 +23,7 @@ description: 'Проводит ручную smoke/acceptance-проверку и
23
23
  6. **Секреты не трогай.** Используй только уже доступные локальные `.env`, тестовые аккаунты и настройки. Не проси пользователя прислать секреты в чат и не печатай токены, cookies, passwords, API keys или Authorization headers в отчёт.
24
24
  7. **Разрушительное подтверждай.** Реальные платежи, удаление данных, отправку email/SMS/push, изменение production/staging-данных, миграции, очистку БД и похожие действия выполняй только после `AskUserQuestion`.
25
25
  8. **Проверяй фактическое поведение.** Не ограничивайся чтением кода. Если сценарий нельзя выполнить, зафиксируй `blocked` и конкретную причину.
26
- 9. **Отчёт обязателен.** Сохрани результат в `docs/manual-tests/`, даже если проверка заблокирована или нашла баги.
26
+ 9. **Отчёт обязателен.** Сохрани результат в `docs/artifacts/manual-tests/`, даже если проверка заблокирована или нашла баги.
27
27
  10. **Задача важнее дополнительного контекста.** Основной чеклист строй по выполненной задаче: текущему сообщению и явно связанному плану, issue, review или fix-отчёту. Business-карточки подключай только после определения target и только для непосредственно затронутого поведения.
28
28
 
29
29
  ## Интерактивные вопросы
@@ -85,15 +85,15 @@ description: 'Проводит ручную smoke/acceptance-проверку и
85
85
  - видимые состояния ошибок, пустых данных или невалидного ввода, если они относятся к задаче;
86
86
  - текст и элементы управления не ломаются на очевидном desktop/mobile viewport, если менялась вёрстка.
87
87
 
88
- Скриншоты сохраняй только если инструмент это поддерживает и они помогают подтвердить результат или баг. Складывай их рядом с отчётом или в подпапку `docs/manual-tests/assets/`.
88
+ Скриншоты сохраняй только если инструмент это поддерживает и они помогают подтвердить результат или баг. Складывай их рядом с отчётом или в подпапку `docs/artifacts/manual-tests/assets/`.
89
89
 
90
90
  ### 7. Сохранить отчёт
91
- Сохрани отчёт в `docs/manual-tests/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
91
+ Сохрани отчёт в `docs/artifacts/manual-tests/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
92
92
 
93
93
  ```markdown
94
94
  ---
95
95
  date: <YYYY-MM-DD HH:MM>
96
- source: <text | git diff HEAD | docs/plans/... | docs/reviews/...>
96
+ source: <text | git diff HEAD | docs/artifacts/plans/... | docs/artifacts/reviews/...>
97
97
  target: <api | frontend | fullstack | other>
98
98
  status: <passed | failed | blocked>
99
99
  ---
@@ -134,7 +134,7 @@ status: <passed | failed | blocked>
134
134
  Короткое сообщение: путь к отчёту, итог `passed` / `failed` / `blocked`, какие сценарии реально проверены, какие процессы остановлены, состояние git («не закоммичено»). Если итог `failed` или `blocked` — предложи дальше `eda-fix`. Если итог `passed` — предложи дальше `eda-review` или `eda-commit`.
135
135
 
136
136
  ## Чего НЕ делать
137
- - Править код, конфиги, миграции, seed-данные или документацию проекта, кроме отчёта в `docs/manual-tests/`.
137
+ - Править код, конфиги, миграции, seed-данные или документацию проекта, кроме отчёта в `docs/artifacts/manual-tests/`.
138
138
  - Писать или обновлять unit/e2e/autotests. Это работа `eda-fix`, `eda-plan-execute` или отдельной задачи.
139
139
  - Устанавливать Playwright, браузеры, npm-пакеты, docker images или системные зависимости без явного подтверждения.
140
140
  - Подменять ручную проверку запуском `npm test` без фактического прохождения API/UI-сценария.
@@ -20,7 +20,7 @@ description: 'Собирает и согласует требования, гр
20
20
  3. **Стек подбирается под задачу.** Для каждого значимого выбора дай 2–3 реалистичных варианта, рекомендацию и причину; не навязывай любимые технологии.
21
21
  4. **Фиксируй драйверы, а не архитектуру.** Запиши свойства, которым будущая архитектура должна соответствовать, но не выбирай слои, модули, направления зависимостей, структуру папок или внутренние data-flow.
22
22
  5. **Не дублируй `eda-prepare-ai`.** Не проектируй архитектуру, правила, строгие режимы инструментов, матрицу проверок, AI-скилы, агентные роли или MCP. После сохранения всегда передай подтверждённый стартовый документ в `eda-prepare-ai` без дополнительного вопроса.
23
- 6. **Не пишешь код и не ставишь пакеты.** Сам меняй только `docs/project-starts/`; не создавай конфиги, CI или проектную AI-документацию.
23
+ 6. **Не пишешь код и не ставишь пакеты.** Сам меняй только `docs/artifacts/project-starts/`; не создавай конфиги, CI или проектную AI-документацию.
24
24
  7. **Проверяй версии выбранного стека.** Для каждого подтверждаемого пакета, runtime, framework, СУБД, CLI или сервиса найди актуальную стабильную версию по официальному источнику. Не пиши `latest` без номера версии, источника и даты проверки.
25
25
  8. **Не усиливай требования догадками.** Отделяй прямой факт пользователя от вывода: например, хостинг в конкретной стране сам по себе не означает обязательную резидентность данных. Не подтверждённое следствие запиши как открытый вопрос, а не как принятое ограничение.
26
26
 
@@ -83,7 +83,7 @@ description: 'Собирает и согласует требования, гр
83
83
 
84
84
  ### 4. Сохранить стартовый документ
85
85
 
86
- Сохрани `docs/project-starts/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
86
+ Сохрани `docs/artifacts/project-starts/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
87
87
 
88
88
  ```markdown
89
89
  ---
@@ -160,4 +160,4 @@ status: ready-for-prepare-ai
160
160
  - Подбирать AI-скилы, агентные роли или MCP.
161
161
  - Создавать `docs/rules.md`, `docs/arch.md`, references, `AGENTS.md` или `CLAUDE.md`.
162
162
  - Писать код, миграции, конфиги или CI, устанавливать зависимости.
163
- - Сохранять стартовый документ куда-либо кроме `docs/project-starts/`.
163
+ - Сохранять стартовый документ куда-либо кроме `docs/artifacts/project-starts/`.
@@ -51,7 +51,7 @@ orhestra:
51
51
  - `steps`: упорядоченный непустой список. Выполняй сверху вниз только элементы с `enabled: true`; отсутствующий `enabled` считай `true`.
52
52
  - `id`: уникальное непустое имя шага для ссылок из `on_failure.then`.
53
53
  - `skill`: имя установленного `eda-*`-скила. Не разрешай `eda-orhestra`, `eda-aim`, `eda-commit`, `eda-send-review`, `eda-worktree` и `eda-merge-worktree`.
54
- - `args`: строка, которую нужно дословно добавить к входу этого скилла. Отсутствующее значение считай пустой строкой. Для дефолтного `eda-plan` передавай `без проверок`, чтобы оба вида ревью выполнил следующий `eda-plan-polish`. Для `eda-polish` здесь же задавай штатные `threshold N` и `limit N`; дефолт — `limit 5`.
54
+ - `args`: строка, которую нужно дословно добавить к входу этого скилла. Отсутствующее значение считай пустой строкой. Для дефолтного `eda-plan` передавай `без проверок`, чтобы оба вида ревью выполнил следующий `eda-plan-polish`. Для `eda-polish` здесь же задавай штатный `limit N`; дефолт — `limit 5`.
55
55
  - `on_failure`: опциональный обработчик `failed` у шага `eda-manual-test`. Если поля нет, сохрани failed-отчёт и остановись без исправлений.
56
56
  - `on_failure.skill` и `on_failure.args`: разрешённый установленный скил исправления и его аргументы; дефолты `eda-fix` и пустая строка. Для `skill` действуют те же запреты, что для `steps[].skill`.
57
57
  - `on_failure.then`: id шагов, которые после исправления нужно повторить в указанном порядке. Пропускай отключённые шаги. Список должен содержать id активного `eda-manual-test`, иначе исправление нельзя подтвердить.
@@ -119,7 +119,7 @@ orhestra:
119
119
  1. Запусти скилл с подготовленным вводом.
120
120
  2. Обработай его вопрос по режиму.
121
121
  3. Прочитай сохранённый артефакт и явный статус. `blocked`, неполный обязательный результат или непройденная обязательная проверка останавливают цепочку.
122
- 4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings` и `score >= threshold`; отдельного polish-файла нет.
122
+ 4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean` и без находок; отдельного polish-файла нет.
123
123
  5. Для успешного шага сохрани все пути и передай их следующему.
124
124
 
125
125
  Если `eda-manual-test` вернул `failed`: