@gian-tiaga/eda 2.0.0 → 3.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 +68 -67
- package/README.md +44 -86
- package/agents/eda-aim-planner/prompt.md +1 -1
- package/agents/eda-review-api/prompt.md +5 -3
- package/agents/eda-review-architecture/prompt.md +6 -4
- package/agents/eda-review-business/prompt.md +5 -3
- package/agents/eda-review-code-quality/prompt.md +7 -5
- package/agents/eda-review-correctness/prompt.md +5 -3
- package/agents/eda-review-database/prompt.md +5 -3
- package/agents/eda-review-documentation/prompt.md +5 -3
- package/agents/eda-review-frontend/prompt.md +5 -3
- package/agents/eda-review-performance/prompt.md +7 -5
- package/agents/eda-review-plan-alignment/prompt.md +5 -3
- package/agents/eda-review-previous-reviews/prompt.md +6 -4
- package/agents/eda-review-references/prompt.md +5 -3
- package/agents/eda-review-rules/prompt.md +5 -3
- package/agents/eda-review-security/prompt.md +5 -3
- package/agents/eda-review-tests/prompt.md +5 -3
- package/bin/cli.js +2 -2
- package/lib/install.js +124 -160
- package/package.json +1 -1
- package/skills/eda-aim/SKILL.md +2 -2
- package/skills/eda-business/SKILL.md +47 -32
- package/skills/eda-discover-automations/SKILL.md +9 -9
- package/skills/eda-explore/SKILL.md +3 -3
- package/skills/eda-fix/SKILL.md +6 -6
- package/skills/eda-fix-by-review/SKILL.md +47 -58
- package/skills/eda-manual-test/SKILL.md +5 -5
- package/skills/eda-new-project/SKILL.md +3 -3
- package/skills/eda-orhestra/SKILL.md +2 -2
- package/skills/eda-plan/SKILL.md +92 -111
- package/skills/eda-plan-execute/SKILL.md +43 -68
- package/skills/eda-plan-polish/SKILL.md +51 -42
- package/skills/eda-plan-review/SKILL.md +89 -135
- package/skills/eda-plan-review-fix/SKILL.md +38 -63
- package/skills/eda-polish/SKILL.md +25 -35
- package/skills/eda-prepare-ai/SKILL.md +1 -1
- package/skills/eda-review/SKILL.md +18 -17
- package/skills/eda-roadmap/SKILL.md +5 -5
- package/skills/eda-send-review/SKILL.md +11 -11
- package/agents/eda-plan-review-api/agent.json +0 -9
- package/agents/eda-plan-review-api/prompt.md +0 -34
- package/agents/eda-plan-review-architecture/agent.json +0 -9
- package/agents/eda-plan-review-architecture/prompt.md +0 -34
- package/agents/eda-plan-review-database/agent.json +0 -9
- package/agents/eda-plan-review-database/prompt.md +0 -34
- package/agents/eda-plan-review-execution/agent.json +0 -9
- package/agents/eda-plan-review-execution/prompt.md +0 -34
- package/agents/eda-plan-review-feasibility/agent.json +0 -9
- package/agents/eda-plan-review-feasibility/prompt.md +0 -34
- package/agents/eda-plan-review-frontend/agent.json +0 -9
- package/agents/eda-plan-review-frontend/prompt.md +0 -34
- package/agents/eda-plan-review-performance/agent.json +0 -9
- package/agents/eda-plan-review-performance/prompt.md +0 -34
- package/agents/eda-plan-review-previous/agent.json +0 -9
- package/agents/eda-plan-review-previous/prompt.md +0 -28
- package/agents/eda-plan-review-requirements/agent.json +0 -9
- package/agents/eda-plan-review-requirements/prompt.md +0 -34
- package/agents/eda-plan-review-rules/agent.json +0 -9
- package/agents/eda-plan-review-rules/prompt.md +0 -34
- package/agents/eda-plan-review-security/agent.json +0 -9
- package/agents/eda-plan-review-security/prompt.md +0 -34
- package/agents/eda-plan-review-verification/agent.json +0 -9
- package/agents/eda-plan-review-verification/prompt.md +0 -34
|
@@ -19,7 +19,7 @@ description: 'Аудирует автоматические проверки п
|
|
|
19
19
|
|---|---|---|
|
|
20
20
|
| `discover-automations.include_plans` | `true`, `false` | `plans`, «с планами»; выключение: `normal`, «без планов» |
|
|
21
21
|
|
|
22
|
-
Обычный режим анализирует текущий проект и, если они есть, `docs/reviews/`, `docs/review-fixes/`, `docs/fixes/`. Режим `discover-automations.include_plans: true` добавляет `docs/plans/`. Отсутствие истории не отменяет полный аудит текущих проверок.
|
|
22
|
+
Обычный режим анализирует текущий проект и, если они есть, `docs/artifacts/reviews/`, `docs/artifacts/review-fixes/`, `docs/artifacts/fixes/`. Режим `discover-automations.include_plans: true` добавляет `docs/artifacts/plans/`. Отсутствие истории не отменяет полный аудит текущих проверок.
|
|
23
23
|
|
|
24
24
|
## Вход из сообщения пользователя
|
|
25
25
|
|
|
@@ -49,11 +49,11 @@ description: 'Аудирует автоматические проверки п
|
|
|
49
49
|
|
|
50
50
|
Если вход неоднозначен — `AskUserQuestion`: все ревью и фиксы / все ревью, фиксы и планы / последние N / период / конкретные файлы.
|
|
51
51
|
|
|
52
|
-
Получи список файлов из `docs/reviews/`, `docs/review-fixes/` и `docs/fixes/`. В режиме `plans` дополнительно получи список файлов из `docs/plans/`. Отсутствующие или пустые папки отметь в отчёте, но не блокируйся: проведи baseline gap-аудит по коду, manifest-файлам, конфигам, scripts и CI текущего проекта.
|
|
52
|
+
Получи список файлов из `docs/artifacts/reviews/`, `docs/artifacts/review-fixes/` и `docs/artifacts/fixes/`. В режиме `plans` дополнительно получи список файлов из `docs/artifacts/plans/`. Отсутствующие или пустые папки отметь в отчёте, но не блокируйся: проведи baseline gap-аудит по коду, manifest-файлам, конфигам, scripts и CI текущего проекта.
|
|
53
53
|
|
|
54
54
|
### 2. Прочитать контекст
|
|
55
55
|
- Все выбранные ревью, отчёты о фиксах по ревью и обычные фиксы.
|
|
56
|
-
- В режиме `plans`: все выбранные планы из `docs/plans/`.
|
|
56
|
+
- В режиме `plans`: все выбранные планы из `docs/artifacts/plans/`.
|
|
57
57
|
- `docs/rules.md`, `docs/arch.md` (если есть) — прочитай и строго следуй им.
|
|
58
58
|
- Сначала определи затронутые историей и текущим аудитом доменные области. Затем через `docs/business.md` выбери только карточки этих областей; если подходящих нет, продолжай без business-контекста. Используй карточки лишь для поиска автоматизируемых инвариантов и acceptance-сценариев, не расширяй аудит на несвязанные темы.
|
|
59
59
|
- Какие языки и фреймворки в проекте — определи сам.
|
|
@@ -96,19 +96,19 @@ description: 'Аудирует автоматические проверки п
|
|
|
96
96
|
4. `agent` — MCP-сервер, новая/обновлённая eda-инструкция, специализированная агентная проверка или обязательный источник контекста. Предлагай только когда это закрывает значимую ошибку AI-процесса или даёт агенту данные, которые нельзя надёжно получить из кода.
|
|
97
97
|
5. `rules` / `architecture` — текстовые правила и архитектурные уточнения, если проблема связана с договорённостью, границей модулей или ownership.
|
|
98
98
|
|
|
99
|
-
Предпочитай уже установленный инструмент, если он ловит этот класс проблем. Новый инструмент предлагай только если он не дублирует инструмент того же класса. Для проблем из планов предлагай проверку `docs/plans/*.md`, а не runtime-линтер кода. Если правило или архитектура уже зафиксированы, не дублируй текст; предложи только уточнение, которое закрывает найденный случай.
|
|
99
|
+
Предпочитай уже установленный инструмент, если он ловит этот класс проблем. Новый инструмент предлагай только если он не дублирует инструмент того же класса. Для проблем из планов предлагай проверку `docs/artifacts/plans/*.md`, а не runtime-линтер кода. Если правило или архитектура уже зафиксированы, не дублируй текст; предложи только уточнение, которое закрывает найденный случай.
|
|
100
100
|
|
|
101
101
|
Подменять линтер, статанализатор или тест MCP-сервером/скилом нельзя, если ошибку можно надёжно поймать программной проверкой.
|
|
102
102
|
|
|
103
103
|
Для каждой программной проверки укажи точный инструмент, команду/сценарий и контур: `pre-commit`, `pre-push`, `PR CI`, `nightly`, `release`, `post-deploy`. Быстрые проверки отдели от тяжёлых. Для MCP укажи сервер/класс инструмента, проверяемый сценарий, минимальные права, тестовые данные и контур `MCP/manual`; MCP не называй автоматической CI-проверкой, если он реально не запускается без участия агента.
|
|
104
104
|
|
|
105
105
|
### 5. Сохранить отчёт
|
|
106
|
-
`docs/automations/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Slug — короткое описание набора (например, `php-strict-rules`).
|
|
106
|
+
`docs/artifacts/automations/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Slug — короткое описание набора (например, `php-strict-rules`).
|
|
107
107
|
|
|
108
108
|
```markdown
|
|
109
109
|
---
|
|
110
110
|
date: <YYYY-MM-DD HH:MM>
|
|
111
|
-
sources: [docs/reviews/..., docs/review-fixes/..., docs/fixes/..., docs/business/...]
|
|
111
|
+
sources: [docs/artifacts/reviews/..., docs/artifacts/review-fixes/..., docs/artifacts/fixes/..., docs/business/...]
|
|
112
112
|
mode: <normal | plans>
|
|
113
113
|
status: draft
|
|
114
114
|
---
|
|
@@ -132,7 +132,7 @@ status: draft
|
|
|
132
132
|
### 1. <название паттерна>
|
|
133
133
|
- **Тип:** automation / tests / tooling
|
|
134
134
|
- **Что ловит:** ...
|
|
135
|
-
- **Встречалось в:** `docs/reviews/...` (×1), `docs/reviews/...` (×2)
|
|
135
|
+
- **Встречалось в:** `docs/artifacts/reviews/...` (×1), `docs/artifacts/reviews/...` (×2)
|
|
136
136
|
- **Почему автоматизировать:** <повторяемость либо высокий ущерб и вероятность повторения>
|
|
137
137
|
- **Инструмент:** <название или текущий test runner> (если новый для проекта — пометка «требует установки»)
|
|
138
138
|
- **Команда / сценарий:** <точная команда, glob, правило или тестовый сценарий>
|
|
@@ -150,7 +150,7 @@ status: draft
|
|
|
150
150
|
### 1. <название паттерна>
|
|
151
151
|
- **Тип:** agent
|
|
152
152
|
- **Что закрывает:** <какую ошибку процесса или нехватку контекста>
|
|
153
|
-
- **Встречалось в:** `docs/reviews/...` (×1), `docs/fixes/...` (×1)
|
|
153
|
+
- **Встречалось в:** `docs/artifacts/reviews/...` (×1), `docs/artifacts/fixes/...` (×1)
|
|
154
154
|
- **Почему автоматизировать:** <повторяемость либо высокий ущерб и вероятность повторения>
|
|
155
155
|
- **Предложение:** MCP-сервер / новый eda-скил / правка существующего скила / специализированная агентная проверка
|
|
156
156
|
- **Сценарий и доступ:** <что проверяет, минимальные права, тестовые данные, почему CLI/CI недостаточно>
|
|
@@ -166,7 +166,7 @@ status: draft
|
|
|
166
166
|
- **Тип:** rules / architecture
|
|
167
167
|
- **Куда:** `docs/rules.md` / `docs/arch.md`, раздел <название или «новый раздел»>
|
|
168
168
|
- **Почему:** <какой паттерн закрывает>
|
|
169
|
-
- **Встречалось в:** `docs/fixes/...` (×1), `docs/reviews/...` (×1)
|
|
169
|
+
- **Встречалось в:** `docs/artifacts/fixes/...` (×1), `docs/artifacts/reviews/...` (×1)
|
|
170
170
|
- **Черновик текста:**
|
|
171
171
|
```markdown
|
|
172
172
|
<готовый фрагмент для docs/rules.md или docs/arch.md>
|
|
@@ -38,7 +38,7 @@ description: 'Исследует техническую тему или зада
|
|
|
38
38
|
|
|
39
39
|
## Главные правила
|
|
40
40
|
|
|
41
|
-
1. **Никаких правок кода.** Запись только в `docs/researches/`.
|
|
41
|
+
1. **Никаких правок кода.** Запись только в `docs/artifacts/researches/`.
|
|
42
42
|
2. **Итог — конкретика.** Нельзя заканчивать абстрактными описаниями, списком возможностей или «можно выбрать один из вариантов».
|
|
43
43
|
3. **Развилки закрывай по `decision_mode`.** Значимые развилки подтверждай до финализации, мелкие локальные решения выбирай сам и не создавай шум.
|
|
44
44
|
4. **Риски вплетай в исследование.** Не создавай отдельный обязательный раздел или этап рисков. Если риск влияет на выбор, источник, ограничение или будущую проверку, фиксируй его рядом с соответствующим решением: что может пойти не так и как это учитывается — снимаем, принимаем или выносим за рамки.
|
|
@@ -87,7 +87,7 @@ description: 'Исследует техническую тему или зада
|
|
|
87
87
|
|
|
88
88
|
### 4. Собрать отчёт
|
|
89
89
|
|
|
90
|
-
Сохрани отчёт в `docs/researches/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
|
|
90
|
+
Сохрани отчёт в `docs/artifacts/researches/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
|
|
91
91
|
|
|
92
92
|
Формат отчёта должен быть компактным и универсальным: четыре основных раздела, без обязательного раздувания под каждый тип исследования. Таблицы, ASCII-диаграммы и дополнительные подпункты добавляй внутри этих разделов только когда они действительно помогают ясности.
|
|
93
93
|
|
|
@@ -176,4 +176,4 @@ CLI нет — `AskUserQuestion`: продолжать без ревью или
|
|
|
176
176
|
- Перечислять риски без выбранного закрытия.
|
|
177
177
|
- Планировать реализацию по шагам — это работа `eda-plan`.
|
|
178
178
|
- Указывать `latest` без конкретной проверенной версии и источника.
|
|
179
|
-
- Сохранять отчёт куда-либо кроме `docs/researches/`.
|
|
179
|
+
- Сохранять отчёт куда-либо кроме `docs/artifacts/researches/`.
|
package/skills/eda-fix/SKILL.md
CHANGED
|
@@ -20,7 +20,7 @@ description: 'Вносит изменения в код по плану или
|
|
|
20
20
|
3. **Делай только указанные фиксы.** Не расширяй задачу до рефакторинга и не чини соседние проблемы без необходимости.
|
|
21
21
|
4. **Тесты рядом с правкой.** Меняешь поведение — добавь или обнови точечный тест.
|
|
22
22
|
5. **Финальная проверка обязательна.** В конце прогони подходящие тесты и линтеры проекта.
|
|
23
|
-
6. **Историю фиксируй в `docs/fixes/`.** Отчёт обязателен даже для маленькой правки.
|
|
23
|
+
6. **Историю фиксируй в `docs/artifacts/fixes/`.** Отчёт обязателен даже для маленькой правки.
|
|
24
24
|
7. **Не коммить и не пушь.** Это `eda-commit`. Не делай ревью — это `eda-review`.
|
|
25
25
|
|
|
26
26
|
## Интерактивные вопросы
|
|
@@ -34,7 +34,7 @@ description: 'Вносит изменения в код по плану или
|
|
|
34
34
|
## Этапы
|
|
35
35
|
|
|
36
36
|
### 1. Определить задачу
|
|
37
|
-
Определи `$FIX_CONTEXT`: путь к файлу прочитай, план из `docs/plans/` используй как план фикса, текст используй как контекст. Если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
|
|
37
|
+
Определи `$FIX_CONTEXT`: путь к файлу прочитай, план из `docs/artifacts/plans/` используй как план фикса, текст используй как контекст. Если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
|
|
38
38
|
|
|
39
39
|
### 2. Прочитать рамку проекта
|
|
40
40
|
Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Сначала определи задачу фикса и затронутое поведение. Если связанный план содержит `sources.business`, прочитай только перечисленные применимые карточки; иначе через `docs/business.md` выбери по описаниям только карточки этой темы. Если подходящих карточек нет, продолжай без business-контекста. Если существует `docs/references.md`, выбери по индексу только применимые технические карточки и используй их примеры как ожидаемую форму реализации. Если `$FIX_CONTEXT` ссылается на research, review, issue или другой файл — прочитай и его.
|
|
@@ -49,12 +49,12 @@ description: 'Вносит изменения в код по плану или
|
|
|
49
49
|
Прогони подходящие тесты и линтеры. Команды определи по стеку проекта. Свои поломки — исправь и повтори. Чужие или несвязанные поломки — зафиксируй в отчёте и спроси через `AskUserQuestion`, если без решения нельзя продолжать.
|
|
50
50
|
|
|
51
51
|
### 6. Сохранить отчёт
|
|
52
|
-
Сохрани отчёт в `docs/fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
|
|
52
|
+
Сохрани отчёт в `docs/artifacts/fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
|
|
53
53
|
|
|
54
54
|
```markdown
|
|
55
55
|
---
|
|
56
56
|
date: <YYYY-MM-DD HH:MM>
|
|
57
|
-
source: <text | path | docs/plans/...>
|
|
57
|
+
source: <text | path | docs/artifacts/plans/...>
|
|
58
58
|
status: done
|
|
59
59
|
---
|
|
60
60
|
|
|
@@ -83,8 +83,8 @@ status: done
|
|
|
83
83
|
## Чего НЕ делать
|
|
84
84
|
- Коммитить, пушить, создавать PR.
|
|
85
85
|
- Делать ревью вместо фикса.
|
|
86
|
-
- Выполнять большой план с чекбоксами и журналом `docs/executions/` — это `eda-plan-execute`.
|
|
86
|
+
- Выполнять большой план с чекбоксами и журналом `docs/artifacts/executions/` — это `eda-plan-execute`.
|
|
87
87
|
- Применять замечания из готового ревью — это `eda-fix-by-review`.
|
|
88
|
-
- Сохранять отчёт куда-либо кроме `docs/fixes/`.
|
|
88
|
+
- Сохранять отчёт куда-либо кроме `docs/artifacts/fixes/`.
|
|
89
89
|
- Загружать несвязанные business-карточки или расширять ими scope фикса.
|
|
90
90
|
- Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
|
|
@@ -5,80 +5,73 @@ description: 'Исправляет код по готовому ревью из
|
|
|
5
5
|
|
|
6
6
|
# Скил: Исправитель по ревью (eda-fix-by-review)
|
|
7
7
|
|
|
8
|
-
Берёшь готовое ревью из `docs/reviews
|
|
8
|
+
Берёшь готовое ревью из `docs/artifacts/reviews/` или сообщения, применяешь все находки к коду и сохраняешь отчёт в `docs/artifacts/review-fixes/`. После правок выполняешь полный прогон тестов и линтеров.
|
|
9
9
|
|
|
10
10
|
## Вход из сообщения пользователя
|
|
11
11
|
|
|
12
|
-
Текст рядом с вызовом скилла в текущем сообщении
|
|
12
|
+
Текст рядом с вызовом скилла в текущем сообщении — главный вход. Сначала разбери тему, задачу, путь к файлу, номера замечаний, ограничения и прямые указания. Если входа достаточно, продолжай без вопроса. Старое обсуждение не считай входом, если пользователь явно не связал его с текущим вызовом.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Режим запуска
|
|
17
|
-
|
|
18
|
-
Обычный режим: все пункты «Править обязательно» применяешь сразу, «На усмотрение автора» выносишь через `AskUserQuestion`, «Не править» пропускаешь.
|
|
19
|
-
|
|
20
|
-
Режим `apply-optional`: все пункты «Править обязательно» применяешь без исключений. По каждому пункту «На усмотрение автора» сам принимаешь решение без вопроса: применяешь, если правка явно улучшает качество, снижает риск или стоит дёшево; отклоняешь, если польза спорная, правка расширяет scope, создаёт риск регрессии, конфликтует с правилами/архитектурой или требует продуктового решения. Название режима означает «разобрать optional без вопроса», а не «механически применить все optional». Пункты «Не править» всё равно пропускаешь.
|
|
14
|
+
У нового формата ревью одна группа находок: каждый пункт обязательно исправить. Режимов выбора рекомендаций нет. Если дан старый файл с разделами `Править обязательно`, `На усмотрение автора` и `Не править`, применяй только пункты из `Править обязательно`; остальные старые предложения не переноси в работу и отчёт.
|
|
21
15
|
|
|
22
16
|
## Главные правила
|
|
23
17
|
|
|
24
|
-
1.
|
|
25
|
-
2.
|
|
26
|
-
3.
|
|
27
|
-
4.
|
|
28
|
-
5.
|
|
29
|
-
6.
|
|
30
|
-
7.
|
|
31
|
-
8.
|
|
18
|
+
1. Перед правкой прочитай `docs/rules.md` и `docs/arch.md`. Определи замечания и затронутое поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов.
|
|
19
|
+
2. Применяй все выбранные находки. Не переоценивай их полезность и не превращай исправление в более широкий рефакторинг.
|
|
20
|
+
3. Отклонить находку можно, только если она фактически неверна: код уже делает требуемое, доказательство не воспроизводится или правка нарушает применимое правило либо архитектуру. Отклонение с причиной запиши в отчёт. Трудоёмкость, вкус и несогласие с формулировкой основанием не являются.
|
|
21
|
+
4. Задавай вопрос только если находка неоднозначна, противоречит коду или обязательной документации, требует продуктового решения, расширяет scope либо ведёт к рискованному действию. В остальных случаях работай автономно.
|
|
22
|
+
5. Не делай новое ревью и не коммить. Только исправляй замечания и пиши отчёт.
|
|
23
|
+
6. Если находка касается поведения, добавь или обнови точечный тест в той же правке и прогони его.
|
|
24
|
+
7. В конце обязательно прогони полный набор тестов и линтеров один раз.
|
|
25
|
+
8. Пиши просто и конкретно; в отчёте используй таблицу.
|
|
32
26
|
|
|
33
27
|
## Интерактивные вопросы
|
|
34
28
|
|
|
35
|
-
Когда
|
|
29
|
+
Когда без ответа нельзя безопасно продолжать:
|
|
30
|
+
|
|
36
31
|
- Claude Code: используй `AskUserQuestion`.
|
|
37
|
-
- Codex interactive:
|
|
38
|
-
- Codex exec
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
- Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 2–3 вариантами и остановись до ответа.
|
|
33
|
+
- Codex exec и другой неинтерактивный запуск: не читай stdin; верни `blocked: нужен ответ пользователя`, перечисли вопрос и варианты, не выполняй рискованное действие.
|
|
34
|
+
|
|
35
|
+
Не запускай команды, которые ждут интерактивного ввода в терминале. Вопрос не разрешает молча заменить находку другой правкой или исправлять несвязанные поломки.
|
|
41
36
|
|
|
42
37
|
## Этапы
|
|
43
38
|
|
|
44
39
|
### 1. Выбрать ревью
|
|
45
|
-
Сначала разбери текст рядом с вызовом: путь к ревью, название или часть названия, «последнее ревью», номера замечаний или вставленный текст замечаний. Если замечания вставлены в сообщение — используй режим `$REVIEW_SOURCE=review_text`, не выбирай файл ревью и сохрани отчёт с `review: text`.
|
|
46
40
|
|
|
47
|
-
|
|
41
|
+
Разбери путь к ревью, название, «последнее ревью», номера находок или вставленный текст. Для текста используй `$REVIEW_SOURCE=review_text`, не выбирай файл и сохраняй отчёт с `review: text`.
|
|
42
|
+
|
|
43
|
+
Если найден ровно один файл, используй `$REVIEW_SOURCE=review_file`. Если найдено несколько равно подходящих файлов или входа нет, задай один вопрос со списком. Если `docs/artifacts/reviews/` пуста и текст замечаний не дан, остановись с `blocked: нужно ревью`.
|
|
48
44
|
|
|
49
45
|
### 2. Прочитать контекст
|
|
50
|
-
Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Если связанный план содержит `sources.business`, прочитай только перечисленные карточки, относящиеся к исправляемым замечаниям; иначе выбери их по описаниям через `docs/business.md`. Отсутствие подходящей карточки не является блокером. Через `docs/references.md` выбери только применимые технические карточки. Если связанный план содержит `sources.references`, прочитай перечисленные карточки и не загружай остальные.
|
|
51
46
|
|
|
52
|
-
|
|
47
|
+
Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Для исправляемого поведения выбери только применимые business-карточки и технические reference-карточки. Если связанный план уже задаёт `sources.business` или `sources.references`, используй относящиеся к находкам пути из этих списков.
|
|
48
|
+
|
|
49
|
+
При `$REVIEW_SOURCE=review_file` прочитай ревью целиком, а также явно связанные план и research. При `$REVIEW_SOURCE=review_text` работай по текущему сообщению. Файла ревью нет: не пытайся читать `$REVIEW_FILE` и не ищи план или research без явной ссылки.
|
|
53
50
|
|
|
54
|
-
|
|
51
|
+
### 3. Применить находки
|
|
55
52
|
|
|
56
|
-
|
|
57
|
-
Раздели пункты ревью по группам (берёшь из раздела «Рекомендации»):
|
|
58
|
-
- **Править обязательно** → правишь все пункты сразу. Если меняешь поведение — добавь точечный тест в этой же правке.
|
|
59
|
-
- **На усмотрение автора** → в обычном режиме собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя; в режиме `apply-optional` сам реши по каждому пункту, применяй только принятые решения без вопроса, а отклонённые фиксируй с причиной.
|
|
60
|
-
- **Не править** → пропусти.
|
|
53
|
+
Исправь все находки нового формата либо выбранные пользователем номера. Для старого формата возьми только пункты из `Править обязательно`. Делай минимальную достаточную правку и точечную проверку после каждого логического изменения. Находку, которая оказалась фактически неверной, не исправляй: запиши её в «Отклонённые находки» с доказательством.
|
|
61
54
|
|
|
62
|
-
|
|
55
|
+
Остановись с вопросом при неоднозначности, конфликте с правилами, архитектурой или business-карточкой, необходимости расширить scope либо выполнить рискованное действие. При конфликте с business-карточкой предложи изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
|
|
63
56
|
|
|
64
57
|
### 4. Финальная проверка
|
|
65
|
-
Прогони полный сьют тестов и линтеры. Команды — стандартные для стека; непонятно — `AskUserQuestion`. Свои поломки — правишь и повторяешь. Чужие/несвязанные — `AskUserQuestion`.
|
|
66
58
|
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
Прогони полный сьют тестов и линтеры стандартными командами проекта. Свои поломки исправь и повтори проверку. При чужой или несвязанной ошибке остановись с конкретным блокером.
|
|
60
|
+
|
|
61
|
+
### 5. Сохранить отчёт и связать с ревью
|
|
62
|
+
|
|
63
|
+
Сохрани `docs/artifacts/review-fixes/{YYYY-MM-DD}_{HH-MM}_{slug}.md`. Если `$REVIEW_SOURCE=review_file`, допиши в конец `$REVIEW_FILE`:
|
|
69
64
|
|
|
70
65
|
```markdown
|
|
71
66
|
## Применённые фиксы
|
|
72
|
-
Отчёт: `docs/review-fixes/{file}.md`
|
|
67
|
+
Отчёт: `docs/artifacts/review-fixes/{file}.md`
|
|
73
68
|
```
|
|
74
69
|
|
|
75
|
-
Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью:
|
|
76
|
-
|
|
77
|
-
Шаблон отчёта:
|
|
70
|
+
Если `$REVIEW_SOURCE=review_text`, не дописывай ссылку в исходное ревью: исходного файла нет.
|
|
78
71
|
|
|
79
72
|
```markdown
|
|
80
73
|
---
|
|
81
|
-
review:
|
|
74
|
+
review: <docs/artifacts/reviews/... | text>
|
|
82
75
|
date: <YYYY-MM-DD HH:MM>
|
|
83
76
|
status: done
|
|
84
77
|
---
|
|
@@ -89,13 +82,11 @@ status: done
|
|
|
89
82
|
| # | Замечание | Файлы | Тесты | Статус |
|
|
90
83
|
|---|-----------|-------|-------|--------|
|
|
91
84
|
| 1 | <кратко из ревью> | `path/a.py` | `path/test_a.py` (2 ✓) | ✓ применено |
|
|
92
|
-
| 2 | ... | ... | — | ✓ применено |
|
|
93
|
-
| 3 | ... | — | — | ✗ отклонено (на усмотрение, причина: <короткое обоснование>) |
|
|
94
|
-
| 4 | ... | — | — | — не править (по решению ревью) |
|
|
95
85
|
|
|
96
|
-
##
|
|
97
|
-
|
|
98
|
-
|
|
86
|
+
## Отклонённые находки
|
|
87
|
+
| # | Замечание | Почему отклонена |
|
|
88
|
+
|---|-----------|------------------|
|
|
89
|
+
| 2 | <кратко из ревью> | <чем подтверждается, что находка неверна> |
|
|
99
90
|
|
|
100
91
|
## Финальная проверка
|
|
101
92
|
- **Тесты:** `<команда>` — ✓ / ✗
|
|
@@ -103,18 +94,16 @@ status: done
|
|
|
103
94
|
- **Заметки:** <если что-то осталось не зелёным — почему>
|
|
104
95
|
```
|
|
105
96
|
|
|
106
|
-
Если `$REVIEW_SOURCE=review_file` и в режиме `apply-optional` отклонены пункты «На усмотрение автора», в добавляемом в ревью разделе `## Применённые фиксы` после ссылки на отчёт добавь короткий список `Отклонённые optional-решения` с причинами. Это нужно, чтобы следующие ревьюеры видели уже принятое решение и не повторяли тот же optional-пункт без новых аргументов.
|
|
107
|
-
|
|
108
97
|
### 6. Финал
|
|
109
|
-
|
|
98
|
+
|
|
99
|
+
Короткое сообщение: путь к ревью или «источник: текст из сообщения», путь к fix-отчёту, сколько находок применено и сколько отклонено, результат финальной проверки и состояние git «не закоммичено». Предложи `eda-commit`.
|
|
110
100
|
|
|
111
101
|
## Чего НЕ делать
|
|
102
|
+
|
|
112
103
|
- Делать само ревью — это `eda-review`.
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
- Гонять полный сьют
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
- Загружать несвязанные business-карточки или расширять ими состав исправлений.
|
|
120
|
-
- Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
|
|
104
|
+
- Коммитить или пушить — это `eda-commit`.
|
|
105
|
+
- Отклонять находку по вкусу, из-за трудоёмкости или несогласия с формулировкой: основание — только фактическая ошибка находки, и всегда с причиной в отчёте.
|
|
106
|
+
- Расширять scope ради улучшений, которых нет в находках.
|
|
107
|
+
- Гонять полный сьют после каждого пункта или пропускать финальную проверку.
|
|
108
|
+
- Сохранять отчёт вне `docs/artifacts/review-fixes/`.
|
|
109
|
+
- Загружать несвязанные business-карточки или молча отклоняться от применимого правила.
|
|
@@ -23,7 +23,7 @@ description: 'Проводит ручную smoke/acceptance-проверку и
|
|
|
23
23
|
6. **Секреты не трогай.** Используй только уже доступные локальные `.env`, тестовые аккаунты и настройки. Не проси пользователя прислать секреты в чат и не печатай токены, cookies, passwords, API keys или Authorization headers в отчёт.
|
|
24
24
|
7. **Разрушительное подтверждай.** Реальные платежи, удаление данных, отправку email/SMS/push, изменение production/staging-данных, миграции, очистку БД и похожие действия выполняй только после `AskUserQuestion`.
|
|
25
25
|
8. **Проверяй фактическое поведение.** Не ограничивайся чтением кода. Если сценарий нельзя выполнить, зафиксируй `blocked` и конкретную причину.
|
|
26
|
-
9. **Отчёт обязателен.** Сохрани результат в `docs/manual-tests/`, даже если проверка заблокирована или нашла баги.
|
|
26
|
+
9. **Отчёт обязателен.** Сохрани результат в `docs/artifacts/manual-tests/`, даже если проверка заблокирована или нашла баги.
|
|
27
27
|
10. **Задача важнее дополнительного контекста.** Основной чеклист строй по выполненной задаче: текущему сообщению и явно связанному плану, issue, review или fix-отчёту. Business-карточки подключай только после определения target и только для непосредственно затронутого поведения.
|
|
28
28
|
|
|
29
29
|
## Интерактивные вопросы
|
|
@@ -85,15 +85,15 @@ description: 'Проводит ручную smoke/acceptance-проверку и
|
|
|
85
85
|
- видимые состояния ошибок, пустых данных или невалидного ввода, если они относятся к задаче;
|
|
86
86
|
- текст и элементы управления не ломаются на очевидном desktop/mobile viewport, если менялась вёрстка.
|
|
87
87
|
|
|
88
|
-
Скриншоты сохраняй только если инструмент это поддерживает и они помогают подтвердить результат или баг. Складывай их рядом с отчётом или в подпапку `docs/manual-tests/assets/`.
|
|
88
|
+
Скриншоты сохраняй только если инструмент это поддерживает и они помогают подтвердить результат или баг. Складывай их рядом с отчётом или в подпапку `docs/artifacts/manual-tests/assets/`.
|
|
89
89
|
|
|
90
90
|
### 7. Сохранить отчёт
|
|
91
|
-
Сохрани отчёт в `docs/manual-tests/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
|
|
91
|
+
Сохрани отчёт в `docs/artifacts/manual-tests/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
|
|
92
92
|
|
|
93
93
|
```markdown
|
|
94
94
|
---
|
|
95
95
|
date: <YYYY-MM-DD HH:MM>
|
|
96
|
-
source: <text | git diff HEAD | docs/plans/... | docs/reviews/...>
|
|
96
|
+
source: <text | git diff HEAD | docs/artifacts/plans/... | docs/artifacts/reviews/...>
|
|
97
97
|
target: <api | frontend | fullstack | other>
|
|
98
98
|
status: <passed | failed | blocked>
|
|
99
99
|
---
|
|
@@ -134,7 +134,7 @@ status: <passed | failed | blocked>
|
|
|
134
134
|
Короткое сообщение: путь к отчёту, итог `passed` / `failed` / `blocked`, какие сценарии реально проверены, какие процессы остановлены, состояние git («не закоммичено»). Если итог `failed` или `blocked` — предложи дальше `eda-fix`. Если итог `passed` — предложи дальше `eda-review` или `eda-commit`.
|
|
135
135
|
|
|
136
136
|
## Чего НЕ делать
|
|
137
|
-
- Править код, конфиги, миграции, seed-данные или документацию проекта, кроме отчёта в `docs/manual-tests/`.
|
|
137
|
+
- Править код, конфиги, миграции, seed-данные или документацию проекта, кроме отчёта в `docs/artifacts/manual-tests/`.
|
|
138
138
|
- Писать или обновлять unit/e2e/autotests. Это работа `eda-fix`, `eda-plan-execute` или отдельной задачи.
|
|
139
139
|
- Устанавливать Playwright, браузеры, npm-пакеты, docker images или системные зависимости без явного подтверждения.
|
|
140
140
|
- Подменять ручную проверку запуском `npm test` без фактического прохождения API/UI-сценария.
|
|
@@ -20,7 +20,7 @@ description: 'Собирает и согласует требования, гр
|
|
|
20
20
|
3. **Стек подбирается под задачу.** Для каждого значимого выбора дай 2–3 реалистичных варианта, рекомендацию и причину; не навязывай любимые технологии.
|
|
21
21
|
4. **Фиксируй драйверы, а не архитектуру.** Запиши свойства, которым будущая архитектура должна соответствовать, но не выбирай слои, модули, направления зависимостей, структуру папок или внутренние data-flow.
|
|
22
22
|
5. **Не дублируй `eda-prepare-ai`.** Не проектируй архитектуру, правила, строгие режимы инструментов, матрицу проверок, AI-скилы, агентные роли или MCP. После сохранения всегда передай подтверждённый стартовый документ в `eda-prepare-ai` без дополнительного вопроса.
|
|
23
|
-
6. **Не пишешь код и не ставишь пакеты.** Сам меняй только `docs/project-starts/`; не создавай конфиги, CI или проектную AI-документацию.
|
|
23
|
+
6. **Не пишешь код и не ставишь пакеты.** Сам меняй только `docs/artifacts/project-starts/`; не создавай конфиги, CI или проектную AI-документацию.
|
|
24
24
|
7. **Проверяй версии выбранного стека.** Для каждого подтверждаемого пакета, runtime, framework, СУБД, CLI или сервиса найди актуальную стабильную версию по официальному источнику. Не пиши `latest` без номера версии, источника и даты проверки.
|
|
25
25
|
8. **Не усиливай требования догадками.** Отделяй прямой факт пользователя от вывода: например, хостинг в конкретной стране сам по себе не означает обязательную резидентность данных. Не подтверждённое следствие запиши как открытый вопрос, а не как принятое ограничение.
|
|
26
26
|
|
|
@@ -83,7 +83,7 @@ description: 'Собирает и согласует требования, гр
|
|
|
83
83
|
|
|
84
84
|
### 4. Сохранить стартовый документ
|
|
85
85
|
|
|
86
|
-
Сохрани `docs/project-starts/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
|
|
86
|
+
Сохрани `docs/artifacts/project-starts/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
|
|
87
87
|
|
|
88
88
|
```markdown
|
|
89
89
|
---
|
|
@@ -160,4 +160,4 @@ status: ready-for-prepare-ai
|
|
|
160
160
|
- Подбирать AI-скилы, агентные роли или MCP.
|
|
161
161
|
- Создавать `docs/rules.md`, `docs/arch.md`, references, `AGENTS.md` или `CLAUDE.md`.
|
|
162
162
|
- Писать код, миграции, конфиги или CI, устанавливать зависимости.
|
|
163
|
-
- Сохранять стартовый документ куда-либо кроме `docs/project-starts/`.
|
|
163
|
+
- Сохранять стартовый документ куда-либо кроме `docs/artifacts/project-starts/`.
|
|
@@ -51,7 +51,7 @@ orhestra:
|
|
|
51
51
|
- `steps`: упорядоченный непустой список. Выполняй сверху вниз только элементы с `enabled: true`; отсутствующий `enabled` считай `true`.
|
|
52
52
|
- `id`: уникальное непустое имя шага для ссылок из `on_failure.then`.
|
|
53
53
|
- `skill`: имя установленного `eda-*`-скила. Не разрешай `eda-orhestra`, `eda-aim`, `eda-commit`, `eda-send-review`, `eda-worktree` и `eda-merge-worktree`.
|
|
54
|
-
- `args`: строка, которую нужно дословно добавить к входу этого скилла. Отсутствующее значение считай пустой строкой. Для дефолтного `eda-plan` передавай `без проверок`, чтобы оба вида ревью выполнил следующий `eda-plan-polish`. Для `eda-polish` здесь же задавай
|
|
54
|
+
- `args`: строка, которую нужно дословно добавить к входу этого скилла. Отсутствующее значение считай пустой строкой. Для дефолтного `eda-plan` передавай `без проверок`, чтобы оба вида ревью выполнил следующий `eda-plan-polish`. Для `eda-polish` здесь же задавай штатный `limit N`; дефолт — `limit 5`.
|
|
55
55
|
- `on_failure`: опциональный обработчик `failed` у шага `eda-manual-test`. Если поля нет, сохрани failed-отчёт и остановись без исправлений.
|
|
56
56
|
- `on_failure.skill` и `on_failure.args`: разрешённый установленный скил исправления и его аргументы; дефолты `eda-fix` и пустая строка. Для `skill` действуют те же запреты, что для `steps[].skill`.
|
|
57
57
|
- `on_failure.then`: id шагов, которые после исправления нужно повторить в указанном порядке. Пропускай отключённые шаги. Список должен содержать id активного `eda-manual-test`, иначе исправление нельзя подтвердить.
|
|
@@ -119,7 +119,7 @@ orhestra:
|
|
|
119
119
|
1. Запусти скилл с подготовленным вводом.
|
|
120
120
|
2. Обработай его вопрос по режиму.
|
|
121
121
|
3. Прочитай сохранённый артефакт и явный статус. `blocked`, неполный обязательный результат или непройденная обязательная проверка останавливают цепочку.
|
|
122
|
-
4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings` и
|
|
122
|
+
4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings`, `result: clean` и без находок; отдельного polish-файла нет.
|
|
123
123
|
5. Для успешного шага сохрани все пути и передай их следующему.
|
|
124
124
|
|
|
125
125
|
Если `eda-manual-test` вернул `failed`:
|