Студия ITSalt весь прошлый год переводила разработку на агентов и параллельно строила собственный фреймворк NaCl. Побочным продуктом этой работы стал скилл pepper-prompt-engineer — инструмент, который берёт произвольное описание задачи и собирает из него промпт по фиксированной структуре. Скилл реализован в формате Anthropic Agent Skills: папка с файлом SKILL.md и ресурсами, которую Claude подгружает автоматически, когда задача подходит под описание.

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

#БлокСодержание
1РольКем модель должна себя считать и для кого пишет ответ
2ЗадачаЧто сделать — одним коротким предложением
3КонтекстФон, входные данные, область работы
4Критерии готовности3–5 проверяемых признаков готового результата
5ШагиЧто делать по порядку
6ОграниченияЧего не делать и что делать при нехватке данных
7Способ рассужденияКак модели думать над задачей
8Формат ответаТочная структура, длина, тон
9Примеры1–3 образца желаемого ответа
10СамопроверкаЧто модель обязана проверить перед ответом

Никитин выделил пять типичных проблем промптов, написанных второпях. Размытая цель — когда модель не понимает, что считать готовым результатом. Игнорирование особенностей конкретной модели — промпт под Claude хуже работает на Gemini и наоборот. Отсутствие инструкций по проверке фактов и расчётов. Нет защиты от галлюцинаций — когда данных не хватает, модель придумывает вместо того, чтобы спросить. И наконец, модель не сверяется с заданием перед ответом.

Под каждую из этих проблем в структуре промпта есть конкретный блок. Фреймворк вырос из публичного CRAFT (Context, Role, Action, Format, Target) и расширен до десяти позиций. Роль и аудитория, задача одним предложением, контекст и входные данные, критерии готовности, шаги, ограничения, способ рассуждения, формат ответа, примеры и самопроверка — в таком порядке, всегда. Восемь блоков обязательны даже если внутри одна строка. Исключение — шаги (на совсем простой задаче) и примеры (если формат очевиден без образцов).

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

Перед выдачей промпт проходит через Python-скрипт с 18 автоматическими проверками. Скрипт смотрит, все ли обязательные блоки на месте, есть ли правило «не выдумывай при нехватке данных», уложился ли промпт в лимит длины, нет ли расплывчатого «сделай качественно» без метрики. Для Claude отдельно проверяется отсутствие капса и конструкций вроде «КРИТИЧЕСКИ ВАЖНО» — они снижают качество ответа. Среди тестов есть и обратная проверка: на простую просьбу «напиши факториал» скилл не должен реагировать вовсе.

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

Промпты генерируются на английском: инструкции на нём модели исполняют стабильнее, и они короче в токенах. Язык ответа жёстко задаётся первой строкой — «Respond to the user in Russian». Автор приводит два примера из реальной практики: программа для детского палаточного лагеря на Селигере (целевая модель — Claude) и рекламные концепции для детского бренда одежды под ИИ-видеопайплайн (целевая модель — GPT). Оба промпта опубликованы без купюр.