@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gian-tiaga/eda",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Пакет скилов и специализированных агентов eda-* для Claude Code и Codex CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@inquirer/checkbox": "^4.3.2",
|
|
43
|
-
"@inquirer/select": "^5.1.5"
|
|
43
|
+
"@inquirer/select": "^5.1.5",
|
|
44
|
+
"yaml": "^2.9.0"
|
|
44
45
|
}
|
|
45
46
|
}
|
package/skills/eda-aim/SKILL.md
CHANGED
|
@@ -9,7 +9,7 @@ description: 'Согласует одну или несколько провер
|
|
|
9
9
|
|
|
10
10
|
## Настройки
|
|
11
11
|
|
|
12
|
-
Прочитай только раздел `aim` из `docs/settings.yaml`, если файл есть. Применяй только `version:
|
|
12
|
+
Прочитай только раздел `aim` из `docs/settings.yaml`, если файл есть. Применяй только `version: 3`.
|
|
13
13
|
|
|
14
14
|
```yaml
|
|
15
15
|
aim:
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-business
|
|
3
|
+
description: 'Создаёт и обновляет согласованное описание проекта, требований и бизнес-логики по тематическим карточкам.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Бизнес-логика (eda-business)
|
|
7
|
+
|
|
8
|
+
Создаёшь и поддерживаешь согласованную бизнес-документацию проекта: короткое оглавление `docs/business.md` и самостоятельные тематические карточки в `docs/business/`. Документы отвечают на вопросы «что должен делать продукт», «для кого», «по каким правилам» и «какой результат считается правильным», но не проектируют техническую реализацию.
|
|
9
|
+
|
|
10
|
+
## Вход из сообщения пользователя
|
|
11
|
+
|
|
12
|
+
Текст рядом с вызовом скилла в текущем сообщении — главный вход. Извлеки названную тему, требования, ограничения, ответы на бизнес-вопросы и прямые указания по существующим карточкам.
|
|
13
|
+
|
|
14
|
+
- Если пользователь назвал тему, работай только с ней. Не расширяй вызов до полного аудита проекта.
|
|
15
|
+
- Если тема не названа, проанализируй проект и предложи упорядоченный список тем, которые действительно стоит описать. Для полного каталога первой предлагай `about`, затем только доказанные проектом домены и сценарии.
|
|
16
|
+
- Явные требования из текущего сообщения считай подтверждёнными. Выводы из кода, тестов и других документов сначала показывай как предложения.
|
|
17
|
+
|
|
18
|
+
Старое обсуждение не считай входом, если пользователь явно не связал его с текущим вызовом.
|
|
19
|
+
|
|
20
|
+
## Главные правила
|
|
21
|
+
|
|
22
|
+
1. **Только business-документация.** Меняй лишь `docs/business.md` и Markdown-файлы непосредственно в `docs/business/`. Не правь код, настройки, правила, архитектуру, планы, тесты или другие документы.
|
|
23
|
+
2. **Целевое поведение.** Карточки фиксируют согласованные требования и бизнес-логику, даже если код пока им не соответствует. Фактические отличия вынеси в последний раздел `Расхождения с реализацией`.
|
|
24
|
+
3. **Никаких догадок как фактов.** Код помогает найти существующие сценарии и вопросы, но не подтверждает продуктовые решения сам по себе.
|
|
25
|
+
4. **Одна тема за раз.** После согласования общего списка полностью проработай текущую тему и получи подтверждение её содержания до записи, затем переходи к следующей.
|
|
26
|
+
5. **В индекс — только готовое.** Не записывай предложенные, незавершённые или спорные темы в `docs/business.md` и не создавай для них черновые карточки.
|
|
27
|
+
6. **Самодостаточные карточки.** Основной текст не должен требовать чтения исходного кода, плана или внешнего материала, чтобы понять бизнес-правило.
|
|
28
|
+
7. **Не проектируй реализацию.** Не назначай классы, таблицы, endpoints, очереди, библиотеки, модули или порядок технических изменений.
|
|
29
|
+
8. **Сохраняй подтверждённое.** При обновлении не удаляй и не ослабляй существующее правило, не переименовывай и не удаляй карточку без явного решения пользователя.
|
|
30
|
+
|
|
31
|
+
## Интерактивные вопросы
|
|
32
|
+
|
|
33
|
+
Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
|
|
34
|
+
|
|
35
|
+
- Claude Code: используй `AskUserQuestion`.
|
|
36
|
+
- Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос с 2–3 вариантами, рекомендацией и остановись до ответа.
|
|
37
|
+
- Codex exec / неинтерактивный запуск: не читай stdin. Если требуется решение или подтверждение, заверши `blocked: нужен ответ пользователя`, перечисли варианты и не записывай неподтверждённые файлы.
|
|
38
|
+
- Не запускай команды, ожидающие интерактивный ввод в терминале.
|
|
39
|
+
|
|
40
|
+
Задавай пакетами не больше трёх связанных вопросов. Не спрашивай факты, которые можно надёжно выяснить из проекта.
|
|
41
|
+
|
|
42
|
+
## Процесс
|
|
43
|
+
|
|
44
|
+
### 1. Прочитать существующий контекст
|
|
45
|
+
|
|
46
|
+
Прочитай `docs/business.md` и только карточки, которые относятся к текущей теме. Затем изучи релевантные README, стартовые документы, правила, архитектуру, пользовательские сценарии, routes, модели, тесты и историю, достаточные для понимания фактического поведения.
|
|
47
|
+
|
|
48
|
+
Не загружай все карточки и весь код без необходимости. Разделяй:
|
|
49
|
+
|
|
50
|
+
- подтверждённые требования пользователя;
|
|
51
|
+
- уже записанные бизнес-правила;
|
|
52
|
+
- наблюдаемое поведение реализации;
|
|
53
|
+
- гипотезы и вопросы.
|
|
54
|
+
|
|
55
|
+
### 2. Выбрать темы при пустом вызове
|
|
56
|
+
|
|
57
|
+
Если тема не задана, составь короткий список только из реально применимых тем. Для каждой укажи, что именно будет описано и почему тема нужна проекту. Не используй обязательный универсальный набор: `auth`, `posts`, `payments` и другие названия допустимы только при наличии соответствующего поведения.
|
|
58
|
+
|
|
59
|
+
Покажи список через `AskUserQuestion` и попроси подтвердить его или изменить. До подтверждения ничего не записывай. После ответа прорабатывай темы последовательно. Если работа прервана, следующий пустой вызов заново анализирует индекс и предлагает только отсутствующие или требующие актуализации темы.
|
|
60
|
+
|
|
61
|
+
### 3. Согласовать текущую тему
|
|
62
|
+
|
|
63
|
+
Собери достаточную бизнес-спецификацию:
|
|
64
|
+
|
|
65
|
+
- назначение и границы темы;
|
|
66
|
+
- участники, роли и значимые термины;
|
|
67
|
+
- требования, правила и инварианты;
|
|
68
|
+
- основные сценарии и порядок бизнес-действий;
|
|
69
|
+
- состояния, переходы, ограничения и исключения;
|
|
70
|
+
- ошибки и пограничные случаи, видимые пользователю или внешнему потребителю;
|
|
71
|
+
- проверяемые критерии приёмки.
|
|
72
|
+
|
|
73
|
+
Для `about` вместо детального алгоритма зафиксируй назначение проекта, аудиторию, решаемую проблему, границы, ключевые возможности, основные пользовательские сценарии и общие бизнес-ограничения.
|
|
74
|
+
|
|
75
|
+
Сравни целевое поведение с реализацией. Подготовь отдельный список подтверждённых расхождений с точными путями и строками, когда они доступны. Отсутствие реализации также является расхождением, если требование уже подтверждено.
|
|
76
|
+
|
|
77
|
+
Покажи человеку собранное содержание и запроси итоговое подтверждение через `AskUserQuestion`. Если остаётся спорное решение, сначала закрой его отдельным вопросом. Не записывай карточку до подтверждения.
|
|
78
|
+
|
|
79
|
+
### 4. Записать карточку и индекс
|
|
80
|
+
|
|
81
|
+
Используй стабильное имя файла в lowercase ASCII kebab-case: `docs/business/<topic>.md`.
|
|
82
|
+
|
|
83
|
+
Обычная тематическая карточка:
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
# <Название темы>
|
|
87
|
+
|
|
88
|
+
## Назначение и границы
|
|
89
|
+
<что покрывает тема и что не покрывает>
|
|
90
|
+
|
|
91
|
+
## Участники и термины
|
|
92
|
+
<роли и доменные понятия>
|
|
93
|
+
|
|
94
|
+
## Требования и правила
|
|
95
|
+
<согласованные требования и инварианты>
|
|
96
|
+
|
|
97
|
+
## Сценарии и алгоритмы
|
|
98
|
+
<пошаговое бизнес-поведение без технической реализации>
|
|
99
|
+
|
|
100
|
+
## Состояния и исключения
|
|
101
|
+
<переходы, ограничения, ошибки и пограничные случаи>
|
|
102
|
+
|
|
103
|
+
## Критерии приёмки
|
|
104
|
+
<наблюдаемые условия корректного поведения>
|
|
105
|
+
|
|
106
|
+
## Расхождения с реализацией
|
|
107
|
+
<подтверждённые отличия с доказательствами либо «Известных расхождений не обнаружено.»>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Для `about.md` используй подходящие смысловые разделы из шага 3, но всегда оставляй последним `## Расхождения с реализацией`.
|
|
111
|
+
|
|
112
|
+
Создай или обнови `docs/business.md` как короткое оглавление только существующих согласованных карточек:
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
# Бизнес-логика проекта
|
|
116
|
+
|
|
117
|
+
| Описание | Карточка |
|
|
118
|
+
|---|---|
|
|
119
|
+
| Назначение проекта, аудитория и основные возможности | [О проекте](business/about.md) |
|
|
120
|
+
| Регистрация, вход, восстановление доступа и права пользователей | [Авторизация](business/auth.md) |
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Описание должно позволять другому скилу решить, нужна ли карточка для текущей задачи, не открывая её. В индексе не должно быть статусов, планов будущих тем или содержания самих карточек.
|
|
124
|
+
|
|
125
|
+
### 5. Проверить результат
|
|
126
|
+
|
|
127
|
+
Убедись, что:
|
|
128
|
+
|
|
129
|
+
- индекс содержит только существующие согласованные карточки и ровно две колонки `Описание` и `Карточка`;
|
|
130
|
+
- новая или обновлённая карточка соответствует подтверждённому содержанию;
|
|
131
|
+
- каждое правило однозначно и проверяемо на уровне поведения;
|
|
132
|
+
- техническая реализация не выдана за бизнес-требование;
|
|
133
|
+
- раздел `Расхождения с реализацией` последний и отделяет целевое состояние от текущего;
|
|
134
|
+
- существующие несвязанные карточки сохранены без изменений.
|
|
135
|
+
|
|
136
|
+
### 6. Финал
|
|
137
|
+
|
|
138
|
+
Коротко сообщи путь к карточке и индексу, какие решения зафиксированы и какие расхождения с реализацией обнаружены. Если после пустого вызова остались подтверждённые темы, переходи к следующей; дополнительное разрешение продолжить не спрашивай.
|
|
139
|
+
|
|
140
|
+
## Чего НЕ делать
|
|
141
|
+
|
|
142
|
+
- Записывать неподтверждённые темы или черновики в индекс.
|
|
143
|
+
- Выводить бизнес-правило только из текущего кода и сразу считать его целевым.
|
|
144
|
+
- Подменять карточку исследованием, roadmap, архитектурой или планом реализации.
|
|
145
|
+
- Создавать ссылки из индекса на отсутствующие файлы.
|
|
146
|
+
- Молча удалять, переименовывать или ослаблять подтверждённые требования.
|
|
147
|
+
- Сохранять business-документацию вне `docs/business.md` и `docs/business/`.
|
|
@@ -11,7 +11,7 @@ description: 'Аудирует автоматические проверки п
|
|
|
11
11
|
|
|
12
12
|
Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
|
|
13
13
|
|
|
14
|
-
Поддерживается только `version:
|
|
14
|
+
Поддерживается только `version: 3`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолт: `discover-automations.include_plans: false`.
|
|
15
15
|
|
|
16
16
|
Если актуального раздела `discover-automations` нет, но есть прежний раздел `automate`, используй `automate.include_plans` как совместимый fallback и сообщи, что настройку следует переименовать. Если присутствуют оба раздела, применяй только `discover-automations`.
|
|
17
17
|
|
|
@@ -55,6 +55,7 @@ description: 'Аудирует автоматические проверки п
|
|
|
55
55
|
- Все выбранные ревью, отчёты о фиксах по ревью и обычные фиксы.
|
|
56
56
|
- В режиме `plans`: все выбранные планы из `docs/plans/`.
|
|
57
57
|
- `docs/rules.md`, `docs/arch.md` (если есть) — прочитай и строго следуй им.
|
|
58
|
+
- Сначала определи затронутые историей и текущим аудитом доменные области. Затем через `docs/business.md` выбери только карточки этих областей; если подходящих нет, продолжай без business-контекста. Используй карточки лишь для поиска автоматизируемых инвариантов и acceptance-сценариев, не расширяй аудит на несвязанные темы.
|
|
58
59
|
- Какие языки и фреймворки в проекте — определи сам.
|
|
59
60
|
- Какие инструменты качества уже установлены и работают: линтеры, форматтеры, статанализаторы, typecheck, все виды тестов, coverage, архитектурные проверки, валидаторы конфигов, security/supply-chain сканеры, performance budgets, pre-commit, CI, release/post-deploy проверки и npm/composer/make-скрипты.
|
|
60
61
|
- Какие агентные усиления уже есть: `.claude/skills/`, `.codex/skills/`, MCP-конфиги, локальные скилы, команды для ревью/планирования. Не предлагай дубль уже установленному.
|
|
@@ -107,7 +108,7 @@ description: 'Аудирует автоматические проверки п
|
|
|
107
108
|
```markdown
|
|
108
109
|
---
|
|
109
110
|
date: <YYYY-MM-DD HH:MM>
|
|
110
|
-
sources: [docs/reviews/..., docs/review-fixes/..., docs/fixes/...]
|
|
111
|
+
sources: [docs/reviews/..., docs/review-fixes/..., docs/fixes/..., docs/business/...]
|
|
111
112
|
mode: <normal | plans>
|
|
112
113
|
status: draft
|
|
113
114
|
---
|
|
@@ -119,6 +120,7 @@ status: draft
|
|
|
119
120
|
- Стек проекта: <по конфигам>
|
|
120
121
|
- Уже работающие инструменты: <список>
|
|
121
122
|
- Уже найденные скилы/MCP/агентные проверки: <список или «не найдены»>
|
|
123
|
+
- Применимые business-карточки: <пути или «нет»>
|
|
122
124
|
|
|
123
125
|
## Покрытие экстремального каталога
|
|
124
126
|
| Группа | Уже есть | Пробелы | Статус | Причина N/A |
|
|
@@ -11,7 +11,7 @@ description: 'Исследует техническую тему или зада
|
|
|
11
11
|
|
|
12
12
|
Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
|
|
13
13
|
|
|
14
|
-
Поддерживается только `version:
|
|
14
|
+
Поддерживается только `version: 3`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолты: `explore.strict: false`, `explore.decision_mode: recommend_and_ask`.
|
|
15
15
|
|
|
16
16
|
| Настройка | Значения | Аргументы в сообщении |
|
|
17
17
|
|---|---|---|
|
|
@@ -43,8 +43,8 @@ description: 'Исследует техническую тему или зада
|
|
|
43
43
|
3. **Развилки закрывай по `decision_mode`.** Значимые развилки подтверждай до финализации, мелкие локальные решения выбирай сам и не создавай шум.
|
|
44
44
|
4. **Риски вплетай в исследование.** Не создавай отдельный обязательный раздел или этап рисков. Если риск влияет на выбор, источник, ограничение или будущую проверку, фиксируй его рядом с соответствующим решением: что может пойти не так и как это учитывается — снимаем, принимаем или выносим за рамки.
|
|
45
45
|
5. **Версии проверяй.** Если речь о пакетах, библиотеках, CLI, сервисах или другом ПО, а версия не задана контекстом, проверь последнюю стабильную версию через context7, если он доступен, или через web search по официальным источникам.
|
|
46
|
-
6. **Прочитай рамку проекта.** Прочитай `docs/rules.md` и `docs/arch.md`, если есть.
|
|
47
|
-
7.
|
|
46
|
+
6. **Прочитай рамку проекта.** Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Сначала определи исследуемую задачу, затем через `docs/business.md` выбери только карточки затронутого поведения, а через `docs/references.md` — только карточки затронутых компонентов. Нерелевантные карточки не загружай.
|
|
47
|
+
7. **Разделяй источники.** Текущий запрос задаёт область исследования; применимые business-карточки — требования к затронутому поведению; rules, architecture и references — техническая рамка. Если запрос противоречит business-карточке, остановись и через `AskUserQuestion` спроси, изменить задачу или пересогласовать правило через `eda-business`. Не рекомендуй отклонение от технического эталона без явной причины и подтверждения пользователя.
|
|
48
48
|
7. **Каждое фактическое утверждение — со ссылкой** (`file.ext:42`, URL, коммит). Без ссылки — помечай как «гипотеза» и не делай её основанием выбранного решения.
|
|
49
49
|
8. **Простой язык.** Термины — только когда без них нельзя, сразу с пояснением.
|
|
50
50
|
9. **Таблицы > сплошной текст** для фактов, развилок, сравнений, версий и источников.
|
|
@@ -70,7 +70,7 @@ description: 'Исследует техническую тему или зада
|
|
|
70
70
|
|
|
71
71
|
### 2. Собрать контекст
|
|
72
72
|
|
|
73
|
-
Работай read-only: читай код, документы, конфиги, тесты, историю и внешние источники. Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Если есть `docs/references.md`, выбери по индексу только применимые карточки и используй их кодовые примеры как эталон ожидаемой формы решения.
|
|
73
|
+
Работай read-only: читай код, документы, конфиги, тесты, историю и внешние источники. Прочитай `docs/rules.md` и `docs/arch.md`, если они есть. Если есть `docs/business.md`, выбери по описаниям только карточки, непосредственно относящиеся к исследуемому поведению; если подходящих нет, продолжай без них. Если есть `docs/references.md`, выбери по индексу только применимые технические карточки и используй их кодовые примеры как эталон ожидаемой формы решения.
|
|
74
74
|
|
|
75
75
|
Если исследование касается пакетов или ПО:
|
|
76
76
|
- сначала проверь, не зафиксирована ли версия в запросе, lock-файле, package/config-файле, `docs/rules.md`, `docs/arch.md` или связанном документе;
|
|
@@ -102,6 +102,7 @@ reviewer: <pending | none | claude | codex>
|
|
|
102
102
|
sources:
|
|
103
103
|
rules: <путь или —>
|
|
104
104
|
arch: <путь или —>
|
|
105
|
+
business: [<пути к применимым карточкам или пусто>]
|
|
105
106
|
references: [<пути к применимым карточкам или пусто>]
|
|
106
107
|
---
|
|
107
108
|
|
|
@@ -148,13 +149,13 @@ Quality gate перед сохранением:
|
|
|
148
149
|
Если ты в Claude Code — запускай Codex CLI:
|
|
149
150
|
|
|
150
151
|
```bash
|
|
151
|
-
codex exec "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md, карточки из sources.references при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, архитектура не выдумана, применимые эталоны учтены, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
|
|
152
|
+
codex exec "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, применимые бизнес-требования учтены, архитектура не выдумана, применимые эталоны учтены, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, нарушения бизнес-требований, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
|
|
152
153
|
```
|
|
153
154
|
|
|
154
155
|
Если ты в Codex — запускай Claude CLI с теми же требованиями:
|
|
155
156
|
|
|
156
157
|
```bash
|
|
157
|
-
claude -p "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md, карточки из sources.references при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, архитектура не выдумана, применимые эталоны учтены, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
|
|
158
|
+
claude -p "Прочитай $RESEARCH_FILE, docs/rules.md, docs/arch.md, применимые карточки из sources.business и sources.references при наличии и все источники, на которые ссылается исследование. Проверь, что проблема описана конкретно, применимые бизнес-требования учтены, архитектура не выдумана, применимые эталоны учтены, все развилки решены, риски закрыты, версии пакетов/ПО проверены по актуальным источникам, а вариант решения не является планом или абстрактным рассуждением. Критическое ревью на русском: фактические ошибки, пропущенные развилки, нарушения бизнес-требований, незакрытые риски, слабые источники, неверные версии, неконкретный итог. Формат: '- [тип] описание — что исправить'." > "${RESEARCH_FILE%.md}_review.md"
|
|
158
159
|
```
|
|
159
160
|
|
|
160
161
|
CLI нет — `AskUserQuestion`: продолжать без ревью или прервать.
|
package/skills/eda-fix/SKILL.md
CHANGED
|
@@ -37,10 +37,10 @@ description: 'Вносит изменения в код по плану или
|
|
|
37
37
|
Определи `$FIX_CONTEXT`: путь к файлу прочитай, план из `docs/plans/` используй как план фикса, текст используй как контекст. Если входа нет или он неоднозначен — спроси через `AskUserQuestion`.
|
|
38
38
|
|
|
39
39
|
### 2. Прочитать рамку проекта
|
|
40
|
-
Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Если существует `docs/references.md`, выбери по индексу только применимые карточки и используй их примеры как ожидаемую форму реализации. Если `$FIX_CONTEXT` ссылается на
|
|
40
|
+
Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Сначала определи задачу фикса и затронутое поведение. Если связанный план содержит `sources.business`, прочитай только перечисленные применимые карточки; иначе через `docs/business.md` выбери по описаниям только карточки этой темы. Если подходящих карточек нет, продолжай без business-контекста. Если существует `docs/references.md`, выбери по индексу только применимые технические карточки и используй их примеры как ожидаемую форму реализации. Если `$FIX_CONTEXT` ссылается на research, review, issue или другой файл — прочитай и его.
|
|
41
41
|
|
|
42
42
|
### 3. Сделать фикс
|
|
43
|
-
Найди релевантный код и внеси минимальные правки. Следуй применимому примеру; отклоняйся только по причине, подтверждённой пользователем или уже записанной во входном плане. Если задача состоит из нескольких пунктов, иди по ним последовательно. Останавливайся и
|
|
43
|
+
Найди релевантный код и внеси минимальные правки. Текущая задача задаёт scope, применимая business-карточка — требования к затронутому поведению, reference-карточка — форму реализации. Если задача противоречит business-карточке, остановись, покажи конфликт и через `AskUserQuestion` спроси: изменить задачу или сначала пересогласовать правило через `eda-business`. Следуй применимому техническому примеру; отклоняйся только по причине, подтверждённой пользователем или уже записанной во входном плане. Если задача состоит из нескольких пунктов, иди по ним последовательно. Останавливайся и спрашивай также при рискованной операции, миграции, удалении данных или работе с секретами.
|
|
44
44
|
|
|
45
45
|
### 4. Добавить или обновить тесты
|
|
46
46
|
Если фикс меняет поведение — добавь тест рядом с изменением или обнови существующий. Если тесты не нужны, в отчёте коротко объясни почему.
|
|
@@ -61,7 +61,7 @@ status: done
|
|
|
61
61
|
# Фикс: <краткий заголовок>
|
|
62
62
|
|
|
63
63
|
## Контекст
|
|
64
|
-
<что было передано на вход и какие правила,
|
|
64
|
+
<что было передано на вход и какие правила, архитектура, business- и reference-карточки учтены>
|
|
65
65
|
|
|
66
66
|
## Что изменено
|
|
67
67
|
| # | Файл | Что изменено | Зачем |
|
|
@@ -86,4 +86,5 @@ status: done
|
|
|
86
86
|
- Выполнять большой план с чекбоксами и журналом `docs/executions/` — это `eda-plan-execute`.
|
|
87
87
|
- Применять замечания из готового ревью — это `eda-fix-by-review`.
|
|
88
88
|
- Сохранять отчёт куда-либо кроме `docs/fixes/`.
|
|
89
|
-
-
|
|
89
|
+
- Загружать несвязанные business-карточки или расширять ими scope фикса.
|
|
90
|
+
- Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
|
|
@@ -21,7 +21,7 @@ description: 'Исправляет код по готовому ревью из
|
|
|
21
21
|
|
|
22
22
|
## Главные правила
|
|
23
23
|
|
|
24
|
-
1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`.
|
|
24
|
+
1. **Перед правкой кода** прочитай `docs/rules.md` и `docs/arch.md`. Сначала определи замечания и затронутое ими поведение; затем через `sources.business` связанного плана или `docs/business.md` выбери только применимые business-карточки, а через `docs/references.md` — только карточки затронутых компонентов. Если подходящих business-карточек нет, продолжай без них. Сделай это один раз в начале.
|
|
25
25
|
2. **Интерактивные вопросы** — по разделу ниже.
|
|
26
26
|
3. **Не переформулируй замечания.** Применяй то, что написано в ревью. Если непонятно — спроси через `AskUserQuestion`.
|
|
27
27
|
4. **Не делаешь само ревью и не коммитишь.** Только применяешь замечания и пишешь отчёт.
|
|
@@ -47,7 +47,7 @@ description: 'Исправляет код по готовому ревью из
|
|
|
47
47
|
Если найдено ровно одно ревью — используй режим `$REVIEW_SOURCE=review_file` и продолжай без вопроса. Если замечания даны текстом — используй режим `$REVIEW_SOURCE=review_text` и продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста и вход не содержит замечания — остановись с понятным вопросом или статусом `blocked: нужно ревью`.
|
|
48
48
|
|
|
49
49
|
### 2. Прочитать контекст
|
|
50
|
-
Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Через `docs/references.md` выбери только применимые карточки. Если связанный план содержит `sources.references`, прочитай перечисленные карточки и не загружай остальные.
|
|
50
|
+
Прочитай `docs/rules.md`, `docs/arch.md`, если они есть. Если связанный план содержит `sources.business`, прочитай только перечисленные карточки, относящиеся к исправляемым замечаниям; иначе выбери их по описаниям через `docs/business.md`. Отсутствие подходящей карточки не является блокером. Через `docs/references.md` выбери только применимые технические карточки. Если связанный план содержит `sources.references`, прочитай перечисленные карточки и не загружай остальные.
|
|
51
51
|
|
|
52
52
|
Если `$REVIEW_SOURCE=review_file`, прочитай сам файл ревью. Если ревью ссылается на план/research — прочитай и их.
|
|
53
53
|
|
|
@@ -59,7 +59,7 @@ description: 'Исправляет код по готовому ревью из
|
|
|
59
59
|
- **На усмотрение автора** → в обычном режиме собери в один-два раунда `AskUserQuestion`, применяй по решению пользователя; в режиме `apply-optional` сам реши по каждому пункту, применяй только принятые решения без вопроса, а отклонённые фиксируй с причиной.
|
|
60
60
|
- **Не править** → пропусти.
|
|
61
61
|
|
|
62
|
-
Останавливайся и спрашивай, если замечание непонятно, противоречит коду или проектной
|
|
62
|
+
Останавливайся и спрашивай, если замечание непонятно, противоречит коду или проектной документации либо задевает рискованное вне ревью (удаление, миграции, секреты). Если исправление противоречит применимой business-карточке, покажи конфликт и спроси: изменить состав исправлений или сначала пересогласовать правило через `eda-business`. Не разрешай такой конфликт автоматически даже в `apply-optional`. Подтверждённое отклонение от технической карточки зафиксируй в отчёте.
|
|
63
63
|
|
|
64
64
|
### 4. Финальная проверка
|
|
65
65
|
Прогони полный сьют тестов и линтеры. Команды — стандартные для стека; непонятно — `AskUserQuestion`. Свои поломки — правишь и повторяешь. Чужие/несвязанные — `AskUserQuestion`.
|
|
@@ -116,4 +116,5 @@ status: done
|
|
|
116
116
|
- Гонять полный сьют и линтеры на каждой правке — только в конце.
|
|
117
117
|
- Пропускать финальную проверку.
|
|
118
118
|
- Сохранять отчёт куда-либо кроме `docs/review-fixes/`.
|
|
119
|
-
-
|
|
119
|
+
- Загружать несвязанные business-карточки или расширять ими состав исправлений.
|
|
120
|
+
- Игнорировать применимую карточку или молча отклоняться от её требований либо примера.
|
|
@@ -24,6 +24,7 @@ description: 'Проводит ручную smoke/acceptance-проверку и
|
|
|
24
24
|
7. **Разрушительное подтверждай.** Реальные платежи, удаление данных, отправку email/SMS/push, изменение production/staging-данных, миграции, очистку БД и похожие действия выполняй только после `AskUserQuestion`.
|
|
25
25
|
8. **Проверяй фактическое поведение.** Не ограничивайся чтением кода. Если сценарий нельзя выполнить, зафиксируй `blocked` и конкретную причину.
|
|
26
26
|
9. **Отчёт обязателен.** Сохрани результат в `docs/manual-tests/`, даже если проверка заблокирована или нашла баги.
|
|
27
|
+
10. **Задача важнее дополнительного контекста.** Основной чеклист строй по выполненной задаче: текущему сообщению и явно связанному плану, issue, review или fix-отчёту. Business-карточки подключай только после определения target и только для непосредственно затронутого поведения.
|
|
27
28
|
|
|
28
29
|
## Интерактивные вопросы
|
|
29
30
|
|
|
@@ -36,25 +37,29 @@ description: 'Проводит ручную smoke/acceptance-проверку и
|
|
|
36
37
|
## Этапы
|
|
37
38
|
|
|
38
39
|
### 1. Определить цель проверки
|
|
39
|
-
Разбери вход
|
|
40
|
+
Разбери вход пользователя и зафиксируй `$TASK_CONTEXT`: что было сделано и какие результаты пользователь ожидает проверить. Если указан файл плана, ревью, research, issue, fix-отчёт или другой артефакт — прочитай его. Это главный источник сценариев и критериев. Если входа нет, изучи `git diff HEAD`, изменённые файлы, README и релевантные роуты/страницы/компоненты.
|
|
40
41
|
|
|
41
42
|
Определи `$TEST_TARGET`: `api`, `frontend`, `fullstack` или `other`. Если цель всё ещё неоднозначна и можно проверить не то окружение или не тот сценарий — спроси через `AskUserQuestion`.
|
|
42
43
|
|
|
43
44
|
### 2. Прочитать рамку проекта
|
|
44
45
|
Прочитай `docs/rules.md` и `docs/arch.md`, если есть. Найди команды запуска, тестовые URL, API-контракты, seed/test users и ограничения окружения в README, package scripts, docker compose, Makefile, OpenAPI/Swagger/Postman-файлах и существующих e2e-тестах.
|
|
45
46
|
|
|
47
|
+
После определения `$TASK_CONTEXT` и фактически изменённого поведения прочитай `docs/business.md`, если индекс существует. По описаниям выбери только карточки, которые прямо относятся к проверяемой задаче. Если таких карточек нет, продолжай без business-контекста и без предупреждения. Не открывай остальные карточки и не расширяй ими smoke-проверку.
|
|
48
|
+
|
|
49
|
+
Если ожидаемый результат задачи противоречит применимой business-карточке, не выбирай правильный вариант самостоятельно. До неоднозначного сценария покажи конфликт и через `AskUserQuestion` спроси: проверять изменённую задачу как новое правило или сначала пересогласовать карточку через `eda-business`. В неинтерактивном режиме зафиксируй `blocked` с этим вопросом.
|
|
50
|
+
|
|
46
51
|
Не устанавливай Playwright, браузеры, пакеты, docker images или системные зависимости молча. Если без этого проверка невозможна — спроси через `AskUserQuestion` или зафиксируй `blocked` в неинтерактивном режиме.
|
|
47
52
|
|
|
48
53
|
### 3. Составить smoke-чеклист
|
|
49
54
|
Составь короткий чеклист:
|
|
50
55
|
- запуск приложения или API;
|
|
56
|
+
- явные acceptance criteria и сценарии выполненной задачи;
|
|
51
57
|
- основной happy path изменённой области;
|
|
52
|
-
- 1–2 негативных или edge
|
|
53
|
-
- явные acceptance criteria из плана или входа пользователя;
|
|
58
|
+
- 1–2 негативных или edge-сценария, которые следуют из задачи;
|
|
54
59
|
- для фронта: console errors, network errors и видимые regressions на основной странице;
|
|
55
60
|
- для API: status code, схема/ключевые поля ответа, обработка неверного ввода или прав доступа, если это относится к задаче.
|
|
56
61
|
|
|
57
|
-
Не расширяй проверку до полного exploratory QA, если пользователь не попросил.
|
|
62
|
+
Применимая business-карточка может добавить важный инвариант, ожидаемый результат или один релевантный негативный сценарий, который задача не сформулировала явно. Она не заменяет критерии задачи и не требует тестировать всю предметную область. Не расширяй проверку до полного exploratory QA, если пользователь не попросил.
|
|
58
63
|
|
|
59
64
|
### 4. Запустить окружение
|
|
60
65
|
Если приложение ещё не запущено и команды очевидны, запусти нужные dev/API-серверы. Дождись готовности по логам, healthcheck, открытому порту или успешному запросу. Если порт занят, проверь, подходит ли уже запущенный сервис; если нет — спроси или выбери очевидный альтернативный порт только когда проект это поддерживает.
|
|
@@ -98,6 +103,9 @@ status: <passed | failed | blocked>
|
|
|
98
103
|
## Контекст
|
|
99
104
|
<что проверялось и откуда взяты сценарии>
|
|
100
105
|
|
|
106
|
+
## Business-контекст
|
|
107
|
+
<только если использовался: применимые карточки и какие сценарии или ожидания они добавили>
|
|
108
|
+
|
|
101
109
|
## Окружение
|
|
102
110
|
| Что | Значение |
|
|
103
111
|
|---|---|
|
|
@@ -117,7 +125,7 @@ status: <passed | failed | blocked>
|
|
|
117
125
|
<ссылки на скриншоты, логи или «Нет»>
|
|
118
126
|
|
|
119
127
|
## Итог
|
|
120
|
-
<passed / failed / blocked и короткое
|
|
128
|
+
<passed / failed / blocked и короткое объяснение относительно выполненной задачи>
|
|
121
129
|
```
|
|
122
130
|
|
|
123
131
|
Если найден баг, статус отчёта `failed`. Если проверка невозможна из-за окружения, авторизации, отсутствующих зависимостей или непонятного риска, статус `blocked`.
|
|
@@ -5,13 +5,13 @@ description: 'Выполняет настраиваемую цепочку `eda-
|
|
|
5
5
|
|
|
6
6
|
# Скил: Оркестра полного цикла (eda-orhestra)
|
|
7
7
|
|
|
8
|
-
Выполняй настроенные `eda-*`-скилы по порядку. По умолчанию
|
|
8
|
+
Выполняй настроенные `eda-*`-скилы по порядку. По умолчанию цепочка: `eda-plan` без проверок → `eda-plan-polish` → `eda-plan-execute` → `eda-polish` → `eda-manual-test`. Failed-отчёт ручной проверки передавай в `eda-fix`, затем возвращайся к `eda-manual-test` до `passed` или лимита QA-циклов.
|
|
9
9
|
|
|
10
10
|
## Настройки
|
|
11
11
|
|
|
12
12
|
Прочитай только раздел `orhestra` из `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее любого поля настроек.
|
|
13
13
|
|
|
14
|
-
Поддерживается только `version:
|
|
14
|
+
Поддерживается только `version: 3`. При другой версии, отсутствующем `orhestra.steps` или невалидном значении используй дефолты ниже; настройки старого формата не применяй. Дефолт режима: `orhestra.mode: automatic`.
|
|
15
15
|
|
|
16
16
|
```yaml
|
|
17
17
|
orhestra:
|
|
@@ -20,6 +20,10 @@ orhestra:
|
|
|
20
20
|
- id: plan
|
|
21
21
|
skill: eda-plan
|
|
22
22
|
enabled: true
|
|
23
|
+
args: "без проверок"
|
|
24
|
+
- id: plan-polish
|
|
25
|
+
skill: eda-plan-polish
|
|
26
|
+
enabled: true
|
|
23
27
|
args: ""
|
|
24
28
|
- id: execute
|
|
25
29
|
skill: eda-plan-execute
|
|
@@ -37,7 +41,6 @@ orhestra:
|
|
|
37
41
|
skill: eda-fix
|
|
38
42
|
args: ""
|
|
39
43
|
then:
|
|
40
|
-
- polish
|
|
41
44
|
- manual-test
|
|
42
45
|
max_cycles: 5
|
|
43
46
|
```
|
|
@@ -48,13 +51,13 @@ orhestra:
|
|
|
48
51
|
- `steps`: упорядоченный непустой список. Выполняй сверху вниз только элементы с `enabled: true`; отсутствующий `enabled` считай `true`.
|
|
49
52
|
- `id`: уникальное непустое имя шага для ссылок из `on_failure.then`.
|
|
50
53
|
- `skill`: имя установленного `eda-*`-скила. Не разрешай `eda-orhestra`, `eda-aim`, `eda-commit`, `eda-send-review`, `eda-worktree` и `eda-merge-worktree`.
|
|
51
|
-
- `args`: строка, которую нужно дословно добавить к входу этого скилла. Отсутствующее значение считай пустой строкой. Для `eda-polish` здесь же задавай штатные `threshold N` и `limit N`; дефолт — `limit 5`.
|
|
54
|
+
- `args`: строка, которую нужно дословно добавить к входу этого скилла. Отсутствующее значение считай пустой строкой. Для дефолтного `eda-plan` передавай `без проверок`, чтобы оба вида ревью выполнил следующий `eda-plan-polish`. Для `eda-polish` здесь же задавай штатные `threshold N` и `limit N`; дефолт — `limit 5`.
|
|
52
55
|
- `on_failure`: опциональный обработчик `failed` у шага `eda-manual-test`. Если поля нет, сохрани failed-отчёт и остановись без исправлений.
|
|
53
56
|
- `on_failure.skill` и `on_failure.args`: разрешённый установленный скил исправления и его аргументы; дефолты `eda-fix` и пустая строка. Для `skill` действуют те же запреты, что для `steps[].skill`.
|
|
54
57
|
- `on_failure.then`: id шагов, которые после исправления нужно повторить в указанном порядке. Пропускай отключённые шаги. Список должен содержать id активного `eda-manual-test`, иначе исправление нельзя подтвердить.
|
|
55
58
|
- `on_failure.max_cycles`: положительное целое число, дефолт `5`.
|
|
56
59
|
|
|
57
|
-
|
|
60
|
+
Если в v3 есть только `orhestra.mode`, используй полную дефолтную цепочку. Настройки проекта не переписывай во время запуска.
|
|
58
61
|
|
|
59
62
|
Для совместимости старое значение `steps[].skill: eda-execute` нормализуй в памяти в `eda-plan-execute`. Файл настроек не переписывай; остальные неизвестные или удалённые скилы не заменяй автоматически.
|
|
60
63
|
|
|
@@ -62,7 +65,7 @@ orhestra:
|
|
|
62
65
|
|
|
63
66
|
Сохрани весь текст рядом с вызовом в `$USER_REQUEST`. Извлеки задачу, пути к готовым артефактам, режим и разовые изменения цепочки.
|
|
64
67
|
|
|
65
|
-
Поддерживай естественные overrides: `без
|
|
68
|
+
Поддерживай естественные overrides: `без полировки плана`, `без полировки кода`, `полировка кода 2 итерации`, `без ручных тестов`, `только plan и execute`, `plan-polish threshold 95 limit 3`, `для manual-test <args>`. Явное перечисление порядка заменяет порядок из настроек; локальное включение, отключение или параметры меняют только названный шаг. Фразу `полировка кода N итераций` нормализуй в `limit N` внутри `args` шага `eda-polish`; аналогичную фразу о плане — в `args` шага `eda-plan-polish`. Не принимай слово из описания самой задачи за override без явной связи с цепочкой.
|
|
66
69
|
|
|
67
70
|
Если передан готовый план, а включённый `eda-plan` должен создать тот же план, пропусти этот шаг как уже выполненный и запиши причину. Остальные шаги не додумывай и не подменяй: если им не хватает входного артефакта, обработай их вопрос по выбранному режиму.
|
|
68
71
|
|
|
@@ -83,7 +86,7 @@ orhestra:
|
|
|
83
86
|
- Для вопроса `eda-plan-execute` о месте выполнения выбирай текущую ветку, если пользователь явно не запросил ветку или worktree.
|
|
84
87
|
- Не спрашивай о переходе между успешными шагами.
|
|
85
88
|
|
|
86
|
-
Автоматический режим не разрешает необратимые внешние действия, расширение scope, публикацию, расходы, удаление данных, ослабление проверок или изменение production/staging. Подтверждение из-за
|
|
89
|
+
Автоматический режим не разрешает необратимые внешние действия, расширение scope, публикацию, расходы, удаление данных, ослабление проверок вне настроенной цепочки или изменение production/staging. Дефолтное `без проверок` у `eda-plan` не считай ослаблением: следующий обязательный `eda-plan-polish` выполняет проверку и доводку плана. Подтверждение из-за риска передай человеку; в неинтерактивной среде остановись с `blocked: нужен ответ пользователя`. Обратимые решения плана, включая БД/API-контракты и подтверждение готового плана, выбирай сам.
|
|
87
90
|
|
|
88
91
|
### Manual
|
|
89
92
|
|
|
@@ -123,18 +126,18 @@ orhestra:
|
|
|
123
126
|
|
|
124
127
|
1. Если у этого шага нет `on_failure`, остановись с результатом `manual-test: failed`.
|
|
125
128
|
2. Запусти `on_failure.skill` с manual-test-отчётом, `$USER_REQUEST`, предыдущими артефактами и `on_failure.args`.
|
|
126
|
-
3. После успешного fix увеличь счётчик и выполни активные шаги из `on_failure.then` в заданном там порядке. Их собственные `args` сохраняются.
|
|
129
|
+
3. После успешного fix увеличь счётчик и выполни активные шаги из `on_failure.then` в заданном там порядке. Их собственные `args` сохраняются. В дефолтной цепочке здесь только `manual-test`: после QA-фикса вернись к ручной проверке, не запускай полировку кода повторно.
|
|
127
130
|
4. Если повторный manual-test снова `failed`, начни следующий QA-цикл.
|
|
128
131
|
5. Остановись с `blocked: QA не сходится`, если достигнут `on_failure.max_cycles`, два fix-цикла подряд не меняют результат того же сценария, нужен выход за scope или окружение не позволяет проверить.
|
|
129
132
|
6. После `passed` продолжи линейную цепочку со шага, следующего за исходным manual-test.
|
|
130
133
|
|
|
131
|
-
Если manual-test отключён или отсутствует, failure-цикл не запускай и не изображай ручную проверку. Если polish отключён, не требуй review score
|
|
134
|
+
Если manual-test отключён или отсутствует, failure-цикл не запускай и не изображай ручную проверку. Если шаг `eda-polish` отключён, не требуй review score. Если `eda-plan-polish` отключён, не требуй оценку плана. Не запускай ни одну из полировок после fix, если её id нет в `on_failure.then`.
|
|
132
135
|
|
|
133
136
|
## Финал
|
|
134
137
|
|
|
135
138
|
Сообщи режим, фактически выполненную цепочку с args и лимитами, пропущенные шаги и причины, пути ко всем артефактам, последний review score при наличии, результат manual-test при наличии, число QA-циклов и состояние git «не закоммичено».
|
|
136
139
|
|
|
137
|
-
Успех означает, что все включённые шаги завершились по собственным контрактам. Если manual-test был включён, после последних изменений обязателен `passed`; если он отключён, явно напиши «ручные тесты пропущены настройкой». Если polish
|
|
140
|
+
Успех означает, что все включённые шаги завершились по собственным контрактам. Если manual-test был включён, после последних изменений обязателен `passed`; если он отключён, явно напиши «ручные тесты пропущены настройкой». Если отключён `eda-plan-polish`, явно напиши «полировка плана пропущена настройкой». Если отключён `eda-polish`, явно напиши «полировка кода пропущена настройкой».
|
|
138
141
|
|
|
139
142
|
## Чего НЕ делать
|
|
140
143
|
|