TL;DR
Вибкодинг (vibe coding — разработка через интуитивный промптинг без подготовки) даёт быстрые прототипы, но тонет в исправлениях: больше половины всех запросов уходит не на создание нового, а на ручной поиск и фикс того, что сломалось. Shift-Up разворачивает этот процесс: сначала вы вкладываетесь в структурированную фазу требований — документируете что нужно, в каком формате, по каким критериям проверять. Потом эти документы идут в контекст к AI как машиночитаемые ограничения.
Главная находка: в стандартном промптинге 52% запросов — реактивные ("почини вот это, тут сломалось"). В Shift-Up — 62% запросов это "иди дальше по плану". AI перестаёт дрейфовать не потому что лучше генерирует по интуиции, а потому что у него есть жёсткая система координат — конкретные критерии успеха, которым надо соответствовать.
Метод работает в два этапа: сначала вы через цепочку промптов трансформируете расплывчатую идею в структурированный контекст (требования → пользовательские истории → критерии приёмки → план фаз). Потом каждую фазу реализуете с AI, который сверяется с этими критериями, а не угадывает что вы имели в виду.
Схема метода
ФАЗА 1: СТРУКТУРИРОВАНИЕ (один чат, до реализации)
ШАГ 1: Интервью с собой/заказчиком → черновые заметки
ШАГ 2: Заметки → SRS (документ требований)
+ Уточняющий промпт: найти противоречия и размытые места
ШАГ 3: SRS → пользовательские истории по шаблону
"Как <кто>, я хочу <что>, чтобы <зачем>"
ШАГ 4: Истории → критерии приёмки в формате Given-When-Then
("Дано... Когда... Тогда...")
ШАГ 5: Всё выше → план фаз реализации с зависимостями
ФАЗА 2: РЕАЛИЗАЦИЯ (цикл по фазам, отдельная сессия)
ШАГ 6: Берёшь фазу из плана → просишь AI сделать,
строго опираясь на контекст из Фазы 1
ШАГ 7: Проверяешь против критериев приёмки
→ прошло → следующая фаза
→ не прошло → отдаёшь вывод обратно AI как контекст
ШАГ 8: Повторяешь до прохождения критериев → закрываешь фазу
⚠️ Обе фазы выполняются в обычном чате. Никакого кода для применения принципа не нужно.
Пример применения
Задача: Запустить на Skillbox курс по нейросетям для маркетологов. Вместо того чтобы сразу просить AI "напиши программу курса из 12 модулей" — что даст что-нибудь шаблонное — применяем Shift-Up.
Промпт для ШАГ 2 (уточнение требований):
Вот мои заметки после разговора с продюсером курса:
[вставить заметки — что обсуждали, кто аудитория,
какие боли, какой формат, что должен уметь студент после]
Преврати это в структурированный документ требований к курсу.
Потом найди в нём размытые формулировки и противоречия
— отметь их отдельным блоком.
Промпт для ШАГ 3 (пользовательские истории):
На основе документа требований составь пользовательские истории.
Формат каждой: "Как <тип студента>, я хочу <что научиться делать>,
чтобы <конкретная польза в работе>".
Документ требований:
[вставить результат предыдущего шага]
Промпт для ШАГ 4 (критерии приёмки):
Для каждой пользовательской истории напиши критерии приёмки
в формате Given-When-Then:
- Дано: [контекст и условия]
- Когда: [студент делает X]
- Тогда: [ожидаемый результат]
Пользовательские истории:
[вставить список из предыдущего шага]
Промпт для ФАЗЫ 2 (реализация конкретного модуля):
Создай детальную программу Модуля 3 курса.
Строго опирайся на контекст ниже.
Разбей на конкретные уроки с хронометражем и форматом.
Для каждого урока укажи, какие критерии приёмки он закрывает.
ДОКУМЕНТ ТРЕБОВАНИЙ: [...]
ПОЛЬЗОВАТЕЛЬСКИЕ ИСТОРИИ: [...]
КРИТЕРИИ ПРИЁМКИ для этого модуля: [...]
Результат:
В Фазе 1 AI выдаст структурированный документ с конкретно сформулированными требованиями, список историй в едином формате и чёткие критерии "как поймём что модуль работает". В Фазе 2 каждый модуль будет привязан к критериям — вы сразу видите, что закрыто, что нет, и можете точечно давать обратную связь. Итерации станут короткими и конкретными: не "переделай", а "критерий 7 не выполнен, вот что нарушено".
Почему это работает
AI не дрейфует потому что умный. Он следует паттернам из контекста. Чем расплывчатее контекст — тем больше модель угадывает, заполняет пробелы по-своему, и каждый раз чуть иначе. Отсюда типичная история вибкодинга: попросил сделать одно, получил другое, стал исправлять, сломалось третье.
Структурированный контекст — это система координат, которую модель не может проигнорировать: конкретные критерии, конкретные форматы, конкретные зависимости. Вместо "сделай хороший курс" — "сделай так, чтобы студент мог описать три кейса применения AI в маркетинге после модуля 2". Второе однозначно, первое — нет.
Рычаги управления: - Детализация критериев приёмки → чем конкретнее Given-When-Then, тем точнее AI попадает в цель - Контекст в каждом запросе → если убрать документ требований из Фазы 2, AI начнёт дрейфовать обратно - Размер фазы → большие фазы дают больше свободы AI, маленькие — больше контроля
Шаблон промпта
Фаза 1: Структурирование требований
Ты — аналитик проекта. Помоги мне структурировать {название проекта}.
ШАГ 1 — Документ требований:
На основе моих заметок создай структурированный документ требований.
Включи: цель, целевую аудиторию, ключевые функции/результаты,
ограничения, критерии успеха.
Потом найди размытые формулировки и противоречия — отметь отдельно.
Мои заметки:
{ваши заметки о проекте}
---
ШАГ 2 — Пользовательские истории:
На основе документа требований создай пользовательские истории.
Формат: "Как <роль>, я хочу <действие>, чтобы <польза>".
---
ШАГ 3 — Критерии приёмки:
Для каждой истории напиши критерии приёмки:
- Дано: [контекст]
- Когда: [действие]
- Тогда: [измеримый результат]
---
ШАГ 4 — План фаз:
Разбей проект на {число_фаз} последовательных фаз.
Формат каждой: название, цель, ключевые задачи,
критерии приёмки которые закрывает, зависимости от других фаз.
Фаза 2: Реализация фазы
Реализуй {название фазы} из плана проекта.
ОБЯЗАТЕЛЬНО опирайся на весь контекст ниже.
Разбей на последовательные подзадачи.
Для каждой подзадачи укажи, какой критерий приёмки она закрывает.
ДОКУМЕНТ ТРЕБОВАНИЙ:
{вставить из Фазы 1}
ПОЛЬЗОВАТЕЛЬСКИЕ ИСТОРИИ (релевантные этой фазе):
{вставить из Фазы 1}
КРИТЕРИИ ПРИЁМКИ (для этой фазы):
{вставить из Фазы 1}
ПЛАН ФАЗ (для понимания зависимостей):
{вставить из Фазы 1}
Плейсхолдеры:
- {название проекта} — курс, стратегия, книга, лендинг, что угодно сложное
- {ваши заметки о проекте} — записи с встречи, голосовой расшифровки, идеи в виде потока мысли
- {число_фаз} — обычно 5-10, зависит от сложности
- {название фазы} — конкретная фаза из плана, например "Блок 2: разработка учебных материалов"
🚀 Быстрый старт — вставь в чат:
Вот шаблон Shift-Up — метода структурированного планирования сложных проектов с AI.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить все поля шаблона.
[вставить шаблон выше]
LLM спросит что за проект, кто аудитория, какие ограничения, что считать успехом — потому что без этого она не сможет сгенерировать конкретные критерии приёмки. Она возьмёт структуру из шаблона и адаптирует под вашу задачу.
Ограничения
⚠️ Высокие начальные затраты: Фаза 1 требует значительного времени и усилий ДО начала реализации. Для простых задач это избыточно — метод оправдывает себя только на сложных, многосоставных проектах.
⚠️ Требует дисциплины контекста: Если в Фазе 2 вы не передаёте полный контекст из Фазы 1 с каждым запросом, AI начинает дрейфовать так же, как при вибкодинге. Структура работает только если она постоянно присутствует в контексте.
⚠️ Предварительные результаты: Исследование — exploratory (разведочное), малая выборка, один тип задач (разработка веб-приложения). Насколько метод снижает дрейф на сложных проектах — авторы честно признают: проверить не удалось, задача оказалась слишком типичной.
⚠️ Адаптация для не-разработчиков: Конкретные артефакты — BDD, C4, ADR — это инженерные форматы. Принцип переносится на любые проекты, но конкретные форматы нужно адаптировать под свой контекст самостоятельно.
Ресурсы
Название работы: Shift-Up: A Framework for Software Engineering Guardrails in AI-native Software Development — Initial Findings
GitHub репозитории: - Structured vibe coding: github.com/JYU-GENIUS-project/VibeCode1 - Shift-Up approach: github.com/JYU-GENIUS-project/snackbar_v1
Авторы: Petrus Lipsanen, Liisa Rannikko, François Christophe, Konsta Kalliokoski, Vlad Stirbu, Tommi Mikkonen
Университет: University of Jyväskylä, Финляндия
Поддержка: Business Finland, проекты ITEA GENIUS и ANSE
