@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
@@ -1,188 +1,142 @@
1
1
  ---
2
2
  name: eda-plan-review
3
- description: 'Проводит специализированное read-only ревью готового плана и сохраняет findings с оценкой готовности.'
3
+ description: 'Проверяет готовый план по фиксированному чек-листу и сохраняет отчёт с оценкой готовности.'
4
4
  ---
5
5
 
6
6
  # Скил: Ревью плана (eda-plan-review)
7
7
 
8
- Работай как оркестратор установленных `eda-plan-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их prompts в task-сообщения. Выбери план и проверки, запусти агентов, проверь структурированные ответы, дедуплицируй подтверждённые findings, выставь экспертный score и сохрани один review-артефакт.
8
+ Read-only проверка одного плана по списку ниже. Список конечный и один и тот же для всех планов: поэтому проверка заканчивается, а оценка растёт по мере закрытия пунктов.
9
9
 
10
- ## Вход из сообщения пользователя
11
-
12
- Текст рядом с вызовом — главный вход. Разбери путь или название плана, «последний план», threshold, предыдущие review/fix, отключённые или принудительно включённые проверки и разовые модели.
13
-
14
- Если входа достаточно, продолжай без вопроса. `AskUserQuestion` используй только если план нельзя выбрать однозначно или переданная цепочка review/fix противоречива. Старую историю диалога не считай входом без явной связи с текущим вызовом.
15
-
16
- ## Настройки
17
-
18
- Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version: 3`; при другой версии или невалидном поле используй defaults и добавь warning. Прямое указание пользователя важнее файла.
10
+ Ты проверяешь **исполнимость плана**, а не правильность решений. Вопрос: «можно это исполнить, не переспрашивая?» Правильность решений закрыта на этапе Plan Mode через `decision_mode`, а ошибки в чужих API дешевле ловит статический анализ на коде.
19
11
 
20
- Используй `plan-review.threshold` и `plan-review.agents.<check>.mode/model`. Threshold по умолчанию `95`, допустимы целые значения `1–100`.
12
+ Всю работу делай сам, одним проходом. Не запускай субагентов и не дроби проверку по ролям.
21
13
 
22
- | Проверка | Default mode | Claude | Codex |
23
- |---|---|---|---|
24
- | `requirements` | `always` | `sonnet` | `gpt-5.6-terra` |
25
- | `rules` | `always` | `haiku` | `gpt-5.6-luna` |
26
- | `architecture` | `always` | `opus` | `gpt-5.6-sol` |
27
- | `feasibility` | `always` | `opus` | `gpt-5.6-sol` |
28
- | `execution` | `always` | `sonnet` | `gpt-5.6-terra` |
29
- | `verification` | `always` | `sonnet` | `gpt-5.6-terra` |
30
- | `api` | `auto` | `sonnet` | `gpt-5.6-terra` |
31
- | `database` | `auto` | `opus` | `gpt-5.6-sol` |
32
- | `security` | `auto` | `opus` | `gpt-5.6-sol` |
33
- | `frontend` | `auto` | `sonnet` | `gpt-5.6-terra` |
34
- | `performance` | `auto` | `opus` | `gpt-5.6-sol` |
35
- | `previous` | `auto` | `haiku` | `gpt-5.6-luna` |
36
-
37
- Режимы: `always` — каждый раз, `auto` — только по применимости, `off` — не запускать. Неизвестную модель замени default конкретного агента и добавь warning.
38
-
39
- ## Вопросы
40
-
41
- Когда нужен блокирующий вопрос:
42
-
43
- - Claude Code: используй `AskUserQuestion`.
44
- - Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 2–3 вариантами и остановись.
45
- - Codex exec/non-interactive: не читай stdin; верни `blocked: нужен план или решение пользователя`.
14
+ ## Вход из сообщения пользователя
46
15
 
47
- ## Подготовить контекст
16
+ Текст рядом с вызовом — главный вход. Разбери путь или название плана, «последний план», threshold и предыдущий review.
48
17
 
49
- 1. Выбери `$PLAN_FILE` только в `docs/plans/`: явный путь, однозначное совпадение или самый новый файл при словах «последний план». Без готового плана остановись.
50
- 2. Прочитай план целиком и вычисли SHA-256 его байтов как `$PLAN_SHA256` доступной read-only командой.
51
- 3. Прочитай `AGENTS.md`, `CLAUDE.md`, `docs/rules.md`, `docs/arch.md` и front matter плана настолько, чтобы выбрать проверки, но не делай собственное ревью.
52
- 4. Определи `$BUSINESS_FILES`: используй относящиеся к задаче пути из `sources.business`; для старого плана выбери только применимые карточки через `docs/business.md`. Если подходящих нет — `none`.
53
- 5. Определи `$REFERENCE_FILES`: используй применимые пути из `sources.references`; для старого плана выбери только карточки затронутых компонентов через `docs/references.md`. Не загружай весь каталог.
54
- 6. Определи `$RESEARCH_FILE` из `sources.research` или `none`.
55
- 7. Сформируй краткий `$PLAN_CONTEXT`: исходная задача, scope, критерии готовности, затронутые компоненты, подтверждённые решения и пути к документам. Если задача неизвестна, напиши `task: unknown`.
56
- 8. Определи `$PREVIOUS_REVIEW` и `$PREVIOUS_FIX`. Явные пути имеют приоритет. Иначе используй последний review для того же канонического пути только когда его `plan_sha256` равен текущему SHA-256 или `after_sha256` связанного fix равен текущему SHA-256. Несвязанную историю не подмешивай.
18
+ `$PLAN_FILE` ищи только в `docs/artifacts/plans/`: явный путь, однозначное совпадение или самый новый файл при словах «последний план». Без плана остановись. Если вариантов несколько и выбрать нельзя — `AskUserQuestion`.
57
19
 
58
- ## Выбрать проверки
20
+ ## Настройки
59
21
 
60
- - `requirements`, `rules`, `architecture`, `feasibility`, `execution`, `verification` запускай по `always/auto/off`; их default `always`.
61
- - `api` в auto включай для endpoint, handler, DTO, GraphQL/RPC, events, queues, webhooks и внешних интеграций.
62
- - `database` в auto включай для схем, моделей хранения, SQL, миграций, индексов и транзакций.
63
- - `security` в auto включай для auth, permissions, внешнего ввода, файлов, сети, секретов, криптографии и чувствительных данных.
64
- - `frontend` в auto включай для UI-компонентов, стилей, клиентских маршрутов и пользовательского состояния.
65
- - `performance` в auto включай для запросов, пакетной обработки, кешей, конкурентности, памяти и горячих путей.
66
- - `previous` в auto включай только при непустой связанной цепочке.
67
- - Прямые «без X», «включи X» и разовая модель важнее settings.
22
+ Прочитай `docs/settings.yaml`, если есть. Поддерживается только `version: 3`; иначе defaults и warning.
68
23
 
69
- Запиши skipped-проверки и причины. Forced-проверка запускается даже если auto-критерий не найден; агент может вернуть `not_applicable`.
24
+ `plan-review.threshold` — доля закрытых обязательных пунктов для `ready`, в процентах. Default `100`. Прямое указание в сообщении важнее файла.
70
25
 
71
- ## Запустить агентов
26
+ ## Подготовка
72
27
 
73
- Запусти все выбранные проверки одним параллельным пакетом через установленных нативных агентов:
28
+ 1. Прочитай план целиком и вычисли SHA-256 его байтов как `$PLAN_SHA256`.
29
+ 2. Прочитай `docs/rules.md`, `docs/arch.md` и только применимые карточки из `sources.business` и `sources.references` плана. Для старого плана выбери только применимые карточки через `docs/business.md`, а для старого плана выбери только карточки затронутых компонентов через `docs/references.md`; нерелевантные не загружай.
30
+ 3. Определи `$PREVIOUS_REVIEW`: явный путь либо последний review того же плана, у которого `plan_sha256` совпадает с текущим SHA-256 или с `after_sha256` связанного fix. Несвязанную историю не подмешивай.
74
31
 
75
- - Claude Code: custom agent `eda-plan-review-<check>` через `Agent` tool с настроенной моделью.
76
- - Codex: custom agent `eda-plan-review-<check>` через `spawn_agent` или точный аналог с настроенной моделью.
32
+ ## Чек-лист
77
33
 
78
- Если нативные packaged-агенты недоступны, остановись. Не используй generic-субагентов, `codex exec`, `claude -p` или основной агент как fallback.
34
+ Для каждого пункта верни `pass`, `fail` или `n/a`. Любой ответ подкрепи доказательством: цитатой из плана, путём к файлу или ссылкой на раздел. `n/a` ставь только когда пункт неприменим к этому плану, и пиши причину.
79
35
 
80
- В task-сообщение передавай только рабочую директорию, `PLAN_FILE`, `PLAN_SHA256`, `BUSINESS_FILES`, `REFERENCE_FILES`, `RESEARCH_FILE`, `PREVIOUS_REVIEW`, `PREVIOUS_FIX`, `MODEL` и `$PLAN_CONTEXT`. Полная семантика проверки хранится в prompt агента.
36
+ | № | Пункт |
37
+ |---|---|
38
+ | 1 | Каждая часть запроса покрыта планом |
39
+ | 2 | В плане нет работы вне запроса |
40
+ | 3 | Применимые business-карточки записаны в `sources.business` и отражены в результатах фаз |
41
+ | 4 | План не отклоняется от `docs/rules.md`, `docs/arch.md` и карточек. Где нужно другое поведение, есть отдельный пункт на изменение самого документа до зависимой реализации |
42
+ | 5 | Все существенные решения имеют источник подтверждения: ответ пользователя, research или `autonomous` с причиной |
43
+ | 6 | В плане не осталось решений, которые придётся принимать исполнителю |
44
+ | 7 | Пакеты, библиотеки и сервисы имеют конкретные версии или ссылку на существующий lock |
45
+ | 8 | Есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и БД` и `API и внешние контракты` |
46
+ | 9 | Ни один факт не описан в двух разделах |
47
+ | 10 | В плане нет сигнатур чужих методов, формул, приведений типов и пересказа кодовых примеров карточек |
48
+ | 11 | У каждой фазы есть цель, что сделать, результат и проверка |
49
+ | 12 | Каждая фаза выполнима одним агентом за один проход вместе с её проверками |
50
+ | 13 | Команды в `Проверке` фазы существуют к моменту её выполнения или создаются в этой же фазе |
51
+ | 14 | План доведён до точки, где результат можно запустить и проверить целиком |
52
+ | 15 | Объём в пределах потолка: `normal` — 40 КБ, `short` — 12 КБ и 2 фазы |
53
+ | 16 | В плане нет раздела `Открытые вопросы` и незакрытых развилок |
81
54
 
82
- ## Проверить ответы
55
+ ### Как проверять пункт 6
83
56
 
84
- Для каждого ответа проверь:
57
+ Ищи шесть форм. Для каждой находки приведи цитату.
85
58
 
86
- - один YAML-блок и допустимый `status`;
87
- - `check` совпадает с ролью, `model` — с фактической моделью;
88
- - `findings` и `prior_findings` — массивы;
89
- - у каждого finding есть fingerprint, severity, recommendation, plan_location, problem, evidence, impact, fix, acceptance;
90
- - `blocked` содержит question; `not_applicable` не содержит findings.
59
+ | Форма | Пример | Как должно быть |
60
+ |---|---|---|
61
+ | Прямая альтернатива | «Redis или Memcached», «можно так или так» | «Кэш — Redis 7.4» |
62
+ | Делегирование решения | «выбрать подходящий драйвер», «на усмотрение исполнителя», «определить в процессе» | назван конкретный драйвер |
63
+ | Мягкая модальность | «предпочтительно», «желательно», «по возможности» | либо требование, либо пункта нет |
64
+ | Число без числа | «разумный таймаут», «оптимальный размер батча», «достаточное количество попыток» | «таймаут 30 с», «батч 100» |
65
+ | Отложенное решение | «уточнить позже», «решить при реализации», «TBD» | решено до сохранения плана |
66
+ | Обобщение вместо требования | «обработать ошибки корректно», «добавить нужные индексы», «настроить логирование» | что происходит при ошибке; какие индексы; какие поля в логах |
91
67
 
92
- Невалидного или упавшего агента один раз повтори на той же модели с указанием только нарушения контракта. Повторный сбой любой выбранной проверки блокирует всё ревью; итоговый файл не сохраняй.
68
+ Критерий: если по формулировке два исполнителя сделают существенно разные вещи — `fail`.
93
69
 
94
- ## Агрегировать findings
70
+ Пункт не касается: условных веток («при ошибке — повтор» это описание ветки, а не модальность) и умолчаний, заданных `rules.md` или карточкой — их повторять в плане не нужно.
95
71
 
96
- 1. Подтверди evidence точечным чтением указанных файлов. Не добавляй самостоятельные domain-находки.
97
- 2. Отклони недоказанное, вкусовое, уже закрытое, выходящее за scope или противоречащее подтверждённому решению. Существенные отклонения сохрани с fingerprint и причиной.
98
- 3. Объедини findings с одной первопричиной и одной правкой, сохранив все checks и evidence.
99
- 4. Для совпадающего fingerprint сохрани прежний ID. Новому finding дай следующий свободный `PR-NNN`; номер не переиспользуй.
100
- 5. Статусы `waived` сохраняй без повторного открытия, пока нет нового evidence. Required нельзя сделать waived без явного решения пользователя, меняющего исходное требование.
101
- 6. В итог включай только открытые required/optional findings и состояния прошлых ID.
72
+ ## Правила проверки
102
73
 
103
- ## Выставить score и gate
74
+ 1. Не правь план, код и документацию. Не запускай тесты, линтеры, сборку, миграции и внешние запросы.
75
+ 2. Проверяй только пункты списка. Замечание, которое не ложится ни в один пункт, в отчёт не идёт: список — это и есть определение готовности.
76
+ 3. Не оценивай качество решений: выбор библиотеки, схему таблиц, архитектурный подход. Их подтверждает пользователь, а не ревью.
77
+ 4. Каждый `fail` называет конкретное место в плане и минимальную правку. Правка не должна требовать нового текста больше абзаца; если требует — пункт всё равно `fail`, но в исправлении напиши, что его нужно решить сокращением, а не дописыванием.
78
+ 5. Не предлагай расширять текст «для полноты», добавлять пояснения, обоснования и примеры.
79
+ 6. Для пункта, закрытого в предыдущем review, ставь `fail` снова только с новым доказательством регресса.
104
80
 
105
- Score выставляет главный агент экспертно после обработки всех агентов. Не усредняй оценки, не используй формулу вычетов и не проси агентов ставить score.
81
+ ## Оценка
106
82
 
107
- - `95–100`: обязательных findings нет, план исполним.
108
- - `80–94`: остаётся required medium или несколько существенных optional.
109
- - `60–79`: есть required high.
110
- - ниже `60`: есть critical или требуется серьёзное перепланирование.
111
- - при отсутствии открытых findings score равен `100`.
112
- - если состояния open/resolved/regressed/waived не изменились относительно предыдущего review, score не меняй.
113
- - каждое изменение score объясни закрытыми, новыми или регрессировавшими ID.
83
+ ```
84
+ всего = число пунктов со статусом pass или fail
85
+ закрыто = число пунктов со статусом pass
86
+ score = round(100 * закрыто / всего)
87
+ status = ready, если score >= threshold, иначе changes-required
88
+ ```
114
89
 
115
- Статус `ready` ставь только когда нет открытых required и `$SCORE >= $THRESHOLD`. Иначе статус `changes-required`. Не выдумывай finding только ради достижения threshold.
90
+ Пункты `n/a` в знаменатель не входят. Score не выставляй экспертно и не корректируй вручную.
116
91
 
117
- ## Сохранить review
92
+ ## Сохранить отчёт
118
93
 
119
- После успешной обработки всех выбранных агентов создай `docs/plan-reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
94
+ Создай `docs/artifacts/plan-reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
120
95
 
121
96
  ```markdown
122
97
  ---
123
- plan: <docs/plans/...>
98
+ plan: <docs/artifacts/plans/...>
124
99
  plan_sha256: <sha256>
125
100
  previous_review: <path | none>
126
- previous_fix: <path | none>
127
101
  score: <0..100>
128
102
  threshold: <1..100>
129
103
  status: <ready | changes-required>
130
104
  date: <YYYY-MM-DD HH:MM>
131
- checks:
132
- - name: <check>
133
- model: <model>
134
- status: <completed | skipped>
135
- reason: <применимость или причина пропуска>
136
105
  ---
137
106
 
138
107
  # Ревью плана: <название>
139
108
 
140
- ## Оценка
141
- **<score>/100.** <экспертное объяснение и изменение относительно предыдущего score>
142
-
143
- ## Покрытие
144
- - **Completed:** <checks и модели>
145
- - **Skipped:** <checks и причины>
146
- - **Warnings:** <warnings или «нет»>
147
-
148
- ## Состояние предыдущих findings
149
- | ID | Статус | Доказательство |
109
+ ## Чек-лист
110
+ | № | Статус | Доказательство |
150
111
  |---|---|---|
151
-
152
- ## Findings
153
-
154
- ### PR-001. <заголовок>
155
- - **Checks:** <роли>
156
- - **Severity:** <critical | high | medium | low>
157
- - **Recommendation:** <required | optional>
158
- - **Fingerprint:** `<fingerprint>`
159
- - **Место в плане:** <раздел или задача>
160
- - **Проблема:** <что не так>
161
- - **Доказательства:** <evidence>
162
- - **Риск:** <impact>
163
- - **Исправление:** <fix>
164
- - **Приёмка:** <acceptance>
165
-
166
- ## Отклонённые предложения
167
- - `<fingerprint>` — <причина или «нет»>
168
-
169
- ## Gate
170
- - **Required open:** <ID или «нет»>
171
- - **Optional open:** <ID или «нет»>
172
- - **Результат:** <ready | changes-required>
112
+ | 1 | pass | «Готово, когда приложение поднимается…» — покрывает обе части запроса |
113
+ | 6 | fail | [Фаза 3] «настроить разумный таймаут» — число не задано |
114
+ | 3 | n/a | `docs/business.md` в проекте нет |
115
+
116
+ ## Что исправить
117
+
118
+ ### Пункт 6
119
+ - **Место:** Фаза 3, «Что сделать».
120
+ - **Проблема:** «разумный таймаут» — исполнитель выберет любое значение.
121
+ - **Исправление:** назвать число или сослаться на настройку, где оно задано.
122
+
123
+ ## Итог
124
+ - **Закрыто:** 14 из 16 → score 88
125
+ - **Порог:** 100
126
+ - **Результат:** changes-required
127
+ - **Открытые пункты:** 6, 9
173
128
  ```
174
129
 
175
- Review содержит только проблемы и техническое покрытие, без похвалы и длинного пересказа плана.
176
-
177
130
  ## Финал
178
131
 
179
- Сообщи путь, status, score/threshold, число required/optional, completed/skipped и previous chain. При `changes-required` предложи `eda-plan-review-fix`; при `ready` — `eda-plan-execute` или возврат вызывающему `eda-plan-polish`.
132
+ Сообщи путь к отчёту, score, порог, статус, номера открытых пунктов и что менялось относительно предыдущего review. При `changes-required` предложи `eda-plan-review-fix`; при `ready` — `eda-plan-execute` или возврат вызывающему `eda-plan-polish`.
180
133
 
181
134
  ## Чего НЕ делать
182
135
 
136
+ - Запускать субагентов, другой CLI или делить проверку по ролям.
183
137
  - Править план, код, настройки или документацию проекта.
184
- - Запускать тесты, lint, build, typecheck, серверы, миграции, браузерные проверки или API-запросы.
185
- - Выполнять специализированную роль главным агентом.
186
- - Запускать другой CLI или generic-fallback.
187
- - Усреднять score агентов, менять score без изменения findings или переоткрывать waived без нового evidence.
188
- - Сохранять итог после повторного сбоя выбранного агента.
138
+ - Запускать тесты, линтеры, сборку, миграции, серверы и внешние запросы.
139
+ - Добавлять находки вне списка пунктов.
140
+ - Оценивать правильность решений вместо исполнимости плана.
141
+ - Выставлять или корректировать score вручную.
142
+ - Принимать за дефект отсутствие пояснений, обоснований и примеров.
@@ -1,105 +1,80 @@
1
1
  ---
2
2
  name: eda-plan-review-fix
3
- description: 'Исправляет готовый план по сохранённому plan-review и фиксирует решения по findings.'
3
+ description: 'Закрывает проваленные пункты чек-листа в плане по сохранённому ревью.'
4
4
  ---
5
5
 
6
6
  # Скил: Исправитель плана по ревью (eda-plan-review-fix)
7
7
 
8
- Применяй подтверждённые findings из `docs/plan-reviews/` только к связанному плану. Не делай новое ревью: твой контракт — точечно изменить основные разделы плана и сохранить проверяемую цепочку SHA-256.
8
+ Применяй проваленные пункты из отчёта `docs/artifacts/plan-reviews/` только к связанному плану. Новое ревью не делай: твой контракт — закрыть перечисленные пункты и сохранить проверяемую цепочку SHA-256.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
12
- Разбери путь или название review, «последнее ревью», режим `apply-optional`, ограничения и явные решения по ID. Если вход однозначен, продолжай без вопроса. При нескольких равных review или противоречивом target используй `AskUserQuestion`.
12
+ Текст рядом с вызовом — главный вход. Разбери путь или название review, «последнее ревью» и прямые указания пользователя. Если вход однозначен, продолжай без вопроса; при нескольких равных review или противоречивом target — `AskUserQuestion`.
13
13
 
14
- ## Режимы
15
-
16
- Обычный режим:
17
-
18
- - все required применяй без дополнительного подтверждения;
19
- - optional собери в один-два раунда `AskUserQuestion`;
20
- - waived и отклонённые findings не применяй.
21
-
22
- `apply-optional`:
23
-
24
- - все required применяй;
25
- - optional применяй, если правка конкретна, обратима, остаётся в scope и улучшает исполнимость;
26
- - иначе пометь optional как `waived` с конкретной причиной;
27
- - продуктовое решение, конфликт с business/rules/architecture или расширение scope всё равно требует пользователя.
28
-
29
- ## Вопросы
30
-
31
- - Claude Code: используй `AskUserQuestion`.
32
- - Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с вариантами и остановись.
33
- - Codex exec/non-interactive: не читай stdin; верни `blocked: нужен ответ пользователя` до любых рискованных правок.
14
+ В Codex exec не читай stdin: верни `blocked: нужен ответ пользователя` до любых правок.
34
15
 
35
16
  ## Правила
36
17
 
37
- 1. Работай только с review из `docs/plan-reviews/` и его `plan` из `docs/plans/`.
38
- 2. Вычисли SHA-256 текущего плана до правок. Он обязан совпадать с `plan_sha256` review. При несовпадении остановись: review устарел, нужен новый `eda-plan-review`.
39
- 3. Перед правкой прочитай план, `docs/rules.md`, `docs/arch.md`, только применимые `sources.business`, `sources.references` и `sources.research`.
40
- 4. Не переоценивай findings и не создавай новые. Если finding недоказан, противоречит контексту или непонятен, остановись и попроси повторное review либо решение пользователя.
41
- 5. Required нельзя автономно отклонить или сделать waived.
42
- 6. Встраивай правки в `Целевой алгоритм`, `Контракты реализации`, фазы, тесты, логирование и эксплуатацию. Не создавай длинный журнал ревью в теле плана.
43
- 7. Сохраняй ID задач и прямые зависимости; при структурной правке актуализируй все ссылки.
44
- 8. Не правь код, конфиги, зависимости, миграции или другие документы. Не запускай проверки проекта.
45
-
46
- ## Применить findings
18
+ 1. Работай только с review из `docs/artifacts/plan-reviews/` и его `plan` из `docs/artifacts/plans/`.
19
+ 2. Вычисли SHA-256 плана до правок. Он обязан совпасть с `plan_sha256` review. Не совпал — остановись: review устарел, нужен новый `eda-plan-review`.
20
+ 3. Перед правкой прочитай план, `docs/rules.md`, `docs/arch.md` и только применимые карточки из `sources.business` и `sources.references`; для старого плана выбери только применимые карточки через `docs/business.md` и `docs/references.md`.
21
+ 4. Закрой каждый пункт со статусом `fail`. Пункты `pass` и `n/a` не трогай. Своих замечаний не добавляй: чего нет в отчёте, того нет в работе.
22
+ 5. **План не растёт.** Сначала ищи, что удалить или заменить, и только потом — что дописать. Прирост объёма за один fix не больше 3%; если пункт иначе не закрывается, остановись и верни `blocked: пункт требует роста плана` с объяснением.
23
+ 6. Не повторяй один факт в двух разделах: поведение живёт в `Целевом алгоритме`, контракты — в `Контрактах реализации`, фаза на них ссылается.
24
+ 7. Не добавляй в план сигнатуры чужих методов, формулы, приведения типов, форму классов и пересказ карточек — это те же пункты 9 и 10 чек-листа, только с другой стороны.
25
+ 8. Продуктовый выбор, конфликт с business, rules или architecture и расширение scope не решай сам: собери все такие случаи и задай один блокирующий вопрос до любых правок.
26
+ 9. Не правь код, конфиги, зависимости, миграции и другие документы. Не запускай проверки проекта.
47
27
 
48
- 1. Прочитай раздел `Gate`, все открытые findings и `Отклонённые предложения`.
49
- 2. До редактирования собери все вопросы и optional-решения. Не делай частичную правку до ответа на блокирующий вопрос.
50
- 3. Примени required и выбранные optional одним связным изменением плана.
51
- 4. Для каждого ID зафиксируй `applied` или `waived`; не меняй fingerprint.
52
- 5. Заранее определи `$FIX_FILE`, обнови front matter плана полями `status`, `plan_review` и `plan_review_fix`, затем вычисли окончательный SHA-256 как `$AFTER_SHA256`.
53
- 6. Если обязательные правки были, но итоговый SHA-256 не изменился, остановись `blocked: fix не изменил план` и не выдавай успех.
28
+ ## Работа
54
29
 
55
- После успешного изменения:
30
+ 1. Прочитай `## Чек-лист` и `## Что исправить` в review. Собери список пунктов `fail` с местами.
31
+ 2. Собери реальные блокирующие вопросы. Частичную правку до ответа не делай.
32
+ 3. Закрой все пункты одним связным минимальным изменением плана.
33
+ 4. Обнови front matter плана: `status: meta-reviewed`, `plan_review`, `plan_review_fix`. `status: reviewed` не ставь — это может сделать только подтверждающий review.
34
+ 5. Вычисли SHA-256 после правок как `$AFTER_SHA256`. Если пункты были, а хеш не изменился, остановись: `blocked: fix не изменил план`.
56
35
 
57
- - если review был `changes-required`, установи в front matter плана `status: meta-reviewed`;
58
- - установи `plan_review: <REVIEW_FILE>` и `plan_review_fix: <FIX_FILE>` до вычисления after SHA-256 и записи отчёта;
59
- - не ставь `status: reviewed`: это может сделать только подтверждающий review с gate `ready`.
36
+ ## Отчёт
60
37
 
61
- ## Сохранить fix-отчёт
62
-
63
- Создай `docs/plan-review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
38
+ Создай `docs/artifacts/plan-review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
64
39
 
65
40
  ```markdown
66
41
  ---
67
- review: <docs/plan-reviews/...>
68
- plan: <docs/plans/...>
42
+ review: <docs/artifacts/plan-reviews/...>
43
+ plan: <docs/artifacts/plans/...>
69
44
  before_sha256: <sha256 из review>
70
45
  after_sha256: <sha256 после изменения>
46
+ before_bytes: <размер до>
47
+ after_bytes: <размер после>
71
48
  status: done
72
49
  date: <YYYY-MM-DD HH:MM>
73
50
  ---
74
51
 
75
52
  # Исправления плана по ревью: <название>
76
53
 
77
- ## Применённые findings
78
- | ID | Что изменено | Раздел плана | Статус |
79
- |---|---|---|---|
80
- | PR-001 | <конкретная правка> | <раздел> | applied |
81
-
82
- ## Waived optional
83
- | ID | Причина | Новые доказательства для пересмотра |
54
+ ## Закрытые пункты
55
+ | № | Что изменено | Раздел плана |
84
56
  |---|---|---|
57
+ | 6 | «разумный таймаут» заменён на «30 с» | Фаза 3 |
85
58
 
86
59
  ## Цепочка
87
60
  - **Before SHA-256:** `<hash>`
88
61
  - **After SHA-256:** `<hash>`
62
+ - **Объём:** `<до>` → `<после>` (`<+N%>`)
89
63
  - **Нужен подтверждающий review:** да
90
64
  ```
91
65
 
92
- После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком waived ID. Не дублируй раздел при повторном продолжении того же запуска.
66
+ После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком закрытых пунктов.
93
67
 
94
68
  ## Финал
95
69
 
96
- Сообщи пути к plan/review/fix, before/after SHA-256, applied/waived, оставшиеся блокеры и что изменения не закоммичены. Следующий шаг — `eda-plan-review` для подтверждения или возврат вызывающему `eda-plan-polish`.
70
+ Сообщи пути к плану, review и fix, before/after SHA-256, изменение объёма, закрытые пункты, оставшиеся блокеры и что изменения не закоммичены. Дальше — подтверждающий `eda-plan-review` или возврат вызывающему `eda-plan-polish`.
97
71
 
98
72
  ## Чего НЕ делать
99
73
 
100
- - Делать новое ревью или выставлять score.
101
- - Исправлять код или файлы вне выбранного плана, review и fix-отчёта.
102
- - Применять stale review к другому SHA-256.
103
- - Молча отклонять required или продуктовый конфликт.
104
- - Добавлять журнал итераций в тело плана.
105
- - Коммитить, запускать тесты, lint, build, typecheck, миграции или другой CLI.
74
+ - Делать новое ревью, выставлять score или добавлять свои замечания.
75
+ - Трогать пункты `pass` и `n/a`.
76
+ - Раздувать план пояснениями вместо удаления и замены.
77
+ - Добавлять код, сигнатуры и пересказ карточек.
78
+ - Применять устаревший review к другому SHA-256.
79
+ - Молча разрешать продуктовый конфликт или расширять scope.
80
+ - Править код, файлы вне плана и отчёта, коммитить или запускать проверки проекта.
@@ -1,27 +1,26 @@
1
1
  ---
2
2
  name: eda-polish
3
- description: 'Итеративно ревьюит и исправляет изменения до заданной оценки качества.'
3
+ description: 'Итеративно ревьюит и исправляет изменения до чистого результата.'
4
4
  ---
5
5
 
6
6
  # Скил: Полировка изменений (eda-polish)
7
7
 
8
- Оркестрируй цикл `eda-review` → `eda-fix-by-review apply-optional` → повторное `eda-review`. Основной агент только управляет итерациями, читает сохранённые артефакты и сообщает результат.
9
- В начале каждой итерации запускай полное `eda-review` целевого изменения.
8
+ Оркестрируй цикл `eda-review` → `eda-fix-by-review` → повторное `eda-review`. Основной агент только управляет итерациями, читает сохранённые артефакты и сообщает результат. В начале каждой итерации запускай полное `eda-review` целевого изменения.
10
9
 
11
10
  ## Вход из сообщения пользователя
12
11
 
13
- Текст рядом с вызовом скилла в текущем сообщении — главный вход. Разбери target, путь к плану, PR/ветку/diff/файл, желаемый порог, лимит итераций и ограничения. Передавай в каждый `eda-review` разовые overrides проверок и моделей из запроса пользователя.
12
+ Текст рядом с вызовом скилла в текущем сообщении — главный вход. Разбери target, путь к плану, PR/ветку/diff/файл, лимит итераций и ограничения. Передавай в каждый `eda-review` разовые overrides проверок и моделей из запроса пользователя.
14
13
 
15
- Порог по умолчанию — `95`, лимит — `5` итераций. Пользователь может задать `до 90`, `threshold 90`, `цель 90` и `limit N`; допустимый score — 1–100, лимит — положительное целое число.
14
+ Лимит по умолчанию — `5` итераций; пользователь может задать `limit N` положительным целым числом. Порога у цикла нет: устаревшие `threshold N`, `до 90` и `цель 90` не применяй и скажи об этом в финале.
16
15
 
17
16
  ## Правила
18
17
 
19
- 1. Каждый вызов `eda-review` и `eda-fix-by-review apply-optional` запускай отдельным изолированным субагентом. Основной агент не делает их работу.
18
+ 1. Каждый вызов `eda-review` и `eda-fix-by-review` запускай отдельным изолированным субагентом. Основной агент не делает их работу.
20
19
  2. Если нативные субагенты недоступны, остановись; не заменяй шаги CLI-процессами.
21
- 3. Сравнивай порог только со `score` полного ревью со статусом `reviewed` или `reviewed-with-warnings`.
22
- 4. Все пункты «править обязательно» исправь. Для каждого optional-пункта fix-агент сам решает, применять ли его, и сохраняет причины отклонения, чтобы следующие ревьюеры не повторяли решение без новых аргументов.
20
+ 3. Успех требует одновременно: полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean` и ноль находок. Score — только справочное число, условием завершения он не является.
21
+ 4. Любая находка обязательно исправляется. Отклонить находку может только `eda-fix-by-review` и только при её фактической неверности.
23
22
  5. Не коммить и не отправляй ревью.
24
- 6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента, отсутствии применимых замечаний ниже порога или если score не растёт два круга подряд.
23
+ 6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента, несокращении числа открытых находок за полный круг или достижении лимита.
25
24
 
26
25
  ## Вопросы
27
26
 
@@ -29,53 +28,44 @@ description: 'Итеративно ревьюит и исправляет изм
29
28
 
30
29
  ## Цикл
31
30
 
32
- Сформируй `$TARGET_CONTEXT`, `$THRESHOLD`, `$LIMIT` и внутренний журнал: номер итерации, review file, score, fix report и причина продолжения.
31
+ Сформируй `$TARGET_CONTEXT`, `$LIMIT` и журнал: номер итерации, review file, result, число открытых находок, список находок, fix report и причина продолжения.
33
32
 
34
33
  Для каждой итерации:
35
34
 
36
- 1. Запусти отдельного субагента с задачей:
35
+ 1. Запусти отдельного субагента:
37
36
 
38
37
  ```text
39
38
  Используй eda-review для <TARGET_CONTEXT>.
40
39
  План: <PLAN_FILE | none>.
41
40
  Overrides проверок и моделей: <из запроса | none>.
42
- Верни путь к файлу, status, score и coverage.
41
+ Ранее отклонённые находки: <предыдущий review file и fix report | none>.
42
+ Верни путь к файлу, status, result, score, находки и coverage.
43
43
  ```
44
44
 
45
- 2. Если review остановился из-за обязательного агента, останови весь цикл. `reviewed-with-warnings` из-за недоступных previous reviews разрешён и не блокирует цикл.
46
- 3. Если `score >= threshold`, заверши успешно.
47
- 4. Если score ниже порога, прочитай рекомендации. Если обязательных и optional-пунктов нет, остановись `blocked: нет применимых замечаний для повышения оценки`.
48
- 5. Запусти отдельного субагента:
45
+ 2. Если review остановился из-за обязательного агента, останови цикл. `reviewed-with-warnings` из-за недоступных previous reviews разрешён.
46
+ 3. Если `result: clean` и находок нет, заверши успешно. Если `result` противоречит числу находок, считай файл невалидным и остановись.
47
+ 4. Если находки есть, запусти отдельного субагента:
49
48
 
50
49
  ```text
51
- Используй eda-fix-by-review apply-optional для <REVIEW_FILE>.
52
- Примени все обязательные замечания. По каждому optional сам реши, применять ли его; отклонённые решения сохрани с причиной.
53
- Верни путь к fix-отчёту и результат проверок.
50
+ Используй eda-fix-by-review для <REVIEW_FILE>.
51
+ Примени находки минимальными достаточными правками и выполни проверки.
52
+ Фактически неверную находку отклони с доказательством в отчёте.
53
+ Верни путь к fix-отчёту, число применённых и отклонённых находок и результат проверок.
54
54
  ```
55
55
 
56
- 6. При успешных исправлениях начни следующую итерацию с новым полным `eda-review`.
56
+ 5. После успешных исправлений начни новую итерацию с полным `eda-review`.
57
57
 
58
- Если score не растёт два проверенных круга подряд, остановись раньше лимита. Если достигнут лимит, не скрывай незавершённую сходимость.
58
+ Если после полного круга число открытых находок не уменьшилось, остановись раньше лимита с конкретными оставшимися проблемами. При достижении лимита не скрывай незавершённую сходимость.
59
59
 
60
60
  ## Финал
61
61
 
62
- Сообщи:
63
-
64
- - результат: достигнут порог, достигнут лимит, blocked, нет применимых замечаний или score не растёт;
65
- - итоговую оценку и порог;
66
- - количество итераций;
67
- - последний review file и fix report;
68
- - предупреждения coverage, если они были;
69
- - что изменения не закоммичены.
70
-
71
- При успехе предложи `eda-commit`. При неуспехе назови конкретный блокер или оставшиеся замечания.
62
+ Сообщи результат, итоговый result и score, число итераций, счётчик находок по кругам («было 12, осталось 3»), последний review file и fix report, оставшиеся находки и coverage warnings. Укажи, что изменения не закоммичены. При успехе предложи `eda-commit`; при неуспехе назови конкретный блокер.
72
63
 
73
64
  ## Чего НЕ делать
74
65
 
75
66
  - Делать ревью или исправления основным агентом.
76
67
  - Запускать отдельный этап проверки готового ревью.
77
- - Сравнивать порог с неполным или заблокированным ревью.
78
- - Механически применять все optional-пункты.
79
- - Терять причины отклонённых optional-решений.
80
- - Переписывать `docs/settings.yaml`, правила или архитектуру ради score.
68
+ - Считать цикл успешным при наличии находок или завершать его по score.
69
+ - Выбирать или отклонять находки основным агентом: отклонение — работа `eda-fix-by-review`.
70
+ - Переписывать `docs/settings.yaml`, правила или архитектуру ради чистого результата.
81
71
  - Коммитить, пушить или отправлять ревью.
@@ -38,7 +38,7 @@ description: 'Готовит проект к работе с AI: проекти
38
38
 
39
39
  Определи языки, фреймворки, точки входа, зависимости, тесты, хранилища данных, внешние интеграции, инфраструктуру, CI, инструменты качества, структуру директорий и сложившиеся соглашения. Для команд и соглашений используй конфиги и git-историю, а не догадки.
40
40
 
41
- Если вызов пришёл из `eda-new-project`, прочитай переданный `docs/project-starts/*.md`. Подтверждённые требования, основной стек и архитектурные драйверы считай источником целевого состояния; открытые вопросы и отклонённые варианты фактами не считай. Не требуй от стартового документа готовой архитектуры, правил, матрицы проверок или AI/MCP-рекомендаций — их обязан спроектировать этот скил.
41
+ Если вызов пришёл из `eda-new-project`, прочитай переданный `docs/artifacts/project-starts/*.md`. Подтверждённые требования, основной стек и архитектурные драйверы считай источником целевого состояния; открытые вопросы и отклонённые варианты фактами не считай. Не требуй от стартового документа готовой архитектуры, правил, матрицы проверок или AI/MCP-рекомендаций — их обязан спроектировать этот скил.
42
42
 
43
43
  ### 2. Прочитать существующую документацию
44
44