Agent Rules (.cursorrules / CLAUDE.md / AGENTS.md)(Правила агентів репозиторію)
Машинозчитувані файли архітектурних регламентів та обмежень у репозиторії, які автоматично монтуються в системний контекст ШІ-агентів для запобігання деградації кодової бази.
1. Огляд концепції та системна проблема
Сучасні LLM тренуються на гігабайтах відкритого коду з GitHub, тому за замовчуванням вони генерують «усереднений» код: застарілі мажорні версії бібліотек, хаотичні патерни імпортів, any у TypeScript або неефективні підходи до обробки помилок. Коли інженер працює в парадигмі вайбкодингу без зафіксованих правил, кожен новий промпт перетворюється на лотерею:
- Агент встановлює застарілий
moment.jsабоaxiosзамість нативногоdate-fnsчиfetch. - Агент змішує архітектурні шари (наприклад, звертається до бази даних напряму з клієнтського React-компонента).
- Агент вигадує власні команди компіляції чи тестування замість існуючих у проекті скриптів.
Agent Rules (файли .cursorrules, CLAUDE.md, AGENTS.md, .cursor/rules/*.mdc) вирішують проблему дрейфу кодової бази. Вони перетворюють внутрішній конвеншн команди на системний контракт, який зчитується середовищем розробки або термінальним агентом ще до початку генерації будь-якого коду.
2. Архітектурна таксономія та ментальна модель
Правила репозиторію поділяються на три рівні ізоляції та активації:
┌─────────────────────────────────────────────────────────────┐
│ РІВНІ ПРАВИЛ АГЕНТА │
├─────────────────────────────────────────────────────────────┤
│ 1. Global / Machine Layer (~/.cursorrules, ~/.claude.json) │
│ Вподобання конкретного розробника (мова, стиль відповідей)│
├─────────────────────────────────────────────────────────────┤
│ 2. Repository Core Layer (CLAUDE.md, AGENTS.md, root rules) │
│ Глобальний стек, заборонені ліби, команди lint / test │
├─────────────────────────────────────────────────────────────┤
│ 3. Scoped / Event-Driven Rules (.cursor/rules/*.mdc) │
│ Активація за glob-маскою (наприклад, API routes, UI, DB) │
└─────────────────────────────────────────────────────────────┘
- Глобальні правила репозиторію (Core Repository Contract):
- Розташовуються в корені проєкту (
CLAUDE.mdдля Claude Code,AGENTS.mdабо.cursorrulesдля редакторів). - Описують критичний мінімум: версії середовища (Node.js 22, Bun, Python 3.12), пакетний менеджер (
pnpm), обов'язковий лінтер та інструкції щодо структури комітів.
- Розташовуються в корені проєкту (
- Контекстні модульні правила (Scoped Domain Rules):
- Файли з метаданими та glob-паттернами (наприклад,
.cursor/rules/database.mdcз фільтромsrc/db/**/*.ts). - Завантажуються в робочу пам'ять моделі виключно тоді, коли агент планує редагувати файли міграцій або ORM-моделі.
- Файли з метаданими та glob-паттернами (наприклад,
- Операційні обмеження (Operational Guardrails):
- Чіткі негативні обмеження (Negative Constraints): «НІКОЛИ не виконувати
git push --force», «НІКОЛИ не модифікувати.env.production», «НЕ додавати нові залежності без явної згоди інженера».
- Чіткі негативні обмеження (Negative Constraints): «НІКОЛИ не виконувати
3. Технічний пайплайн та внутрішня механіка
Життєвий цикл правил під час сесії вайбкодингу:
- Ініціалізація сесії та сканування репозиторію:
IDE або CLI-агент під час старту сканує кореневу папку та службовий каталог
.cursor/rules/чи.agents/rules/. - Аналіз наміру та зіставлення масок (Glob Matching):
Користувач надсилає запит («Створи новий ендпоінт для оплати підписки»). Агент прогнозує зміну файлів у
src/app/api/stripe/route.ts. Движок правил активує правила дляsrc/app/api/**/*.tsіstripe.mdc. - Збірка розширеного системного промпту:
Движок конкатенує:
- Базовий System Prompt моделі;
- Вміст файлу глобального контракту;
- Знайдені модульні правила;
- Поточне дерево відкритих файлів та запит користувача.
- Генерація коду з примусовим дотриманням інваріантів: Модель формує виклик інструменту або код, звертаючись до правил як до обов'язкового системного контексту.
- Валідація пост-генерації:
Якщо агент має доступ до терміналу, він запускає команду валідації, прописану в правилах (наприклад,
pnpm typecheck), перед поверненням фінального звіту інженеру.
4. Практичні інженерні сценарії в продакшені
01. Архітектурні кордони в Next.js 15+ App Router
Файл .cursor/rules/nextjs.mdc з маскою src/app/**/*.tsx запобігає класичним помилкам використання серверних і клієнтських компонентів:
---
description: Архітектурні стандарти Next.js App Router
globs: src/app/**/*.tsx, src/components/**/*.tsx
---
- За замовчуванням усі компоненти є Server Components.
- Директиву 'use client' додавати ЛИШЕ за наявності useState, useEffect або обробників подій onClick/onChange.
- ЗАБОРОНЕНО імпортувати серверні утиліти (db, auth secret) у файли з 'use client'.
- Усі мутації даних виконувати виключно через Server Actions у директорії `src/actions/`.
02. Детермінований запуск тестів для Claude Code
Конфігурація CLAUDE.md гарантує, що термінальний агент використовує виключно правильні скрипти тестування без спроб запустити несумісний глобальний jest:
# Repository Guidelines for Claude Code
## Commands
- Build: `pnpm build`
- Typecheck: `pnpm tsc --noEmit`
- Unit Tests: `pnpm test:unit`
- E2E Tests: `pnpm test:e2e`
## Workflow Discipline
Перед тим як сповістити про успішне виконання завдання:
1. Запусти `pnpm tsc --noEmit`. Якщо є помилки типізації — виправ їх.
2. Запусти `pnpm test:unit` для модифікованих модулів.
3. Не створюй нових файлів без попередньої перевірки наявності існуючих утиліт у `src/lib/`.
03. Примусова типобезпека та Zod-валідація в API
Правило для бекенду унеможливлює використання нетипізованих JSON-пейлоадів у контролерах:
---
description: Стандартизація бекенд-ендпоінтів
globs: src/server/api/**/*.ts
---
- Усі вхідні аргументи запитів повинні проходити парсинг через Zod-схеми (`schema.parseAsync(req.body)`).
- Тип `any` суворо заборонений; при роботі з невідомими даними використовувати `unknown` з наступним type narrowing.
- У разі виникнення бізнес-помилок викидати типізований `TRPCError` або `HttpError` із кодом статусу.
5. Підводні камені, типові помилки та безпека
- Правило-смітник (Rule Bloat & Attention Saturation): Спроба записати у файл правил усю документацію проекту призводить до файлів розміром понад 500 рядків. Це вимиває увагу моделі («Lost in the Middle») і призводить до того, що модель починає ігнорувати ключові настанови. Розбивайте правила на модульні скоупи.
- Суперечливі або конфліктуючі правила: Якщо глобальний
CLAUDE.mdвимагає використанняpnpm, а застарілийREADME.mdабо локальне правило міститьnpm install, модель може зациклитися в галюцинаціях менеджера пакетів. - Небезпека витоку чутливих даних: Ніколи не вказуйте токени доступу, паролі до тестових баз або персональні ключі API у правилах репозиторію. Усі змінні середовища повинні описуватися лише як абстрактні імена (наприклад,
DATABASE_URL is required in .env.local). - Відсутність версіонування: Правила агентів повинні розвиватися разом із кодовою базою в системі контролю версій Git. Зміна технологічного стеку повинна супроводжуватися атомарним оновленням відповідних файлів правил у тому самому коміті.
FAQ: Agent Rules (.cursorrules / CLAUDE.md / AGENTS.md)
Пов'язані терміни
Системний промпт (System Instructions & Metaprompting)
Пріоритетний метаконтекстний блок інструкцій, що передається на нульовій позиції контекстного вікна і визначає роль, правила безпеки, доступні інструменти та межі поведінки агента.
Spec-Driven Development (SDD)
Провідна методологія інженерії програмного забезпечення епохи ШІ, де створення, узгодження та фіксація структурованої машинно-читабельної специфікації обов'язково передує генерації коду.
Cursor IDE
Провідне AI-перше середовище розробки на базі ядра VS Code, що інтегрує мультифайловий генератор Composer, предиктивне автодоповнення Cursor Tab та векторну індексацію кодової бази.
Claude Code
Офіційний термінальний агент розробки від Anthropic, що працює безпосередньо в командному рядку через Claude 3.7 Sonnet з нативною підтримкою Bash, Git, файлової системи та протоколу MCP.