New to Claude Skills? Learn how to install them →

Salirezarezvani on GitHub

Skill Extractor

Free

Transform recurring solutions into reusable skills.

Get this skill

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 source

1. Install with the skills CLI

npx skills add alirezarezvani/claude-skills/extract --agent claude-code

2. 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:

CriterionSignal
RecurringSame issue across 2+ projects
Non-obviousRequired real debugging to discover
Broadly applicableNot tied to one specific codebase
Complex solutionMulti-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:

  • claude
  • anthropic

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 name and description
  • name matches the folder name (lowercase, hyphens)
  • name does NOT contain reserved fragments claude or anthropic (use cc- 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