@gian-tiaga/eda 3.5.0 → 3.7.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.
@@ -5,21 +5,28 @@ description: 'Проводит полное read-only ревью diff, ветк
5
5
 
6
6
  # Скил: Ревьюер (eda-review)
7
7
 
8
- Работай как оркестратор установленных `eda-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их системные prompts в task-сообщения. Определи target и контекст, выбери проверки, запусти агентов, проверь их структурированные ответы, объедини подтверждённые находки и сохрани одно итоговое ревью.
8
+ Проводи одно полное read-only ревью в выбранном режиме исполнения. В `subagents` оркестрируй установленных `eda-review-*` агентов и сам не выполняй их специализированные роли. В `main` выполни те же выбранные проверки самостоятельно по общей матрице, не запуская leaf-субагентов. В обоих режимах сохрани один итоговый отчёт с одинаковыми требованиями к доказательствам и результату.
9
9
 
10
10
  ## Вход из сообщения пользователя
11
11
 
12
- Текст рядом с вызовом скилла в текущем сообщении — главный вход. Сначала разбери target, план, ссылку, ограничения, отключённые или принудительно включённые проверки и разовые модели.
12
+ Текст рядом с вызовом скилла в текущем сообщении — главный вход. Сначала разбери target, план, ссылку, ограничения, режим `subagents` или `main`, отключённые или принудительно включённые проверки и разовые модели.
13
13
 
14
14
  Если входа достаточно, продолжай без вопроса. Без аргументов ревьюй незакоммиченный `git diff HEAD`. Ссылка на PR/MR задаёт target однозначно. Если пользователь дал только корень удалённого репозитория, обязательно попроси указать PR/MR, ветку, коммит или файлы; весь репозиторий и последний PR автоматически не выбирай.
15
15
 
16
- Разовые указания вида «без performance», «без business», «включи database», «включи business», «architecture на opus» или «tests на gpt-5.6-sol» важнее `docs/settings.yaml` и действуют только на текущий запуск.
16
+ Явное слово `subagents` или `main` задаёт режим только для текущего запуска и важнее `docs/settings.yaml`. Разовые указания вида «без performance», «без business», «включи database», «включи business», «architecture на opus» или «tests на gpt-5.6-sol» также важнее настроек.
17
17
 
18
18
  Если во входе даны ранее отклонённые находки или путь к предыдущему ревью, прочитай их раздел «Отклонено» и не принимай эти находки повторно без нового доказательства.
19
19
 
20
20
  ## Настройки
21
21
 
22
- Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version: 3`. Используй `review.agents.<check>.mode` и `review.agents.<check>.model.<platform>`. Если файла нет или версия отличается, используй defaults и добавь предупреждение; старые настройки не применяй.
22
+ Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version: 3`. Используй `review.execution`, `review.agents.<check>.mode` и `review.agents.<check>.model.<platform>`. Если файла нет или версия отличается, используй defaults и добавь предупреждение; старые настройки не применяй.
23
+
24
+ `review.execution` принимает:
25
+
26
+ - `subagents` — каждая выбранная проверка выполняется отдельным установленным агентом;
27
+ - `main` — все выбранные проверки выполняет текущий агент в одном контексте.
28
+
29
+ Default — `subagents`. При неизвестном или отсутствующем значении используй default и добавь предупреждение. Сначала выбери `$EXECUTION` по явному режиму из текущего сообщения, затем по настройке, иначе по default.
23
30
 
24
31
  Допустимые режимы:
25
32
 
@@ -27,7 +34,9 @@ description: 'Проводит полное read-only ревью diff, ветк
27
34
  - `auto` — запускать только когда проверка применима;
28
35
  - `off` — не запускать.
29
36
 
30
- Допустимые модели по умолчанию: Claude Code — `haiku`, `sonnet`, `opus`; Codex — `gpt-5.6-luna`, `gpt-5.6-terra`, `gpt-5.6-sol`. Неизвестное или отсутствующее значение замени default-значением конкретного агента и добавь предупреждение в покрытие.
37
+ Допустимые модели по умолчанию для `subagents`: Claude Code — `haiku`, `sonnet`, `opus`; Codex — `gpt-5.6-luna`, `gpt-5.6-terra`, `gpt-5.6-sol`. Неизвестное или отсутствующее значение замени default-значением конкретного агента и добавь предупреждение в покрытие.
38
+
39
+ В `main` все проверки выполняются текущей моделью агента. Настройки и разовые overrides моделей отдельных проверок не применяются; добавь об этом один warning в покрытие, только если пользователь явно передал такой override. Для completed-проверок укажи фактическую текущую модель, если хост её сообщает, иначе `current`.
31
40
 
32
41
  Если `version: 3` существует, но раздела `review.agents` нет, используй defaults ниже и добавь предупреждение. Устаревшие поля `review.strict`, `review.include_code_quality` и раздел `review-check` не применяй. Существующий файл настроек не переписывай.
33
42
 
@@ -60,7 +69,7 @@ description: 'Проводит полное read-only ревью diff, ветк
60
69
  ## Подготовить контекст
61
70
 
62
71
  1. Определи `$TARGET`: явный файл, папка, URL PR/MR, ветка, коммит, указанный diff или `git diff HEAD` без аргументов. Для GitHub/GitLab URL получи metadata и diff read-only командами `gh`/`glab`; для другого сервиса используй доступное read-only средство. Если основной diff недоступен, остановись: warning разрешён только для недоступных прошлых обсуждений, а не для самого target.
63
- 2. Прочитай `AGENTS.md`, `CLAUDE.md`, `docs/rules.md`, `docs/arch.md` и сам target настолько, чтобы выбрать проверки и передать агентам точный контекст. На этом шаге не делай собственное code review.
72
+ 2. Прочитай `AGENTS.md`, `CLAUDE.md`, `docs/rules.md`, `docs/arch.md` и сам target настолько, чтобы выбрать проверки и сформировать точный контекст. В `subagents` на этом шаге не делай собственное code review; в `main` эти документы и target станут общей основой всех проходов и не должны загружаться заново для каждой проверки.
64
73
  3. Определи `$PLAN_FILE`. Если его нет, используй `none` и не пытайся восстановить последний план наугад.
65
74
  4. Определи `$REFERENCE_FILES`: если план содержит `sources.references`, используй их; иначе через `docs/references.md` выбери только применимые карточки для компонентов target. Если карточек нет, используй `none`.
66
75
  5. Определи `$BUSINESS_FILES`: сначала установи исходную задачу и фактически затронутое пользовательское или доменное поведение по текущему сообщению, плану и target. Если план содержит `sources.business`, используй только относящиеся к этому поведению пути; иначе прочитай `docs/business.md` и по описаниям выбери только применимые карточки. Если индекс отсутствует, подходящих карточек нет или изменения не затрагивают бизнес-поведение, используй `none`. Не загружай все карточки только потому, что индекс существует.
@@ -87,7 +96,21 @@ description: 'Проводит полное read-only ревью diff, ветк
87
96
 
88
97
  Для каждой проверки сохрани причину `selected` или `skipped`; она попадёт в покрытие.
89
98
 
90
- ## Запустить packaged-агентов
99
+ ## Выполнить проверки
100
+
101
+ ### Режим main
102
+
103
+ Всю работу выполни сам как основной агент текущего workflow. Не запускай `eda-review-*` агентов, другие субагенты или отдельный CLI. Вызывающий workflow не должен оборачивать `eda-review` в отдельного субагента, если передал режим `main`.
104
+
105
+ Прочитай [references/review-matrix.md](references/review-matrix.md) целиком. Это обязательный контракт всех специализированных проходов в `main`; не читай packaged prompts из `agents/eda-review-*` и не пытайся вызвать их как скилы.
106
+
107
+ 1. Прочитай target и общий код вокруг изменений один раз. Применимые инструкции, `$PLAN_FILE`, `$REFERENCE_FILES` и `$BUSINESS_FILES` также загрузи один раз и только когда соответствующая проверка выбрана.
108
+ 2. Последовательно выполни отдельный проход по каждой выбранной проверке из матрицы. Не смешивай области и не пропускай проход из-за того, что соседняя проверка уже изучала тот же код.
109
+ 3. Для каждого прохода сохрани внутренний результат: `check`, `status`, `summary` и кандидаты в находки с `severity`, `explanation`, `evidence`, `repro`, `fix` и `tests`. YAML между проходами не нужен.
110
+ 4. Если проверка оказалась неприменима, перенеси её в skipped с конкретной причиной. Если обязательную проверку невозможно выполнить из-за недоступного target или контекста, остановись без итогового файла. Недоступные предыдущие удалённые обсуждения преврати в warning и продолжай.
111
+ 5. После всех проходов проверь доказательства, дедуплицируй кандидатов, выставь score и сохрани итог по общим правилам ниже. Не запускай отдельный редакторский или подтверждающий проход.
112
+
113
+ ### Режим subagents
91
114
 
92
115
  Имя агента получается из имени проверки:
93
116
 
@@ -96,7 +119,7 @@ description: 'Проводит полное read-only ревью diff, ветк
96
119
  - `previous_reviews` → `eda-review-previous-reviews`;
97
120
  - остальные → `eda-review-<check>`.
98
121
 
99
- В Claude Code запускай установленный custom agent через `Agent` tool. Установленная Claude-копия самого `eda-review` выполняется с `context: fork`, поэтому review-оркестрация не должна оставаться в контексте вызвавшего `eda-polish` или другого скила. В Codex каждого установленного custom agent запускай через `spawn_agent` с `fork_turns: "none"`; не оставляй `fork_turns` по умолчанию и не передавай историю review-runner. Передай выбранную модель как runtime override. Если хост не умеет применить выбранную модель или нативные субагенты недоступны, остановись: не выполняй роли главным агентом и не создавай отдельные CLI-процессы.
122
+ В Claude Code запускай установленный custom agent через `Agent` tool. В Codex каждого установленного custom agent запускай через `spawn_agent` с `fork_turns: "none"`; не оставляй `fork_turns` по умолчанию и не передавай историю основного агента. Передай выбранную модель как runtime override. Если хост не умеет применить выбранную модель или нативные субагенты недоступны, остановись: не выполняй роли главным агентом и не создавай отдельные CLI-процессы.
100
123
 
101
124
  ### Технические остановки субагентов
102
125
 
@@ -131,7 +154,7 @@ REVIEW_CONTEXT: <краткий общий контекст>
131
154
 
132
155
  Не вставляй системный prompt агента в task-сообщение.
133
156
 
134
- ## Проверить ответы и обработать сбои
157
+ ### Проверить ответы и обработать сбои subagents
135
158
 
136
159
  Проверь для каждого ответа `status`, `check`, фактически запрошенный `model` и структуру `находки`. Несовпадение модели считай ошибкой контракта. Каждая находка означает дефект, который обязательно исправить. Находка без точного места, конкретного достижимого риска, доказательства, способа воспроизведения (`repro`) и проверяемого способа исправления не подтверждена.
137
160
 
@@ -143,7 +166,7 @@ REVIEW_CONTEXT: <краткий общий контекст>
143
166
 
144
167
  ## Собрать итог
145
168
 
146
- Главный агент выполняет только редакторскую работу над результатами:
169
+ В `subagents` главный агент выполняет только редакторскую работу над результатами. В `main` эти же правила применяются к кандидатам, собранным в специализированных проходах:
147
170
 
148
171
  1. Проверь находки по указанным evidence и отклони неподтверждённые.
149
172
  2. Объедини дубли разных агентов в один пункт, сохранив все полезные доказательства.
@@ -153,18 +176,19 @@ REVIEW_CONTEXT: <краткий общий контекст>
153
176
  6. Каждую отклонённую находку запиши в раздел «Отклонено» с проверкой-источником и причиной. В число находок и в score отклонённые не входят.
154
177
  7. Сам выставь итоговый `score` от 0 до 100 по серьёзности, влиянию и общему качеству реализации. Не используй фиксированные вычеты, среднее или минимум оценок агентов. Ориентир: `100` — находок нет; `95–99` — только low; `80–94` — medium или несколько low; `60–79` — high; ниже `60` — critical или нужна существенная переработка. Любое снижение score связывай с принятыми находками; если находок нет, score равен `100`. Добавь короткое обоснование числа.
155
178
  8. Установи `result: clean`, только если находок нет; при любой находке используй `result: changes-required` независимо от score.
156
- 9. Не выполняй дополнительное самостоятельное ревью и не добавляй новые domain-находки от себя.
179
+ 9. Не выполняй дополнительное ревью после специализированных проходов и не добавляй находки вне выбранных проверок.
157
180
 
158
181
  Ревью содержит только проблемы. Не перечисляй выполненную работу, похвалу и успешные проверки. Исключение — короткие технические разделы покрытия и «Отклонено».
159
182
 
160
183
  ## Сохранить ревью
161
184
 
162
- Создай файл `docs/artifacts/reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md` только после успешной обработки всех обязательных агентов. Для недоступного `previous_reviews` используй `status: reviewed-with-warnings`, иначе `status: reviewed`.
185
+ Создай файл `docs/artifacts/reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md` только после успешной обработки всех обязательных проверок. Для недоступного `previous_reviews` или другого разрешённого warning используй `status: reviewed-with-warnings`, иначе `status: reviewed`.
163
186
 
164
187
  ```markdown
165
188
  ---
166
189
  target: <что проверено>
167
190
  plan: <docs/artifacts/plans/... | none>
191
+ execution: <subagents | main>
168
192
  score: <0..100>
169
193
  status: <reviewed | reviewed-with-warnings>
170
194
  result: <clean | changes-required>
@@ -184,6 +208,7 @@ checks:
184
208
 
185
209
  ## Покрытие
186
210
 
211
+ - **Execution:** <subagents | main>
187
212
  - **Completed:** <проверки и модели>
188
213
  - **Skipped:** <проверки и причины>
189
214
  - **Warnings:** <предупреждения или «нет»>
@@ -216,7 +241,7 @@ checks:
216
241
 
217
242
  ## Отклонено
218
243
 
219
- <Находки агентов, отклонённые при сверке: короткая формулировка, проверка-источник и причина. Если отклонённых нет — «нет».>
244
+ <Кандидаты, отклонённые при сверке: короткая формулировка, проверка-источник и причина. Если отклонённых нет — «нет».>
220
245
 
221
246
  ```
222
247
 
@@ -224,14 +249,14 @@ checks:
224
249
 
225
250
  ## Финал
226
251
 
227
- Коротко сообщи путь к ревью, status, result, score, количество принятых и отклонённых находок, completed/skipped/warnings. При `changes-required` предложи `eda-fix-by-review`; при `clean` — `eda-commit`.
252
+ Коротко сообщи путь к ревью, execution, status, result, score, количество принятых и отклонённых находок, completed/skipped/warnings. При `changes-required` предложи `eda-fix-by-review`; при `clean` — `eda-commit`.
228
253
 
229
254
  ## Чего НЕ делать
230
255
 
231
256
  - Править код, настройки проекта или удалённые обсуждения.
232
- - Выполнять специализированную роль главным агентом.
233
- - Запускать другой CLI или подменять отсутствующих субагентов одним общим ревью.
234
- - Записывать итоговый файл после повторного сбоя обязательного агента.
257
+ - В `subagents` выполнять специализированную роль главным агентом или подменять отсутствующих субагентов одним общим ревью.
258
+ - В `main` запускать leaf-субагентов, другой CLI или читать packaged prompts вместо `references/review-matrix.md`.
259
+ - Записывать итоговый файл после повторного сбоя обязательного агента в `subagents` или незавершённой обязательной проверки в `main`.
235
260
  - Выбирать последний PR или весь репозиторий по ссылке на корень.
236
261
  - Загружать все карточки references без отбора.
237
262
  - Усреднять оценки агентов или считать score по фиксированной формуле.
@@ -0,0 +1,70 @@
1
+ # Матрица проверок main-режима
2
+
3
+ Этот файл используется только при `review.execution: main`. Выполни отдельный проход по каждой выбранной проверке, но читай общий target и проектные инструкции один раз. Не смешивай области: одна проблема должна остаться в наиболее точной проверке.
4
+
5
+ Для любой находки обязательны точное место, достижимый на текущем коде сценарий, практический ущерб, доказательство, `repro`, способ исправления и нужный тест. Не принимай вкусовой рефакторинг, косметику, спекулятивное усиление, необязательный тест или проблему, которая появится только после гипотетического будущего изменения. Не перечисляй удачные решения и выполненные пункты.
6
+
7
+ ## correctness
8
+
9
+ Ищи реальные ошибки поведения: неверную логику, потерю данных, неправильные состояния, пропущенные крайние случаи и некорректную обработку ошибок. Архитектуру, стиль, документацию, безопасность и план упоминай только когда они прямо доказывают функциональную ошибку.
10
+
11
+ ## architecture
12
+
13
+ Проверяй границы модулей и слоёв, направление зависимостей, ответственность компонентов, публичные контракты и соответствие `docs/arch.md`. Находка допустима только когда решение уже создаёт неправильную связанность, нарушение границы или несовместимый контракт с конкретным практическим риском.
14
+
15
+ ## rules
16
+
17
+ Проверяй только применимые инструкции из `AGENTS.md`, `CLAUDE.md` и `docs/rules.md` с учётом области действия и приоритета. Не выдумывай правила и не превращай предпочтение в нарушение. В evidence укажи правило и код, который ему противоречит.
18
+
19
+ ## references
20
+
21
+ Проверяй только карточки из `$REFERENCE_FILES`; не загружай остальные `docs/references/` и внешние источники. Подтверждённое решение пользователя, правила и архитектура имеют приоритет. Отличие от примера без практического риска не является проблемой.
22
+
23
+ ## business
24
+
25
+ Проверяй изменённое пользовательское и доменное поведение только по `$BUSINESS_FILES`. Не расширяй target требованиями соседних карточек. Различай:
26
+
27
+ - реализация нарушает действующее правило, которое задача или план не меняют — дефект бизнес-логики;
28
+ - задача или план явно меняют правило, но карточка не обновлена — рассинхронизация business-документации, которую нужно пересогласовать через `eda-business`.
29
+
30
+ Если задача неизвестна, не объявляй правило намеренно изменённым, но продолжай сверку с действующей карточкой.
31
+
32
+ ## plan_alignment
33
+
34
+ Проверяй только конкретный `$PLAN_FILE`: невыполненные или частично выполненные пункты, рискованные отклонения, забытые тесты, миграции и документацию, изменённые вопреки плану контракты. Не требуй буквального совпадения, если цель плана сохранена без дополнительного риска.
35
+
36
+ ## code_quality
37
+
38
+ Проверяй читаемость, сложность, дублирование, имена, размер и ответственность функций или классов и сцепление модулей. Находка допустима только когда структура уже создаёт конкретный риск ошибок или тестовых пробелов и код обязательно нужно исправить; мелкие стилистические предпочтения не принимай.
39
+
40
+ ## tests
41
+
42
+ Ищи пропущенные регрессии, неверные ожидания, неподходящий уровень теста, хрупкие проверки и изменённое поведение без защиты. Не требуй тест на каждую строку. Находка должна назвать конкретную регрессию, которую текущие тесты не поймают, либо ошибку в самих тестах. Для подтверждения разрешены только безопасные проверки, не меняющие tracked-файлы.
43
+
44
+ ## security
45
+
46
+ Проверяй аутентификацию, авторизацию, границы доверия, валидацию внешнего ввода, инъекции, секреты, файлы, сеть, криптографию и утечки чувствительных данных. Учитывай реальную модель угроз и достижимость. Не проводи активные атаки и не принимай общий hardening без конкретного пути эксплуатации или нарушенного защитного инварианта.
47
+
48
+ ## performance
49
+
50
+ Ищи N+1, лишние запросы и проходы, неограниченную обработку, чрезмерные аллокации, блокировки, ошибки кеширования и конкурентности. Свяжи риск с фактическим размером данных или частотой вызова. Не принимай микроптимизацию без измеримого или очевидного эффекта; безопасные измерения разрешены, если они не меняют tracked-файлы.
51
+
52
+ ## frontend
53
+
54
+ Проверяй по исходникам компоненты, состояние, формы, действия, клиентские данные, loading/error/empty/success, адаптивность, стили и очевидные проблемы доступности. Рассмотри основные и ошибочные пользовательские сценарии. Не утверждай, что интерфейс проверен визуально: браузерная проверка относится к `eda-manual-test`.
55
+
56
+ ## api
57
+
58
+ Проверяй обе стороны публичных и внутренних API-контрактов: методы и пути, request/query/body, response, коды ошибок, валидацию, auth, совместимость, идемпотентность и версионирование. Находка должна назвать нарушенный контракт и достижимо затронутого потребителя.
59
+
60
+ ## database
61
+
62
+ Проверяй схемы, миграции, nullable/default, обратимость и совместимость выкладки, запросы, индексы, транзакции, блокировки и целостность данных. Учитывай существующие данные, конкурентные операции и порядок деплоя. Не выполняй миграции, не изменяй базу и не требуй индекс без обоснованного запроса и нагрузки.
63
+
64
+ ## documentation
65
+
66
+ Ищи только обязательные обновления документации из-за изменившегося публичного API, CLI, конфигурации, установки, пользовательского сценария или проектного контракта. Сравни фактическое поведение с документами, которые его описывают. Не требуй комментарии для очевидных внутренних изменений и не проводи редакторское ревью текста.
67
+
68
+ ## previous_reviews
69
+
70
+ Для удалённого PR/MR read-only средствами найди незакрытые комментарии и треды и сверь их с текущим кодом. Классифицируй их как актуальные, исправленные, но открытые, или недоступные для проверки. В находки включай только всё ещё существующие проблемы; исправленные открытые треды перенеси в покрытие. Не отправляй комментарии, не скрывай сводки, не resolve/close треды. Если сервис, авторизация или формат обсуждений недоступны, верни warning и не утверждай, что история проверена.
@@ -1,7 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "claude": {
4
- "context": "fork",
5
- "agent": "general-purpose"
6
- }
7
- }