Фича от спеки до релиза за один проход
Orchestrator-промт: ведёт фичу через 7 фаз (spec → arch → impl → tests → docs → PR → release notes) за один заход. Заменяет 5-7 разрозненных промтов и держит контекст между фазами.
Проведи фичу через все 7 фаз за один проход. Контекст:
- Фича: {{feature_brief}}
- Кодовая база: {{codebase_context}}
- Аудитория: {{audience}}
База: это orchestrator — один большой ответ, в котором последовательно идут 7 фаз. Каждая фаза имеет свой артефакт и checkpoint для следующей фазы. Цель — не «сделать всё идеально», а не потерять контекст между шагами, на которые иначе ушло бы 5-7 отдельных промтов с пересказом одного и того же.
Когда применять
Подходит:
- Фича размером 1-50 файлов / 100-1500 строк диффа
- Scope понятен на 80%+ (есть PRD или хотя бы внятный one-pager)
- Команда из 1-3 человек, ревью внутри 24ч
- Стек, который ты уже понимаешь (нет «параллельной» задачи разобраться с фреймворком)
- Дедлайн «к концу дня / завтра» — нужна скорость без потери качества
НЕ подходит:
- Мега-эпик (>2 недель, >50 файлов) — раздели на 3-5 фич, каждую через этот промт отдельно
- Требования размыты («сделай красиво», «улучши UX») — сначала через discovery / spec-промт
- R&D / эксперимент (не знаешь, заработает ли подход) — сначала spike branch, потом этот промт
- Migrations / breaking changes на уровне API всей компании — нужен RFC и согласование
- Хотфикс прод-инцидента — другой жанр (root cause → minimal fix → postmortem)
7 фаз orchestrator'а
Phase 1: Spec
Что: PRD-сжатый формат на одну страницу. Цель — зафиксировать, что именно строим, до того как код написан и его уже жалко выкидывать.
Структура:
- User story — одна строка: «Как {{audience}}, я хочу X, чтобы Y»
- Success criteria — 3-5 проверяемых пунктов («после релиза время на задачу N падает с 5 мин до 30 сек», «error rate < 0.1%»)
- Non-goals — что мы НЕ делаем в этой итерации (важнее, чем кажется — защита от scope creep)
- Edge cases — список 5-10 пунктов: пустой input, max length, concurrent calls, offline, права/роли, разные локали
- Open questions — то, на что нет ответа сейчас, но решение нужно до Phase 2
Output: markdown-блок ## Spec на 30-50 строк. Если open questions блокируют — стоп, спросить, не идти дальше.
Phase 2: Architecture
Что: превратить спеку в технический план. Не «диаграмма ради диаграммы», а ответы на вопросы «что трогаем», «что новое», «где риск».
Структура:
- Типы —
TypeScript interface / pydantic / Go structдля главных сущностей. Конкретно, не «UserModel { ... }» - Data flow — откуда приходит запрос → через какие слои → куда уходит ответ. 3-7 шагов
- Sequence diagram (ASCII) — для нетривиального flow (несколько сервисов / async)
- Новые файлы — список путей с одной строкой назначения каждый
- Изменения существующих — список файлов + что именно правим
- Риски + rollback plan — 3-5 рисков (производительность, миграция данных, обратная совместимость) + что делаем, если в проде что-то пошло не так (feature flag? миграция назад? откат коммита?)
Output: ## Architecture с ADR-mini (контекст / решение / альтернативы / последствия), file tree diff, sequence diagram, risks. ~60-100 строк.
Phase 3: Implementation plan
Что: разбить работу на 5-15 атомарных коммитов. Атомарный = сам по себе компилируется, тесты проходят, ревьюверу понятно за 5 минут.
Структура:
- Numbered list задач (1 → N)
- Для каждой: что меняется, какие файлы, какие тесты идут именно с этим коммитом
- Зависимости явно (
#3 после #2, потому что использует тип из #2) - Помечай задачи как [code], [test], [docs], [refactor]
- Если задача > 200 строк диффа — раздели
Output: ## Implementation plan — список вида 1. [code] Добавить тип Order в src/types/order.ts; тесты: src/types/order.test.ts (round-trip serialize). 5-15 пунктов.
Phase 4: Implementation
Что: написать код по списку из Phase 3, в том же порядке. Один коммит — одна задача.
Правила:
- Diff минимальный — не трогать unrelated файлы, даже если «там тоже плохо» (это другая задача)
- Не вводить новые зависимости без явной причины — старая зависимость, делающая 80% работы, лучше новой с 100%
- Следовать конвенциям из {{codebase_context}} (naming, exports, file structure)
- Если по ходу всплыло, что в Phase 2 ошибка — стоп, обновить Phase 2, не «фиксить на лету»
Output: ## Implementation — для каждой задачи из плана: имя файла + diff (или полный файл, если новый). Это самая длинная секция — 200-800 строк ОК.
Phase 5: Tests
Что: покрыть фичу тестами на 4 уровнях. Не «один happy path», не «100% coverage любой ценой» — а смысловое покрытие.
Уровни:
- Unit — для каждой новой чистой функции (input → output). Быстрые, без I/O
- Integration — для feature flow целиком (HTTP request → DB → response, или UI action → state → render)
- Edge cases — null, undefined, пустой массив/строка, очень большой input, concurrent calls, race conditions, timeouts
- Regression — если фича связана с прошлыми багами или меняет существующий код — тест, который сломался бы при возврате старого поведения
Output: ## Tests — тестовые файлы (полностью), + короткая таблица «что покрыто / что НЕ покрыто и почему» (например, «не покрыто: интеграция с третьим сервисом X, потому что mocking стоит дороже самого теста — оставлено на staging»).
Phase 6: Documentation
Что: обновить документацию до PR, не «потом». «Потом» = никогда.
Что обновляем:
- README delta — если фича меняет setup / запуск / конфиг — обнови README. Точечно, не «перепиши всё»
- API docs — если изменился публичный API (HTTP endpoint, exported function, CLI flag) — обнови schema/docs
- Inline comments — добавлять ТОЛЬКО для «почему», не для «что». «Что» должно быть видно из кода. «Почему» — это бизнес-причина, ссылка на тикет, неочевидное ограничение
- CHANGELOG entry — одна строка в формате проекта (Keep a Changelog / Conventional Commits)
- Migration guide — если breaking change, отдельный блок «как мигрировать»
Output: ## Documentation — список файлов с конкретными правками.
Phase 7: PR & release notes
Что: упаковать всё в PR description (для команды) и release note (для пользователя). Это разные тексты для разных аудиторий.
PR description:
- Problem — 2-3 строки, какую боль решаем (со ссылкой на тикет)
- Solution — 3-5 bullet'ов, что сделано на уровне архитектуры
- Testing — как ревьювер может проверить локально (команды, URL, тестовые данные)
- Risks — что может пойти не так, на что смотреть в первые часы после релиза
- Rollback — как откатить, если что (feature flag off / revert PR / data migration backward)
- Screenshots / GIF — если UI
Release note (для пользователя):
- One-liner в стиле продукта (не «refactored XYZ module», а «теперь N-задача занимает 30 секунд вместо 5 минут»)
- Screenshot если UI
- Кому видно — всем / behind flag / только enterprise
Output: ## PR & Release Notes — два готовых текста, можно копировать в GitHub и в changelog продукта.
Контракт между фазами
Каждая фаза заканчивается checkpoint — компактным резюме, которое явно передаётся в следующую. Это страховка от «забыл, что решили в Phase 2».
| Из → В | Что в checkpoint |
|---|---|
| Phase 1 → Phase 2 | Spec markdown целиком (1 страница) |
| Phase 2 → Phase 3 | Архитектурное решение в 3-5 буллетов + полный список затронутых файлов |
| Phase 3 → Phase 4 | Numbered task list (1→N) — порядок реализации |
| Phase 4 → Phase 5 | Список путей с реализованным кодом + список публичных функций/эндпоинтов |
| Phase 5 → Phase 6 | Таблица «что покрыто тестами / что осталось вне покрытия и почему» |
| Phase 6 → Phase 7 | Список обновлённых doc-файлов (README, API, CHANGELOG) |
В каждой фазе первая строка — это входящий checkpoint от предыдущей. Так читающий ревью видит цепочку, не пролистывая весь ответ.
Формат вывода
В одном response — все 7 фаз последовательно, с заголовками ## Phase N: Name. Каждая фаза = один минимально полный артефакт (не «черновик», не «TODO», а то, что можно сразу положить в репозиторий или PR).
Длинный output ОК и ожидаем — это и есть смысл orchestrator'а: вместо 7 отдельных промтов с пересказом контекста получаешь один длинный, но связный.
В конце короткий блок ## Definition of Done — чек-лист на 7 пунктов («Phase N done because…»), чтобы было видно, что ничего не пропущено.
Анти-паттерны
- ❌ Прыгать сразу в Phase 4 (код) без Phase 1-3 → переделки на следующий день, когда становится ясно, что не учли edge case
- ❌ Тесты «потом добавлю» → не добавляются никогда, особенно если PR уже approved
- ❌ PR без release notes → support и marketing не знают, что отвечать пользователю; фича «есть, но как бы нет»
- ❌ Документация только в коде / в комментариях → внешние пользователи её не видят, читают только тех, кому залезть в репо
- ❌ Сразу 30 коммитов в один большой → review невозможен, ревьювер ставит approve «на доверии» и пропускает баги
- ❌ Phase 2 (arch) без рисков и rollback plan → в проде что-то ломается, откатить нечем, инцидент длится часами
- ❌ Менять Phase 1 (spec) на ходу в Phase 4 → теряется originally agreed scope, ревью становится про «а это вообще должно тут быть?»
- ❌ Пропустить checkpoint между фазами → к Phase 5 уже не помнишь, какие edge cases были в Phase 1
- ❌ Все 7 фаз для багфикса в одну строку → overkill, используй короткий root-cause-fix промт
- ❌ Делать все 7 фаз параллельно в разных вкладках → теряется именно то, ради чего этот промт нужен — единый контекст
Превратить спецификацию фичи в план реализации
Декомпозиция требования на конкретные шаги, файлы, типы и порядок изменений.
Мастер-аудит сайта: 6 измерений за один проход
Orchestrator-аудит по 6 направлениям: UX, accessibility, performance, SEO, brand consistency, security. Quick scan + deep dive + приоритизированный план + композитная оценка + roadmap.
Полный функциональный QA: end-to-end за один проход
Orchestrator: 8 фаз QA-аудита продукта за один проход — smoke → console → routes → matrix → forms → cross-browser → error/permissions → data integrity. Pre-release-checklist для зрелого продукта.