Вообще, конечно, о многом, что я делаю, я рассказывать не могу, потому что там какой-то херилиард ноу-хау и коммерческих тайн компаний. Но я точно могу о разном общем. Вот, например. Простая инструкция для корневого файла инструкций (у меня - claude.md)
Многие мне говорили, что конечно же они так делают. Но при проверке оказывалось, что нет...
## Субагенты: модель выбирается, а не наследуется
Действует во всех проектах. Нарушение — дефект, а не стилистика.
1. **Субагент никогда не запускается на модели родителя по умолчанию.** В каждом вызове Agent модель указана явно. Исключение — `subagent_type: "fork"`: форк всегда наследует родителя, поэтому форк не используется там, где задаче нужен другой класс модели.
2. **Перед первым запуском субагента в проекте должен существовать `.claude/SUBAGENT-MODELS.md`** — карта «класс задачи → модель» для этого проекта. Нет файла — сначала создать его (скилл `subagent-model-policy`; если он недоступен — вручную: список реально доступных моделей с датой проверки, карта с фолбэком на каждый класс, лестница эскалации, жёсткие правила, порядок ревизии). Файл коммитится в репозиторий.
3. **Базовая лестница.** Проектный документ уточняет её под свою специфику, но не отменяет:
- `fable` — самое сложное: архитектурные решения, противоречивые требования, разрешение неоднозначностей, финальный вердикт по спорным местам;
- `opus` — **весь кодинг**: написание, рефакторинг, отладка, миграции, ревью кода; плюс дорогие ошибки, которые не ловятся тестом, также - сложные, не кодинговые задачи;
- `sonnet` — исследование с внятным критерием, тесты по готовой спецификации, документация, структурированные извлечения;
- `haiku` — механика: поиск по файлам, сбор списков, классификация, форматирование, парсинг вывода.
4. **Дешевле — первым.** Берётся самый дешёвый класс, который правдоподобно закрывает задачу; при провале — эскалация на один уровень, максимум две эскалации, дальше остановка и доклад. Оптимизируется суммарная стоимость проекта, а не стоимость отдельного вызова.
5. **`CLAUDE_CODE_SUBAGENT_MODEL` в settings.json — страховка, а не разрешение.** Она делает забытый `model` дешёвым вместо унаследованного. Забытый `model` остаётся дефектом.
6. **Модель, названная в карте, должна быть реально доступна.** Для каждого класса указан фолбэк: молчаливый откат на модель родителя — то самое нарушение, ради которого это правило существует.
7. **Каждый запуск субагента пишется в `.claude/subagent-cost-log.md`**: класс задачи, модель, была ли эскалация, исход. Лог — единственное основание для правки карты.