@gian-tiaga/eda 2.1.0 → 3.1.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 (63) hide show
  1. package/MIGRATION.md +69 -69
  2. package/README.md +37 -78
  3. package/agents/eda-aim-planner/prompt.md +1 -1
  4. package/agents/eda-review-api/prompt.md +2 -1
  5. package/agents/eda-review-architecture/prompt.md +3 -2
  6. package/agents/eda-review-business/prompt.md +2 -1
  7. package/agents/eda-review-code-quality/prompt.md +4 -3
  8. package/agents/eda-review-correctness/prompt.md +2 -1
  9. package/agents/eda-review-database/prompt.md +2 -1
  10. package/agents/eda-review-documentation/prompt.md +2 -1
  11. package/agents/eda-review-frontend/prompt.md +2 -1
  12. package/agents/eda-review-performance/prompt.md +4 -3
  13. package/agents/eda-review-plan-alignment/prompt.md +2 -1
  14. package/agents/eda-review-previous-reviews/prompt.md +2 -1
  15. package/agents/eda-review-references/prompt.md +2 -1
  16. package/agents/eda-review-rules/prompt.md +2 -1
  17. package/agents/eda-review-security/prompt.md +2 -1
  18. package/agents/eda-review-tests/prompt.md +2 -1
  19. package/bin/cli.js +2 -2
  20. package/lib/install.js +174 -166
  21. package/package.json +1 -1
  22. package/skills/eda-aim/SKILL.md +2 -2
  23. package/skills/eda-discover-automations/SKILL.md +9 -9
  24. package/skills/eda-explore/SKILL.md +3 -3
  25. package/skills/eda-fix/SKILL.md +6 -6
  26. package/skills/eda-fix-by-review/SKILL.md +20 -14
  27. package/skills/eda-manual-test/SKILL.md +5 -5
  28. package/skills/eda-new-project/SKILL.md +3 -3
  29. package/skills/eda-orhestra/SKILL.md +2 -2
  30. package/skills/eda-plan/SKILL.md +92 -106
  31. package/skills/eda-plan-execute/SKILL.md +43 -68
  32. package/skills/eda-plan-polish/SKILL.md +49 -40
  33. package/skills/eda-plan-review/SKILL.md +89 -136
  34. package/skills/eda-plan-review-fix/SKILL.md +39 -47
  35. package/skills/eda-polish/SKILL.md +17 -15
  36. package/skills/eda-prepare-ai/SKILL.md +1 -1
  37. package/skills/eda-review/SKILL.md +18 -9
  38. package/skills/eda-roadmap/SKILL.md +5 -5
  39. package/skills/eda-send-review/SKILL.md +5 -5
  40. package/agents/eda-plan-review-api/agent.json +0 -9
  41. package/agents/eda-plan-review-api/prompt.md +0 -35
  42. package/agents/eda-plan-review-architecture/agent.json +0 -9
  43. package/agents/eda-plan-review-architecture/prompt.md +0 -35
  44. package/agents/eda-plan-review-database/agent.json +0 -9
  45. package/agents/eda-plan-review-database/prompt.md +0 -35
  46. package/agents/eda-plan-review-execution/agent.json +0 -9
  47. package/agents/eda-plan-review-execution/prompt.md +0 -35
  48. package/agents/eda-plan-review-feasibility/agent.json +0 -9
  49. package/agents/eda-plan-review-feasibility/prompt.md +0 -35
  50. package/agents/eda-plan-review-frontend/agent.json +0 -9
  51. package/agents/eda-plan-review-frontend/prompt.md +0 -35
  52. package/agents/eda-plan-review-performance/agent.json +0 -9
  53. package/agents/eda-plan-review-performance/prompt.md +0 -35
  54. package/agents/eda-plan-review-previous/agent.json +0 -9
  55. package/agents/eda-plan-review-previous/prompt.md +0 -28
  56. package/agents/eda-plan-review-requirements/agent.json +0 -9
  57. package/agents/eda-plan-review-requirements/prompt.md +0 -35
  58. package/agents/eda-plan-review-rules/agent.json +0 -9
  59. package/agents/eda-plan-review-rules/prompt.md +0 -35
  60. package/agents/eda-plan-review-security/agent.json +0 -9
  61. package/agents/eda-plan-review-security/prompt.md +0 -35
  62. package/agents/eda-plan-review-verification/agent.json +0 -9
  63. package/agents/eda-plan-review-verification/prompt.md +0 -35
@@ -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,7 +5,7 @@ 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
 
@@ -17,11 +17,12 @@ description: 'Исправляет код по готовому ревью из
17
17
 
18
18
  1. Перед правкой прочитай `docs/rules.md` и `docs/arch.md`. Определи замечания и затронутое поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов.
19
19
  2. Применяй все выбранные находки. Не переоценивай их полезность и не превращай исправление в более широкий рефакторинг.
20
- 3. Задавай вопрос только если находка неоднозначна, противоречит коду или обязательной документации, требует продуктового решения, расширяет scope либо ведёт к рискованному действию. В остальных случаях работай автономно.
21
- 4. Не делай новое ревью и не коммить. Только исправляй замечания и пиши отчёт.
22
- 5. Если находка касается поведения, добавь или обнови точечный тест в той же правке и прогони его.
23
- 6. В конце обязательно прогони полный набор тестов и линтеров один раз.
24
- 7. Пиши просто и конкретно; в отчёте используй таблицу.
20
+ 3. Отклонить находку можно, только если она фактически неверна: код уже делает требуемое, доказательство не воспроизводится или правка нарушает применимое правило либо архитектуру. Отклонение с причиной запиши в отчёт. Трудоёмкость, вкус и несогласие с формулировкой основанием не являются.
21
+ 4. Задавай вопрос только если находка неоднозначна, противоречит коду или обязательной документации, требует продуктового решения, расширяет scope либо ведёт к рискованному действию. В остальных случаях работай автономно.
22
+ 5. Не делай новое ревью и не коммить. Только исправляй замечания и пиши отчёт.
23
+ 6. Если находка касается поведения, добавь или обнови точечный тест в той же правке и прогони его.
24
+ 7. В конце обязательно прогони полный набор тестов и линтеров один раз.
25
+ 8. Пиши просто и конкретно; в отчёте используй таблицу.
25
26
 
26
27
  ## Интерактивные вопросы
27
28
 
@@ -39,7 +40,7 @@ description: 'Исправляет код по готовому ревью из
39
40
 
40
41
  Разбери путь к ревью, название, «последнее ревью», номера находок или вставленный текст. Для текста используй `$REVIEW_SOURCE=review_text`, не выбирай файл и сохраняй отчёт с `review: text`.
41
42
 
42
- Если найден ровно один файл, используй `$REVIEW_SOURCE=review_file`. Если найдено несколько равно подходящих файлов или входа нет, задай один вопрос со списком. Если `docs/reviews/` пуста и текст замечаний не дан, остановись с `blocked: нужно ревью`.
43
+ Если найден ровно один файл, используй `$REVIEW_SOURCE=review_file`. Если найдено несколько равно подходящих файлов или входа нет, задай один вопрос со списком. Если `docs/artifacts/reviews/` пуста и текст замечаний не дан, остановись с `blocked: нужно ревью`.
43
44
 
44
45
  ### 2. Прочитать контекст
45
46
 
@@ -49,7 +50,7 @@ description: 'Исправляет код по готовому ревью из
49
50
 
50
51
  ### 3. Применить находки
51
52
 
52
- Исправь все находки нового формата либо выбранные пользователем номера. Для старого формата возьми только пункты из `Править обязательно`. Делай минимальную достаточную правку и точечную проверку после каждого логического изменения.
53
+ Исправь все находки нового формата либо выбранные пользователем номера. Для старого формата возьми только пункты из `Править обязательно`. Делай минимальную достаточную правку и точечную проверку после каждого логического изменения. Находку, которая оказалась фактически неверной, не исправляй: запиши её в «Отклонённые находки» с доказательством.
53
54
 
54
55
  Остановись с вопросом при неоднозначности, конфликте с правилами, архитектурой или business-карточкой, необходимости расширить scope либо выполнить рискованное действие. При конфликте с business-карточкой предложи изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
55
56
 
@@ -59,18 +60,18 @@ description: 'Исправляет код по готовому ревью из
59
60
 
60
61
  ### 5. Сохранить отчёт и связать с ревью
61
62
 
62
- Сохрани `docs/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Если `$REVIEW_SOURCE=review_file`, допиши в конец `$REVIEW_FILE`:
63
+ Сохрани `docs/artifacts/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Если `$REVIEW_SOURCE=review_file`, допиши в конец `$REVIEW_FILE`:
63
64
 
64
65
  ```markdown
65
66
  ## Применённые фиксы
66
- Отчёт: `docs/review-fixes/{file}.md`
67
+ Отчёт: `docs/artifacts/review-fixes/{file}.md`
67
68
  ```
68
69
 
69
70
  Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью: исходного файла нет.
70
71
 
71
72
  ```markdown
72
73
  ---
73
- review: <docs/reviews/... | text>
74
+ review: <docs/artifacts/reviews/... | text>
74
75
  date: <YYYY-MM-DD HH:MM>
75
76
  status: done
76
77
  ---
@@ -82,6 +83,11 @@ status: done
82
83
  |---|-----------|-------|-------|--------|
83
84
  | 1 | <кратко из ревью> | `path/a.py` | `path/test_a.py` (2 ✓) | ✓ применено |
84
85
 
86
+ ## Отклонённые находки
87
+ | # | Замечание | Почему отклонена |
88
+ |---|-----------|------------------|
89
+ | 2 | <кратко из ревью> | <чем подтверждается, что находка неверна> |
90
+
85
91
  ## Финальная проверка
86
92
  - **Тесты:** `<команда>` — ✓ / ✗
87
93
  - **Линтер:** `<команда>` — ✓ / ✗
@@ -90,14 +96,14 @@ status: done
90
96
 
91
97
  ### 6. Финал
92
98
 
93
- Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к fix-отчёту, сколько находок применено, результат финальной проверки и состояние git «не закоммичено». Предложи `eda-commit`.
99
+ Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к fix-отчёту, сколько находок применено и сколько отклонено, результат финальной проверки и состояние git «не закоммичено». Предложи `eda-commit`.
94
100
 
95
101
  ## Чего НЕ делать
96
102
 
97
103
  - Делать само ревью — это `eda-review`.
98
104
  - Коммитить или пушить — это `eda-commit`.
99
- - Выбирать, какие находки достойны исправления: принятая находка уже обязательна.
105
+ - Отклонять находку по вкусу, из-за трудоёмкости или несогласия с формулировкой: основание — только фактическая ошибка находки, и всегда с причиной в отчёте.
100
106
  - Расширять scope ради улучшений, которых нет в находках.
101
107
  - Гонять полный сьют после каждого пункта или пропускать финальную проверку.
102
- - Сохранять отчёт вне `docs/review-fixes/`.
108
+ - Сохранять отчёт вне `docs/artifacts/review-fixes/`.
103
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`, `result: clean`, без находок и с `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`: