Бонусы за приглашения

Как работают бонусы за приглашения

Поделитесь ссылкой. Когда друг зарегистрируется по ней и пополнит баланс, вы получите указанный бонус за его последующие пополнения.

Skills в Claude Code: как оставить нужные возможности без лишнего контекста

Практический аудит skills в Claude Code: как разделить always-on правила и контекст по требованию, настроить triggers и проверить обнаружение инструмента.

Содержание

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

Как skills влияют на стартовое окно сессии

В обычной сессии Claude Code помещает в контекст имя и description skills со статусом on, чтобы модель могла выбрать нужный. В режиме name-only остаётся только имя; user-invocable-only или disable-model-invocation: true скрывают описание от модели, а off скрывает skill полностью. Полное тело SKILL.md загружается после вызова и остаётся в контексте этой сессии. Supporting files читаются по необходимости, а scripts выполняются как инструменты, а не целиком вставляются в prompt. Эти правила описаны в официальной документации Claude Code Skills.

Стоимость навыка в контексте складывается из трёх составляющих:

  1. Системный анонс (описание и trigger): краткое имя и блок description в frontmatter файла SKILL.md. Эта часть находится в оперативной памяти агента, позволяя ему сопоставлять запрос пользователя с нужным инструментом.
  2. Основное тело инструкции: детальные правила, шаги и примеры. Модель загружает их только в момент активации соответствующего навыка.
  3. Вспомогательные ресурсы и скрипты: reference-файлы читаются по явному маршруту, а scripts выполняются через CLI-команды.

Основная ошибка при проектировании навыков — перенос объёмных справочников, дампов документации и жестких правил кодогенерации непосредственно в description или в глобальный CLAUDE.md. В результате базовый контекст сессии оказывается перегружен до начала работы.

При работе через собственный BetterToken API Key откройте Dashboard и сопоставьте тестовые вызовы по модели, времени, статусу, input, output и cache Token. Это помогает проверить фактический API-workflow, но не показывает, какой локальный skill занял контекст, и не заменяет /context. Актуальную настройку Claude Code сверяйте в BetterToken Docs.

Skills становится слишком много: начните с /skill-doctor

Когда список уже трудно оценить вручную, запустите /skill-doctor в локальной сессии Claude Code. Команда показывает стоимость skills в контексте и частоту вызовов, выделяя загруженные, но не использованные навыки. Интерактивный отчёт открывается на вкладке Stats менеджера /plugin; он не охватывает встроенные и корпоративные skills. См. описание отчёта.

Используйте отчёт как начало проверки:

  1. Выберите проект, где регулярно работаете, и сопоставьте список с его типичными задачами. Отсутствие вызовов ещё не означает, что skill бесполезен: процедура восстановления может понадобиться раз в несколько месяцев.
  2. Для редко нужного personal или project skill выберите в /skills режим user-invocable-only (метка user-only). Если навык больше не нужен в этом окружении — off. Plugin skills управляйте через /plugin.
  3. Откройте новую сессию, сравните /context и выполните одну обычную задачу плюс явный вызов оставленного редкого skill. Снижение контекста полезно, только если нужный сценарий сохранился.

Команда отмечена в релизе v2.1.261, но текущая документация указывает минимум v2.1.252. Проверьте свою версию через claude --version: доступность также зависит от загрузки feature flags. Через Remote Control отчёт недоступен — запускайте его в терминале машины, где работает сессия. Если команды нет, продолжайте ручную инвентаризацию ниже.

Инвентаризация skills: частота и сценарии

Для оптимизации составьте список project skills (.claude/skills/) и personal skills (~/.claude/skills/). Nested skill становится доступен после первого чтения или изменения файла в соответствующем подкаталоге, а не обязательно при старте. Plugin skill использует namespace плагина и не управляется через skillOverrides. Synced skill обнаруживается по-разному в локальной сессии, Cowork и cloud. Поэтому сопоставляйте файловый инвентарь с /skills в каждом реально используемом окружении.

Сгруппируйте их по частоте применения:

Категория частотыПримеры задачОптимальное размещение
Ежедневные (Always-on)Базовый code style, запуск тестов, проверка git statusКомпактные правила в CLAUDE.md или базовый skill
Ситуативные (Task-triggered)Миграция базы данных, генерация OpenAPI клиентов, релизные чеклистыОтдельный skill с узким description
Редкие / АрхитектурныеПервичный аудит безопасности, развёртывание нового сервисаОтдельный skill в режиме user-only с явной командой и scripts

Ключевой принцип: редкая процедура не обязана быть always-on. Оставьте её доступной по явному вызову, если она нужна для безопасности, восстановления или выпуска, и отключайте только после проверки реальных сценариев.

Куда перенести правило, которое не должно быть всегда в контексте

Возьмите одну задачу: обновлять сгенерированную документацию через исходники и генератор. Её части требуют разных механизмов:

Что требуетсяГде разместитьЧто проверить
Напоминать о способе обновления почти в каждой задачеКороткое правило в CLAUDE.mdФайл действительно загружен в новую сессию
Выполнять процедуру только при обновлении документацииОтдельный skillЯвный вызов находит источник и документированную команду генератора
Отклонять конкретную попытку записи до выполненияHook PreToolUseНужный инструмент получает отказ, файл не меняется
Независимо проверить результатSubagent с необходимыми инструментамиОтчёт содержит проверку; права не шире задачи
Получать данные из внешней системыMCP-соединениеДоступен нужный сервер и один разрешённый запрос

CLAUDE.md и skill дают модели инструкции. Наличие фразы «не редактировать generated» ещё не доказывает, что запись заблокирована. У Hook нужно проверить событие, matcher и фактический отказ: запрет для Write не ограничивает запись через Bash. Отдельный контекст subagent тоже не делает его автоматически read-only. Эти различия описаны в обзоре механизмов и справочнике Hooks.

Не переносите одну процедуру целиком во все пять мест. Оставьте в CLAUDE.md короткое правило и ссылку на skill, а проверку действия оформите отдельно там, где она нужна. Для примеров используйте уже разобранные правила CLAUDE.md, проверку завершения через Stop Hook и выбор MCP или команды. Stop Hook проверяет завершение работы; он не заменяет проверку до записи через PreToolUse.

Разделение Always-on правил и фоновых ресурсов

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

1. Оптимизация YAML frontmatter

Поле description должно содержать чёткие условия срабатывания (trigger terms) и краткую суть, избегая общих рассуждений:

---
name: db-migrator
description: >-
  Используется для проверки и применения миграций Prisma при изменении схемы базы данных.
---

Избегайте длинных списков примеров кода в самом заголовке. Подробные таблицы и примеры выносите в подкаталог references/.

2. Делегирование логики детерминированным скриптам

Вместо того чтобы заставлять LLM генерировать сложные команды парсинга или валидации по длинной текстовой инструкции, поместите логику в shell- или Python-скрипт в каталоге scripts/:

<!-- Внутри SKILL.md -->
Для проверки целостности схемы запустите:
```bash
python3 "${CLAUDE_SKILL_DIR}/scripts/validate_schema.py" --strict
```

Так SKILL.md хранит маршрут и критерии, а повторяемую проверку выполняет один версионируемый script. Это улучшает воспроизводимость, если script сам протестирован и вызывается с одинаковыми входами. Никогда не отключайте обязательные проверки безопасности, линтеры или валидаторы типов ради экономии Token.

Тестирование обнаружения и контроль вызовов

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

Шаг 1: Разделите четыре проверки

Не подменяйте валидацию YAML командой test -f. Проверьте отдельно:

  1. SKILL.md существует;
  2. frontmatter разбирается YAML-парсером и содержит непустой description;
  3. ссылки на references/, examples/ и scripts/ разрешаются от каталога skill;
  4. script запускается на безопасном тестовом входе и возвращает ожидаемый exit code.

Исполняемый бит для Python-файла не обязателен, если он вызывается через python3; важнее существование файла, синтаксис и реальный тест.

Шаг 2: Проверьте видимость и явный вызов

Откройте свежую сессию, выполните /skills и подтвердите имя, источник и режим invocation. Затем вызовите /db-migrator явно на безопасной тестовой задаче. Это отделяет ошибку обнаружения от ошибки самой инструкции.

Шаг 3: Проверьте автоматический trigger

Откройте ещё одну чистую сессию и задайте вопрос, соответствующий trigger, не называя skill напрямую:

«Нужно обновить модель пользователя в схеме базы данных и проверить миграцию».

Агент должен:

  1. Опознать задачу по описанию в description.
  2. Загрузить тело инструкции db-migrator.
  3. Предложить запуск подготовленного проверочного скрипта.

Шаг 4: Измерьте listing и стартовый контекст

Используйте /skill-doctor для поиска неиспользуемых skills, как описано выше. Выполните /doctor: текущая документация Claude Code рекомендует его для оценки стоимости skill listing и крупнейших contributors. Затем выполните /context и запишите размер строки Skills. После одного изменения — например, сокращения description или перевода редкого skill в user-only — повторите те же команды в новой сессии.

Сравнивайте не только Token, но и качество: should-trigger запрос должен вызвать нужный skill, should-not-trigger — не вызвать его, а проверка задачи должна пройти. Классифицируйте записи как always-on, auto-triggered, user-only, name-only или off. Не удаляйте security и recovery skills только потому, что они нужны редко.

Готовы оптимизировать LLM workflow?

Подключите единый API, управляйте ключами и контролируйте расходы на AI-модели в BetterToken.

Начать бесплатно