Spec-First — старт проекта через спецификацию
Структурированный запуск проекта: сначала спека, потом код. Две фазы: Vision (что и зачем) → Blueprint (как и в каком порядке).
Онбординг
Скажи пользователю:
"Давай сначала опишем проект — я задам несколько простых вопросов, а потом сам составлю план сборки. Это займёт около 20 минут.
Без плана я могу начать делать не то, выбрать неподходящие технологии или забыть важное на полпути. С планом — собираем с первого раза, и если продолжим в новой сессии — контекст не потеряется."
Определи фазу
Все пути (docs/vision.md, docs/blueprint.md) — относительно корня проекта (текущая рабочая директория). Если папка docs/ не существует — создай.
Проверь контекст
| Код есть? | vision.md | blueprint.md | Действие |
|---|---|---|---|
| Нет | Нет | Нет | Vision с нуля |
| Нет | Да | Нет | Проверь что vision.md содержит секции "User Stories" и "MVP Scope". Если да → Blueprint. Если нет → дополни Vision |
| Нет | Да | Да | Покажи статус (задачи из blueprint), предложи начать сборку |
| Да | Нет | Нет | Ретроспека: изучи код (package.json/requirements.txt, главный файл, модели), предложи черновик ответов на Q1-Q9. Спроси: "По коду я понял так: [...]. Верно?" Дальше — стандартный Vision, но только по неотвеченным вопросам |
| Да | Да | Нет | Проверь vision.md на соответствие коду, затем Blueprint |
Аргументы
vision— фаза Vision (если vision.md есть — покажи и спроси: "Переделываем или правим?")blueprint— фаза Blueprint (если vision.md нет — предупреди и начни с Vision)- Любой другой текст — прими как описание проекта (ответ на Q1), начни Vision с Q2
Фаза Vision (что и зачем)
Задавай вопросы ПО ОДНОМУ. Жди ответа перед следующим. Если пользователь ответил сразу на несколько — прими все ответы, подтверди ("Понял: это [X], для [Y]"), продолжи с первого неотвеченного.
Вопросы (порядок: сначала мечта, потом рамки, потом проверка)
Q1: Что ты хочешь сделать? Опиши в одном-двух предложениях.
Q1.5: Зачем тебе это? Что изменится, когда проект заработает?
Q2: Для кого это? Ты сам, друзья, публичная аудитория?
Q3: Опиши главный сценарий: пользователь открывает → делает → видит. По шагам, как инструкцию.
Q4: Пользователь закрыл приложение и вернулся завтра. Что должно сохраниться? (история, настройки, ничего?)
Q5 (если в ответах упоминается AI/LLM/нейросеть/генерация): Как AI должен общаться? Формально, дружески? Есть ли запретные темы?
Q6: Есть ли что-то похожее на то, что ты хочешь? Чем твоё будет отличаться? Подсказка: если не знает — предложи 2-3 известных аналога из этой области. Если аналогов нет — запиши "Аналоги не выявлены" и продолжай.
Q7: Где это будет работать — телефон, компьютер, Telegram?
Q7.5: Нужны ли внешние сервисы (API, базы, платёжки)? Есть ограничения по бюджету?
Q8: Чего точно НЕ будем делать в первой версии? Подсказка: если затрудняется — предложи 3-4 типичных расширения для такого типа проекта и спроси: "Берём в v1 или оставим на потом?"
Q9: Представь — проект готов. Ты открываешь и проверяешь. Какие 3 вещи сделаешь чтобы убедиться что всё работает? (Пример: "напишу боту /start и получу приветствие")
Если пользователь затрудняется
Не оставляй вопрос без ответа. Помоги:
- Q1: предложи аналогию: "Это как [X], только для [Y]?"
- Q3: пройди вместе: "Представь — ты открыл. Что первое видишь?"
- Q4: предложи варианты: "Обычно для такого проекта сохраняют: тексты, настройки, историю действий, ничего. Что ближе?"
- Q5: предложи рамку: "Представь AI как сотрудника — он формальный и точный, или дружелюбный и разговорчивый?"
- Q6: подскажи 2-3 аналога из области. Если пользователь не знает — это нормально, запиши и двигайся дальше
- Q7: предложи дефолт: "Для начала — локально. Деплой добавим потом. Ок?"
- Q7.5: предложи типичные варианты: "Обычно для такого проекта нужны: база данных, API какого-то сервиса, хостинг. Что из этого актуально? По бюджету — бесплатные тарифы или готов платить?"
- Q8: подсказка уже встроена в вопрос. Если затрудняется — предложи 3-4 типичных расширения и спроси что оставить на потом
- Q9: предложи 3-4 проверки из контекста проекта, спроси какие подходят
Если после двух попыток ответа нет — предложи разумный дефолт и запиши в секцию "Риски" как допущение.
Генерация vision.md
После всех ответов сгенерируй docs/vision.md:
# Vision: [Название]
## Одной строкой
## Проблема
## Для кого
## User Stories (минимум 2, из ответов на Q3; если мало — спроси ещё)
## Аналоги и отличия (из Q6; если аналогов нет — "Не выявлены")
## MVP Scope (чеклист фич, каждая помечена [MUST], [NICE] или [LATER])
## НЕ делаем в v1
## Проверки готовности (превращай ответы Q9 в конкретные проверки с числами — это твоя работа, не пользователя)
## Данные и состояние (из Q4)
## AI-поведение (если применимо, из Q5)
## Риски (минимум 1 запись)
Gate → Blueprint
Не переходи дальше пока не выполнено:
- Минимум 2 сценария "делаю X → получаю Y" (из Q3/Q9)
- Хотя бы 1 конкретная проверка (не "чтобы работало", а действие → результат)
- Есть хотя бы 1 пункт в "НЕ делаем"
- Пользователь подтвердил Vision
Если не хватает — скажи что именно и задай уточняющий вопрос.
Если пользователь настаивает пропустить: "Понимаю, хочется быстрее. Но без [недостающее] через 2 часа упрёмся в переделку. Давай за 2 минуты закроем — вот вопрос: [...]". Если настаивает второй раз — пропусти, но запиши пропущенное в "Риски" с пометкой [GATE SKIP].
Когда gate пройден: "Vision готов. Сейчас подготовлю план сборки — тебе нужно будет только проверить и одобрить."
Фаза Blueprint (как строим)
Прочитай docs/vision.md. Проверь наличие обязательных секций. Если чего-то нет — дополни через вопросы Vision прежде чем продолжать.
Проходи шаги ИНТЕРАКТИВНО — каждый покажи и жди одобрения:
Шаг 1. Технологии — предложи 2 готовых набора технологий. Объясни разницу простым языком: не "React vs Vue", а "Вариант 1 загружается быстрее, Вариант 2 проще и дешевле". Дай рекомендацию. Жди выбора.
Шаг 2. Какие данные хранит приложение — покажи наглядно таблицей (сущности, поля). Обязательно учти ответ на Q4 (что сохраняется между сессиями). Спроси: "Ничего не забыл?" Жди ответа.
Шаг 3. Структура проекта — дерево папок и файлов. Жди ответа.
Примечание по дизайну: если проект имеет визуальный интерфейс (сайт, приложение) — упомяни что дизайн прорабатывается отдельно, перед началом вёрстки. Не углубляйся — это не задача этого скилла. Достаточно добавить в план сборки задачу-placeholder: "Подготовить дизайн/прототип (отдельный этап)".
Шаг 4. Деплой — предложи 1-2 варианта где будет жить приложение (Vercel, VPS, локально, Telegram-хостинг и т.д.). Учти ответы на Q7/Q7.5 (платформа, бюджет). Если проект чисто локальный — скажи "Деплой не нужен, запускаем локально" и двигайся дальше. Жди ответа.
Шаг 5. План сборки — 3-15 задач в правильном порядке. Каждая задача в формате:
1. [ ] Название задачи (зависит от N)
Файлы: file1.js, file2.js
Готово когда: [конкретная проверка — что можно увидеть/запустить]
Каждая задача понятна без технических знаний. Если >15 — предложи разбить на этапы. Жди ответа.
Шаг 6. Чек-лист проверки — минимум 5 проверок "Делаю X → Вижу Y" (из Q9 + дополнительные). Жди ответа.
Шаг 7 (если в vision есть AI-поведение): добавь в стек AI-провайдер, задачу на системный промпт, 2+ проверки на AI-поведение. Жди ответа.
Шаг 8. Свежий взгляд — после шагов 1-7 предложи:
"Хочешь, я взгляну на весь план свежим взглядом — проверю, не упустил ли чего?"
Если пользователь согласен — перечитай vision.md и все шаги Blueprint заново. Проверь:
- Полнота: все ли фичи из MVP Scope попали в задачи? Нет ли обсуждённого в Vision, что потерялось?
- Порядок: задачи стоят в правильной последовательности? Зависимости не нарушены?
- Конкретность: каждый "Готово когда" — это проверяемое действие, а не "должно работать"?
- Фазы разработки: учтены ли все этапы — настройка, основная логика, интеграции, деплой, проверки?
- Соответствие Vision: blueprint не противоречит scope, антископу или ограничениям?
Покажи результат: что ок, что предлагаешь исправить. Если есть правки — внеси после одобрения. Жди ответа.
Если пользователь отказался — двигайся дальше без задержки.
Генерация blueprint.md
После одобрения (или пропуска шага 8) — сгенерируй docs/blueprint.md:
# Blueprint: [Название]
## Tech Stack (с обоснованием)
## Структура проекта (дерево)
## Data Model (таблицы)
## API / Endpoints (если есть)
## Деплой (куда, как, бюджет)
## Задачи (чеклист: название, файлы, "готово когда")
## Проверки готовности (минимум 5)
Gate → код
- Стек одобрен
- 3-15 задач
- Минимум 5 проверок готовности
- Данные описаны
- Нет противоречий с vision.md
Если пользователь настаивает пропустить: те же правила — одна попытка убедить, при втором отказе пропустить с записью в blueprint.md секции "Пропущенные проверки".
Когда gate пройден — обнови CLAUDE.md проекта (дополни, не перезаписывай если уже существует):
- Описание проекта (из vision)
- Стек и структура (из blueprint)
- Boundaries: Always (тесты, .env, коммиты, сверяться с docs/blueprint.md перед началом работы) / Ask First (новые зависимости, миграции БД) / Never (секреты в коде, удаление данных)
- Ссылки на docs/vision.md и docs/blueprint.md
Скажи: "План готов! Скажи 'поехали' — и начинаю собирать по шагам."
При старте сборки: если доступен скилл superpowers:executing-plans — используй его. Если нет — бери задачи из blueprint.md по порядку, реализуй по одной, отмечай [x] после каждой.
Навигация между фазами
Возврат из Blueprint в Vision: Если пользователь хочет изменить scope/сценарий во время Blueprint:
- Мелкая правка (добавить/убрать фичу) → обнови vision.md, продолжи Blueprint
- Меняется суть (другая аудитория, другой сценарий) → вернись к нужному вопросу, пересоздай vision.md, проверь gate
После любого изменения vision.md — проверь, не противоречит ли текущий blueprint. Если да — предупреди и предложи пересобрать затронутые секции.
Антипаттерны
Проверяй на каждом ответе. Если замечаешь — сразу мягко предупреди:
- "Ещё одну фичу" → покажи сколько компонентов добавится, предложи v1.1
- "Сделай чтобы работало" → уточни ЧТО и КАК конкретно
- "Потом разберёмся" → запиши в риски vision.md
- Scope > 15 задач → предложи разбить на этапы