skills/learn-craft/SKILL.md
Generate a deep, book-grounded skill for any subject the user wants to master. Researches the canonical books on the topic, downloads them as PDFs (using the bundled `scripts/libgen.py` downloader), reads them in parallel via subagents, then synthesizes the books across each other into a concept-organized knowledge base — not a shelf of book summaries. Output is a tight `SKILL.md` plus per-concept `frameworks/` files (the working knowledge base, organized by idea) plus per-book `references/` deep-dives (the citation layer). Trigger whenever the user says they want to "learn X", "master X", "build a skill for X", "study X", "get smarter at X", "make me a skill on X", "I want to be good at X", "teach me X", "create a coach for X", or asks for help internalizing the canonical thinking on a craft, discipline, methodology, or domain. Don't trigger for "make a skill that does Y" (workflow automation — use /skill-creator). Trigger for "make a skill that helps me think like Y" (knowledge synthesis — that's this skill).
npx skillsauth add giulioco/skills learn-craftInstall 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.
Build a working, book-grounded skill on any craft the user wants to master.
The shape of the output mirrors the ultimate-sales skill: a tight SKILL.md (always loaded), a frameworks/ folder organized by concept (the synthesized knowledge base — this is where the real value lives), and a references/ folder organized by book (citation layer). The user gets a coach that thinks in concepts, not a shelf of book summaries.
The book-fetching script (scripts/libgen.py) is bundled here — no separate install required. It's a stdlib-only Python script that searches libgen.li, picks the best complete English PDF, and saves it locally.
Trigger when the user wants the canonical thinking on a topic distilled into something they can act on. Examples:
Don't trigger for:
/skill-creator.~/.claude/skills/ first; if a skill on this topic exists, ask whether to extend it or replace it).The single most important thing to understand about this skill: the output is organized by concept, not by book.
The wrong shape:
my-skill/
└── references/
├── book-1-summary.md ← "what does Author 1 say?"
├── book-2-summary.md ← "what does Author 2 say?"
└── book-3-summary.md ← "what does Author 3 say?"
This is a bookshelf, not a skill. To answer any real question the model has to read all three files and re-synthesize on the fly — every single time.
The right shape:
my-skill/
├── SKILL.md ← worldview + diagnose-first loop
├── frameworks/ ← THE KNOWLEDGE BASE — organized by concept
│ ├── diagnose-first.md ← cross-book; cites multiple authors
│ ├── tactical-empathy.md ← named concept; main author + supporting
│ ├── question-arsenal.md ← cross-book question taxonomy
│ └── ...
└── references/ ← citation layer — read-on-demand
├── book-1.md ← deep-dive into Book 1's distinctive contribution
├── book-2.md
└── ...
Now frameworks/diagnose-first.md is the synthesized concept — already cross-referenced, already prioritized, already de-duplicated. The references/ layer is for when someone wants to drill into one author's original framing or hear their voice. Most queries never need to crack the references — the frameworks are sufficient on their own.
This distinction is what separates a real skill from a glorified summary. The synthesis stage (Stage 4) is where this happens. Don't skip it, don't shortcut it.
scripts/libgen.py.Track these as five todos via TaskCreate so progress is visible to the user. Each stage is described below.
If the user didn't name the topic, ask: "What craft do you want to learn?" Keep it open — they might say "investing", "Stoic philosophy", "negotiation", "Olympic weightlifting".
Once you have the topic, pick 4 canonical books. Use WebSearch with queries like:
"best books on <topic>" canonical"<topic>" foundational reading list"<topic>" recommended books site:reddit.com OR site:hacker news (community wisdom often beats SEO listicles)How to choose 4 books:
Present the 4 books to the user as Title — Author (year) with a one-line "why this one" for each. Ask: "Look right? Swap any?" Wait for confirmation before downloading. This is the cheapest moment to course-correct.
If the user declines a book, propose a replacement and reconfirm. If they want fewer than 4 (e.g., "just 2 is fine"), proceed with what they want — the rest of the pipeline scales linearly.
Create the working layout: ~/.claude/skills/<slug>/notes/. Use a kebab-case slug derived from the topic (e.g., "investing", "stoic-philosophy", "negotiation"). The notes/ directory will hold both the raw PDFs and the per-book learning files — these are working materials, not the final product, and the name reflects that.
For each book, call the bundled script directly:
python3 ~/.claude/skills/learn-craft/scripts/libgen.py "<title>" \
--out ~/.claude/skills/<slug>/notes \
--lang english
Run them in parallel by sending multiple Bash calls in a single message. Each download takes ~5–15 seconds.
The script's behavior at a glance (full docs in the comments at the top of scripts/libgen.py):
0 or 0/N page counts that indicate unscanned/partial copies).⚠ off-language and are not auto-downloaded. Override with --lang any or --lang italian|spanish|french|german|....--out with the filename from the server's Content-Disposition.--list (print top 5 candidates without downloading), --pick N (choose a non-default candidate by index), --author NAME (only add if the title alone is ambiguous — extra words tighten libgen's AND filter), --year YYYY (same caveat).0 success / list-only, 1 no acceptable PDF, 2 network or HTTP error.Failure modes to handle:
--lang any, (b) substitute a different book on the same topic, or (c) skip and proceed with three.--list and --pick N after the user reviews.After Stage 2, confirm with the user: list saved file paths and page counts. "Got all four — ready to read them?"
Spawn one general-purpose subagent per book in a single message (parallel execution). The output of this stage is working notes — raw structured extraction, not the final knowledge base. Be explicit with the subagent that the goal is to harvest material that the synthesis stage will then re-organize.
The single most common failure of this stage: the subagent skims the table of contents, picks "the important chapters," and writes notes from those alone. This is never acceptable. The reason this skill exists at all is that the user can't summon four books worth of cross-pollinated thinking from chapter highlights — and neither can a subagent.
Enforce this in three ways:
pages argument to walk the whole PDF. A 300-page book read in 20-page chunks is 15 reads — perfectly fine for a subagent. Tell the subagent: "Read the entire PDF cover to cover, in chunks. Do not skip chapters. Do not 'read just the important parts.' Treat skipping as a failure mode you must avoid."The subagent has its own context window separate from the orchestrator's. Reading a full book consumes ~50–150K tokens of subagent context — well within budget.
Each subagent gets this task template:
Read the PDF at <absolute-path> COVER TO COVER. This is "<title>" by <author>.
CRITICAL: read the entire book. Walk the PDF in chunks using the Read
tool's `pages` argument (e.g., pages: "1-20", then "21-40", etc.).
Do not skip chapters. Do not read only "the important parts." If you
catch yourself thinking "I've got the gist, I can stop now" — keep
reading. The whole point of this task is that you, not the orchestrator
or the user, pay the cost of full reading. Skimming is the failure mode.
Your output is WORKING NOTES that will be synthesized later — not a
standalone document. Bias toward extraction and faithfulness to the
author's framing. The synthesis stage will organize concepts across
books; your job is to give that synthesis the richest possible raw
material from THIS book.
Write to ~/.claude/skills/<slug>/notes/<book-slug>-notes.md with these
sections, in this order:
1. **Core thesis** (3-5 sentences) — what is this book's central claim?
What does it think most practitioners get wrong?
2. **Named concepts and frameworks** — the author's named tools (e.g.,
"SPIN", "OODA loop", "margin of safety", "tactical empathy"). For
each: the exact name the author uses, what it is, when it applies,
the steps, the most common misapplication. PRESERVE THE AUTHOR'S
ORIGINAL TERMS — don't paraphrase "tactical empathy" into "active
listening." The synthesis stage decides which terms survive.
3. **Operating principles** (5-12 numbered) — the rules the author
would tattoo on a practitioner's forearm. Each: one-sentence rule,
one-sentence why, one phrase for when it applies.
4. **Diagnostic questions** — the questions the author would ask a
practitioner to figure out what stage of the work they're in.
5. **Tactical playbook** — concrete moves, scripts, checklists,
templates. The "do this, say this, write this" stuff. Quote
verbatim where the wording matters (Voss's "no-oriented questions"
lose their power if paraphrased).
6. **Disagreements / contrarian takes** — anywhere the author
explicitly contradicts conventional wisdom or other writers in
this field. The synthesis stage uses these to surface productive
tensions.
7. **Common failure modes** — what practitioners do wrong, why, and
the fix. Anti-patterns.
8. **Memorable case studies** — 3-5 vivid stories or examples that
illustrate the principles. These give the future skill teeth.
9. **Author's voice** — 2-3 short verbatim quotes (one or two
sentences each) that capture how the author talks. The synthesis
may pull these into the references/ deep-dive.
10. **What this book uniquely contributes** — what would be lost if
this book dropped out of the canon? Be specific: name 2-3 things.
11. **Coverage trace** — at the END of the notes file, list every
chapter (or major section) of the book in order, with a one-line
note per chapter on what was in it and what (if anything) you
pulled into the sections above. This is your proof-of-read. If
you cannot produce this list, you didn't read the whole book —
go back and finish.
Don't summarize chapter-by-chapter in sections 1-10 (that's what the
coverage trace is for). In sections 1-10, synthesize across the book.
Don't pad. Be specific, quote sparingly but exactly where the wording
carries the idea, skip filler.
Aim for 1500-3000 words across sections 1-10, plus the coverage trace.
Tight is better than complete in the synthesis sections; thorough beats
tight in the coverage trace.
When a subagent returns, check its notes file for the Coverage trace section before accepting it. If the trace covers fewer than ~80% of the book's chapters, or if multiple chapters are noted as "skipped" or "skimmed," respawn the subagent with explicit instructions to read the missing material. Do not let half-read notes flow into Stage 4 — the synthesis is only as good as its raw material.
While the subagents run, draft the synthesis spine (Stage 4 outline) so you're ready when they return. Don't wait idle.
Once the per-book notes exist, stop and think. Don't jump to writing the skill yet. The output of this stage is a frameworks/ directory of concept files — synthesized across books, organized by idea.
If you skip this and go straight from notes → SKILL.md, you'll write a "shelf of book summaries" disguised as a skill. The reader has to do the synthesis on every query. Bad. The whole point is to do the hard work once in the skill so future invocations are cheap.
Read every notes/<book-slug>-notes.md file. Hold them all in context simultaneously. This is non-negotiable — you cannot synthesize what you haven't compared.
In your head (or as a scratch file), list every named concept that appears across the four books. For each, note:
Spot the spine — the single through-line that all four books point at, even when they don't share vocabulary. For sales it's diagnose before pitching. For investing it might be price ≠ value, time arbitrages temperament. For weight training it might be progressive overload + recovery is the entire game; everything else is a knob on those two dials. The spine becomes the SKILL.md's opening.
A concept earns its own frameworks/<name>.md file when:
frameworks/discovery.md).Aim for 5–9 concept files in frameworks/. Fewer means you under-synthesized; more means you fragmented.
For each concept file, the structure mirrors ultimate-sales/frameworks/diagnose-first.md:
# <Concept Name>
[2-4 sentence framing — what's the unified concept across the books?
Why does it matter? Lead with the through-line, not with citations.]
This document is the deeper version of <where-it-lives-in-SKILL.md>.
---
## [Operating sub-section, e.g., "The five stages" or "The four
diagnostic questions"]
[Synthesized content. Cite authors inline when one author's framing
is most precise: "Rackham's most underrated insight: small-sale
tactics actively damage large sales." Don't open every paragraph
with "According to X..." — the citations support the concept; the
concept doesn't support the citations.]
---
## When this fails
[Anti-patterns specific to this concept. Cross-cite books where
useful.]
---
## Quick reference
[Tables, checklists, scripts. The thing the user will quote-grep
during real work.]
---
## Going deeper
- For the original framing of <X>, see `references/<book>.md`
- For an opposing view on <Y>, see `references/<book>.md`
The hallmark of a good concept file: someone reading it cold should not be able to tell which book "owns" the concept. It's a synthesized idea now. Citations support; they don't dominate.
For references/<book>.md, the question is: what does this book contribute that the frameworks don't capture? Usually:
A reference is not a summary of the book. It's the delta between what the book contributes and what the frameworks already captured. If a reference reads like a book report, you're doing it wrong.
Frontmatter for each:
---
book: <Title>
author: <Author>
year: <Year>
loaded_when: <one-sentence trigger that's specific and action-oriented>
---
Now you write the user-facing files. The hard thinking is done; this is the carving stage.
~/.claude/skills/<slug>/
├── SKILL.md # ≤500 lines, always loaded
├── frameworks/ # THE KNOWLEDGE BASE
│ ├── <concept-1>.md # 200–500 lines each
│ ├── <concept-2>.md
│ ├── ...
│ └── <concept-N>.md # 5–9 total
├── references/ # citation layer (per book)
│ ├── <book-1>.md
│ ├── <book-2>.md
│ ├── <book-3>.md
│ └── <book-4>.md
└── notes/ # working materials, not loaded
├── <book-1>.pdf
├── <book-1>-notes.md
└── ...
The notes/ directory is preserved (useful for future re-synthesis when the canon shifts) but never loaded into context.
---
name: <slug>
description: [Pushy, specific, ~150-200 words. Lead with the worldview
("Master <craft> by..."). List 8-15 trigger phrases. Name
the books synthesized so the user knows the provenance.
End with what NOT to trigger on.]
---
# <Topic Title>
[2-3 sentences framing the worldview. What's the spine? What would
the merged author tell a beginner in one sentence?]
If a single instruction has to fit on a sticky note, it's this: **<one
imperative sentence>**.
---
## Core operating principles (read these every time)
[8-12 numbered principles, each 2-4 sentences. Each cites the book(s)
in parentheses at the end where the inheritance matters. Order: most
foundational first. These are the worldview — non-negotiable.]
---
## The diagnose-first loop
[3-7 questions to ask FIRST before applying any tactic. The "stop
before reaching for the tool" moment, adapted to this craft. For
each question: the question itself, then a stage→move table or a
short list of what each answer points to.]
---
## When to load each framework
The knowledge base lives in `frameworks/`. Each file is one concept,
already synthesized across the source books. Load them on demand:
- `frameworks/<concept-1>.md` — <one-sentence trigger>
- `frameworks/<concept-2>.md` — <one-sentence trigger>
- ...
---
## Quick playbook
[The 5-10 most common situations the user will face, with a one-line
prescription each and a pointer to the framework that goes deeper.
This is the index — the actual depth lives in `frameworks/`.]
---
## When the SKILL.md is too generic — go to the source
If you need an author's original framing, the references/ layer
preserves each book's distinctive contribution:
- `references/<book-1>.md` — <what's uniquely there>
- `references/<book-2>.md` — <what's uniquely there>
- ...
---
## Common failure modes
[5-10 cross-book anti-patterns. Each: the failure, why it happens,
the fix, and which framework to load if it's biting you.]
references/<dissenter>.md").frameworks/<concept>.md 200–500 lines. Each references/<book>.md 200–500 lines. If you blow past, the skill is doing too much — split or trim.frameworks/<concept>.md cold. If you can tell which book it came from in the first paragraph, it's not synthesized — it's a per-book summary in disguise. Rewrite.The "concept-organized" smell test:
frameworks/<concept>.md. Does it read like a synthesized concept, or like "Author A says X, Author B says Y, Author C says Z"? If the latter, the synthesis didn't happen — go back to Stage 4.File tree check — confirm:
frameworks/ exists and has 5–9 concept filesreferences/ has one file per source booknotes/ still has the raw PDFs and per-book notes (for future re-synthesis)name: frontmatter matches the directory nameTell the user:
~/.claude/skills/<slug>/frameworks/ files that read like book summaries rather than synthesized concepts. Fix: stop, re-read all four notes side-by-side, build the concept index, then write frameworks/.tools
Generate or edit raster images (photos, illustrations, mockups, logos, product shots, game/UI assets, textures, infographics) using Codex's built-in image_gen tool — driven headlessly through `codex exec`. Billed via the user's ChatGPT/Codex login, so it needs NO OpenAI API key. Use whenever the user wants to create a brand-new image from a text prompt, edit an existing local image (background swap, lighting/weather change, object add/remove, restyle), or produce several image variants. Trigger on "generate an image", "make a picture/illustration/logo/mockup of X", "create a hero image", "edit this image", "change the background of X", "turn this photo into Y", "imagegen", "use codex to make an image". Do NOT use for vector/SVG icon systems, diagrams better built in code/HTML/CSS, or when the user explicitly wants the OpenAI Image API directly (that's the gpt-image CLI path).
development
Master sales coaching skill synthesizing six foundational books — SPIN Selling, Fanatical Prospecting, Gap Selling, The Challenger Sale, Never Split the Difference, and How to Win Friends & Influence People. Use this skill any time the user is drafting outbound emails, cold DMs, follow-up messages, or any sales/prospecting outreach; preparing for or reviewing sales calls, discovery calls, demos, or QBRs; thinking through pricing, objections, negotiations, or closing strategy; planning ICP, messaging, channels, sequencing, or pipeline strategy; coaching reps or being coached; reviewing or rewriting their own sales messaging; even if they don't say "sales," "selling," or name a framework. Trigger on phrases like "cold email", "outreach", "DM", "follow-up", "prospect", "lead", "stalled deal", "objection", "discovery call", "demo", "proposal", "negotiate price", "they ghosted me", "how do I get a meeting", "I'm pitching", "what should I say to", "deal review", "champion", "buying committee", "ICP", "sales pitch", "founder-led sales". Always diagnose the stage of the sales journey first, then apply the right frameworks from the right books — most sales failures come from using a small-sale tactic in a big-sale context, pitching before diagnosing, or arguing instead of asking.
development
Master viral app growth engineering using proven social media strategies. Provides comprehensive guidance on TikTok/Instagram Reels marketing, UGC networks, viral hooks, content formats, monetization, and scaling tactics based on 100+ real case studies generating billions of views and millions in revenue.
development
Organic social media growth coach using the Post Bridge methodology (500M+ views, 132K+ downloads, $33K+ revenue). Act as a personalized growth coach for apps, products, and businesses seeking organic traffic from TikTok and Instagram short-form video. Use when users ask about growing on TikTok/Instagram, creating viral content, getting more views organically, converting social media views to app downloads or customers, warming up new social accounts, finding winning content formats, or scaling organic social media presence. Also use when users need help with social media bios, content-market fit, trend riding, or building a repeatable content system without paid ads.