@gian-tiaga/eda 2.0.0 → 2.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.
- package/MIGRATION.md +5 -3
- package/README.md +18 -19
- package/agents/eda-plan-review-api/prompt.md +5 -4
- package/agents/eda-plan-review-architecture/prompt.md +5 -4
- package/agents/eda-plan-review-database/prompt.md +5 -4
- package/agents/eda-plan-review-execution/agent.json +1 -1
- package/agents/eda-plan-review-execution/prompt.md +5 -4
- package/agents/eda-plan-review-feasibility/prompt.md +5 -4
- package/agents/eda-plan-review-frontend/prompt.md +5 -4
- package/agents/eda-plan-review-performance/prompt.md +5 -4
- package/agents/eda-plan-review-previous/agent.json +1 -1
- package/agents/eda-plan-review-previous/prompt.md +5 -5
- package/agents/eda-plan-review-requirements/prompt.md +5 -4
- package/agents/eda-plan-review-rules/prompt.md +5 -4
- package/agents/eda-plan-review-security/prompt.md +5 -4
- package/agents/eda-plan-review-verification/prompt.md +5 -4
- package/agents/eda-review-api/prompt.md +4 -3
- package/agents/eda-review-architecture/prompt.md +4 -3
- package/agents/eda-review-business/prompt.md +4 -3
- package/agents/eda-review-code-quality/prompt.md +5 -4
- package/agents/eda-review-correctness/prompt.md +4 -3
- package/agents/eda-review-database/prompt.md +4 -3
- package/agents/eda-review-documentation/prompt.md +4 -3
- package/agents/eda-review-frontend/prompt.md +4 -3
- package/agents/eda-review-performance/prompt.md +4 -3
- package/agents/eda-review-plan-alignment/prompt.md +4 -3
- package/agents/eda-review-previous-reviews/prompt.md +5 -4
- package/agents/eda-review-references/prompt.md +4 -3
- package/agents/eda-review-rules/prompt.md +4 -3
- package/agents/eda-review-security/prompt.md +4 -3
- package/agents/eda-review-tests/prompt.md +4 -3
- package/lib/install.js +3 -3
- package/package.json +1 -1
- package/skills/eda-business/SKILL.md +47 -32
- package/skills/eda-fix-by-review/SKILL.md +41 -58
- package/skills/eda-orhestra/SKILL.md +1 -1
- package/skills/eda-plan/SKILL.md +18 -23
- package/skills/eda-plan-polish/SKILL.md +12 -12
- package/skills/eda-plan-review/SKILL.md +25 -24
- package/skills/eda-plan-review-fix/SKILL.md +22 -39
- package/skills/eda-polish/SKILL.md +19 -31
- package/skills/eda-review/SKILL.md +8 -16
- package/skills/eda-send-review/SKILL.md +7 -7
|
@@ -5,80 +5,72 @@ description: 'Исправляет код по готовому ревью из
|
|
|
5
5
|
|
|
6
6
|
# Скил: Исправитель по ревью (eda-fix-by-review)
|
|
7
7
|
|
|
8
|
-
Берёшь готовое ревью из `docs/reviews
|
|
8
|
+
Берёшь готовое ревью из `docs/reviews/` или сообщения, применяешь все находки к коду и сохраняешь отчёт в `docs/review-fixes/`. После правок выполняешь полный прогон тестов и линтеров.
|
|
9
9
|
|
|
10
10
|
## Вход из сообщения пользователя
|
|
11
11
|
|
|
12
|
-
Текст рядом с вызовом скилла в текущем сообщении
|
|
12
|
+
Текст рядом с вызовом скилла в текущем сообщении — главный вход. Сначала разбери тему, задачу, путь к файлу, номера замечаний, ограничения и прямые указания. Если входа достаточно, продолжай без вопроса. Старое обсуждение не считай входом, если пользователь явно не связал его с текущим вызовом.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Режим запуска
|
|
17
|
-
|
|
18
|
-
Обычный режим: все пункты «Править обязательно» применяешь сразу, «На усмотрение автора» выносишь через `AskUserQuestion`, «Не править» пропускаешь.
|
|
19
|
-
|
|
20
|
-
Режим `apply-optional`: все пункты «Править обязательно» применяешь без исключений. По каждому пункту «На усмотрение автора» сам принимаешь решение без вопроса: применяешь, если правка явно улучшает качество, снижает риск или стоит дёшево; отклоняешь, если польза спорная, правка расширяет scope, создаёт риск регрессии, конфликтует с правилами/архитектурой или требует продуктового решения. Название режима означает «разобрать optional без вопроса», а не «механически применить все optional». Пункты «Не править» всё равно пропускаешь.
|
|
14
|
+
У нового формата ревью одна группа находок: каждый пункт обязательно исправить. Режимов выбора рекомендаций нет. Если дан старый файл с разделами `Править обязательно`, `На усмотрение автора` и `Не править`, применяй только пункты из `Править обязательно`; остальные старые предложения не переноси в работу и отчёт.
|
|
21
15
|
|
|
22
16
|
## Главные правила
|
|
23
17
|
|
|
24
|
-
1.
|
|
25
|
-
2.
|
|
26
|
-
3.
|
|
27
|
-
4.
|
|
28
|
-
5.
|
|
29
|
-
6.
|
|
30
|
-
7.
|
|
31
|
-
8. **Простой язык** в формулировках и сообщениях. **Таблицы** для отчёта о фиксах.
|
|
18
|
+
1. Перед правкой прочитай `docs/rules.md` и `docs/arch.md`. Определи замечания и затронутое поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов.
|
|
19
|
+
2. Применяй все выбранные находки. Не переоценивай их полезность и не превращай исправление в более широкий рефакторинг.
|
|
20
|
+
3. Задавай вопрос только если находка неоднозначна, противоречит коду или обязательной документации, требует продуктового решения, расширяет scope либо ведёт к рискованному действию. В остальных случаях работай автономно.
|
|
21
|
+
4. Не делай новое ревью и не коммить. Только исправляй замечания и пиши отчёт.
|
|
22
|
+
5. Если находка касается поведения, добавь или обнови точечный тест в той же правке и прогони его.
|
|
23
|
+
6. В конце обязательно прогони полный набор тестов и линтеров один раз.
|
|
24
|
+
7. Пиши просто и конкретно; в отчёте используй таблицу.
|
|
32
25
|
|
|
33
26
|
## Интерактивные вопросы
|
|
34
27
|
|
|
35
|
-
Когда
|
|
28
|
+
Когда без ответа нельзя безопасно продолжать:
|
|
29
|
+
|
|
36
30
|
- Claude Code: используй `AskUserQuestion`.
|
|
37
|
-
- Codex interactive:
|
|
38
|
-
- Codex exec
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
- Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 2–3 вариантами и остановись до ответа.
|
|
32
|
+
- Codex exec и другой неинтерактивный запуск: не читай stdin; верни `blocked: нужен ответ пользователя`, перечисли вопрос и варианты, не выполняй рискованное действие.
|
|
33
|
+
|
|
34
|
+
Не запускай команды, которые ждут интерактивного ввода в терминале. Вопрос не разрешает молча заменить находку другой правкой или исправлять несвязанные поломки.
|
|
41
35
|
|
|
42
36
|
## Этапы
|
|
43
37
|
|
|
44
38
|
### 1. Выбрать ревью
|
|
45
|
-
Сначала разбери текст рядом с вызовом: путь к ревью, название или часть названия, «последнее ревью», номера замечаний или вставленный текст замечаний. Если замечания вставлены в сообщение — используй режим `$REVIEW_SOURCE=review_text`, не выбирай файл ревью и сохрани отчёт с `review: text`.
|
|
46
39
|
|
|
47
|
-
|
|
40
|
+
Разбери путь к ревью, название, «последнее ревью», номера находок или вставленный текст. Для текста используй `$REVIEW_SOURCE=review_text`, не выбирай файл и сохраняй отчёт с `review: text`.
|
|
41
|
+
|
|
42
|
+
Если найден ровно один файл, используй `$REVIEW_SOURCE=review_file`. Если найдено несколько равно подходящих файлов или входа нет, задай один вопрос со списком. Если `docs/reviews/` пуста и текст замечаний не дан, остановись с `blocked: нужно ревью`.
|
|
48
43
|
|
|
49
44
|
### 2. Прочитать контекст
|
|
50
|
-
Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Если связанный план содержит `sources.business`, прочитай только перечисленные карточки, относящиеся к исправляемым замечаниям; иначе выбери их по описаниям через `docs/business.md`. Отсутствие подходящей карточки не является блокером. Через `docs/references.md` выбери только применимые технические карточки. Если связанный план содержит `sources.references`, прочитай перечисленные карточки и не загружай остальные.
|
|
51
45
|
|
|
52
|
-
|
|
46
|
+
Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Для исправляемого поведения выбери только применимые business-карточки и технические reference-карточки. Если связанный план уже задаёт `sources.business` или `sources.references`, используй относящиеся к находкам пути из этих списков.
|
|
47
|
+
|
|
48
|
+
При `$REVIEW_SOURCE=review_file` прочитай ревью целиком, а также явно связанные план и research. При `$REVIEW_SOURCE=review_text` работай по текущему сообщению. Файла ревью нет: не пытайся читать `$REVIEW_FILE` и не ищи план или research без явной ссылки.
|
|
53
49
|
|
|
54
|
-
|
|
50
|
+
### 3. Применить находки
|
|
55
51
|
|
|
56
|
-
|
|
57
|
-
Раздели пункты ревью по группам (берёшь из раздела «Рекомендации»):
|
|
58
|
-
- **Править обязательно** → правишь все пункты сразу. Если меняешь поведение — добавь точечный тест в этой же правке.
|
|
59
|
-
- **На усмотрение автора** → в обычном режиме собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя; в режиме `apply-optional` сам реши по каждому пункту, применяй только принятые решения без вопроса, а отклонённые фиксируй с причиной.
|
|
60
|
-
- **Не править** → пропусти.
|
|
52
|
+
Исправь все находки нового формата либо выбранные пользователем номера. Для старого формата возьми только пункты из `Править обязательно`. Делай минимальную достаточную правку и точечную проверку после каждого логического изменения.
|
|
61
53
|
|
|
62
|
-
|
|
54
|
+
Остановись с вопросом при неоднозначности, конфликте с правилами, архитектурой или business-карточкой, необходимости расширить scope либо выполнить рискованное действие. При конфликте с business-карточкой предложи изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
|
|
63
55
|
|
|
64
56
|
### 4. Финальная проверка
|
|
65
|
-
Прогони полный сьют тестов и линтеры. Команды — стандартные для стека; непонятно — `AskUserQuestion`. Свои поломки — правишь и повторяешь. Чужие/несвязанные — `AskUserQuestion`.
|
|
66
57
|
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
Прогони полный сьют тестов и линтеры стандартными командами проекта. Свои поломки исправь и повтори проверку. При чужой или несвязанной ошибке остановись с конкретным блокером.
|
|
59
|
+
|
|
60
|
+
### 5. Сохранить отчёт и связать с ревью
|
|
61
|
+
|
|
62
|
+
Сохрани `docs/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Если `$REVIEW_SOURCE=review_file`, допиши в конец `$REVIEW_FILE`:
|
|
69
63
|
|
|
70
64
|
```markdown
|
|
71
65
|
## Применённые фиксы
|
|
72
66
|
Отчёт: `docs/review-fixes/{file}.md`
|
|
73
67
|
```
|
|
74
68
|
|
|
75
|
-
Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью:
|
|
76
|
-
|
|
77
|
-
Шаблон отчёта:
|
|
69
|
+
Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью: исходного файла нет.
|
|
78
70
|
|
|
79
71
|
```markdown
|
|
80
72
|
---
|
|
81
|
-
review:
|
|
73
|
+
review: <docs/reviews/... | text>
|
|
82
74
|
date: <YYYY-MM-DD HH:MM>
|
|
83
75
|
status: done
|
|
84
76
|
---
|
|
@@ -89,13 +81,6 @@ status: done
|
|
|
89
81
|
| # | Замечание | Файлы | Тесты | Статус |
|
|
90
82
|
|---|-----------|-------|-------|--------|
|
|
91
83
|
| 1 | <кратко из ревью> | `path/a.py` | `path/test_a.py` (2 ✓) | ✓ применено |
|
|
92
|
-
| 2 | ... | ... | — | ✓ применено |
|
|
93
|
-
| 3 | ... | — | — | ✗ отклонено (на усмотрение, причина: <короткое обоснование>) |
|
|
94
|
-
| 4 | ... | — | — | — не править (по решению ревью) |
|
|
95
|
-
|
|
96
|
-
## Решения по optional
|
|
97
|
-
- **Принято:** <номера и коротко почему>
|
|
98
|
-
- **Отклонено:** <номера и коротко почему, чтобы следующие ревьюеры не повторяли это как открытое замечание>
|
|
99
84
|
|
|
100
85
|
## Финальная проверка
|
|
101
86
|
- **Тесты:** `<команда>` — ✓ / ✗
|
|
@@ -103,18 +88,16 @@ status: done
|
|
|
103
88
|
- **Заметки:** <если что-то осталось не зелёным — почему>
|
|
104
89
|
```
|
|
105
90
|
|
|
106
|
-
Если `$REVIEW_SOURCE=review_file` и в режиме `apply-optional` отклонены пункты «На усмотрение автора», в добавляемом в ревью разделе `## Применённые фиксы` после ссылки на отчёт добавь короткий список `Отклонённые optional-решения` с причинами. Это нужно, чтобы следующие ревьюеры видели уже принятое решение и не повторяли тот же optional-пункт без новых аргументов.
|
|
107
|
-
|
|
108
91
|
### 6. Финал
|
|
109
|
-
|
|
92
|
+
|
|
93
|
+
Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к fix-отчёту, сколько находок применено, результат финальной проверки и состояние git «не закоммичено». Предложи `eda-commit`.
|
|
110
94
|
|
|
111
95
|
## Чего НЕ делать
|
|
96
|
+
|
|
112
97
|
- Делать само ревью — это `eda-review`.
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
- Гонять полный сьют
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
- Загружать несвязанные business-карточки или расширять ими состав исправлений.
|
|
120
|
-
- Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
|
|
98
|
+
- Коммитить или пушить — это `eda-commit`.
|
|
99
|
+
- Выбирать, какие находки достойны исправления: принятая находка уже обязательна.
|
|
100
|
+
- Расширять scope ради улучшений, которых нет в находках.
|
|
101
|
+
- Гонять полный сьют после каждого пункта или пропускать финальную проверку.
|
|
102
|
+
- Сохранять отчёт вне `docs/review-fixes/`.
|
|
103
|
+
- Загружать несвязанные business-карточки или молча отклоняться от применимого правила.
|
|
@@ -119,7 +119,7 @@ orhestra:
|
|
|
119
119
|
1. Запусти скилл с подготовленным вводом.
|
|
120
120
|
2. Обработай его вопрос по режиму.
|
|
121
121
|
3. Прочитай сохранённый артефакт и явный статус. `blocked`, неполный обязательный результат или непройденная обязательная проверка останавливают цепочку.
|
|
122
|
-
4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings` и `score >= threshold`; отдельного polish-файла нет.
|
|
122
|
+
4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean`, без находок и с `score >= threshold`; отдельного polish-файла нет.
|
|
123
123
|
5. Для успешного шага сохрани все пути и передай их следующему.
|
|
124
124
|
|
|
125
125
|
Если `eda-manual-test` вернул `failed`:
|
package/skills/eda-plan/SKILL.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan
|
|
3
|
-
description: 'Создаёт
|
|
3
|
+
description: 'Создаёт конкретный исполнимый план реализации задачи и сохраняет его в `docs/plans/`.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Планировщик (eda-plan)
|
|
7
7
|
|
|
8
|
-
Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, явно помечаешь зависимости задач и формируешь связные фазы для выполнения одним агентом. По настройкам запускаешь
|
|
8
|
+
Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, явно помечаешь зависимости задач и формируешь связные фазы для выполнения одним агентом. По настройкам запускаешь специализированный цикл `eda-plan-polish`, а в strict — независимую кросс-CLI проверку.
|
|
9
9
|
|
|
10
10
|
## Режим запуска
|
|
11
11
|
|
|
@@ -66,6 +66,7 @@ description: 'Создаёт подробный исполнимый план р
|
|
|
66
66
|
9. Если нужны пакеты, библиотеки, CLI, сервисы или другое ПО, а версия не указана в контексте или lock/config-файлах, найди последнюю стабильную версию через context7 или web search по официальным источникам. Не пиши `latest` без конкретной версии и источника.
|
|
67
67
|
10. Если выбран `plan.size: short`, но задача не укладывается в ограничения, не сохраняй short-план: объясни причину, оцени нужный объём и спроси, продолжать в `normal` или сузить задачу.
|
|
68
68
|
11. Каждой задаче в фазах присвой уникальный ID и укажи её прямые зависимости. Собери каждую фазу вокруг одной связной цели и объёма, который один исполнитель может реализовать и проверить за один проход; слишком крупную или несвязную фазу раздели.
|
|
69
|
+
12. Пиши конкретно и без воды. Каждая формулировка должна определять действие, место изменения, поведение или контракт, зависимость, проверку либо существенное принятое решение. Если её удаление ничего из этого не меняет, удали её из плана.
|
|
69
70
|
|
|
70
71
|
## Этапы
|
|
71
72
|
|
|
@@ -92,6 +93,7 @@ description: 'Создаёт подробный исполнимый план р
|
|
|
92
93
|
6. Требование: план следует правилам, архитектуре и применимым эталонам с указанным приоритетом; при конфликте или необоснованном отклонении остановиться и спросить пользователя.
|
|
93
94
|
7. Требование: финальный план нормализуется в структуру ниже, не смешивает исследование с исполнением и не добавляет неподтверждённые существенные решения.
|
|
94
95
|
8. Требование: каждая задача получает уникальный ID и прямые зависимости, а каждая фаза образует связный объём работы для одного исполнителя.
|
|
96
|
+
9. Требование: конкретика не равна максимальной подробности. Не пересказывать запрос и существующий код, не повторять один контракт в нескольких разделах, не добавлять очевидные пояснения и не выдумывать пути, символы или API ради видимости конкретики.
|
|
95
97
|
|
|
96
98
|
Не выходи из Plan Mode, пока пользователь не подтвердил план.
|
|
97
99
|
|
|
@@ -175,6 +177,8 @@ sources:
|
|
|
175
177
|
- Одну фазу целиком выполняет один изолированный субагент `eda-plan-execute`. Задачи фазы должны относиться к общей цели, иметь согласованный scope и помещаться в один исполнительский проход вместе с точечными и фазовыми проверками.
|
|
176
178
|
- В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты; если область не затрагивается, напиши `Не затрагивается`.
|
|
177
179
|
- В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
|
|
180
|
+
- Не дублируй один и тот же контракт, решение или критерий между разделами. Зафиксируй его в наиболее подходящем месте, а в задачах укажи только действие, которое опирается на него.
|
|
181
|
+
- Не пересказывай задачу, кодовую базу и очевидные механические шаги. Оставляй только сведения, которые меняют реализацию или способ её проверки; точные пути и символы указывай только когда они подтверждены контекстом.
|
|
178
182
|
- Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай plan-review до ответа пользователя.
|
|
179
183
|
|
|
180
184
|
Quality gate перед сохранением и после каждой включённой проверки:
|
|
@@ -191,42 +195,33 @@ Quality gate перед сохранением и после каждой вкл
|
|
|
191
195
|
- для `short` не больше 2 фаз и явно указан ожидаемый объём;
|
|
192
196
|
- пакеты/ПО имеют конкретные версии или ссылку на существующий lock/config;
|
|
193
197
|
- нет неподтверждённых существенных решений и неразрешённых альтернатив;
|
|
198
|
+
- нет общих призывов, повторов и пояснений, удаление которых не меняет действия, контракты, зависимости, проверки или принятые решения;
|
|
194
199
|
- план можно передать в `eda-plan-execute` без нового исследования.
|
|
195
200
|
|
|
196
|
-
### 4.
|
|
201
|
+
### 4. Специализированная полировка плана
|
|
197
202
|
|
|
198
203
|
Если `plan.review: false`, пропусти этап, оставь `plan_review: none`, `plan_review_fix: none` и перейди к strict-этапу или финалу. Не запускай старое общее мета-ревью.
|
|
199
204
|
|
|
200
|
-
Если `plan.review: true`,
|
|
205
|
+
Если `plan.review: true`, запусти `eda-plan-polish` в отдельном изолированном субагенте с чистым контекстом. Основной планировщик не делает review или fix. При недоступности нативных субагентов остановись; не используй CLI-fallback для этого этапа.
|
|
201
206
|
|
|
202
|
-
1. Запусти один `eda-plan-
|
|
207
|
+
1. Запусти один `eda-plan-polish`:
|
|
203
208
|
|
|
204
209
|
```text
|
|
205
|
-
Используй eda-plan-
|
|
210
|
+
Используй eda-plan-polish для <PLAN_FILE>.
|
|
206
211
|
Исходная задача и решения: <текущий запрос и ответы пользователя>.
|
|
207
|
-
Верни
|
|
212
|
+
Верни результат, последний review/fix, score, threshold и открытые ID.
|
|
208
213
|
```
|
|
209
214
|
|
|
210
|
-
2.
|
|
211
|
-
3.
|
|
212
|
-
|
|
213
|
-
```text
|
|
214
|
-
Используй eda-plan-review-fix apply-optional для <REVIEW_FILE>.
|
|
215
|
-
Примени все required, самостоятельно разбери optional и сохрани waived с причинами.
|
|
216
|
-
Верни путь к fix, before_sha256, after_sha256, applied и waived ID.
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
4. Проверь связь SHA-256. После успешного fix установи `status: meta-reviewed`, `plan_review: <REVIEW_FILE>`, `plan_review_fix: <FIX_FILE>` и снова прогони локальный quality gate структуры плана. Не запускай второй review внутри `eda-plan`.
|
|
220
|
-
5. При `blocked` передай один конкретный вопрос пользователю и продолжи тот же вложенный шаг после ответа.
|
|
221
|
-
|
|
222
|
-
`meta-reviewed` означает один review и один неперепроверенный fix и остаётся допустимым входом для `eda-plan-execute`. Подтверждённый gate после fix выполняет отдельный `eda-plan-polish`.
|
|
215
|
+
2. Проверь артефакты и SHA-256 цепочку, затем снова прогони локальный quality gate структуры плана.
|
|
216
|
+
3. При `ready` убедись, что front matter содержит `status: reviewed`, последний `plan_review` и последний `plan_review_fix` либо `none`. Содержательных правок не делай.
|
|
217
|
+
4. При limit, отсутствии прогресса или `blocked` не выдавай план за подтверждённый; сообщи открытые ID и передай пользователю только конкретный вопрос, если он действительно нужен.
|
|
223
218
|
|
|
224
219
|
### 5. Strict: кросс-CLI и допил
|
|
225
220
|
|
|
226
221
|
`plan.strict` не зависит от `plan.review`. Обычный режим пропускает этот этап. В `strict` отдай файл соседнему CLI:
|
|
227
222
|
|
|
228
223
|
```bash
|
|
229
|
-
codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость.
|
|
224
|
+
codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Верни только конкретные ошибки и неточности, которые обязательно исправить: для каждой укажи место, доказательство, практический риск и минимальную правку. Не предлагай стилистические улучшения, дополнительные пояснения или расширение текста, если без них план уже однозначно исполним. Список '- [тип] описание — что исправить'." > "${PLAN_FILE%.md}_review.md"
|
|
230
225
|
```
|
|
231
226
|
|
|
232
227
|
Если ты в Codex — запускай `claude -p` с тем же заданием. Если соседней CLI нет, спроси, продолжать без ревью или прервать.
|
|
@@ -235,7 +230,7 @@ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, приме
|
|
|
235
230
|
|
|
236
231
|
### 6. Финал
|
|
237
232
|
|
|
238
|
-
Коротко сообщи режим, выполнялись ли plan-
|
|
233
|
+
Коротко сообщи режим, выполнялись ли plan-polish и strict, путь к плану, пути к последним plan-review/plan-review-fix и strict-review при наличии, итоговый status, score/threshold, открытые ID, 3–5 главных шагов и что дальше делает `eda-plan-execute`.
|
|
239
234
|
|
|
240
235
|
## Чего НЕ делать
|
|
241
236
|
|
|
@@ -249,5 +244,5 @@ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, приме
|
|
|
249
244
|
- Сохранять сырой текст Plan Mode без нормализации.
|
|
250
245
|
- Оставлять финальный план исследованием, списком наблюдений или журналом мета-ревью.
|
|
251
246
|
- Смешивать альтернативы с принятыми решениями.
|
|
252
|
-
- Выполнять plan-review
|
|
247
|
+
- Выполнять plan-review, plan-review-fix или plan-polish основным агентом либо запускать старые три общих ревьюера.
|
|
253
248
|
- Пропускать кросс-CLI молча в `strict`: если CLI нет, спроси.
|
|
@@ -5,7 +5,7 @@ description: 'Оркестрирует review и исправления гото
|
|
|
5
5
|
|
|
6
6
|
# Скил: Полировка плана (eda-plan-polish)
|
|
7
7
|
|
|
8
|
-
Оркестрируй цикл `eda-plan-review` → `eda-plan-review-fix
|
|
8
|
+
Оркестрируй цикл `eda-plan-review` → `eda-plan-review-fix` → повторный `eda-plan-review`. Основной агент только выбирает план, запускает каждый скил в отдельном изолированном субагенте, проверяет артефакты и управляет остановкой.
|
|
9
9
|
|
|
10
10
|
## Вход из сообщения пользователя
|
|
11
11
|
|
|
@@ -25,9 +25,9 @@ description: 'Оркестрирует review и исправления гото
|
|
|
25
25
|
|
|
26
26
|
## Правила
|
|
27
27
|
|
|
28
|
-
1. Каждый вызов `eda-plan-review` и `eda-plan-review-fix
|
|
28
|
+
1. Каждый вызов `eda-plan-review` и `eda-plan-review-fix` запускай отдельным изолированным субагентом с чистым контекстом.
|
|
29
29
|
2. Если нативные субагенты или вложенная делегация недоступны, остановись; не выполняй review/fix основным агентом и не используй CLI-fallback.
|
|
30
|
-
3. Успех определяется только review со статусом `ready`, без
|
|
30
|
+
3. Успех определяется только review со статусом `ready`, без открытых находок и `score >= threshold`.
|
|
31
31
|
4. Limit считает подтверждающие review-итерации. После review на последней итерации не запускай fix, который нельзя перепроверить.
|
|
32
32
|
5. Основной агент не делает содержательных правок плана. После ready он может обновить только front matter: `status`, `plan_review`, `plan_review_fix`.
|
|
33
33
|
6. Не запускай проверки проекта и не коммить.
|
|
@@ -42,7 +42,7 @@ description: 'Оркестрирует review и исправления гото
|
|
|
42
42
|
|
|
43
43
|
## Цикл
|
|
44
44
|
|
|
45
|
-
Сформируй `$PLAN_FILE`, `$THRESHOLD`, `$LIMIT` и внутренний журнал: iteration, review path, plan SHA-256, score, состояния
|
|
45
|
+
Сформируй `$PLAN_FILE`, `$THRESHOLD`, `$LIMIT` и внутренний журнал: iteration, review path, plan SHA-256, score, состояния находок, fix path и причина продолжения.
|
|
46
46
|
|
|
47
47
|
Для `$ITERATION` от `1` до `$LIMIT`:
|
|
48
48
|
|
|
@@ -53,20 +53,20 @@ description: 'Оркестрирует review и исправления гото
|
|
|
53
53
|
Previous review: <PREVIOUS_REVIEW | none>.
|
|
54
54
|
Previous fix: <PREVIOUS_FIX | none>.
|
|
55
55
|
Overrides проверок и моделей: <из текущего вызова | none>.
|
|
56
|
-
Верни путь, status, plan_sha256, score,
|
|
56
|
+
Верни путь, status, plan_sha256, score, открытые ID и coverage.
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
2. Прочитай review-артефакт и проверь, что status/score/threshold
|
|
59
|
+
2. Прочитай review-артефакт и проверь, что status/score/threshold/находки согласованы.
|
|
60
60
|
3. Если status `ready`, обнови front matter плана: `status: reviewed`, `plan_review: <REVIEW_FILE>`, `plan_review_fix: <последний FIX_FILE | none>`. Заверши успешно.
|
|
61
61
|
4. Если это последняя разрешённая review-итерация, остановись `достигнут limit`; fix не запускай.
|
|
62
|
-
5. Если относительно предыдущего review не изменились open/resolved/regressed
|
|
63
|
-
6. Если
|
|
62
|
+
5. Если относительно предыдущего review не изменились open/resolved/regressed ID и score, остановись `blocked: review не показывает прогресса`.
|
|
63
|
+
6. Если status `changes-required`, но открытых находок нет, остановись `blocked: review нарушает контракт gate`; score ниже threshold нельзя исправлять без конкретных находок.
|
|
64
64
|
7. Запусти новый изолированный субагент:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
Используй eda-plan-review-fix
|
|
68
|
-
Примени все
|
|
69
|
-
Верни путь к fix, before_sha256, after_sha256
|
|
67
|
+
Используй eda-plan-review-fix для <REVIEW_FILE>.
|
|
68
|
+
Примени все открытые находки минимальным изменением плана.
|
|
69
|
+
Верни путь к fix, before_sha256, after_sha256 и applied ID.
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
8. Проверь, что `before_sha256` равен `plan_sha256` review. Если `after_sha256` равен `before_sha256`, остановись `blocked: fix не изменил план`.
|
|
@@ -76,7 +76,7 @@ Score не повышай и не пересчитывай сам: исполь
|
|
|
76
76
|
|
|
77
77
|
## Финал
|
|
78
78
|
|
|
79
|
-
Сообщи результат (`ready`, limit, no progress,
|
|
79
|
+
Сообщи результат (`ready`, limit, no progress, invalid gate или blocked), план, последний review/fix, score/threshold, число review-итераций, open ID и coverage warnings. При ready предложи `eda-plan-execute`; при неуспехе перечисли конкретные оставшиеся находки.
|
|
80
80
|
|
|
81
81
|
## Чего НЕ делать
|
|
82
82
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan-review
|
|
3
|
-
description: 'Проводит специализированное read-only ревью готового плана и сохраняет
|
|
3
|
+
description: 'Проводит специализированное read-only ревью готового плана и сохраняет находки с оценкой готовности.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Ревью плана (eda-plan-review)
|
|
7
7
|
|
|
8
|
-
Работай как оркестратор установленных `eda-plan-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их prompts в task-сообщения. Выбери план и проверки, запусти агентов, проверь структурированные ответы, дедуплицируй подтверждённые
|
|
8
|
+
Работай как оркестратор установленных `eda-plan-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их prompts в task-сообщения. Выбери план и проверки, запусти агентов, проверь структурированные ответы, дедуплицируй подтверждённые находки, выставь экспертный score и сохрани один review-артефакт.
|
|
9
9
|
|
|
10
10
|
## Вход из сообщения пользователя
|
|
11
11
|
|
|
@@ -85,34 +85,36 @@ description: 'Проводит специализированное read-only р
|
|
|
85
85
|
|
|
86
86
|
- один YAML-блок и допустимый `status`;
|
|
87
87
|
- `check` совпадает с ролью, `model` — с фактической моделью;
|
|
88
|
-
-
|
|
89
|
-
- у
|
|
90
|
-
- `blocked` содержит question; `not_applicable` не содержит
|
|
88
|
+
- `находки` и `предыдущие_находки` — массивы;
|
|
89
|
+
- у каждой находки есть fingerprint, severity, plan_location, problem, evidence, impact, fix, acceptance;
|
|
90
|
+
- `blocked` содержит question; `not_applicable` не содержит находок.
|
|
91
91
|
|
|
92
92
|
Невалидного или упавшего агента один раз повтори на той же модели с указанием только нарушения контракта. Повторный сбой любой выбранной проверки блокирует всё ревью; итоговый файл не сохраняй.
|
|
93
93
|
|
|
94
|
-
## Агрегировать
|
|
94
|
+
## Агрегировать находки
|
|
95
95
|
|
|
96
96
|
1. Подтверди evidence точечным чтением указанных файлов. Не добавляй самостоятельные domain-находки.
|
|
97
|
-
2.
|
|
98
|
-
3.
|
|
99
|
-
4.
|
|
100
|
-
5.
|
|
101
|
-
6.
|
|
97
|
+
2. Прими находку только когда план обязательно нужно изменить: есть точное место, доказательство, практическая ошибка или существенная неоднозначность, минимальная правка и проверяемая приёмка. Если замечание можно без последствий не применять, это не находка.
|
|
98
|
+
3. Отклони недоказанное, вкусовое, уже закрытое, выходящее за scope или противоречащее подтверждённому решению. Также отклоняй «лучше подробнее», дополнительные пояснения, обоснования и стилистические улучшения, если без них план уже однозначно исполним.
|
|
99
|
+
4. Недостаток конкретики подтверждён только когда исполнителю придётся заново исследовать область, принять незафиксированное существенное решение или можно получить две существенно разные реализации. Вода или повтор подтверждены, когда точный фрагмент не меняет действие, контракт, зависимость, проверку или решение; исправление для них должно быть удалением либо короткой заменой.
|
|
100
|
+
5. Объедини находки с одной первопричиной и одной правкой, сохранив все checks и evidence.
|
|
101
|
+
6. Для совпадающего fingerprint сохрани прежний ID. Новой находке дай следующий свободный `PR-NNN`; номер не переиспользуй.
|
|
102
|
+
7. В итог включай только открытые находки и состояния прошлых ID. Предложения, которые не требуют обязательной правки плана, сохраняй только в `Отклонённые предложения` и не учитывай в score.
|
|
102
103
|
|
|
103
104
|
## Выставить score и gate
|
|
104
105
|
|
|
105
106
|
Score выставляет главный агент экспертно после обработки всех агентов. Не усредняй оценки, не используй формулу вычетов и не проси агентов ставить score.
|
|
106
107
|
|
|
107
|
-
- `
|
|
108
|
-
- `
|
|
109
|
-
- `
|
|
108
|
+
- `100`: открытых находок нет, план конкретен и исполним.
|
|
109
|
+
- `95–99`: остаются только локальные, но обязательные находки low.
|
|
110
|
+
- `80–94`: есть находка medium или несколько находок low.
|
|
111
|
+
- `60–79`: есть находка high.
|
|
110
112
|
- ниже `60`: есть critical или требуется серьёзное перепланирование.
|
|
111
|
-
- при отсутствии открытых
|
|
112
|
-
- если состояния open/resolved/regressed
|
|
113
|
+
- при отсутствии открытых находок score равен `100`.
|
|
114
|
+
- если состояния open/resolved/regressed не изменились относительно предыдущего review, score не меняй.
|
|
113
115
|
- каждое изменение score объясни закрытыми, новыми или регрессировавшими ID.
|
|
114
116
|
|
|
115
|
-
Статус `ready` ставь только когда нет открытых
|
|
117
|
+
Статус `ready` ставь только когда нет открытых находок и `$SCORE >= $THRESHOLD`. Любая открытая находка даёт `changes-required`, независимо от score. Score ниже threshold без открытых находок недопустим: не снижай оценку за необязательные пожелания и не выдумывай находку только ради числа.
|
|
116
118
|
|
|
117
119
|
## Сохранить review
|
|
118
120
|
|
|
@@ -145,16 +147,15 @@ checks:
|
|
|
145
147
|
- **Skipped:** <checks и причины>
|
|
146
148
|
- **Warnings:** <warnings или «нет»>
|
|
147
149
|
|
|
148
|
-
## Состояние предыдущих
|
|
150
|
+
## Состояние предыдущих находок
|
|
149
151
|
| ID | Статус | Доказательство |
|
|
150
152
|
|---|---|---|
|
|
151
153
|
|
|
152
|
-
##
|
|
154
|
+
## Находки
|
|
153
155
|
|
|
154
156
|
### PR-001. <заголовок>
|
|
155
157
|
- **Checks:** <роли>
|
|
156
158
|
- **Severity:** <critical | high | medium | low>
|
|
157
|
-
- **Recommendation:** <required | optional>
|
|
158
159
|
- **Fingerprint:** `<fingerprint>`
|
|
159
160
|
- **Место в плане:** <раздел или задача>
|
|
160
161
|
- **Проблема:** <что не так>
|
|
@@ -167,8 +168,7 @@ checks:
|
|
|
167
168
|
- `<fingerprint>` — <причина или «нет»>
|
|
168
169
|
|
|
169
170
|
## Gate
|
|
170
|
-
-
|
|
171
|
-
- **Optional open:** <ID или «нет»>
|
|
171
|
+
- **Открытые находки:** <ID или «нет»>
|
|
172
172
|
- **Результат:** <ready | changes-required>
|
|
173
173
|
```
|
|
174
174
|
|
|
@@ -176,7 +176,7 @@ Review содержит только проблемы и техническое
|
|
|
176
176
|
|
|
177
177
|
## Финал
|
|
178
178
|
|
|
179
|
-
Сообщи путь, status, score/threshold,
|
|
179
|
+
Сообщи путь, status, score/threshold, открытые ID, completed/skipped и previous chain. При `changes-required` предложи `eda-plan-review-fix`; при `ready` — `eda-plan-execute` или возврат вызывающему `eda-plan-polish`.
|
|
180
180
|
|
|
181
181
|
## Чего НЕ делать
|
|
182
182
|
|
|
@@ -184,5 +184,6 @@ Review содержит только проблемы и техническое
|
|
|
184
184
|
- Запускать тесты, lint, build, typecheck, серверы, миграции, браузерные проверки или API-запросы.
|
|
185
185
|
- Выполнять специализированную роль главным агентом.
|
|
186
186
|
- Запускать другой CLI или generic-fallback.
|
|
187
|
-
- Усреднять score агентов, менять score без изменения
|
|
187
|
+
- Усреднять score агентов, менять score без изменения находок или снижать его за необязательные пожелания.
|
|
188
|
+
- Принимать косметическое расширение текста, дополнительное объяснение или вкусовую формулировку как находку.
|
|
188
189
|
- Сохранять итог после повторного сбоя выбранного агента.
|