Generate AGENTS.md
Назначение
Сформировать AGENTS.md как операционный контракт для AI‑агента: как собирать проект, где тесты, какие правила код-стайла обязательны, и какие границы/безопасность нельзя нарушать.
Принципы (обязательно)
- Плотность: без «социального шума», только инструкции.
- Детерминизм: формулировки бинарные (делай/не делай), без «старайся/желательно».
- Коротко: цель — примерно 150–200 строк (если проект очень большой — используй иерархию).
- Show, don’t tell: где важно — добавляй 1–3 коротких примера «❌/✅».
- Безопасность: явный раздел Boundaries & Security.
- Устойчивость к ошибкам: проверки предусловий, явные исключения/ошибки, корректный rollback/cleanup.
- SOLID: при описании правил по коду закрепляй принципы (SRP, явные зависимости, тестируемость).
Стратегия размещения (root vs nested)
- Один корневой
AGENTS.md— по умолчанию для малого/среднего репозитория с единым стеком. - Иерархия
AGENTS.md— если монорепо/несколько стеков/папкиapps/,services/,packages/:/AGENTS.md: общие инварианты (безопасность, git, CI, базовые запреты)./apps/<name>/AGENTS.mdили/services/<name>/AGENTS.md: правила и команды конкретного домена.
Сбор фактов о репозитории (перед генерацией)
Собери минимально необходимую информацию, чтобы команды были точными и копируемыми:
- Стек и менеджеры зависимостей:
- Node:
package.json+ lock (pnpm-lock.yaml/package-lock.json/yarn.lock) - Python:
pyproject.toml/requirements.txt - Go:
go.mod - Rust:
Cargo.toml - .NET:
*.sln/*.csproj
- Node:
- Команды:
Makefile,justfile,scripts/,package.json scripts, CI workflow. - Тесты/линтер/форматтер: названия команд и как запустить один тест.
- Структура: ключевые папки и их ответственность (не перечисление ради перечисления).
Если факт неизвестен — не выдумывай. Либо найди в репозитории, либо оставь явный TODO‑placeholder.
Правила редактирования файла (безопасное поведение)
- Если
AGENTS.mdне существует → создайAGENTS.md. - Если
AGENTS.mdуже существует и пользователь явно не просил перезаписать → не модифицируй его.- Вместо этого создай
AGENTS.md.draft(или выведи содержимое в чат) и попроси пользователя применить/заменить вручную.
- Вместо этого создай
- Никогда не добавляй в
AGENTS.mdсекреты/ключи/внутренние URL/PII.
Шаблон содержимого (структура)
Используй структуру ниже. Подставь реальные команды и реалии репозитория. Полный шаблон см. в template.md.
Обязательные разделы:
- Persona / Context
- Architecture / Project Map
- Operations (install/build/test/lint/format + запуск одного теста)
- Code Style (правила + 1–3 примера «❌/✅»)
- Boundaries & Security
- Change policy (как поддерживать файл в актуальном состоянии)
Чеклист качества (перед завершением)
- Команды сборки/тестов/линта копируются и запускаются (без фантазий).
- Указан один менеджер зависимостей (например, pnpm), чтобы не плодить lock‑файлы.
- Есть команда запуска одного теста (unit) и, если применимо, e2e.
- Раздел Boundaries & Security содержит запреты на:
- эксфильтрацию данных,
- вывод секретов,
- деструктивные команды без явного подтверждения,
- удаление файлов без подтверждения.
- Файл короткий, без длинных эссе и «works cited».