10. Скиллы
Скилл — это «специализация» агента: набор инструкций, который помогает AstraCode лучше работать в конкретной области (PDF, design review, тестирование, git workflows и т.п.).
Со стороны пользователя — это нечто, что можно активировать в нужный момент или включить чтобы агент автоматически их использовал.
Что AstraCode «умеет» из коробки
После установки доступны системные скиллы (в ~/.astracode/skills/.system/):
| Скилл | Зачем |
|---|---|
skill-creator |
Помогает создать новый скилл — спрашивает имя, описание, генерирует scaffold |
skill-installer |
Установить скилл из GitHub-репозитория |
astracode-help |
Подробные ответы на вопросы про AstraCode |
astracode-best-practices |
Стратегии надёжной работы с AstraCode |
goal-usage |
Как правильно вести цели (/goal) с evidence-checks |
pdf |
Читать, создавать, редактировать PDF (визуальная проверка) |
doc |
Работать с .docx файлами (через python-docx) |
humanizer |
Убирать «следы AI» в тексте (для документов) |
playwright |
Автоматизация браузера через Playwright |
web-design-guidelines |
WCAG 2.2, responsive layout, accessibility |
ios-design-guidelines |
Apple HIG для iPhone (SwiftUI / UIKit) |
macos-design-guidelines |
Apple HIG для Mac (AppKit, меню, shortcuts) |
Это «навыки в спящем режиме» — они в файловой системе, но не загружены в контекст модели, пока не активируются. Это экономит токены.
Как активируется скилл
Тремя способами:
1. Явно от вас — $<skill-name>
В composer'е введите $ и выберите скилл:
> $skill-c_ ┌──────────────────────────────────┐ │ skill-creator — Создать ск… │ │ skill-installer — Установить… │ └──────────────────────────────────┘
При выборе в строку ввода вставляется упоминание скилла — $skill-creator. Допишите свою задачу (или просто нажмите Enter) — и при отправке скилл активируется: его SKILL.md целиком попадает в контекст, и модель начинает работать с учётом этих инструкций.
> $skill-creator помоги собрать новый скилл
2. Через меню /skills
/skills
Откроется меню из двух пунктов (в русской локали):
- Открыть список Skills — то же, что ввести $: список установленных скиллов для выбора. Само по себе меню скиллы не устанавливает.
- Включить/выключить Skills — экран с переключателями вкл/выкл для каждого скилла (постоянно).
3. Автоматически (implicit invocation)
Многие скиллы умеют активироваться сами, когда видят релевантное действие:
- Запустили
python scripts/foo.py→ активируется скилл, у которого есть этот scripts/. - Прочитали
references/api.md→ активируется скилл с этим референсом.
Контролируется флагом allow_implicit_invocation в секции policy файла agents/astracode.yaml скилла. По умолчанию — true.
Что происходит когда скилл активируется
Содержимое SKILL.md (markdown с инструкциями) попадает в контекст модели. Модель видит:
«Ты используешь скилл
Дальше модель работает с учётом этих инструкций. Может вызывать tools, скрипты из scripts/, читать references.
Как поставить новый скилл
Способ 1: skill-installer (из GitHub)
skill-installer — это встроенный скилл-установщик. В строке ввода наберите $skill-installer и активируйте его. Репозиторий не захардкожен — вы каждый раз указываете источник сами. Поддерживаются две формы:
# по имени репозитория + путь к папке скилла внутри него: $skill-installer ... --repo <owner>/<repo> --path <путь/к/папке-скилла> # или по полному URL c указанием ветки и пути: $skill-installer ... --url https://github.com/<owner>/<repo>/tree/<ветка>/<путь/к/папке-скилла>
Конкретный пример: публичный репозиторий Anthropic
Реальный публичный репозиторий со скиллами — github.com/anthropics/skills. Скиллы лежат в подпапке skills/ (например skills/pdf/, skills/docx/, skills/pptx/, skills/xlsx/), каждый — в своей папке с SKILL.md.
Установить из него скилл pdf (по имени репозитория + путь к папке скилла):
$skill-installer --repo anthropics/skills --path skills/pdf
То же самое через полный URL (с веткой main):
$skill-installer --url https://github.com/anthropics/skills/tree/main/skills/pdf
Посмотреть, какие скиллы есть в репозитории, до установки:
$skill-installer --repo anthropics/skills --path skills
Что произойдёт при установке:
- Установщик скачает папку skills/pdf (по умолчанию — zip-архивом; при ошибке авторизации перейдёт на git).
- Проверит, что в ней есть SKILL.md (без него — ошибка).
- Скопирует её в ~/.astracode/skills/pdf/. Имя берётся из последнего сегмента пути (--path), то есть pdf, а не из имени репозитория. Переопределить можно флагом --name.
- Если такая папка уже есть — установка прервётся (защита от перезаписи).
После установки перезапустите AstraCode, чтобы он подхватил новый скилл.
⚠️ Частые ошибки: - Голый адрес репозитория без пути к папке скилла (
$skill-installer https://github.com/anthropics/skills) не сработает — установщик попросит--path. - Поддерживается только доменgithub.com. - Приватные репозитории — черезGITHUB_TOKEN/GH_TOKENили настроенные git-учётные данные.
Как должен выглядеть репозиторий со скиллами
Жёсткого требования к структуре всего репозитория нет — устанавливается конкретная папка-скилл, на которую указывает --path. Требование одно: в этой папке должен лежать SKILL.md. Раскладка anthropics/skills как образец:
anthropics/skills ← репозиторий на GitHub
└── skills/ ← каталог со скиллами
├── pdf/
│ ├── SKILL.md ← обязателен
│ ├── scripts/
│ └── references/
├── docx/
│ └── SKILL.md
└── xlsx/
└── SKILL.md
То есть: один репозиторий может содержать много скиллов, каждый — в своей подпапке со своим SKILL.md. Если делаете собственный репозиторий, по умолчанию установщик ищет скиллы в каталоге skills/.curated (это можно переопределить флагом --path).
Способ 2: skill-creator (написать свой)
$skill-creator
Скилл проведёт через шаги: 1. Имя скилла. 2. Краткое описание (EN и RU). 3. Default prompt (затравка при выборе из picker'а). 4. Что должен делать. 5. (Опционально) скрипты и references.
Сгенерирует структуру под ~/.astracode/skills/<your-skill>/ — готово к использованию.
Способ 3: вручную
mkdir -p ~/.astracode/skills/my-helper cat > ~/.astracode/skills/my-helper/SKILL.md << 'EOF' --- name: my-helper description: "Помогает с X, Y, Z задачами." metadata: short-description: "Helper for X/Y/Z" short-description-ru: "Помощник по X/Y/Z" --- # my-helper Подробные инструкции для агента о том, что и как делать. EOF
После — перезапуск AstraCode (или /skills → обновить), и скилл появится.
Скиллы проекта (только для этого репо)
Если скилл нужен только в одном проекте — кладите его в <repo>/.astracode/skills/:
~/myproject/ ├── .astracode/ │ └── skills/ │ ├── my-project-skill/ │ │ └── SKILL.md │ └── another-skill/ └── src/
Эти скиллы видны только когда вы запускаете AstraCode из этого репо. Полезно для специфичных рабочих процессов вашего проекта.
Включить / выключить скилл
/skills
→ выбрать Enable/Disable → откроется toggle-экран:
┌─ Skills ──────────────────────────────────────────┐ │ ☑ skill-creator Создать или обновить навык│ │ ☑ skill-installer Установить скилл из GitHub│ │ ☑ pdf Работа с PDF │ │ ☐ humanizer Убирать следы AI │ │ ☑ playwright Автоматизация браузера │ │ ... │ │ │ │ Search: > _ │ └────────────────────────────────────────────────────┘ Space toggle · Enter confirm · Esc cancel
Space— переключить.- Введите
>и текст — фильтр. - При выходе (
Esc) — показывается сводка что изменилось.
Изменения сохраняются автоматически. Выключенные скиллы — не видны модели даже в discovery; они не появятся в $-picker'е, не активируются неявно.
Когда какие скиллы включать
Системные — обычно включены все
Они компактные и discovery-only — модель видит только их краткое описание (через short-description), полный текст загружается только при активации. Так что overhead минимален.
Кастомные — по контексту проекта
Если работаете с PDF — pdf обязательно. Если делаете веб — web-design-guidelines. Если на iOS — ios-design-guidelines. Лишние — выключите, чтобы не путать модель.
Не включайте всё подряд
С каждым активным скиллом в discovery растёт system prompt. Это: - Слегка увеличивает токены каждого запроса. - Может слегка размывать фокус модели.
Включайте те, что реально используете в этом проекте.
Где живут скиллы
<repo>/.astracode/skills/<name>/ ← проектные, priority 0 ~/.astracode/skills/<name>/ ← пользовательские, priority 1 ~/.astracode/skills/.system/<name>/ ← системные (встроенные), priority 2
Если в двух местах одно имя — побеждает с меньшим priority (ближайший к проекту).
~/.astracode/skills/.system/ — не редактируйте, его перезаписывают при обновлении AstraCode.
Что внутри скилла
Структура:
<skill-name>/ ├── SKILL.md ← обязательно: frontmatter + инструкции ├── agents/ │ └── astracode.yaml ← UI-метаданные (default_prompt, иконка) ├── scripts/ ← опционально │ └── do_thing.py ├── references/ ← опционально │ └── api_docs.md └── assets/ ← опционально (иконки, изображения)
Скилл может использовать tools (например, для запуска scripts/).
Использование scripts
Если в скилле есть scripts/, модель может их запустить (через exec_command). Например, скилл humanizer имеет scripts/humanize.py — модель запустит его, передаст текст, получит результат.
Approval для exec_command работает как обычно — если у вас workspace-write, скрипт спросит разрешение.
Использование references
В references/ лежат документы (PDF, MD, JSON), которые модель может прочитать при необходимости. Например, скилл ios-design-guidelines имеет references/ios_hig.md — выдержки из Apple HIG.
Модель не загружает их сразу — только когда нужно. Это экономит контекст.
Локализация скиллов
Если у вас locale = "ru", в списке скиллов и в popup'е вы увидите русские описания (если скилл их поддерживает).
Встроенные скиллы — все переведены. Кастомные — зависит от автора. При создании скилла через skill-creator он автоматически попросит русское описание.
Скилл vs MCP-сервер vs tool
Не путайте:
| Сущность | Что это |
|---|---|
| Tool | Функция, которую модель вызывает (exec_command, apply_patch). Встроено в AstraCode. |
| MCP-сервер | Внешний процесс, который добавляет новые tools (Linear, GitHub, etc.). Подключается в config.toml. |
| Скилл | Markdown-инструкции + опциональные скрипты. Учат модель «как делать X». Активируются по запросу. |
Скилл может использовать tools и MCP-серверы — но он не запускает «новых» tools.
Безопасность скиллов
- Скилл может читать ваш код (через инструкции модели).
- Если в скилле есть
scripts/— они выполняются с правами sandbox (как любая команда). - Будьте осторожны с установкой скиллов из недоверенных источников —
skill-installerтянет код из GitHub.
При первом запуске скрипта из скилла приходит approval-диалог — как для любой shell-команды.
Best practices
✓ Включайте только нужные скиллы в текущем проекте.
✓ Используйте skill-creator для быстрого создания собственных.
✓ Кладите проектные скиллы в <repo>/.astracode/skills/ — они переедут с репо.
✓ Пишите хорошее description в SKILL.md — модель использует его, чтобы решать «применять или нет».
✗ Не редактируйте .system/ — перезатрётся при обновлении.
✗ Не пишите большие скиллы — лучше несколько фокусных.
✗ Не сохраняйте секреты в скиллах — они в открытом markdown.
Где узнать больше
$astracode-help— встроенный скилл-справочник.- Техническая документация (dev-вики) — устройство системы скиллов.
Если что-то не работает
- Скилл не появляется в picker'е — проверьте, что в SKILL.md есть валидный YAML frontmatter с
nameиdescription. AstraCode при старте выдаёт warning, если SKILL.md не парсится. - YAML-ошибка — если в значении есть
:, оборачивайте в кавычки:short-description: "Видимый контекст: правила". - Скилл не активируется неявно — проверьте
policy.allow_implicit_invocation: trueвagents/astracode.yaml.