AI Tooling Starter Kit: один контекст для Cursor, Claude, Gemini и Perplexity

Каждый новый репозиторий начинается одинаково: открыл Cursor — написал .cursorrules. Переключился на Claude Code — набросал CLAUDE.md. Потом кто-то из команды зашёл через Gemini и снова объясняет модельке, что это за проект, куда нельзя лезть и что считается «готово». Контекст размазан по пяти файлам, половина устарела после первого же рефакторинга, а токены уходят не на задачу, а на пересказ архитектуры.

Я устал от этого цикла и собрал AI Tooling Starter Kit — открытый каркас (MIT), который одной командой раскладывает единую модель контекста под Claude, Cursor, Antigravity/Gemini и Perplexity. Ниже — зачем, как устроено и какую пользу это даёт на практике.

Проблема не в инструментах, а в дублировании

Инструменты сами по себе хорошие. Ломается связка «человек ↔ агент ↔ репозиторий»:

  • Нет единого источника истины. Cursor читает одно, Claude — другое, Perplexity вообще живёт вне репо.
  • Контекст дрейфует. Поменяли стек или запреты — обновили один файл, забыли второй.
  • Онбординг дорогой. Новый человек или новый агент заново «знакомится» с проектом за ваши токены.
  • Безопасность размазана. «Не коммить .env» написано в одном месте, а в другом — нет; агент действует по тому файлу, который открыл.

Нужен не ещё один промпт, а контракт проекта: что это, какой стек, как менять, чего никогда не делать, когда задача считается done.

Модель v2: AGENTS.md как SoT

В ките ядро — файл AGENTS.md. Его уже читают нативно Cursor, Google Antigravity/Gemini и другие AGENTS-совместимые агенты. Остальные файлы — тонкие редиректы и специфика инструмента, а не вторая копия тех же правил.

Файл Кто читает Роль
AGENTS.md все агенты ★ проект, стек, структура, статус, правила изменений, безопасность, DoD
.cursorrules + .cursor/rules/*.mdc Cursor редирект + детальные правила
CLAUDE.md + .claude/ Claude Code / Cowork редирект + commands, agents, settings
GEMINI.md Antigravity / Gemini агент-специфика (при конфликте — приоритет)
PERPLEXITY.md Perplexity вставляемый бриф: роль, границы, формат ответа
.ai/ + .<tool>/artifacts/ все карта раскладки и артефакты, переживающие сессию

Почему не .ai/shared-context.md, как в v1: лишний слой косвенности. Если инструмент умеет читать AGENTS.md сам — пишите туда. Меньше файлов «указателей, которые никто не открывает».

Этот же подход уже стоит у меня на боевом пайплайне блога: агент не угадывает, что секреты только в .env, а wp_id руками не трогать — это в AGENTS.md.

Какая польза на практике

1. Один раз описал — все инструменты говорят на одном языке.
Стек, структура каталогов, текущий приоритет, запреты и Definition of Done живут в одном месте. Смена IDE или агента не обнуляет договорённости.

2. Экономия времени и токенов.
Меньше «расскажи про проект с нуля» в каждом чате. Агент стартует с карты, а не с раскопок по README и git log.

3. Безопасность как код, а не как устная договорённость.
Секции NEVER и human-in-the-loop для необратимых операций попадают в контекст до первой опасной команды — не после инцидента.

4. Онбординг людей и агентов одинаковый.
Новый участник читает AGENTS.md. Новый агент — тоже. Один документ вместо «спроси у Сергея в Telegram».

5. Кросс-платформенность без сюрпризов.
Три эквивалентных скрипта (Bash, Python stdlib, PowerShell 5.1/7) дают побайтово одинаковый результат. CI гоняет ubuntu + windows-latest, dry-run, идемпотентность и сравнение деревьев. На Windows не нужно «чуть-чуть другой» scaffold.

6. Идемпотентность.
Без --force / -Force существующие файлы не трогаются. Можно запускать повторно и начинать с -DryRun.

Быстрый старт

Репозиторий: github.com/sbezpalov/ai-tooling-starter-kit.

# macOS / Linux
./init-ai-tooling.sh --name my-project --desc "Что это за проект"

# Windows (PowerShell)
.\init-ai-tooling.ps1 -Name my-project -Desc "Что это за проект"

# Любая ОС, Python 3 без зависимостей
python3 ./init_ai_tooling.py --name my-project --desc "Что это за проект"

Сначала удобно посмотреть план:

.\init-ai-tooling.ps1 -Name my-project -Desc "Пилот" -DryRun

После прогона:

  1. Заполните TODO в AGENTS.md — стек, структура, статус, маршруты доставки, проектные запреты.
  2. При необходимости добавьте доменные правила в .cursor/rules/*.mdc и роль в PERPLEXITY.md.
  3. Закоммитьте scaffold отдельным коммитом — это инфраструктура команды, не «мелочь в том же PR, что фича».

Глобально можно повесить алиас или положить скрипт в ~/bin — тогда новый git-клон получает AI-каркас за одну команду.

Когда ставить не «в лоб»

Скрипт ничего не удаляет и без force не перезаписывает. Но на проекте со своей зрелой раскладкой (свои .cursor/rules, уже жирный AGENTS.md, скиллы) возможны частичные дубли вроде 00-project.mdc рядом с генерик 000-project.mdc. Тогда правильный путь: сделать ваш контент основой AGENTS.md и убрать дубли вручную — не --force поверх живого соглашения.

Миграция с v1 (хаб в .ai/shared-context.md): снести v1-хвосты и накатить v2 с --force — команды есть в README репозитория.

Takeaway

AI-инструменты размножаются быстрее, чем команды успевают договориться о контексте. Побеждает не тот, у кого «самый умный» агент, а тот, у кого у агента есть явный контракт проекта: что это, как менять, чего не трогать, когда done.

AI Tooling Starter Kit — способ зафиксировать этот контракт одной командой и переиспользовать его в каждом новом репозитории. Открытый MIT: берите, форкайте, встраивайте. Если найдёте расхождение между тремя скриптами — это баг: CI как раз для того и стоит.

Дальше ценность не в самом scaffold, а в том, насколько честно и коротко вы заполните AGENTS.md. Пустой шаблон не экономит токены. Заполненный — да.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.