code/extract-skill/SKILL.md
Scans the current conversation for patterns worth turning into a reusable skill or memory rule — feedback you've given Claude, workflows you've walked through, corrections, best practices, recurring setups. Proposes candidates, classifies each as skill (multi-step workflow) or memory (single rule), cross-checks against existing skills + MEMORY.md to avoid duplicates, then hands off to /skill-creator (for skills) or writes the memory entry directly. Use when the conversation contains reusable knowledge you don't want to teach Claude again — "we just figured this out, capture it", "turn this into a skill", "save this workflow", "from experience to skill".
npx skillsauth add mostafa-drz/claude-skills extract-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Turn the current conversation into a reusable skill or memory rule. From experience → reusable artifact.
On startup, use Read to load ~/.claude/skills/extract-skill/preferences.md. If it does not exist, treat as "no preferences set" — proceed with sensible defaults.
On startup, use Bash to:
ls ~/.claude/skills/~/.claude/skills/SKILLS_GUIDE.md (inventory + conventions)~/.claude/projects/<project-slug>/memory/MEMORY.md if accessible (the user's auto-memory index)Skip any that fail. The point is to know what already exists so we don't propose duplicates.
Check $ARGUMENTS:
help → display help then stopconfig → interactive setup, then stopreset → delete ~/.claude/skills/extract-skill/preferences.md, confirm, stop--memory-only → only propose memory entries, never skills--skill-only → only propose skills, never memory entries--dry-run → print candidates + classification, do not create anythingextract-skill — Capture conversation learnings as a skill or memory rule
Usage:
/extract-skill Scan this conversation, propose skill/memory candidates
/extract-skill --memory-only Only propose memory entries (single-rule preferences)
/extract-skill --skill-only Only propose skills (multi-step workflows)
/extract-skill --dry-run Print candidates + classification, do not create anything
/extract-skill config Set preferences
/extract-skill reset Clear preferences
/extract-skill help This help
Examples:
/extract-skill After a chat where you taught Claude how to do X
/extract-skill --dry-run Preview what would be captured before committing
Current preferences:
(loaded from preferences.md, shown above)
Use AskUserQuestion to collect:
/skill-creator / let me choose per skillSave to ~/.claude/skills/extract-skill/preferences.md.
Delete ~/.claude/skills/extract-skill/preferences.md and confirm: "Preferences cleared. Using defaults."
If no preferences file exists, show:
First time using /extract-skill? Run
/extract-skill configto set defaults, or just continue with sensible defaults.
Then proceed.
Look back over the conversation we're in right now. You don't need to read transcripts — you have the messages in context. Categorize what you see into these signal types:
| Type | Example phrasing in chat | Likely artifact | |---|---|---| | Feedback / correction | "don't do X", "stop doing Y", "always use Z" | Memory (single rule) | | Preference / convention | "we use pnpm not npm", "kebab-case for components" | Memory (single rule) | | Workflow walkthrough | User taught Claude a multi-step procedure ("first do X, then Y, then Z, then…") | Skill | | Repeated request | User asked for the same kind of output 2+ times in similar way | Skill | | Setup / configuration ritual | "every time I start, I do X, Y, Z" | Skill (or memory if 1 step) | | Best practice shared | User explained why an approach is correct | Memory (with Why:) | | Tooling / integration | User showed how to use a specific MCP or external tool | Skill | | Explicit "save this" | "remember this", "turn this into a skill", "capture this" | Whatever the user named |
Signal (capture):
Noise (skip):
For each candidate, decide:
/<name>. → handed off to /skill-creator./post-pr might pair with a memory rule "PRs always use HEREDOC syntax".If the user passed --memory-only or --skill-only, filter the output accordingly.
Before surfacing any candidate:
~/.claude/skills/SKILLS_GUIDE.md and the directory listing. If a skill already covers this workflow, mention it instead of proposing a duplicate./init, /review, /loop that already ship with Claude Code.Use AskUserQuestion to show 1–4 candidates at once. Each option should include:
Example layout:
Candidate 1: SKILL — extract-skill
One-liner: Scans current conversation, proposes skill/memory candidates, routes to /skill-creator or writes memory.
Trigger: After a chat where the user taught Claude something reusable.
Source: "from experience to skills, best practices my latest, learning, feedback…"
"I want to create a skill which basically when I call it looks at context available in a chat…"
Candidate 2: MEMORY — Always confirm name + scope before generating SKILL.md
Rule: Skill creation must confirm name and side-effect scope before writing files.
Why: Past skills were generated with wrong defaults that the user had to revise.
How to apply: When invoked, ask name + side-effects Q before any Write tool call.
Let the user pick which to proceed with (multi-select). Default-select all that look high-confidence.
For each candidate the user accepted as a skill:
--from-description brief: "<one-liner>. Trigger: <when>. Key behaviors: <bullets>. Inputs: <args/flags>. Side effects: <yes/no + what>."/skill-creator --from-description \"…\" — it will walk you through name, tools, and workflow with its own conventions."/skill-creator yourself via tool — slash commands aren't tool-callable from another skill. Print the exact command for the user to run, or to copy/paste.SKILL.md inline using SKILLS_GUIDE.md conventions — but flag this as the non-DRY path./skill-creator --from-description "<purpose in 1–2 sentences>. Trigger: <when user reaches for it>. Key behaviors: <3–5 bullets>. Side effects: <yes/no — what does it create or modify?>. Tools: <best-guess list>."
For each candidate the user accepted as a memory entry:
Determine memory type from content:
feedback — user corrections, preferences, do/don't rulesuser — facts about the user's role / contextproject — facts about ongoing workreference — pointers to external systemsPick a filename (kebab-case): feedback_<topic>.md, project_<topic>.md, etc.
Write the file with frontmatter:
---
name: <Title>
description: <one-line, specific>
type: feedback | user | project | reference
---
<Lead with the rule/fact.>
**Why:** <reason — often an incident or strong preference>
**How to apply:** <when/where this kicks in>
Add a one-line index entry to MEMORY.md under an appropriate heading:
## <Short title> (MANDATORY / PREFERENCE / ACTIVE)
- See `memory/<filename>.md`
- <one-line hook capturing the essence>
Use Edit (not Write) on MEMORY.md so existing entries aren't clobbered.
The auto-memory directory is per-project. Detect via:
git rev-parse --show-toplevel
Then map to: ~/.claude/projects/<encoded-path>/memory/. If the directory doesn't exist or isn't accessible, fall back to asking the user for the path.
If a candidate matches something already in MEMORY.md or an existing skill:
After all writes:
/skill-creator … command to run)<command> to finalize the skill" or "Memory takes effect next conversation — nothing else to do".If the user corrected your classification (e.g., "no, that's a memory not a skill", "use this name instead"), silently save to preferences.md under ## Learned. Surface once: "Noted: <pattern>. Saved for next time."
/skill-creator for skill generation; defer to MEMORY.md for memory routing. This skill is a router + classifier, not a re-implementation./skill-creator command for the user. Side-effect chains shouldn't fire silently.--dry-run prints without writing.development
--- name: triage-board description: >- Generates a structured triage artifact from the current conversation's findings — a self-contained Desktop folder with a JSON Schema, schema-conformant report.json, prose markdown, and a single-file HTML viewer. Viewer ships with MD / CSV / JSON download buttons in the header and a per-finding "Copy as Markdown" action that produces a GitHub/Linear/Notion-ready ticket block. Stateless — triage state lives in the user's ticket system, not in the
development
Runs a beginner-mind end-to-end UI audit of any running app — local dev server, staging, production, or a specific URL. Drives Chrome through every interactive element on the target surface, collects structured findings (severity, category, where, symptom, impact, repro, triage), and hands the result off to `/triage-board` which produces the Desktop folder (schema + JSON + Markdown + single-file HTML viewer with MD/CSV/JSON exports and a per-finding Copy as Markdown button). Use when you want fresh-eyes verification of a feature, page, modal, flow, branch, or whole app — before shipping, before review, before a demo, or any time the UI deserves a careful poke.
development
Reviews the user's past Claude Code conversations from a wellbeing perspective — sentiment, tone, emotional arc, recurring patterns — and generates a supportive, science-grounded report in both Markdown and HTML. Default lookback is 48 hours across all projects. Uses recognised emotion frameworks (Plutchik, Ekman, Russell's circumplex, Pennebaker linguistic markers) and cites the science behind every observation. Learns the user's baseline tone over time so future reports flag genuine shifts, not noise. Use when the user asks for an emotional/wellbeing recap, mood check, sentiment review, or wants to understand their own ups and downs across recent work sessions.
development
--- name: workflow-advisor description: >- Analyzes recent Claude Code conversations and local Claude state (skills, settings, memory files, CLAUDE.md), researches the latest Claude Code features and best practices online, and suggests one workflow improvement at a time with reasoning and a concrete action item. Can save accepted suggestions to memory for tracking. Use when you want to discover underused Claude Code features, improve your development workflow, stay current with the lat