build-skill

Create effective skills for OpenCode agents. Load FIRST before writing any SKILL.md. Provides required format, naming conventions, progressive disclosure patterns, and validation. Use when building, reviewing, or debugging skills.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "build-skill" with this command: npx skills add kjanat/skills/kjanat-skills-build-skill

Building Skills

Skills extend agent capabilities with specialized knowledge, workflows, and tools.

Quick Start

Minimal viable skill in 30 seconds:

mkdir my-skill && cat > my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: Does X when Y happens. Use for Z tasks.
---

# My Skill

Instructions go here.
EOF

Place in .opencode/skills/ (project) or ~/.config/opencode/skills/ (global).

Skill Type Decision Tree

What are you building?
├─ Instructions only → Simple skill (SKILL.md only)
│   Example: code-review guidelines, commit message format
│
├─ Domain knowledge → Reference-heavy skill (+ references/)
│   Example: API docs, database schemas, company policies
│
├─ Repeatable automation → Script-heavy skill (+ scripts/)
│   Example: PDF processing, data validation, file conversion
│
├─ Complex multi-step workflow → Multi-file skill (all directories)
│   Example: release process, deployment pipeline
│
└─ Large platform → Progressive skill 
    Example: AWS, GCP, Cloudflare (60+ products)

When to Create a Skill

Create a skill when:

  • Same instructions repeated across conversations
  • Domain knowledge model lacks (schemas, internal APIs, company policies)
  • Workflow requires 3+ steps with specific order
  • Code rewritten repeatedly for same task
  • Team needs shared procedural knowledge

When NOT to Create a Skill

ScenarioDo Instead
Single-use instructionsAGENTS.md or inline in conversation
Model already knows domainDon't add redundant context
< 3 steps, no reuseInline instructions
Highly variable workflowHigher-freedom guidelines
Just want to store filesUse regular directories

Reading Order

TaskFiles to Read
New skill from scratchanatomy.md → frontmatter.md
Optimize existing skillprogressive-disclosure.md
Add scripts/resourcesbundled-resources.md
Find skill patternpatterns.md
Debug/fix skillgotchas.md
Review/validate skillreview-checklist.md

In This Reference

FilePurpose
anatomy.mdSkill directory structures
frontmatter.mdYAML spec, naming, validation
progressive-disclosure.mdToken-efficient design
bundled-resources.mdscripts/, references/, assets/
patterns.mdReal-world skill patterns
gotchas.mdCommon mistakes + fixes
review-checklist.mdPost-creation review + dispatch

Scripts

ScriptPurpose
scripts/init_skill.shScaffold new skill
scripts/validate_skill.shValidate skill structure
scripts/package_skill.shCreate distributable zip

Post-Creation Review

After creating or significantly modifying a skill, dispatch a reviewer agent (oracle or code-reviewer) to cross-validate against the best practices checklist. See review-checklist.md for the full checklist and prompt template.

Pre-Flight Checklist

Before using a skill:

  • SKILL.md starts with --- (line 1, no blank lines)

  • name: field present, matches directory name

  • description: includes what + when to use

  • Closing --- after frontmatter

  • SKILL.md under ~200 lines (use references/ for more)

  • All internal links resolve

  • Validate the skill using skills-ref:

    uvx 'git+https://github.com/agentskills/agentskills.git#subdirectory=skills-ref' \
      validate <SKILL_DIR>
    
    # Validate a skill
    skills-ref validate path/to/skill
    
    # Read skill properties (outputs JSON)
    skills-ref read-properties path/to/skill
    
    # Generate <available_skills> XML for agent prompts
    skills-ref to-prompt path/to/skill-a path/to/skill-b
    
<!--Run: `./scripts/validate_skill.sh ./my-skill`-->

Skill Locations

PriorityLocation
1.opencode/skills/<name>/ (project)
2~/.config/opencode/skills/<name>/ (global)
3.claude/skills/<name>/ (Claude-compat)
4$(git rev-parse --show-toplevel)/skills (shared)

Discovery walks up from CWD to git root. First-wins for duplicate names.

See Also

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-script

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

github-docker-action

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

github-service-containers

No summary provided by upstream source.

Repository SourceNeeds Review