Навыки (Skills)
Command Code поддерживает Agent Skills — лёгкий открытый стандарт расширения ИИ-агентов специализированными знаниями и рабочими процессами.
Что такое навыки агента
Навыки агента — это модульные самодостаточные наборы инструкций, которые учат Command Code выполнять конкретные задачи. Каждый навык — это папка с файлом skill.md, в котором лежат метаданные и пошаговое руководство.
Думайте о навыках как об экспертных плейбуках, к которым Command Code обращается при необходимости. Вместо того чтобы объяснять один и тот же процесс каждый раз, вы описываете его один раз в навыке, и Command Code автоматически применяет его, когда нужно.
Как работают навыки
Навыки используют прогрессивное раскрытие (progressive disclosure), чтобы эффективно расходовать контекст:
- Обнаружение: при запуске Command Code загружает только имя, описание и путь к файлу каждого навыка.
- Активация: когда задача соответствует навыку или его вызывают напрямую через
/skill-name, Command Code читает полные инструкции из егоSKILL.md. - Выполнение: Command Code следует инструкциям и при необходимости загружает указанные в них файлы.
Так Command Code остаётся быстрым, но получает больше контекста по требованию.
Быстрый старт
Давайте создадим первый навык уровня пользователя и навык уровня проекта.
Навык уровня пользователя
mkdir -p ~/.commandcode/skills/code-review
cat > ~/.commandcode/skills/code-review/SKILL.md << 'EOF'
---
name: code-review
description: Perform thorough code reviews checking for bugs, security issues, and best practices
---
# Code Review Checklist
When reviewing code, check:
## Security
- [ ] No hardcoded credentials or API keys
- [ ] Input validation on all user data
- [ ] Proper authentication and authorization
## Code Quality
- [ ] Clear, descriptive variable names
- [ ] Functions do one thing well
- [ ] No code duplication
- [ ] Edge cases handled
## Performance
- [ ] No unnecessary loops or operations
- [ ] Efficient data structures
- [ ] Database queries optimized
## Testing
- [ ] Unit tests cover main functionality
- [ ] Edge cases tested
- [ ] Error conditions tested
EOFНавык уровня проекта
mkdir -p .commandcode/skills/api-guidelines
cat > .commandcode/skills/api-guidelines/SKILL.md << 'EOF'
---
name: api-guidelines
description: API design patterns and conventions for this project
---
# API Guidelines
## Endpoint naming
- Use plural nouns: `/users`, `/posts`
- Use kebab-case: `/user-profiles`
- Version in URL: `/v1/users`
## Response format
```json
{
"data": { ... },
"meta": { "count": 10, "page": 1 }
}
```
## Error handling
- 400: Bad request (validation errors)
- 401: Unauthorized
- 403: Forbidden
- 404: Not found
- 500: Server error
EOFЕсли вы используете .agents/skills/
Если навыки у вас уже лежат в .agents/skills/, Command Code подхватит их автоматически. Миграция не нужна.
.commandcode/skills/ имеет приоритет при совпадении имён. Навыки из .agents/ показываются с бейджем [.agents] в интерфейсе /skills.
Где хранятся навыки
Command Code полностью реализует открытый стандарт Agent Skills и использует два места хранения.
Навыки уровня пользователя (глобальные)
Хранятся в ~/.commandcode/skills/ и доступны во всех ваших проектах.
Идеально подходят для:
- общих процессов разработки;
- исследовательских сценариев работы;
- лучших практик, общих для разных проектов.
Навыки уровня проекта (локальные)
Хранятся в .commandcode/skills/ внутри проекта и доступны только в этом проекте.
Идеально подходят для:
- паттернов, специфичных для проекта;
- соглашений команды;
- архитектурных правил;
- процессов, специфичных для предметной области.
Примечание
Подробнее о том, как создавать навыки уровня пользователя и уровня проекта, — в разделе Создание навыков ниже.
Совместимость с .agents/skills/
Command Code также находит навыки в .agents/skills/ (проект) и ~/.agents/skills/ (пользователь). Если другой инструмент уже хранит ваши навыки в .agents/, они загружаются автоматически и показываются с бейджем [.agents] в меню /skills.
Приоритет: .commandcode/skills/ побеждает при совпадении имён. Если один и тот же навык есть в обоих местах, используется версия из .commandcode/, а версия из .agents/ пропускается. Полный порядок из четырёх уровней — в разделе Приоритет выбора.
Обнаружение: Command Code поднимается от вашего рабочего каталога на 10 уровней вверх в поисках .agents/skills/ и останавливается на вашей домашней папке. Это не позволяет ~/.agents/skills/ попасть в источники уровня проекта.
Дополнительные расположения
Помимо стандартных каталогов, вы можете указать Command Code на любую папку с навыками — каталог навыков или одну папку навыка с SKILL.md.
В настройках — добавьте массив skills в settings.json (глобальный для пользователя ~/.commandcode/settings.json, проектный .commandcode/settings.json или .commandcode/settings.local.json):
{
"skills": ["~/team/shared-skills", "./vendor/skills", "/opt/company/skills"]
}~/ разворачивается в вашу домашнюю папку; относительные пути считаются от корня проекта (корень git-репозитория или рабочий каталог вне репозитория). Слои настроек перезаписывают массив целиком — побеждает самый высокий слой, в котором определён skills. Это же способ загрузить папку с навыками, которая лежит вне стандартных мест вроде ~/.commandcode/skills: общий командный диск или папку, которую поддерживают для другого инструмента Agent Skills.
При запуске — флаг --skill добавляет расположение на одну сессию и может повторяться; --no-skills полностью пропускает обнаружение (пути, указанные через --skill, всё равно загружаются):
cmd --skill ./my-skill --skill ~/team/shared-skills
cmd --no-skills # run with no skills at all
cmd --no-skills --skill ./only-this # run with exactly one skillВложенные папки навыков
Обнаружение рекурсивное: расположение может группировать навыки в промежуточных каталогах, и каждый навык всё равно остаётся каталогом, который напрямую содержит SKILL.md.
.commandcode/skills/
├── docs/
│ ├── changelog-writer/
│ │ └── SKILL.md
│ └── release-notes/
│ └── SKILL.md
└── code-review/
└── SKILL.mdПоле name по-прежнему соответствует собственному каталогу навыка (changelog-writer), а не группирующей папке. Собственные подпапки навыка (scripts/, references/, assets/) никогда не сканируются в поисках других навыков.
Приоритет выбора
Навыки, пользовательские команды и встроенные команды делят одно меню /. Расположения навыков проверяются в таком порядке:
.commandcode/skills/(проект).agents/skills/(проект)~/.commandcode/skills/(пользователь)~/.agents/skills/(пользователь)- Дополнительные расположения (сначала флаги
--skill, затем записиskillsиз настроек) - Встроенные навыки, которые поставляются с Command Code
Проще говоря: уровень проекта всегда важнее уровня пользователя, а внутри одного уровня .commandcode/ предпочтительнее .agents/.
Command Code включает несколько готовых навыков. Например, /skill-builder создаёт и проверяет новый навык, /design даёт рабочий процесс для UI, а /loop запускает задачу сейчас и планирует следующие итерации. Проектный или пользовательский навык с тем же именем может переопределить встроенный навык по обычным правилам приоритета.
Когда два расположения дают одно и то же имя навыка, побеждает копия с более высоким приоритетом, а каждая перекрытая копия показывается как предупреждение Duplicate names в представлении проблем /skills и в cmd skills list --debug — перекрытый навык никогда не теряется молча.
Что происходит при коллизии. Когда имя навыка совпадает со встроенной командой или пользовательской командой:
- ввод
/<name>всегда попадает на владельца с более высоким приоритетом — навык не вызывается; - запускайте навык как
/skill:<name>. Пространство имёнskill:полностью обходит лестницу приоритетов и может указывать только на навык, поэтому работает для любого навыка, перекрытого или нет. Ввод/skill:без аргумента перечисляет их все; - навык всё равно появляется в меню
/с бейджем[skill]и пометкой- shadowed by /<owner>, runs as /skill:<name>, а выбор этой строки подставляет форму с пространством имён. Command Code предпочитает видимость с пометкой молчаливому удалению строки.
Просмотр и использование навыков
Используйте слэш-команду /skills, чтобы посмотреть все ваши навыки:
# In Command Code session
/skillsОткроется интерактивное меню, которое показывает:
- все навыки уровня пользователя с меткой
(user); - все навыки уровня проекта с меткой
(project); - навыки из
.agents/skills/(пользователь или проект) показываются с бледным бейджем[.agents]; - стрелки перемещают по списку;
- Enter открывает навык в вашем редакторе (или переключает его — см. Включение и выключение навыков);
- Esc закрывает меню и возвращает вас в сессию.
Каждый установленный навык также доступен как полноценная слэш-команда в меню /. Если вы установите навык с именем pr-desc, вы увидите /pr-desc, отсортированный после встроенных команд и любых пользовательских команд в слэш-меню.
Если имя навыка совпадает со встроенной или пользовательской командой, навык всё равно появляется в меню / с бейджем [skill] и пометкой - shadowed by /<owner>. Ввод /<name> всегда попадает на владельца с более высоким приоритетом, а не на навык — чтобы запустить сам навык, используйте /skill:<name>. Полный порядок — в разделе Приоритет выбора выше.
Вызов навыка
Command Code поддерживает три способа использовать навык в диалоге. Выберите тот, который подходит к задаче.
1. Точный вызов слэш-командой
Наберите /skill-name в начале промпта, чтобы выполнить этот навык в текущем ходу:
# In Command Code session
/pr-desc update the description based on new changesКаждый навык также отвечает на форму с пространством имён /skill:<name>, которая никогда не указывает ни на что, кроме навыка:
# In Command Code session
/skill:changelog # the changelog skill, not the built-in /changelog
/skill changelog # same thing, space instead of colon
/skill: # browse every skill in the menuИспользуйте её, когда имя навыка занято встроенной или пользовательской командой — см. Что происходит при коллизии.
2. Ссылка на слэш-команду внутри промпта
Вставьте /skill-name в любое место длинного промпта, чтобы закрепить этот навык, не теряя естественной формулировки. В одном промпте можно смешать несколько навыков:
# In Command Code session
Please follow /code-conv when writing the new module and /pr when opening the review PR.3. Подсказка по контексту
Command Code просматривает ваш промпт и предлагает подходящий навык, если он явно подходит. Обычные промпты работают в точности как раньше — подсказки лишь помогают узнать, что доступно.
Создание навыков
Совет
Самый быстрый способ создать навык — попросить Command Code сделать это за вас. Встроенный навык skill-builder проводит агента через определение задачи, выбор корректного имени и расположения, написание frontmatter по спецификации и проверку того, что результат загружается. Просто опишите процесс, который хотите зафиксировать, или вызовите /skill-builder напрямую.
Навыки уровня пользователя
Навыки уровня пользователя доступны во всех ваших проектах.
Расположение: ~/.commandcode/skills/
# Create the directory
mkdir -p ~/.commandcode/skills/my-skill
# Create the SKILL.md file
cat > ~/.commandcode/skills/my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: What this skill does and when to use it
---
# My Skill
Instructions for Claude...
EOFСценарии использования:
- личные предпочтения в коде;
- общие процессы разработки;
- лучшие практики, общие для разных проектов;
- ваши собственные правила стиля кода.
Пример:
mkdir -p ~/.commandcode/skills/code-review
cat > ~/.commandcode/skills/code-review/SKILL.md << 'EOF'
---
name: code-review
description: Perform thorough code reviews checking for bugs, security issues, and best practices
---
# Code Review Checklist
## Security
- [ ] No hardcoded credentials or API keys
- [ ] Input validation on all user data
- [ ] Proper authentication and authorization
## Code Quality
- [ ] Clear, descriptive variable names
- [ ] Functions do one thing well
- [ ] No code duplication
## Performance
- [ ] No unnecessary loops
- [ ] Efficient data structures
- [ ] Optimized queries
## Testing
- [ ] Unit tests cover main functionality
- [ ] Edge cases tested
- [ ] Error conditions handled
EOFНавыки уровня проекта
Навыки уровня проекта доступны только в этом конкретном проекте.
Расположение: .commandcode/skills/ (в корне проекта)
# Create the directory
mkdir -p .commandcode/skills/my-skill
# Create the SKILL.md file
cat > .commandcode/skills/my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: What this skill does and when to use it
---
# My Skill
Instructions for Claude...
EOFСценарии использования:
- паттерны, специфичные для проекта;
- соглашения команды;
- архитектурные правила;
- процессы, специфичные для предметной области.
Пример:
mkdir -p .commandcode/skills/api-guidelines
cat > .commandcode/skills/api-guidelines/SKILL.md << 'EOF'
---
name: api-guidelines
description: API design patterns and conventions for this project
---
# API Guidelines
## Endpoint naming
- Use plural nouns: `/users`, `/posts`
- Use kebab-case: `/user-profiles`
- Version in URL: `/v1/users`
## Response format
Always return JSON with this structure:
```json
{
"data": { ... },
"meta": { "count": 10, "page": 1 },
"errors": []
}
```
## Error codes
- 400: Bad request (validation errors)
- 401: Unauthorized (missing/invalid token)
- 403: Forbidden (insufficient permissions)
- 404: Not found
- 500: Server error
## Authentication
All endpoints require Bearer token in Authorization header except:
- POST /v1/auth/login
- POST /v1/auth/register
EOFВы также можете устанавливать навыки сообщества прямо с GitHub, не создавая файлы вручную, — см. cmd skills add в справочнике команд.
Редактирование навыков
Редактировать навыки можно командой /skills.
- Введите
/skillsв Command Code. - Перейдите к навыку, который хотите изменить.
- Нажмите Enter.
Откроется файл SKILL.md в вашем редакторе по умолчанию (он задаётся переменной окружения $EDITOR).
Правка вручную
Навыки можно редактировать и напрямую, по таким путям:
# Edit user-level skill
code ~/.commandcode/skills/my-skill/SKILL.md
# Edit project-level skill
code .commandcode/skills/my-skill/SKILL.md
# Edit a skill from .agents/ (if you use that convention)
code .agents/skills/my-skill/SKILL.mdПосле правки изменения применяются сразу и готовы к использованию. Перезапуск не требуется.
Настройка редактора
Команда /skills использует переменную окружения $EDITOR, чтобы открывать файлы. Инструкции по настройке — в разделе настройка редактора.
Включение и выключение навыков
Навык можно включить или выключить, не удаляя его. Выключенные навыки скрыты от модели и не вызываются.
В списке /skills выделите навык и нажмите Enter, чтобы переключить его.
Где хранится настройка
Выключенные навыки учитываются под ключом disabledSkills в файле settings.json. Command Code ищет settings.json по таким путям:
| Область | Файл конфигурации | Действует на |
|---|---|---|
| Пользователь | ~/.commandcode/settings.json | Все проекты |
| Проект | .commandcode/settings.json | Всех, кто работает с проектом |
Формат одинаков в обоих файлах настроек:
{
"disabledSkills": ["blogster", "r0"]
}Чтобы выключить навык во всех проектах на вашей машине, отредактируйте ~/.commandcode/settings.json напрямую. Следующая сессия это подхватит.
Организация навыков
Организовать навыки помогут следующие практики.
Один навык на папку
Каждый навык должен лежать в собственной папке:
.commandcode/skills/
├── code-review/
│ └── SKILL.md
├── api-guidelines/
│ └── SKILL.md
└── testing-patterns/
└── SKILL.mdНавыки также можно группировать в промежуточных папках — см. Вложенные папки навыков.
Дополнительные файлы
Навыки могут включать дополнительные файлы:
my-skill/
├── SKILL.md # Required
├── scripts/ # Executable code
│ ├── process.py
│ └── validate.sh
├── references/ # Additional docs
│ ├── API_REFERENCE.md
│ └── EXAMPLES.md
└── assets/ # Templates, resources
├── template.json
└── schema.sqlСсылайтесь на эти файлы в SKILL.md:
See [API Reference](references/API_REFERENCE.md) for details.
Run the validation script:
```bash
scripts/validate.sh
```Соглашения об именовании
Имена навыков
- только строчные буквы, цифры и дефисы;
- максимум 64 символа;
- имя не начинается и не заканчивается дефисом;
- без двух дефисов подряд.
Хорошие имена:
code-review
api-guidelines
testing-patterns
commit-messagesПлохие имена:
CodeReview # uppercase not allowed
code_review # underscores not allowed
-code-review # cannot start with hyphen
code--review # consecutive hyphensИмена папок
Имя папки должно совпадать с полем name навыка:
code-review/ # Directory name
└── SKILL.md # Must have: name: code-reviewСпецификация навыков
Каждый файл SKILL.md должен начинаться с блока frontmatter, за которым в теле идут markdown-инструкции.
Frontmatter (обязателен)
---
name: skill-name
description: A description of what this skill does and when to use it.
---При необходимости во frontmatter можно добавить следующие необязательные поля:
---
name: pdf-processing
description: Extract text and tables from PDF files, fill forms, merge documents.
license: Apache-2.0
compatibility: Requires pdfplumber and PyPDF2 packages
metadata:
author: example-org
version: '1.0'
allowed-tools: Read Bash(python:*)
---| Поле | Обязательно | Ограничения |
|---|---|---|
name | Да | Максимум 64 символа. Только строчные буквы, цифры и дефисы. Не должно начинаться или заканчиваться дефисом. |
description | Да | Максимум 1024 символа. Описывает, что делает навык и когда его использовать. |
license | Нет | Название лицензии или ссылка на приложенный файл лицензии. |
compatibility | Нет | Максимум 500 символов. Описывает требования к окружению (пакеты, системные инструменты, доступ к сети и т. п.). |
metadata | Нет | Произвольное отображение «ключ — значение» для дополнительных метаданных (автор, версия и т. п.). |
allowed-tools | Нет | Список предварительно одобренных инструментов, разделённый пробелами (или YAML-массив). (Экспериментально) |
Command Code также учитывает эти расширенные поля. Некоторые из них повторяют frontmatter Agent Skills / Claude Code, поэтому навык, написанный для другого агента, загружается без изменений; инструменты, которые не знают поле, безопасно его игнорируют:
| Поле | Обязательно | Поведение |
|---|---|---|
argument-hint | Нет | Показывается рядом с навыком в меню /, чтобы вы знали, какие аргументы он ждёт (например, argument-hint: "<branch> [--draft]"). |
when_to_use | Нет | Дополнительный контекст срабатывания (фразы-триггеры, примеры запросов), который дописывается к описанию в каталоге, видимом модели, — чтобы авто-вызов срабатывал и по нему. |
disable-model-invocation | Нет | Если true, навык полностью скрыт от модели: он не появляется в каталоге навыков и не может загружаться автоматически. Его запускает только явный вызов /skill-name. Используйте для разрушительных или сильно контекстных процессов. |
user-invocable | Нет | Если false, навык остаётся доступным модели, но скрыт из меню /. Используйте для фоновых знаний, которые не являются командой для ручного запуска. |
disallowed-tools | Нет | Список инструментов, которые навык не должен использовать, разделённый пробелами (или YAML-массив). Разбирается и показывается рядом с allowed-tools. |
arguments | Нет | Упорядоченные имена позиционных аргументов (arguments: issue branch), включающие в теле подстановки $issue / $branch. |
model | Нет | Закрепляет модель для работы навыка. |
effort | Нет | Подсказка уровня рассуждений для работы навыка (low, medium, high, xhigh, max или inherit). |
Содержимое тела
Markdown-тело после frontmatter содержит инструкции навыка. Ограничений на формат нет. Пишите то, что помогает Command Code эффективно выполнить задачу.
Рекомендуемые разделы:
- Когда использовать навык: понятные триггеры срабатывания.
- Пошаговые инструкции: подробные указания.
- Примеры: примеры входа и выхода.
- Частые крайние случаи: известные подводные камни и решения.
Примечание
Держите основной SKILL.md короче 500 строк. Подробный справочный материал выносите в отдельные файлы в references/.
Подстановка аргументов и контекста
Когда вы вызываете навык как /skill-name <args>, Command Code подставляет в тело такие плейсхолдеры ещё до того, как тело увидит модель:
| Плейсхолдер | Во что превращается |
|---|---|
$ARGUMENTS | Все аргументы одной строкой. Если в теле нет плейсхолдера, непустые аргументы дописываются в конец как футер ARGUMENTS: …. |
$ARGUMENTS[N] / ${N} | N-й аргумент с индексом от нуля ($ARGUMENTS[0] / ${0} — первый). |
$name | Объявленный именованный аргумент. При arguments: issue branch $issue — первый аргумент, а $branch — второй. Заменяются только объявленные имена. |
${COMMANDCODE_SKILL_DIR} | Абсолютный путь к каталогу самого навыка — используйте его для ссылок на приложенные scripts/ или references/ независимо от рабочего каталога. |
${COMMANDCODE_PROJECT_DIR} | Корень проекта (корень git, иначе текущий каталог). |
${COMMANDCODE_SESSION_ID} | Идентификатор текущей сессии, если он доступен. |
${COMMANDCODE_EFFORT} | Активный уровень рассуждений, если он доступен. |
Алиасы ${CLAUDE_SKILL_DIR}, ${CLAUDE_PROJECT_DIR}, ${CLAUDE_SESSION_ID} и ${CLAUDE_EFFORT} дают те же значения, поэтому навык, написанный для Claude Code, работает без изменений. Заменяются только эти известные токены — любой другой ${...} (например, литеральный ${HOME}) остаётся нетронутым.
Все плейсхолдеры подставляются за один проход, а аргументы вставляются буквально: текст аргумента, который сам выглядит как плейсхолдер ($ARGUMENTS, $$, объявленный $name), попадает как есть и больше не разворачивается.
Динамическая подстановка контекста
Тело навыка может выполнять shell-команды и вставлять их вывод ещё до того, как тело дойдёт до модели, — так модель читает живые данные вместо команды. Распознаются две формы:
- Строчная —
!`git status --short`выполняет одну команду.!учитывается только в начале строки или сразу после пробела, поэтомуKEY=!`cmd`остаётся литералом. - Блоком — код-блок с языком
!выполняет многострочный скрипт:
node --version
git rev-parse --short HEADКаждый плейсхолдер заменяется выводом команды один раз, слева направо — вывод никогда не пересканируется на новые плейсхолдеры. Команды выполняются из каталога проекта, а значения COMMANDCODE_SKILL_DIR / COMMANDCODE_PROJECT_DIR (и алиасы CLAUDE_*) экспортируются в их окружение.
Чтобы это отключить — чтобы открытие навыка никогда не запускало оболочку, — установите disableSkillShellExecution: true в settings.json. Тогда каждый плейсхолдер заменяется на [shell command execution disabled by policy] вместо выполнения.
Дополнительные папки
Папка навыка может также содержать эти необязательные подкаталоги, чтобы упорядочить связанные файлы.
scripts/
Содержит исполняемый код, который могут запускать агенты. Скрипты должны:
- быть самодостаточными или явно описывать зависимости;
- выдавать понятные сообщения об ошибках;
- аккуратно обрабатывать крайние случаи.
my-skill/
├── SKILL.md
└── scripts/
├── extract.py
└── process.shreferences/
Содержит дополнительную документацию, которую агенты читают при необходимости:
my-skill/
├── SKILL.md
└── references/
├── API_REFERENCE.md
├── FORMS.md
└── TROUBLESHOOTING.mdДержите отдельные справочные файлы сфокусированными. Command Code загружает их по требованию, поэтому меньшие файлы означают меньший расход контекста.
assets/
Содержит статические ресурсы:
my-skill/
├── SKILL.md
└── assets/
├── template.json
├── diagram.png
└── schema.sqlСправочник команд
Полный справочник по всем командам cmd skills. Установка, список и удаление навыков агента.
| Команда | Описание |
|---|---|
cmd skills add | Установить навык из репозитория GitHub |
cmd skills list | Показать все установленные навыки |
cmd skills remove | Удалить установленный навык |
cmd skills add
Устанавливает навык из репозитория GitHub в проектный или глобальный каталог навыков.
cmd skills add <owner/repo> [options]Опции:
| Опция | Короткая | Описание |
|---|---|---|
--global | -g | Установить в глобальные навыки (~/.commandcode/skills/) |
--force | -f | Перезаписать, если навык уже существует |
--skill <name> | -s | Выбрать конкретный навык из репозитория с несколькими навыками |
Репозиторий с одним навыком:
cmd skills add acme/my-skillsКонкретный путь в репозитории:
cmd skills add acme/skills/path/to/skillОдин навык из репозитория с несколькими навыками:
cmd skills add acme/multi-skills -s my-skillКонкретная ветка:
cmd skills add acme/repo@branchУстановка глобально:
cmd skills add acme/repo --globalУстановка из сообщества:
cmd skills add https://github.com/remotion-dev/skills --skill remotion-best-practicesКаталоги установки:
| Флаг | Расположение | Доступность |
|---|---|---|
| (по умолчанию) | .commandcode/skills/<skill-name>/ | Только текущий проект |
--global | ~/.commandcode/skills/<skill-name>/ | Все проекты на вашей машине |
Репозитории с несколькими навыками. Когда репозиторий содержит несколько навыков и --skill не указан, Command Code показывает интерактивный запрос, какие навыки установить.
Совпадения имён. Имена навыков делят меню / со встроенными командами (/clear, /help, /share, /rewind, …) и с пользовательскими командами в .commandcode/commands/. Встроенные и пользовательские команды имеют приоритет: ввод /<name> попадает на владельца, а не на навык.
Если вы устанавливаете навык, имя которого совпадает с одной из них, cmd skills add всё равно выполняется нормально — установку ничего не блокирует. Дальше навык появляется в меню / с бейджем [skill] и пометкой shadowed by /<owner>, запускается как /skill:<name>, а обычный /<name> продолжает вести на владельца с более высоким приоритетом. Полный порядок — в разделе Приоритет выбора.
cmd skills list
Показывает все установленные навыки, сгруппированные по расположению.
cmd skills listОпции:
| Опция | Описание |
|---|---|
--debug | Показать каждый навык, который не удалось загрузить, сгруппированный по категории ошибки |
Вывод:
Показывает все установленные навыки, разбитые на разделы Project и Global:
Skills (3 installed)
Project (1)
remotion-best-practices · Best practices for building Remotion video...
Global (2)
frontend-design · Guidelines for building accessible, responsive UIs
code-review · Comprehensive code review checklist for security and q...Если какие-то навыки не загрузились, под списком появляется тихая подсказка:
С пропущенными навыками:
5 skills skipped · run with --debug to see issuesПовторите запуск с --debug, чтобы увидеть сгруппированный отчёт. Каждая строка получает категорию, путь и причину в одну строку:
cmd skills list --debugЕсли навыки не установлены, команда показывает, где она искала и как установить навык:
Пустой вывод:
No skills installed.
Looking in:
~/.commandcode/skills/ (global)
.commandcode/skills/ (project)
~/.agents/skills/ (global, .agents)
.agents/skills/ (project, .agents)
Install a skill: cmd skills add <owner/repo>cmd skills remove
Удаляет установленный навык по имени. Перед удалением запрашивает подтверждение.
cmd skills remove <skill-name> [options]Опции:
| Опция | Короткая | Описание |
|---|---|---|
--global | -g | Удалить из глобальных навыков (~/.commandcode/skills/) |
--yes | -y | Пропустить запрос подтверждения |
Удаление из проекта:
cmd skills remove remotion-best-practicesУдаление из глобальных:
cmd skills remove frontend-design --globalБез подтверждения:
cmd skills remove my-skill --yesПравила имён навыков. Имена навыков должны состоять только из строчных букв, цифр и дефисов — без разделителей пути, точек и заглавных букв.
Лучшие практики
Следуйте этим практикам, чтобы навыки были эффективными и поддерживаемыми.
Как писать описания
Хорошие описания помогают Command Code понять, когда использовать навык:
Конкретно и с ключевыми словами:
description: Extract text and tables from PDF files using pdfplumber. Use when user mentions PDFs, pdf files, document extraction, or needs to read PDF content.Слишком размыто:
description: PDF toolsДержите навыки узкими
Каждый навык должен хорошо делать одно дело:
Узко:
code-review— чек-лист код-ревьюcommit-messages— формат сообщений коммитаtesting-patterns— соглашения тестирования
Слишком широко:
development— все задачи разработки
Выбирайте имя без коллизий
Имена навыков делят меню / со встроенными командами вроде /clear, /help, /share и /rewind, а также с любыми пользовательскими командами, которые вы определяете в .commandcode/commands/. Они имеют приоритет: ввод /<name> ведёт на владельца, а навык отображается с пометкой shadowed by рядом с бейджем [skill].
Предпочитайте имена, привязанные к задаче, — они редко пересекаются:
Безопасно: pr-desc, api-guidelines, release-notes, code-review
Рискованно: clear, help, share, rewind — это встроенные команды.
Используйте прогрессивное раскрытие
Держите SKILL.md кратким. Подробный материал переносите в references/, например:
# API Guidelines
Quick reference of our API patterns.
For complete documentation, see:
- [Authentication details](references/AUTH.md)
- [Error handling guide](references/ERRORS.md)
- [Versioning strategy](references/VERSIONING.md)Контроль версий
Храните навыки в Git:
# Add skills to git
git add .commandcode/skills/
# Commit
git commit -m "Add API guidelines skill"
# Share with team
git pushНе игнорируйте .commandcode/skills/ — эти навыки стоит делить с командой.
Соответствие стандарту
Command Code полностью реализует открытый стандарт Agent Skills. Созданные вами навыки:
- Переносимы: работают с любым агентом, который поддерживает стандарт.
- Версионируемы: изменения отслеживаются в Git.
- Разделяемы: публикуйте их для команды или сообщества.
- Проверяемы: обычные текстовые файлы, которые может прочитать каждый.
Валидация строго следует стандарту — включая правило, что name навыка должно совпадать с именем его каталога. Навыки, нарушающие правило, пропускаются с предупреждением по категории (видно в /skills и в cmd skills list --debug), а не роняют сессию; отсутствующее или пустое description всегда мешает загрузке. Расширенные поля Command Code (argument-hint, disable-model-invocation, model) живут рядом со стандартными и игнорируются другими реализациями; незнакомые поля frontmatter от других инструментов, в свою очередь, игнорируются.
Навыки и вкус (taste)
Навыки — это явные плейбуки, которые вы пишете и которыми делитесь; вкус (taste) — это неявный, непрерывно обучаемый профиль ваших предпочтений. Полное руководство — в блоге commandcode.ai/blog/taste-skills-rules.
Дальнейшие шаги
- Настройте профиль вкуса, чтобы изученные предпочтения работали вместе с написанными навыками.
- Присоединяйтесь к нашему сообществу в Discord, если нужна поддержка.
Источник
Сверено с оригиналом 13 ноября 2026.