
Skill Extractor
FreeTransform recurring solutions into reusable skills.
Free · Opens the source repo
What Skill Extractor does
The Skill Extractor is designed to help developers and designers streamline their workflow by converting recurring patterns or debugging solutions into standalone, reusable skills. By using the command /si:extract, users can interactively extract a pattern from their memory or specify a pattern directly to create a skill that can be easily installed in any project. This process not only saves time but also ensures that valuable solutions are documented and accessible for future use.
To use the Skill Extractor, users need to identify a pattern that meets specific criteria, such as being recurring across multiple projects or requiring complex debugging. Once identified, the user can specify additional parameters, such as the skill name and output directory. The tool generates a structured skill package, including a SKILL.md file, a README for human readability, and optional reference documentation with examples. This comprehensive approach allows users to encapsulate their solutions in a way that is easy to share and implement.
The Skill Extractor is particularly beneficial for those who frequently encounter similar issues or solutions in their work. By creating a library of skills, users can enhance their productivity and reduce the time spent on repetitive tasks. This tool is ideal for developers and designers who want to formalize their solutions and ensure they are easily retrievable when needed. It promotes best practices in documentation and knowledge sharing within teams or across projects.
In summary, the Skill Extractor is a practical tool for anyone looking to optimize their coding practices by transforming solutions into reusable skills. It encourages a systematic approach to problem-solving and helps maintain a repository of knowledge that can be leveraged in future projects.
When to use it
Use this tool when you encounter a recurring problem that could benefit from a structured solution, especially if it requires complex debugging or is broadly applicable.
When not to use it
This tool is not suitable for one-off solutions or very simple fixes that do not warrant formal documentation or extraction into a skill.
What you can build with it
Extracting a Docker Fix
You encounter a recurring issue with Docker builds failing on Apple Silicon. Use `/si:extract` to create a skill that documents the fix.
Documenting API Client Regeneration
After modifying an OpenAPI specification, you need to regenerate the TypeScript API client. Extract this workflow into a reusable skill.
Creating a Common Debugging Solution
You frequently debug a specific error across multiple projects. Use the extractor to formalize this solution into a skill for easy access.
How to install Skill Extractor
View source1. Install with the skills CLI
npx skills add alirezarezvani/claude-skills/extract --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by alirezarezvani/si:extract — Create Skills from Patterns
Transforms a recurring pattern or debugging solution into a standalone, portable skill that can be installed in any project.
Usage
/si:extract <pattern description> # Interactive extraction
/si:extract <pattern> --name docker-m1-fixes # Specify skill name
/si:extract <pattern> --output ./skills/ # Custom output directory
/si:extract <pattern> --dry-run # Preview without creating files
When to Extract
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" |
Workflow
Step 1: Identify the pattern
Read the user's description. Search auto-memory for related entries:
MEMORY_DIR="$HOME/.claude/projects/$(pwd | sed 's|/|%2F|g; s|%2F|/|; s|^/||')/memory"
grep -rni "<keywords>" "$MEMORY_DIR/"
If found in auto-memory, use those entries as source material. If not, use the user's description directly.
Step 2: Determine skill scope
Ask (max 2 questions):
- "What problem does this solve?" (if not clear)
- "Should this include code examples?" (if applicable)
Step 3: Generate skill name
Rules for naming:
- Lowercase, hyphens between words
- Descriptive but concise (2-4 words)
- Examples:
docker-m1-fixes,api-timeout-patterns,pnpm-workspace-setup
Reserved fragments — must NOT appear in the skill name:
claudeanthropic
For skills about Claude Code itself, use the cc- prefix instead:
- ❌
claude-code-settings→ ✅cc-settings - ❌
claude-code-maintenance→ ✅cc-maintenance - ❌
claude-mcp-tools→ ✅cc-mcp-tools - ❌
claude-plugin-development→ ✅cc-plugin-development
Before 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.
Step 4: Create the skill files
Spawn the skill-extractor agent for the actual file generation.
The agent creates:
<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
Step 5: SKILL.md structure
The generated SKILL.md must follow this format:
---
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}}
Step 6: Quality gates
Before finalizing, verify:
- SKILL.md has valid YAML frontmatter with
nameanddescription -
namematches the folder name (lowercase, hyphens) -
namedoes NOT contain reserved fragmentsclaudeoranthropic(usecc-prefix for Claude Code skills) - Description includes "Use when:" trigger conditions
- Solutions are self-contained (no external context needed)
- Code examples are complete and copy-pasteable
- No project-specific hardcoded values (paths, URLs, credentials)
- No unnecessary dependencies
Step 7: Report
✅ 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)
Examples
Extracting a debugging pattern
/si:extract "Fix for Docker builds failing on Apple Silicon with platform mismatch"
Creates docker-m1-fixes/SKILL.md with:
- The platform mismatch error message
- Three solutions (build flag, Dockerfile, docker-compose)
- Trade-offs table
- Performance note about Rosetta 2 emulation
Extracting a workflow pattern
/si:extract "Always regenerate TypeScript API client after modifying OpenAPI spec"
Creates api-client-regen/SKILL.md with:
- Why manual regen is needed
- The exact command sequence
- CI integration snippet
- Common failure modes
Tips
- Extract patterns that would save time in a different project
- Keep skills focused — one problem per skill
- Include the error messages people would search for
- Test the skill by reading it without the original context — does it make sense?
Frequently asked questions about Skill Extractor
Similar skills
Rhino 3D Scripting
Streamline your Rhinoceros 3D scripting tasks.
MVVM Toolkit
Streamline ViewModel development with source generators.
FreeCAD Scripts
Generate Python scripts for FreeCAD automation and modeling.
Azure Architecture Builder
Design and deploy Azure infrastructure using natural language.
Command Development
Streamline your command creation for Claude Code.
Create Cowork Plugin
Easily build and package plugins through guided sessions.
