@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.
Files changed (43) hide show
  1. package/MIGRATION.md +5 -3
  2. package/README.md +18 -19
  3. package/agents/eda-plan-review-api/prompt.md +5 -4
  4. package/agents/eda-plan-review-architecture/prompt.md +5 -4
  5. package/agents/eda-plan-review-database/prompt.md +5 -4
  6. package/agents/eda-plan-review-execution/agent.json +1 -1
  7. package/agents/eda-plan-review-execution/prompt.md +5 -4
  8. package/agents/eda-plan-review-feasibility/prompt.md +5 -4
  9. package/agents/eda-plan-review-frontend/prompt.md +5 -4
  10. package/agents/eda-plan-review-performance/prompt.md +5 -4
  11. package/agents/eda-plan-review-previous/agent.json +1 -1
  12. package/agents/eda-plan-review-previous/prompt.md +5 -5
  13. package/agents/eda-plan-review-requirements/prompt.md +5 -4
  14. package/agents/eda-plan-review-rules/prompt.md +5 -4
  15. package/agents/eda-plan-review-security/prompt.md +5 -4
  16. package/agents/eda-plan-review-verification/prompt.md +5 -4
  17. package/agents/eda-review-api/prompt.md +4 -3
  18. package/agents/eda-review-architecture/prompt.md +4 -3
  19. package/agents/eda-review-business/prompt.md +4 -3
  20. package/agents/eda-review-code-quality/prompt.md +5 -4
  21. package/agents/eda-review-correctness/prompt.md +4 -3
  22. package/agents/eda-review-database/prompt.md +4 -3
  23. package/agents/eda-review-documentation/prompt.md +4 -3
  24. package/agents/eda-review-frontend/prompt.md +4 -3
  25. package/agents/eda-review-performance/prompt.md +4 -3
  26. package/agents/eda-review-plan-alignment/prompt.md +4 -3
  27. package/agents/eda-review-previous-reviews/prompt.md +5 -4
  28. package/agents/eda-review-references/prompt.md +4 -3
  29. package/agents/eda-review-rules/prompt.md +4 -3
  30. package/agents/eda-review-security/prompt.md +4 -3
  31. package/agents/eda-review-tests/prompt.md +4 -3
  32. package/lib/install.js +3 -3
  33. package/package.json +1 -1
  34. package/skills/eda-business/SKILL.md +47 -32
  35. package/skills/eda-fix-by-review/SKILL.md +41 -58
  36. package/skills/eda-orhestra/SKILL.md +1 -1
  37. package/skills/eda-plan/SKILL.md +18 -23
  38. package/skills/eda-plan-polish/SKILL.md +12 -12
  39. package/skills/eda-plan-review/SKILL.md +25 -24
  40. package/skills/eda-plan-review-fix/SKILL.md +22 -39
  41. package/skills/eda-polish/SKILL.md +19 -31
  42. package/skills/eda-review/SKILL.md +8 -16
  43. package/skills/eda-send-review/SKILL.md +7 -7
@@ -1,30 +1,15 @@
1
1
  ---
2
2
  name: eda-plan-review-fix
3
- description: 'Исправляет готовый план по сохранённому plan-review и фиксирует решения по findings.'
3
+ description: 'Исправляет готовый план по всем находкам сохранённого plan-review.'
4
4
  ---
5
5
 
6
6
  # Скил: Исправитель плана по ревью (eda-plan-review-fix)
7
7
 
8
- Применяй подтверждённые findings из `docs/plan-reviews/` только к связанному плану. Не делай новое ревью: твой контракт — точечно изменить основные разделы плана и сохранить проверяемую цепочку SHA-256.
8
+ Применяй подтверждённые находки из `docs/plan-reviews/` только к связанному плану. Не делай новое ревью: твой контракт — точечно изменить основные разделы плана и сохранить проверяемую цепочку SHA-256.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
12
- Разбери путь или название review, «последнее ревью», режим `apply-optional`, ограничения и явные решения по ID. Если вход однозначен, продолжай без вопроса. При нескольких равных review или противоречивом target используй `AskUserQuestion`.
13
-
14
- ## Режимы
15
-
16
- Обычный режим:
17
-
18
- - все required применяй без дополнительного подтверждения;
19
- - optional собери в один-два раунда `AskUserQuestion`;
20
- - waived и отклонённые findings не применяй.
21
-
22
- `apply-optional`:
23
-
24
- - все required применяй;
25
- - optional применяй, если правка конкретна, обратима, остаётся в scope и улучшает исполнимость;
26
- - иначе пометь optional как `waived` с конкретной причиной;
27
- - продуктовое решение, конфликт с business/rules/architecture или расширение scope всё равно требует пользователя.
12
+ Разбери путь или название review, «последнее ревью», ограничения и явные решения пользователя. Если вход однозначен, продолжай без вопроса. При нескольких равных review или противоречивом target используй `AskUserQuestion`.
28
13
 
29
14
  ## Вопросы
30
15
 
@@ -37,20 +22,21 @@ description: 'Исправляет готовый план по сохранён
37
22
  1. Работай только с review из `docs/plan-reviews/` и его `plan` из `docs/plans/`.
38
23
  2. Вычисли SHA-256 текущего плана до правок. Он обязан совпадать с `plan_sha256` review. При несовпадении остановись: review устарел, нужен новый `eda-plan-review`.
39
24
  3. Перед правкой прочитай план, `docs/rules.md`, `docs/arch.md`, только применимые `sources.business`, `sources.references` и `sources.research`.
40
- 4. Не переоценивай findings и не создавай новые. Если finding недоказан, противоречит контексту или непонятен, остановись и попроси повторное review либо решение пользователя.
41
- 5. Required нельзя автономно отклонить или сделать waived.
42
- 6. Встраивай правки в `Целевой алгоритм`, `Контракты реализации`, фазы, тесты, логирование и эксплуатацию. Не создавай длинный журнал ревью в теле плана.
43
- 7. Сохраняй ID задач и прямые зависимости; при структурной правке актуализируй все ссылки.
44
- 8. Не правь код, конфиги, зависимости, миграции или другие документы. Не запускай проверки проекта.
45
-
46
- ## Применить findings
47
-
48
- 1. Прочитай раздел `Gate`, все открытые findings и `Отклонённые предложения`.
49
- 2. До редактирования собери все вопросы и optional-решения. Не делай частичную правку до ответа на блокирующий вопрос.
50
- 3. Примени required и выбранные optional одним связным изменением плана.
51
- 4. Для каждого ID зафиксируй `applied` или `waived`; не меняй fingerprint.
25
+ 4. Не переоценивай находки и не создавай новые. Каждая находка в итоговом review требует исправления. Если находка недоказана, противоречит контексту или непонятна, остановись и попроси повторное review либо решение пользователя.
26
+ 5. Не пропускай находку и не заменяй её пожеланием на будущее. Продуктовый выбор, конфликт с business/rules/architecture или расширение scope передай пользователю одним блокирующим вопросом до любых правок.
27
+ 6. Делай минимально достаточный diff. Сначала удаляй лишнее или заменяй существующую формулировку; не добавляй новый абзац, если достаточно одной строки, не повторяй сведения между разделами и не добавляй rationale, примеры или фон, которых не требует находка.
28
+ 7. Встраивай правки в `Целевой алгоритм`, `Контракты реализации`, фазы, тесты, логирование и эксплуатацию. Не создавай длинный журнал ревью в теле плана.
29
+ 8. Сохраняй ID задач и прямые зависимости; при структурной правке актуализируй все ссылки.
30
+ 9. Не правь код, конфиги, зависимости, миграции или другие документы. Не запускай проверки проекта.
31
+
32
+ ## Применить находки
33
+
34
+ 1. Прочитай раздел `Gate`, все открытые находки и `Отклонённые предложения`.
35
+ 2. До редактирования собери все реальные блокирующие вопросы. Не делай частичную правку до ответа.
36
+ 3. Примени все открытые находки одним связным минимальным изменением плана. Отклонённые предложения не применяй.
37
+ 4. Для каждого ID зафиксируй `applied`; не меняй fingerprint.
52
38
  5. Заранее определи `$FIX_FILE`, обнови front matter плана полями `status`, `plan_review` и `plan_review_fix`, затем вычисли окончательный SHA-256 как `$AFTER_SHA256`.
53
- 6. Если обязательные правки были, но итоговый SHA-256 не изменился, остановись `blocked: fix не изменил план` и не выдавай успех.
39
+ 6. Если находки были, но итоговый SHA-256 не изменился, остановись `blocked: fix не изменил план` и не выдавай успех.
54
40
 
55
41
  После успешного изменения:
56
42
 
@@ -74,32 +60,29 @@ date: <YYYY-MM-DD HH:MM>
74
60
 
75
61
  # Исправления плана по ревью: <название>
76
62
 
77
- ## Применённые findings
63
+ ## Применённые находки
78
64
  | ID | Что изменено | Раздел плана | Статус |
79
65
  |---|---|---|---|
80
66
  | PR-001 | <конкретная правка> | <раздел> | applied |
81
67
 
82
- ## Waived optional
83
- | ID | Причина | Новые доказательства для пересмотра |
84
- |---|---|---|
85
-
86
68
  ## Цепочка
87
69
  - **Before SHA-256:** `<hash>`
88
70
  - **After SHA-256:** `<hash>`
89
71
  - **Нужен подтверждающий review:** да
90
72
  ```
91
73
 
92
- После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком waived ID. Не дублируй раздел при повторном продолжении того же запуска.
74
+ После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком applied ID. Не дублируй раздел при повторном продолжении того же запуска.
93
75
 
94
76
  ## Финал
95
77
 
96
- Сообщи пути к plan/review/fix, before/after SHA-256, applied/waived, оставшиеся блокеры и что изменения не закоммичены. Следующий шаг — `eda-plan-review` для подтверждения или возврат вызывающему `eda-plan-polish`.
78
+ Сообщи пути к plan/review/fix, before/after SHA-256, applied ID, оставшиеся блокеры и что изменения не закоммичены. Следующий шаг — `eda-plan-review` для подтверждения или возврат вызывающему `eda-plan-polish`.
97
79
 
98
80
  ## Чего НЕ делать
99
81
 
100
82
  - Делать новое ревью или выставлять score.
101
83
  - Исправлять код или файлы вне выбранного плана, review и fix-отчёта.
102
84
  - Применять stale review к другому SHA-256.
103
- - Молча отклонять required или продуктовый конфликт.
85
+ - Молча пропускать находку или самостоятельно разрешать продуктовый конфликт.
86
+ - Раздувать план пояснениями и повторами вместо минимального удаления или замены.
104
87
  - Добавлять журнал итераций в тело плана.
105
88
  - Коммитить, запускать тесты, lint, build, typecheck, миграции или другой CLI.
@@ -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 apply-optional` → повторное `eda-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 apply-optional` запускай отдельным изолированным субагентом. Основной агент не делает их работу.
18
+ 1. Каждый вызов `eda-review` и `eda-fix-by-review` запускай отдельным изолированным субагентом. Основной агент не делает их работу.
20
19
  2. Если нативные субагенты недоступны, остановись; не заменяй шаги CLI-процессами.
21
- 3. Сравнивай порог только со `score` полного ревью со статусом `reviewed` или `reviewed-with-warnings`.
22
- 4. Все пункты «править обязательно» исправь. Для каждого optional-пункта fix-агент сам решает, применять ли его, и сохраняет причины отклонения, чтобы следующие ревьюеры не повторяли решение без новых аргументов.
20
+ 3. Успех требует одновременно: полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean`, ноль находок и `score >= threshold`.
21
+ 4. Любая находка обязательно исправляется независимо от score. Порог не превращает найденную проблему в допустимую.
23
22
  5. Не коммить и не отправляй ревью.
24
- 6. Останавливайся при повторном сбое обязательной проверки review, блокере fix-агента, отсутствии применимых замечаний ниже порога или если score не растёт два круга подряд.
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` и внутренний журнал: номер итерации, review file, score, fix report и причина продолжения.
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 остановился из-за обязательного агента, останови весь цикл. `reviewed-with-warnings` из-за недоступных previous reviews разрешён и не блокирует цикл.
46
- 3. Если `score >= threshold`, заверши успешно.
47
- 4. Если score ниже порога, прочитай рекомендации. Если обязательных и optional-пунктов нет, остановись `blocked: нет применимых замечаний для повышения оценки`.
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 apply-optional для <REVIEW_FILE>.
52
- Примени все обязательные замечания. По каждому optional сам реши, применять ли его; отклонённые решения сохрани с причиной.
49
+ Используй eda-fix-by-review для <REVIEW_FILE>.
50
+ Примени все находки минимальными достаточными правками и выполни проверки.
53
51
  Верни путь к fix-отчёту и результат проверок.
54
52
  ```
55
53
 
56
- 6. При успешных исправлениях начни следующую итерацию с новым полным `eda-review`.
54
+ 5. После успешных исправлений начни новую итерацию с полным `eda-review`.
57
55
 
58
- Если score не растёт два проверенных круга подряд, остановись раньше лимита. Если достигнут лимит, не скрывай незавершённую сходимость.
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
- - Механически применять все optional-пункты.
79
- - Терять причины отклонённых optional-решений.
66
+ - Считать цикл успешным только по score при наличии находок.
67
+ - Выбирать или отклонять принятые находки.
80
68
  - Переписывать `docs/settings.yaml`, правила или архитектуру ради score.
81
69
  - Коммитить, пушить или отправлять ревью.
@@ -114,7 +114,7 @@ REVIEW_CONTEXT: <краткий общий контекст>
114
114
 
115
115
  ## Проверить ответы и обработать сбои
116
116
 
117
- Проверь для каждого ответа `status`, `check`, фактически запрошенный `model` и структуру `findings`. Несовпадение модели считай ошибкой контракта. Находка без конкретного риска и доказательства не подтверждена.
117
+ Проверь для каждого ответа `status`, `check`, фактически запрошенный `model` и структуру `находки`. Несовпадение модели считай ошибкой контракта. Каждая находка означает дефект, который обязательно исправить. Находка без точного места, конкретного достижимого риска, доказательства и проверяемого способа исправления не подтверждена.
118
118
 
119
119
  - При `blocked`, неверном YAML или отсутствующих обязательных полях один раз повтори того же агента на той же модели с исходным контекстом и описанием ошибки формата.
120
120
  - `completed` означает успешно выполненную проверку. `not_applicable` перенеси в skipped с причиной и не повторяй.
@@ -128,9 +128,11 @@ REVIEW_CONTEXT: <краткий общий контекст>
128
128
 
129
129
  1. Проверь находки по указанным evidence и отклони неподтверждённые.
130
130
  2. Объедини дубли разных агентов в один пункт, сохранив все полезные доказательства.
131
- 3. Распредели проблемы по тяжести и рекомендации `required` или `optional`.
132
- 4. Сам выставь итоговый `score` от 0 до 100 по серьёзности, вероятности, влиянию и общему качеству реализации. Не используй фиксированные вычеты, среднее или минимум оценок агентов. Добавь короткое обоснование числа.
133
- 5. Не выполняй дополнительное самостоятельное ревью и не добавляй новые domain-находки от себя.
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-находки от себя.
134
136
 
135
137
  Ревью содержит только проблемы. Не перечисляй выполненную работу, похвалу и успешные проверки. Исключение — короткий технический раздел покрытия.
136
138
 
@@ -144,6 +146,7 @@ target: <что проверено>
144
146
  plan: <docs/plans/... | none>
145
147
  score: <0..100>
146
148
  status: <reviewed | reviewed-with-warnings>
149
+ result: <clean | changes-required>
147
150
  date: <YYYY-MM-DD HH:MM>
148
151
  checks:
149
152
  - name: <check>
@@ -184,29 +187,18 @@ checks:
184
187
 
185
188
  - **Тип:** <check>
186
189
  - **Тяжесть:** <critical | high | medium | low>
187
- - **Рекомендация:** <править обязательно | на усмотрение автора>
188
190
  - **Файлы:** `<path:line>`
189
191
  - **Что подтверждает проблему:** <evidence>
190
192
  - **Как исправить:** <общий подход и конкретные шаги>
191
193
  - **Тесты:** <что добавить или обновить>
192
194
 
193
- ## Рекомендации
194
-
195
- ### Править обязательно
196
- - <номера или «Нет»>
197
-
198
- ### На усмотрение автора
199
- - <номера или «Нет»>
200
-
201
- ### Не править
202
- - <только явно отклонённые пункты или «Нет»>
203
195
  ```
204
196
 
205
197
  Основная часть каждого замечания — главный ответ: простой язык, 1–3 коротких абзаца и контекст, понятный без чтения diff или плана. Файлы, строки, SQL, DTO и внутренние имена давай ниже в `Технические детали`.
206
198
 
207
199
  ## Финал
208
200
 
209
- Коротко сообщи путь к ревью, статус, score, количество обязательных и optional-проблем, completed/skipped/warnings. Предложи `eda-fix-by-review` для исправления или `eda-commit`, если результат приемлем.
201
+ Коротко сообщи путь к ревью, status, result, score, количество находок, completed/skipped/warnings. При `changes-required` предложи `eda-fix-by-review`; при `clean` — `eda-commit`.
210
202
 
211
203
  ## Чего НЕ делать
212
204
 
@@ -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»), по обязательности («только обязательные» → раздел «Править обязательно»), по типу («только security» → замечания с этим `Тип`). Выбор влияет и на сводку, и на комментарии к строкам.
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, раздела рекомендаций, не связанного с вызовом старого обсуждения или предыдущих запусков. Если в текущем контексте одновременно указаны несовместимые статусы и приоритет неясен — `AskUserQuestion` с тремя вариантами.
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
- - **Править обязательно:** 1, 3, 5
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` из score, рекомендаций или не связанного с вызовом старого контекста — без явного статуса в контексте текущего вызова всегда `COMMENT`.
173
+ - Выводить `approve` или `request-changes` из result, score или не связанного с вызовом старого контекста — без явного статуса в контексте текущего вызова всегда `COMMENT`.
174
174
  - Скрывать или резолвить чужие, ручные или не связанные с предыдущими отправками `eda-send-review` комментарии.
175
175
  - Закрывать предыдущие отправки до успешной публикации нового ревью.
176
176
  - Передавать тело через `-b "..."` со спецсимволами — только `--input` (Reviews API) или `--body-file` (fallback).