Навыки

Упакуйте инструкции, скрипты и справочные материалы в навыки SKILL.md, которые агент загружает, когда они нужны для задачи.

Навык — это папка с файлом SKILL.md: инструкции для одного типа задач плюс скрипты, шаблоны или справочные файлы, которые им нужны. Агент видит имя и описание каждого навыка и загружает полные инструкции, только когда задача им соответствует. Навык можно запустить и самостоятельно как слеш-команду.

Cusp использует открытый формат Agent Skills, поэтому ваши существующие навыки работают без изменений — из .claude/skills/, .agents/skills/ или .codex/skills/.

Где хранятся навыки

ОбластьКаталоги в порядке поиска
Проект.cusp/skills/, .claude/skills/, .agents/skills/, .codex/skills/
Пользователь~/.cusp/skills/, ~/.claude/skills/, ~/.agents/skills/, ~/.codex/skills/

Каждый навык — это каталог: .cusp/skills/release-notes/SKILL.md. Если у двух навыков одинаковое имя, побеждает найденный первым, поэтому навык проекта переопределяет одноимённый навык пользователя.

Минимальный навык

.cusp/skills/release-notes/SKILL.md
---
name: release-notes
description: Draft release notes from the commits since the last tag. Use when the user asks for release notes, a changelog entry, or "what changed since …".
---

1. Find the last tag with `git describe --tags --abbrev=0`.
2. List commits since then with `git log <tag>..HEAD --oneline --no-merges`.
3. Group them into Features, Fixes and Internal. Drop chores and merge commits.
4. Write one line per change, in the past tense, without commit hashes.
5. Show the draft. Don't write any files unless asked.

По полю description агент решает, когда применять навык. Опишите, что он делает и когда его использовать, теми словами, которые реально напишет пользователь.

Frontmatter

ПолеТипЗначение
namestringИмя навыка и его слеш-команда. По умолчанию — имя каталога
descriptionstringЧто делает навык и когда его использовать. Показывается модели
when_to_usestringДополнительные подсказки о том, когда его вызывать
argument-hintstringПоказывается после имени команды при автодополнении, например [version]
argumentsstring[]Имена позиционных аргументов для подстановки $name
allowed-toolsstring[]Инструменты, заранее разрешённые на время работы навыка, в синтаксисе правил, например Bash(git log *)
disallowed-toolsstring[]Инструменты, запрещённые на время работы навыка
modelstringЗапускать навык на конкретной модели
effortstringУровень рассуждений на время работы навыка
contextforkЗапускать навык в отдельном субагенте (fork), а не в основном разговоре
agentstringПри context: fork — тип субагента
backgroundbooleanПри context: fork — запускать в фоне
pathsstring[]Glob-шаблоны. Навык предлагается, только когда агент работает с подходящими файлами
disable-model-invocationbooleanЗапускать навык можете только вы, как слеш-команду
user-invocablebooleanЗначение false скрывает навык из меню слеш-команд, и использовать его может только модель
hooksobjectХуки, активные на время работы навыка, в формате хуков
shellstringОболочка для подстановки !`command`

Аргументы

Когда вы запускаете /release-notes v0.2.0, текст после команды — это строка аргументов.

ПлейсхолдерЗаменяется на
$ARGUMENTSВсю строку аргументов
$ARGUMENTS[0], $0Первый позиционный аргумент (нумерация с 0)
$1, $2, …Следующие позиционные аргументы
$versionИменованный аргумент, если задано arguments: [version]
\$Символ доллара как есть

Если вы передаёте аргументы, а плейсхолдера в навыке нет, Cusp добавляет их в конец как ARGUMENTS: …, чтобы они не потерялись.

Переменные

${CUSP_SKILL_DIR} (или ${CLAUDE_SKILL_DIR}) — каталог, в котором лежит SKILL.md. Используйте его, чтобы ссылаться на файлы, поставляемые с навыком:

Fill in the template at ${CUSP_SKILL_DIR}/template.md.
Run `python ${CUSP_SKILL_DIR}/scripts/check.py` and fix what it reports.

Подстановка команд оболочки

!`command` выполняет команду при загрузке навыка и вставляет её вывод на это место. Так можно дать агенту актуальный контекст, не тратя вызов инструмента:

Current branch: !`git branch --show-current`
Uncommitted changes:
!`git status --short`

Вывод вставляется как есть и повторно не раскрывается. Если команда завершается с ошибкой, загрузка навыка тоже завершается ошибкой с кодом выхода и выводом, чтобы вы знали причину.

Чтобы отключить эту возможность, задайте disableSkillShellExecution: true в настройках.

Вспомогательные файлы

Кладите всё, что нужно навыку, рядом с SKILL.md:

.cusp/skills/release-notes/
├── SKILL.md
├── template.md
└── scripts/
    └── group_commits.py

Агент читает эти файлы, только когда инструкции ему это говорят, поэтому большой справочный документ ничего не стоит, пока не понадобится.

Управление навыками

Отключить отдельные навыки или ограничить их использование можно через skillOverrides в настройках:

.cusp/settings.json
{
  "skillOverrides": {
    "release-notes": "user-invocable-only",
    "legacy-deploy": "off"
  }
}
ЗначениеДействие
onПо умолчанию: навык виден модели и доступен как команда
name-onlyВиден только по имени, без описания
user-invocable-onlyДоступен только как слеш-команда
offНе загружается

disableSkills: true отключает все навыки.

Разрешения

Запуск навыка — это тоже вызов инструмента (Skill), поэтому им можно управлять правилами: Skill(deploy), Skill(deploy *) — для навыка с любыми аргументами, или Skill(ops:*) — для всех навыков в пространстве имён ops.

Команды из одного файла

Команда — это навык без папки: один файл Markdown, который запускается как /name. Cusp читает их из .cusp/commands/ и .claude/commands/, а также из тех же папок в домашнем каталоге. Если у навыка и команды одинаковое имя, побеждает навык.

Команды других агентов — промпты Codex, TOML-команды Gemini CLI и команды Cursor — импорт переводит в этот вид. См. Импорт вашей настройки.

На этой странице