85 lines
3.9 KiB
Markdown
85 lines
3.9 KiB
Markdown
---
|
||
name: creating-skills
|
||
description: Create or update opencode skills in this repository using the required SKILL.md format and concise, trigger-focused guidance
|
||
permalink: opencode-config/skills/creating-skills/skill
|
||
---
|
||
|
||
# Creating Skills
|
||
|
||
Use this skill when you need to add or revise an opencode skill under `skills/`.
|
||
|
||
## Skills vs OpenAI/Codex Source Model
|
||
|
||
- Treat this repo as **opencode-native**.
|
||
- Do **not** use OpenAI/Codex-specific artifacts such as `agents/openai.yaml`, `init_skill.py`, `quick_validate.py`, or `scripts/references/assets` conventions from the old source model.
|
||
- A skill is discovered from `skills/*/SKILL.md` only.
|
||
|
||
## Required Structure
|
||
|
||
1. Create a folder at `skills/<skill-name>/`.
|
||
2. Add `skills/<skill-name>/SKILL.md`.
|
||
3. Keep `<skill-name>` equal to frontmatter `name`.
|
||
|
||
Frontmatter must contain only:
|
||
|
||
```yaml
|
||
---
|
||
name: <skill-name>
|
||
description: <what it does and when to load>
|
||
permalink: opencode-config/skills/<skill-name>/skill
|
||
---
|
||
```
|
||
|
||
## Naming Rules
|
||
|
||
- Use lowercase kebab-case.
|
||
- Keep names short and action-oriented.
|
||
- Match folder name and `name` exactly.
|
||
|
||
## Body Writing Rules
|
||
|
||
- Write concise, imperative instructions.
|
||
- Lead with when to load and the core workflow.
|
||
- Prefer short checklists over long prose.
|
||
- Include only repo-relevant guidance.
|
||
- Keep the planner/builder operating model in mind when a skill touches workflow behavior.
|
||
|
||
## Companion Notes (`*.md` in skill folder)
|
||
|
||
Add companion markdown files only when detail would bloat `SKILL.md` (examples, deep procedures, edge-case references).
|
||
|
||
- Keep `SKILL.md` as the operational entrypoint.
|
||
- Link companion files directly from `SKILL.md` with clear “when to read” guidance.
|
||
- Do not create extra docs by default.
|
||
|
||
## Practical Workflow (Create or Update)
|
||
|
||
1. Inspect 2–3 nearby skills for local style and brevity.
|
||
2. Pick/update `<skill-name>` and folder path under `skills/`.
|
||
3. Write or revise `SKILL.md` frontmatter (`name`, `description`, `permalink` only).
|
||
4. Draft concise body sections: purpose, load conditions, workflow, red flags/checks.
|
||
5. Add minimal companion `.md` files only if needed; link them from `SKILL.md`.
|
||
6. Verify discovery path and naming consistency:
|
||
- file exists at `skills/<name>/SKILL.md`
|
||
- folder name == frontmatter `name`
|
||
- no OpenAI/Codex-only artifacts introduced
|
||
7. If the skill changes agent workflow or command behavior:
|
||
- Update the **Skills** table, **Agent Skill-Loading Contract**, and **TDD Default Policy** in `AGENTS.md`.
|
||
- Confirm `commands/*.md` and any affected `agents/*.md` prompts stay aligned.
|
||
- If the skill involves parallelization, verify it enforces safe-parallelization rules (no parallel mutation on shared files, APIs, schemas, or verification steps).
|
||
- If the skill involves code changes, verify it references the TDD default policy and its narrow exceptions.
|
||
|
||
## Language/Ecosystem Skill Pattern
|
||
|
||
When adding a new language or ecosystem skill (e.g., `rust-development`, `go-development`), follow this template:
|
||
|
||
1. **Name**: `<language>-development` (kebab-case).
|
||
2. **Load trigger**: presence of the language's project file(s) or source files as primary source.
|
||
3. **Defaults table**: one row per concern — package manager, linter/formatter, test runner, type checker (if applicable).
|
||
4. **Core workflow**: numbered steps for bootstrap, lint, format, test, add-deps, and any lock/check step.
|
||
5. **Conventions**: 3–5 bullets on config file preferences, execution patterns, and version pinning.
|
||
6. **Docker integration**: one paragraph on base image and cache strategy.
|
||
7. **Red flags**: 3–5 bullets on common anti-patterns.
|
||
8. **AGENTS.md updates**: add the skill to the **Ecosystem Skills** table and add load triggers for `planner`, `builder`, `coder`, and `tester` in the **Agent Skill-Loading Contract**.
|
||
9. **Agent prompt updates**: add the skill trigger to `agents/planner.md`, `agents/builder.md`, `agents/coder.md`, and `agents/tester.md`.
|