opencode-config/.opencode/skills/add-skill/SKILL.md
2026-07-29 05:14:28 +03:00

96 lines
4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: add-skill
description: Use when creating a new opencode skill. Covers file location, frontmatter format, commit, push, and post-instructions for restart. Also when user says "добавь скилл", "создай скилл", "новый навык".
---
# Add Skill
Процесс создания нового скилла в opencode.
## 1. Куда создавать
```
.opencode/skills/<skill-name>/SKILL.md
```
В корне текущего репо (`<repo-root>` = `git rev-parse --show-toplevel`),
в `.opencode/skills/`. НЕ в `~/.config/opencode/` — эта папка синхронизируется из репо.
## 2. Формат SKILL.md
```markdown
---
name: <skill-name>
description: <when to load this skill, in English. Example: Use when ... Also when user says "русские фразы-триггеры">
---
# Skill Title
Содержание скилла.
```
### Правила
- `name` — kebab-case, совпадает с именем директории
- `description` — must be in English. Contains specific triggers (when the agent should load this skill). Format: `Use when ... Also when user says "..."`. The `Also when user says "..."` part may contain Russian trigger phrases since the user speaks Russian.
- Язык тела — русский с английскими техническими терминами (как в существующих скиллах)
- Один скилл — одна директория с одним `SKILL.md`
### Примеры существующих скиллов
```
.opencode/skills/
├── add-skill/SKILL.md ← этот скилл
├── branch/SKILL.md
├── code-standards/SKILL.md
├── configure-opencode/SKILL.md
├── get-project-map/SKILL.md
├── issue/SKILL.md
├── memory/SKILL.md
├── python-development/SKILL.md
├── release/SKILL.md
├── repo-init/SKILL.md
├── run-pipeline/SKILL.md
├── run-tests/SKILL.md
├── spec/SKILL.md
└── tunnel/SKILL.md
```
## 3. Скиллы авто-дискаверятся
Opencode сканирует все под-директории `.opencode/skills/` и подхватывает любой `SKILL.md`. Регистрировать ничего не нужно.
Список скиллов загружается **при старте opencode**. Новый скилл станет доступен только после рестарта.
## 4. Commit и Push (для implementing agent)
Implementing agent (subagent, которому делегировано создание) после создания файла — сразу коммит и пуш по правилам `commit` tool (формат валидируется tool'ом):
```bash
cd "$(git rev-parse --show-toplevel)"
git add .opencode/skills/<skill-name>/SKILL.md
git status # проверь staged set — только SKILL.md, без лишнего
```
> `commit` tool НЕ делает `git add` — коммитит только уже staged файлы. Если
> в индексе лишнее (например `memory-save` stage'нул всё через `git add -A`)
> — не коммить: сначала `git restore --staged <file>` или не stage'и его
> изначально. Используй `git add <конкретные-пути>`, НЕ `git add -A`.
Затем через `commit` tool (НЕ raw `git commit` — заблокирован deny):
```
commit({ message: "feat(skills): add <skill-name> skill for <purpose>" })
```
Затем `git push`.
## 5. Инструкция пользователю
После push сообщить пользователю:
> Скилл создан и запушен. Чтобы он заработал:
> 1. На хосте: `git pull` в репозитории opencode
> 2. Рестарт opencode
>
> После рестарта скилл появится в `available_skills` и будет загружаться по триггерам из `description`.