--- 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//`. 2. Add `skills//SKILL.md`. 3. Keep `` equal to frontmatter `name`. Frontmatter must contain only: ```yaml --- name: description: permalink: opencode-config/skills//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 `` 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//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**: `-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`.