@gian-tiaga/eda 0.8.6 → 1.0.1
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 +119 -0
- package/README.md +324 -71
- package/agents/eda-aim-executor/agent.json +15 -0
- package/agents/eda-aim-executor/prompt.md +61 -0
- package/agents/eda-aim-planner/agent.json +15 -0
- package/agents/eda-aim-planner/prompt.md +43 -0
- package/agents/eda-aim-verifier/agent.json +15 -0
- package/agents/eda-aim-verifier/prompt.md +57 -0
- package/agents/eda-commit-context/agent.json +15 -0
- package/agents/eda-commit-context/prompt.md +58 -0
- package/agents/eda-commit-executor/agent.json +15 -0
- package/agents/eda-commit-executor/prompt.md +87 -0
- package/agents/eda-merge-worktree-executor/agent.json +15 -0
- package/agents/eda-merge-worktree-executor/prompt.md +57 -0
- package/agents/eda-review-api/agent.json +15 -0
- package/agents/eda-review-api/prompt.md +34 -0
- package/agents/eda-review-architecture/agent.json +15 -0
- package/agents/eda-review-architecture/prompt.md +34 -0
- package/agents/eda-review-code-quality/agent.json +15 -0
- package/agents/eda-review-code-quality/prompt.md +34 -0
- package/agents/eda-review-correctness/agent.json +15 -0
- package/agents/eda-review-correctness/prompt.md +34 -0
- package/agents/eda-review-database/agent.json +15 -0
- package/agents/eda-review-database/prompt.md +34 -0
- package/agents/eda-review-documentation/agent.json +15 -0
- package/agents/eda-review-documentation/prompt.md +34 -0
- package/agents/eda-review-frontend/agent.json +15 -0
- package/agents/eda-review-frontend/prompt.md +34 -0
- package/agents/eda-review-performance/agent.json +15 -0
- package/agents/eda-review-performance/prompt.md +34 -0
- package/agents/eda-review-plan-alignment/agent.json +15 -0
- package/agents/eda-review-plan-alignment/prompt.md +34 -0
- package/agents/eda-review-previous-reviews/agent.json +15 -0
- package/agents/eda-review-previous-reviews/prompt.md +44 -0
- package/agents/eda-review-references/agent.json +15 -0
- package/agents/eda-review-references/prompt.md +34 -0
- package/agents/eda-review-rules/agent.json +15 -0
- package/agents/eda-review-rules/prompt.md +34 -0
- package/agents/eda-review-security/agent.json +15 -0
- package/agents/eda-review-security/prompt.md +34 -0
- package/agents/eda-review-tests/agent.json +15 -0
- package/agents/eda-review-tests/prompt.md +34 -0
- package/agents/eda-worktree-executor/agent.json +15 -0
- package/agents/eda-worktree-executor/prompt.md +49 -0
- package/bin/cli.js +4 -4
- package/lib/catalog.js +118 -0
- package/lib/install.js +921 -119
- package/lib/renderers/claude-agent.js +24 -0
- package/lib/renderers/claude-skill.js +11 -0
- package/lib/renderers/codex-agent.js +24 -0
- package/lib/renderers/codex-skill.js +3 -0
- package/package.json +5 -3
- package/skills/eda-aim/SKILL.md +212 -0
- package/skills/eda-commit/SKILL.md +124 -0
- package/skills/eda-commit/skill.json +6 -0
- package/skills/eda-discover-automations/SKILL.md +184 -0
- package/skills/{eda-explore.md → eda-explore/SKILL.md} +11 -8
- package/skills/{eda-fix.md → eda-fix/SKILL.md} +7 -6
- package/skills/{eda-fix-by-review.md → eda-fix-by-review/SKILL.md} +5 -4
- package/skills/{eda-manual-test.md → eda-manual-test/SKILL.md} +1 -1
- package/skills/eda-merge-worktree/SKILL.md +72 -0
- package/skills/eda-merge-worktree/skill.json +7 -0
- package/skills/eda-new-project/SKILL.md +163 -0
- package/skills/eda-orhestra/SKILL.md +146 -0
- package/skills/{eda-plan.md → eda-plan/SKILL.md} +39 -29
- package/skills/eda-plan-execute/SKILL.md +186 -0
- package/skills/{eda-plan-polish.md → eda-plan-polish/SKILL.md} +14 -13
- package/skills/eda-polish/SKILL.md +80 -0
- package/skills/eda-prepare-ai/SKILL.md +227 -0
- package/skills/eda-review/SKILL.md +212 -0
- package/skills/{eda-send-review.md → eda-send-review/SKILL.md} +66 -19
- package/skills/eda-send-review/skill.json +7 -0
- package/skills/eda-worktree/SKILL.md +73 -0
- package/skills/eda-worktree/skill.json +7 -0
- package/skills/eda-automate.md +0 -185
- package/skills/eda-commit.md +0 -91
- package/skills/eda-docs.md +0 -123
- package/skills/eda-execute.md +0 -140
- package/skills/eda-merge-worktree.md +0 -116
- package/skills/eda-polish.md +0 -113
- package/skills/eda-review-check.md +0 -149
- package/skills/eda-review.md +0 -173
- package/skills/eda-start.md +0 -233
- package/skills/eda-worktree.md +0 -113
- /package/skills/{eda-roadmap.md → eda-roadmap/SKILL.md} +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-new-project
|
|
3
|
+
description: 'Помогает начать новый проект: вместе с пользователем собирает требования, функциональность, границы, сценарии, ограничения и архитектурные драйверы, сравнивает варианты основного стека и фиксирует выбранные компоненты с актуальными стабильными версиями. Не проектирует архитектуру, правила, проверки, AI-скилы или MCP, не пишет код и не ставит зависимости: сохраняет подтверждённый стартовый документ в docs/project-starts/ и всегда передаёт его eda-prepare-ai для полного технического bootstrap.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Новый проект (eda-new-project)
|
|
7
|
+
|
|
8
|
+
Помогаешь превратить идею нового проекта в подтверждённый технический бриф: что делаем, для кого, какая функциональность нужна, где проходят границы проекта, какие есть ограничения и на каком основном стеке проект будет развиваться. Не проектируешь внутреннее устройство и рабочий процесс проекта — это следующий этап `eda-prepare-ai`.
|
|
9
|
+
|
|
10
|
+
## Вход из сообщения пользователя
|
|
11
|
+
|
|
12
|
+
Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: идею проекта, продуктовую цель, аудиторию, ограничения, сроки и предпочтения по стеку, инфраструктуре, бюджету, команде, безопасности и эксплуатации.
|
|
13
|
+
|
|
14
|
+
Если входа достаточно для первого анализа, не спрашивай подтверждение самой темы, но всё равно задай вопросы по значимым стартовым решениям. `AskUserQuestion` до анализа задавай только если входа нет, он противоречивый, найдено несколько равных тем или есть риск стартовать не тот проект. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
|
|
15
|
+
|
|
16
|
+
## Главные правила
|
|
17
|
+
|
|
18
|
+
1. **Интерактивное совместное решение обязательно.** Не выбирай молча продуктовые границы, основной стек, хранилище, инфраструктурное направление или критичный внешний сервис.
|
|
19
|
+
2. **Требования раньше стека.** Сначала выясни продукт, пользователей, функциональность, границы, ограничения, данные, интеграции, безопасность, эксплуатацию и команду. Только после этого сравнивай технологии.
|
|
20
|
+
3. **Стек подбирается под задачу.** Для каждого значимого выбора дай 2–3 реалистичных варианта, рекомендацию и причину; не навязывай любимые технологии.
|
|
21
|
+
4. **Фиксируй драйверы, а не архитектуру.** Запиши свойства, которым будущая архитектура должна соответствовать, но не выбирай слои, модули, направления зависимостей, структуру папок или внутренние data-flow.
|
|
22
|
+
5. **Не дублируй `eda-prepare-ai`.** Не проектируй архитектуру, правила, строгие режимы инструментов, матрицу проверок, AI-скилы, агентные роли или MCP. После сохранения всегда передай подтверждённый стартовый документ в `eda-prepare-ai` без дополнительного вопроса.
|
|
23
|
+
6. **Не пишешь код и не ставишь пакеты.** Сам меняй только `docs/project-starts/`; не создавай конфиги, CI или проектную AI-документацию.
|
|
24
|
+
7. **Проверяй версии выбранного стека.** Для каждого подтверждаемого пакета, runtime, framework, СУБД, CLI или сервиса найди актуальную стабильную версию по официальному источнику. Не пиши `latest` без номера версии, источника и даты проверки.
|
|
25
|
+
8. **Не усиливай требования догадками.** Отделяй прямой факт пользователя от вывода: например, хостинг в конкретной стране сам по себе не означает обязательную резидентность данных. Не подтверждённое следствие запиши как открытый вопрос, а не как принятое ограничение.
|
|
26
|
+
|
|
27
|
+
## Интерактивные вопросы
|
|
28
|
+
|
|
29
|
+
Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
|
|
30
|
+
- Claude Code: используй `AskUserQuestion`.
|
|
31
|
+
- Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
|
|
32
|
+
- Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
|
|
33
|
+
- Не запускай команды, которые ждут интерактивного ввода в терминале.
|
|
34
|
+
|
|
35
|
+
Вопросы задавай пакетами по 1–3 решения за раз. Считай каждую отдельную развилку, включая вопрос без номера и уточнение после списка; не добавляй четвёртый вопрос другим абзацем. Сначала спрашивай только то, без чего следующий шаг будет гаданием. После каждого пакета используй ответ, обновляй рекомендацию и продолжай.
|
|
36
|
+
|
|
37
|
+
## Этапы
|
|
38
|
+
|
|
39
|
+
### 1. Собрать требования
|
|
40
|
+
|
|
41
|
+
Собери и согласуй:
|
|
42
|
+
- цель проекта, аудиторию и решаемую проблему;
|
|
43
|
+
- желаемую функциональность, границы проекта, критерии успеха и явные не-цели;
|
|
44
|
+
- основные пользовательские сценарии и платформы: web, mobile, desktop, API, CLI, bot или internal tool;
|
|
45
|
+
- данные, чувствительные и персональные данные, требования к хранению, региону и compliance;
|
|
46
|
+
- интеграции, платежи, auth, уведомления, файлы, поиск, аналитика и админку;
|
|
47
|
+
- ожидаемую нагрузку, SLA, задержки, доступность и требования к восстановлению;
|
|
48
|
+
- бюджет, сроки, размер и опыт команды;
|
|
49
|
+
- ограничения по хостингу, лицензиям, vendor lock-in и внешним поставщикам.
|
|
50
|
+
|
|
51
|
+
Если не хватает критичных требований, задай `AskUserQuestion` и остановись до ответа.
|
|
52
|
+
|
|
53
|
+
### 2. Зафиксировать архитектурные драйверы
|
|
54
|
+
|
|
55
|
+
Выведи из требований только свойства и ограничения, которые должен учесть следующий этап:
|
|
56
|
+
- offline-first, realtime, multi-tenant, plugin/extensibility или обязательная интеграционная модель;
|
|
57
|
+
- требования к консистентности, доступности, задержкам, масштабированию и восстановлению;
|
|
58
|
+
- владение и резидентность данных, изоляцию клиентов, аудит и compliance;
|
|
59
|
+
- поддерживаемые платформы, окружения, OS/architecture и ограничения деплоя;
|
|
60
|
+
- обязательные или запрещённые технологии, сервисы и подходы;
|
|
61
|
+
- требования к переносимости, стоимости эксплуатации и компетенциям команды.
|
|
62
|
+
|
|
63
|
+
Не превращай драйверы в готовую архитектуру. Не описывай слои, модули, директории, внутренние контракты, зависимости или runtime/data-flow. Если пользователь уже явно подтвердил такое решение, запиши его как входное ограничение, но не развивай детализацию внутри этого скила.
|
|
64
|
+
|
|
65
|
+
### 3. Выбрать основной стек
|
|
66
|
+
|
|
67
|
+
Сравни 2–3 подходящих варианта. Для каждого укажи:
|
|
68
|
+
- соответствие требованиям и архитектурным драйверам;
|
|
69
|
+
- главный риск и необратимые последствия выбора;
|
|
70
|
+
- стоимость разработки и эксплуатации;
|
|
71
|
+
- зрелость экосистемы и долгосрочную поддержку;
|
|
72
|
+
- совместимость с опытом команды, объёмом проекта и сроками.
|
|
73
|
+
|
|
74
|
+
Рекомендуй один вариант. Если пользователь не дал режим «сам выбирай», задай `AskUserQuestion`: принять рекомендацию / выбрать альтернативу / уточнить требования и пересчитать выбор.
|
|
75
|
+
|
|
76
|
+
Зафиксируй только компоненты, определяющие технологическое направление проекта: язык и runtime, основной framework/platform, СУБД и слой доступа к данным, package manager, базовую модель хостинга и критичные внешние сервисы, если их нужно выбрать уже сейчас. Не выбирай форматтеры, линтеры, typechecker, тестовые инструменты, security-сканеры, CI-профиль, AI-скилы или MCP — это область `eda-prepare-ai`.
|
|
77
|
+
|
|
78
|
+
Для каждого выбранного компонента укажи:
|
|
79
|
+
- конкретную стабильную версию и официальный источник;
|
|
80
|
+
- дату проверки;
|
|
81
|
+
- роль в проекте и причину выбора;
|
|
82
|
+
- если пользователь зафиксировал другую версию — текущую стабильную, выбранную версию и причину расхождения.
|
|
83
|
+
|
|
84
|
+
### 4. Сохранить стартовый документ
|
|
85
|
+
|
|
86
|
+
Сохрани `docs/project-starts/{YYYY-MM-DD}_{HH-MM}_{slug}.md`:
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
---
|
|
90
|
+
title: <заголовок>
|
|
91
|
+
date: <YYYY-MM-DD HH:MM>
|
|
92
|
+
status: ready-for-prepare-ai
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
# Старт проекта
|
|
96
|
+
|
|
97
|
+
## Описание продукта
|
|
98
|
+
<цель, аудитория, проблема и критерии успеха>
|
|
99
|
+
|
|
100
|
+
## Функциональность и границы
|
|
101
|
+
<что должен включать проект, явные не-цели и основные сценарии>
|
|
102
|
+
|
|
103
|
+
## Данные и интеграции
|
|
104
|
+
<типы данных, чувствительность, хранение и внешние системы>
|
|
105
|
+
|
|
106
|
+
## Ограничения
|
|
107
|
+
<нагрузка, SLA, бюджет, сроки, команда, hosting, compliance и регион>
|
|
108
|
+
|
|
109
|
+
## Архитектурные драйверы
|
|
110
|
+
<свойства и ограничения без проектирования архитектуры>
|
|
111
|
+
|
|
112
|
+
## Подтверждённые решения
|
|
113
|
+
| Область | Решение | Почему | Подтверждение |
|
|
114
|
+
|---|---|---|---|
|
|
115
|
+
|
|
116
|
+
## Основной стек
|
|
117
|
+
| Компонент | Выбор | Версия | Официальный источник | Дата проверки | Обоснование |
|
|
118
|
+
|---|---|---|---|---|---|
|
|
119
|
+
|
|
120
|
+
## Отклонённые альтернативы
|
|
121
|
+
| Вариант | Почему не выбран |
|
|
122
|
+
|---|---|
|
|
123
|
+
|
|
124
|
+
## Открытые вопросы
|
|
125
|
+
- <если есть>
|
|
126
|
+
|
|
127
|
+
## Handoff в eda-prepare-ai
|
|
128
|
+
- Спроектировать и согласовать архитектуру.
|
|
129
|
+
- Сформировать строгие правила проекта и профиль инструментов.
|
|
130
|
+
- Провести полный аудит автоматических проверок.
|
|
131
|
+
- Подобрать применимые AI-скилы, агентные роли и MCP.
|
|
132
|
+
- Создать проектную AI-документацию.
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Перед сохранением убедись, что:
|
|
136
|
+
- требования, функциональность, границы, не-цели и основные сценарии конкретны;
|
|
137
|
+
- архитектурные драйверы не выдают предлагаемую реализацию за принятое устройство;
|
|
138
|
+
- выбран один основной стек, а не список равных вариантов;
|
|
139
|
+
- все значимые решения подтверждены пользователем или явно помечены как автономный выбор;
|
|
140
|
+
- для каждого выбранного компонента указаны версия, официальный источник и дата проверки;
|
|
141
|
+
- правила, архитектура, проверки и AI/MCP-рекомендации не спроектированы внутри стартового документа.
|
|
142
|
+
|
|
143
|
+
### 5. Всегда передать стартовый документ `eda-prepare-ai`
|
|
144
|
+
|
|
145
|
+
Сразу после сохранения, без дополнительного вопроса:
|
|
146
|
+
- вызови установленный `eda-prepare-ai` в полном bootstrap-режиме и передай путь к стартовому документу как подтверждённый источник требований, стека и архитектурных драйверов;
|
|
147
|
+
- передай только подтверждённые решения; открытые вопросы явно отдели;
|
|
148
|
+
- не подсказывай готовую архитектуру, правила, проверки или AI/MCP-набор от имени `eda-new-project`;
|
|
149
|
+
- дождись результата `eda-prepare-ai` и включи его статус в финал;
|
|
150
|
+
- если `eda-prepare-ai` недоступен, не подменяй его: сохрани стартовый документ, сообщи `blocked: недоступен eda-prepare-ai` и дай точную команду для продолжения.
|
|
151
|
+
|
|
152
|
+
### 6. Финал
|
|
153
|
+
|
|
154
|
+
Коротко сообщи путь к стартовому документу, выбранный основной стек, подтверждённые архитектурные драйверы, открытые вопросы, результат вызова `eda-prepare-ai` и следующий логичный шаг.
|
|
155
|
+
|
|
156
|
+
## Чего НЕ делать
|
|
157
|
+
|
|
158
|
+
- Проектировать архитектурный подход, слои, модули, границы, структуру директорий или data-flow.
|
|
159
|
+
- Формировать правила проекта, строгие профили инструментов или матрицу автоматических проверок.
|
|
160
|
+
- Подбирать AI-скилы, агентные роли или MCP.
|
|
161
|
+
- Создавать `docs/rules.md`, `docs/arch.md`, references, `AGENTS.md` или `CLAUDE.md`.
|
|
162
|
+
- Писать код, миграции, конфиги или CI, устанавливать зависимости.
|
|
163
|
+
- Сохранять стартовый документ куда-либо кроме `docs/project-starts/`.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eda-orhestra
|
|
3
|
+
description: 'Оркестрирует настраиваемую цепочку установленных `eda-*`-скилов по описанию задачи или готовому артефакту. Каждый этап, включая составные скилы, запускает в отдельном изолированном субагенте. Порядок, включение шагов и аргументы берёт из `orhestra.steps` в `docs/settings.yaml` или текущего вызова. В `automatic` безопасно закрывает рабочие вопросы сам, в `manual` ведёт планирование вместе с человеком. Умеет после failed manual-test запустить настроенный fix и повторные шаги. Не выполняет git/publish-действия.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Скил: Оркестра полного цикла (eda-orhestra)
|
|
7
|
+
|
|
8
|
+
Выполняй настроенные `eda-*`-скилы по порядку. По умолчанию цепочка остаётся полной: `eda-plan` → `eda-plan-execute` → `eda-polish` → `eda-manual-test`; failed-отчёт ручной проверки передаётся в `eda-fix`, после чего повторяются включённые polish и manual-test.
|
|
9
|
+
|
|
10
|
+
## Настройки
|
|
11
|
+
|
|
12
|
+
Прочитай только раздел `orhestra` из `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее любого поля настроек.
|
|
13
|
+
|
|
14
|
+
Поддерживается только `version: 2`. При другой версии, отсутствующем `orhestra.steps` или невалидном значении используй дефолты ниже; настройки старого формата не применяй. Дефолт режима: `orhestra.mode: automatic`.
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
orhestra:
|
|
18
|
+
mode: automatic
|
|
19
|
+
steps:
|
|
20
|
+
- id: plan
|
|
21
|
+
skill: eda-plan
|
|
22
|
+
enabled: true
|
|
23
|
+
args: ""
|
|
24
|
+
- id: execute
|
|
25
|
+
skill: eda-plan-execute
|
|
26
|
+
enabled: true
|
|
27
|
+
args: ""
|
|
28
|
+
- id: polish
|
|
29
|
+
skill: eda-polish
|
|
30
|
+
enabled: true
|
|
31
|
+
args: "limit 5"
|
|
32
|
+
- id: manual-test
|
|
33
|
+
skill: eda-manual-test
|
|
34
|
+
enabled: true
|
|
35
|
+
args: ""
|
|
36
|
+
on_failure:
|
|
37
|
+
skill: eda-fix
|
|
38
|
+
args: ""
|
|
39
|
+
then:
|
|
40
|
+
- polish
|
|
41
|
+
- manual-test
|
|
42
|
+
max_cycles: 5
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Правила схемы:
|
|
46
|
+
|
|
47
|
+
- `mode`: только `automatic` или `manual`; дефолт `automatic`.
|
|
48
|
+
- `steps`: упорядоченный непустой список. Выполняй сверху вниз только элементы с `enabled: true`; отсутствующий `enabled` считай `true`.
|
|
49
|
+
- `id`: уникальное непустое имя шага для ссылок из `on_failure.then`.
|
|
50
|
+
- `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`.
|
|
52
|
+
- `on_failure`: опциональный обработчик `failed` у шага `eda-manual-test`. Если поля нет, сохрани failed-отчёт и остановись без исправлений.
|
|
53
|
+
- `on_failure.skill` и `on_failure.args`: разрешённый установленный скил исправления и его аргументы; дефолты `eda-fix` и пустая строка. Для `skill` действуют те же запреты, что для `steps[].skill`.
|
|
54
|
+
- `on_failure.then`: id шагов, которые после исправления нужно повторить в указанном порядке. Пропускай отключённые шаги. Список должен содержать id активного `eda-manual-test`, иначе исправление нельзя подтвердить.
|
|
55
|
+
- `on_failure.max_cycles`: положительное целое число, дефолт `5`.
|
|
56
|
+
|
|
57
|
+
Старый v2 только с `orhestra.mode` означает полную дефолтную цепочку. Настройки проекта не переписывай во время запуска.
|
|
58
|
+
|
|
59
|
+
Для совместимости старое значение `steps[].skill: eda-execute` нормализуй в памяти в `eda-plan-execute`. Файл настроек не переписывай; остальные неизвестные или удалённые скилы не заменяй автоматически.
|
|
60
|
+
|
|
61
|
+
## Вход из сообщения пользователя
|
|
62
|
+
|
|
63
|
+
Сохрани весь текст рядом с вызовом в `$USER_REQUEST`. Извлеки задачу, пути к готовым артефактам, режим и разовые изменения цепочки.
|
|
64
|
+
|
|
65
|
+
Поддерживай естественные overrides: `без полировки`, `полировка 2 итерации`, `без ручных тестов`, `только plan и execute`, `после plan запусти plan-polish strict`, `для manual-test <args>`. Явное перечисление порядка заменяет порядок из настроек; локальное включение, отключение или параметры меняют только названный шаг. Фразу `полировка N итераций` нормализуй в `limit N` внутри `args` шага. Не принимай слово из описания самой задачи за override без явной связи с цепочкой.
|
|
66
|
+
|
|
67
|
+
Если передан готовый план, а включённый `eda-plan` должен создать тот же план, пропусти этот шаг как уже выполненный и запиши причину. Остальные шаги не додумывай и не подменяй: если им не хватает входного артефакта, обработай их вопрос по выбранному режиму.
|
|
68
|
+
|
|
69
|
+
## Подготовка цепочки
|
|
70
|
+
|
|
71
|
+
1. Нормализуй настройки и overrides в `$STEPS` с `id`, `skill`, `enabled` и `args`.
|
|
72
|
+
2. Проверь уникальность id, наличие скилов, `on_failure`-инварианты и положительные числовые лимиты. Неизвестный id в `on_failure.then`, запрещённый скилл, handler без повторного manual-test, пустая активная цепочка или отсутствующий установленный скилл — `blocked: некорректная конфигурация orhestra` с точным полем.
|
|
73
|
+
3. Не исправляй подозрительный порядок молча. Если шаг очевидно требует ещё не созданный артефакт, в automatic остановись только когда вход нельзя безопасно получить из `$USER_REQUEST` или предыдущих результатов; в manual задай один вопрос о порядке или входе.
|
|
74
|
+
4. Сформируй для каждого шага итоговый ввод: `$USER_REQUEST` + пути ко всем артефактам предыдущих шагов + `args`.
|
|
75
|
+
5. Прямые параметры текущего вызова всегда ставь выше противоречащих `args` и настроек.
|
|
76
|
+
|
|
77
|
+
## Режимы и вопросы
|
|
78
|
+
|
|
79
|
+
### Automatic
|
|
80
|
+
|
|
81
|
+
- Считай явный выбор `automatic` предварительным делегированием всех обратимых рабочих решений текущего цикла. Передавай выбранные ответы как подтверждённые с источником `eda-orhestra automatic`.
|
|
82
|
+
- Для `eda-plan` добавь `decision_mode: autonomous`; значения `ask_each_time` для размера, тестов и логирования замени соответственно на `normal`, `after_each_phase`, `standard`, если текущий вызов не задаёт другое.
|
|
83
|
+
- Для вопроса `eda-plan-execute` о месте выполнения выбирай текущую ветку, если пользователь явно не запросил ветку или worktree.
|
|
84
|
+
- Не спрашивай о переходе между успешными шагами.
|
|
85
|
+
|
|
86
|
+
Автоматический режим не разрешает необратимые внешние действия, расширение scope, публикацию, расходы, удаление данных, ослабление проверок или изменение production/staging. Подтверждение из-за такого риска передай человеку; в неинтерактивной среде остановись с `blocked: нужен ответ пользователя`. Обратимые решения плана, включая БД/API-контракты и подтверждение готового плана, выбирай сам.
|
|
87
|
+
|
|
88
|
+
### Manual
|
|
89
|
+
|
|
90
|
+
- Для `eda-plan` добавь `decision_mode: recommend_and_ask`, если пользователь явно не выбрал `ask_each_time`.
|
|
91
|
+
- Передавай человеку вопросы всех шагов. Успешный шаг не требует отдельного подтверждения перехода к следующему.
|
|
92
|
+
|
|
93
|
+
Когда нужен человек:
|
|
94
|
+
|
|
95
|
+
- Claude Code: используй `AskUserQuestion`;
|
|
96
|
+
- Codex interactive: используй `request_user_input`, если доступен; иначе задай один короткий вопрос с 1–3 вариантами и остановись;
|
|
97
|
+
- Codex exec: не читай stdin; заверши `blocked: нужен ответ пользователя` и перечисли варианты.
|
|
98
|
+
|
|
99
|
+
После ответа продолжай тот же шаг с его полным предыдущим результатом, а не запускай цепочку сначала.
|
|
100
|
+
|
|
101
|
+
## Вызов вложенных скилов
|
|
102
|
+
|
|
103
|
+
1. Загружай установленный `SKILL.md` каждого шага как источник правды. Не копируй его процедуру в этот скилл.
|
|
104
|
+
2. Каждый активный шаг запускай в отдельном изолированном субагенте. Это обязательно и для составных скилов с собственными субагентами, включая `eda-plan`, `eda-plan-polish`, `eda-polish` и `eda-review`.
|
|
105
|
+
3. Изоляция означает свежий контекст без наследования истории текущего диалога. Передавай субагенту только рабочую директорию, имя скилла, подготовленный итоговый ввод и пути к нужным артефактам. В Codex используй `spawn_agent` с `fork_turns: "none"` или точный аналог; в Claude Code — новый `Agent` с самодостаточным task-сообщением.
|
|
106
|
+
4. Субагент шага сам загружает его `SKILL.md`, выполняет весь контракт скилла и при необходимости запускает его штатных нативных субагентов. Основной оркестратор только готовит ввод, передаёт ответы человека, проверяет статус и связывает артефакты; содержательную работу этапа он не выполняет.
|
|
107
|
+
5. Каждый повтор шага и каждый `on_failure.skill` считай новым вызовом: запускай его в новом изолированном субагенте с полным актуальным входом.
|
|
108
|
+
6. Если чистый контекст, субагент этапа или нужная составному скилу вложенная делегация недоступны, остановись с `blocked: недоступна изоляция этапа`. Не выполняй этап основным агентом и не вводи новый CLI-fallback, которого нет в инструкции вызываемого скилла.
|
|
109
|
+
|
|
110
|
+
## Выполнение и QA-цикл
|
|
111
|
+
|
|
112
|
+
Веди внутренний журнал: нормализованные шаги, текущий id, итоговый ввод, статус, созданные артефакты, review score и число QA-циклов. Отдельный orchestration-файл не создавай.
|
|
113
|
+
|
|
114
|
+
Для каждого активного шага по порядку:
|
|
115
|
+
|
|
116
|
+
1. Запусти скилл с подготовленным вводом.
|
|
117
|
+
2. Обработай его вопрос по режиму.
|
|
118
|
+
3. Прочитай сохранённый артефакт и явный статус. `blocked`, неполный обязательный результат или непройденная обязательная проверка останавливают цепочку.
|
|
119
|
+
4. Для `eda-polish` считай успехом только последний полный review со статусом `reviewed` или `reviewed-with-warnings` и `score >= threshold`; отдельного polish-файла нет.
|
|
120
|
+
5. Для успешного шага сохрани все пути и передай их следующему.
|
|
121
|
+
|
|
122
|
+
Если `eda-manual-test` вернул `failed`:
|
|
123
|
+
|
|
124
|
+
1. Если у этого шага нет `on_failure`, остановись с результатом `manual-test: failed`.
|
|
125
|
+
2. Запусти `on_failure.skill` с manual-test-отчётом, `$USER_REQUEST`, предыдущими артефактами и `on_failure.args`.
|
|
126
|
+
3. После успешного fix увеличь счётчик и выполни активные шаги из `on_failure.then` в заданном там порядке. Их собственные `args` сохраняются.
|
|
127
|
+
4. Если повторный manual-test снова `failed`, начни следующий QA-цикл.
|
|
128
|
+
5. Остановись с `blocked: QA не сходится`, если достигнут `on_failure.max_cycles`, два fix-цикла подряд не меняют результат того же сценария, нужен выход за scope или окружение не позволяет проверить.
|
|
129
|
+
6. После `passed` продолжи линейную цепочку со шага, следующего за исходным manual-test.
|
|
130
|
+
|
|
131
|
+
Если manual-test отключён или отсутствует, failure-цикл не запускай и не изображай ручную проверку. Если polish отключён, не требуй review score и не запускай его после fix через `on_failure.then`.
|
|
132
|
+
|
|
133
|
+
## Финал
|
|
134
|
+
|
|
135
|
+
Сообщи режим, фактически выполненную цепочку с args и лимитами, пропущенные шаги и причины, пути ко всем артефактам, последний review score при наличии, результат manual-test при наличии, число QA-циклов и состояние git «не закоммичено».
|
|
136
|
+
|
|
137
|
+
Успех означает, что все включённые шаги завершились по собственным контрактам. Если manual-test был включён, после последних изменений обязателен `passed`; если он отключён, явно напиши «ручные тесты пропущены настройкой». Если polish отключён, явно напиши «полировка пропущена настройкой».
|
|
138
|
+
|
|
139
|
+
## Чего НЕ делать
|
|
140
|
+
|
|
141
|
+
- Выполнять содержательную работу вместо настроенного скилла.
|
|
142
|
+
- Запускать отключённый или отсутствующий в цепочке шаг, кроме явно настроенного `on_failure.skill`.
|
|
143
|
+
- Терять `args`, порядок или пути к артефактам при передаче.
|
|
144
|
+
- Считать автоматические тесты заменой включённого `eda-manual-test`.
|
|
145
|
+
- Коммитить, пушить, создавать PR, отправлять ревью или управлять worktree.
|
|
146
|
+
- Менять `docs/settings.yaml` во время запуска.
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eda-plan
|
|
3
|
-
description: 'Пишет исполнимый план реализации через стандартный Plan Mode Claude Code / Codex и сохраняет его в docs/plans/. Перед планированием читает docs/rules.md
|
|
3
|
+
description: 'Пишет исполнимый план реализации через стандартный Plan Mode Claude Code / Codex и сохраняет его в docs/plans/. Перед планированием читает docs/rules.md, docs/arch.md и только релевантные карточки из docs/references/ как обязательную рамку, подтягивает research и настройки. Не оставляет неподтверждённых решений, явно описывает БД/API-контракты и помечает задачи, которые безопасно выполнять параллельно. После сохранения всегда запускает три параллельных мета-ревьюера; strict добавляет кросс-CLI.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Скил: Планировщик (eda-plan)
|
|
7
7
|
|
|
8
|
-
Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, затем проверяешь план тремя параллельными субагентами/моделями. В `strict` добавляешь кросс-CLI проверку.
|
|
8
|
+
Собираешь контекст, запускаешь стандартный Plan Mode хост-агента, нормализуешь результат в файл `docs/plans/`, явно помечаешь зависимости и безопасную параллельность задач, затем проверяешь план тремя параллельными субагентами/моделями. В `strict` добавляешь кросс-CLI проверку.
|
|
9
9
|
|
|
10
10
|
## Режим запуска
|
|
11
11
|
|
|
12
12
|
Прочитай `docs/settings.yaml`, если файл есть. Прямое указание пользователя в текущем сообщении важнее настроек.
|
|
13
13
|
|
|
14
|
-
Дефолты: `
|
|
14
|
+
Поддерживается только `version: 2`. При другой версии, отсутствующем разделе или неизвестном значении используй дефолт; настройки старого формата не применяй. Дефолты: `plan.strict: false`, `plan.size: normal`, `plan.decision_mode: recommend_and_ask`, `plan.test_strategy: ask_each_time`, `plan.logging_strategy: ask_each_time`.
|
|
15
15
|
|
|
16
16
|
| Настройка | Значения | Аргументы в сообщении |
|
|
17
17
|
|---|---|---|
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
18
|
+
| `plan.strict` | `true`, `false` | `strict`; выключение: `normal`, `без strict`, `без строгого режима` |
|
|
19
|
+
| `plan.size` | `normal`, `short`, `ask_each_time` | `short`; обычный: `обычный план`, `не short` |
|
|
20
|
+
| `plan.decision_mode` | `autonomous`, `recommend_and_ask`, `ask_each_time` | `autonomous`, `recommend_and_ask`, `ask_each_time`, «сам выбирай», «рекомендуй и спрашивай», «спрашивай всё» |
|
|
21
|
+
| `plan.test_strategy` | `after_each_phase`, `tdd_each_phase`, `end_of_plan`, `ask_each_time` | явное указание стратегии тестов |
|
|
22
|
+
| `plan.logging_strategy` | `debug_precise`, `standard`, `ask_each_time` | явное указание стратегии логирования |
|
|
23
23
|
|
|
24
|
-
Если
|
|
24
|
+
Если итоговое значение `plan.size`, `plan.test_strategy` или `plan.logging_strategy` равно `ask_each_time`, задай блокирующий вопрос, кроме случая, когда пользователь уже выбрал значение в текущем сообщении.
|
|
25
25
|
|
|
26
26
|
Варианты вопросов: размер плана — `normal` / `short`; тесты — `after_each_phase` / `tdd_each_phase` / `end_of_plan`; логирование — `debug_precise` / `standard`.
|
|
27
27
|
|
|
@@ -54,12 +54,14 @@ description: 'Пишет исполнимый план реализации че
|
|
|
54
54
|
|
|
55
55
|
1. Никаких правок кода, миграций, конфигов и зависимостей. Запись только в `docs/plans/`.
|
|
56
56
|
2. `docs/rules.md` и `docs/arch.md` — обязательная рамка планирования, а не справочный контекст. Прочитай их, выдели применимые правила и архитектурные ограничения, передай их в Plan Mode как обязательные требования.
|
|
57
|
-
3. Если
|
|
58
|
-
4.
|
|
59
|
-
5.
|
|
60
|
-
6.
|
|
61
|
-
7.
|
|
62
|
-
8. Если
|
|
57
|
+
3. Если существует `docs/references.md`, прочитай индекс, выбери только карточки для затронутых компонентов и прочитай их целиком. Их кодовые примеры задают ожидаемую форму реализации; нерелевантные карточки не загружай.
|
|
58
|
+
4. Приоритет: подтверждённое решение пользователя → `docs/rules.md` → `docs/arch.md` → релевантные карточки. Если запрос, research, черновик или шаг плана конфликтует с этой рамкой, не финализируй план. Спроси, адаптировать подход, отдельно изменить рамку или прервать планирование. Отклонение от карточки допустимо только с подтверждённой причиной, записанной в плане.
|
|
59
|
+
5. Не переформулируй запрос пользователя перед Plan Mode: передавай оригинал, ответы на вопросы и найденную рамку.
|
|
60
|
+
6. План сохраняется до мета-ревью, иначе ревьюерам нечего читать.
|
|
61
|
+
7. Финальный план должен быть простым, исполнимым и без альтернатив вида «выбрать», «решить», «можно так или так», «предпочтительно».
|
|
62
|
+
8. Если нужны пакеты, библиотеки, CLI, сервисы или другое ПО, а версия не указана в контексте или lock/config-файлах, найди последнюю стабильную версию через context7 или web search по официальным источникам. Не пиши `latest` без конкретной версии и источника.
|
|
63
|
+
9. Если выбран `plan.size: short`, но задача не укладывается в ограничения, не сохраняй short-план: объясни причину, оцени нужный объём и спроси, продолжать в `normal` или сузить задачу.
|
|
64
|
+
10. Каждой задаче в фазах присвой уникальный ID, укажи её прямые зависимости и явно пометь, с какими задачами её безопасно выполнять параллельно. Не считай задачи параллельными, если они меняют один файл или участок кода, общий изменяемый контракт, одну миграционную цепочку либо используют результат друг друга.
|
|
63
65
|
|
|
64
66
|
## Этапы
|
|
65
67
|
|
|
@@ -67,6 +69,7 @@ description: 'Пишет исполнимый план реализации че
|
|
|
67
69
|
|
|
68
70
|
- Разбери текущий вход и настройки.
|
|
69
71
|
- Прочитай `docs/rules.md`, `docs/arch.md`, если они есть; выпиши применимые команды проверки, требования к тестам, границы модулей, зависимости, API, миграции, безопасность, документацию и локальные запреты.
|
|
72
|
+
- Если есть `docs/references.md`, выбери по индексу применимые карточки, прочитай их и выпиши обязательные элементы кодовых примеров.
|
|
70
73
|
- Research подтягивай без вопроса, если путь указан; если в сообщении есть описание задачи без research-файла — используй описание как контекст и не спрашивай research автоматически. Если пользователь явно просит research, но файл не указал, предложи последние файлы из `docs/researches/` и вариант «нет».
|
|
71
74
|
- Проверь версии нужных пакетов/ПО, если они не зафиксированы в запросе, правилах, архитектуре, research или lock/config-файлах.
|
|
72
75
|
- Закрой существенные решения по `decision_mode`.
|
|
@@ -80,9 +83,10 @@ description: 'Пишет исполнимый план реализации че
|
|
|
80
83
|
2. `plan_size`, `decision_mode`, `test_strategy`, `logging_strategy`.
|
|
81
84
|
3. Все подтверждённые существенные решения и пары «вопрос → ответ».
|
|
82
85
|
4. Найденные версии пакетов/ПО и источники.
|
|
83
|
-
5. Пути к `docs/rules.md`, `docs/arch.md`, research и выписку
|
|
84
|
-
6. Требование: план
|
|
86
|
+
5. Пути к `docs/rules.md`, `docs/arch.md`, применимым карточкам, research и выписку обязательных элементов рамки.
|
|
87
|
+
6. Требование: план следует правилам, архитектуре и применимым эталонам с указанным приоритетом; при конфликте или необоснованном отклонении остановиться и спросить пользователя.
|
|
85
88
|
7. Требование: финальный план нормализуется в структуру ниже, не смешивает исследование с исполнением и не добавляет неподтверждённые существенные решения.
|
|
89
|
+
8. Требование: каждая задача получает уникальный ID, прямые зависимости и явную маркировку безопасной параллельности с другими задачами.
|
|
86
90
|
|
|
87
91
|
Не выходи из Plan Mode, пока пользователь не подтвердил план.
|
|
88
92
|
|
|
@@ -105,6 +109,7 @@ logging_strategy: <debug_precise | standard>
|
|
|
105
109
|
sources:
|
|
106
110
|
rules: <путь или —>
|
|
107
111
|
arch: <путь или —>
|
|
112
|
+
references: [<пути к применимым карточкам или пусто>]
|
|
108
113
|
research: <путь или —>
|
|
109
114
|
---
|
|
110
115
|
|
|
@@ -113,12 +118,6 @@ sources:
|
|
|
113
118
|
## Задача
|
|
114
119
|
Коротко: что нужно реализовать и какой результат считается готовым.
|
|
115
120
|
|
|
116
|
-
## Контекст
|
|
117
|
-
Факты из кода, правил, архитектуры и исследований. Здесь можно объяснять причины, но не хранить исполнимые шаги.
|
|
118
|
-
|
|
119
|
-
## Принятые решения
|
|
120
|
-
Выбранные архитектурные и продуктовые решения без вариантов. Для существенных решений укажи источник подтверждения: ответ пользователя, research с ответом пользователя или `decision_mode: autonomous` с причиной. Для `short` укажи ожидаемый объём.
|
|
121
|
-
|
|
122
121
|
## Целевой алгоритм
|
|
123
122
|
Сквозное поведение системы от входного события до финального состояния.
|
|
124
123
|
|
|
@@ -136,7 +135,9 @@ sources:
|
|
|
136
135
|
Цель: <зачем нужна фаза>.
|
|
137
136
|
|
|
138
137
|
Что сделать:
|
|
139
|
-
-
|
|
138
|
+
- `[1.1]` <конкретная задача>. Зависит от: `—`. Параллельно: `[1.2]`.
|
|
139
|
+
- `[1.2]` <конкретная задача>. Зависит от: `—`. Параллельно: `[1.1]`.
|
|
140
|
+
- `[1.3]` <конкретная задача>. Зависит от: `[1.1, 1.2]`. Параллельно: `нет`.
|
|
140
141
|
|
|
141
142
|
Результат: <готовое состояние>.
|
|
142
143
|
|
|
@@ -156,10 +157,16 @@ sources:
|
|
|
156
157
|
Что обновить в env/docs/runbook и что важно для релиза.
|
|
157
158
|
```
|
|
158
159
|
|
|
160
|
+
## Принятые решения
|
|
161
|
+
Выбранные архитектурные и продуктовые решения без вариантов. Для существенных решений укажи источник подтверждения: ответ пользователя, research с ответом пользователя или `decision_mode: autonomous` с причиной. Для `short` укажи ожидаемый объём.
|
|
162
|
+
|
|
159
163
|
Правила структуры:
|
|
160
164
|
|
|
161
165
|
- Риски не выносятся в отдельный обязательный раздел; закрытые риски встраиваются в решения, фазы, сценарии тестирования, проверки, логирование или эксплуатацию.
|
|
162
|
-
- Отдельный раздел порядка выполнения не нужен:
|
|
166
|
+
- Отдельный раздел порядка выполнения не нужен: основной поток задаётся номерами фаз, ID задач и их зависимостями, а допустимые пересечения — полем `Параллельно` внутри каждой задачи.
|
|
167
|
+
- ID задачи имеет формат `[<номер фазы>.<номер задачи>]` и уникален во всём плане. В `Зависит от` перечисляй только прямые зависимости; `—` означает, что задачу можно начинать независимо от других задач плана.
|
|
168
|
+
- В `Параллельно` перечисляй ID всех задач, которые можно безопасно выполнять одновременно с этой задачей, либо пиши `нет`. Маркировка должна быть симметричной: если `[1.1]` параллельна `[2.1]`, это указывается у обеих задач.
|
|
169
|
+
- Перед маркировкой проверь пересечения по файлам и участкам кода, данным, БД-миграциям, API/событийным схемам, сгенерированным артефактам и общему изменяемому состоянию. При конфликте или зависимости параллельность запрещена.
|
|
163
170
|
- В `Контракты реализации` попадают схемы данных, БД, API и внешние контракты; если область не затрагивается, напиши `Не затрагивается`.
|
|
164
171
|
- В фазах нельзя ограничиваться общими формулировками вроде «обновить UI», «добавить сервис», «реализовать логику». Для UI опиши пользовательский сценарий, состояния успеха/ошибки и видимый результат; для внутренней логики — ответственность частей, поток данных, состояния и ошибки.
|
|
165
172
|
- Если нужен раздел `Открытые вопросы`, оставь `status: draft`, сохрани файл и не запускай мета-ревью до ответа пользователя.
|
|
@@ -168,14 +175,16 @@ Quality gate перед сохранением и после мета-ревью
|
|
|
168
175
|
|
|
169
176
|
- есть `Целевой алгоритм` и `Контракты реализации` с подразделами `Данные и БД`, `API и внешние контракты`;
|
|
170
177
|
- план строго следует `docs/rules.md` и `docs/arch.md`;
|
|
178
|
+
- план следует применимым карточкам или явно фиксирует подтверждённую причину отклонения;
|
|
171
179
|
- нет конфликтов с правилами, архитектурой, границами модулей, API, миграциями, зависимостями и командами проверки;
|
|
172
180
|
- БД/API изменения описаны конкретно, а не общими словами;
|
|
173
181
|
- каждая фаза имеет цель, шаги, результат, сценарии тестирования и проверку;
|
|
182
|
+
- каждая задача имеет уникальный ID, прямые зависимости и поле `Параллельно`; ссылки на ID существуют, параллельность симметрична и не конфликтует с зависимостями или общими изменяемыми ресурсами;
|
|
174
183
|
- `test_strategy` и `logging_strategy` применены в фазах и отдельных разделах;
|
|
175
184
|
- для `short` не больше 2 фаз и явно указан ожидаемый объём;
|
|
176
185
|
- пакеты/ПО имеют конкретные версии или ссылку на существующий lock/config;
|
|
177
186
|
- нет неподтверждённых существенных решений и неразрешённых альтернатив;
|
|
178
|
-
- план можно передать в `eda-execute` без нового исследования.
|
|
187
|
+
- план можно передать в `eda-plan-execute` без нового исследования.
|
|
179
188
|
|
|
180
189
|
### 4. Мета-ревью тремя субагентами/моделями
|
|
181
190
|
|
|
@@ -189,7 +198,7 @@ Quality gate перед сохранением и после мета-ревью
|
|
|
189
198
|
|
|
190
199
|
В интерактивном Codex, если доступен инструмент субагентов (`spawn_agent` или аналог), используй его. Не используй отдельные `codex exec` для обычного мета-ревью, когда субагенты доступны. В неинтерактивном fallback запускай три `codex exec --model <id>` параллельно одной Bash-командой с `&` и общим `wait`.
|
|
191
200
|
|
|
192
|
-
Промпт всем: прочитать план, `docs/rules.md`, `docs/arch.md`, research из `sources.research` при наличии и релевантный код по глубине модели. Найти пропущенные шаги, нарушения
|
|
201
|
+
Промпт всем: прочитать план, `docs/rules.md`, `docs/arch.md`, карточки из `sources.references`, research из `sources.research` при наличии и релевантный код по глубине модели. Найти пропущенные шаги, нарушения правил/архитектуры/эталонов, необоснованные отклонения, скрытые риски, риски для смежного кода, недостающие тесты, шаги без критериев готовности, неверные зависимости и небезопасную или упущенную параллельность. Формат ответа: `+ N | − N | ~ N: причина`; флагману явно скажи открывать файлы модулей, API, тестов и сценариев, на которые ссылается план.
|
|
193
202
|
|
|
194
203
|
После ответов интегрируй принятые замечания в основные разделы плана, снова прогони quality gate и добавь:
|
|
195
204
|
|
|
@@ -210,7 +219,7 @@ Quality gate перед сохранением и после мета-ревью
|
|
|
210
219
|
Обычный режим пропускает этот этап. В `strict` отдай файл соседнему CLI:
|
|
211
220
|
|
|
212
221
|
```bash
|
|
213
|
-
codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, неучтённые зависимости, нарушения
|
|
222
|
+
codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, карточки из sources.references и связанное исследование из sources.research при наличии. Затем глубоко проверь план по релевантному коду: открой файлы, модули, API и тесты, которые следуют из плана, и оцени фактическую реализуемость. Критическое ревью на русском: пропущенные шаги, неучтённые зависимости, нарушения правил, архитектуры и эталонов, необоснованные отклонения, скрытые риски, недостающие тесты и шаги без критериев готовности. Список '- [тип] описание — что предлагаешь'." > "${PLAN_FILE%.md}_review.md"
|
|
214
223
|
```
|
|
215
224
|
|
|
216
225
|
Если ты в Codex — запускай `claude -p` с тем же заданием. Если соседней CLI нет, спроси, продолжать без ревью или прервать.
|
|
@@ -219,12 +228,13 @@ codex exec "Прочитай $PLAN_FILE, docs/rules.md, docs/arch.md, связа
|
|
|
219
228
|
|
|
220
229
|
### 6. Финал
|
|
221
230
|
|
|
222
|
-
Коротко сообщи режим, путь к плану, путь к review-файлу в `strict`, 3–5 главных шагов простыми словами и что дальше делает `eda-execute`.
|
|
231
|
+
Коротко сообщи режим, путь к плану, путь к review-файлу в `strict`, 3–5 главных шагов простыми словами и что дальше делает `eda-plan-execute`.
|
|
223
232
|
|
|
224
233
|
## Чего НЕ делать
|
|
225
234
|
|
|
226
235
|
- Править код, миграции, конфиги или зависимости.
|
|
227
236
|
- Считать `docs/rules.md` и `docs/arch.md` просто контекстом для ознакомления.
|
|
237
|
+
- Игнорировать применимую карточку или молча отклоняться от её примера.
|
|
228
238
|
- Сохранять план, который противоречит правилам или архитектуре проекта.
|
|
229
239
|
- Обходить правило или архитектурное ограничение без явного решения пользователя.
|
|
230
240
|
- Задавать вопросы без блокировки и продолжать до ответа.
|