Инструменты установлены, выбор между ними понятен. Дальше начинает решать «как просить ИИ». Даже с тем же Claude Code качество результата меняется в разы от одного лишь способа указания. В этой главе мы освоим искусство «грамотно просить» вокруг двух главных стилей работы с ИИ — вайб-кодинга, когда легко создаёшь в разговоре, и спец-ориентированной разработки, когда сначала фиксируешь спецификацию и заставляешь создать точно. Здесь — самая суть ИИ-программирования.

Что вы освоите в этой главе

Девиз — «мало и исследовать — vibe, много и точно — spec»

Понять два стиля
Уловите достоинства и ловушки вайб-кодинга и спец-ориентированной разработки.
Выбирать по ситуации
По масштабу и цели создаваемого решать, каким стилем просить.
Писать хорошие указания
Освоите шаблон понятного промпта — конкретика, контекст, примеры вывода.

Качество указания определяет результат

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

Вайб-кодинг — создавать в разговоре

Вайб-кодинг (vibe coding) — это стиль, при котором не фиксируешь детальный дизайн заранее, а создаёшь методом проб и ошибок, разговаривая с ИИ. Грубо говоришь «хочу что-то в таком духе», смотришь на результат и, наслаивая диалог — «чуть больше вот так», «поправь здесь», — воплощаешь по настроению (vibe). Главная привлекательность — лёгкость, исследовательский дух и возможность одним махом воплотить идею.

🎨 Образ: ощущение, будто ищешь форму, разминая глину, а не чертишь план. «Думаешь, создавая», поэтому даже ещё не оформившуюся в голове идею можно тут же проверить, взявшись за дело.

Перечислим уместные ситуации и ловушки, которых стоит остерегаться.

✅ Уместные ситуации
  • Малое: разовый скрипт, простой инструмент, приложение в один экран.
  • Прототип, проба: когда хочется взглянуть на форму и решить. Эксперимент, который не жалко выбросить.
  • Учёба, разминка: когда трогаешь новую технологию, чтобы ощутить её.
⚠ Ловушки
  • Общий дизайн плывёт: с каждым разговором курс колеблется, целостность легко теряется.
  • С ростом масштаба ломается: чем больше файлов, тем сложнее и ИИ, и человеку охватить всё целиком.
  • Содержимое становится «чёрным ящиком»: накапливается код, который работает, но неясно почему.

💡 В двух словах: вайб-кодинг непобедим для «быстро попробовать», но не годится для «растить крупное, долго поддерживать». Три слова-ориентира — малое, одноразовое, исследование — помогут реже ошибаться.

Спец-ориентированная разработка — сначала решить, потом точно создать

Спец-ориентированная разработка (spec-driven development) — стиль, противоположный вайб-кодингу. Прежде чем начать писать код, вы сводите в документ «что и как создавать» в виде спецификации и передаёте эту спецификацию ИИ, чтобы он точно реализовал. Не беседуете наобум, а гоняете ИИ по согласованному чертежу.

Подход прост. Сначала вместе с ИИ составляете спецификацию, кладёте её в проект (чаще всего как файл) и ведёте реализацию, заставляя ИИ на неё ссылаться.

ШАГ 1
Написать спецификацию

Изложите словами цель, функции, вход-выход и ограничения. Быстрее — дать ИИ сделать черновик, а потом поправить.

ШАГ 2
Согласовать

До реализации сами прочитайте спецификацию, устраните пробелы и противоречия. Здесь развилка качества.

ШАГ 3
Создать по спецификации

Указываете «реализуй по этой спецификации». Если отклонился — вернитесь к спецификации и поправьте.

✅ Уместные ситуации
  • Чуть более крупное: разработка через несколько функций и файлов.
  • Упор на качество: то, что нежелательно ломать потом, что долго поддерживать.
  • Читают команда или другие: спецификация становится общей точкой опоры.
🧭 Приёмы
  • Не гонитесь за совершенством с самого начала — начните с маленькой спецификации и растите её.
  • Спецификацию вы обязательно читаете. Оставленная на ИИ спецификация обычно в дырах.
  • Если реализация отклонилась, не латайте наобум в разговоре, а сначала поправьте спецификацию и переделайте.

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

Выбор — мало и исследовать или много и точно

Речь не о том, какой стиль лучше. Правильно — выбирать по «масштабу» и «цели» создаваемого. Сопоставим два стиля по осям.

🎨 Вайб-кодинг
Мало, исследование
МасштабМалый
ЦельПроба, исследование, учёба
Как ведётсяПробы и ошибки в разговоре
СкоростьОчень высокая
Слабое местоЛомается при росте
📐 Спец-ориентированная разработка
Много, точно
МасштабСредний — крупный
ЦельКачество, поддержка, продакшн
Как ведётсяСпецификация → реализация
СкоростьМедленный старт
Слабое местоТяжело для мелочей

✅ На практике «ходят туда-обратно». Не нужно жёстко выбирать одно из двух. Сначала быстро сделать прототип вайб-кодингом, а поймав ощущение «пойдёт», переложить в спецификацию и перейти к основной реализации — этот поток на практике самый мощный. Маленькое исследование — vibe, стадия выращивания — spec. Переключайте стиль внутри одного проекта.

5 приёмов хорошего указания

В любом из стилей результат растёт, если указание (промпт), которое вы даёте ИИ, хорошее. Усвоим по карточкам 5 базовых приёмов, применимых уже сегодня. Углубление — в практическом руководстве по промпт-инжинирингу.

① Конкретизировать

Не «сделай нормально», а конкретно, что и как нужно. Чем явнее числа, условия и объекты, тем выше точность.

② Дать контекст

Сообщите язык, фреймворк, связанные файлы и ограничения. Чем больше знает фон, тем точнее ИИ.

③ По одной задаче

Не просите всё сразу. Если просить по одной, разбив на мелкое, и проверять, и править становится легче.

④ Показать ожидаемый вывод

Заранее покажите желаемую форму (имя функции, возвращаемое значение, пример вывода, формат). Разделив цель, реже промахнётесь.

⑤ Править и повторять

Не цельтесь в идеал с первого раза. Быстрее смотреть вывод и наслаивать конкретные правки «здесь вот так».

Одними словами это уловить трудно, поэтому поставим один и тот же запрос в виде «плохого указания» и «хорошего указания» рядом.

❌ Плохое указание

«Сделай функцию входа.»

Ни язык, ни место хранения, ни поведение при успехе/неудаче неизвестны. ИИ заполняет всё догадками и возвращает код, расходящийся с вашим замыслом. Источник переделок.

✅ Хорошее указание

«Добавь в проект на Laravel функцию входа по email и паролю. Используй существующую таблицу users. При успешной аутентификации — на /dashboard, при неудаче — показать сообщение об ошибке. Пароль — под существующий способ хеширования. Сначала предложи только routes и Controller, реализацию — после моей проверки.»

Явны цель, контекст, условие успеха, объём вывода и порядок действий. Все 5 приёмов внутри.

🧩 Шаг вперёд: подход, при котором проектируешь не только «что передать ИИ», но и то, какую информацию и как доносить по всему проекту, называют контекст-инжинирингом, а подход, при котором целиком выстраиваешь среду работы ИИ (инструменты, права, файлы-инструкции), — harness-инжинирингом. Когда захотите расти дальше, загляните.

Когда ИИ игнорирует правила

В Claude Code есть механизм: собрать указания для конкретного проекта в файл вроде CLAUDE.md и заставить ИИ всегда их соблюдать. Но на практике вы столкнётесь с ситуацией, когда «ИИ игнорирует правила, которые вроде бы записаны». Причин несколько.

📄 Указаний слишком длинно/много

При огромном числе правил важные тонут. Сократите число, чётко расставьте приоритеты.

🌀 Туманно/противоречиво

Есть простор для трактовки — не соблюдается. Пишите конкретно и проверяемо.

🗂 Разговор стал длинным

Чем дольше обмен, тем слабее первые указания. Полезно напоминать в ключевых точках.

💡 Суть мер: писать правила «коротко, конкретно, с приоритетами». И важные правила при необходимости лишний раз проговаривайте в разговоре. Подробное разделение причин и конкретные способы исправления разобраны в «Почему ИИ игнорирует правила CLAUDE.md и что делать».

Итоги главы
  • Качество указания — качество результата. ИИ заполняет недостающее догадками, поэтому чем точнее просишь, тем точнее ответ.
  • Вайб-кодинг = пробы и ошибки в разговоре. Силён в малом, одноразовом, исследовании. Растёт — ломается.
  • Спец-ориентированная разработка = сначала решить спецификацию, потом точно реализовать. Силён в среднем-крупном, с упором на качество.
  • Выбор — «мало и исследовать — vibe, много и точно — spec». На практике ходят туда-обратно.
  • Приёмы хорошего указания — конкретика, контекст, по одной задаче, пример вывода, повторение — всего 5.
  • ИИ игнорирует правила, потому что указания длинные, туманные, разговор длинный. Коротко и конкретно, с напоминанием.

Когда способ просить понятен, ИИ-программирование резко стабилизируется. И всё же, взявшись за дело руками, вы обязательно столкнётесь с ошибками и тупиками. В следующей главе 5 «Выбираться из тупика» системно усвоим причины частых ошибок и способы выбраться.