💬 Промпт-шаблоны для 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 → шаблон нужной категории для каждого шага → верификация командой из шаблона. Так ни один шаг не «уедет» в сторону.