@gian-tiaga/eda 0.4.2 → 0.4.3
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 +3 -0
- package/lib/install.js +27 -0
- package/package.json +1 -1
- package/skills/eda-explore.md +28 -3
- package/skills/eda-plan.md +56 -13
package/README.md
CHANGED
|
@@ -68,6 +68,8 @@ defaults:
|
|
|
68
68
|
strict: false
|
|
69
69
|
# normal | short | ask_each_time
|
|
70
70
|
plan_size: normal
|
|
71
|
+
# autonomous | recommend_and_ask | ask_each_time
|
|
72
|
+
decision_mode: recommend_and_ask
|
|
71
73
|
# after_each_phase | tdd_each_phase | end_of_plan | ask_each_time
|
|
72
74
|
test_strategy: ask_each_time
|
|
73
75
|
# debug_precise | standard | ask_each_time
|
|
@@ -85,6 +87,7 @@ review:
|
|
|
85
87
|
Что означают настройки:
|
|
86
88
|
- `defaults.strict` — включает strict-режим по умолчанию для `eda-explore`, `eda-plan` и `eda-review`.
|
|
87
89
|
- `defaults.plan_size` — размер плана для `eda-plan`: `normal`, `short` или `ask_each_time`.
|
|
90
|
+
- `defaults.decision_mode` — как `eda-explore` и `eda-plan` принимают существенные решения: `autonomous` выбирает сам, `recommend_and_ask` рекомендует и спрашивает, `ask_each_time` спрашивает по каждой значимой развилке.
|
|
88
91
|
- `defaults.test_strategy` — стратегия тестов для `eda-plan`: `after_each_phase`, `tdd_each_phase`, `end_of_plan` или `ask_each_time`.
|
|
89
92
|
- `defaults.logging_strategy` — стратегия логирования для `eda-plan`: `debug_precise`, `standard` или `ask_each_time`.
|
|
90
93
|
- `automate.include_plans` — добавляет `docs/plans/` в обычный запуск `eda-automate`.
|
package/lib/install.js
CHANGED
|
@@ -17,6 +17,7 @@ const RETIRED_SKILLS = ['eda-research'];
|
|
|
17
17
|
const DEFAULT_SETTINGS = {
|
|
18
18
|
strict: false,
|
|
19
19
|
planSize: 'normal',
|
|
20
|
+
decisionMode: 'recommend_and_ask',
|
|
20
21
|
testStrategy: 'ask_each_time',
|
|
21
22
|
loggingStrategy: 'ask_each_time',
|
|
22
23
|
includePlans: false,
|
|
@@ -53,6 +54,20 @@ const PLAN_SIZE_CHOICES = [
|
|
|
53
54
|
name: 'Спрашивать размер плана каждый раз'
|
|
54
55
|
}
|
|
55
56
|
];
|
|
57
|
+
const DECISION_MODE_CHOICES = [
|
|
58
|
+
{
|
|
59
|
+
value: 'recommend_and_ask',
|
|
60
|
+
name: 'Рекомендовать вариант и спрашивать по важным развилкам'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
value: 'autonomous',
|
|
64
|
+
name: 'Самостоятельно выбирать по коду, правилам и рискам'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
value: 'ask_each_time',
|
|
68
|
+
name: 'Спрашивать по каждой значимой развилке'
|
|
69
|
+
}
|
|
70
|
+
];
|
|
56
71
|
const TEST_STRATEGY_CHOICES = [
|
|
57
72
|
{
|
|
58
73
|
value: 'after_each_phase',
|
|
@@ -151,6 +166,15 @@ export async function askSettings({ input = process.stdin, output = process.stdo
|
|
|
151
166
|
output
|
|
152
167
|
});
|
|
153
168
|
|
|
169
|
+
const decisionMode = await select({
|
|
170
|
+
message: 'Как принимать важные решения в eda-explore и eda-plan?',
|
|
171
|
+
choices: DECISION_MODE_CHOICES,
|
|
172
|
+
default: DEFAULT_SETTINGS.decisionMode
|
|
173
|
+
}, {
|
|
174
|
+
input,
|
|
175
|
+
output
|
|
176
|
+
});
|
|
177
|
+
|
|
154
178
|
const testStrategy = await select({
|
|
155
179
|
message: 'Какую стратегию тестов eda-plan использовать по умолчанию?',
|
|
156
180
|
choices: TEST_STRATEGY_CHOICES,
|
|
@@ -172,6 +196,7 @@ export async function askSettings({ input = process.stdin, output = process.stdo
|
|
|
172
196
|
return {
|
|
173
197
|
strict: selected.includes('strict'),
|
|
174
198
|
planSize,
|
|
199
|
+
decisionMode,
|
|
175
200
|
testStrategy,
|
|
176
201
|
loggingStrategy,
|
|
177
202
|
includePlans: selected.includes('includePlans'),
|
|
@@ -231,6 +256,8 @@ defaults:
|
|
|
231
256
|
strict: ${settings.strict ? 'true' : 'false'}
|
|
232
257
|
# normal | short | ask_each_time
|
|
233
258
|
plan_size: ${settings.planSize}
|
|
259
|
+
# autonomous | recommend_and_ask | ask_each_time
|
|
260
|
+
decision_mode: ${settings.decisionMode}
|
|
234
261
|
# after_each_phase | tdd_each_phase | end_of_plan | ask_each_time
|
|
235
262
|
test_strategy: ${settings.testStrategy}
|
|
236
263
|
# debug_precise | standard | ask_each_time
|
package/package.json
CHANGED
package/skills/eda-explore.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-explore
|
|
3
|
-
description: 'Исследует тему или задачу до конкретного результата: проясняет проблему, архитектуру, развилки, риски и короткий выбранный вариант решения без плана реализации. Работает read-only, задаёт блокирующие вопросы, когда без ответа нельзя выбрать решение,
|
|
3
|
+
description: 'Исследует тему или задачу до конкретного результата: проясняет проблему, архитектуру, развилки, риски и короткий выбранный вариант решения без плана реализации. Работает read-only, задаёт блокирующие вопросы, когда без ответа нельзя выбрать решение, а существенные решения подтверждает по `defaults.decision_mode` из `docs/settings.yaml`. Если исследование касается пакетов, библиотек, CLI, сервисов или другого ПО, проверяет актуальные стабильные версии через context7, если он доступен, или через web search по официальным источникам. Итог сохраняет в docs/researches/. Кросс-ревью соседним агентом (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true` в `docs/settings.yaml`.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Исследователь решений (eda-explore)
|
|
@@ -28,14 +28,33 @@ description: 'Исследует тему или задачу до конкре
|
|
|
28
28
|
|
|
29
29
|
Если файла нет — используй значение по умолчанию:
|
|
30
30
|
- `defaults.strict: false`
|
|
31
|
+
- `defaults.decision_mode: recommend_and_ask`
|
|
31
32
|
|
|
32
33
|
Прямое указание пользователя в текущем сообщении важнее `docs/settings.yaml`.
|
|
33
34
|
|
|
35
|
+
Поддерживаемые режимы принятия решений:
|
|
36
|
+
|
|
37
|
+
| Ключ | Значения | Что значит |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| `defaults.decision_mode` | `autonomous` | Агент сам выбирает по коду, правилам, архитектуре, источникам и рискам, затем записывает причину. |
|
|
40
|
+
| `defaults.decision_mode` | `recommend_and_ask` | Агент исследует варианты, рекомендует один, но по существенным решениям задаёт блокирующий вопрос до финализации. |
|
|
41
|
+
| `defaults.decision_mode` | `ask_each_time` | Агент спрашивает по каждой значимой развилке, даже если есть сильная рекомендация. |
|
|
42
|
+
|
|
43
|
+
Если `defaults.decision_mode` отсутствует или неизвестен, считай его `recommend_and_ask`.
|
|
44
|
+
|
|
45
|
+
Существенные решения — это решения, которые меняют архитектуру, зависимости, стоимость, безопасность, эксплуатацию или будущую миграцию проекта. Всегда считай существенными:
|
|
46
|
+
- выбор нового пакета, библиотеки, фреймворка, SDK, CLI или сервиса;
|
|
47
|
+
- выбор базы данных, ORM/query builder, очереди, кэша, storage, search, background jobs;
|
|
48
|
+
- миграции данных, изменение схемы, формат хранения или стратегия совместимости;
|
|
49
|
+
- auth, permissions, payments, crypto, secrets, персональные данные и другие security-sensitive решения;
|
|
50
|
+
- cloud/provider choices, managed services, лицензии, cost/lock-in и SLA;
|
|
51
|
+
- архитектурные паттерны, затрагивающие несколько модулей или публичные контракты.
|
|
52
|
+
|
|
34
53
|
## Главные правила
|
|
35
54
|
|
|
36
55
|
1. **Никаких правок кода.** Запись только в `docs/researches/`.
|
|
37
56
|
2. **Итог — конкретика.** Нельзя заканчивать абстрактными описаниями, списком возможностей или «можно выбрать один из вариантов».
|
|
38
|
-
3. **Развилки
|
|
57
|
+
3. **Развилки закрывай по `decision_mode`.** Обычные локальные развилки можно выбрать по коду, правилам, архитектуре, источникам и рискам. Существенные решения в `recommend_and_ask` и `ask_each_time` подтверждай у пользователя до финализации. Если выбор зависит только от пользователя — задай блокирующий вопрос в любом режиме.
|
|
39
58
|
4. **Риски закрывай.** Для каждого риска зафиксируй решение: mitigation, acceptance или out of scope. Нельзя оставлять риск просто перечисленным.
|
|
40
59
|
5. **Версии проверяй.** Если речь о пакетах, библиотеках, CLI, сервисах или другом ПО, а версия не задана контекстом, проверь последнюю стабильную версию через context7, если он доступен, или через web search по официальным источникам.
|
|
41
60
|
6. **Прочитай `docs/rules.md` и `docs/arch.md`**, если есть, и используй их как рамку.
|
|
@@ -79,10 +98,15 @@ description: 'Исследует тему или задачу до конкре
|
|
|
79
98
|
|
|
80
99
|
Для каждой развилки:
|
|
81
100
|
- перечисли варианты;
|
|
82
|
-
- выбери один
|
|
101
|
+
- выбери один вариант или подготовь рекомендацию;
|
|
83
102
|
- запиши источник и причину выбора;
|
|
103
|
+
- если развилка существенная и `decision_mode: recommend_and_ask` — задай `AskUserQuestion`: 2–3 варианта, первым рекомендованный, короткая причина рекомендации, вариант «свой вариант», фраза «Я продолжу только после ответа.»;
|
|
104
|
+
- если развилка значимая и `decision_mode: ask_each_time` — задай `AskUserQuestion` даже при сильной рекомендации;
|
|
105
|
+
- если `decision_mode: autonomous` и выбор можно обосновать кодом, правилами, архитектурой, источниками и рисками — выбери сам и запиши почему;
|
|
84
106
|
- если выбрать нельзя без пользовательского решения — задай `AskUserQuestion` и не продолжай финализацию.
|
|
85
107
|
|
|
108
|
+
Не прячь существенный выбор внутри текста. Например, если нужен пакет для базы данных, сначала сравни 2–3 подходящих варианта, затем в `recommend_and_ask` спроси подтверждение выбора пакета/БД до записи финального решения.
|
|
109
|
+
|
|
86
110
|
### 4. Закрыть риски
|
|
87
111
|
|
|
88
112
|
Для каждого риска зафиксируй:
|
|
@@ -104,6 +128,7 @@ description: 'Исследует тему или задачу до конкре
|
|
|
104
128
|
title: <заголовок>
|
|
105
129
|
date: <YYYY-MM-DD HH:MM>
|
|
106
130
|
mode: <normal | strict>
|
|
131
|
+
decision_mode: <autonomous | recommend_and_ask | ask_each_time>
|
|
107
132
|
status: <draft | reviewed | blocked>
|
|
108
133
|
reviewer: <pending | none | claude | codex>
|
|
109
134
|
sources:
|
package/skills/eda-plan.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan
|
|
3
|
-
description: 'Пишет план реализации по тексту рядом с вызовом или указанному research-файлу через стандартный Plan Mode (Claude Code / Codex). Перед планированием читает docs/rules.md, docs/arch.md и строго следует им; research подтягивает без вопроса, если он указан или явно нужен. Поддерживает параметр `short` для небольших фич: 1–2 фазы и компактный ревьюируемый объём. В самом начале фиксирует стратегию тестов и логирования из docs/settings.yaml или уточняет их у пользователя. Нормализует результат в исполнимый план с целевым алгоритмом, фазами, проверками и без неразрешённых альтернатив. Согласованный план сохраняется в docs/plans/. Всегда проверяет план тремя параллельными моделями (слабая, средняя, мощная) на реалистичность, пропущенные шаги, нарушения правил и риски. Кросс-CLI (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true` в `docs/settings.yaml`. Вопросы задаёт только когда без ответа нельзя безопасно
|
|
3
|
+
description: 'Пишет план реализации по тексту рядом с вызовом или указанному research-файлу через стандартный Plan Mode (Claude Code / Codex). Перед планированием читает docs/rules.md, docs/arch.md и строго следует им; research подтягивает без вопроса, если он указан или явно нужен. Поддерживает параметр `short` для небольших фич: 1–2 фазы и компактный ревьюируемый объём. В самом начале фиксирует режим принятия решений, стратегию тестов и логирования из docs/settings.yaml или уточняет их у пользователя. Существенные решения подтверждает по `defaults.decision_mode`. Нормализует результат в исполнимый план с целевым алгоритмом, фазами, проверками и без неразрешённых альтернатив. Согласованный план сохраняется в docs/plans/. Всегда проверяет план тремя параллельными моделями (слабая, средняя, мощная) на реалистичность, пропущенные шаги, нарушения правил и риски. Кросс-CLI (Claude ↔ Codex) включается флагом `strict` или настройкой `defaults.strict: true` в `docs/settings.yaml`. Вопросы задаёт только когда без ответа нельзя безопасно продолжать, когда настройки требуют спрашивать или когда существенное решение требует подтверждения.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Планировщик (eda-plan)
|
|
@@ -33,6 +33,7 @@ description: 'Пишет план реализации по тексту ряд
|
|
|
33
33
|
Если файла нет — используй значение по умолчанию:
|
|
34
34
|
- `defaults.strict: false`
|
|
35
35
|
- `defaults.plan_size: normal`
|
|
36
|
+
- `defaults.decision_mode: recommend_and_ask`
|
|
36
37
|
- `defaults.test_strategy: ask_each_time`
|
|
37
38
|
- `defaults.logging_strategy: ask_each_time`
|
|
38
39
|
|
|
@@ -44,6 +45,7 @@ description: 'Пишет план реализации по тексту ряд
|
|
|
44
45
|
|---|---|---|
|
|
45
46
|
| `defaults.strict` | `true`, `false` | Включает или выключает строгий режим по умолчанию. |
|
|
46
47
|
| `defaults.plan_size` | `normal`, `short`, `ask_each_time` | Размер плана по умолчанию для `eda-plan`: обычный, короткий или спрашивать каждый раз. |
|
|
48
|
+
| `defaults.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | Как `eda-explore` и `eda-plan` закрывают существенные решения: сами, через рекомендацию с подтверждением или через вопрос по каждой значимой развилке. |
|
|
47
49
|
| `defaults.test_strategy` | `after_each_phase` | Тесты пишутся и запускаются после каждой фазы плана. |
|
|
48
50
|
| `defaults.test_strategy` | `tdd_each_phase` | В начале каждой фазы сначала пишутся тесты, затем код под них. |
|
|
49
51
|
| `defaults.test_strategy` | `end_of_plan` | Тесты пишутся в конце плана отдельной финальной фазой. |
|
|
@@ -54,14 +56,17 @@ description: 'Пишет план реализации по тексту ряд
|
|
|
54
56
|
|
|
55
57
|
Если `defaults.plan_size` отсутствует или неизвестен, считай его `normal`. Если настройка равна `ask_each_time`, в начале каждого планирования задай пользователю вопрос о размере плана.
|
|
56
58
|
|
|
59
|
+
Если `defaults.decision_mode` отсутствует или неизвестен, считай его `recommend_and_ask`.
|
|
60
|
+
|
|
57
61
|
Если `defaults.test_strategy` или `defaults.logging_strategy` отсутствует или неизвестен, считай его `ask_each_time`.
|
|
58
62
|
|
|
59
63
|
В самом начале составления плана, после чтения текущего сообщения и `docs/settings.yaml`, но до Plan Mode и до содержательного планирования, зафиксируй:
|
|
60
64
|
- размер плана;
|
|
65
|
+
- режим принятия решений;
|
|
61
66
|
- стратегию тестов;
|
|
62
67
|
- стратегию логирования.
|
|
63
68
|
|
|
64
|
-
Если в
|
|
69
|
+
Если в `defaults.plan_size`, `defaults.test_strategy` или `defaults.logging_strategy` стоит `ask_each_time`, задай блокирующий `AskUserQuestion` с вариантами для этой настройки. Если пользователь уже явно выбрал размер плана или стратегию в текущем сообщении, используй её без дополнительного вопроса.
|
|
65
70
|
|
|
66
71
|
Варианты вопроса про размер плана:
|
|
67
72
|
1. `normal` — обычный план без искусственного ограничения по количеству фаз.
|
|
@@ -78,6 +83,24 @@ description: 'Пишет план реализации по тексту ряд
|
|
|
78
83
|
|
|
79
84
|
Выбранные значения передай в Plan Mode и обязательно зафиксируй в финальном плане в YAML-шапке, `Принятых решениях`, `Фазах выполнения`, `Тестах` и `Логировании`.
|
|
80
85
|
|
|
86
|
+
## Режим принятия решений
|
|
87
|
+
|
|
88
|
+
`decision_mode: autonomous` — агент сам выбирает по коду, правилам, архитектуре, источникам и рискам, затем записывает причину.
|
|
89
|
+
|
|
90
|
+
`decision_mode: recommend_and_ask` — дефолт. Агент исследует варианты, рекомендует один, но по существенным решениям задаёт блокирующий вопрос до Plan Mode или до финализации.
|
|
91
|
+
|
|
92
|
+
`decision_mode: ask_each_time` — агент спрашивает по каждой значимой развилке, даже если есть сильная рекомендация.
|
|
93
|
+
|
|
94
|
+
Существенные решения — это решения, которые меняют архитектуру, зависимости, стоимость, безопасность, эксплуатацию или будущую миграцию проекта. Всегда считай существенными:
|
|
95
|
+
- выбор нового пакета, библиотеки, фреймворка, SDK, CLI или сервиса;
|
|
96
|
+
- выбор базы данных, ORM/query builder, очереди, кэша, storage, search, background jobs;
|
|
97
|
+
- миграции данных, изменение схемы, формат хранения или стратегия совместимости;
|
|
98
|
+
- auth, permissions, payments, crypto, secrets, персональные данные и другие security-sensitive решения;
|
|
99
|
+
- cloud/provider choices, managed services, лицензии, cost/lock-in и SLA;
|
|
100
|
+
- архитектурные паттерны, затрагивающие несколько модулей или публичные контракты.
|
|
101
|
+
|
|
102
|
+
Если research уже содержит вопрос и ответ пользователя по конкретному существенному решению, используй этот ответ без повторного вопроса. Если research содержит только рекомендацию или выбор агента без ответа пользователя, в `recommend_and_ask` и `ask_each_time` спроси подтверждение до Plan Mode.
|
|
103
|
+
|
|
81
104
|
## Главные правила
|
|
82
105
|
|
|
83
106
|
1. **Никаких правок кода.** Запись только в `docs/plans/`.
|
|
@@ -89,7 +112,7 @@ description: 'Пишет план реализации по тексту ряд
|
|
|
89
112
|
7. **Диаграммы — желательно, не любой ценой.** Линейный план — диаграмма не нужна.
|
|
90
113
|
8. **Таблицы > сплошной текст** для структурируемых данных.
|
|
91
114
|
9. **Финальный план — не исследование.** Исследовательские факты идут в контекст, выбранные подходы — в решения, исполнимые шаги — в фазы.
|
|
92
|
-
10. **Не оставляй неоднозначности.** Если в плане остаётся «выбрать», «решить», «можно так или так», «предпочтительно» — задай вопрос до финализации или зафиксируй одно принятое решение.
|
|
115
|
+
10. **Не оставляй неоднозначности.** Если в плане остаётся «выбрать», «решить», «можно так или так», «предпочтительно» — задай вопрос до финализации или зафиксируй одно принятое решение. Существенные решения фиксируй только по правилам `decision_mode`.
|
|
93
116
|
11. **Версии пакетов и ПО проверяй до планирования.** Если для задачи нужно устанавливать пакет, библиотеку, сервис, CLI или другое ПО, а версия не указана в контексте, используй `context7`, если он доступен, или веб-поиск, чтобы найти актуальную последнюю стабильную версию. Зафиксируй найденную версию и источник в контексте/решениях плана. Не оставляй в плане «установить latest» без конкретной версии.
|
|
94
117
|
|
|
95
118
|
## Размер плана
|
|
@@ -133,6 +156,11 @@ description: 'Пишет план реализации по тексту ряд
|
|
|
133
156
|
- если значение равно `ask_each_time` — задай `AskUserQuestion` с двумя вариантами: `normal`, `short`;
|
|
134
157
|
- если значение отсутствует или неизвестно — `normal`.
|
|
135
158
|
|
|
159
|
+
Определи `decision_mode`:
|
|
160
|
+
- если пользователь явно указал `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай» или «спрашивай всё» в текущем сообщении — используй это;
|
|
161
|
+
- иначе возьми `defaults.decision_mode` из `docs/settings.yaml`;
|
|
162
|
+
- если значение отсутствует или неизвестно — `recommend_and_ask`.
|
|
163
|
+
|
|
136
164
|
Прочитай `docs/rules.md`, `docs/arch.md` (если есть) и строго следуй им при планировании.
|
|
137
165
|
|
|
138
166
|
Research подтягивай так:
|
|
@@ -148,6 +176,16 @@ Research подтягивай так:
|
|
|
148
176
|
- сохрани название, выбранную версию и источник — это пойдёт в Plan Mode и финальный план;
|
|
149
177
|
- если источники противоречат друг другу или последняя версия нестабильна/preview, задай блокирующий вопрос.
|
|
150
178
|
|
|
179
|
+
До Plan Mode закрой существенные решения:
|
|
180
|
+
- выпиши существенные развилки, которые следуют из задачи и контекста;
|
|
181
|
+
- если research содержит подтверждённый ответ пользователя по развилке — используй его и запиши как подтверждённое решение;
|
|
182
|
+
- если `decision_mode: autonomous` и выбор можно обосновать кодом, правилами, архитектурой, источниками и рисками — выбери сам и запиши почему;
|
|
183
|
+
- если `decision_mode: recommend_and_ask` — задай `AskUserQuestion`: 2–3 варианта, первым рекомендованный, короткая причина рекомендации, вариант «свой вариант», фраза «Я продолжу только после ответа.»;
|
|
184
|
+
- если `decision_mode: ask_each_time` — задай `AskUserQuestion` по каждой значимой развилке, даже при сильной рекомендации;
|
|
185
|
+
- если выбор зависит только от пользователя — задай `AskUserQuestion` в любом режиме.
|
|
186
|
+
|
|
187
|
+
Не запускай Plan Mode, пока в `recommend_and_ask` или `ask_each_time` есть неподтверждённое существенное решение. Например, если нужен пакет для базы данных, сначала сравни 2–3 варианта и получи подтверждение выбора БД/пакета.
|
|
188
|
+
|
|
151
189
|
Если `plan_size: short`, до Plan Mode оцени задачу по найденному контексту:
|
|
152
190
|
- можно ли уложиться в 1–2 фазы;
|
|
153
191
|
- ожидается ли не больше 5–10 затронутых файлов или есть понятное объяснение для большего числа маленьких однотипных правок;
|
|
@@ -187,15 +225,17 @@ Research подтягивай так:
|
|
|
187
225
|
Войди в Plan Mode хост-агента (`EnterPlanMode` в Claude Code, встроенный план-режим в Codex). На вход:
|
|
188
226
|
1. Дословный запрос пользователя.
|
|
189
227
|
2. Зафиксированный `plan_size`.
|
|
190
|
-
3.
|
|
191
|
-
4.
|
|
192
|
-
5.
|
|
193
|
-
6.
|
|
194
|
-
7.
|
|
195
|
-
8. Инструкция:
|
|
196
|
-
9. Инструкция:
|
|
197
|
-
10. Инструкция:
|
|
198
|
-
11. Инструкция: «если
|
|
228
|
+
3. Зафиксированный `decision_mode` и все подтверждённые пользователем существенные решения.
|
|
229
|
+
4. Зафиксированные `test_strategy` и `logging_strategy`.
|
|
230
|
+
5. Найденные версии пакетов/ПО и источники, если задача требует установки.
|
|
231
|
+
6. Пары «вопрос → ответ» из этапа 3 и подтверждения существенных решений из research.
|
|
232
|
+
7. Ссылки на `docs/rules.md`, `docs/arch.md`, исследование (без пересказа — Plan Mode прочитает сам) и явное требование строго следовать правилам и архитектуре.
|
|
233
|
+
8. Инструкция: «все вопросы пользователю — только по разделу "Интерактивные вопросы", никаких догадок и продолжения без ответа».
|
|
234
|
+
9. Инструкция: «финальный план должен иметь раздел "Целевой алгоритм", фазы с целью/результатом/проверкой и не должен смешивать исследование с планом исполнения».
|
|
235
|
+
10. Инструкция: «стратегии тестов и логирования обязательны: они должны быть отражены в решениях, фазах, проверках, разделах "Тесты" и "Логирование"».
|
|
236
|
+
11. Инструкция: «если `plan_size: short`, план обязан уложиться в 1–2 фазы, компактный ревьюируемый объём и объяснение ожидаемого объёма изменений».
|
|
237
|
+
12. Инструкция: «если нужны пакеты или ПО, используй только конкретные версии; если версия не задана контекстом, она должна быть проверена через context7 или поиск и указана с источником».
|
|
238
|
+
13. Инструкция: «не добавляй неподтверждённые существенные решения в финальный план; если они возникли внутри Plan Mode, остановись и спроси пользователя».
|
|
199
239
|
|
|
200
240
|
Не выходи, пока пользователь не подтвердил план.
|
|
201
241
|
|
|
@@ -210,6 +250,7 @@ title: <заголовок>
|
|
|
210
250
|
date: <YYYY-MM-DD HH:MM>
|
|
211
251
|
mode: <normal | strict>
|
|
212
252
|
plan_size: <normal | short>
|
|
253
|
+
decision_mode: <autonomous | recommend_and_ask | ask_each_time>
|
|
213
254
|
status: <draft | meta-reviewed | reviewed>
|
|
214
255
|
reviewer: <pending | none | claude | codex>
|
|
215
256
|
meta_reviewers: []
|
|
@@ -230,7 +271,7 @@ sources:
|
|
|
230
271
|
Факты из кода, правил, архитектуры и исследований. Здесь можно объяснять причины, но не хранить исполнимые шаги.
|
|
231
272
|
|
|
232
273
|
## Принятые решения
|
|
233
|
-
Список зафиксированных архитектурных и продуктовых решений. Без вариантов «или».
|
|
274
|
+
Список зафиксированных архитектурных и продуктовых решений. Без вариантов «или». Для существенных решений укажи источник подтверждения: ответ пользователя, research с ответом пользователя или `decision_mode: autonomous` с причиной.
|
|
234
275
|
|
|
235
276
|
Если `plan_size: short`, добавь решение про ожидаемый объём: сколько фаз, сколько примерно файлов и строк осмысленного diff.
|
|
236
277
|
|
|
@@ -272,6 +313,7 @@ sources:
|
|
|
272
313
|
Правила структуры:
|
|
273
314
|
- В `Контекст` попадают исследовательские наблюдения и ограничения.
|
|
274
315
|
- В `Принятые решения` попадают только выбранные решения, без альтернатив.
|
|
316
|
+
- Существенные решения в `Принятых решениях` имеют источник подтверждения или явное обоснование автономного выбора.
|
|
275
317
|
- В `Целевой алгоритм` попадает сквозная картина процесса.
|
|
276
318
|
- В `Фазы выполнения` попадают только исполнимые шаги.
|
|
277
319
|
- Каждая фаза обязана иметь `Цель`, `Что сделать`, `Результат`, `Сценарии тестирования`, `Проверка`.
|
|
@@ -293,6 +335,7 @@ sources:
|
|
|
293
335
|
- тесты связаны с ключевыми сценариями и рисками;
|
|
294
336
|
- если `plan_size: short`, фаз не больше 2, ожидаемый объём укладывается в ориентиры short или исключение явно объяснено;
|
|
295
337
|
- все пакеты/ПО, которые нужно установить, имеют конкретные версии или явное объяснение, почему версия берётся из существующего lock/config-файла;
|
|
338
|
+
- нет неподтверждённых существенных решений при `decision_mode: recommend_and_ask` или `decision_mode: ask_each_time`;
|
|
296
339
|
- план можно передать в `eda-execute` без нового исследования.
|
|
297
340
|
|
|
298
341
|
Сохрани файл и покажи путь.
|