almdev Технический блог

Карта репозитория для агента: AGENTS.md, CLAUDE.md, .ai/
Три файла контекста и один способ не дать им разъехаться.

Файлов контекста несколько, читают их разные инструменты, содержимое начинает расходиться. Разбираю раскладку: короткий указатель, подробное руководство, каталог с пакетом скиллов и агентов, а также разделы, которые реально окупились.

Подкатегория: Воркфлоу

Чтение
5 мин
Технологии / версии
Coding agent · Воркфлоу · Laravel · Документация
Серия
Цикл «Воркфлоу» · часть 1 из 5
11 июн 2026 · 5 мин · 4 просмотра · AI
Два файла контекста и папка с пакетом скиллов и агентов
Воркфлоу 06/2026

В корне блога лежат два файла контекста и один каталог. Двадцать семь строк, триста двенадцать строк и пакет из шестнадцати скиллов с двенадцатью агентами.

Пришёл я к этому не сразу. Промежуточная стадия была хуже, чем один большой файл: три файла с пересекающимся содержимым, которое разъезжалось со скоростью примерно одна ложь в месяц.

Кто что читает

Начну с неприятного: единого стандарта нет. Разные инструменты ищут контекст в разных местах, и с этим приходится жить.

CLAUDE.md      короткий указатель, читается автоматически
AGENTS.md      подробное руководство, читается по ссылке или по запросу
.ai/skills/    процедуры, подключаются по описанию
.ai/agents/    исполнители, выбираются по описанию
.claude/       часть скиллов и агентов, проброшенных симлинками

Раскладка выглядит избыточной, пока не поймёшь принцип: один источник содержимого, несколько точек входа. Файлы не дублируют друг друга, они по-разному подробны.

Указатель и руководство

CLAUDE.md у меня двадцать семь строк. В нём стек, три команды и пять правил. Всё.

## Контекст
Laravel 13 + Filament 5 технический блог. PostgreSQL, Redis, Docker Compose.

## Команды
docker compose --env-file .local/.env -f .local/docker-compose.yml \
  exec -T webserver php artisan test

## Правила
- Язык интерфейса и контента: русский
- Filament-ресурсы — каждый в отдельной папке
- Публичные Blade-шаблоны наследуют layouts/blog.blade.php

Первая строка файла — ссылка на подробное руководство. Это единственное, что связывает два файла, и этого достаточно.

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

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

Что дублировать сознательно

Полного запрета на дублирование у меня нет, есть правило про два случая.

Дублируется то, что нужно постоянно и меняется редко. Команда запуска внутри контейнера стоит и в указателе, и в руководстве, и в телах пишущих агентов. Три копии, меняются раз в год, а нужны в каждой второй задаче.

Не дублируется то, что меняется вместе с кодом. Список моделей, описание связей, перечень ресурсов админки — это живёт в одном месте и по возможности вообще не описывается словами. Раздел с моделями у меня в руководстве есть, и он самый гнилой из всех: устаревает быстрее, чем я его правлю.

Между этими двумя случаями — ссылка. В руководстве стоит «дизайн — читай docs/DESIGN.md и общий контракт соседнего проекта». Пересказывать дизайн-систему в файле контекста бессмысленно: она длинная и живёт своей жизнью.

Разделы, которые окупились

Из восемнадцати разделов пользу приносят не все. Три окупились так, что я переношу их в каждый новый проект.

Автономность. Первый раздел файла, десять строк. Он говорит: выполняй задачу до конца, не спрашивай подтверждений на каждом шаге. И тут же перечисляет исключения — удаление того, что не создавал в этой сессии, отправка в удалённый репозиторий, действия вне рабочего каталога.

До этого раздела половина сессий уходила на диалог «продолжить? да, продолжить». После — не уходит. Исключения при этом соблюдаются, потому что они перечислены конкретно, а не описаны принципом.

Конвенции. То, чем проект отличается от типичного проекта на Laravel: раскладка ресурсов админки по папкам, передача списка рубрик во все публичные шаблоны, вывод пользовательского HTML только через очиститель. Три десятка строк, каждая — след правки после ревью.

Частые задачи. Пять-шесть типовых сценариев с порядком действий: добавить пост, завести рубрику, поменять настройки сайта. Раздел выглядит как документация для человека, а работает как маршрут: он называет затрагиваемые файлы, и по нему видно, что задача про контент — это сидер, а не админка.

Раздел «чего здесь нет» я упоминал в цикле про промпты и повторю: он бьёт по достройке недостающего из типичного проекта. У блога это «ролевой модели нет, есть флаг администратора» и «API наружу нет».

Каталог .ai/ как пакет

Скиллы и агенты я держу в отдельном каталоге, а не в корне и не в служебной папке конкретного инструмента.

.ai/
├── README.md      что здесь лежит и чем скилл отличается от агента
├── skills/        шестнадцать процедур
└── agents/        двенадцать исполнителей

Причин две. Первая: инструментов несколько, и привязка к одному из них означает переезд при смене. Вторая: каталог с индексом читается человеком. Я туда заглядываю сам, когда забываю, как называется нужный скилл.

Индекс — файл на пятнадцать строк, в котором таблица из двух строк и абзац про разницу между скиллом и агентом. Полные списки живут в руководстве, чтобы не иметь двух перечней.

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

Как это не разъезжается

Одна правка — один источник. Звучит банально, но у меня для этого есть три конкретных приёма.

Первый: перечни живут в одном месте. Список скиллов и агентов — только в руководстве. В индексе каталога — ссылка на этот раздел, а не копия.

Второй: содержимое ссылается вниз, а не вверх. Руководство ссылается на скиллы, скиллы на справочники. Обратных ссылок стараюсь не заводить: они устаревают первыми, потому что при переименовании о них не вспоминают.

Третий: правило перечитывания. Правлю тело агента — смотрю его фронтматтер. Правлю скилл — проверяю, не пересказан ли он в руководстве. Это ручная дисциплина, и она подводит: расхождение между телом одного агента и его правами я нашёл спустя месяцы.

Что осталось

Раскладка одинаковая в тринадцати репозиториях, и это её главная ценность: возврат к проекту через полгода не начинается с поиска, где что лежит.

Чего я не решил — размера руководства. Триста двенадцать строк для файла, который читается целиком, — много. Правильный размер, по моим ощущениям, сотня. Резать больно: каждый раздел когда-то появился по делу. Скорее всего, половина разделов должна стать скиллами, и это работа на вечер, который я откладываю с весны.

Серия

Цикл «Воркфлоу»

#coding-agent #workflow #laravel #dokumentaciya #ekosistema