.agents/skills/skill-authoring/SKILL.md
Create and maintain Claude Code skills following Anthropic best practices. Use when building new skills, refactoring existing ones, or ensuring skills follow official guidelines for structure, naming, progressive disclosure, and testing.
npx skillsauth add aspiers/ai-config skill-authoringInstall 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.
Create effective Claude Code skills that follow Anthropic's official best practices and guidelines.
Use this skill when:
Skills load in three tiers:
Each skill is a directory containing a SKILL.md file. Multiple locations
are scanned, in order of preference:
Project-local (walked up from cwd to git worktree root):
.agents/skills/<name>/SKILL.md — preferred cross-platform standard.claude/skills/<name>/SKILL.md — Claude-compatible.opencode/skills/<name>/SKILL.md — OpenCode-specificGlobal (user home):
~/.agents/skills/<name>/SKILL.md~/.claude/skills/<name>/SKILL.md~/.config/opencode/skills/<name>/SKILL.mdUse .agents/skills/ for new skills — it is the emerging cross-platform
standard supported by Claude Code, OpenCode, and other agents.
.agents/skills/skill-name/
├── SKILL.md (required - instructions + metadata)
└── Optional bundled resources:
├── scripts/ - Executable code (Python/Bash/etc.)
├── references/ - Documentation loaded as needed
└── assets/ - Files for output (templates, images)
---
name: skill-name-here # lowercase, hyphens, max 64 chars
description: What + When # max 1024 chars, include trigger contexts
---
Critical: Description must include both WHAT the skill does AND WHEN to use it. Include:
SKILL.mdN.B. The following example is indented here so that triple backticks can be included within the example, but when creating / editing a SKILL.md, most of it should not be indented.
Note also that SKILL.md files do not necessarily need to provide and use helper tools; however it's included this example skill for illustrative purposes.
---
name: example-skill
description: Process example files with specific formatting. Use when users mention examples, processing, or .example files.
---
# Example Skill
Process example files following consistent patterns.
## When to Use This Skill
- When processing .example files
- When users ask about example formatting
- When converting example formats
## How It Works
1. Read the input file using the example-parser tool
2. Apply formatting rules from references/rules.md
3. Write output to destination
## Usage
```bash
python scripts/process_example.py input.example output.txt
```
## How to use the example-parser tool
```python
from example_parser import parse
result = parse("data.example")
print(result.summary)
```
## Reference Files
- [Formatting Rules](references/rules.md)
- [Parser Documentation](references/parser.md)
Use gerunds or gerundial nouns:
Gerunds (verb + -ing): processing-pdfs, analyzing-spreadsheets, managing-databases
Gerundial nouns (verb-derived nouns): generation, authoring, initialization, management
✅ processing-pdfs, generating-prps, authoring-skills
❌ pdf-helper, data-utils, skill-creator
# PDF Processing
## Quick start
Extract text with pdfplumber:
```python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
scripts\helper.pyscripts/helper.pyHandle errors explicitly rather than letting Claude figure it out:
# Good: Handle file not found
def process_file(path):
try:
with open(path) as f:
return f.read()
except FileNotFoundError:
print(f"File {path} not found, creating default")
with open(path, 'w') as f:
f.write('')
return ''
Pre-made scripts offer advantages:
For complete official guidelines, see:
development
Run tests according to repository guidelines. Use after linting passes, before staging changes.
development
Orchestrate the complete development workflow for implementing sub-tasks from a task list. Use for end-to-end feature implementation with quality controls.
development
Implement a single sub-task from a task list. Use when working on feature development with existing task lists.
data-ai
Generate a detailed task list from a PRP. Use after a PRP is created and ready for implementation planning.