@gian-tiaga/eda 1.0.5 → 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 +60 -80
- package/README.md +116 -36
- package/agents/eda-plan-review-api/agent.json +9 -0
- package/agents/eda-plan-review-api/prompt.md +35 -0
- package/agents/eda-plan-review-architecture/agent.json +9 -0
- package/agents/eda-plan-review-architecture/prompt.md +35 -0
- package/agents/eda-plan-review-database/agent.json +9 -0
- package/agents/eda-plan-review-database/prompt.md +35 -0
- package/agents/eda-plan-review-execution/agent.json +9 -0
- package/agents/eda-plan-review-execution/prompt.md +35 -0
- package/agents/eda-plan-review-feasibility/agent.json +9 -0
- package/agents/eda-plan-review-feasibility/prompt.md +35 -0
- package/agents/eda-plan-review-frontend/agent.json +9 -0
- package/agents/eda-plan-review-frontend/prompt.md +35 -0
- package/agents/eda-plan-review-performance/agent.json +9 -0
- package/agents/eda-plan-review-performance/prompt.md +35 -0
- package/agents/eda-plan-review-previous/agent.json +9 -0
- package/agents/eda-plan-review-previous/prompt.md +28 -0
- package/agents/eda-plan-review-requirements/agent.json +9 -0
- package/agents/eda-plan-review-requirements/prompt.md +35 -0
- package/agents/eda-plan-review-rules/agent.json +9 -0
- package/agents/eda-plan-review-rules/prompt.md +35 -0
- package/agents/eda-plan-review-security/agent.json +9 -0
- package/agents/eda-plan-review-security/prompt.md +35 -0
- package/agents/eda-plan-review-verification/agent.json +9 -0
- package/agents/eda-plan-review-verification/prompt.md +35 -0
- package/agents/eda-review-api/prompt.md +4 -3
- package/agents/eda-review-architecture/prompt.md +4 -3
- package/agents/eda-review-business/agent.json +15 -0
- package/agents/eda-review-business/prompt.md +47 -0
- 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/bin/cli.js +2 -2
- package/lib/install.js +524 -368
- package/package.json +3 -2
- package/skills/eda-aim/SKILL.md +1 -1
- package/skills/eda-business/SKILL.md +162 -0
- package/skills/eda-discover-automations/SKILL.md +4 -2
- package/skills/eda-explore/SKILL.md +7 -6
- package/skills/eda-fix/SKILL.md +5 -4
- package/skills/eda-fix-by-review/SKILL.md +41 -57
- package/skills/eda-manual-test/SKILL.md +13 -5
- package/skills/eda-orhestra/SKILL.md +14 -11
- package/skills/eda-plan/SKILL.md +45 -42
- package/skills/eda-plan-execute/SKILL.md +8 -6
- package/skills/eda-plan-polish/SKILL.md +53 -169
- package/skills/eda-plan-review/SKILL.md +189 -0
- package/skills/eda-plan-review-fix/SKILL.md +88 -0
- package/skills/eda-polish/SKILL.md +19 -31
- package/skills/eda-prepare-ai/SKILL.md +7 -2
- package/skills/eda-review/SKILL.md +21 -21
- package/skills/eda-roadmap/SKILL.md +6 -3
- package/skills/eda-send-review/SKILL.md +8 -8
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-polish
|
|
3
|
-
description: 'Итеративно ревьюит и исправляет изменения до заданной оценки качества.'
|
|
3
|
+
description: 'Итеративно ревьюит и исправляет изменения до чистого результата и заданной оценки качества.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Полировка изменений (eda-polish)
|
|
7
7
|
|
|
8
|
-
Оркестрируй цикл `eda-review` → `eda-fix-by-review
|
|
9
|
-
В начале каждой итерации запускай полное `eda-review` целевого изменения.
|
|
8
|
+
Оркестрируй цикл `eda-review` → `eda-fix-by-review` → повторное `eda-review`. Основной агент только управляет итерациями, читает сохранённые артефакты и сообщает результат. В начале каждой итерации запускай полное `eda-review` целевого изменения.
|
|
10
9
|
|
|
11
10
|
## Вход из сообщения пользователя
|
|
12
11
|
|
|
@@ -16,12 +15,12 @@ description: 'Итеративно ревьюит и исправляет изм
|
|
|
16
15
|
|
|
17
16
|
## Правила
|
|
18
17
|
|
|
19
|
-
1. Каждый вызов `eda-review` и `eda-fix-by-review
|
|
18
|
+
1. Каждый вызов `eda-review` и `eda-fix-by-review` запускай отдельным изолированным субагентом. Основной агент не делает их работу.
|
|
20
19
|
2. Если нативные субагенты недоступны, остановись; не заменяй шаги CLI-процессами.
|
|
21
|
-
3.
|
|
22
|
-
4.
|
|
20
|
+
3. Успех требует одновременно: полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean`, ноль находок и `score >= threshold`.
|
|
21
|
+
4. Любая находка обязательно исправляется независимо от score. Порог не превращает найденную проблему в допустимую.
|
|
23
22
|
5. Не коммить и не отправляй ревью.
|
|
24
|
-
6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента,
|
|
23
|
+
6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента, неизменном наборе находок один полный круг или достижении лимита.
|
|
25
24
|
|
|
26
25
|
## Вопросы
|
|
27
26
|
|
|
@@ -29,53 +28,42 @@ description: 'Итеративно ревьюит и исправляет изм
|
|
|
29
28
|
|
|
30
29
|
## Цикл
|
|
31
30
|
|
|
32
|
-
Сформируй `$TARGET_CONTEXT`, `$THRESHOLD`, `$LIMIT` и
|
|
31
|
+
Сформируй `$TARGET_CONTEXT`, `$THRESHOLD`, `$LIMIT` и журнал: номер итерации, review file, result, score, список находок, fix report и причина продолжения.
|
|
33
32
|
|
|
34
33
|
Для каждой итерации:
|
|
35
34
|
|
|
36
|
-
1. Запусти отдельного
|
|
35
|
+
1. Запусти отдельного субагента:
|
|
37
36
|
|
|
38
37
|
```text
|
|
39
38
|
Используй eda-review для <TARGET_CONTEXT>.
|
|
40
39
|
План: <PLAN_FILE | none>.
|
|
41
40
|
Overrides проверок и моделей: <из запроса | none>.
|
|
42
|
-
Верни путь к файлу, status, score и coverage.
|
|
41
|
+
Верни путь к файлу, status, result, score, находки и coverage.
|
|
43
42
|
```
|
|
44
43
|
|
|
45
|
-
2. Если review остановился из-за обязательного агента, останови
|
|
46
|
-
3. Если `score >= threshold`, заверши успешно.
|
|
47
|
-
4. Если
|
|
48
|
-
5. Запусти отдельного субагента:
|
|
44
|
+
2. Если review остановился из-за обязательного агента, останови цикл. `reviewed-with-warnings` из-за недоступных previous reviews разрешён.
|
|
45
|
+
3. Если `result: clean`, находок нет и `score >= threshold`, заверши успешно. Если `result` противоречит числу находок, считай файл невалидным и остановись.
|
|
46
|
+
4. Если находки есть, запусти отдельного субагента:
|
|
49
47
|
|
|
50
48
|
```text
|
|
51
|
-
Используй eda-fix-by-review
|
|
52
|
-
Примени все
|
|
49
|
+
Используй eda-fix-by-review для <REVIEW_FILE>.
|
|
50
|
+
Примени все находки минимальными достаточными правками и выполни проверки.
|
|
53
51
|
Верни путь к fix-отчёту и результат проверок.
|
|
54
52
|
```
|
|
55
53
|
|
|
56
|
-
|
|
54
|
+
5. После успешных исправлений начни новую итерацию с полным `eda-review`.
|
|
57
55
|
|
|
58
|
-
Если
|
|
56
|
+
Если после полного круга набор находок не изменился, остановись раньше лимита с конкретными оставшимися проблемами. При достижении лимита не скрывай незавершённую сходимость. Состояние `clean` со score ниже threshold является несогласованным с контрактом `eda-review`: при отсутствии находок score должен быть `100`; остановись как на ошибке контракта.
|
|
59
57
|
|
|
60
58
|
## Финал
|
|
61
59
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- результат: достигнут порог, достигнут лимит, blocked, нет применимых замечаний или score не растёт;
|
|
65
|
-
- итоговую оценку и порог;
|
|
66
|
-
- количество итераций;
|
|
67
|
-
- последний review file и fix report;
|
|
68
|
-
- предупреждения coverage, если они были;
|
|
69
|
-
- что изменения не закоммичены.
|
|
70
|
-
|
|
71
|
-
При успехе предложи `eda-commit`. При неуспехе назови конкретный блокер или оставшиеся замечания.
|
|
60
|
+
Сообщи результат, итоговый result и score, порог, число итераций, последний review file и fix report, оставшиеся находки и coverage warnings. Укажи, что изменения не закоммичены. При успехе предложи `eda-commit`; при неуспехе назови конкретный блокер.
|
|
72
61
|
|
|
73
62
|
## Чего НЕ делать
|
|
74
63
|
|
|
75
64
|
- Делать ревью или исправления основным агентом.
|
|
76
65
|
- Запускать отдельный этап проверки готового ревью.
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
- Терять причины отклонённых optional-решений.
|
|
66
|
+
- Считать цикл успешным только по score при наличии находок.
|
|
67
|
+
- Выбирать или отклонять принятые находки.
|
|
80
68
|
- Переписывать `docs/settings.yaml`, правила или архитектуру ради score.
|
|
81
69
|
- Коммитить, пушить или отправлять ревью.
|
|
@@ -15,7 +15,7 @@ description: 'Готовит проект к работе с AI: проекти
|
|
|
15
15
|
|
|
16
16
|
1. **Не правишь код.** Меняй только `docs/rules.md`, `docs/arch.md`, `docs/references.md`, `docs/references/*.md`, `AGENTS.md` и `CLAUDE.md`; не ставь пакеты и не меняй конфиги.
|
|
17
17
|
2. **Опирайся на проект.** Читай код, структуру, зависимости, команды, тесты, инфраструктуру, git-историю и существующие документы. Не генерируй универсальный шаблон.
|
|
18
|
-
3. **Разделяй документы по назначению.** `docs/rules.md` задаёт проверяемые обязанности и запреты при работе над проектом; `docs/arch.md` фиксирует устройство, границы и владение ответственностью; references показывают уже устоявшуюся форму реализации; `AGENTS.md` объясняет, что это за проект и где читать обязательную рамку. Архитектурное решение не становится правилом только потому, что его удалось сформулировать как запрет.
|
|
18
|
+
3. **Разделяй документы по назначению.** Business-карточки задают подтверждённое целевое поведение и редактируются только через `eda-business`; `docs/rules.md` задаёт проверяемые обязанности и запреты при работе над проектом; `docs/arch.md` фиксирует устройство, границы и владение ответственностью; references показывают уже устоявшуюся форму реализации; `AGENTS.md` объясняет, что это за проект и где читать обязательную рамку. Архитектурное решение не становится правилом только потому, что его удалось сформулировать как запрет.
|
|
19
19
|
4. **Обновляй осмысленно.** Сохраняй актуальное, исправляй неверное, удаляй устаревшее и перестраивай документ настолько сильно, насколько требует проект. Не спрашивай отдельно, что делать с каждым существующим файлом.
|
|
20
20
|
5. **Не выдавай предположение за факт.** Значимые неподтверждённые архитектурные решения предложи пользователю; после выбора зафиксируй принятый вариант.
|
|
21
21
|
6. **Предлагай экстремальный профиль проверок.** Не ограничивайся уже установленными командами или базовыми lint/test. Пройди весь каталог ниже, предложи все применимые проверки и объясни каждое `не применимо`; в документацию переноси только подтверждённые правила.
|
|
@@ -42,7 +42,9 @@ description: 'Готовит проект к работе с AI: проекти
|
|
|
42
42
|
|
|
43
43
|
### 2. Прочитать существующую документацию
|
|
44
44
|
|
|
45
|
-
Прочитай `docs/rules.md`, `docs/arch.md`, `docs/references.md`, карточки из `docs/references/`, `AGENTS.md` и `CLAUDE.md`, если они есть. Также прочитай релевантные документы из `docs/`, на которые они ссылаются. Найди дубли, противоречия и устаревшие сведения.
|
|
45
|
+
Прочитай `docs/rules.md`, `docs/arch.md`, `docs/references.md`, карточки из `docs/references/`, `AGENTS.md` и `CLAUDE.md`, если они есть. Если существует `docs/business.md`, сначала определи область текущей подготовки, затем по описаниям выбери относящиеся к ней карточки; при полном bootstrap весь описанный продуктовый контекст может быть применим. Business-карточки используй как требования к целевому поведению, но не редактируй. Также прочитай релевантные документы из `docs/`, на которые они ссылаются. Найди дубли, противоречия и устаревшие сведения.
|
|
46
|
+
|
|
47
|
+
Если текущая задача подготовки противоречит business-карточке, остановись, покажи конфликт и через `AskUserQuestion` спроси: изменить задачу подготовки или сначала пересогласовать правило через `eda-business`. Не переноси противоречие молча в архитектуру или rules.
|
|
46
48
|
|
|
47
49
|
### 3. Определить область обновления
|
|
48
50
|
|
|
@@ -222,6 +224,7 @@ description: 'Готовит проект к работе с AI: проекти
|
|
|
222
224
|
Сделай `AGENTS.md` короткой входной картой для AI-агента. В нём должны быть:
|
|
223
225
|
- краткое описание проекта;
|
|
224
226
|
- ссылки на `docs/rules.md`, `docs/arch.md`, `docs/references.md` и другие действительно обязательные документы из `docs/`;
|
|
227
|
+
- ссылка на `docs/business.md`, если индекс существует, с требованием выбирать по нему только карточки, применимые к текущей задаче;
|
|
225
228
|
- требование прочитать их и следовать им до работы над проектом.
|
|
226
229
|
|
|
227
230
|
Не копируй в `AGENTS.md` правила, архитектуру, полное дерево папок, длинное описание стека, справочник команд или содержимое README. Если старый файл раздут или построен иначе, сократи или перестрой его целиком.
|
|
@@ -237,6 +240,7 @@ description: 'Готовит проект к работе с AI: проекти
|
|
|
237
240
|
- каждое правило задаёт проверяемое действие или запрет, а архитектурные границы не продублированы в форме императива;
|
|
238
241
|
- `docs/arch.md` объясняет подход, структуру папок, части системы и их связи без повторения правил;
|
|
239
242
|
- `docs/references.md` ссылается на все актуальные карточки и не содержит самих примеров;
|
|
243
|
+
- существующий `docs/business.md` учтён как вход, не изменён этим скилом и указан в `AGENTS.md`;
|
|
240
244
|
- каждая карточка самодостаточна, содержит законченный пример кода и не содержит ссылок или неподтверждённых элементов;
|
|
241
245
|
- для нового проекта без нескольких устойчивых реализаций не созданы выдуманные reference-карточки;
|
|
242
246
|
- `AGENTS.md` остаётся коротким и ведёт к обязательным документам;
|
|
@@ -255,6 +259,7 @@ description: 'Готовит проект к работе с AI: проекти
|
|
|
255
259
|
## Чего НЕ делать
|
|
256
260
|
|
|
257
261
|
- Править файлы вне разрешённого набора проектной документации.
|
|
262
|
+
- Создавать или обновлять `docs/business.md` и `docs/business/*.md` вместо `eda-business`.
|
|
258
263
|
- Спрашивать, какие документы обновлять, если пользователь их не назвал: по умолчанию обновляется весь набор.
|
|
259
264
|
- Просить выбрать режим перезаписи для каждого существующего файла.
|
|
260
265
|
- Ограничивать правила фиксированным количеством или разбавлять их пояснениями и предложениями.
|
|
@@ -13,11 +13,11 @@ description: 'Проводит полное read-only ревью diff, ветк
|
|
|
13
13
|
|
|
14
14
|
Если входа достаточно, продолжай без вопроса. Без аргументов ревьюй незакоммиченный `git diff HEAD`. Ссылка на PR/MR задаёт target однозначно. Если пользователь дал только корень удалённого репозитория, обязательно попроси указать PR/MR, ветку, коммит или файлы; весь репозиторий и последний PR автоматически не выбирай.
|
|
15
15
|
|
|
16
|
-
Разовые указания вида «без performance», «включи database», «architecture на opus» или «tests на gpt-5.6-sol» важнее `docs/settings.yaml` и действуют только на текущий запуск.
|
|
16
|
+
Разовые указания вида «без performance», «без business», «включи database», «включи business», «architecture на opus» или «tests на gpt-5.6-sol» важнее `docs/settings.yaml` и действуют только на текущий запуск.
|
|
17
17
|
|
|
18
18
|
## Настройки
|
|
19
19
|
|
|
20
|
-
Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version:
|
|
20
|
+
Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version: 3`. Используй `review.agents.<check>.mode` и `review.agents.<check>.model.<platform>`. Если файла нет или версия отличается, используй defaults и добавь предупреждение; старые настройки не применяй.
|
|
21
21
|
|
|
22
22
|
Допустимые режимы:
|
|
23
23
|
|
|
@@ -27,7 +27,7 @@ description: 'Проводит полное read-only ревью diff, ветк
|
|
|
27
27
|
|
|
28
28
|
Допустимые модели по умолчанию: Claude Code — `haiku`, `sonnet`, `opus`; Codex — `gpt-5.6-luna`, `gpt-5.6-terra`, `gpt-5.6-sol`. Неизвестное или отсутствующее значение замени default-значением конкретного агента и добавь предупреждение в покрытие.
|
|
29
29
|
|
|
30
|
-
Если `version:
|
|
30
|
+
Если `version: 3` существует, но раздела `review.agents` нет, используй defaults ниже и добавь предупреждение. Устаревшие поля `review.strict`, `review.include_code_quality` и раздел `review-check` не применяй. Существующий файл настроек не переписывай.
|
|
31
31
|
|
|
32
32
|
| Проверка | Default mode | Claude | Codex |
|
|
33
33
|
|---|---|---|---|
|
|
@@ -35,6 +35,7 @@ description: 'Проводит полное read-only ревью diff, ветк
|
|
|
35
35
|
| `architecture` | `auto` | `opus` | `gpt-5.6-sol` |
|
|
36
36
|
| `rules` | `always` | `haiku` | `gpt-5.6-luna` |
|
|
37
37
|
| `references` | `auto` | `haiku` | `gpt-5.6-luna` |
|
|
38
|
+
| `business` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
38
39
|
| `plan_alignment` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
39
40
|
| `code_quality` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
40
41
|
| `tests` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
@@ -60,9 +61,10 @@ description: 'Проводит полное read-only ревью diff, ветк
|
|
|
60
61
|
2. Прочитай `AGENTS.md`, `CLAUDE.md`, `docs/rules.md`, `docs/arch.md` и сам target настолько, чтобы выбрать проверки и передать агентам точный контекст. На этом шаге не делай собственное code review.
|
|
61
62
|
3. Определи `$PLAN_FILE`. Если его нет, используй `none` и не пытайся восстановить последний план наугад.
|
|
62
63
|
4. Определи `$REFERENCE_FILES`: если план содержит `sources.references`, используй их; иначе через `docs/references.md` выбери только применимые карточки для компонентов target. Если карточек нет, используй `none`.
|
|
63
|
-
5.
|
|
64
|
+
5. Определи `$BUSINESS_FILES`: сначала установи исходную задачу и фактически затронутое пользовательское или доменное поведение по текущему сообщению, плану и target. Если план содержит `sources.business`, используй только относящиеся к этому поведению пути; иначе прочитай `docs/business.md` и по описаниям выбери только применимые карточки. Если индекс отсутствует, подходящих карточек нет или изменения не затрагивают бизнес-поведение, используй `none`. Не загружай все карточки только потому, что индекс существует.
|
|
65
|
+
6. Сформируй краткий `$REVIEW_CONTEXT`: тип target, base, исходную задачу из текущего сообщения, плана, PR/MR title/body или явно связанного issue/артефакта, изменённые области, применимые документы и явные решения пользователя. Если надёжного описания задачи нет, явно напиши `task: unknown`, а не восстанавливай намерение по догадке. Не включай в контекст domain-инструкции агентов.
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
Текущая задача задаёт область и намерение изменений. Применимые business-карточки проверяют затронутое поведение, но не расширяют target. Если задача явно меняет правило карточки, это возможная рассинхронизация business-документации, которую должен классифицировать `eda-review-business`, а не основание молча объявить реализацию неверной.
|
|
66
68
|
|
|
67
69
|
## Выбрать проверки
|
|
68
70
|
|
|
@@ -71,6 +73,7 @@ description: 'Проводит полное read-only ревью diff, ветк
|
|
|
71
73
|
- `always` включай всегда, `off` всегда пропускай.
|
|
72
74
|
- `architecture` в `auto` включай при изменении границ модулей, зависимостей, публичных контрактов или разделения ответственности.
|
|
73
75
|
- `references` включай только при непустом `$REFERENCE_FILES`.
|
|
76
|
+
- `business` включай только при непустом `$BUSINESS_FILES` и изменении пользовательского или доменного поведения.
|
|
74
77
|
- `plan_alignment` включай только при непустом `$PLAN_FILE`.
|
|
75
78
|
- `security` включай для auth, permissions, внешнего ввода, файлов, сети, секретов, криптографии и других границ доверия.
|
|
76
79
|
- `performance` включай для запросов, пакетной обработки, кешей, конкурентности, памяти или горячих путей.
|
|
@@ -100,6 +103,7 @@ description: 'Проводит полное read-only ревью diff, ветк
|
|
|
100
103
|
TARGET: <target>
|
|
101
104
|
PLAN_FILE: <path | none>
|
|
102
105
|
REFERENCE_FILES: <paths | none>
|
|
106
|
+
BUSINESS_FILES: <paths | none>
|
|
103
107
|
MODEL: <фактически выбранная модель>
|
|
104
108
|
REVIEW_CONTEXT: <краткий общий контекст>
|
|
105
109
|
|
|
@@ -110,7 +114,7 @@ REVIEW_CONTEXT: <краткий общий контекст>
|
|
|
110
114
|
|
|
111
115
|
## Проверить ответы и обработать сбои
|
|
112
116
|
|
|
113
|
-
Проверь для каждого ответа `status`, `check`, фактически запрошенный `model` и структуру
|
|
117
|
+
Проверь для каждого ответа `status`, `check`, фактически запрошенный `model` и структуру `находки`. Несовпадение модели считай ошибкой контракта. Каждая находка означает дефект, который обязательно исправить. Находка без точного места, конкретного достижимого риска, доказательства и проверяемого способа исправления не подтверждена.
|
|
114
118
|
|
|
115
119
|
- При `blocked`, неверном YAML или отсутствующих обязательных полях один раз повтори того же агента на той же модели с исходным контекстом и описанием ошибки формата.
|
|
116
120
|
- `completed` означает успешно выполненную проверку. `not_applicable` перенеси в skipped с причиной и не повторяй.
|
|
@@ -124,9 +128,11 @@ REVIEW_CONTEXT: <краткий общий контекст>
|
|
|
124
128
|
|
|
125
129
|
1. Проверь находки по указанным evidence и отклони неподтверждённые.
|
|
126
130
|
2. Объедини дубли разных агентов в один пункт, сохранив все полезные доказательства.
|
|
127
|
-
3.
|
|
128
|
-
4.
|
|
129
|
-
5.
|
|
131
|
+
3. Оставь только конкретные ошибки, нарушения контрактов и существенные неточности, которые нельзя безопасно игнорировать. Косметические улучшения, вкусовой рефакторинг, спекулятивное усиление, необязательные тесты, документацию и оптимизации отклони, а не превращай в находку.
|
|
132
|
+
4. Для каждой принятой находки проверь точное место, доказательство, практическое влияние, минимальное исправление и способ проверки. Если хотя бы одного элемента нет, отклони находку.
|
|
133
|
+
5. Сам выставь итоговый `score` от 0 до 100 по серьёзности, вероятности, влиянию и общему качеству реализации. Не используй фиксированные вычеты, среднее или минимум оценок агентов. Ориентир: `100` — находок нет; `95–99` — только low; `80–94` — medium или несколько low; `60–79` — high; ниже `60` — critical или нужна существенная переработка. Любое снижение score связывай с принятыми находками; если находок нет, score равен `100`. Добавь короткое обоснование числа.
|
|
134
|
+
6. Установи `result: clean`, только если находок нет; при любой находке используй `result: changes-required` независимо от score.
|
|
135
|
+
7. Не выполняй дополнительное самостоятельное ревью и не добавляй новые domain-находки от себя.
|
|
130
136
|
|
|
131
137
|
Ревью содержит только проблемы. Не перечисляй выполненную работу, похвалу и успешные проверки. Исключение — короткий технический раздел покрытия.
|
|
132
138
|
|
|
@@ -140,6 +146,7 @@ target: <что проверено>
|
|
|
140
146
|
plan: <docs/plans/... | none>
|
|
141
147
|
score: <0..100>
|
|
142
148
|
status: <reviewed | reviewed-with-warnings>
|
|
149
|
+
result: <clean | changes-required>
|
|
143
150
|
date: <YYYY-MM-DD HH:MM>
|
|
144
151
|
checks:
|
|
145
152
|
- name: <check>
|
|
@@ -166,6 +173,10 @@ checks:
|
|
|
166
173
|
|
|
167
174
|
<Только подтверждённые plan_alignment-проблемы. Если плана нет: «Проверка плана пропущена: план не указан и не найден.»>
|
|
168
175
|
|
|
176
|
+
## Проблемы бизнес-логики
|
|
177
|
+
|
|
178
|
+
<Только подтверждённые business-проблемы: нарушение карточки или рассинхронизация карточки с явно изменившей правило задачей. Если проверка не запускалась или проблем нет — коротко укажи это.>
|
|
179
|
+
|
|
169
180
|
## Проблемы в коде
|
|
170
181
|
|
|
171
182
|
### 1. <короткий заголовок>
|
|
@@ -176,29 +187,18 @@ checks:
|
|
|
176
187
|
|
|
177
188
|
- **Тип:** <check>
|
|
178
189
|
- **Тяжесть:** <critical | high | medium | low>
|
|
179
|
-
- **Рекомендация:** <править обязательно | на усмотрение автора>
|
|
180
190
|
- **Файлы:** `<path:line>`
|
|
181
191
|
- **Что подтверждает проблему:** <evidence>
|
|
182
192
|
- **Как исправить:** <общий подход и конкретные шаги>
|
|
183
193
|
- **Тесты:** <что добавить или обновить>
|
|
184
194
|
|
|
185
|
-
## Рекомендации
|
|
186
|
-
|
|
187
|
-
### Править обязательно
|
|
188
|
-
- <номера или «Нет»>
|
|
189
|
-
|
|
190
|
-
### На усмотрение автора
|
|
191
|
-
- <номера или «Нет»>
|
|
192
|
-
|
|
193
|
-
### Не править
|
|
194
|
-
- <только явно отклонённые пункты или «Нет»>
|
|
195
195
|
```
|
|
196
196
|
|
|
197
197
|
Основная часть каждого замечания — главный ответ: простой язык, 1–3 коротких абзаца и контекст, понятный без чтения diff или плана. Файлы, строки, SQL, DTO и внутренние имена давай ниже в `Технические детали`.
|
|
198
198
|
|
|
199
199
|
## Финал
|
|
200
200
|
|
|
201
|
-
Коротко сообщи путь к ревью,
|
|
201
|
+
Коротко сообщи путь к ревью, status, result, score, количество находок, completed/skipped/warnings. При `changes-required` предложи `eda-fix-by-review`; при `clean` — `eda-commit`.
|
|
202
202
|
|
|
203
203
|
## Чего НЕ делать
|
|
204
204
|
|
|
@@ -21,8 +21,9 @@ description: 'Создаёт продуктовый или технически
|
|
|
21
21
|
4. **Каждая задача короткая, но однозначная.** Читатель должен понять границы задачи без дополнительного созвона.
|
|
22
22
|
5. **Можно чуть подробнее, если это снимает двусмысленность.** Допускается одно короткое описание: что должно появиться, для кого и какой результат ожидается.
|
|
23
23
|
6. **Не выдумывай обязательства.** Если пользователь дал только направление, формулируй разумный черновик и явно помечай предположения.
|
|
24
|
-
7. **Прочитай `docs/rules.md` и `docs/arch.md
|
|
25
|
-
8.
|
|
24
|
+
7. **Прочитай рамку проекта.** Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Сначала определи тему и границы текущего roadmap; затем через `docs/business.md` выбери только карточки, чьё описание прямо относится к этой теме. Если подходящих карточек нет, продолжай без business-контекста.
|
|
25
|
+
8. **Не разрешай конфликт молча.** Если задача противоречит применимой business-карточке, остановись, покажи конкретное противоречие и через `AskUserQuestion` спроси: изменить задачу roadmap или сначала пересогласовать правило через `eda-business`.
|
|
26
|
+
9. **Существующие roadmap-файлы учитывай только при явной необходимости.** Если пользователь просит продолжить, обновить или не дублировать прошлый roadmap — прочитай релевантные файлы из `docs/roadmaps/`.
|
|
26
27
|
|
|
27
28
|
## Интерактивные вопросы
|
|
28
29
|
|
|
@@ -46,7 +47,7 @@ description: 'Создаёт продуктовый или технически
|
|
|
46
47
|
|
|
47
48
|
### 2. Собрать минимальный контекст
|
|
48
49
|
|
|
49
|
-
Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Не делай глубокое исследование кода, если пользователь прямо не просит привязать roadmap к текущему состоянию проекта.
|
|
50
|
+
Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Определи продуктовую тему roadmap, затем прочитай `docs/business.md`, если индекс существует, и только применимые по описанию карточки. Business-карточки уточняют требования затронутой темы, но не расширяют roadmap на другие домены. Не делай глубокое исследование кода, если пользователь прямо не просит привязать roadmap к текущему состоянию проекта.
|
|
50
51
|
|
|
51
52
|
Если пользователь просит продолжить или обновить существующий roadmap:
|
|
52
53
|
- найди релевантный файл по указанному пути или теме;
|
|
@@ -73,6 +74,7 @@ status: draft
|
|
|
73
74
|
sources:
|
|
74
75
|
rules: <путь или —>
|
|
75
76
|
arch: <путь или —>
|
|
77
|
+
business: [<пути к применимым карточкам или пусто>]
|
|
76
78
|
previous_roadmap: <путь или —>
|
|
77
79
|
---
|
|
78
80
|
|
|
@@ -106,6 +108,7 @@ Quality gate перед сохранением:
|
|
|
106
108
|
- есть ровно один основной список задач в разделе `Задачи`;
|
|
107
109
|
- каждая задача имеет короткое название и понятное описание;
|
|
108
110
|
- задачи не содержат деталей реализации: файлов, библиотек, API, команд, миграций, схем таблиц, тестовых стратегий;
|
|
111
|
+
- `sources.business` содержит только карточки, применимые к теме roadmap, либо пустой список;
|
|
109
112
|
- roadmap можно использовать как вход для `eda-explore` или `eda-plan`, но сам он не является исследованием или планом реализации.
|
|
110
113
|
|
|
111
114
|
### 5. Финал
|
|
@@ -11,7 +11,7 @@ description: 'Публикует готовое ревью из `docs/reviews/`
|
|
|
11
11
|
|
|
12
12
|
Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настройки.
|
|
13
13
|
|
|
14
|
-
Поддерживается только `version:
|
|
14
|
+
Поддерживается только `version: 3`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолт: `send-review.close_previous_reviews: false`.
|
|
15
15
|
|
|
16
16
|
| Настройка | Значения | Аргументы в сообщении |
|
|
17
17
|
|---|---|---|
|
|
@@ -53,9 +53,9 @@ description: 'Публикует готовое ревью из `docs/reviews/`
|
|
|
53
53
|
### 2. Выбрать ревью и что отправлять
|
|
54
54
|
Сначала разбери текст рядом с вызовом: путь к ревью, название или часть названия, «последнее ревью», PR (`PR 12`, `#12`), статус отправки (`comment`, `review-comment`, `approve`, `request-changes`) и указание закрыть или сохранить предыдущие ревью.
|
|
55
55
|
|
|
56
|
-
Если найдено ровно одно ревью — продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста — остановись с понятным вопросом или статусом `blocked: нужно ревью`. Прочитай файл целиком:
|
|
56
|
+
Если найдено ровно одно ревью — продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста — остановись с понятным вопросом или статусом `blocked: нужно ревью`. Прочитай файл целиком: result, оценку и замечания. Отсутствие статуса отправки само по себе не считается недостатком входа и не требует вопроса.
|
|
57
57
|
|
|
58
|
-
**Что отправлять.** По умолчанию — все замечания. Если в тексте указано подмножество, отправь только его. Синтаксис свободный, распознавай по смыслу: по номерам («пункты 1, 3, 5»)
|
|
58
|
+
**Что отправлять.** По умолчанию — все замечания. Если в тексте указано подмножество, отправь только его. Синтаксис свободный, распознавай по смыслу: по номерам («пункты 1, 3, 5») или по типу («только security» → замечания с этим `Тип`). У находок нет разных степеней обязательности: каждый отправляемый пункт требует исправления. Выбор влияет и на сводку, и на комментарии к строкам. Для старого формата отправляй только раздел `Править обязательно`; предложения из остальных групп отбрасывай.
|
|
59
59
|
|
|
60
60
|
### 3. Найти целевой PR
|
|
61
61
|
Если номер PR указан в тексте пользователя — используй его. Иначе попробуй `gh pr view --json number,url,headRefName` — если у текущей ветки уже есть PR, возьми его номер.
|
|
@@ -73,7 +73,7 @@ Review отправляется всегда; здесь выбирается т
|
|
|
73
73
|
| явно указано `comment` / `review-comment` | `COMMENT` | не задавать |
|
|
74
74
|
| статус не указан | `COMMENT` | не задавать |
|
|
75
75
|
|
|
76
|
-
`comment` и `review-comment` означают review без решения о принятии изменений (`event=COMMENT`) — обычный комментарий-ревью, который тоже несёт сводку и комментарии к строкам. Явно приложенный или названный пользователем контекст текущего вызова учитывай наравне с текстом рядом со скиллом. Не выводи статус из score,
|
|
76
|
+
`comment` и `review-comment` означают review без решения о принятии изменений (`event=COMMENT`) — обычный комментарий-ревью, который тоже несёт сводку и комментарии к строкам. Явно приложенный или названный пользователем контекст текущего вызова учитывай наравне с текстом рядом со скиллом. Не выводи статус из result, score, старого обсуждения или предыдущих запусков. Если в текущем контексте одновременно указаны несовместимые статусы и приоритет неясен — `AskUserQuestion` с тремя вариантами.
|
|
77
77
|
|
|
78
78
|
### 5. Собрать сводку и комментарии к строкам
|
|
79
79
|
Из выбранных пунктов собери две части.
|
|
@@ -84,12 +84,12 @@ Review отправляется всегда; здесь выбирается т
|
|
|
84
84
|
## Ревью: <заголовок>
|
|
85
85
|
|
|
86
86
|
**Оценка:** N/100. <одно-два предложения почему>
|
|
87
|
+
**Результат:** <clean | changes-required>
|
|
87
88
|
|
|
88
89
|
<короткое резюме: что отправлено и общий вывод>
|
|
89
90
|
|
|
90
|
-
###
|
|
91
|
-
|
|
92
|
-
- **На усмотрение автора:** 2, 4
|
|
91
|
+
### Замечания
|
|
92
|
+
1. **[тип]** <краткая суть и требуемое исправление>
|
|
93
93
|
|
|
94
94
|
### Замечания вне diff
|
|
95
95
|
1. **[тип]** `path/file.py:42` — <что не так>. → <что предлагаешь>
|
|
@@ -170,7 +170,7 @@ gh api graphql -f query='mutation($id: ID!) { resolveReviewThread(input: {thread
|
|
|
170
170
|
- Делать само ревью или править замечания — это `eda-review` / `eda-fix-by-review`.
|
|
171
171
|
- Отправлять всё одним обычным комментарием PR, когда строки можно привязать к diff — обычный комментарий только fallback при отсутствии diff.
|
|
172
172
|
- Терять замечания вне diff — они идут в сводку отдельным разделом.
|
|
173
|
-
- Выводить `approve` или `request-changes` из
|
|
173
|
+
- Выводить `approve` или `request-changes` из result, score или не связанного с вызовом старого контекста — без явного статуса в контексте текущего вызова всегда `COMMENT`.
|
|
174
174
|
- Скрывать или резолвить чужие, ручные или не связанные с предыдущими отправками `eda-send-review` комментарии.
|
|
175
175
|
- Закрывать предыдущие отправки до успешной публикации нового ревью.
|
|
176
176
|
- Передавать тело через `-b "..."` со спецсимволами — только `--input` (Reviews API) или `--body-file` (fallback).
|