Давайте честно: часто скачиваете пачки скиллов по «рекомендациям» блогеров? А потом удивляетесь, почему они не работают? Тогда этот пост для вас.
Скиллы вы качаете из подборок на английском языке, а проект у вас на русском. И с Claude вы общаетесь на русском.
Claude выбирает скилл по описанию. Пока скилл не выбран, Claude видит из фронтмэтера только name и description, полный текст он грузит уже после выбора. Ты пишешь «глянь мой код», в описании стоит «Reviews pull requests and suggests improvements», и Claude проходит мимо.
Что я теперь правлю в каждом скачанном скилле:
1. name: строчная латиница, цифры и дефис, до 64 знаков. Скилл с name: cmd>skill-name Claude у меня не вызван ни разу (попадается и такой мусор)
2. description: на языке твоих запросов, главный сценарий первой фразой. Description вместе с when_to_use обрезается после 1 536 знаков.
3. when_to_use: твои фразы-триггеры.
Было:
description: Reviews pull requests and suggests improvements.
Вторая проблема в квоте на место. Описания всех скиллов висят в контексте всю сессию, и под них отведён 1% окна. Если не влезли, первыми выпадают описания давно не вызванных скиллов. От них остаётся одно имя, а по имени Claude скилл почти не узнаёт.
Проверяется одной командой: /context, строка Skills. У меня 7,3 тысячи токенов, это 0,7% окна при лимите 1%. Сколько весит каждый скилл, покажет /skill-doctor.
Лимит можно сдвинуть в settings.json параметрами skillListingBudgetFraction (доля контекста под описания) и skillListingMaxDescChars (длина одного описания). Но молчащие скиллы съедят и расширенный лимит, поэтому я начинаю с чистки:
→ в /skills выключаю лишнее или оставляю ему только имя; → ставлю disable-model-invocation: true скиллам, которые зову сам: их описание не занимает места; → держу скиллы в проекте, потому что личные из ~/.claude/skills грузятся во все проекты (глобальные скиллы).
Настройку скиллов и контекста Claude Code на задачах 1С подробно разбираю на курсе «AI-арсенал 1С-разработчика».
Перешли пост коллеге, который ставит скиллы пачками.