@gian-tiaga/eda 1.0.5 → 2.0.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 +58 -80
- package/README.md +113 -32
- package/agents/eda-plan-review-api/agent.json +9 -0
- package/agents/eda-plan-review-api/prompt.md +34 -0
- package/agents/eda-plan-review-architecture/agent.json +9 -0
- package/agents/eda-plan-review-architecture/prompt.md +34 -0
- package/agents/eda-plan-review-database/agent.json +9 -0
- package/agents/eda-plan-review-database/prompt.md +34 -0
- package/agents/eda-plan-review-execution/agent.json +9 -0
- package/agents/eda-plan-review-execution/prompt.md +34 -0
- package/agents/eda-plan-review-feasibility/agent.json +9 -0
- package/agents/eda-plan-review-feasibility/prompt.md +34 -0
- package/agents/eda-plan-review-frontend/agent.json +9 -0
- package/agents/eda-plan-review-frontend/prompt.md +34 -0
- package/agents/eda-plan-review-performance/agent.json +9 -0
- package/agents/eda-plan-review-performance/prompt.md +34 -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 +34 -0
- package/agents/eda-plan-review-rules/agent.json +9 -0
- package/agents/eda-plan-review-rules/prompt.md +34 -0
- package/agents/eda-plan-review-security/agent.json +9 -0
- package/agents/eda-plan-review-security/prompt.md +34 -0
- package/agents/eda-plan-review-verification/agent.json +9 -0
- package/agents/eda-plan-review-verification/prompt.md +34 -0
- package/agents/eda-review-business/agent.json +15 -0
- package/agents/eda-review-business/prompt.md +46 -0
- 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 +147 -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 +5 -4
- package/skills/eda-manual-test/SKILL.md +13 -5
- package/skills/eda-orhestra/SKILL.md +13 -10
- package/skills/eda-plan/SKILL.md +46 -38
- 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 +188 -0
- package/skills/eda-plan-review-fix/SKILL.md +105 -0
- package/skills/eda-prepare-ai/SKILL.md +7 -2
- package/skills/eda-review/SKILL.md +13 -5
- package/skills/eda-roadmap/SKILL.md +6 -3
- package/skills/eda-send-review/SKILL.md +1 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-plan-review
|
|
3
|
+
description: 'Проводит специализированное read-only ревью готового плана и сохраняет findings с оценкой готовности.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Ревью плана (eda-plan-review)
|
|
7
|
+
|
|
8
|
+
Работай как оркестратор установленных `eda-plan-review-*` агентов. Сам не выполняй их специализированные роли и не копируй их prompts в task-сообщения. Выбери план и проверки, запусти агентов, проверь структурированные ответы, дедуплицируй подтверждённые findings, выставь экспертный score и сохрани один review-артефакт.
|
|
9
|
+
|
|
10
|
+
## Вход из сообщения пользователя
|
|
11
|
+
|
|
12
|
+
Текст рядом с вызовом — главный вход. Разбери путь или название плана, «последний план», threshold, предыдущие review/fix, отключённые или принудительно включённые проверки и разовые модели.
|
|
13
|
+
|
|
14
|
+
Если входа достаточно, продолжай без вопроса. `AskUserQuestion` используй только если план нельзя выбрать однозначно или переданная цепочка review/fix противоречива. Старую историю диалога не считай входом без явной связи с текущим вызовом.
|
|
15
|
+
|
|
16
|
+
## Настройки
|
|
17
|
+
|
|
18
|
+
Прочитай `docs/settings.yaml`, если файл есть. Поддерживается только `version: 3`; при другой версии или невалидном поле используй defaults и добавь warning. Прямое указание пользователя важнее файла.
|
|
19
|
+
|
|
20
|
+
Используй `plan-review.threshold` и `plan-review.agents.<check>.mode/model`. Threshold по умолчанию `95`, допустимы целые значения `1–100`.
|
|
21
|
+
|
|
22
|
+
| Проверка | Default mode | Claude | Codex |
|
|
23
|
+
|---|---|---|---|
|
|
24
|
+
| `requirements` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
25
|
+
| `rules` | `always` | `haiku` | `gpt-5.6-luna` |
|
|
26
|
+
| `architecture` | `always` | `opus` | `gpt-5.6-sol` |
|
|
27
|
+
| `feasibility` | `always` | `opus` | `gpt-5.6-sol` |
|
|
28
|
+
| `execution` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
29
|
+
| `verification` | `always` | `sonnet` | `gpt-5.6-terra` |
|
|
30
|
+
| `api` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
31
|
+
| `database` | `auto` | `opus` | `gpt-5.6-sol` |
|
|
32
|
+
| `security` | `auto` | `opus` | `gpt-5.6-sol` |
|
|
33
|
+
| `frontend` | `auto` | `sonnet` | `gpt-5.6-terra` |
|
|
34
|
+
| `performance` | `auto` | `opus` | `gpt-5.6-sol` |
|
|
35
|
+
| `previous` | `auto` | `haiku` | `gpt-5.6-luna` |
|
|
36
|
+
|
|
37
|
+
Режимы: `always` — каждый раз, `auto` — только по применимости, `off` — не запускать. Неизвестную модель замени default конкретного агента и добавь warning.
|
|
38
|
+
|
|
39
|
+
## Вопросы
|
|
40
|
+
|
|
41
|
+
Когда нужен блокирующий вопрос:
|
|
42
|
+
|
|
43
|
+
- Claude Code: используй `AskUserQuestion`.
|
|
44
|
+
- Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 2–3 вариантами и остановись.
|
|
45
|
+
- Codex exec/non-interactive: не читай stdin; верни `blocked: нужен план или решение пользователя`.
|
|
46
|
+
|
|
47
|
+
## Подготовить контекст
|
|
48
|
+
|
|
49
|
+
1. Выбери `$PLAN_FILE` только в `docs/plans/`: явный путь, однозначное совпадение или самый новый файл при словах «последний план». Без готового плана остановись.
|
|
50
|
+
2. Прочитай план целиком и вычисли SHA-256 его байтов как `$PLAN_SHA256` доступной read-only командой.
|
|
51
|
+
3. Прочитай `AGENTS.md`, `CLAUDE.md`, `docs/rules.md`, `docs/arch.md` и front matter плана настолько, чтобы выбрать проверки, но не делай собственное ревью.
|
|
52
|
+
4. Определи `$BUSINESS_FILES`: используй относящиеся к задаче пути из `sources.business`; для старого плана выбери только применимые карточки через `docs/business.md`. Если подходящих нет — `none`.
|
|
53
|
+
5. Определи `$REFERENCE_FILES`: используй применимые пути из `sources.references`; для старого плана выбери только карточки затронутых компонентов через `docs/references.md`. Не загружай весь каталог.
|
|
54
|
+
6. Определи `$RESEARCH_FILE` из `sources.research` или `none`.
|
|
55
|
+
7. Сформируй краткий `$PLAN_CONTEXT`: исходная задача, scope, критерии готовности, затронутые компоненты, подтверждённые решения и пути к документам. Если задача неизвестна, напиши `task: unknown`.
|
|
56
|
+
8. Определи `$PREVIOUS_REVIEW` и `$PREVIOUS_FIX`. Явные пути имеют приоритет. Иначе используй последний review для того же канонического пути только когда его `plan_sha256` равен текущему SHA-256 или `after_sha256` связанного fix равен текущему SHA-256. Несвязанную историю не подмешивай.
|
|
57
|
+
|
|
58
|
+
## Выбрать проверки
|
|
59
|
+
|
|
60
|
+
- `requirements`, `rules`, `architecture`, `feasibility`, `execution`, `verification` запускай по `always/auto/off`; их default `always`.
|
|
61
|
+
- `api` в auto включай для endpoint, handler, DTO, GraphQL/RPC, events, queues, webhooks и внешних интеграций.
|
|
62
|
+
- `database` в auto включай для схем, моделей хранения, SQL, миграций, индексов и транзакций.
|
|
63
|
+
- `security` в auto включай для auth, permissions, внешнего ввода, файлов, сети, секретов, криптографии и чувствительных данных.
|
|
64
|
+
- `frontend` в auto включай для UI-компонентов, стилей, клиентских маршрутов и пользовательского состояния.
|
|
65
|
+
- `performance` в auto включай для запросов, пакетной обработки, кешей, конкурентности, памяти и горячих путей.
|
|
66
|
+
- `previous` в auto включай только при непустой связанной цепочке.
|
|
67
|
+
- Прямые «без X», «включи X» и разовая модель важнее settings.
|
|
68
|
+
|
|
69
|
+
Запиши skipped-проверки и причины. Forced-проверка запускается даже если auto-критерий не найден; агент может вернуть `not_applicable`.
|
|
70
|
+
|
|
71
|
+
## Запустить агентов
|
|
72
|
+
|
|
73
|
+
Запусти все выбранные проверки одним параллельным пакетом через установленных нативных агентов:
|
|
74
|
+
|
|
75
|
+
- Claude Code: custom agent `eda-plan-review-<check>` через `Agent` tool с настроенной моделью.
|
|
76
|
+
- Codex: custom agent `eda-plan-review-<check>` через `spawn_agent` или точный аналог с настроенной моделью.
|
|
77
|
+
|
|
78
|
+
Если нативные packaged-агенты недоступны, остановись. Не используй generic-субагентов, `codex exec`, `claude -p` или основной агент как fallback.
|
|
79
|
+
|
|
80
|
+
В task-сообщение передавай только рабочую директорию, `PLAN_FILE`, `PLAN_SHA256`, `BUSINESS_FILES`, `REFERENCE_FILES`, `RESEARCH_FILE`, `PREVIOUS_REVIEW`, `PREVIOUS_FIX`, `MODEL` и `$PLAN_CONTEXT`. Полная семантика проверки хранится в prompt агента.
|
|
81
|
+
|
|
82
|
+
## Проверить ответы
|
|
83
|
+
|
|
84
|
+
Для каждого ответа проверь:
|
|
85
|
+
|
|
86
|
+
- один YAML-блок и допустимый `status`;
|
|
87
|
+
- `check` совпадает с ролью, `model` — с фактической моделью;
|
|
88
|
+
- `findings` и `prior_findings` — массивы;
|
|
89
|
+
- у каждого finding есть fingerprint, severity, recommendation, plan_location, problem, evidence, impact, fix, acceptance;
|
|
90
|
+
- `blocked` содержит question; `not_applicable` не содержит findings.
|
|
91
|
+
|
|
92
|
+
Невалидного или упавшего агента один раз повтори на той же модели с указанием только нарушения контракта. Повторный сбой любой выбранной проверки блокирует всё ревью; итоговый файл не сохраняй.
|
|
93
|
+
|
|
94
|
+
## Агрегировать findings
|
|
95
|
+
|
|
96
|
+
1. Подтверди evidence точечным чтением указанных файлов. Не добавляй самостоятельные domain-находки.
|
|
97
|
+
2. Отклони недоказанное, вкусовое, уже закрытое, выходящее за scope или противоречащее подтверждённому решению. Существенные отклонения сохрани с fingerprint и причиной.
|
|
98
|
+
3. Объедини findings с одной первопричиной и одной правкой, сохранив все checks и evidence.
|
|
99
|
+
4. Для совпадающего fingerprint сохрани прежний ID. Новому finding дай следующий свободный `PR-NNN`; номер не переиспользуй.
|
|
100
|
+
5. Статусы `waived` сохраняй без повторного открытия, пока нет нового evidence. Required нельзя сделать waived без явного решения пользователя, меняющего исходное требование.
|
|
101
|
+
6. В итог включай только открытые required/optional findings и состояния прошлых ID.
|
|
102
|
+
|
|
103
|
+
## Выставить score и gate
|
|
104
|
+
|
|
105
|
+
Score выставляет главный агент экспертно после обработки всех агентов. Не усредняй оценки, не используй формулу вычетов и не проси агентов ставить score.
|
|
106
|
+
|
|
107
|
+
- `95–100`: обязательных findings нет, план исполним.
|
|
108
|
+
- `80–94`: остаётся required medium или несколько существенных optional.
|
|
109
|
+
- `60–79`: есть required high.
|
|
110
|
+
- ниже `60`: есть critical или требуется серьёзное перепланирование.
|
|
111
|
+
- при отсутствии открытых findings score равен `100`.
|
|
112
|
+
- если состояния open/resolved/regressed/waived не изменились относительно предыдущего review, score не меняй.
|
|
113
|
+
- каждое изменение score объясни закрытыми, новыми или регрессировавшими ID.
|
|
114
|
+
|
|
115
|
+
Статус `ready` ставь только когда нет открытых required и `$SCORE >= $THRESHOLD`. Иначе статус `changes-required`. Не выдумывай finding только ради достижения threshold.
|
|
116
|
+
|
|
117
|
+
## Сохранить review
|
|
118
|
+
|
|
119
|
+
После успешной обработки всех выбранных агентов создай `docs/plan-reviews/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
---
|
|
123
|
+
plan: <docs/plans/...>
|
|
124
|
+
plan_sha256: <sha256>
|
|
125
|
+
previous_review: <path | none>
|
|
126
|
+
previous_fix: <path | none>
|
|
127
|
+
score: <0..100>
|
|
128
|
+
threshold: <1..100>
|
|
129
|
+
status: <ready | changes-required>
|
|
130
|
+
date: <YYYY-MM-DD HH:MM>
|
|
131
|
+
checks:
|
|
132
|
+
- name: <check>
|
|
133
|
+
model: <model>
|
|
134
|
+
status: <completed | skipped>
|
|
135
|
+
reason: <применимость или причина пропуска>
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
# Ревью плана: <название>
|
|
139
|
+
|
|
140
|
+
## Оценка
|
|
141
|
+
**<score>/100.** <экспертное объяснение и изменение относительно предыдущего score>
|
|
142
|
+
|
|
143
|
+
## Покрытие
|
|
144
|
+
- **Completed:** <checks и модели>
|
|
145
|
+
- **Skipped:** <checks и причины>
|
|
146
|
+
- **Warnings:** <warnings или «нет»>
|
|
147
|
+
|
|
148
|
+
## Состояние предыдущих findings
|
|
149
|
+
| ID | Статус | Доказательство |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
|
|
152
|
+
## Findings
|
|
153
|
+
|
|
154
|
+
### PR-001. <заголовок>
|
|
155
|
+
- **Checks:** <роли>
|
|
156
|
+
- **Severity:** <critical | high | medium | low>
|
|
157
|
+
- **Recommendation:** <required | optional>
|
|
158
|
+
- **Fingerprint:** `<fingerprint>`
|
|
159
|
+
- **Место в плане:** <раздел или задача>
|
|
160
|
+
- **Проблема:** <что не так>
|
|
161
|
+
- **Доказательства:** <evidence>
|
|
162
|
+
- **Риск:** <impact>
|
|
163
|
+
- **Исправление:** <fix>
|
|
164
|
+
- **Приёмка:** <acceptance>
|
|
165
|
+
|
|
166
|
+
## Отклонённые предложения
|
|
167
|
+
- `<fingerprint>` — <причина или «нет»>
|
|
168
|
+
|
|
169
|
+
## Gate
|
|
170
|
+
- **Required open:** <ID или «нет»>
|
|
171
|
+
- **Optional open:** <ID или «нет»>
|
|
172
|
+
- **Результат:** <ready | changes-required>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Review содержит только проблемы и техническое покрытие, без похвалы и длинного пересказа плана.
|
|
176
|
+
|
|
177
|
+
## Финал
|
|
178
|
+
|
|
179
|
+
Сообщи путь, status, score/threshold, число required/optional, completed/skipped и previous chain. При `changes-required` предложи `eda-plan-review-fix`; при `ready` — `eda-plan-execute` или возврат вызывающему `eda-plan-polish`.
|
|
180
|
+
|
|
181
|
+
## Чего НЕ делать
|
|
182
|
+
|
|
183
|
+
- Править план, код, настройки или документацию проекта.
|
|
184
|
+
- Запускать тесты, lint, build, typecheck, серверы, миграции, браузерные проверки или API-запросы.
|
|
185
|
+
- Выполнять специализированную роль главным агентом.
|
|
186
|
+
- Запускать другой CLI или generic-fallback.
|
|
187
|
+
- Усреднять score агентов, менять score без изменения findings или переоткрывать waived без нового evidence.
|
|
188
|
+
- Сохранять итог после повторного сбоя выбранного агента.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-plan-review-fix
|
|
3
|
+
description: 'Исправляет готовый план по сохранённому plan-review и фиксирует решения по findings.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Исправитель плана по ревью (eda-plan-review-fix)
|
|
7
|
+
|
|
8
|
+
Применяй подтверждённые findings из `docs/plan-reviews/` только к связанному плану. Не делай новое ревью: твой контракт — точечно изменить основные разделы плана и сохранить проверяемую цепочку SHA-256.
|
|
9
|
+
|
|
10
|
+
## Вход из сообщения пользователя
|
|
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 всё равно требует пользователя.
|
|
28
|
+
|
|
29
|
+
## Вопросы
|
|
30
|
+
|
|
31
|
+
- Claude Code: используй `AskUserQuestion`.
|
|
32
|
+
- Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с вариантами и остановись.
|
|
33
|
+
- Codex exec/non-interactive: не читай stdin; верни `blocked: нужен ответ пользователя` до любых рискованных правок.
|
|
34
|
+
|
|
35
|
+
## Правила
|
|
36
|
+
|
|
37
|
+
1. Работай только с review из `docs/plan-reviews/` и его `plan` из `docs/plans/`.
|
|
38
|
+
2. Вычисли SHA-256 текущего плана до правок. Он обязан совпадать с `plan_sha256` review. При несовпадении остановись: review устарел, нужен новый `eda-plan-review`.
|
|
39
|
+
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.
|
|
52
|
+
5. Заранее определи `$FIX_FILE`, обнови front matter плана полями `status`, `plan_review` и `plan_review_fix`, затем вычисли окончательный SHA-256 как `$AFTER_SHA256`.
|
|
53
|
+
6. Если обязательные правки были, но итоговый SHA-256 не изменился, остановись `blocked: fix не изменил план` и не выдавай успех.
|
|
54
|
+
|
|
55
|
+
После успешного изменения:
|
|
56
|
+
|
|
57
|
+
- если review был `changes-required`, установи в front matter плана `status: meta-reviewed`;
|
|
58
|
+
- установи `plan_review: <REVIEW_FILE>` и `plan_review_fix: <FIX_FILE>` до вычисления after SHA-256 и записи отчёта;
|
|
59
|
+
- не ставь `status: reviewed`: это может сделать только подтверждающий review с gate `ready`.
|
|
60
|
+
|
|
61
|
+
## Сохранить fix-отчёт
|
|
62
|
+
|
|
63
|
+
Создай `docs/plan-review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
---
|
|
67
|
+
review: <docs/plan-reviews/...>
|
|
68
|
+
plan: <docs/plans/...>
|
|
69
|
+
before_sha256: <sha256 из review>
|
|
70
|
+
after_sha256: <sha256 после изменения>
|
|
71
|
+
status: done
|
|
72
|
+
date: <YYYY-MM-DD HH:MM>
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
# Исправления плана по ревью: <название>
|
|
76
|
+
|
|
77
|
+
## Применённые findings
|
|
78
|
+
| ID | Что изменено | Раздел плана | Статус |
|
|
79
|
+
|---|---|---|---|
|
|
80
|
+
| PR-001 | <конкретная правка> | <раздел> | applied |
|
|
81
|
+
|
|
82
|
+
## Waived optional
|
|
83
|
+
| ID | Причина | Новые доказательства для пересмотра |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
|
|
86
|
+
## Цепочка
|
|
87
|
+
- **Before SHA-256:** `<hash>`
|
|
88
|
+
- **After SHA-256:** `<hash>`
|
|
89
|
+
- **Нужен подтверждающий review:** да
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
После записи отчёта допиши в review один раздел `## Применённые исправления` со ссылкой на fix, after SHA-256 и списком waived ID. Не дублируй раздел при повторном продолжении того же запуска.
|
|
93
|
+
|
|
94
|
+
## Финал
|
|
95
|
+
|
|
96
|
+
Сообщи пути к plan/review/fix, before/after SHA-256, applied/waived, оставшиеся блокеры и что изменения не закоммичены. Следующий шаг — `eda-plan-review` для подтверждения или возврат вызывающему `eda-plan-polish`.
|
|
97
|
+
|
|
98
|
+
## Чего НЕ делать
|
|
99
|
+
|
|
100
|
+
- Делать новое ревью или выставлять score.
|
|
101
|
+
- Исправлять код или файлы вне выбранного плана, review и fix-отчёта.
|
|
102
|
+
- Применять stale review к другому SHA-256.
|
|
103
|
+
- Молча отклонять required или продуктовый конфликт.
|
|
104
|
+
- Добавлять журнал итераций в тело плана.
|
|
105
|
+
- Коммитить, запускать тесты, lint, build, typecheck, миграции или другой CLI.
|
|
@@ -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
|
|
|
@@ -166,6 +170,10 @@ checks:
|
|
|
166
170
|
|
|
167
171
|
<Только подтверждённые plan_alignment-проблемы. Если плана нет: «Проверка плана пропущена: план не указан и не найден.»>
|
|
168
172
|
|
|
173
|
+
## Проблемы бизнес-логики
|
|
174
|
+
|
|
175
|
+
<Только подтверждённые business-проблемы: нарушение карточки или рассинхронизация карточки с явно изменившей правило задачей. Если проверка не запускалась или проблем нет — коротко укажи это.>
|
|
176
|
+
|
|
169
177
|
## Проблемы в коде
|
|
170
178
|
|
|
171
179
|
### 1. <короткий заголовок>
|
|
@@ -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
|
|---|---|---|
|