modules/home/programs/cli-agents/shared/skills/skill-creator/SKILL.md
Guide for creating or importing agent skills. Use when users ask to add/create/update/copy/adapt a skill (including from URLs or GitHub). Enforces skill format, trigger-quality descriptions, and source attribution via an HTML comment at the end of SKILL.md when externally sourced.
npx skillsauth add not-matthias/dotfiles-nix skill-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill guides you through creating effective skills that extend agent capabilities.
Skills are modular, self-contained packages that extend agent capabilities by providing specialized knowledge, workflows, and tools. They transform a general-purpose agent into a specialized agent equipped with procedural knowledge.
Skills Provide:
Skills use progressive disclosure to manage context efficiently:
Metadata (name + description) - Always loaded (~100 tokens)
SKILL.md body - Loaded only when skill triggers (<5000 tokens)
Bundled resources - Loaded as needed by agent
skill-name/
├── SKILL.md # Required: YAML frontmatter + instructions
├── scripts/ # Optional: Executable code
├── references/ # Optional: Documentation for context
└── assets/ # Optional: Templates, images, data files
---
name: skill-name # Required: lowercase-hyphens
description: What this skill does and # Required: 1-1024 chars
when to use it. Include triggers and
specific use cases.
license: MIT # Required if adapted
---
<!-- Source: https://github.com/original/repo/path -->
# Skill Title
Brief overview of what this skill does.
## When to Use
- Scenario 1: When user asks for...
- Scenario 2: When working with...
## Workflow
### Step 1: Action
Clear instructions...
### Step 2: Processing
What to do next...
## Examples
### Example 1: Basic
```bash
command --flag value
Issue: Description
### Bundled Resources
#### scripts/
Executable code for deterministic reliability.
**When to include:**
- Same code rewritten repeatedly
- Fragile operations requiring precision
- Complex logic better handled by code
**Examples:**
- `scripts/rotate_pdf.py` for PDF manipulation
- `scripts/validate_schema.py` for data validation
**Benefits:**
- Token efficient (don't load into context)
- Deterministic execution
- May run without agent reading
#### references/
Documentation for agent to reference while working.
**When to include:**
- Detailed documentation (API specs, schemas)
- Domain knowledge (policies, guidelines)
- Multiple variants/frameworks (aws.md, gcp.md)
**Examples:**
- `references/api_docs.md` - API specifications
- `references/schema.md` - Database schemas
- `references/policies.md` - Company policies
**Best practices:**
- Keep SKILL.md lean; move details here
- Organize by domain (finance.md, sales.md)
- Include grep patterns for large files (>10k words)
- All references must link directly from SKILL.md
#### assets/
Files used in final output, not loaded into context.
**When to include:**
- Templates for output generation
- Brand assets (logos, fonts)
- Boilerplate code to copy/modify
**Examples:**
- `assets/logo.png` for brand assets
- `assets/frontend-template/` for React boilerplate
- `assets/slides.pptx` for PowerPoint templates
## Skill Creation Process
### Step 1: Understand with Concrete Examples
Gather concrete usage examples:
- "What functionality should this skill support?"
- "Can you give examples of how this skill would be used?"
- "What would trigger this skill?"
### Step 2: Plan Reusable Contents
Analyze each example to identify:
1. Scripts needed (repeatedly rewritten code)
2. References needed (schemas, documentation)
3. Assets needed (templates, boilerplate)
### Step 3: Create the Skill File
**File naming:**
- Use lowercase with hyphens: `skill-name.md`
- Must match `name` in frontmatter
**Frontmatter (YAML):**
```yaml
---
name: skill-name
description: Clear description of what this skill does and
when to use it. Include specific triggers like:
"Use when working with X files, Y workflows, or Z APIs."
license: MIT # If adapting external content
---
<!-- Source: https://original-source-url -->
Description best practices:
Content structure:
# Skill Name
Brief overview.
## When to Use
List scenarios that trigger this skill.
## Workflow
### Step 1: Initial Action
Clear instructions.
### Step 2: Processing
Next steps.
### Step 3: Completion
How to finish.
## Examples
### Basic Usage
```bash
example command
Problem: Description
**Writing guidelines:**
- Use imperative/infinitive form
- Challenge each piece: "Does agent need this?"
- Prefer concise examples over verbose explanations
- Keep under ~500 lines
- Set appropriate degrees of freedom for the task
### Step 5: Add Bundled Resources (Optional)
**Progressive disclosure patterns:**
**Pattern 1: High-level guide with references**
```markdown
# PDF Processing
## Quick start
[Basic workflow]
## Advanced features
- **Forms**: See [FORMS.md](references/FORMS.md)
- **API reference**: See [REFERENCE.md](references/REFERENCE.md)
Pattern 2: Domain-specific organization
bigquery-skill/
├── SKILL.md
└── references/
├── finance.md
├── sales.md
└── product.md
Pattern 3: Conditional details
## Creating documents
Use docx-js. See [DOCX-JS.md](references/DOCX-JS.md).
**For tracked changes**: See [REDLINING.md](references/REDLINING.md)
Frontmatter checklist:
name matches filenamename is lowercase-hyphens onlydescription clear and under 1024 charslicense included if adaptedContent checklist:
Skills should be treated as living documentation. Periodically:
llms.txt: See if the target tool has an AI-friendly index.The context window is a public good. Skills share space with system prompt, conversation history, and user requests.
Default assumption: The agent is already smart. Only add context it doesn't have.
Match specificity to task fragility:
| Freedom Level | Use When | Format | |--------------|----------|--------| | High | Multiple approaches valid, context-dependent | Text instructions | | Medium | Preferred pattern exists, some variation OK | Pseudocode/scripts with params | | Low | Fragile operations, consistency critical | Specific scripts, few parameters |
Do NOT create extraneous documentation:
Include only what the agent needs to do the job.
Information should live in ONE place:
Avoid duplication between SKILL.md and references.
---
name: skill-name
description: What this skill does and when to use it.
Include specific triggers and use cases.
license: MIT # If adapting external work
---
<!-- Source: https://github.com/original/source -->
# [Skill Name]
[Overview paragraph]
## When to Use
- [Scenario 1]
- [Scenario 2]
## Prerequisites
[List any requirements]
## Workflow
### Step 1: [Action]
[Instructions]
### Step 2: [Action]
[Instructions]
## Examples
### [Example Name]
[Code example]
## Resources
- [reference/file.md] - [When to use]
- [scripts/script.py] - [What it does]
## Common Issues
**[Issue]**: [Description]
- [Solution]
## See Also
- https://agentskills.io/specification
- https://agentskills.io/llms.txt
| Skill | Purpose | Structure |
|-------|---------|-----------|
| github-raw-fetch.md | URL transformation | Simple workflow |
| rust.md | Development practices | Multiple workflows |
| ast-grep.md | Code search | Multi-phase workflow |
| technical-researcher.md | Research methodology | Complex reasoning |
documentation
Save notes, journal entries, and research to the personal-notes Obsidian vault (personal-vault-v2). Use when the user asks to 'save note', 'save to notes', 'write to personal notes', 'save to daily notes', 'note this down', or wants to persist findings/analysis to their personal vault.
documentation
Use whenever the user asks to address, fix, resolve, review, or respond to pull-request comments or review feedback.
development
Apply Not Matthias's Rust-first personal coding style. Use whenever the user explicitly asks to apply or review their code style, make Rust match their preferences, perform a style pass, or simplify/refactor according to their conventions. Inspect only task-touched code, honor local project conventions first, and make only safe opt-out style edits.
development
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for code patterns, find specific language constructs, or locate code with particular structural characteristics.