У навыка, который никогда не запускается, обычно нет проблем с синтаксисом. Он загружается, есть в списке — и его не выбирают, потому что описание не говорит, когда он применим, либо говорит словами, которыми никто не пользуется. Этот сбой по устройству беззвучен: ни ошибки, ни предупреждения, ни намёка, что что-то не так. Линтер читает файл так же, как загрузчик, сообщает обо всём испорченном, а затем отдаёт почти всё внимание описанию: названа ли ситуация-триггер, хватает ли длины, не начинается ли оно с повторения того, что это навык. Поля, которые загрузчик игнорирует, тоже отмечаются: опечатка в ключе выглядит ровно так же, как рабочий файл.
Возможности
Читает frontmatter настоящим YAML-парсером и показывает место сбоя
Отмечает поля, которые загрузчик не читает — так выглядит опечатка в ключе
Проверяет описание на фразу-триггер и на длину
Показывает длину описания в сравнении с пределом
Проверяет, превышают ли инструкции ту длину, ниже которой они не помогают
Оценка, где ошибки весят больше рекомендаций
Перетащите файл или вставьте текст
Намеренно испорченный пример, чтобы увидеть, что ловится
Как использовать Линтер навыков
Перетащите SKILL.md или вставьте его содержимое
Читайте замечания от худшего к меньшему
Если отмечено описание — правьте его: оно и решает
Проверяйте снова, пока оценка не станет чистой
Пример
Ввод
description: Helps with PDFs
Результат
Warning: says what the skill is, but not when to use it
Самая частая причина, по которой навык так и не выбирают.
Частые ошибки и устранение неполадок
Пишет, что frontmatter нет, хотя он явно есть. — Три дефиса должны быть самой первой строкой: ни пустой строки, ни комментария, ничего выше.
YAML падает на длинном описании. — Описание с двоеточием и пробелом нужно закавычить, иначе YAML прочтёт его как ещё один ключ.
Отмечено поле, которое я использую намеренно. — Неизвестные поля идут как заметки, а не ошибки. Загрузчик их игнорирует; заметка есть потому, что ключ с опечаткой неотличим от правильного.
Ошибок нет, а оценка низкая. — Предупреждения тоже снимают баллы. Обычная пара — описание без фразы-триггера и слишком короткие инструкции.
Часто задаваемые вопросы
Почему навык загружается, но его не выбирают?
Описание сопоставляется с задачей. Если оно описывает только тему — «работает с таблицами», — сопоставлять запрос не с чем. Добавить оборот, называющий ситуацию, типы файлов или слова человека, обычно достаточно.
Что считается фразой-триггером?
Всё, что называет момент применения: «Используйте, когда пользователь просит…», «Всякий раз, когда меняется файл миграции…», «Для задач, связанных с…». Линтер ищет эту форму и предупреждает, если её нет.
Плохо ли длинное описание?
Само по себе нет — предел щедрый, а длина показывается. Вредно длинное описание, которое всё равно не говорит, когда применять навык; сочетание на удивление частое.
Можно проверить чужой навык?
Это хорошее применение. Перетащив навык со стороны, сразу видно, будет ли его описание конкурировать с вашими и не объявляет ли он неожиданные инструменты.
Чистый результат гарантирует, что навык работает?
Нет. Он означает, что файл загрузится и описание имеет ту форму, которая сопоставляется. Хороши ли инструкции — суждение, которого не выносит ни один линтер.
Связанные инструменты
Конструктор навыков — Напишите SKILL.md — frontmatter проверяется по ходу ввода.
Конструктор субагентов — Соберите файл определения субагента с его инструментами и моделью.