← Claude на русском
Открыть оригинал
Перевод с разбором · для Вани
Адаптировал Claude Opus 4.7 (ИИ) на основе документации Anthropic. Полная версия — в docs/be-clear-and-direct.html.

Чётко и прямо

Адаптация для Вани · 2026-04-27

Главная мысль раздела простая: модель работает тем лучше, чем меньше ей приходится догадываться. Anthropic в оригинале формулирует это так: «Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results». То есть пишите явно: какой результат хотите, в каком формате, с какими ограничениями. Не рассчитывайте, что модель сама догадается, что вы под «нормально» имели в виду.

Anthropic советует представлять Claude как нового, очень способного сотрудника, который только-только пришёл в команду. Он умный, но про ваш проект ничего не знает: ни как у вас устроены заказы, ни как считается стоимость лестницы, ни почему `markupMaterialsPct` лежит в одной таблице, а наценка на работы — в другой. Чем точнее вы объясните контекст и задачу, тем точнее ответ.

Золотое правило (формулировка Anthropic): «Show your prompt to a colleague with minimal context on the task and ask them to follow it. If they’d be confused, Claude will be too». Покажите свой промпт коллеге, у которого нет контекста. Если он запутался — Claude тоже запутается.

Из этого вытекают две практические рекомендации:

Пример из оригинала: создание аналитической панели

Менее эффективно:

Create an analytics dashboard

Более эффективно:

Create an analytics dashboard. Include as many relevant features and interactions as possible. Go beyond the basics to create a fully-featured implementation.

Разница: во втором случае модели прямо говорят, что нужна «полноценная реализация» с максимумом нужных фич, а не минимальный скелет. Без этой фразы Claude часто выбирает безопасный минимум.

Пример в вашем стеке: страница списка заказов

Менее эффективно (промпт к Claude Code):

Сделай страницу списка заказов на React

Более эффективно:

Сделай страницу списка заказов на React. Бэкенд — Ktor + JDBI,
эндпоинт уже есть: GET /api/orders возвращает список из OrderService.
Нужно: таблица с колонками номер, заказчик, статус, сумма, срок;
фильтр по статусу и поиск по номеру; пагинация по 50 записей;
ссылка на карточку заказа. Стили — как у соседних страниц проекта.
Если у тебя есть вопросы по полям ответа — сначала загляни в
OrderService и OrderRepository, не выдумывай схему.

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

Добавляйте контекст — это улучшает результат

Anthropic пишет: «Providing context or motivation behind your instructions, such as explaining to Claude why such behavior is important, can help Claude better understand your goals and deliver more targeted responses». То есть объясняйте не только «что делать», но и «зачем». Модель достаточно сообразительна, чтобы обобщить объяснение и применить его в смежных случаях.

Пример из оригинала: предпочтения по форматированию

Менее эффективно:

NEVER use ellipses

Более эффективно:

Your response will be read aloud by a text-to-speech engine, so never use ellipses since the text-to-speech engine will not know how to pronounce them.

Во втором варианте модель понимает почему нельзя многоточия, и заодно сама догадается избегать других вещей, которые text-to-speech не умеет проговаривать.

Пример в вашем стеке: запрос на стиль кода

Менее эффективно:

Не используй var в Kotlin

Более эффективно:

В этом проекте мы держим модели заказов и материалов иммутабельными:
все DTO — data class с val, в OrderService и MaterialService нет
изменяемого состояния, это упрощает тесты в IntegrationTestBase.
Поэтому: не используй var, не вводи mutableListOf там, где можно
listOf или toList(). Если без var обойтись нельзя — поясни в
комментарии, почему.

Из «зачем» Claude поймёт и смежные случаи: не делать мутабельные коллекции в DTO, не превращать чистые сервисы в stateful, и так далее. Без объяснения каждый такой случай придётся проговаривать отдельно.

Используйте примеры

Этот подраздел в оригинале короткий и подробно раскрыт в отдельной статье «Примеры в промпте». Здесь Anthropic фиксирует главное: «Examples are one of the most reliable ways to steer Claude's output format, tone, and structure. A few well-crafted examples (known as few-shot or multishot prompting) can dramatically improve accuracy and consistency».

Когда добавляете примеры, делайте их:

Структурируйте промпты XML-тегами

Когда промпт смешивает инструкции, контекст, примеры и переменные входные данные, модель легче парсит его, если каждый кусок обёрнут в свой тег. Anthropic называет это так: «XML tags help Claude parse complex prompts unambiguously». Для Claude Code это особенно полезно, когда вы скармливаете ему длинный кусок чужого кода рядом с вашей задачей.

Хорошие практики:

Дайте Claude роль

Anthropic: «Setting a role in the system prompt focuses Claude's behavior and tone for your use case. Even a single sentence makes a difference». Системный промпт — это инструкция верхнего уровня, которая задаёт Claude роль на всю беседу.

В оригинале здесь идёт пример вызова API из Python — для вас он нерелевантен, потому что вы не вызываете модель из кода, а работаете через Claude Code Desktop. Эквивалент роли в Claude Code — это файл CLAUDE.md в корне проекта: всё, что вы туда напишете, модель читает в каждом разговоре. Например:

Ты помогаешь мне с веб-системой для производства лестниц.
Стек: Kotlin + Ktor + JDBI + PostgreSQL на бэкенде, React на фронте.
Я не профессиональный программист — объясняй неочевидные решения
коротко и по делу. Пиши идиоматичный Kotlin: data class, val,
никаких var без причины. Тесты — поверх IntegrationTestBase, как
в OrderRepositoryIT и JwtFilterTest. Не выдумывай имена методов,
которых нет в OrderService/MaterialService — сначала проверь.

Длинный контекст

Когда вы скармливаете модели большие документы или входные данные (от 20 тысяч токенов и больше), структура промпта начинает заметно влиять на качество. Это редкий сценарий для повседневной работы в Claude Code, но полезно знать правила.

В терминах вашего проекта это могло бы выглядеть так: если просите Claude разобраться, как считается стоимость заказа, и кидаете ему содержимое OrderCalculationService.kt, MaterialService.kt и пары репозиториев — заверните каждый файл в свой <file index="n"> с <path> и попросите сначала выписать строки, где встречается markupMaterialsPct, и только потом объяснить логику.

Самоидентификация модели

Этот подраздел Anthropic держит для тех, кто встраивает модель в своё приложение и хочет, чтобы Claude правильно представлялся пользователю. Для вас это сейчас неактуально — вы не строите приложение поверх API. Если когда-нибудь будет актуально, шаблон промпта из оригинала такой:

The assistant is Claude, created by Anthropic. The current model is Claude Opus 4.7.

А для приложений, которым нужно знать точную строку модели:

When an LLM is needed, please default to Claude Opus 4.7 unless the user requests otherwise. The exact model string for Claude Opus 4.7 is claude-opus-4-7.