@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.
- package/MIGRATION.md +69 -69
- package/README.md +37 -78
- package/agents/eda-aim-planner/prompt.md +1 -1
- package/agents/eda-review-api/prompt.md +2 -1
- package/agents/eda-review-architecture/prompt.md +3 -2
- package/agents/eda-review-business/prompt.md +2 -1
- package/agents/eda-review-code-quality/prompt.md +4 -3
- package/agents/eda-review-correctness/prompt.md +2 -1
- package/agents/eda-review-database/prompt.md +2 -1
- package/agents/eda-review-documentation/prompt.md +2 -1
- package/agents/eda-review-frontend/prompt.md +2 -1
- package/agents/eda-review-performance/prompt.md +4 -3
- package/agents/eda-review-plan-alignment/prompt.md +2 -1
- package/agents/eda-review-previous-reviews/prompt.md +2 -1
- package/agents/eda-review-references/prompt.md +2 -1
- package/agents/eda-review-rules/prompt.md +2 -1
- package/agents/eda-review-security/prompt.md +2 -1
- package/agents/eda-review-tests/prompt.md +2 -1
- package/bin/cli.js +2 -2
- package/lib/install.js +174 -166
- package/package.json +1 -1
- package/skills/eda-aim/SKILL.md +2 -2
- package/skills/eda-discover-automations/SKILL.md +9 -9
- package/skills/eda-explore/SKILL.md +3 -3
- package/skills/eda-fix/SKILL.md +6 -6
- package/skills/eda-fix-by-review/SKILL.md +20 -14
- package/skills/eda-manual-test/SKILL.md +5 -5
- package/skills/eda-new-project/SKILL.md +3 -3
- package/skills/eda-orhestra/SKILL.md +2 -2
- package/skills/eda-plan/SKILL.md +92 -106
- package/skills/eda-plan-execute/SKILL.md +43 -68
- package/skills/eda-plan-polish/SKILL.md +49 -40
- package/skills/eda-plan-review/SKILL.md +89 -136
- package/skills/eda-plan-review-fix/SKILL.md +39 -47
- package/skills/eda-polish/SKILL.md +17 -15
- package/skills/eda-prepare-ai/SKILL.md +1 -1
- package/skills/eda-review/SKILL.md +18 -9
- package/skills/eda-roadmap/SKILL.md +5 -5
- package/skills/eda-send-review/SKILL.md +5 -5
- package/agents/eda-plan-review-api/agent.json +0 -9
- package/agents/eda-plan-review-api/prompt.md +0 -35
- package/agents/eda-plan-review-architecture/agent.json +0 -9
- package/agents/eda-plan-review-architecture/prompt.md +0 -35
- package/agents/eda-plan-review-database/agent.json +0 -9
- package/agents/eda-plan-review-database/prompt.md +0 -35
- package/agents/eda-plan-review-execution/agent.json +0 -9
- package/agents/eda-plan-review-execution/prompt.md +0 -35
- package/agents/eda-plan-review-feasibility/agent.json +0 -9
- package/agents/eda-plan-review-feasibility/prompt.md +0 -35
- package/agents/eda-plan-review-frontend/agent.json +0 -9
- package/agents/eda-plan-review-frontend/prompt.md +0 -35
- package/agents/eda-plan-review-performance/agent.json +0 -9
- package/agents/eda-plan-review-performance/prompt.md +0 -35
- package/agents/eda-plan-review-previous/agent.json +0 -9
- package/agents/eda-plan-review-previous/prompt.md +0 -28
- package/agents/eda-plan-review-requirements/agent.json +0 -9
- package/agents/eda-plan-review-requirements/prompt.md +0 -35
- package/agents/eda-plan-review-rules/agent.json +0 -9
- package/agents/eda-plan-review-rules/prompt.md +0 -35
- package/agents/eda-plan-review-security/agent.json +0 -9
- package/agents/eda-plan-review-security/prompt.md +0 -35
- package/agents/eda-plan-review-verification/agent.json +0 -9
- package/agents/eda-plan-review-verification/prompt.md +0 -35
|
@@ -1,189 +1,142 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan-review
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Проверяет готовый план по фиксированному чек-листу и сохраняет отчёт с оценкой готовности.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Ревью плана (eda-plan-review)
|
|
7
7
|
|
|
8
|
-
|
|
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
|
-
|
|
12
|
+
Всю работу делай сам, одним проходом. Не запускай субагентов и не дроби проверку по ролям.
|
|
21
13
|
|
|
22
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
76
|
-
- Codex: custom agent `eda-plan-review-<check>` через `spawn_agent` или точный аналог с настроенной моделью.
|
|
32
|
+
## Чек-лист
|
|
77
33
|
|
|
78
|
-
|
|
34
|
+
Для каждого пункта верни `pass`, `fail` или `n/a`. Любой ответ подкрепи доказательством: цитатой из плана, путём к файлу или ссылкой на раздел. `n/a` ставь только когда пункт неприменим к этому плану, и пиши причину.
|
|
79
35
|
|
|
80
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
74
|
+
1. Не правь план, код и документацию. Не запускай тесты, линтеры, сборку, миграции и внешние запросы.
|
|
75
|
+
2. Проверяй только пункты списка. Замечание, которое не ложится ни в один пункт, в отчёт не идёт: список — это и есть определение готовности.
|
|
76
|
+
3. Не оценивай качество решений: выбор библиотеки, схему таблиц, архитектурный подход. Их подтверждает пользователь, а не ревью.
|
|
77
|
+
4. Каждый `fail` называет конкретное место в плане и минимальную правку. Правка не должна требовать нового текста больше абзаца; если требует — пункт всё равно `fail`, но в исправлении напиши, что его нужно решить сокращением, а не дописыванием.
|
|
78
|
+
5. Не предлагай расширять текст «для полноты», добавлять пояснения, обоснования и примеры.
|
|
79
|
+
6. Для пункта, закрытого в предыдущем review, ставь `fail` снова только с новым доказательством регресса.
|
|
105
80
|
|
|
106
|
-
|
|
81
|
+
## Оценка
|
|
107
82
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
-
|
|
90
|
+
Пункты `n/a` в знаменатель не входят. Score не выставляй экспертно и не корректируй вручную.
|
|
118
91
|
|
|
119
|
-
## Сохранить
|
|
92
|
+
## Сохранить отчёт
|
|
120
93
|
|
|
121
|
-
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
## Покрытие
|
|
146
|
-
- **Completed:** <checks и модели>
|
|
147
|
-
- **Skipped:** <checks и причины>
|
|
148
|
-
- **Warnings:** <warnings или «нет»>
|
|
149
|
-
|
|
150
|
-
## Состояние предыдущих находок
|
|
151
|
-
| ID | Статус | Доказательство |
|
|
109
|
+
## Чек-лист
|
|
110
|
+
| № | Статус | Доказательство |
|
|
152
111
|
|---|---|---|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
-
|
|
161
|
-
- **Проблема:**
|
|
162
|
-
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
-
|
|
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
|
-
Сообщи
|
|
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
|
-
- Запускать тесты,
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
- Принимать
|
|
189
|
-
- Сохранять итог после повторного сбоя выбранного агента.
|
|
138
|
+
- Запускать тесты, линтеры, сборку, миграции, серверы и внешние запросы.
|
|
139
|
+
- Добавлять находки вне списка пунктов.
|
|
140
|
+
- Оценивать правильность решений вместо исполнимости плана.
|
|
141
|
+
- Выставлять или корректировать score вручную.
|
|
142
|
+
- Принимать за дефект отсутствие пояснений, обоснований и примеров.
|
|
@@ -1,88 +1,80 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan-review-fix
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Закрывает проваленные пункты чек-листа в плане по сохранённому ревью.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Исправитель плана по ревью (eda-plan-review-fix)
|
|
7
7
|
|
|
8
|
-
Применяй
|
|
8
|
+
Применяй проваленные пункты из отчёта `docs/artifacts/plan-reviews/` только к связанному плану. Новое ревью не делай: твой контракт — закрыть перечисленные пункты и сохранить проверяемую цепочку SHA-256.
|
|
9
9
|
|
|
10
10
|
## Вход из сообщения пользователя
|
|
11
11
|
|
|
12
|
-
Разбери путь или название review, «последнее
|
|
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
|
|
24
|
-
3. Перед правкой прочитай план, `docs/rules.md`, `docs/arch.md
|
|
25
|
-
4.
|
|
26
|
-
5.
|
|
27
|
-
6.
|
|
28
|
-
7.
|
|
29
|
-
8.
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
|
65
|
-
|
|
66
|
-
|
|
|
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 и списком
|
|
66
|
+
После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком закрытых пунктов.
|
|
75
67
|
|
|
76
68
|
## Финал
|
|
77
69
|
|
|
78
|
-
Сообщи пути к
|
|
70
|
+
Сообщи пути к плану, review и fix, before/after SHA-256, изменение объёма, закрытые пункты, оставшиеся блокеры и что изменения не закоммичены. Дальше — подтверждающий `eda-plan-review` или возврат вызывающему `eda-plan-polish`.
|
|
79
71
|
|
|
80
72
|
## Чего НЕ делать
|
|
81
73
|
|
|
82
|
-
- Делать новое
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
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/файл,
|
|
12
|
+
Текст рядом с вызовом скилла в текущем сообщении — главный вход. Разбери target, путь к плану, PR/ветку/diff/файл, лимит итераций и ограничения. Передавай в каждый `eda-review` разовые overrides проверок и моделей из запроса пользователя.
|
|
13
13
|
|
|
14
|
-
|
|
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
|
|
21
|
-
4. Любая находка обязательно
|
|
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`, `$
|
|
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
|
|
46
|
+
3. Если `result: clean` и находок нет, заверши успешно. Если `result` противоречит числу находок, считай файл невалидным и остановись.
|
|
46
47
|
4. Если находки есть, запусти отдельного субагента:
|
|
47
48
|
|
|
48
49
|
```text
|
|
49
50
|
Используй eda-fix-by-review для <REVIEW_FILE>.
|
|
50
|
-
Примени
|
|
51
|
-
|
|
51
|
+
Примени находки минимальными достаточными правками и выполни проверки.
|
|
52
|
+
Фактически неверную находку отклони с доказательством в отчёте.
|
|
53
|
+
Верни путь к fix-отчёту, число применённых и отклонённых находок и результат проверок.
|
|
52
54
|
```
|
|
53
55
|
|
|
54
56
|
5. После успешных исправлений начни новую итерацию с полным `eda-review`.
|
|
55
57
|
|
|
56
|
-
Если после полного круга
|
|
58
|
+
Если после полного круга число открытых находок не уменьшилось, остановись раньше лимита с конкретными оставшимися проблемами. При достижении лимита не скрывай незавершённую сходимость.
|
|
57
59
|
|
|
58
60
|
## Финал
|
|
59
61
|
|
|
60
|
-
Сообщи результат, итоговый result и score,
|
|
62
|
+
Сообщи результат, итоговый result и score, число итераций, счётчик находок по кругам («было 12, осталось 3»), последний review file и fix report, оставшиеся находки и coverage warnings. Укажи, что изменения не закоммичены. При успехе предложи `eda-commit`; при неуспехе назови конкретный блокер.
|
|
61
63
|
|
|
62
64
|
## Чего НЕ делать
|
|
63
65
|
|
|
64
66
|
- Делать ревью или исправления основным агентом.
|
|
65
67
|
- Запускать отдельный этап проверки готового ревью.
|
|
66
|
-
- Считать цикл успешным
|
|
67
|
-
- Выбирать или отклонять
|
|
68
|
-
- Переписывать `docs/settings.yaml`, правила или архитектуру ради
|
|
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
|
|