Skills
Skills — это директории с файлом SKILL.md, которые обучают агента выполнению специализированных задач. Kodik автоматически обнаруживает skills при запуске и предоставляет их агенту. Агент самостоятельно решает, когда skill релевантен, и применяет его. Пользователи могут явно вызывать skills через slash-команды.
Формат файла SKILL.md
Заголовок раздела «Формат файла SKILL.md»Каждый skill — это папка, содержащая файл SKILL.md. Метаданные skill задаются в YAML-фронтматтере:
---name: my-skilldescription: Что делает этот skill и когда его использовать.user-invocable: truedisable-model-invocation: false---
## Обзор
Опишите назначение skill. Пишите как инструкции для агента.
## Рекомендации
- Предпочитай X- Всегда делай Y- Избегай ZПоля фронтматтера
Заголовок раздела «Поля фронтматтера»| Поле | Обязательно | Описание |
|---|---|---|
name | Да | Уникальный идентификатор skill (строчные буквы, дефисы вместо пробелов, максимум 64 символа). Используется для поиска skill и в имени slash-команды. |
description | Да | Описание того, что делает skill и когда его использовать. Агент использует описание для решения о релевантности (максимум 1024 символа). |
user-invocable | Нет | Отображается ли skill как slash-команда в меню /. По умолчанию true. При false skill скрыт из меню, но агент всё равно может загрузить его автоматически. |
disable-model-invocation | Нет | Запрещает агенту загружать skill автоматически. По умолчанию false. При true skill доступен только через явную slash-команду. |
Расположение skills
Заголовок раздела «Расположение skills»Kodik обнаруживает skills из следующих мест (перечислены в порядке убывания приоритета; при совпадении имён побеждает источник с более высоким приоритетом):
| Расположение | Область | Приоритет |
|---|---|---|
<выбранный-workspace>/.kodik/skills/ | Workspace выбранного чата | 4 |
<выбранный-workspace>/.agents/skills/ | Совместимость, только чтение | 3 |
~/.kodik/skills/ | Пользователь (глобально) | 2 |
~/.agents/skills/ | Совместимость, только чтение | 1 |
| Skills из плагинов | Namespaced-элементы плагина | — |
Skills из плагинов имеют имена с префиксом в виде идентификатора плагина (<plugin-id>:<name>).
В multi-root окне Kodik читает только workspace, записанный в выбранной сессии чата, и не объединяет все открытые папки. Skills из workspace .agents отображаются в Settings даже для недоверенного workspace, но не попадают в prompt и не вызываются до предоставления доверия. Settings и Marketplace никогда не изменяют и не удаляют содержимое .agents: его можно открыть для проверки, а затем скопировать в соответствующую строчную папку .kodik, если управление должен взять Kodik. Другие файлы внутри .agents не становятся входными данными Kodik.
При первом запуске с новой схемой хранения Kodik переносит глобальную папку ~/.kodik/Skills в строчную ~/.kodik/skills до открытия рабочего окна. Существующее содержимое lowercase имеет приоритет; точные дубликаты объединяются, а конфликты остаются доступными в ~/.kodik/.migration/global-assets-v1/. После зафиксированного перехода uppercase-папки skills глобального уровня и workspace неактивны. Папку, созданную там позднее, нужно вручную перенести в lowercase-владельца.
Kodik не переходит по символическим ссылкам внутри принадлежащих ему путей skills и плагинов. Связанный корень, категория, директория skill, файл SKILL.md, манифест плагина или другая конфигурация плагина отображается как неактивная, чтобы внешнее содержимое не могло незаметно получить владение prompt, hooks, secrets или состоянием приложения. Если Kodik должен загружать или изменять содержимое, скопируйте его в каноническую строчную директорию вместо создания ссылки.
Идентификаторы сравниваются в нормализованном нижнем регистре. При совпадении на разных уровнях активен источник с более высоким приоритетом, а остальные отмечаются в Settings как перекрытые. Два определения с одинаковым идентификатором на одном уровне помечаются как неоднозначные, и ни одно из них не активируется.
Как агент применяет skills
Заголовок раздела «Как агент применяет skills»При каждом запросе агенту предоставляется список доступных skills (имя + описание). Агент самостоятельно решает, какие skills релевантны, и загружает их содержимое. Если у skill установлен флаг disable-model-invocation: true, агент его не загружает автоматически — skill доступен только по явному вызову пользователя.
Вызов skill пользователем
Заголовок раздела «Вызов skill пользователем»Если skill имеет user-invocable: true (значение по умолчанию), его можно вызвать, введя /имя-skill в поле ввода чата. Все доступные user-invocable skills отображаются в меню /. Подробнее — в обзоре slash-команд.
Создание skill
Заголовок раздела «Создание skill»Чтобы создать skill через агента, введите /create-skill (или /createskill) в поле ввода чата. Команда запросит имя и описание, затем создаст папку с файлом SKILL.md в нужном расположении.
Структура skill минимальна — достаточно одной папки с SKILL.md:
.kodik/skills/└── deploy-app/ └── SKILL.mdОпционально можно добавить дополнительные файлы:
.kodik/skills/└── deploy-app/ ├── SKILL.md ├── scripts/ │ └── deploy.sh └── references/ └── REFERENCE.mdПример skill
Заголовок раздела «Пример skill»---name: webapp-testingdescription: Руководство по тестированию веб-приложений с Playwright. Использовать при написании или запуске браузерных тестов.---
# Тестирование веб-приложений с Playwright
## Создание тестов
1. Определите пользовательский сценарий2. Создайте файл теста в директории `tests/`3. Используйте локаторы Playwright (предпочитайте role-based)4. Добавьте assertions
## Запуск тестов
\`\`\`bashnpx playwright testnpx playwright test --debug\`\`\`