Промпт — это творчество? Нет, это 10 блоков в жёстком порядке. Agent Skills.. Agent Skills. Claude.. Agent Skills. Claude. llm.. Agent Skills. Claude. llm. Open source.. Agent Skills. Claude. llm. Open source. skills.. Agent Skills. Claude. llm. Open source. skills. искусственный интеллект.. Agent Skills. Claude. llm. Open source. skills. искусственный интеллект. Лайфхаки для гиков.. Agent Skills. Claude. llm. Open source. skills. искусственный интеллект. Лайфхаки для гиков. Машинное обучение.. Agent Skills. Claude. llm. Open source. skills. искусственный интеллект. Лайфхаки для гиков. Машинное обучение. научно-популярное.. Agent Skills. Claude. llm. Open source. skills. искусственный интеллект. Лайфхаки для гиков. Машинное обучение. научно-популярное. нейросети.. Agent Skills. Claude. llm. Open source. skills. искусственный интеллект. Лайфхаки для гиков. Машинное обучение. научно-популярное. нейросети. промпт-инжиниринг.
Промпт — это творчество? Нет, это 10 блоков в жёстком порядке - 1

Меня зовут Максим Никитин, я фаундер небольшой, но гордой студии разработки сложных и нетиповых проектов ITSalt. Большую часть прошлого года мы переводили разработку на агентов и по дороге собрали собственный фреймворк NaCl. Когда живёшь внутри такого процесса, начинаешь хорошо понимать, как выглядит правильный промпт. Роль, контекст, понятные критерии готовности, формат ответа, ограничения, защита от выдумок – всё это уже не вопрос вкуса, а набор требований, который держишь в голове.

Но промпты мы пишем не только на работе. Промпт для агента-диетолога, который ведёт твою диету. Промпт для программы тренировок в зале. Для поиска интересных мероприятий на выходные, для сценария детского праздника. Любая задача, где нужно нечто большее, чем найти ответ на вопрос, заслуживает такой же вдумчивой постановки, как производственная задача в программировании. И вот тут начинается боль: написать такой промпт из головы, ничего не упустив, – это каждый раз минут двадцать сосредоточенной работы. На третьем промпте за день начинаешь срезать углы, а потом удивляешься, почему агент-диетолог разрешил тебе торт.

Поэтому я собрал скилл, который делает эту рутину за меня. Называется pepper-prompt-engineer. Скилл – это папка с инструкциями (SKILL.md плюс ресурсы), которую Claude сам подгружает, когда задача совпадает с описанием; формат Anthropic Agent Skills. Ты описываешь задачу человеческими словами – он собирает из неё полноценный промпт по всем правилам.

Что именно делает скилл

Скилл не решает вашу задачу. Он собирает промпт для её решения.

Пишете ему «напиши парсер на Python» – он не выдаёт код. Он выдаёт готовый промпт, который вы отдадите другой модели, и уже она напишет парсер. Просите «придумай слоганы» – получаете не слоганы, а промпт для генерации слоганов.

Чем плох промпт, написанный на бегу

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

Что не так

Чем это аукается

Размытая цель («сделай хорошо»)

Модель не понимает, что считать готовым результатом, и выдаёт что-то среднее

Не учтены особенности модели

Промпт, заточенный под Claude, хуже работает на Gemini, и наоборот

Забыли про проверку фактов и расчёты

Модель сама не догадается перепроверить дату или посчитать сумму без ошибки

Нет защиты от выдумок

Когда данных не хватает, модель скорее придумает, чем спросит

Модель не сверяется с заданием

Перед ответом она не проверяет, выполнила ли всё, что просили

На каждую из этих болячек в скилле есть конкретное лекарство.

Из чего собирается промпт: десять блоков

За основу взят известный публичный фреймворк CRAFT – Context, Role, Action, Format, Target (разбор). Мы дополнили его тем, чего в классике не хватало для современных моделей, и в итоге любой промпт на выходе – это десять блоков в одном и том же порядке.

#

Блок

Что в нём

1

Роль

Кем модель должна себя считать и для кого пишет ответ

2

Задача

Что сделать – одним коротким предложением

3

Контекст

Фон, входные данные, в какой области работаем

4

Критерии готовности

3-5 проверяемых признаков, что результат готов

5

Шаги

Что делать по порядку

6

Ограничения

Чего НЕ делать и что делать при нехватке данных

7

Способ рассуждения

Как модели думать над задачей

8

Формат ответа

Точная структура, длина, тон

9

Примеры

1-3 образца желаемого ответа

10

Самопроверка

Что модель обязана проверить перед тем, как ответить

Восемь блоков из десяти стоят всегда, даже если внутри одна строчка. Выбросить разрешено только шаги – на совсем простой задаче, и примеры – если формат понятен без образцов.

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

Критерии готовности. Правило одно: критерий должен быть таким, чтобы его можно было проверить, как тест. «Текст должен быть интересным» – так нельзя, интересность не измеришь. «Не длиннее 280 символов, без хэштегов, с одним вопросом в конце» – можно: открыл, посчитал, проверил.

Самопроверка. Тот же список критериев, повёрнутый к модели как чеклист на выходе. Прежде чем выдать ответ, модель обязана пройтись по нему: уложилась в 280 символов, хэштегов нет, вопрос в конце есть. Не сошлось с заданием – переделывай, не показывай.

Как скилл обрабатывает запрос

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

Маршрут обработки запроса

Маршрут обработки запроса

Пара пояснений к развилкам.

Если вы просите «собери мне CRM с аналитикой и биллингом», скилл не делает вид, что упакует это в один промпт. Он предлагает выбор: собрать промпт под урезанную первую версию, разбить задачу на части самому, либо собрать как есть – с пометкой, что результат будет поверхностным. Дальше решает Наполеон за клавиатурой: сохранить наполеоновские планы или всё-таки начать с малого.

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

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

Как это выглядит вживую

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

Первая задача – почти та самая программа детского праздника из вступления, только масштабнее: спроектировать программу для детей 10-13 лет в палаточном лагере на Селигере, целевая модель – Claude. Вторая – из другой оперы: сгенерировать рекламные концепции для детского бренда одежды под AI-видеопайплайн, целевая модель – GPT.

Сразу отвечу на вопрос, который иначе станет первым комментарием: да, скилл собирает промпты на английском. Инструкции на нём модели исполняют стабильнее, и они короче в токенах, а язык ответа жёстко прибит первой строкой – Respond to the user in Russian.

Скрытый текст
Respond to the user in Russian. If you need to ask for clarifications, ask them in Russian.

<role>
You are a senior programme designer for Russian wilderness family camps with 10+ years of experience designing multi-day narrative programmes for tween groups. Your audience: a parent-organiser planning a programme for 12-16 children aged 10-13 at a 10-day tent camp on a forested island on Lake Seliger.
</role>

<task>
Design 4 distinct 8-day programme concepts for the 10-13 age group, then — after the user selects one — produce a full day-by-day plan for the selected concept.
</task>

<context>
Setting: tent camp on a forested island, Lake Seliger. 10 days on site, programme runs 8 days. Total population ~100 (children + parents/adults, children outnumber adults).

Target group: 12-16 children aged 10-13, mixed boys and girls.

Camp internal currency: "гаечки" — earned by children helping adults (kitchen, firewood, errands, cleanup). Spent at the "аукцион" on the penultimate day on lots (treats, crafts, certificates like late lights-out or motorboat ride). Currently earning is informal.

Existing programme elements the new concepts MUST coexist with, NOT duplicate:
- Daily activities open to 10-13s: kayak school + kayak trip for pirozhki, SUP, quidditch (one-day event), theatre circle, plein-air painting, workshops for all (sewing, leather, штампы), woodworking, choir, astronomy, film club, biology/survival circle ("Любопыты и выживатели")
- Camp-wide events: квартирник (D1), camp-quest with rules (D2), theatre day, fair + auction (penultimate day), final concert, kayak competition, "тайный друг" runs across all days
- Free morning and evening slots are available for new programming

What is needed: a unifying narrative that turns each day into a constructive arc for the tweens, with hands-on output and a built-in гаечки earning mechanic.

Distribution required across the 4 concepts:
- 2 concepts COMPETITIVE — group splits into 2-3 teams competing for points / гаечки
- 2 concepts SINGLE-GROUP — all 12-16 act together, optionally as a subgroup-with-mission inside the wider camp (e.g. "pirates who secretly make camp life more fun")

Acceptable mechanics to draw from: zarnitsa-style team games, build-and-sleep-in-own-shelter, friendly non-humiliating pranks on the wider camp, secret missions, scavenger hunts, in-camp economy add-ons, cumulative crafting projects.
</context>

<success_criteria>
- Each concept has: title, one-line pitch, format (competitive/single-group), unifying narrative, daily backbone (one sentence per day × 8), embedded гаечки mechanic, final tangible output, integration with camp-wide events
- Each concept is mechanically distinct from the other three (different core verb)
- Each concept assumes 1.5-2 hours of dedicated programme time per day plus optional evening time
- Гаечки mechanic in each concept must reward genuine help to adults (kitchen prep, firewood, dish duty, errands), not mere participation in the programme itself
- Concepts are feasible on a forested island without external supply runs and without electricity/internet
</success_criteria>

<actions>
STAGE 1 (this response):
1. Generate 4 distinct concepts using the creativity_protocol below
2. Output 4 numbered concept cards in the format specified in output_format
3. End with: "Какую концепцию детализировать? Ответь номером 1-4 (или назови комбинацию)."
4. STOP and wait for user selection

STAGE 2 (next user message naming the chosen concept):
1. Produce a day-by-day plan: Day 1 through Day 8
2. For each day specify: morning block, afternoon block, evening block (if used), materials needed, adult roles required, гаечки earning opportunities that day, integration with camp-wide events that day
3. Append: pre-camp preparation list (materials, props, printed handouts), top 3 risks with mitigations, bad-weather fallback plan
</actions>

<constraints>
- Do not propose activities that duplicate the existing master activities listed in context
- Pranks must be reversible, non-targeted at specific individuals, never humiliate
- Гаечки must come from real help to adults — not from programme participation
- All physical activities must be safe without specialised equipment beyond what a family wilderness camp owns
- Do not assume internet, mobile devices, or electricity
- If you lack data: state what is missing and ask ONE clarifying question. Do not fabricate facts about the camp.
</constraints>

<creativity_protocol>
For each of the 4 concepts, follow this protocol to ensure genuine diversity (Misaki & Akiba, ICLR 2026):

Step 1. Generate a fresh random string (16+ chars: mix uppercase, lowercase, digits, symbols) inside <random_string>...</random_string>. Generate internally.

Step 2. Inside <thinking>...</thinking>, split the string into 4 segments. For each segment apply Sum-Mod (sum of ord(c) mod N) against these candidate lists:
- Core verb: [build / hunt / infiltrate / produce / explore / chronicle / trade / defend]
- Tonal frame: [historical / fantastical / detective / scientific / theatrical / military / piratical / journalistic]
- Group format: [3 teams competing / 2 teams competing / single squad with mission / single squad as guild]
- Output type: [physical structure / artefact set / story product / event for the wider camp / map or archive]

Show arithmetic explicitly. Generate a NEW string for EACH concept.

Distribution constraint: exactly 2 of the 4 final concepts must end COMPETITIVE, exactly 2 SINGLE-GROUP. If the random derivation breaks the 2+2 ratio, regenerate the Group format field for the offending concept until the ratio holds. Log the regeneration in <thinking>.

Step 3. Build the full concept around the seed and output inside <answer>...</answer>.
</creativity_protocol>

<output_format>
STAGE 1 — for each concept (inside <answer>):

### Концепция N. [Название]
- Питч: [одна строка]
- Формат: [соревновательный 2-3 команды / единая группа]
- Нарратив: [2-3 предложения о сквозной истории]
- Каркас по дням (Д1-Д8): [одно предложение на каждый из 8 дней]
- Механика гаечек: [как именно дети зарабатывают на помощи взрослым в рамках этой концепции]
- Финальный осязаемый результат: [что покажут к концу 8 дня]
- Интеграция с лагерем: [как переплетается с квартирником, театральным днём, ярмаркой, аукционом, концертом, тайным другом]

После 4 карточек — строка с вопросом выбора.

STAGE 2 — структура из actions, по дням.
</output_format>

<verification>
Before Stage 1 output:
- [ ] Exactly 4 concepts
- [ ] Exactly 2 competitive + 2 single-group
- [ ] Each concept uses a different core verb
- [ ] Гаечки mechanic in each concept involves real help to adults
- [ ] No concept duplicates an existing master activity
- [ ] Each daily backbone has exactly 8 entries
</verification>
Скрытый текст
Respond to the user in Russian. If you need to ask for clarifications, ask them in Russian.

# Persistence
Keep working until all 5 concepts are fully generated and broken down. Do not stop after one or two. Do not hand back to the user with a question unless a critical brand fact is genuinely missing — make reasonable assumptions, mark them, and continue.

# Role
You are a senior creative director and concept writer for brand films, specializing in short-form advertising built for AI video-generation pipelines. You think in lateral associations, genre subversion, and unexpected reveals. Your audience is the owner of a children's clothing & footwear brand who assembles ads from AI tools: Midjourney for characters, Nano Banana Pro for edits, Seedance 2.0 (multi-reference) and Kling for video.

# Task
Generate 5 distinctly different, unconventional advertising concepts (up to 3 minutes each) for a children's clothing & footwear brand — each connecting to the product through a non-obvious creative mechanic — and break each into AI-generatable beats.

# Context
The brand sells children's clothing and footwear. Brand specifics (name, hero product, target age, USP, tagline) may be partly unknown — design concepts that work generically and mark where brand elements slot in: [BRAND_NAME], [HERO_PRODUCT], [TAGLINE].

The owner explicitly does not want safe, on-the-nose ads (smiling kids in a field). The most valued concepts are ones where:
- the film appears to be about something else entirely and only mid-way reveals it advertises children's clothing; or
- the film is overtly about another subject but links to the product through a clever metaphor or association.

The 5 concepts must span different genres and registers — do not let them collapse into only "playful" or only "family."

## Production reality
The final video is assembled from many short AI clips (~5–10s each). Characters are created as Midjourney stills and kept consistent via reference images; clips are generated in Seedance 2.0 (multi-reference) and Kling.

# Success Criteria
- 5 concepts, each in a clearly different genre/register (the set might mix thriller-teaser, nature-doc, sci-fi, mockumentary, fairy tale, noir, sports, object-POV — no two alike).
- At least 3 of the 5 use a mid-film reveal or lateral-association mechanic, not a literal clothing ad.
- Every beat is generatable with the stated pipeline: no readable on-screen text, no precise finger-level manipulation, no large consistent crowds, no unbroken takes over 10s.
- Each concept fits within 3 minutes and decomposes into discrete, individually-generatable shots.
- Each concept names the exact moment and method by which the clothing/footwear link lands.

# Actions
1. For each concept, run the Creativity Protocol below to seed divergent choices across: genre; connection mechanic (mid-reveal / metaphor / association / POV-switch / before-after / object-as-hero); setting; tone; twist.
2. Before finalizing, branch two possible directions internally and keep the more unconventional one.
3. Break the chosen concept into 6–12 beats; per beat note: visual, camera move, which element needs a Midjourney character reference, recommended tool (Seedance / Kling), audio/music cue.
4. Flag any beat that is technically risky for AI video and propose a simpler framing.
5. End each concept with the brand-reveal beat and a [TAGLINE] slot.

# Creativity Protocol
For each independent variant, follow this protocol to ensure genuine diversity (bypasses RLHF mode collapse — Misaki & Akiba, ICLR 2026):

1. Generate a fresh random string (16+ chars: mix uppercase, lowercase, digits, symbols) inside <random_string>...</random_string>. Generate internally — do not call external tools.
2. Derive the variant deterministically inside <thinking>...</thinking>:
   - Uniform choice among N options: result = sum(ord(c) for c in string) mod N
   - Creative composition: split the string into 2–5 non-overlapping segments; for each segment pick one component (genre / connection mechanic / setting / tone / twist) via Sum-Mod; assemble.
3. Output ONLY the final variant inside <answer>...</answer>. No commentary.

Show all arithmetic explicitly. Generate a NEW string for EACH of the 5 concepts — reusing strings destroys statistical independence.

# Constraints
- Reserve at most 2 of the 5 for a more direct emotional approach; the rest must be non-literal.
- Do not invent brand facts (name, claims, prices) — use placeholders and mark them.
- Avoid beats requiring readable text, precise small-object hand interaction, takes over 10s, or large crowds with consistent faces.
- If you lack data to complete the task: state explicitly what is missing and ask ONE clarifying question. Do not fabricate facts.

# Reasoning Mode
For each concept: produce divergence via the Creativity Protocol, then a brief two-branch comparison to select the more original direction. Show only the SSoT computations the protocol requires; keep other reasoning concise.

# Output Format
For each of the 5 concepts, output in Russian:
- Название + логлайн (one line)
- Жанр / приём связи с брендом + at which beat the reveal lands
- Тон и эмоциональная арка
- Раскадровка по битам — compact table: Бит | Визуал | Камера | Реф/персонаж | Инструмент | Звук
- Технические риски и упрощения (1–3 bullets)
- Финальный бренд-бит + слот [TAGLINE]
- Рекомендуемый хронометраж и формат (e.g. 9:16 / 16:9)

After the 5 concepts, add one line offering to expand any chosen concept into a full shot-by-shot list (each 5–10s clip with ready generation prompts for Seedance/Kling).

# Verification
- Are all 5 genres/registers actually different from each other?
- Do at least 3 concepts use a non-literal connection mechanic?
- Is every beat generatable within the stated pipeline and shot-length limits?
- Does each concept name the exact reveal moment and fit within 3 minutes?

На этой паре видно всё, о чём дальше пойдёт речь. Первый промпт собран под Claude – блоки размечены XML-тегами. Второй под GPT – те же по смыслу блоки оформлены заголовками Markdown, и сверху добавлена секция Persistence: работай, пока не выдашь все 5 концепций, не останавливайся после двух. В обоих стоит правило «не хватает данных – спроси, а не выдумывай», в обоих в конце чеклист самопроверки, и в обоих подключился протокол разнообразия со случайными строками – о нём ниже отдельно. Ни одной из этих вещей в исходной формулировке задачи не было: их принёс скилл.

Один промпт, четыре модели, разное оформление

Здесь самое время сказать про доказательность. Основную часть приёмов мы взяли из исследований и документации вендоров – Anthropic, OpenAI, Google: каждый прямо пишет, как лучше формулировать запросы под его модель. Часть – наши собственные инженерные решения, которые на практике дают хорошие результаты.

Те же десять блоков оформляются по-разному в зависимости от того, для какой модели собирается промпт.

Claude

GPT

Gemini

DeepSeek (chat-версия)

Как размечать блоки

XML-теги

Заголовки Markdown

Заголовки Markdown

Любой из двух

Тон формулировок

мягкий, без капса

обычный

прямой, командный

обычный

Писать ли «думай по шагам»

нет

reasoning-моделям – нет, классическим полезен план

нет

да

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

  • GPT на длинных задачах заметно выигрывает от инструкции «не останавливайся, пока не доведёшь до конца» – по гайду OpenAI такие напоминания дали им около +20% на внутреннем бенчмарке. Там же, кстати, классическим GPT рекомендуют просьбу сначала составить план – мягкую форму того самого «думай по шагам»; reasoning-моделям она уже не нужна.

  • Gemini лучше понимает прямые командные формулировки, а ключевые требования просит ставить в начало – рекомендации Google.

  • DeepSeek в чат-версии – единственный случай, где имеет смысл написать «думай по шагам»: сам он этого не делает.

Дополнительные куски, которые подключаются по ситуации

Кроме десяти основных блоков скилл по ключевым словам в задаче добавляет в промпт дополнительные инструкции. Увидел в задаче даты, имена, цены или слово «актуально» – добавил требование проверять факты поиском, а непроверенное честно помечать. Увидел вычисления, таблицы или финмодель – добавил требование считать кодом, а не «в уме». Приложены файлы или картинки – добавил дисциплину опираться на их содержимое, а не фантазировать. Четвёртый кусок – про разнообразие вариантов, о нём ниже отдельно.

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

Как заставить модель выдавать действительно разные варианты

У всех, кто плотно работает с моделями, давно было ощущение: попросишь придумать 10 вариантов чего угодно – получишь десять почти одинаковых. Так вот, это больше не ощущение. Недавно исследователи подтвердили эффект формально: модели после дообучения действительно жмутся к одному усреднённому ответу, а если попросить «выбирай вариант А в 70% случаев, Б в 30%» и прогнать сто раз – расклад поедет, потому что честно бросать кубик модель не умеет.

В той же работе (arXiv:2510.21150) предложили и лечение, неожиданно простое. Модель сначала генерирует случайную строку – просто чтобы было от чего оттолкнуться, как от брошенной монетки, – и строит ответ уже на её основе. Главное правило: новая случайная строка на каждый вариант, иначе кубик опять застрянет на одной грани. Мы взяли эту работу за основу и положили её механику в соответствующую секцию промпта. Когда режим включён, скилл подсвечивает его в ответе отдельной пометкой, чтобы вы не приняли служебную случайную строку за сбой.

Почему скилл не угрожает модели увольнением

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

Скилл сам в интернет не лазает и за новостями не следит – знание о том, что сейчас работает для какой модели, зашито внутрь. Поэтому мы обновляем его сами вслед за выходом новых рекомендаций и фиксируем каждое изменение в changelog на GitHub. Скачанный скилл – это снимок на момент скачивания, так что имеет смысл время от времени заглядывать в репозиторий и забирать свежую версию.

Что в итоге

Правильный контекст – это львиная доля успеха промпта. Если просишь модель рассказать про кран, ей нужно чётко сказать: речь про башенный кран на стройке – или ты ждёшь анекдот про сантехника. Всё устройство скилла – десять блоков, проверки, вопросы – по сути один механизм, который не даёт забыть рассказать модели, про какой кран речь.

Хороший промпт не случается – он собирается. Скилл лежит в репозитории PepperSkills: скачайте архив скилла, установите через штатный механизм добавления скиллов, опишите задачу своими словами – остальное он сделает сам. Соберёт плохо – пишите issue!

Автор: MNikitin

Источник