* feat(spec): add project-template skill init and check flow * refactor(spec): remove repo-init migrate references to project-template * test(spec): structural tests for project-template skill and command * fix(test): wrap long lines and use non_templated var in project template tests * fix(ci): reformat test_project_template_skill.py for ruff format --------- Co-authored-by: opencode-agent <agent@opencode.local>
4 KiB
| 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: <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 "...". TheAlso 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
├── project-template/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, без лишнего
committool НЕ делаетgit add— коммитит только уже staged файлы. Если в индексе лишнее (напримерmemory-savestage'нул всё через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 сообщить пользователю:
Скилл создан и запушен. Чтобы он заработал:
- На хосте:
git pullв репозитории opencode- Рестарт opencode
После рестарта скилл появится в
available_skillsи будет загружаться по триггерам изdescription.