opencode-config/.opencode/skills/add-skill/SKILL.md
Sergey 4b377f3e4d
fix(docs): commit tool staging truth + allow git restore --staged (#80)
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 18:02:27 +03:00

3.9 KiB
Raw Blame History

name description
add-skill 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

---
name: <skill-name>
description: <когда загружать. Триггеры на русском и английском. Например: Use when ... Also when user says "...">
---

# Skill Title

Содержание скилла.

Правила

  • name — kebab-case, совпадает с именем директории
  • description — содержит конкретные триггеры (когда агент должен загрузить этот скилл)
  • Язык тела — русский с английскими техническими терминами (как в существующих скиллах)
  • Один скилл — одна директория с одним 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'ом):

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.