03 / 06 · Продвинутый

💬 Промпт-шаблоны для CC

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

💡
Как пользоваться: Каждый шаблон — code-блок с плейсхолдерами в фиолетовом. Жми Copy, вставляй в CLI и заменяй [скобки] своими данными. Шаблоны сгруппированы по типу задачи — цветная полоска слева показывает категорию.

Формула идеального промпта

Каждый хороший промпт содержит пять элементов:

[ЧТО сделать]+[ГДЕ находится]+[СТЕК / ВЕРСИЯ]+[ОГРАНИЧЕНИЯ]+[КАК ПРОВЕРИТЬ]

Чем больше элементов — тем точнее результат. Минимум: ЧТО + ГДЕ + КАК ПРОВЕРИТЬ.

⚠️
Частая ошибка новичков: забывают элемент «КАК ПРОВЕРИТЬ». CC выполняет задачу, пишет «готово» — и вы не знаете, работает ли это на самом деле. Без явной команды верификации (php artisan test, pytest, npm run lint) CC не запустит проверку автоматически. Всегда указывайте команду верификации в промпте — это единственный способ получить объективное подтверждение результата, а не самооценку модели.
Плохо
Добавь авторизацию
Хорошо
Добавь email+password авторизацию. Проект: Laravel 11, app/Http/Controllers/Auth/ Используй встроенный Auth Facade, сессии в Redis. Написать Pest-тест LoginTest. Проверить: php artisan test --filter=LoginTest
Плохо
Почини баг в сервисе
Хорошо
Исправь TypeError в OrderService::create() Файл: app/Services/OrderService.php:87 Трейс: [вставь стектрейс] Не трогать: app/Services/PaymentService.php Проверить: php artisan test --filter=OrderTest

Шаблоны по типу задачи

🐛
Баг-фикс
Три шаблона для разных ситуаций: с трейсом, N+1 и без трейса
Шаблон 1 — Баг с трейсом Баг-фикс
Используй когда есть полный стектрейс. Даёт CC максимум информации для точного фикса.
Шаблон: Баг с трейсом Исправь ошибку в [файл:метод]. Ошибка: [вставь полный стектрейс] Контекст: [стек проекта, версии — например: Laravel 11, PHP 8.3] Не трогай: [другие файлы/методы которые нельзя менять] Проверить: [команда запуска тестов]
Шаблон 2 — N+1 проблема Баг-фикс
Для N+1 запросов в Eloquent/ORM. Указывай связи явно, чтобы CC добавил правильный eager loading.
Шаблон: N+1 проблема В [файл:метод] есть N+1 проблема — Eloquent делает запрос для каждого [сущность, например: заказа]. Добавь eager loading. Файл: [полный путь] Связи которые нужны: [например: user, items.product, items.options] Проверить: Включи DB::enableQueryLog() перед вызовом и убедись что запросов не больше [N, например: 3] вместо текущих [текущее число].
Шаблон 3 — Баг без трейса Баг-фикс
Когда ошибка видна только в браузере или нет исключения — опиши шаги воспроизведения.
Шаблон: Баг без трейса На странице [URL или маршрут] не работает [что именно]. Воспроизведение: 1. Открыть страницу X 2. Нажать Y 3. Наблюдать Z Ожидаемое: [что должно происходить] Фактическое: [что происходит на самом деле] Контроллер: [путь к файлу] Проверить через: [тест или шаги ручной проверки]
Новая фича
Четыре шаблона: REST эндпоинт, таблица + модель, Vue/Nuxt компонент, Celery/Queue задача
Шаблон 4 — Новый API эндпоинт Новая фича
Полный набор файлов: контроллер, валидация, ресурс, тест. Укажи авторизацию и структуру ответа.
Шаблон: REST эндпоинт Создай REST эндпоинт [метод: GET/POST/PUT/DELETE] [путь, например: /api/v1/orders]. Стек: [Laravel 11 / FastAPI 0.115 / Express 5] Файлы создать: - [Controller или Router — путь] - [Request/Schema — валидация входных данных] - [Resource/Response — структура ответа] - [Pest/pytest тест — путь] Правила: - Авторизация: [Auth::check() / JWT middleware / bearerToken] - Обязательные поля: [список полей] - Возвращает: [структура JSON-ответа] - HTTP коды: [200/201/422/401/404] Проверить: [php artisan test --filter=OrderApiTest / pytest tests/test_orders.py -v]
Шаблон 5 — Новая таблица + модель Новая фича
Миграция + Eloquent-модель. Укажи поля, связи и нужны ли soft deletes.
Шаблон: Таблица + модель Создай миграцию и Eloquent модель для [сущность, например: ProductVariant]. Поля: - name: string, required, название варианта - sku: string unique, required, артикул - price: decimal(10,2), required, цена - stock: integer default 0, required, остаток - meta: json nullable, optional, доп. данные Связи: [belongsTo Product, hasMany OrderItems] Индексы: [sku, product_id+status для фильтрации] Soft deletes: [да / нет] Fillable: [явный список $fillable] Верификация: php artisan migrate --pretend
Шаблон 6 — Vue 3 / Nuxt компонент Новая фича
Компонент с Composition API. Укажи props, emits и composables из проекта.
Шаблон: Vue/Nuxt компонент Создай Vue 3 компонент [ComponentName.vue] в [путь, например: components/ui/]. Props: - modelValue: string, requiredтекущее значение - label: string, optionalподпись поля - disabled: boolean, default false Emits: - update:modelValueпри изменении значения (v-model) - changeпосле подтверждения выбора Функциональность: [описание поведения компонента] Стиль: [Tailwind CSS / SCSS module / inline] Composables: [useAuth, useNotify из /composables/ — если нужны] Не использовать: Options API, jQuery, любые глобальные переменные TypeScript: [да — defineProps<Props>() / нет]
Шаблон 7 — Celery / Queue задача Новая фича
Фоновая задача для Celery (Python) или Laravel Queue Job. Укажи ретраи и что логировать.
Шаблон: Celery/Queue задача Создай [Celery task / Laravel Job] для [название задачи]. Файл: [путь, например: app/Jobs/SendReportJob.php] Входные данные: - user_id: intкому отправить - period: stringпериод отчёта (YYYY-MM) Что делает: 1. Получить данные из БД за период 2. Сгенерировать PDF через [сервис] 3. Отправить на email пользователя Ретраи: [3 раза], при [Exception / таймаут] Таймаут задачи: [120 секунд] Логировать: start / end / result_count в [таблицу job_logs / Log::channel('jobs')] Проверить: [php artisan queue:work --once / celery -A app worker]
🔧
Рефакторинг
Выделение Service, TypeScript типизация, оптимизация запроса
Шаблон 8 — Выделить Service из Controller Рефакторинг
Тонкий контроллер + Service-слой. CC знает паттерн, но нужно указать конкретные методы.
Шаблон: Service из Controller Выдели бизнес-логику из [ControllerName] в Service. Controller: [app/Http/Controllers/OrderController.php] Методы для выноса: [store(), update(), cancel()] Service создать: [app/Services/OrderService.php] Interface: [да — app/Contracts/OrderServiceInterface.php / нет] Правила: - Controller остаётся тонким: только HTTP in/out + вызов сервиса - Service не знает о Request, Response, redirect() - Зависимости через конструктор (DI) - Исключения из Service: пробрасывать наверх, ловить в Controller Не трогать: [routes/, migrations/, тесты] После: убедись что все существующие тесты проходят
Шаблон 9 — Типизация TypeScript Рефакторинг
Добавить строгие типы в JS/TS файл. Указывай куда складывать новые типы.
Шаблон: TypeScript типизация Добавь TypeScript типы в [файл, например: composables/useOrders.ts]. Для каждой функции, переменной и параметра — явные типы. Запрещено: any без обоснования в комментарии Использовать типы из: [types/index.ts] если подходят, иначе создать новые там же Generics: [использовать там где это делает код чище] Проверить: npx tsc --noEmit Проверить линтер: npx eslint [путь к файлу] --fix
Шаблон 10 — Оптимизация запроса Рефакторинг
Медленный SQL или Eloquent запрос. Вставь текущий код и объясни проблему.
Шаблон: Оптимизация запроса Оптимизируй SQL/Eloquent запрос в [файл:метод]. Текущий запрос: [вставь код запроса] Проблема: [медленный — N сек / N+1 / нет индекса / full table scan] Данных в таблице: ~[количество] строк Частота запроса: [каждый запрос страницы / раз в час] Допустимо: - Добавлять индексы через новую миграцию - Менять структуру запроса - Добавить кэш на [N минут] если уместно Проверить: EXPLAIN ANALYZE [запрос]
🧪
Тесты
Pest unit-тест, Feature интеграционный тест, pytest для FastAPI
Шаблон 11 — Pest unit-тест Тест
Unit-тест в Pest (Laravel). Укажи happy path, edge cases и что мокировать.
Шаблон: Pest unit-тест Напиши Pest unit-тест для [Класс::метод]. Файл теста: [tests/Unit/Services/OrderServiceTest.php] Тестировать: - Happy path: [валидные данные → ожидаемый результат] - Edge case 1: [граничное значение → что должно произойти] - Edge case 2: [другой граничный случай] - Ошибка: [InvalidArgumentException при X] Мокать: [PaymentGateway, MailService — через Mockery] Использовать: Mockery, не PHPUnit mock Fixtures: [создать через OrderFactory если нужна модель] Запустить: php artisan test --filter=[TestClassName]
Шаблон 12 — Feature тест API (Laravel) Тест
Интеграционный тест REST эндпоинта: авторизация, валидация, структура ответа.
Шаблон: Feature тест API Напиши Pest Feature тест для [метод] [маршрут]. Файл: [tests/Feature/Api/OrderApiTest.php] Сценарии: 1. Авторизованный + валидные данные → 200/201 + [структура JSON] 2. Неавторизованный → 401 3. Невалидные данные → 422 + поля errors: [список полей] 4. [Специфичный edge case → ожидаемый код и тело] Использовать: RefreshDatabase trait Пользователя создать: [через UserFactory с ролью X] Ответ проверять через: assertJson, assertJsonStructure Запустить: php artisan test --filter=[OrderApiTest]
Шаблон 13 — pytest тест FastAPI Тест
pytest для FastAPI эндпоинта. Указывай fixtures из conftest и что мокировать.
Шаблон: pytest FastAPI Напиши pytest тест для [endpoint, например: POST /api/v1/orders]. Файл: [tests/api/test_orders.py] Использовать: TestClient, fixtures из conftest.py Покрыть: - 200/201: [валидные данные → ожидаемый ответ] - 422: валидация поля [название поля] - 401: запрос без JWT-токена - [Специфичный кейс: дубликат → 409] Мокать: [внешний сервис через monkeypatch / pytest-mock] БД: [использовать тестовую SQLite in-memory / override_dependency] Запустить: pytest [tests/api/test_orders.py] -v
📝
Code Review
Ревью diff и проверка безопасности
Шаблон 14 — Code review diff Code Review
Структурированный ревью git diff с приоритетами. Вставь вывод git diff.
Шаблон: Code review diff Сделай code review этого diff: [вставь git diff] Проверь: - Безопасность: SQL injection, XSS, open redirect, mass assignment, открытые секреты - Производительность: N+1, лишние запросы, неоптимальные структуры данных - Стандарты: PSR-12 / PEP 8 / ESLint нарушения - Тесты: всё ли важное покрыто тестами - Логика: очевидные баги, граничные случаи без обработки Формат каждой проблемы: [severity: critical/warning/suggestion] Описание → как исправить Не исправляй код — только перечисли проблемы
Шаблон 15 — Ревью безопасности Code Review
Security audit файла с фокусом на точки входа пользовательских данных.
Шаблон: Ревью безопасности Проверь [файл] на уязвимости. Особое внимание: - User input: все точки получения данных от пользователя - SQL: параметризованные запросы везде, нет конкатенации - Auth: проверки прав доступа для каждого действия - Secrets: нет захардкоженных ключей, паролей, токенов - Mass assignment: $fillable или $guarded настроен правильно - File upload: валидация типа, имени, размера файла Формат: Уязвимость → severity (critical/high/medium/low) → строка → как исправить Не исправляй автоматически — покажи список для обсуждения
🏗️
Архитектура
ADR и декомпозиция больших задач
Шаблон 16 — ADR (Architecture Decision Record) Архитектура
ADR фиксирует почему выбрано решение. CC помогает структурировать аргументы.
Шаблон: ADR Помоги написать ADR для решения: [название, например: Выбор системы очередей]. Контекст: [Описание проблемы и текущего состояния. Почему нужно принять решение.] Рассматриваемые варианты: - Вариант A: Redis Queue (Laravel встроенный) - Вариант B: RabbitMQ + laravel-queue-rabbitmq - Вариант C: AWS SQS Выбранное решение: [название варианта] Причины выбора: [список ключевых аргументов] Файл создать: docs/adr/[NNNN-название.md] Структура: Context / Decision / Consequences (positive + negative + risks)
Шаблон 17 — Декомпозиция большой задачи Архитектура
Перед сложной задачей — попроси CC разбить её на независимые шаги для последовательного выполнения.
Шаблон: Декомпозиция задачи Декомпозируй задачу на шаги для пошагового выполнения в CC. Задача: [Описание: например — реализовать корзину покупок с оплатой] Стек: [Laravel 11, Vue 3, PostgreSQL, Redis] Ограничения: [не трогать: существующий модуль заказов, API v1] Нужно: 1. Разбить на независимые шаги (каждый: 2–5 файлов максимум) 2. Указать файлы которые создаются/меняются на каждом шаге 3. Написать команду верификации для каждого шага 4. Показать порядок выполнения (что от чего зависит) 5. Оценить риски каждого шага Не реализовывай — только план для согласования
🚀
DevOps
Docker Compose сервис, GitHub Actions workflow, Caddy Caddyfile
Шаблон 18 — Docker Compose сервис DevOps
Добавить новый контейнер в docker-compose.yml. Указывай порт, volumes и healthcheck.
Шаблон: Docker Compose сервис Добавь сервис [название, например: meilisearch] в docker-compose.yml. Файл: [путь/docker-compose.yml] Образ: [getmeili/meilisearch:v1.11] Порт: [7700:7700] Переменные окружения: MEILI_MASTER_KEY: ${MEILI_KEY} MEILI_ENV: ${APP_ENV} Volumes: [meilisearch_data:/meili_data] Depends on: [app] Networks: [внутренняя сеть проекта + proxy если публичный] Healthcheck: [curl -f http://localhost:7700/health || exit 1] Не трогать: существующие сервисы и их конфигурацию Добавить переменную в: [.env.example]
Шаблон 19 — GitHub Actions workflow DevOps
CLI-пайплайн для CI/CD. Указывай секреты и нужно ли кэшировать зависимости.
Шаблон: GitHub Actions Создай GitHub Actions workflow для [задача, например: CI тесты + деплой на сервер]. Файл: .github/workflows/[ci.yml] Триггер: [push to main / PR в main / schedule: '0 3 * * *'] Jobs: 1. test: [PHP 8.3, запустить Pest + покрытие] 2. deploy: [SSH на сервер, запустить deploy.sh] depends-on: [test] only-on: [ветка main] Секреты (из Settings/Secrets): [SSH_KEY, SERVER_HOST, SERVER_USER] Кэшировать: [composer vendor/, npm node_modules/] PHP версия: [8.3] Node версия: [20]
Шаблон 20 — Caddy Caddyfile блок DevOps
Маршрут в Caddyfile для нового домена. Caddy сам получает LE-сертификат.
Шаблон: Caddyfile блок Добавь маршрут в Caddyfile для домена [example.rosveb.ru]. Upstream: [container-name:port, например: myapp-frontend-1:3000] Маршруты: - /api/* → [myapp-backend-1:8000] - /* → [myapp-frontend-1:3000] Заголовки добавить: X-Real-IP {remote_host} X-Forwarded-Proto {scheme} Редиректы: [www → non-www / http → https (автоматически)] Сжатие: [encode gzip zstd — да/нет] Не трогать: существующие блоки в файле После добавления: caddy validate && caddy reload

Анти-паттерны промптов

Десять самых распространённых ошибок которые снижают точность ответа CC:

Ошибка Плохо Хорошо
Без контекста Добавь логин Добавь email+password логин в Laravel 11
app/Http/Controllers/Auth/
Без пути Почини сервис Почини UserService::create()
в app/Services/UserService.php
Без верификации Напиши тест Напиши тест. Запустить:
php artisan test --filter=UserTest
Размытая область Рефактори весь модуль Вынеси метод processOrder()
в OrderService
Без ограничений (ничего не указано) Не трогай migrations/
и .env файлы
Слишком большая задача Реализуй корзину и чекаут Разбей на 5+ отдельных промптов
с шаблоном №17
Без версий Используй Eloquent Laravel 11, Eloquent 11, PHP 8.3
Нет формата ответа Объясни Объясни в 3 пунктах с примером кода
Без стека фронта Напиши компонент Vue 3 + Composition API + TypeScript + Tailwind
Амбигуальность Исправь ошибку Исправь TypeError в строке 42 файла X
Трейс: [...]

Быстрые команды и ссылки на файлы

Горячие клавиши и команды CC которые ускоряют работу с промптами:

Действие Команда / Клавиши
Вставить содержимое файла в промпт @имя-файла или @путь/к/файлу.php
Включить Plan Mode (составить план без выполнения) Shift + Tab × 2
Прервать выполнение Ctrl + C
Переключить на быструю модель /model haiku
Переключить на мощную модель /model opus
Очистить контекст сессии /clear
Редактировать план в Plan Mode Ctrl + G
Просмотр истории промптов / в интерфейсе CLI
Компактный режим (сжать контекст) /compact
Показать текущие настройки /config
Workflow совет: Для сложных задач используй последовательность: шаблон №17 (декомпозиция) → план в Plan Mode → шаблон нужной категории для каждого шага → верификация командой из шаблона. Так ни один шаг не «уедет» в сторону.