$npx -y skills add warpdotdev/common-skills --skill update-skillCreate or update skills by generating, editing, or refining SKILL.md files in this repository. Use when authoring new skills or revising the structure, frontmatter, or guidance for existing ones.
| 1 | # update-skill |
| 2 | |
| 3 | This guide provides instructions for creating or updating skills in this repository. It covers the required structure, frontmatter, and best practices for skills. |
| 4 | |
| 5 | ## Quick Start |
| 6 | |
| 7 | Every skill is a directory containing a `SKILL.md` file with YAML frontmatter and markdown body: |
| 8 | |
| 9 | ```markdown |
| 10 | --- |
| 11 | name: pdf-processing |
| 12 | description: Extract text and tables from PDF files, fill forms, merge documents. |
| 13 | --- |
| 14 | |
| 15 | # PDF Processing |
| 16 | |
| 17 | ## When to use this skill |
| 18 | Use this skill when the user needs to work with PDF files... |
| 19 | |
| 20 | ## How to extract text |
| 21 | 1. Use pdfplumber for text extraction... |
| 22 | |
| 23 | ## How to fill forms |
| 24 | ... |
| 25 | ``` |
| 26 | |
| 27 | ## Requirements |
| 28 | |
| 29 | ### Frontmatter (Required) |
| 30 | |
| 31 | Every SKILL.md must start with YAML frontmatter containing: |
| 32 | |
| 33 | - **name**: Kebab-case identifier (lowercase letters, numbers, hyphens only) |
| 34 | - Example: `add-feature-flag`, `pdf-processing`, `update-skill` |
| 35 | - **description**: Specific description of what the skill does and when to use it |
| 36 | - Must be non-empty |
| 37 | - Should include key terms for skill discovery |
| 38 | - Begin with an action verb to clearly state what the skill accomplishes (e.g., "Adds feature flags..." instead of "Helps with features..."), and immediately follow with a specific use case or context (e.g., "Use when working with feature flags") |
| 39 | - Write in third person (e.g., "Adds feature flags..." not "I can help you add...") |
| 40 | |
| 41 | ### Writing Effective Descriptions |
| 42 | |
| 43 | The description field is critical for skill discovery. Include both **what** the skill does and **when** to use it. Some good examples: |
| 44 | |
| 45 | - `git-commit`: "Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes." |
| 46 | - `pdf-processing`: "Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction." |
| 47 | |
| 48 | Avoid vague descriptions like "Helps with code" or "Does development tasks". For more context, see "Description Best Practices" in [references/best-practices.md](references/best-practices.md). |
| 49 | |
| 50 | ### Skill Structure |
| 51 | |
| 52 | Typical sections in Warp skills: |
| 53 | |
| 54 | 1. **Title and brief summary** – Clear title and a concise overview of the skill's purpose and primary use cases. Link to sections, reference files or related skills if useful |
| 55 | 2. **Overview** - Context about the skill's purpose (optional but common), extends the summary with more details and context |
| 56 | 3. **Main content** - Steps, usage instructions, or workflow guidance |
| 57 | 4. **Best Practices** - Guidelines and recommendations (optional) |
| 58 | 5. **Examples / Reference PRs** - Links to real examples (optional) |
| 59 | |
| 60 | Keep the structure flexible based on the skill's needs. Simple skills can omit the optional sections. |
| 61 | |
| 62 | ### Validation |
| 63 | |
| 64 | Optionally, use the [skills-ref](https://github.com/agentskills/agentskills/tree/main/skills-ref) reference library to validate your skills: |
| 65 | |
| 66 | ```bash |
| 67 | skills-ref validate ./my-skill |
| 68 | ``` |
| 69 | |
| 70 | This checks that your SKILL.md frontmatter is valid and follows all naming conventions. If not installed, use the WebSearch tool to get context around this package. |
| 71 | |
| 72 | ### Main Content Best Practices |
| 73 | |
| 74 | - For guidance on what qualifies as good main content, see "Conciseness Principles" in [references/best-practices.md](references/best-practices.md) |
| 75 | - When formatting code examples, see "Code Example Formatting" in [references/best-practices.md](references/best-practices.md). |
| 76 | |
| 77 | ### File Organization |
| 78 | |
| 79 | - **Simple skills** (<=200 lines): Keep everything in SKILL.md |
| 80 | - **Complex skills** (>200 lines): Split detailed content into `references/` subdirectory |
| 81 | - Reference files from SKILL.md with clear links |
| 82 | - Example: "See [references/best-practices.md](references/best-practices.md) for detailed guidance" |
| 83 | |
| 84 | ## When to Split Content |
| 85 | |
| 86 | Create `references/` subdirectory when: |
| 87 | |
| 88 | - SKILL.md approaches 200+ lines |
| 89 | - Skill covers multiple domains or workflows that can be loaded independently |
| 90 | - Detailed reference material would clutter the main instructions |
| 91 | |
| 92 | Keep only essential workflow and procedural instructions in SKILL.md. Move detailed reference material, schemas, and extensive examples to `references/` files. |
| 93 | |
| 94 | ## Examples from Existing Skills |
| 95 | |
| 96 | For reference on structure and style: |
| 97 | |
| 98 | - `.agents/skills/add-feature-flag/SKILL.md` - Multi-step workflow with clear sequential steps |
| 99 | - `.agents/skills/remove-feature-flag/SKILL.md` - Cleanup workflow with search commands |
| 100 | |
| 101 | ## Best Practices |
| 102 | |
| 103 | See [references/best-practices.md](references/best-practices.md) for detailed authoring guidance including: |
| 104 | |
| 105 | - Progressive disclosure patterns |
| 106 | - Writing concise, effective instructions |
| 107 | - Code example formatting |
| 108 | - Common anti-patterns to avoid |