@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
@@ -1,189 +1,142 @@
1
1
  ---
2
2
  name: eda-plan-review
3
- description: 'Проводит специализированное read-only ревью готового плана и сохраняет находки с оценкой готовности.'
3
+ description: 'Проверяет готовый план по фиксированному чек-листу и сохраняет отчёт с оценкой готовности.'
4
4
  ---
5
5
 
6
6
  # Скил: Ревью плана (eda-plan-review)
7
7
 
8
- Работай как оркестратор установленных `eda-plan-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их prompts в task-сообщения. Выбери план и проверки, запусти агентов, проверь структурированные ответы, дедуплицируй подтверждённые находки, выставь экспертный 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
- - `находки` и `предыдущие_находки` — массивы;
89
- - у каждой находки есть fingerprint, severity, plan_location, problem, evidence, impact, fix, acceptance;
90
- - `blocked` содержит question; `not_applicable` не содержит находок.
59
+ | Форма | Пример | Как должно быть |
60
+ |---|---|---|
61
+ | Прямая альтернатива | «Redis или Memcached», «можно так или так» | «Кэш — Redis 7.4» |
62
+ | Делегирование решения | «выбрать подходящий драйвер», «на усмотрение исполнителя», «определить в процессе» | назван конкретный драйвер |
63
+ | Мягкая модальность | «предпочтительно», «желательно», «по возможности» | либо требование, либо пункта нет |
64
+ | Число без числа | «разумный таймаут», «оптимальный размер батча», «достаточное количество попыток» | «таймаут 30 с», «батч 100» |
65
+ | Отложенное решение | «уточнить позже», «решить при реализации», «TBD» | решено до сохранения плана |
66
+ | Обобщение вместо требования | «обработать ошибки корректно», «добавить нужные индексы», «настроить логирование» | что происходит при ошибке; какие индексы; какие поля в логах |
91
67
 
92
- Невалидного или упавшего агента один раз повтори на той же модели с указанием только нарушения контракта. Повторный сбой любой выбранной проверки блокирует всё ревью; итоговый файл не сохраняй.
68
+ Критерий: если по формулировке два исполнителя сделают существенно разные вещи — `fail`.
93
69
 
94
- ## Агрегировать находки
70
+ Пункт не касается: условных веток («при ошибке — повтор» это описание ветки, а не модальность) и умолчаний, заданных `rules.md` или карточкой — их повторять в плане не нужно.
95
71
 
96
- 1. Подтверди evidence точечным чтением указанных файлов. Не добавляй самостоятельные domain-находки.
97
- 2. Прими находку только когда план обязательно нужно изменить: есть точное место, доказательство, практическая ошибка или существенная неоднозначность, минимальная правка и проверяемая приёмка. Если замечание можно без последствий не применять, это не находка.
98
- 3. Отклони недоказанное, вкусовое, уже закрытое, выходящее за scope или противоречащее подтверждённому решению. Также отклоняй «лучше подробнее», дополнительные пояснения, обоснования и стилистические улучшения, если без них план уже однозначно исполним.
99
- 4. Недостаток конкретики подтверждён только когда исполнителю придётся заново исследовать область, принять незафиксированное существенное решение или можно получить две существенно разные реализации. Вода или повтор подтверждены, когда точный фрагмент не меняет действие, контракт, зависимость, проверку или решение; исправление для них должно быть удалением либо короткой заменой.
100
- 5. Объедини находки с одной первопричиной и одной правкой, сохранив все checks и evidence.
101
- 6. Для совпадающего fingerprint сохрани прежний ID. Новой находке дай следующий свободный `PR-NNN`; номер не переиспользуй.
102
- 7. В итог включай только открытые находки и состояния прошлых ID. Предложения, которые не требуют обязательной правки плана, сохраняй только в `Отклонённые предложения` и не учитывай в score.
72
+ ## Правила проверки
103
73
 
104
- ## Выставить score и gate
74
+ 1. Не правь план, код и документацию. Не запускай тесты, линтеры, сборку, миграции и внешние запросы.
75
+ 2. Проверяй только пункты списка. Замечание, которое не ложится ни в один пункт, в отчёт не идёт: список — это и есть определение готовности.
76
+ 3. Не оценивай качество решений: выбор библиотеки, схему таблиц, архитектурный подход. Их подтверждает пользователь, а не ревью.
77
+ 4. Каждый `fail` называет конкретное место в плане и минимальную правку. Правка не должна требовать нового текста больше абзаца; если требует — пункт всё равно `fail`, но в исправлении напиши, что его нужно решить сокращением, а не дописыванием.
78
+ 5. Не предлагай расширять текст «для полноты», добавлять пояснения, обоснования и примеры.
79
+ 6. Для пункта, закрытого в предыдущем review, ставь `fail` снова только с новым доказательством регресса.
105
80
 
106
- Score выставляет главный агент экспертно после обработки всех агентов. Не усредняй оценки, не используй формулу вычетов и не проси агентов ставить score.
81
+ ## Оценка
107
82
 
108
- - `100`: открытых находок нет, план конкретен и исполним.
109
- - `95–99`: остаются только локальные, но обязательные находки low.
110
- - `80–94`: есть находка medium или несколько находок low.
111
- - `60–79`: есть находка high.
112
- - ниже `60`: есть critical или требуется серьёзное перепланирование.
113
- - при отсутствии открытых находок score равен `100`.
114
- - если состояния open/resolved/regressed не изменились относительно предыдущего review, score не меняй.
115
- - каждое изменение score объясни закрытыми, новыми или регрессировавшими ID.
83
+ ```
84
+ всего = число пунктов со статусом pass или fail
85
+ закрыто = число пунктов со статусом pass
86
+ score = round(100 * закрыто / всего)
87
+ status = ready, если score >= threshold, иначе changes-required
88
+ ```
116
89
 
117
- Статус `ready` ставь только когда нет открытых находок и `$SCORE >= $THRESHOLD`. Любая открытая находка даёт `changes-required`, независимо от score. Score ниже threshold без открытых находок недопустим: не снижай оценку за необязательные пожелания и не выдумывай находку только ради числа.
90
+ Пункты `n/a` в знаменатель не входят. Score не выставляй экспертно и не корректируй вручную.
118
91
 
119
- ## Сохранить review
92
+ ## Сохранить отчёт
120
93
 
121
- После успешной обработки всех выбранных агентов создай `docs/plan-reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
94
+ Создай `docs/artifacts/plan-reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
122
95
 
123
96
  ```markdown
124
97
  ---
125
- plan: <docs/plans/...>
98
+ plan: <docs/artifacts/plans/...>
126
99
  plan_sha256: <sha256>
127
100
  previous_review: <path | none>
128
- previous_fix: <path | none>
129
101
  score: <0..100>
130
102
  threshold: <1..100>
131
103
  status: <ready | changes-required>
132
104
  date: <YYYY-MM-DD HH:MM>
133
- checks:
134
- - name: <check>
135
- model: <model>
136
- status: <completed | skipped>
137
- reason: <применимость или причина пропуска>
138
105
  ---
139
106
 
140
107
  # Ревью плана: <название>
141
108
 
142
- ## Оценка
143
- **<score>/100.** <экспертное объяснение и изменение относительно предыдущего score>
144
-
145
- ## Покрытие
146
- - **Completed:** <checks и модели>
147
- - **Skipped:** <checks и причины>
148
- - **Warnings:** <warnings или «нет»>
149
-
150
- ## Состояние предыдущих находок
151
- | ID | Статус | Доказательство |
109
+ ## Чек-лист
110
+ | № | Статус | Доказательство |
152
111
  |---|---|---|
153
-
154
- ## Находки
155
-
156
- ### PR-001. <заголовок>
157
- - **Checks:** <роли>
158
- - **Severity:** <critical | high | medium | low>
159
- - **Fingerprint:** `<fingerprint>`
160
- - **Место в плане:** <раздел или задача>
161
- - **Проблема:** <что не так>
162
- - **Доказательства:** <evidence>
163
- - **Риск:** <impact>
164
- - **Исправление:** <fix>
165
- - **Приёмка:** <acceptance>
166
-
167
- ## Отклонённые предложения
168
- - `<fingerprint>` — <причина или «нет»>
169
-
170
- ## Gate
171
- - **Открытые находки:** <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, открытые ID, 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 без изменения находок или снижать его за необязательные пожелания.
188
- - Принимать косметическое расширение текста, дополнительное объяснение или вкусовую формулировку как находку.
189
- - Сохранять итог после повторного сбоя выбранного агента.
138
+ - Запускать тесты, линтеры, сборку, миграции, серверы и внешние запросы.
139
+ - Добавлять находки вне списка пунктов.
140
+ - Оценивать правильность решений вместо исполнимости плана.
141
+ - Выставлять или корректировать score вручную.
142
+ - Принимать за дефект отсутствие пояснений, обоснований и примеров.
@@ -1,88 +1,80 @@
1
1
  ---
2
2
  name: eda-plan-review-fix
3
- description: 'Исправляет готовый план по всем находкам сохранённого plan-review.'
3
+ description: 'Закрывает проваленные пункты чек-листа в плане по сохранённому ревью.'
4
4
  ---
5
5
 
6
6
  # Скил: Исправитель плана по ревью (eda-plan-review-fix)
7
7
 
8
- Применяй подтверждённые находки из `docs/plan-reviews/` только к связанному плану. Не делай новое ревью: твой контракт — точечно изменить основные разделы плана и сохранить проверяемую цепочку SHA-256.
8
+ Применяй проваленные пункты из отчёта `docs/artifacts/plan-reviews/` только к связанному плану. Новое ревью не делай: твой контракт — закрыть перечисленные пункты и сохранить проверяемую цепочку SHA-256.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
12
- Разбери путь или название review, «последнее ревью», ограничения и явные решения пользователя. Если вход однозначен, продолжай без вопроса. При нескольких равных review или противоречивом target используй `AskUserQuestion`.
12
+ Текст рядом с вызовом — главный вход. Разбери путь или название review, «последнее ревью» и прямые указания пользователя. Если вход однозначен, продолжай без вопроса; при нескольких равных review или противоречивом target — `AskUserQuestion`.
13
13
 
14
- ## Вопросы
15
-
16
- - Claude Code: используй `AskUserQuestion`.
17
- - Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с вариантами и остановись.
18
- - Codex exec/non-interactive: не читай stdin; верни `blocked: нужен ответ пользователя` до любых рискованных правок.
14
+ В Codex exec не читай stdin: верни `blocked: нужен ответ пользователя` до любых правок.
19
15
 
20
16
  ## Правила
21
17
 
22
- 1. Работай только с review из `docs/plan-reviews/` и его `plan` из `docs/plans/`.
23
- 2. Вычисли SHA-256 текущего плана до правок. Он обязан совпадать с `plan_sha256` review. При несовпадении остановись: review устарел, нужен новый `eda-plan-review`.
24
- 3. Перед правкой прочитай план, `docs/rules.md`, `docs/arch.md`, только применимые `sources.business`, `sources.references` и `sources.research`.
25
- 4. Не переоценивай находки и не создавай новые. Каждая находка в итоговом review требует исправления. Если находка недоказана, противоречит контексту или непонятна, остановись и попроси повторное review либо решение пользователя.
26
- 5. Не пропускай находку и не заменяй её пожеланием на будущее. Продуктовый выбор, конфликт с business/rules/architecture или расширение scope передай пользователю одним блокирующим вопросом до любых правок.
27
- 6. Делай минимально достаточный diff. Сначала удаляй лишнее или заменяй существующую формулировку; не добавляй новый абзац, если достаточно одной строки, не повторяй сведения между разделами и не добавляй rationale, примеры или фон, которых не требует находка.
28
- 7. Встраивай правки в `Целевой алгоритм`, `Контракты реализации`, фазы, тесты, логирование и эксплуатацию. Не создавай длинный журнал ревью в теле плана.
29
- 8. Сохраняй ID задач и прямые зависимости; при структурной правке актуализируй все ссылки.
30
- 9. Не правь код, конфиги, зависимости, миграции или другие документы. Не запускай проверки проекта.
31
-
32
- ## Применить находки
33
-
34
- 1. Прочитай раздел `Gate`, все открытые находки и `Отклонённые предложения`.
35
- 2. До редактирования собери все реальные блокирующие вопросы. Не делай частичную правку до ответа.
36
- 3. Примени все открытые находки одним связным минимальным изменением плана. Отклонённые предложения не применяй.
37
- 4. Для каждого ID зафиксируй `applied`; не меняй fingerprint.
38
- 5. Заранее определи `$FIX_FILE`, обнови front matter плана полями `status`, `plan_review` и `plan_review_fix`, затем вычисли окончательный SHA-256 как `$AFTER_SHA256`.
39
- 6. Если находки были, но итоговый SHA-256 не изменился, остановись `blocked: fix не изменил план` и не выдавай успех.
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. Не правь код, конфиги, зависимости, миграции и другие документы. Не запускай проверки проекта.
40
27
 
41
- После успешного изменения:
28
+ ## Работа
42
29
 
43
- - если review был `changes-required`, установи в front matter плана `status: meta-reviewed`;
44
- - установи `plan_review: <REVIEW_FILE>` и `plan_review_fix: <FIX_FILE>` до вычисления after SHA-256 и записи отчёта;
45
- - не ставь `status: reviewed`: это может сделать только подтверждающий review с gate `ready`.
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 не изменил план`.
46
35
 
47
- ## Сохранить fix-отчёт
36
+ ## Отчёт
48
37
 
49
- Создай `docs/plan-review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
38
+ Создай `docs/artifacts/plan-review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
50
39
 
51
40
  ```markdown
52
41
  ---
53
- review: <docs/plan-reviews/...>
54
- plan: <docs/plans/...>
42
+ review: <docs/artifacts/plan-reviews/...>
43
+ plan: <docs/artifacts/plans/...>
55
44
  before_sha256: <sha256 из review>
56
45
  after_sha256: <sha256 после изменения>
46
+ before_bytes: <размер до>
47
+ after_bytes: <размер после>
57
48
  status: done
58
49
  date: <YYYY-MM-DD HH:MM>
59
50
  ---
60
51
 
61
52
  # Исправления плана по ревью: <название>
62
53
 
63
- ## Применённые находки
64
- | ID | Что изменено | Раздел плана | Статус |
65
- |---|---|---|---|
66
- | PR-001 | <конкретная правка> | <раздел> | applied |
54
+ ## Закрытые пункты
55
+ | № | Что изменено | Раздел плана |
56
+ |---|---|---|
57
+ | 6 | «разумный таймаут» заменён на «30 с» | Фаза 3 |
67
58
 
68
59
  ## Цепочка
69
60
  - **Before SHA-256:** `<hash>`
70
61
  - **After SHA-256:** `<hash>`
62
+ - **Объём:** `<до>` → `<после>` (`<+N%>`)
71
63
  - **Нужен подтверждающий review:** да
72
64
  ```
73
65
 
74
- После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком applied ID. Не дублируй раздел при повторном продолжении того же запуска.
66
+ После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком закрытых пунктов.
75
67
 
76
68
  ## Финал
77
69
 
78
- Сообщи пути к plan/review/fix, before/after SHA-256, applied ID, оставшиеся блокеры и что изменения не закоммичены. Следующий шаг — `eda-plan-review` для подтверждения или возврат вызывающему `eda-plan-polish`.
70
+ Сообщи пути к плану, review и fix, before/after SHA-256, изменение объёма, закрытые пункты, оставшиеся блокеры и что изменения не закоммичены. Дальше — подтверждающий `eda-plan-review` или возврат вызывающему `eda-plan-polish`.
79
71
 
80
72
  ## Чего НЕ делать
81
73
 
82
- - Делать новое ревью или выставлять score.
83
- - Исправлять код или файлы вне выбранного плана, review и fix-отчёта.
84
- - Применять stale review к другому SHA-256.
85
- - Молча пропускать находку или самостоятельно разрешать продуктовый конфликт.
86
- - Раздувать план пояснениями и повторами вместо минимального удаления или замены.
87
- - Добавлять журнал итераций в тело плана.
88
- - Коммитить, запускать тесты, lint, build, typecheck, миграции или другой CLI.
74
+ - Делать новое ревью, выставлять score или добавлять свои замечания.
75
+ - Трогать пункты `pass` и `n/a`.
76
+ - Раздувать план пояснениями вместо удаления и замены.
77
+ - Добавлять код, сигнатуры и пересказ карточек.
78
+ - Применять устаревший review к другому SHA-256.
79
+ - Молча разрешать продуктовый конфликт или расширять scope.
80
+ - Править код, файлы вне плана и отчёта, коммитить или запускать проверки проекта.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: eda-polish
3
- description: 'Итеративно ревьюит и исправляет изменения до чистого результата и заданной оценки качества.'
3
+ description: 'Итеративно ревьюит и исправляет изменения до чистого результата.'
4
4
  ---
5
5
 
6
6
  # Скил: Полировка изменений (eda-polish)
@@ -9,18 +9,18 @@ description: 'Итеративно ревьюит и исправляет изм
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
12
- Текст рядом с вызовом скилла в текущем сообщении — главный вход. Разбери target, путь к плану, PR/ветку/diff/файл, желаемый порог, лимит итераций и ограничения. Передавай в каждый `eda-review` разовые overrides проверок и моделей из запроса пользователя.
12
+ Текст рядом с вызовом скилла в текущем сообщении — главный вход. Разбери target, путь к плану, PR/ветку/diff/файл, лимит итераций и ограничения. Передавай в каждый `eda-review` разовые overrides проверок и моделей из запроса пользователя.
13
13
 
14
- Порог по умолчанию — `95`, лимит — `5` итераций. Пользователь может задать `до 90`, `threshold 90`, `цель 90` и `limit N`; допустимый score — 1–100, лимит — положительное целое число.
14
+ Лимит по умолчанию — `5` итераций; пользователь может задать `limit N` положительным целым числом. Порога у цикла нет: устаревшие `threshold N`, `до 90` и `цель 90` не применяй и скажи об этом в финале.
15
15
 
16
16
  ## Правила
17
17
 
18
18
  1. Каждый вызов `eda-review` и `eda-fix-by-review` запускай отдельным изолированным субагентом. Основной агент не делает их работу.
19
19
  2. Если нативные субагенты недоступны, остановись; не заменяй шаги CLI-процессами.
20
- 3. Успех требует одновременно: полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean`, ноль находок и `score >= threshold`.
21
- 4. Любая находка обязательно исправляется независимо от score. Порог не превращает найденную проблему в допустимую.
20
+ 3. Успех требует одновременно: полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean` и ноль находок. Score — только справочное число, условием завершения он не является.
21
+ 4. Любая находка обязательно исправляется. Отклонить находку может только `eda-fix-by-review` и только при её фактической неверности.
22
22
  5. Не коммить и не отправляй ревью.
23
- 6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента, неизменном наборе находок один полный круг или достижении лимита.
23
+ 6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента, несокращении числа открытых находок за полный круг или достижении лимита.
24
24
 
25
25
  ## Вопросы
26
26
 
@@ -28,7 +28,7 @@ description: 'Итеративно ревьюит и исправляет изм
28
28
 
29
29
  ## Цикл
30
30
 
31
- Сформируй `$TARGET_CONTEXT`, `$THRESHOLD`, `$LIMIT` и журнал: номер итерации, review file, result, score, список находок, fix report и причина продолжения.
31
+ Сформируй `$TARGET_CONTEXT`, `$LIMIT` и журнал: номер итерации, review file, result, число открытых находок, список находок, fix report и причина продолжения.
32
32
 
33
33
  Для каждой итерации:
34
34
 
@@ -38,32 +38,34 @@ description: 'Итеративно ревьюит и исправляет изм
38
38
  Используй eda-review для <TARGET_CONTEXT>.
39
39
  План: <PLAN_FILE | none>.
40
40
  Overrides проверок и моделей: <из запроса | none>.
41
+ Ранее отклонённые находки: <предыдущий review file и fix report | none>.
41
42
  Верни путь к файлу, status, result, score, находки и coverage.
42
43
  ```
43
44
 
44
45
  2. Если review остановился из-за обязательного агента, останови цикл. `reviewed-with-warnings` из-за недоступных previous reviews разрешён.
45
- 3. Если `result: clean`, находок нет и `score >= threshold`, заверши успешно. Если `result` противоречит числу находок, считай файл невалидным и остановись.
46
+ 3. Если `result: clean` и находок нет, заверши успешно. Если `result` противоречит числу находок, считай файл невалидным и остановись.
46
47
  4. Если находки есть, запусти отдельного субагента:
47
48
 
48
49
  ```text
49
50
  Используй eda-fix-by-review для <REVIEW_FILE>.
50
- Примени все находки минимальными достаточными правками и выполни проверки.
51
- Верни путь к fix-отчёту и результат проверок.
51
+ Примени находки минимальными достаточными правками и выполни проверки.
52
+ Фактически неверную находку отклони с доказательством в отчёте.
53
+ Верни путь к fix-отчёту, число применённых и отклонённых находок и результат проверок.
52
54
  ```
53
55
 
54
56
  5. После успешных исправлений начни новую итерацию с полным `eda-review`.
55
57
 
56
- Если после полного круга набор находок не изменился, остановись раньше лимита с конкретными оставшимися проблемами. При достижении лимита не скрывай незавершённую сходимость. Состояние `clean` со score ниже threshold является несогласованным с контрактом `eda-review`: при отсутствии находок score должен быть `100`; остановись как на ошибке контракта.
58
+ Если после полного круга число открытых находок не уменьшилось, остановись раньше лимита с конкретными оставшимися проблемами. При достижении лимита не скрывай незавершённую сходимость.
57
59
 
58
60
  ## Финал
59
61
 
60
- Сообщи результат, итоговый result и score, порог, число итераций, последний review file и fix report, оставшиеся находки и coverage warnings. Укажи, что изменения не закоммичены. При успехе предложи `eda-commit`; при неуспехе назови конкретный блокер.
62
+ Сообщи результат, итоговый result и score, число итераций, счётчик находок по кругам («было 12, осталось 3»), последний review file и fix report, оставшиеся находки и coverage warnings. Укажи, что изменения не закоммичены. При успехе предложи `eda-commit`; при неуспехе назови конкретный блокер.
61
63
 
62
64
  ## Чего НЕ делать
63
65
 
64
66
  - Делать ревью или исправления основным агентом.
65
67
  - Запускать отдельный этап проверки готового ревью.
66
- - Считать цикл успешным только по score при наличии находок.
67
- - Выбирать или отклонять принятые находки.
68
- - Переписывать `docs/settings.yaml`, правила или архитектуру ради score.
68
+ - Считать цикл успешным при наличии находок или завершать его по score.
69
+ - Выбирать или отклонять находки основным агентом: отклонение — работа `eda-fix-by-review`.
70
+ - Переписывать `docs/settings.yaml`, правила или архитектуру ради чистого результата.
69
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