@gian-tiaga/eda 3.9.2 → 3.10.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/README.md +4 -4
- package/lib/install.js +12 -8
- package/package.json +1 -1
- package/skills/eda-plan/SKILL.md +25 -7
- package/skills/eda-plan-execute/SKILL.md +16 -5
- package/skills/eda-plan-review/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ eda update-all ~/Code
|
|
|
47
47
|
| `eda-business` | Совместно с человеком описывает целевое поведение проекта по тематическим карточкам: сложные темы фиксирует подробно, но без шума, соседних модулей и привязки к текущему коду. Может закрепить значимый механизм вроде JWT или серверного хранения токенов, но не язык, библиотеку или конкретную СУБД. `about` содержит лишь короткое описание проекта и основные возможности | `docs/business.md`, `docs/business/` |
|
|
48
48
|
| `eda-roadmap` | Создаёт roadmap-файл: список будущих задач с короткими, понятными и недвусмысленными описаниями без деталей реализации, файлов, библиотек, API и пошагового плана | `docs/artifacts/roadmaps/` |
|
|
49
49
|
| `eda-explore` | Исследует тему до конкретного результата: описание проблемы, релевантная архитектура, закрытые развилки, риски внутри решений и короткий выбранный вариант решения без плана. После определения темы читает только применимые business- и reference-карточки. В дефолтном режиме ведёт исследование как диалог; для пакетов и ПО проверяет актуальные стабильные версии | `docs/artifacts/researches/` |
|
|
50
|
-
| `eda-plan` | Пишет план реализации через Plan Mode: фиксирует решения,
|
|
50
|
+
| `eda-plan` | Пишет план реализации через Plan Mode: фиксирует решения, контракты БД и API, устройство и дизайн интерфейса, консольные команды и фазы, каждую из которых один агент выполняет и проверяет за один проход. На подтверждение показывает полный план в формате скила, включая метаданные, разделы и структуру фаз; сохраняет тот же текст. Задач с идентификаторами внутри фаз нет. Реализацию не описывает — её задают `docs/rules.md`, `docs/arch.md` и карточки. Если целевое поведение ещё не описано в business-карточках, до реализации добавляет `Дополнить бизнесовые правила`; если решение противоречит правилам или архитектуре, сначала меняет сам документ. По `plan.review` запускает изолированный `eda-plan-polish` ровно на одну итерацию полировки (`limit 1`); `plan.strict` независимо включает кросс-CLI ревью | `docs/artifacts/plans/`, опционально plan-review артефакты |
|
|
51
51
|
| `eda-plan-review` | Одним read-only проходом проверяет план по фиксированному чек-листу из 16 пунктов: покрытие запроса, отсутствие развилок, соответствие правилам и архитектуре, дубли, регистр текста, фазы и объём. Замечания вне списка не принимает. Оценка — доля закрытых пунктов, поэтому растёт монотонно. План не меняет | `docs/artifacts/plan-reviews/` |
|
|
52
52
|
| `eda-plan-review-fix` | Закрывает проваленные пункты чек-листа минимальным изменением плана с совпадающим SHA-256. План не растёт: сначала удаление и замена, прирост объёма за один заход не больше 3%. Новое ревью не делает и код не меняет | `docs/artifacts/plan-review-fixes/` |
|
|
53
53
|
| `eda-plan-polish` | Оркестрирует изолированный цикл plan-review → plan-review-fix. Хранит снапшот лучшей версии плана: как только score перестаёт расти, останавливается и восстанавливает лучшую версию, а не последнюю. По умолчанию одна итерация: проверка и исправление. Исправление проверяет ревью следующей итерации, поэтому при `limit 1` последняя правка остаётся неперепроверенной. Кросс-CLI strict не используется | `docs/artifacts/plan-reviews/`, `docs/artifacts/plan-review-fixes/` |
|
|
@@ -225,8 +225,8 @@ plan:
|
|
|
225
225
|
# Определяет, как eda-plan принимает существенные решения.
|
|
226
226
|
# autonomous | recommend_and_ask | ask_each_time
|
|
227
227
|
decision_mode: recommend_and_ask
|
|
228
|
-
# Задаёт стратегию
|
|
229
|
-
# after_each_phase | tdd_each_phase | end_of_plan | ask_each_time
|
|
228
|
+
# Задаёт стратегию тестов и автоматических проверок.
|
|
229
|
+
# after_each_phase | phase_tests_final_checks | tdd_each_phase | end_of_plan | ask_each_time
|
|
230
230
|
test_strategy: ask_each_time
|
|
231
231
|
# Задаёт стратегию логирования.
|
|
232
232
|
# debug_precise | standard | ask_each_time
|
|
@@ -400,7 +400,7 @@ discover-automations:
|
|
|
400
400
|
- `aim.mode` — `automatic` самостоятельно выбирает безопасные ответы на рабочие вопросы; `manual` передаёт вопросы человеку. Явный режим в текущем вызове имеет приоритет.
|
|
401
401
|
- `explore.strict` и `explore.decision_mode` — кросс-CLI ревью и способ выбора по исследовательским развилкам в `eda-explore`.
|
|
402
402
|
- `plan.review` — изолированный цикл `eda-plan-polish` внутри `eda-plan`, ровно одна итерация полировки (`limit 1`); `plan.strict` независимо управляет кросс-CLI ревью.
|
|
403
|
-
- `plan.size`, `plan.decision_mode`, `plan.test_strategy`, `plan.logging_strategy` — режим и структура работы `eda-plan`.
|
|
403
|
+
- `plan.size`, `plan.decision_mode`, `plan.test_strategy`, `plan.logging_strategy` — режим и структура работы `eda-plan`. Имя `test_strategy` сохранено для совместимости, но настройка управляет и тестами, и автоматическими проверками: `after_each_phase` запускает их после каждой фазы, `tdd_each_phase` сначала пишет тесты и после реализации запускает все проверки фазы, `phase_tests_final_checks` в фазе запускает только добавленные или изменённые ею тесты, а остальные проверки оставляет финалу, `end_of_plan` переносит тесты и автоматические проверки в конец плана.
|
|
404
404
|
- `plan-review.threshold` — доля закрытых пунктов чек-листа для статуса `ready`, default `100`. Отдельных агентов у `plan-review` больше нет: проверку целиком делает один субагент.
|
|
405
405
|
- `plan-polish.limit` — максимальное число итераций «проверка + исправление»; default `1`. Отдельного подтверждающего прохода нет: исправление проверяет ревью следующей итерации. Цикл останавливается раньше, если score перестал расти.
|
|
406
406
|
- `plan-execute.mode` — где `eda-plan-execute` выполняет фазы: `subagents` — каждая фаза в отдельном изолированном субагенте с независимой проверкой, `main` — весь план одним контекстом без субагентов, `auto` — выбор по плану; default `auto`. Явный режим в вызове имеет приоритет.
|
package/lib/install.js
CHANGED
|
@@ -447,19 +447,23 @@ const DECISION_MODE_CHOICES = [
|
|
|
447
447
|
const TEST_STRATEGY_CHOICES = [
|
|
448
448
|
{
|
|
449
449
|
value: 'after_each_phase',
|
|
450
|
-
name: 'Писать и запускать
|
|
450
|
+
name: 'Писать тесты и запускать все проверки после каждой фазы'
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
value: 'phase_tests_final_checks',
|
|
454
|
+
name: 'Писать тесты в фазах, запускать только их, остальные проверки — в конце'
|
|
451
455
|
},
|
|
452
456
|
{
|
|
453
457
|
value: 'tdd_each_phase',
|
|
454
|
-
name: 'В каждой фазе сначала тесты, затем код'
|
|
458
|
+
name: 'В каждой фазе сначала тесты, затем код и все проверки фазы'
|
|
455
459
|
},
|
|
456
460
|
{
|
|
457
461
|
value: 'end_of_plan',
|
|
458
|
-
name: 'Писать тесты в конце плана
|
|
462
|
+
name: 'Писать тесты и запускать все проверки в конце плана'
|
|
459
463
|
},
|
|
460
464
|
{
|
|
461
465
|
value: 'ask_each_time',
|
|
462
|
-
name: 'Спрашивать стратегию тестов каждый раз'
|
|
466
|
+
name: 'Спрашивать стратегию тестов и проверок каждый раз'
|
|
463
467
|
}
|
|
464
468
|
];
|
|
465
469
|
const LOGGING_STRATEGY_CHOICES = [
|
|
@@ -782,7 +786,7 @@ export async function askSettings({
|
|
|
782
786
|
['explore', 'explore.decisionMode', settings.explore, 'decisionMode', 'Как принимать важные решения в eda-explore?', DECISION_MODE_CHOICES],
|
|
783
787
|
['plan', 'plan.size', settings.plan, 'size', 'Какой размер плана eda-plan использовать по умолчанию?', PLAN_SIZE_CHOICES],
|
|
784
788
|
['plan', 'plan.decisionMode', settings.plan, 'decisionMode', 'Как принимать важные решения в eda-plan?', DECISION_MODE_CHOICES],
|
|
785
|
-
['plan', 'plan.testStrategy', settings.plan, 'testStrategy', 'Какую стратегию тестов eda-plan использовать по умолчанию?', TEST_STRATEGY_CHOICES],
|
|
789
|
+
['plan', 'plan.testStrategy', settings.plan, 'testStrategy', 'Какую стратегию тестов и проверок eda-plan использовать по умолчанию?', TEST_STRATEGY_CHOICES],
|
|
786
790
|
['plan', 'plan.loggingStrategy', settings.plan, 'loggingStrategy', 'Какую стратегию логирования eda-plan использовать по умолчанию?', LOGGING_STRATEGY_CHOICES],
|
|
787
791
|
['plan-review', 'planReview.threshold', settings.planReview, 'threshold', 'Какой порог готовности использовать в eda-plan-review?', PLAN_REVIEW_THRESHOLD_CHOICES],
|
|
788
792
|
['plan-polish', 'planPolish.limit', settings.planPolish, 'limit', 'Сколько итераций «проверка + исправление» разрешить eda-plan-polish?', PLAN_POLISH_LIMIT_CHOICES],
|
|
@@ -1228,7 +1232,7 @@ function migrateSettingsContent(content) {
|
|
|
1228
1232
|
transfer(
|
|
1229
1233
|
'plan.testStrategy',
|
|
1230
1234
|
plan.test_strategy ?? legacyDefaults.test_strategy,
|
|
1231
|
-
oneOf(['after_each_phase', 'tdd_each_phase', 'end_of_plan', 'ask_each_time']),
|
|
1235
|
+
oneOf(['after_each_phase', 'phase_tests_final_checks', 'tdd_each_phase', 'end_of_plan', 'ask_each_time']),
|
|
1232
1236
|
value => { settings.plan.testStrategy = value; }
|
|
1233
1237
|
);
|
|
1234
1238
|
transfer(
|
|
@@ -1472,8 +1476,8 @@ plan:
|
|
|
1472
1476
|
# Определяет, как eda-plan принимает существенные решения.
|
|
1473
1477
|
# autonomous | recommend_and_ask | ask_each_time
|
|
1474
1478
|
decision_mode: ${settings.plan.decisionMode}
|
|
1475
|
-
# Задаёт стратегию
|
|
1476
|
-
# after_each_phase | tdd_each_phase | end_of_plan | ask_each_time
|
|
1479
|
+
# Задаёт стратегию тестов и автоматических проверок.
|
|
1480
|
+
# after_each_phase | phase_tests_final_checks | tdd_each_phase | end_of_plan | ask_each_time
|
|
1477
1481
|
test_strategy: ${settings.plan.testStrategy}
|
|
1478
1482
|
# Задаёт стратегию логирования.
|
|
1479
1483
|
# debug_precise | standard | ask_each_time
|
package/package.json
CHANGED
package/skills/eda-plan/SKILL.md
CHANGED
|
@@ -19,14 +19,21 @@ description: 'Создаёт понятный исполнимый план ре
|
|
|
19
19
|
| `plan.review` | `true`, `false` | включение: `с ревью плана`, `с plan-review`; выключение: `без ревью плана`, `без plan-review` |
|
|
20
20
|
| `plan.size` | `normal`, `short`, `ask_each_time` | `short`; обычный: `обычный план`, `не short` |
|
|
21
21
|
| `plan.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай», «спрашивай всё» |
|
|
22
|
-
| `plan.test_strategy` | `after_each_phase`, `tdd_each_phase`, `end_of_plan`, `ask_each_time` | явное указание стратегии тестов |
|
|
22
|
+
| `plan.test_strategy` | `after_each_phase`, `phase_tests_final_checks`, `tdd_each_phase`, `end_of_plan`, `ask_each_time` | явное указание стратегии тестов и проверок |
|
|
23
23
|
| `plan.logging_strategy` | `debug_precise`, `standard`, `ask_each_time` | явное указание стратегии логирования |
|
|
24
24
|
|
|
25
25
|
Если итоговое значение `plan.size`, `plan.test_strategy` или `plan.logging_strategy` равно `ask_each_time`, задай блокирующий вопрос, кроме случая, когда пользователь уже выбрал значение в текущем сообщении.
|
|
26
26
|
|
|
27
|
-
Варианты вопросов: размер плана — `normal` / `short`; тесты — `after_each_phase` / `tdd_each_phase` / `end_of_plan`; логирование — `debug_precise` / `standard`.
|
|
27
|
+
Варианты вопросов: размер плана — `normal` / `short`; тесты и проверки — `after_each_phase` / `phase_tests_final_checks` / `tdd_each_phase` / `end_of_plan`; логирование — `debug_precise` / `standard`.
|
|
28
28
|
|
|
29
|
-
`test_strategy`
|
|
29
|
+
Имя `test_strategy` сохраняется для совместимости, но настройка управляет и написанием тестов, и моментом запуска автоматических проверок. Она обязана менять план:
|
|
30
|
+
|
|
31
|
+
- `tdd_each_phase` начинает каждую фазу с тестов, затем выполняет реализацию и запускает написанные тесты вместе со всеми применимыми проверками фазы;
|
|
32
|
+
- `after_each_phase` сначала выполняет реализацию, затем добавляет тесты и запускает их вместе со всеми применимыми проверками фазы;
|
|
33
|
+
- `phase_tests_final_checks` добавляет тесты в ту же фазу, что и реализацию; в `Проверке` фазы оставляет только точечный запуск добавленных или изменённых в ней тестов, а полный набор тестов, линтеры, typecheck, static analysis и остальные обязательные проверки переносит в финальную проверку всего плана;
|
|
34
|
+
- `end_of_plan` выносит написание тестов и первый запуск всех автоматических проверок в отдельную финальную фазу; предыдущие фазы подтверждаются только указанными неавтоматическими критериями готовности.
|
|
35
|
+
|
|
36
|
+
`logging_strategy` обязан отражаться в алгоритме, фазах и разделе `Логирование`.
|
|
30
37
|
|
|
31
38
|
`без проверок` одновременно устанавливает `plan.review: false` и `plan.strict: false`. `plan.review` и `plan.strict` независимы.
|
|
32
39
|
|
|
@@ -120,7 +127,7 @@ status: <draft | meta-reviewed | reviewed>
|
|
|
120
127
|
reviewer: <pending | none | claude | codex>
|
|
121
128
|
plan_review: <docs/artifacts/plan-reviews/... | none>
|
|
122
129
|
plan_review_fix: <docs/artifacts/plan-review-fixes/... | none>
|
|
123
|
-
test_strategy: <after_each_phase | tdd_each_phase | end_of_plan>
|
|
130
|
+
test_strategy: <after_each_phase | phase_tests_final_checks | tdd_each_phase | end_of_plan>
|
|
124
131
|
logging_strategy: <debug_precise | standard>
|
|
125
132
|
sources:
|
|
126
133
|
rules: <путь или —>
|
|
@@ -146,6 +153,17 @@ sources:
|
|
|
146
153
|
### API и внешние контракты
|
|
147
154
|
Если не меняются: `Не затрагивается`. Иначе метод и путь, auth/permissions, request/query/body, response, ошибки и status codes, события, очереди и внешние сервисы.
|
|
148
155
|
|
|
156
|
+
### Интерфейс и дизайн
|
|
157
|
+
Если интерфейс не меняется: `Не затрагивается`. Иначе опиши состав и организацию затронутых страниц или экранов: основные области и элементы, их расположение, назначение и взаимосвязи. Используй заданные макеты или референсы; если их нет — текущий дизайн проекта. Формат выбирай по содержанию: свободный текст или таблица `Страница | Описание дизайна`.
|
|
158
|
+
|
|
159
|
+
Не повторяй здесь целевой алгоритм и содержание фаз. Поведение упоминай только тогда, когда без него нельзя понять состав или организацию интерфейса.
|
|
160
|
+
|
|
161
|
+
### Консольные команды
|
|
162
|
+
Если команды не меняются: `Не затрагивается`. Иначе перечисли точки входа и команды в таблице:
|
|
163
|
+
|
|
164
|
+
| Команда | Аргументы и опции | Назначение |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
|
|
149
167
|
## Фазы выполнения
|
|
150
168
|
|
|
151
169
|
### 1. <Название фазы>
|
|
@@ -158,8 +176,8 @@ sources:
|
|
|
158
176
|
Проверка:
|
|
159
177
|
- команда или критерий готовности.
|
|
160
178
|
|
|
161
|
-
## Тесты
|
|
162
|
-
|
|
179
|
+
## Тесты и проверки
|
|
180
|
+
Стратегия, сценарии по поведению, фазовые и финальные команды — в одном месте, а не дублируются внутри каждой фазы. В поле `Проверка` фазы остаётся только применимый к ней запуск или критерий согласно `test_strategy`.
|
|
163
181
|
|
|
164
182
|
## Логирование
|
|
165
183
|
Стратегия, уровни, обязательные поля и что писать запрещено.
|
|
@@ -183,7 +201,7 @@ sources:
|
|
|
183
201
|
|
|
184
202
|
Quality gate перед показом на подтверждение, перед сохранением и после каждой включённой проверки:
|
|
185
203
|
|
|
186
|
-
- есть `Целевой алгоритм` и `Контракты реализации` с
|
|
204
|
+
- есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и БД`, `API и внешние контракты`, `Интерфейс и дизайн` и `Консольные команды`;
|
|
187
205
|
- применимые business-карточки выбраны после определения scope, записаны в `sources.business` и отражены в критериях приёмки;
|
|
188
206
|
- каждый отсутствующий, неполный или расширяемый пункт целевого поведения покрыт отдельной задачей `Дополнить бизнесовые правила` до зависимой реализации; для чисто технических изменений такая задача не добавлена;
|
|
189
207
|
- план строго следует `docs/rules.md` и `docs/arch.md`, а также применимым reference-карточкам; там, где нужно другое поведение, есть отдельный пункт на изменение самого документа до зависимой реализации;
|
|
@@ -81,7 +81,18 @@ plan-execute:
|
|
|
81
81
|
|
|
82
82
|
### 3. Прочитать план и проверить фазы
|
|
83
83
|
|
|
84
|
-
Прочитай `$PLAN_FILE`. Для каждой фазы извлеки цель, что сделать, результат и проверку. До запуска убедись, что у каждой фазы есть проверяемый результат и команда или критерий проверки.
|
|
84
|
+
Прочитай `$PLAN_FILE`, включая `test_strategy`. Для каждой фазы извлеки цель, что сделать, результат и проверку. До запуска убедись, что у каждой фазы есть проверяемый результат и команда или критерий проверки.
|
|
85
|
+
|
|
86
|
+
`test_strategy` управляет не только написанием тестов, но и фазовыми проверками:
|
|
87
|
+
|
|
88
|
+
| Стратегия | Фазовый прогон |
|
|
89
|
+
|---|---|
|
|
90
|
+
| `tdd_each_phase` | сначала написать тесты, после реализации запустить их и все применимые проверки фазы |
|
|
91
|
+
| `after_each_phase` | после реализации написать тесты и запустить их и все применимые проверки фазы |
|
|
92
|
+
| `phase_tests_final_checks` | написать тесты в фазе, но запустить только добавленные или изменённые этой фазой тесты; остальные проверки отложить |
|
|
93
|
+
| `end_of_plan` | до финальной фазы использовать только указанные неавтоматические критерии готовности; тесты и автоматические проверки не запускать |
|
|
94
|
+
|
|
95
|
+
Полный набор тестов и обязательных проверок всё равно запускается в финале. Если план не соответствует своей стратегии, верни его в `eda-plan` или `eda-plan-polish`, а не меняй стратегию при выполнении.
|
|
85
96
|
|
|
86
97
|
Если фаза не описывает проверяемый результат или её проверку нечем выполнить, не достраивай смысл молча: через `AskUserQuestion` предложи вернуть план в `eda-plan` или `eda-plan-polish`.
|
|
87
98
|
|
|
@@ -136,7 +147,7 @@ current_phase: <номер>
|
|
|
136
147
|
|
|
137
148
|
Ожидание слота и один технический retry не считаются попыткой исправления фазы и не расходуют её лимит сходимости.
|
|
138
149
|
|
|
139
|
-
Каждому исполнителю фазы передай: рабочую директорию, `$PLAN_FILE`, номер и полный текст фазы, краткие результаты завершённых фаз, пути к `docs/rules.md`, `docs/arch.md`, `docs/business.md` и `docs/references.md`, ограничения пользователя, критерии проверки фазы и запрет коммитить и менять план и журнал.
|
|
150
|
+
Каждому исполнителю фазы передай: рабочую директорию, `$PLAN_FILE`, номер и полный текст фазы, `test_strategy`, краткие результаты завершённых фаз, пути к `docs/rules.md`, `docs/arch.md`, `docs/business.md` и `docs/references.md`, ограничения пользователя, критерии проверки фазы и запрет коммитить и менять план и журнал. Явно передай разрешённый фазовый прогон из таблицы стратегии; не разрешай запускать отложенные ею проверки досрочно.
|
|
140
151
|
|
|
141
152
|
Требуй YAML-результат:
|
|
142
153
|
|
|
@@ -173,7 +184,7 @@ questions: [<вопросы или пусто>]
|
|
|
173
184
|
|
|
174
185
|
### 7. Проверять каждую фазу
|
|
175
186
|
|
|
176
|
-
В `subagents` после `completed` запусти нового изолированного субагента-проверяющего. Он не меняет файлы, целиком читает план, `docs/rules.md` и `docs/arch.md`, читает только применимые карточки, выполняет
|
|
187
|
+
В `subagents` после `completed` запусти нового изолированного субагента-проверяющего. Он не меняет файлы, целиком читает план, `docs/rules.md` и `docs/arch.md`, читает только применимые карточки, выполняет разрешённый стратегией фазовый прогон и подтверждает критерии результата. При `phase_tests_final_checks` он запускает только тесты, добавленные или изменённые в этой фазе. При `end_of_plan` он не запускает автоматические команды и проверяет только указанные неавтоматические критерии готовности.
|
|
177
188
|
|
|
178
189
|
```yaml
|
|
179
190
|
status: passed | failed | blocked
|
|
@@ -189,13 +200,13 @@ references_read: [<пути или пусто>]
|
|
|
189
200
|
|
|
190
201
|
При `failed` передай полный результат исполнителю этой фазы, поручи исправить подтверждённые проблемы и запусти нового проверяющего. Основной агент код не чинит и контекст прежнего проверяющего не переиспользует.
|
|
191
202
|
|
|
192
|
-
В `main` сам выполни
|
|
203
|
+
В `main` сам выполни разрешённый стратегией фазовый прогон и сверь результат с критериями плана, а не с собственным впечатлением. Для `phase_tests_final_checks` запускай только добавленные или изменённые текущей фазой тесты; для `end_of_plan` не запускай автоматические команды до финальной фазы. Падение исправляй и повторяй проверку заново целиком.
|
|
193
204
|
|
|
194
205
|
При `passed` отметь фазу завершённой и только тогда переходи к следующей.
|
|
195
206
|
|
|
196
207
|
### 8. Финальная проверка
|
|
197
208
|
|
|
198
|
-
После всех фаз прогони полный набор тестов, линтеров, typecheck, static analysis и других обязательных команд проекта. В `subagents` это делает отдельный новый субагент: он только проверяет, целиком читает план, `docs/rules.md` и `docs/arch.md` и выбирает карточки итогового изменённого поведения. В `main` тот же полный набор запускает основной агент.
|
|
209
|
+
После всех фаз прогони полный набор тестов, линтеров, typecheck, static analysis и других обязательных команд проекта. Для `phase_tests_final_checks` и `end_of_plan` это первый полный прогон; он обязан включить созданные по фазам и существующие тесты проекта вместе со всеми отложенными проверками. Для `after_each_phase` и `tdd_each_phase` это итоговый повтор полного набора после интеграции всех фаз. В `subagents` это делает отдельный новый субагент: он только проверяет, целиком читает план, `docs/rules.md` и `docs/arch.md` и выбирает карточки итогового изменённого поведения. В `main` тот же полный набор запускает основной агент.
|
|
199
210
|
|
|
200
211
|
Падение из-за сделанных изменений сопоставь с фазами и исправь по порядку плана: в `subagents` передай каждую группу исполнителю соответствующей фазы. Затем повтори всю финальную проверку целиком. Чужую или несвязанную поломку зафиксируй и вынеси вопросом, если без решения нельзя завершить план. Запрещено делать проверки зелёными через подавление ошибок, игноры, исключения, ослабление конфигов или изменение команд проверки.
|
|
201
212
|
|
|
@@ -42,7 +42,7 @@ Read-only проверка одного плана по списку ниже.
|
|
|
42
42
|
| 5 | Все существенные решения имеют источник подтверждения: ответ пользователя, research или `autonomous` с причиной |
|
|
43
43
|
| 6 | В плане не осталось решений, которые придётся принимать исполнителю |
|
|
44
44
|
| 7 | Пакеты, библиотеки и сервисы имеют конкретные версии или ссылку на существующий lock |
|
|
45
|
-
| 8 | Есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и
|
|
45
|
+
| 8 | Есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и БД`, `API и внешние контракты`, `Интерфейс и дизайн` и `Консольные команды` |
|
|
46
46
|
| 9 | Ни один факт не описан в двух разделах |
|
|
47
47
|
| 10 | В плане нет сигнатур чужих методов, приведений типов, формы классов, внутренних вычислений без контрактного смысла и пересказа кодовых примеров карточек; формулы, задающие обязательное поведение, допустимы |
|
|
48
48
|
| 11 | У каждой фазы есть цель, что сделать, результат и проверка |
|