Комментарии 4
Точная механика, у меня плагин собран похоже, только два слоя вместо трёх: правила плюс скиллы, references отдельно не выносил, зря, судя по вашему описанию. Больнее всего оказалась не структура слоёв, а формулировка description у скилла: если два скилла описаны слишком похоже, агент иногда подгружает не тот, и это не всегда заметно, оба ведь relevant. Как валидируете пересекающиеся description, кроме ручного прогона на реальных задачах?
Привет, у меня тоже бывает та же проблема. Я добавил три вещи, которые сильно снизили пересечения.
Во-первых проверяю косинусное сходство по эмбеддингам, просто гоняю все описания через модель эмбеддингов и считаю попарную близость. Всё что выше 0.82 - красный флаг, разношу формулировки. Дёшево и ловит именно те случаи, когда два скилла "звучат похоже".
Во-вторых добавил анти-триггеры прямо в описании, не только "используй, когда...", но и явное "НЕ используй, когда..." с границей от соседнего скилла. У меня, например, motion-design про анимации и скролл, а design-foundations - про типографику, цвет, сетку, и в описаниях это разведено конкретными глаголами задачи, а не абстракциями. Плюс якоря типа "прочитай ЭТО перед тем как писать код анимации" - они дают агенту чёткий момент загрузки.
В третьих используй нейронку как судью или типа того: отдельным прогоном скармливаю модели все пары описаний и спрашиваю, может ли одна и та же задача одинаково подходить обоим, и если да - в чём двусмысленность. Ловит смысловые пересечения, которые эмбеддинги пропускают (разные слова, одна суть).
Ручной прогон всё равно оставляю, но уже как финальный чек, а не первичный фильтр - иначе можно очень долго с этим висеть :)
если хочется сразу в код
Ох уж этот код на языке программирования Markdown :))

Как я собрал систему из девяти скиллов для Claude Code, которая не разваливается на длинных