| name | skills-from-sources |
| description | Extracts and creates Claude skills from source materials — PDFs, URLs, text files, audio transcripts, or video transcripts. Use this skill whenever the user provides documents, books, guides, articles, or links and wants to turn them into reusable skills. Triggers on: "create skills from these files", "turn this PDF into a skill", "extract skills from", "make skills from these docs", "build skills from this book/article/guide", or when the user supplies a collection of related materials and asks what skills can be made. Also triggers when the user points at a directory of documents and says something like "apply to docs/*.pdf". This skill is the right tool even if the user doesn't say "skill" explicitly — if they hand you learning material and want to operationalize it, use this. |
Skills From Sources
You are turning raw source materials into reusable Claude skills. The goal is to deeply understand each source, identify distinct actionable skill candidates, and create well-structured skill directories that future Claude sessions can use.
Phase 1: Extract Content from Sources
For each source, extract its full text using the best available method:
PDFs — run the bundled extraction script:
python scripts/extract_content.py --pdf <path>
This uses PyMuPDF. If the PDF is long (>100 pages), extract a representative sample: introduction, chapter summaries, conclusions, and any framework/method sections. Read scripts/extract_content.py for usage details.
URLs — use the WebFetch tool directly. Grab the main content; skip navigation, footers, and ads.
Plain text / Markdown — use the Read tool directly.
Audio / Video — these require a transcript. If a .txt, .srt, or .vtt transcript file exists alongside the media file, read that. Otherwise, tell the user you need a transcript and offer to proceed with the other sources in the meantime.
Collect the extracted text for each source in memory — you'll analyze them together in Phase 2.
Phase 2: Understand Each Source
For each source, answer these questions (you don't have to write them out — just hold them in mind):
- What domain does this cover? (e.g., habit formation, sales tactics, cooking techniques, software architecture)
- What is the core thesis or framework? (the main model, method, or insight)
- What are the key concepts, steps, or techniques? (the actionable parts)
- Who is the intended audience? (beginners, experts, practitioners, coaches, developers...)
- What would someone do differently after reading this?
Write a brief 2–3 sentence summary of each source before moving on.
Phase 3: Identify Skill Candidates
Look across all sources and identify skills worth creating. Good skill candidates are:
- Specific and actionable — "design a tiny habit using BJ Fogg's anchor method" is better than "habits"
- Repeatable — something you'd want Claude to do consistently every time, not once
- Distinct — each skill covers one coherent capability; don't merge unrelated things or split one thing into five
- Complementary to Claude's defaults — skills add domain knowledge or workflow structure that Claude wouldn't have without the source material
When multiple sources overlap (e.g., several books on the same topic), look for:
- Synthesis skills — combining insights from all sources into one unified framework
- Comparison skills — helping users choose between approaches (atomic habits vs. tiny habits vs. mini habits)
- Domain-specific application skills — applying a framework to a particular context (habits for software teams, habits for wellness, etc.)
Present the skill candidates to the user as a short numbered list with a one-line description of each. Ask which ones to create before building anything. If the user wants all of them, proceed.
Example presentation format:
I found 4 skill candidates across these sources:
1. **habit-designer** — Guide users through designing new habits using the Four Laws from Atomic Habits and BJ Fogg's Tiny Habits recipe
2. **habit-audit** — Analyze an existing routine and identify which habits are working, which are friction-heavy, and what small changes would help
3. **habit-stack-builder** — Help users build habit stacks by linking new behaviors to existing anchors
4. **wellness-micro-habits** — Suggest micro-habits tailored to specific wellness goals (sleep, energy, focus, stress)
Which of these should I create? (say "all" to create them all)
Phase 4: Create Each Skill
For each approved skill candidate, create a proper skill directory under ~/.claude/skills/<skill-name>/.
Directory structure
~/.claude/skills/<skill-name>/
├── SKILL.md (required)
└── references/ (optional — use for substantial domain content)
└── <topic>.md
Add a scripts/ directory only if there's genuinely repetitive or deterministic work that a script would do better than prose instructions (e.g., parsing structured data, formatting output).
Writing the SKILL.md
Every SKILL.md needs:
Frontmatter:
---
name: skill-name
description: One or two sentences covering WHAT the skill does AND WHEN to trigger it. Be specific about trigger phrases and contexts. Lean slightly pushy — mention adjacent use cases the user might not think to name explicitly.
---
Body — include:
- A clear statement of what this skill does and why
- The core framework or model being applied (cite the source briefly)
- Step-by-step process instructions written in imperative form
- Output format (if there's a specific structure the user expects)
- 1–2 concrete examples if the skill is complex
Tone and length:
- Write for Claude, not for the end user
- Explain the why behind each step, not just the what
- Keep under 300 lines; use a
references/ file for heavy domain content
- Avoid hedging language and unnecessary MUSTs — explain reasoning instead
Reference files
If the skill needs substantial domain content (frameworks, lists, criteria, detailed models), put it in references/<topic>.md and reference it from SKILL.md with a pointer like:
"Read references/habit-laws.md for the full Four Laws framework before starting."
Keep reference files focused — one topic per file, with a brief table of contents if over 100 lines.
Updating MEMORY.md
After creating skills, add entries to ~/.claude/skills/MEMORY.md (the skills index). Each entry is one line: - [Skill Name](skill-name/) — one-line hook.
Phase 5: Verify and Report
After creating all skills:
-
Read back each SKILL.md you created and check:
- Does the description accurately trigger on the right user requests?
- Are the instructions complete enough for a fresh Claude session to follow?
- Is the content grounded in the source material, not just generic advice?
-
Report to the user:
- Which skills were created and their paths
- A one-sentence summary of what each skill does
- Any sources that didn't yield useful skills (and why)
- Any follow-up suggestions (e.g., "these two skills could share a reference file")
Notes on source quality
Not every source produces a skill. A source might be:
- Too shallow — a short newsletter or FAQ; extract key points into a reference file for an existing skill instead
- Too broad — a general intro to a vast topic; identify the one most actionable slice
- Redundant — says the same thing as another source already covered; note the overlap and skip
When in doubt, create the skill. A thin skill can always be improved.