--- name: skill-creator description: Create or update skills. Use when designing, structuring, or packaging skills with scripts, references, and assets. --- # Skill Creator Guidance for creating effective skills. ## About Skills Skills are modular packages that extend agent capabilities with specialized knowledge, workflows, and tools. Each skill is a directory containing a `SKILL.md` file and optional bundled resources. ### What Skills Provide 1. Specialized workflows - Multi-step procedures for specific domains 2. Tool integrations - Instructions for working with specific file formats or APIs 3. Domain expertise - Project-specific knowledge, schemas, business logic 4. Bundled resources - Scripts, references, and assets for complex and repetitive tasks ### Skill Locations in OPC OPC uses a two-level skill system: | Level | Path | Scope | |-------|------|-------| | System | `.opc/skills//` | Shared across all projects | | Project | `.opc/projects//skills//` | Specific to one project | Project skills with the same name override system skills. When creating new skills from project experience, always use the **project** level. ### How Skills Are Created Skills enter the system through two paths: 1. **Agent-driven** (this skill): You identify a pattern, read this guide, and create the skill manually using `init_skill.py` or `file_write`. 2. **Auto-promoted**: The system automatically distills playbook skills from repeated project reflections (threshold: 2 reflections with recurring patterns). These are saved as `---playbook` under the project skills directory. Both paths produce the same `/SKILL.md` format. This guide covers the agent-driven path; auto-promoted skills follow the same naming and format conventions. ## Core Principles ### Concise is Key The context window is shared. Only add context the agent doesn't already have. Prefer concise examples over verbose explanations. ### Anatomy of a Skill ``` skill-name/ ├── SKILL.md (required) │ ├── YAML frontmatter (name, description required) │ └── Markdown instructions └── Bundled Resources (optional) ├── scripts/ - Executable code ├── references/ - Documentation loaded as needed └── assets/ - Files used in output ``` ### Progressive Disclosure 1. **Metadata (name + description)** - Always in context (~100 words) 2. **SKILL.md body** - When agent reads the skill (<5k words) 3. **Bundled resources** - As needed (scripts can be executed without reading into context) ## Naming All skills — whether agent-created or auto-promoted — must follow these conventions: - Lowercase letters, digits, and hyphens only (e.g., `backend-api-playbook`) - Under 64 characters - Directory name must match the `name` field in frontmatter ## Skill Creation Process ### Step 1: Understand the skill with concrete examples Clarify use cases: what triggers this skill, what does it produce? ### Step 2: Plan reusable contents Identify what scripts, references, and assets would help. ### Step 3: Initialize the skill For project-specific skills, create under `.opc/projects//skills/`: ```bash python3 {baseDir}/scripts/init_skill.py --path .opc/projects//skills ``` Options: `--resources scripts,references,assets` and `--examples`. ### Step 4: Edit the skill Write SKILL.md with: - **Frontmatter**: `name` (hyphen-case, matches directory) and `description` (what it does + when to use it — this is the primary trigger for skill discovery) - **Body**: Instructions, examples, references to bundled resources ### Step 5: Package (optional) ```bash python3 {baseDir}/scripts/package_skill.py ``` Validates the skill then creates a distributable `.skill` zip file. ### Step 6: Iterate Test, notice struggles, improve SKILL.md and resources.