
Update Skill
Refactor or extend an existing `.agents/skills/` package using progressive disclosure so agents load only the SKILL sections and references they need.
Install
npx skills add https://github.com/warpdotdev/common-skills --skill update-skillWhat is this skill?
- Three-layer loading model: metadata always on, SKILL.md on trigger, references on demand
- Keep SKILL.md under 150–200 lines; split overflow into one-level-deep reference files
- Patterns for high-level guides, domain-split references, and conditional advanced links
- Domain-specific reference folders so agents load only the active domain file
Adoption & trust: 3.5k installs on skills.sh; 18 GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Skills are agent tooling created during Build; that is the first place builders formalize SKILL.md, even though authoring practices apply whenever skills change. agent-tooling is the catalog shelf for maintaining skill packages, reference trees, and metadata—not application feature code.
Common Questions / FAQ
Is Update Skill safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Update Skill
# Best Practices for Warp Skills Detailed authoring guidance for creating effective skills in `.agents/skills/`. ## Progressive Disclosure Skills use a loading system to manage context efficiently: 1. **Metadata (name + description)** - Always loaded at startup 2. **SKILL.md body** - Loaded when skill triggers 3. **Reference files** - Loaded only when needed ### When to Use References Keep SKILL.md under 150-200 lines. When content grows beyond this: **Pattern 1: High-level guide with references** SKILL.md contains the core workflow and points to detailed references: ```markdown ## Advanced Features - **Detailed configuration**: See [references/config.md](references/config.md) - **API reference**: See [references/api.md](references/api.md) - **Examples**: See [references/examples.md](references/examples.md) ``` **Pattern 2: Domain-specific organization** For skills with multiple independent domains, organize by domain: ``` skill-name/ ├── SKILL.md (overview and navigation) └── references/ ├── domain-a.md ├── domain-b.md └── domain-c.md ``` When the user works with domain-a, the agent only loads domain-a.md, not the others. **Pattern 3: Conditional details** Show basic content inline, link to advanced content: ```markdown ## Basic Usage [Core instructions here] **For advanced configuration**: See [references/advanced.md](references/advanced.md) ``` ### Important Guidelines - **Keep references one level deep** - All reference files should link directly from SKILL.md - **Avoid nested references** - Don't create references that reference other files - **Add table of contents** - For reference files >100 lines, include TOC at the top ## Writing Effective Descriptions The description field enables skill discovery. the agent uses it to decide when to load the skill. ### Description Best Practices 1. **Be specific and include key terms** - Good: "Add a new feature flag to gate code changes in the Warp codebase." - Avoid: "Helps with features." 2. **Include both what and when** - What the skill does: "Write, improve, and run Rust unit tests" - When to use it: "in the warp Rust codebase" 3. **Write in third person** - Good: "Adds feature flags to gate code changes" - Avoid: "I can help you add feature flags" - Avoid: "You can use this to add feature flags" 4. **Include trigger terms** - Mention specific files, commands, or concepts - Example: "Use when working with PDF files, forms, or document extraction" ## Conciseness Principles Context window is shared across all skills, conversation history, and the system prompt. Every token matters. ### Default Assumption: Agent is Already Smart Only add context the agent doesn't already have. Challenge each piece: - "Does the agent really need this explanation?" - "Can I assume the agent knows this?" - "Does this paragraph justify its token cost?" **Good (concise):** ```markdown ## Extract PDF text Use pdfplumber for text extraction: \`\`\`python import pdfplumber with pdfplumber.open("file.pdf") as pdf: text = pdf.pages[0].extract_text() \`\`\` ``` **Bad (verbose):** ```markdown ## Extract PDF text PDF (Portable Document Format) files are a common file format that contains text, images, and other content. To extract text from a PDF, you'll need to use a library. There are many libraries available for PDF processing, but we recommend pdfplumber because it's easy to use and handles most cases well. First, you'll need to install it using pip. Then you can use the code below... ``` The concise version assumes the agent knows what PDFs are and how libraries work. ## Code Example Formatting ### Syntax Highlighting Always specify the language for code blocks: ```rust pub fn example() { println!("Always specify language"); } ``` ```bash cargo nextest run --workspace ``` ### Example Structure For workflow-based skills, show before/after or step-by-step: ```markdown ### Before: \`\`\`rust if FeatureFlag::Your