npx skills add ...
npx skills add alirezarezvani/claude-skills --skill extract
Turn a proven pattern or debugging solution into a standalone reusable skill with SKILL.md, reference docs, and examples. Use when the user runs /si:extract or asks to package a recurring solution from memory into a skill.
npx skills add alirezarezvani/claude-skills --skill extract
Transforms a recurring pattern or debugging solution into a standalone, portable skill that can be installed in any project.
A learning qualifies for skill extraction when ANY of these are true:
| Criterion | Signal |
|---|---|
| Recurring | Same issue across 2+ projects |
| Non-obvious | Required real debugging to discover |
| Broadly applicable | Not tied to one specific codebase |
| Complex solution | Multi-step fix that's easy to forget |
| User-flagged | "Save this as a skill", "I want to reuse this" |
Read the user's description. Search auto-memory for related entries:
If found in auto-memory, use those entries as source material. If not, use the user's description directly.
Ask (max 2 questions):
Rules for naming:
docker-m1-fixes, api-timeout-patterns, pnpm-workspace-setupReserved fragments — must NOT appear in the skill name:
claudeanthropicFor skills about Claude Code itself, use the cc- prefix instead:
claude-code-settings → ✅ cc-settingsclaude-code-maintenance → ✅ cc-maintenanceclaude-mcp-tools → ✅ cc-mcp-toolsclaude-plugin-development → ✅ cc-plugin-developmentBefore writing the skill directory, check the proposed name against this list.
If a reserved fragment is present, transform it (drop the fragment or replace
the claude*/anthropic* prefix with cc-) and confirm with the user.
Spawn the skill-extractor agent for the actual file generation.
The agent creates:
The generated SKILL.md must follow this format:
Before finalizing, verify:
name and descriptionname matches the folder name (lowercase, hyphens)name does NOT contain reserved fragments claude or anthropic (use cc- prefix for Claude Code skills)Creates docker-m1-fixes/SKILL.md with:
Creates api-client-regen/SKILL.md with:
<skill-name>/
├── SKILL.md # Main skill file with frontmatter
├── README.md # Human-readable overview
└── reference/ # (optional) Supporting documentation
└── examples.md # Concrete examples and edge cases---
name: "skill-name"
description: "<one-line description>. Use when: <trigger conditions>."
---
# <Skill Title>
> One-line summary of what this skill solves.
## Quick Reference
| Problem | Solution |
|---------|----------|
| {{problem 1}} | {{solution 1}} |
| {{problem 2}} | {{solution 2}} |
## The Problem
{{2-3 sentences explaining what goes wrong and why it's non-obvious.}}
## Solutions
### Option 1: {{Name}} (Recommended)
{{Step-by-step with code examples.}}
### Option 2: {{Alternative}}
{{For when Option 1 doesn't apply.}}
## Trade-offs
| Approach | Pros | Cons |
|----------|------|------|
| Option 1 | {{pros}} | {{cons}} |
| Option 2 | {{pros}} | {{cons}} |
## Edge Cases
- {{edge case 1 and how to handle it}}
- {{edge case 2 and how to handle it}}✅ Skill extracted: {{skill-name}}
Files created:
{{path}}/SKILL.md ({{lines}} lines)
{{path}}/README.md ({{lines}} lines)
{{path}}/reference/examples.md ({{lines}} lines)
Install: /plugin install (copy to your skills directory)
Publish: clawhub publish {{path}}
Source: MEMORY.md entries at lines {{n, m, ...}} (retained — the skill is portable, the memory is project-specific)/si:extract "Fix for Docker builds failing on Apple Silicon with platform mismatch"/si:extract "Always regenerate TypeScript API client after modifying OpenAPI spec"