Про скиллы
Что это?
В Claude Code или Codex скиллы - это добавка к промпту, который отправляется в LLM. Эта добавка в базе содержит md-файл (Skill.MD), но к ней можно добавлять скрипты, ассеты и много что ещё. Скилл описывает в формате Markdown, что нужно сделать для решения той задачи, которой и посвящён скилл.
Как жить без скиллов?
Давайте рассмотрим простую задачу. Допустим, мы работаем в MCA и постоянно пилим новые микросервисы. Т.е., создание и выпуск нового микросервиса для нас - это рядовая повторяющаяся задача. В до-ИИшную эпоху мы делали это с помощью шаблонов сервиса, который обеспечивал нам соответствие техстеку, повторяемость и унификацию. Конечно, ИИшке тоже можно сказать: возьми вот там шаблон и на основании его склепай новый сервис. Однако, результат может удивить: модель может затащить в новый сервис не только то что надо, но и то что не надо совершенно: чужую доменную модель, ненужные сервисы, устаревшие подходы. И, конечно, это всё можно исправить. В процессе дискуссии мы, конечно, утрясём сервис. Но, при этом потратим время, токены и нервы на несколько итераций "причёсывания". И так - каждый раз, когда мы хотим завайбкодить новый микросервис. А что если бы наш ИИ-агент мог бы запилить новый микросервис в рамках всех ограничений с первого раза?
Это работа для скиллов!
Очень просто. Просим нашего агента (допустим Claude Code): "Напиши скилл, который создаёт новый микросервис с учётом следующего стека: .NET для кода, PostgreSQL для БД, Prometheus для сбора метрик... " - и всё что мы хотим видеть в новом (каждом новом) сервисе. Вычитываем этот скилл, дорабатываем его, определяем правила вызова и, при необходимости, создаём команду для вызова через "/". По умолчанию скилл складывается в папку .claude, где идёт работа. Но, можно попросить убрать его в глобальный .claude. Во втором случае он будет действовать на все новые проекты этого класса (создание новых микросервисов).
Можно, а зачем? (с)
Теперь, если нам нужно создать новый микросервис, нам больше не нужны шаблоны и длинные промпты. У нас есть скилл. Мы просто просим клодкод написать этот микросервис, и агент его пишет! Так? Да, НО. Что если клодкод не нашёл скилл и начал писать "с нуля"? Тогда мы не получаем выигрыша. Лучше остановить процесс и явно указать агенту использовать скилл.
Чего не дадут скиллы?
Скиллы не напишут код лучше. Скиллы не сделают код безопасным. Скиллы - это повторяемость, экономия токенов и времени, но не замена хорошему промпту и инженерным знаниям.
Рекомендации
Короткий набор скиллов от Anthropic https://github.com/anthropics/skills/tree/main. Самое ценное там - это скилл skillcreator. Скилл для создания скиллов.