Skills extract
Turn a proven pattern or debugging solution into a standalone reusable skill with SKILL.md, reference docs, and examples.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/alirezarezvani/auto-memory-pro/skills/extract" ~/.claude/skills/openclaw-skills-extract && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/alirezarezvani/auto-memory-pro/skills/extract" ~/.openclaw/skills/openclaw-skills-extract && rm -rf "$T"
manifest:
skills/alirezarezvani/auto-memory-pro/skills/extract/SKILL.mdsource content
/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-patternspnpm-workspace-setup
Step 4: Create the skill files
Spawn the
agent for the actual file generation.skill-extractor
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
andnamedescription -
matches the folder name (lowercase, hyphens)name - 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?