@gian-tiaga/eda 0.6.2 → 0.8.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.
@@ -7,13 +7,6 @@ description: 'Создаёт roadmap-файл по продуктовой или
7
7
 
8
8
  Создаёшь roadmap: список будущих задач по продуктовой или технической теме. Roadmap отвечает на вопрос «что нужно сделать и зачем», но не отвечает «как именно реализовывать».
9
9
 
10
- ## Режимы вызова
11
-
12
- | Режим | Запуск | Что делает |
13
- |---|---|---|
14
- | Обычный | `eda-roadmap <тема>` | Создаёт roadmap-файл в `docs/roadmaps/`. |
15
- | Из текста | `eda-roadmap <список идей или требований>` | Нормализует вход в ясный список задач без деталей реализации. |
16
-
17
10
  ## Вход из сообщения пользователя
18
11
 
19
12
  Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: тему, цель, аудиторию, ограничения, примерный горизонт roadmap, уже названные задачи и прямые указания.
@@ -62,22 +55,9 @@ description: 'Создаёт roadmap-файл по продуктовой или
62
55
 
63
56
  ### 3. Сформировать задачи
64
57
 
65
- Собери задачи в список. Для каждой задачи:
66
- - дай короткое название;
67
- - добавь 1–2 предложения описания, если без них задача может быть понята по-разному;
68
- - опиши результат на уровне поведения или возможности, а не реализации;
69
- - не добавляй подзадачи с техническими шагами;
70
- - не добавляй оценки сроков, если пользователь не просил.
71
-
72
- Хорошие формулировки:
73
- - «Аутентификация через email, ВК и Яндекс. Пользователь может войти удобным способом и восстановить доступ без обращения в поддержку.»
74
- - «Личный кабинет пользователя. Пользователь видит свои данные, статус подписки и основные действия по аккаунту в одном месте.»
75
- - «Базовая модерация контента. Команда может скрывать спорные материалы и видеть причину модерационного решения.»
76
-
77
- Плохие формулировки:
78
- - «Подключить `passport-yandex`, добавить callback route и таблицу OAuth-профилей.»
79
- - «Создать `auth.service.ts`, миграцию и e2e-тесты.»
80
- - «Реализовать через Redis и очередь фоновых задач.»
58
+ Собери список задач. Для каждой дай короткое название, 1–2 предложения описания при необходимости и результат на уровне поведения или возможности, а не реализации. Не добавляй технические подзадачи и оценки сроков, если пользователь не просил.
59
+
60
+ Хорошо: «Аутентификация через email, ВК и Яндекс. Пользователь может войти удобным способом и восстановить доступ без обращения в поддержку.» Плохо: «Подключить `passport-yandex`, добавить callback route и таблицу OAuth-профилей.»
81
61
 
82
62
  ### 4. Сохранить файл
83
63
 
@@ -36,12 +36,7 @@ description: 'Отправляет ревью из `docs/reviews/...`, выбр
36
36
  `gh --version` + `gh auth status`. Если `gh` отсутствует или не авторизован — остановись, сообщи и выйди (это пользователю нужно решить).
37
37
 
38
38
  ### 2. Выбрать ревью
39
- Сначала разбери текст рядом с вызовом:
40
- - если указан путь к ревью — используй его как `$REVIEW_FILE`;
41
- - если указано название ревью или часть названия — найди совпадение в `docs/reviews/`;
42
- - если написано «последнее ревью» — возьми самый новый файл из `docs/reviews/`;
43
- - если указан PR (`PR 12`, `#12`) — сохрани номер как целевой PR;
44
- - если указан тип отправки (`comment`, `review-comment`, `approve`, `request-changes`) — сохрани его как намерение.
39
+ Сначала разбери текст рядом с вызовом: путь к ревью, название или часть названия, «последнее ревью», PR (`PR 12`, `#12`) и тип отправки (`comment`, `review-comment`, `approve`, `request-changes`).
45
40
 
46
41
  Если найдено ровно одно ревью — продолжай без вопроса. Если найдено несколько одинаково подходящих ревью — `AskUserQuestion` со списком вариантов. Если входа нет — `AskUserQuestion` со списком последних файлов из `docs/reviews/`. Если `docs/reviews/` отсутствует или пуста — остановись с понятным вопросом или статусом `blocked: нужно ревью`. Прочитай файл целиком: оценку, замечания, рекомендации.
47
42
 
@@ -51,10 +46,7 @@ description: 'Отправляет ревью из `docs/reviews/...`, выбр
51
46
  Если PR нет — `AskUserQuestion`: «PR ещё нет: создать PR из текущей ветки / указать номер существующего PR / прервать». При создании используй `gh pr create` (заголовок и тело — по последним коммитам ветки).
52
47
 
53
48
  ### 4. Выбрать тип отправки
54
- Предложи вариант на основе оценки в ревью:
55
- - score ≥ 80 → предложить **approve** (с комментарием).
56
- - score < 50 → предложить **request-changes**.
57
- - иначе → **review-comment** (review без статуса).
49
+ Предложи вариант по оценке: score 80 → **approve** с комментарием; score < 50 → **request-changes**; иначе → **review-comment**.
58
50
 
59
51
  Если тип отправки указан в тексте и это `comment` или `review-comment`, используй его без дополнительного выбора, если нет противоречий с ревью. `approve` и `request-changes` всегда подтверждай через `AskUserQuestion`, даже если они указаны inline. Если тип не указан или противоречит ревью — `AskUserQuestion`: подтвердить предложенный тип / выбрать другой / отправить как обычный комментарий PR (вне review).
60
52
 
@@ -0,0 +1,226 @@
1
+ ---
2
+ name: eda-start
3
+ description: 'Помогает стартовать новый проект: собирает требования, критерии MVP, ограничения и риски; вместе с пользователем выбирает стек, архитектуру, инструменты качества кода, AI-скилы, агентные инструкции, MCP-серверы и правила проекта. Для библиотек, CLI, сервисов и MCP проверяет актуальные стабильные версии по официальным источникам, если они не заданы. Не пишет код и не устанавливает зависимости: сохраняет согласованный стартовый документ в docs/project-starts/ и черновики docs/rules.md / docs/arch.md / AGENTS.md, если пользователь это подтвердил.'
4
+ ---
5
+
6
+ # Скил: Старт проекта (eda-start)
7
+
8
+ Помогаешь начать новый проект с понятной рамкой: что делаем, для кого, на каком стеке, с какой архитектурой, какими проверками качества, какими AI-скилами и MCP-серверами, и какие правила сразу внедряем. Работаешь как технический партнёр: сначала собираешь факты, затем рекомендуешь варианты и принимаешь решения вместе с пользователем.
9
+
10
+ ## Вход из сообщения пользователя
11
+
12
+ Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: идею проекта, продуктовую цель, аудиторию, ограничения, сроки, предпочтения по стеку, инфраструктуре, бюджету, команде, требованиям к качеству, безопасности и эксплуатации.
13
+
14
+ Если входа достаточно для первого анализа, не спрашивай подтверждение самой темы, но всё равно задай вопросы по значимым стартовым решениям. `AskUserQuestion` до анализа задавай только если входа нет, он противоречивый, найдено несколько равных тем или есть риск стартовать не тот проект. Старое обсуждение в истории не считай входом, если пользователь не связал его с текущим вызовом явно.
15
+
16
+ ## Главные правила
17
+
18
+ 1. **Интерактивное совместное решение обязательно.** Нельзя молча выбрать стек, архитектуру, правила, MCP или инструменты качества, если это значимо влияет на проект.
19
+ 2. **Не пишешь код и не ставишь пакеты.** Запись только в `docs/project-starts/` и, после явного подтверждения пользователя, в `docs/rules.md`, `docs/arch.md`, `AGENTS.md`.
20
+ 3. **Требования раньше стека.** Сначала выясни продукт, пользователей, MVP, ограничения, данные, интеграции, безопасность, эксплуатацию и команду. Только после этого выбирай стек.
21
+ 4. **Стек подбирается под задачу.** Не навязывай любимые технологии. Для каждого ключевого выбора дай 2–3 реалистичных варианта, рекомендацию и причину.
22
+ 5. **Инструменты качества обязательны для выбранного стека.** Подбери форматтер, линтер, статанализатор/typecheck, тестовый стек, coverage, dependency/security audit, pre-commit и CI-проверки, если они есть и уместны в выбранной экосистеме.
23
+ 6. **MCP и скилы — только по делу.** Рекомендуй MCP-сервер или скил, когда он закрывает реальную нехватку контекста, интеграцию, повторяемый процесс или качество агентной работы.
24
+ 7. **Версии проверяй.** Если предлагаешь пакеты, CLI, фреймворки, сервисы или MCP-серверы, а версия не зафиксирована пользователем, проверь актуальную стабильную версию через context7, если он доступен, или через web search по официальным источникам.
25
+ 8. **Архитектура должна быть объяснима.** Выбранная архитектура обязана соответствовать масштабу MVP, рискам, команде и будущему росту. Не предлагай сложность без причины.
26
+ 9. **Правила должны быть применимы.** Каждое правило должно отвечать на конкретный риск проекта и иметь понятную проверку: автоматическую, ревью-проверку или договорённость в `docs/rules.md`.
27
+ 10. **Простой язык. Таблицы** используй для сравнений стека, инструментов, MCP, скилов, правил и архитектурных вариантов.
28
+
29
+ ## Интерактивные вопросы
30
+
31
+ Когда инструкция говорит `AskUserQuestion`, это означает блокирующий интерактивный вопрос.
32
+ - Claude Code: используй `AskUserQuestion`.
33
+ - Codex interactive: если доступен `request_user_input`, используй его. Если tool недоступен, задай один короткий вопрос в чат, дай варианты 1–3, напиши «Ответь номером или своим вариантом. Я продолжу только после ответа.» и остановись.
34
+ - Codex exec / неинтерактивный запуск: не задавай вопросы и не пытайся читать stdin. Если без ответа нельзя безопасно продолжать, заверши работу со статусом `blocked: нужен ответ пользователя`, перечисли вопросы и варианты, не выполняй рискованные действия.
35
+ - Не запускай команды, которые ждут интерактивного ввода в терминале.
36
+
37
+ Вопросы задавай пакетами по 1–3 за раз. Сначала спрашивай только то, без чего следующий шаг будет гаданием. После каждого пакета используй ответ, обновляй рекомендацию и продолжай.
38
+
39
+ ## Этапы
40
+
41
+ ### 1. Собрать требования
42
+
43
+ Собери и зафиксируй:
44
+ - цель проекта и аудиторию;
45
+ - MVP и что точно не входит в первую версию;
46
+ - основные пользовательские сценарии;
47
+ - типы данных, чувствительные данные, персональные данные и требования к хранению;
48
+ - интеграции, платежи, auth, уведомления, файлы, поиск, аналитика, админку;
49
+ - нагрузку, SLA, бюджет, сроки, размер команды и опыт команды;
50
+ - платформы: web, mobile, desktop, API, CLI, bot, internal tool;
51
+ - ограничения по хостингу, лицензиям, vendor lock-in, compliance и региону.
52
+
53
+ Если не хватает критичных требований, задай `AskUserQuestion` и остановись до ответа.
54
+
55
+ ### 2. Выбрать стек
56
+
57
+ Сравни 2–3 подходящих варианта стека. Для каждого укажи:
58
+ - где он силён для этого проекта;
59
+ - главный риск;
60
+ - стоимость внедрения и поддержки;
61
+ - зрелость экосистемы;
62
+ - совместимость с командой и MVP.
63
+
64
+ Рекомендуй один вариант. Если пользователь не дал режим «сам выбирай», задай `AskUserQuestion`: принять рекомендацию / выбрать альтернативу / сузить требования и пересчитать выбор.
65
+
66
+ Для выбранного стека зафиксируй конкретные версии основных компонентов или источник версии: runtime, framework, БД, ORM, тестовый фреймворк, build tool, package manager, контейнеры и ключевые сервисы.
67
+
68
+ ### 3. Подобрать инструменты качества
69
+
70
+ Для выбранного стека подбери инструменты с обоснованием:
71
+ - форматирование кода;
72
+ - линтеры;
73
+ - статический анализ и typecheck;
74
+ - unit/integration/e2e/contract-тесты;
75
+ - coverage;
76
+ - dependency audit и security scan;
77
+ - schema/API validation;
78
+ - миграции БД и проверки миграций;
79
+ - pre-commit hooks;
80
+ - CI pipeline;
81
+ - генераторы типов или клиентов, если API/схемы это требуют.
82
+
83
+ Не предлагай инструмент, если он дублирует уже выбранный инструмент того же класса без явной пользы. Если в экосистеме есть несколько нормальных вариантов, сравни их и выбери один.
84
+
85
+ ### 4. Выбрать архитектуру
86
+
87
+ Предложи 2–3 архитектурных варианта, соответствующих выбранному стеку и масштабу:
88
+ - простой монолит / modular monolith;
89
+ - API + frontend;
90
+ - event-driven части;
91
+ - serverless;
92
+ - mobile-first / offline-first;
93
+ - plugin/module architecture;
94
+ - другой вариант, если он лучше подходит.
95
+
96
+ Для каждого варианта покажи границы модулей, поток данных, риски и что будет сложно менять позже. Рекомендуй один вариант и задай `AskUserQuestion`, если выбор влияет на стоимость, сроки, масштабирование, данные или команду.
97
+
98
+ ### 5. Решить правила проекта
99
+
100
+ Сформируй набор правил, которые стоит внедрить с первого дня:
101
+ - структура проекта и границы модулей;
102
+ - стиль кода и naming;
103
+ - работа с ошибками и логированием;
104
+ - тестовая стратегия;
105
+ - миграции и данные;
106
+ - API-контракты;
107
+ - безопасность и секреты;
108
+ - доступность и UX, если есть UI;
109
+ - observability;
110
+ - работа с AI-агентами, планами, ревью и коммитами;
111
+ - политика зависимостей и обновлений.
112
+
113
+ Для каждого правила укажи: какой риск оно закрывает, как проверяется, где будет зафиксировано. Затем спроси пользователя, какие правила принять сейчас, какие оставить предложениями и какие убрать.
114
+
115
+ ### 6. Подобрать AI-скилы, агентные инструкции и MCP
116
+
117
+ Подбирай рабочий набор AI-инструментов только после требований, стека, инструментов качества, архитектуры и правил. Эти решения задают контекст: какие источники нужны агенту, какие проверки уже закрыты кодовыми инструментами, где нужны отдельные роли и какие права доступа допустимы.
118
+
119
+ Подбери:
120
+ - какие AI-скилы, slash-команды, агентные инструкции или специализированные роли нужны сразу: старт проекта, продуктовый discovery, планирование, исполнение задач, ревью, security review, проверка доступности, работа с документацией, релизный процесс, domain-expert по предметной области;
121
+ - какие готовые скилы можно взять из доступных наборов, включая `eda-*`, Claude/Codex skills, командные инструкции репозитория или публичные каталоги, если они подходят;
122
+ - какие проектные скилы стоит написать специально под этот проект: например для доменной модели, архитектурных границ, API-контрактов, миграций, дизайн-системы, ревью UI, работы с данными или внутренними интеграциями;
123
+ - какие скилы и агентные роли отложить до появления кода, команды или повторяющейся проблемы;
124
+ - какие MCP-серверы помогут агенту: файловая система, GitHub/GitLab, Postgres/SQLite, браузер, Playwright, Figma, документация, API-клиенты, issue tracker, cloud provider;
125
+ - какие MCP не нужны, потому что выбранная архитектура, правила или инструменты качества уже закрывают задачу.
126
+
127
+ Для каждого скила или агентной инструкции укажи: какую работу закрывает, кто запускает, на каких источниках должен основываться, какой артефакт создаёт, чем проверять результат и почему обычного промпта недостаточно. Не ограничивайся `eda-*`: они только один из возможных источников.
128
+
129
+ Для каждого MCP укажи: зачем он нужен именно при выбранной архитектуре и правилах, какие данные откроет агенту, риски доступа, минимальные права и когда подключать. MCP с доступом к продакшену, секретам, платежам или персональным данным не включай по умолчанию: вынеси на отдельное подтверждение.
130
+
131
+ ### 7. Сохранить стартовый документ
132
+
133
+ Сохрани стартовый документ в `docs/project-starts/{YYYY-MM-DD}_{HH-MM}_{slug}.md`.
134
+
135
+ Формат:
136
+
137
+ ```markdown
138
+ ---
139
+ title: <заголовок>
140
+ date: <YYYY-MM-DD HH:MM>
141
+ status: draft
142
+ sources:
143
+ existing_rules: <путь или —>
144
+ existing_arch: <путь или —>
145
+ ---
146
+
147
+ # Старт проекта
148
+
149
+ ## Требования
150
+ <цель, аудитория, MVP, ограничения, не входит>
151
+
152
+ ## Принятые решения
153
+ | Область | Решение | Почему | Подтверждение |
154
+ |---|---|---|---|
155
+ | Стек | ... | ... | ответ пользователя / рекомендация принята |
156
+
157
+ ## Стек
158
+ | Компонент | Выбор | Версия / источник | Обоснование |
159
+ |---|---|---|---|
160
+
161
+ ## Инструменты качества
162
+ | Класс | Инструмент | Где запускать | Почему |
163
+ |---|---|---|---|
164
+
165
+ ## Архитектура
166
+ <выбранный вариант, границы модулей, поток данных, важные ограничения>
167
+
168
+ ## Правила
169
+ | Правило | Риск | Проверка | Статус |
170
+ |---|---|---|---|
171
+
172
+ ## AI-скилы и агентные инструкции
173
+ | Скил / инструкция | Источник | Когда использовать | Артефакт | Почему |
174
+ |---|---|---|---|---|
175
+
176
+ ## MCP
177
+ | MCP | Когда подключать | Права доступа | Риски |
178
+ |---|---|---|---|
179
+
180
+ ## Открытые вопросы
181
+ - <если есть>
182
+
183
+ ## Следующие шаги
184
+ 1. <создать/обновить docs/rules.md>
185
+ 2. <создать/обновить docs/arch.md>
186
+ 3. <запустить eda-plan для первого инкремента>
187
+ ```
188
+
189
+ Quality gate перед сохранением:
190
+ - есть требования и границы MVP;
191
+ - выбран один основной стек, а не список равных вариантов;
192
+ - инструменты качества покрывают форматирование, lint/static analysis/typecheck, тесты и CI или объясняют, почему часть не нужна;
193
+ - выбрана архитектура и описаны границы;
194
+ - правила имеют риск и способ проверки;
195
+ - есть список AI-скилов, агентных инструкций или ролей с назначением, источником и артефактом, подобранный под выбранную архитектуру и правила;
196
+ - MCP-серверы имеют обоснование, права и риски, связанные с выбранной архитектурой, данными и интеграциями;
197
+ - все значимые решения имеют подтверждение пользователя или явно помечены как автономная рекомендация;
198
+ - версии пакетов/ПО проверены или объяснено, почему это не требуется.
199
+
200
+ ### 8. Создать черновики правил и архитектуры
201
+
202
+ После сохранения стартового документа спроси `AskUserQuestion`: создать черновики `docs/rules.md`, `docs/arch.md` и `AGENTS.md` сейчас / только стартовый документ / выбрать отдельные документы.
203
+
204
+ Если пользователь подтвердил:
205
+ - не перезаписывай существующие файлы молча;
206
+ - для каждого существующего файла спроси: дополнить / создать рядом / оставить как есть;
207
+ - в `docs/rules.md` перенеси только принятые правила, а предложения оставь отдельным разделом;
208
+ - в `docs/arch.md` перенеси выбранную архитектуру, границы модулей, поток данных, данные и интеграции;
209
+ - в `AGENTS.md` добавь краткую карту проекта и ссылки на `docs/rules.md`, `docs/arch.md`, стартовый документ и команды проверки.
210
+
211
+ Если пользователь отказался, не создавай эти файлы и запиши отказ в финале.
212
+
213
+ ### 9. Финал
214
+
215
+ Короткое сообщение: путь к стартовому документу, какие решения приняты, какие документы созданы или не созданы, какие вопросы остались открытыми, какой следующий скил логично использовать (`eda-plan` для первого инкремента или `eda-docs` для доработки правил и архитектуры).
216
+
217
+ ## Чего НЕ делать
218
+
219
+ - Создавать приложение, писать код, миграции, конфиги, CI или устанавливать зависимости.
220
+ - Выбирать стек до требований.
221
+ - Давать один вариант без объяснения альтернатив, если решение значимое.
222
+ - Ставить MCP по умолчанию с широкими правами доступа.
223
+ - Подменять линтеры, статанализаторы, typecheck и тесты агентными проверками.
224
+ - Внедрять правила без согласия пользователя.
225
+ - Перезаписывать существующие `docs/rules.md`, `docs/arch.md` или `AGENTS.md` без отдельного подтверждения.
226
+ - Сохранять стартовый документ куда-либо кроме `docs/project-starts/`.
@@ -7,13 +7,6 @@ description: 'Создаёт новый git worktree рядом с основн
7
7
 
8
8
  Создаёшь отдельный git worktree для параллельной работы. Worktree всегда появляется рядом с основным проектом, а имя выбирается автоматически.
9
9
 
10
- ## Режимы вызова
11
-
12
- | Режим | Запуск | Что делает |
13
- |---|---|---|
14
- | С выбранной базой | `eda-worktree main` | Создаёт worktree от указанной ветки, тега или commit-ref |
15
- | С вопросом | `eda-worktree` | Спрашивает, от какой базы создать worktree |
16
-
17
10
  ## Вход из сообщения пользователя
18
11
 
19
12
  Текст рядом с вызовом скилла в текущем сообщении пользователя — главный вход. Сначала разбери именно его: базовую ветку или ref, ограничения и прямые указания.
@@ -50,10 +43,7 @@ git worktree list --porcelain
50
43
 
51
44
  Если это не git-репозиторий — остановись и сообщи. Основной worktree бери из первой записи `worktree <path>` в `git worktree list --porcelain`. Если список не удалось прочитать, используй `git rev-parse --show-toplevel`.
52
45
 
53
- Определи:
54
- - `$MAIN_WORKTREE` — путь основного worktree;
55
- - `$PROJECT_NAME` — basename от `$MAIN_WORKTREE`;
56
- - `$PROJECT_PARENT` — родительская папка `$MAIN_WORKTREE`.
46
+ Определи `$MAIN_WORKTREE` — путь основного worktree, `$PROJECT_NAME` — basename от него, `$PROJECT_PARENT` — родительская папка.
57
47
 
58
48
  ### 2. Выбрать базу
59
49
 
@@ -86,10 +76,7 @@ git rev-parse --verify "$BASE_REF^{commit}"
86
76
  git show-ref --verify --quiet "refs/heads/$BRANCH_NAME"
87
77
  ```
88
78
 
89
- Результат:
90
- - `$WORKTREE_NAME=$PROJECT_NAME-work-$n`;
91
- - `$BRANCH_NAME=$WORKTREE_NAME`;
92
- - `$WORKTREE_PATH=$PROJECT_PARENT/$WORKTREE_NAME`.
79
+ Результат: `$WORKTREE_NAME=$PROJECT_NAME-work-$n`, `$BRANCH_NAME=$WORKTREE_NAME`, `$WORKTREE_PATH=$PROJECT_PARENT/$WORKTREE_NAME`.
93
80
 
94
81
  Если папка уже есть, не перезаписывай её и не удаляй. Просто бери следующий номер.
95
82