3,583 papers
arXiv:2604.20436 73 22 апр. 2026 г. FREE

Shift-Up: структурированные требования как контекст для AI — вместо реактивного дебаггинга

КЛЮЧЕВАЯ СУТЬ
52% промптов при обычном подходе — это не разработка, а уборка. Почини то, что снова сломалось. Shift-Up позволяет вести сложные проекты с AI так, чтобы двигаться вперёд по плану — а не тушить пожары. Фишка: до первой строчки реализации вы прогоняете идею через каскад документов — требования, пользовательские истории, критерии приёмки в формате «Дано–Когда–Тогда», план фаз. Эти документы идут в контекст каждого рабочего запроса — и AI следует системе координат, а не угадывает что вы имели в виду.
Адаптировать под запрос

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


📋 Дайджест исследования

Ключевая суть

52% промптов при обычном подходе — это не разработка, а уборка. Почини то, что снова сломалось. Shift-Up позволяет вести сложные проекты с AI так, чтобы двигаться вперёд по плану — а не тушить пожары. Фишка: до первой строчки реализации вы прогоняете идею через каскад документов — требования, пользовательские истории, критерии приёмки в формате «Дано–Когда–Тогда», план фаз. Эти документы идут в контекст каждого рабочего запроса — и AI следует системе координат, а не угадывает что вы имели в виду.

Принцип работы

AI не дрейфует потому что он умный. Он следует паттернам из контекста. Расплывчатая задача — модель заполняет пробелы по-своему, каждый раз чуть иначе. Конкретные критерии приёмки убирают пробелы: нечего угадывать — нечего дрейфовать. Разница между «сделай хороший модуль курса» и «студент должен уметь описать три кейса применения нейросетей в маркетинге после этого блока» — это разница между свободным полётом модели и работой по чёткому чертежу. Метод работает в два этапа. Сначала один чат для структурирования: заметки → документ требований → пользовательские истории → критерии приёмки → план фаз. Потом отдельные сессии для реализации: каждый запрос несёт весь контекст из первого этапа.

Почему работает

Языковая модель — машина для завершения паттернов, а не думающий партнёр. Дай ей расплывчатую задачу — выполнит расплывчато, каждый раз по-разному. Именно отсюда классическая история: попросил одно, получил другое, стал исправлять, сломалось третье. Структурированный контекст — это рельсы: у модели физически нет места для дрейфа, если требования конкретны. Именно поэтому Shift-Up переворачивает соотношение: вместо 52% реактивных запросов («почини это») — 62% стратегических («иди дальше по плану»). Меньше фикса. Больше движения вперёд.

Когда применять

Сложные многосоставные проекты — запуск онлайн-курса, написание книги, разработка маркетинговой стратегии, создание продукта с нуля. Особенно подходит когда много зависимостей между частями и ошибка в середине дорого обходится. НЕ подходит для простых задач: время на структурирование не окупится, если задача решается за один запрос.

Мини-рецепт

1. Соберите сырые заметки: всё что знаете о проекте — кто аудитория, что нужно сделать, какие ограничения, что считать успехом. Голосовая расшифровка, поток мысли, записи с встречи — всё подходит.

2. Создайте документ требований: отдайте заметки в чат с просьбой структурировать их и отдельным блоком найти размытые формулировки и противоречия. Это первый артефакт.

3. Сгенерируйте пользовательские истории: попросите AI на основе документа требований создать истории по шаблону: «Как <кто>, я хочу <что>, чтобы <зачем>». Один запрос — полный список.

4. Сформулируйте критерии приёмки: для каждой истории — конкретные условия успеха по формату «Дано: [контекст] — Когда: [действие] — Тогда: [измеримый результат]». Чем конкретнее «тогда» — тем точнее попадёт AI.

5. Разбейте на фазы: попросите AI составить план из 5–10 последовательных фаз с зависимостями и списком критериев приёмки для каждой.

6. Реализуйте фазу за фазой в отдельной сессии: каждый запрос содержит весь контекст из шагов 2–5. Проверяете против критериев — прошло, идёте дальше. Не прошло — возвращаете конкретный вывод AI.

Главное правило Фазы 2: убрали контекст из запроса — модель начала дрейфовать обратно. Структура работает только пока она присутствует.

Примеры

[ПЛОХО] : Создай программу курса по нейросетям для маркетологов, 12 модулей
[ХОРОШО] : Сначала Фаза 1 — структурирование требований: Вот мои заметки после разговора с продюсером: [аудитория — маркетологи B2B, боль — не понимают как применять AI в работе, формат — видео + практика, срок — 3 месяца]. Преврати в документ требований. Отдельным блоком — размытые формулировки и противоречия. Затем: На основе документа составь пользовательские истории. Формат: «Как <тип маркетолога>, я хочу <что научиться делать>, чтобы <конкретная польза в работе>». Документ требований: [вставить] Затем: Для каждой истории напиши критерии приёмки. Формат — Дано: [условие] / Когда: [студент делает X] / Тогда: [измеримый результат]. Истории: [вставить] Потом Фаза 2 — реализация модуля: Создай программу Модуля 3. Для каждого урока укажи какой критерий приёмки он закрывает. ДОКУМЕНТ ТРЕБОВАНИЙ: [...] ПОЛЬЗОВАТЕЛЬСКИЕ ИСТОРИИ: [...] КРИТЕРИИ ПРИЁМКИ для модуля 3: [...]
Источник: Shift-Up: A Framework for Software Engineering Guardrails in AI-native Software Development — Initial Findings
ArXiv ID: 2604.20436 | Сгенерировано: 2026-04-23 05:25

Проблемы LLM

ПроблемаСутьКак обойти
Расплывчатый запрос AI заполняет пробелы произвольноГоворишь "сделай хороший курс". AI угадывает что ты имеешь в виду. Угадывает каждый раз чуть иначе. Итог: правишь, снова правишь, ломается третье. Не потому что модель плохая. Просто нет однозначных критериев — и она заполняет пустоту по-своемуПереведи идею в конкретные критерии приёмки ДО реализации. Формат: "Дано... Когда... Тогда...". Добавляй эти критерии в каждый запрос фазы реализации

Методы

МетодСуть
Каскад трансформации — цепочка запросов от идеи до планаПрогони идею через четыре шага в одном чате. Шаг 1: заметки документ требований (цель, аудитория, ограничения, критерии успеха). Сразу проси найти противоречия и размытые места. Шаг 2: требования пользовательские истории. Формат: Как <кто>, я хочу <что>, чтобы <зачем>. Шаг 3: истории критерии приёмки. Формат: Дано: [контекст] / Когда: [действие] / Тогда: [конкретный результат]. Шаг 4: всё выше план фаз с зависимостями. Почему работает: AI следует паттернам из контекста. Конкретные критерии не оставляют места для угадывания. Потом: в каждый запрос реализации вставляй полный результат четырёх шагов. Убрал контекст — AI снова начнёт дрейфовать. Когда применять: сложный многосоставной проект: курс, книга, стратегия, продукт. Для простых задач — избыточно
📖 Простыми словами

Shift-Up: A Framework for SoftwareEngineeringGuardrails inAI-native Software Development -- Initial Findings

arXiv: 2604.20436

Весь этот хайп вокруг вибкодинга — когда ты просто накидываешь промпты в чат и надеешься на чудо — на деле оказывается ловушкой. Проблема в том, что LLM работают не на логике, а на паттернах из контекста. Если ты даешь модели размытую задачу, она начинает гадать и заполнять пустоты своим «воображением». В итоге получается классический замкнутый круг: ты тратишь 10 минут на генерацию кода и еще два часа на то, чтобы выловить баги, которые модель сама же и создала. Исследования показывают, что при таком подходе больше половины всех запросов уходит на бесконечный фикс того, что сломалось в процессе.

Это как пытаться построить дом, просто объясняя рабочим на пальцах: «ну, сделайте как-нибудь красиво и чтобы не упало». В процессе ты будешь бегать по стройке, орать, что окно не там, а дверь открывается внутрь, и постоянно переделывать фундамент. Shift-Up предлагает перестать заниматься этой херней и сначала нарисовать нормальный чертеж. Вместо того чтобы сразу прыгать в код, ты тратишь время на структурированную фазу требований, создавая жесткие рамки, через которые AI просто не сможет перепрыгнуть.

Суть метода проста: ты скармливаешь модели не просто хотелки, а машиночитаемые ограничения. Это работает через три рычага: четкое описание результата, формат данных и критерии проверки. Например, если тебе нужна программа курса, ты не просишь «напиши что-нибудь для маркетологов», а задаешь конкурентное позиционирование и конкретные модули. Когда у AI есть такая «шпаргалка» в контексте, он перестает дрейфовать и галлюцинировать, потому что любое отклонение от заданных рамок для него становится ошибкой.

Хотя метод Shift-Up тестировали на разработке софта, этот универсальный паттерн применим везде, от маркетинга до юриспруденции. Суть в том, что современный AI — это не творец, а исполнитель, которому нужны жесткие гайдлайны. Если ты готовишь сложный отчет или планируешь запуск продукта, сначала потрать время на создание «матрицы» правил, и только потом пускай туда нейронку. Это превращает процесс из хаотичного гадания в предсказуемый конвейер, где результат на 90% соответствует ожиданиям с первой попытки.

Короче: вибкодинг — это путь в никуда, который сжирает время на рутинные правки. Будущее за теми, кто умеет выстраивать систему ограничений еще до того, как будет написана первая строчка текста или кода. Либо ты тратишь время на проектирование контекста, либо тратишь жизнь на исправление тупых ошибок нейросети. Shift-Up — это способ заставить AI работать по твоим правилам, а не надеяться, что он сегодня в хорошем настроении и выдаст что-то вменяемое.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с