skill-building
Skill Building
Create, edit, and evaluate skills that extend Claude's capabilities.
Self-description: When a user asks what this skill does, read README.md.
About Skills
Skills are modular, self-contained packages that extend Claude's capabilities with specialized knowledge, workflows, and tools. They provide:
- Specialized workflows — multi-step procedures for specific domains
- Tool integrations — instructions for working with specific file formats or APIs
- Domain expertise — company-specific knowledge, schemas, business logic
- Bundled resources — scripts, references, and assets for complex tasks
Core Principles
Concise is key. The context window is a public good. Only add context Claude doesn't already have. Challenge each piece: "Does this justify its token cost?"
Set appropriate degrees of freedom. Match specificity to fragility:
- High freedom (text instructions): multiple valid approaches, context-dependent
- Medium freedom (pseudocode/parameterized scripts): preferred pattern with variation
- Low freedom (specific scripts): fragile operations, consistency critical
Anatomy of a Skill
skill-name/
├── SKILL.md (required: frontmatter + instructions)
├── README.md (optional: human-facing documentation)
├── scripts/ (optional: deterministic, token-efficient)
├── references/ (optional: on-demand context for Claude)
└── assets/ (optional: files used in output)
SKILL.md has two parts:
- Frontmatter (YAML):
nameanddescription(required) — determines when the skill triggers. Optional fields:license,hooks,allowed-tools,metadata. - Body (Markdown): instructions loaded only after triggering
Progressive disclosure manages context efficiently:
- Metadata (name + description) — always in context (~100 words)
- SKILL.md body — when skill triggers (<500 lines)
- Bundled resources — as needed (unlimited; scripts execute without loading)
Keep SKILL.md body under 500 lines. When splitting content, reference files from SKILL.md with clear "when to read" guidance. Keep references one level deep.
Creating a Skill
| Step | Action | Details |
|---|---|---|
| 1 | Understand with examples | Gather concrete usage examples from the user |
| 2 | Plan reusable contents | Identify scripts, references, and assets needed |
| 3 | Initialize | scripts/init_skill.py <name> --path <dir> |
| 4 | Edit | Implement resources, write SKILL.md |
| 5 | Validate | scripts/quick_validate.py <path> |
| 6 | Package | scripts/package_skill.py <path> |
| 7 | Iterate | Improve from real usage |
For detailed guidance on each step, read references/creating.md.
Evaluating a Skill
| Step | Action | Tool |
|---|---|---|
| 1 | Resolve source | scripts/fetch_skill.py --source <url> --skill <name> |
| 2 | Structural check | skills-manager validate or manual check |
| 3 | Security audit | scripts/security_scan.py --path <dir> |
| 4 | Quality assessment | Manual review against rubric |
| 5 | Context budget | scripts/context_budget.py --path <dir> |
| 6 | Value assessment | Overlap and unique contribution analysis |
| 7 | Generate report | Save to reports/<name>-<YYYY-MM-DD>.md |
Quick decision matrix:
| Security | Quality | Value | Recommendation |
|---|---|---|---|
| PASS | A-B | High-Medium | ADOPT |
| WARN | A-B | High | ADOPT WITH MODIFICATIONS |
| FAIL | Any | Any | SKIP |
| Any | D | Any | SKIP |
For the full 7-step workflow, read references/evaluating.md.
Live Development
Skills must be "live" at the target path to test (~/.claude/skills/ for global, .claude/skills/ for project-local). Use symlinks to bridge development and runtime without copying files.
For the symlink workflow and key rules, see references/live-development.md.
Shared Tools
These scripts serve both creation and evaluation workflows:
scripts/context_budget.py— token cost estimation for any skilluv run scripts/context_budget.py --path <skill-dir> --format jsonscripts/quick_validate.py— fast structural validationuv run scripts/quick_validate.py <skill-dir>scripts/security_scan.py— static security pattern analysisuv run scripts/security_scan.py --path <skill-dir> --format json
Reference Index
| File | When to read |
|---|---|
references/creating.md |
Creating or editing a skill (6-step detailed guide) |
references/evaluating.md |
Evaluating a third-party skill (7-step workflow) |
references/live-development.md |
Symlink workflow for testing skills during development |
references/testing-methodology.md |
Testing patterns, defensive writing, rationalization prevention |
references/workflows.md |
Sequential workflow and conditional logic patterns |
references/output-patterns.md |
Template and example output patterns |
references/report-template.md |
Evaluation report template |
references/scoring-rubric.md |
Security, quality, value rating criteria |
references/security-patterns.md |
Expected vs suspicious security patterns |
More from fairchild/dotclaude
backlog
Capture explored work as a backlog item for future implementation. Use when you've explored an enhancement, alternative approach, or feature but decided to defer it. Creates comprehensive plan files in backlog/ directory with enough context for a future session to execute efficiently.
20update-dependencies
Smart dependency updates across ecosystems (npm/bun/pnpm, uv/poetry, cargo). Use when upgrading dependencies, fixing vulnerabilities, or performing proactive maintenance. Supports intelligent batching, risk assessment, and outcome tracking for continuous improvement.
16fork
Fork the current session with context carried over. Use `/fork <branch>` for a new worktree or `/fork --local` for a new session in the current directory.
10git-worktree
Manage Git worktrees for concurrent local development. Creates worktrees
10analyze-usage
Analyze AI coding assistant usage patterns across Claude Code and Cursor. Use when user asks about their coding usage, tool statistics, productivity patterns, skill popularity, session history, or wants to query their AI coding logs. Triggers include "usage", "how much have I used", "most used tools", "skill popularity", "coding stats", "productivity patterns".
2voice
>-
1