plugins/craftwork-all/skills/topic-explainer/SKILL.md
Apply this skill whenever the user asks to have a topic, concept, technology, or idea explained to them. Triggers on phrases like 'explain X to me', 'what is X?', 'how does X work?', 'teach me about X', 'help me understand X', 'break down X', 'ELI5', 'explain like I'm five', 'give me an overview of X', 'I don't understand X', 'walk me through X', or any situation where the user wants to learn or understand something rather than produce an artifact. Also trigger when someone pastes a concept and asks for clarification, when they ask 'why' something works a certain way, or when they need a refresher on a topic they've encountered before. This skill does NOT apply to 'write documentation about X' (use technical-writing) or 'analyze X' (use reasoning skills). This skill is for when the human is the learner.
npx skillsauth add andurilcode/skills topic-explainerInstall 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.
Core principle: An explanation succeeds when the learner can use the concept, not when the explainer has covered every detail. The best explanation style depends on what the topic demands and what the learner needs — not on the explainer's preference. This skill matches explanation approach to topic shape before producing a single word of content.
The goal is not to be comprehensive. The goal is to produce the shortest explanation that changes the learner's mental model of the topic.
Before asking the user anything, classify the topic along these dimensions:
TOPIC ANALYSIS
Topic: [what the user wants explained]
Domain: [technical / scientific / conceptual / practical / business / creative]
Abstraction level: [concrete / mixed / abstract]
Prerequisite depth: [none / light / moderate / heavy]
Core challenge: [what makes this topic hard to understand]
- Unfamiliar vocabulary?
- Counterintuitive behavior?
- Hidden complexity behind simple surface?
- Too many interacting parts?
- Requires prior concepts first?
- Abstract with no obvious physical analogy?
Do not show this analysis to the user. It exists to drive the recommendation in Step 2.
Using the topic analysis, select the best explanation style and verbosity level. Then present the recommendation to the user in a single interaction — one message with options they can confirm or adjust.
| Style | How it works | Best for | Avoid when | |-------|-------------|----------|------------| | Feynman | Strip away jargon, explain using only simple words and everyday analogies. Build from the most fundamental idea outward. | Abstract or complex topics where jargon masks understanding (quantum mechanics, monads, eventual consistency) | Topic is already simple; learner is an expert who needs precision | | Socratic | Guide the learner through a sequence of questions that lead them to discover the concept themselves. Never state the answer directly until they've arrived at it. | Topics where understanding why matters more than what; correcting misconceptions; philosophical or design-thinking topics | Learner needs a quick factual answer; topic is purely procedural | | Example-First | Start with a concrete, working example. Show the thing in action before explaining the theory behind it. Generalize from specific to abstract. | Programming concepts, practical skills, tools, APIs, anything the learner will use | Highly abstract topics with no natural concrete example (category theory, epistemology) | | Layered | Start with a one-sentence version anyone could understand. Add a layer of detail. Add another. Each layer is complete — the learner can stop at any depth and still have a valid understanding. | Broad topics with natural depth levels (how the internet works, machine learning, compiler design) | Very narrow topics where layering adds no value | | Analogy Bridge | Map the entire explanation to a domain the learner already knows. Maintain the mapping throughout, noting where it breaks down. | Unfamiliar domains that have structural parallels to common experience (databases ↔ libraries, networking ↔ postal system, Git ↔ save points in a video game) | When no good analogy exists, or when the analogy would mislead more than it clarifies | | Visual-Spatial | Explain by building a mental picture, diagram, or map. Describe relationships spatially. Use system diagrams, flowcharts, or mental models as the primary vehicle. | Systems, architectures, processes, anything with components that interact (microservices, state machines, organizational structures) | Linear or sequential concepts with no spatial structure |
| Level | What the learner gets | Length | When to recommend | |-------|----------------------|--------|-------------------| | TL;DR | One-sentence definition + one-sentence "why it matters" | 2-3 sentences | Learner asked casually, needs a quick anchor, or is evaluating whether to go deeper | | Brief | Core concept + one example or analogy + key implication | 1-2 paragraphs | Learner has adjacent knowledge, needs to fill a specific gap | | Standard | Full explanation with examples, analogies where helpful, and common pitfalls or misconceptions | 3-6 paragraphs | Default for most requests. Learner is genuinely trying to understand the topic | | Deep Dive | Comprehensive treatment including edge cases, nuances, historical context, trade-offs, and connections to related concepts | 8+ paragraphs, possibly with sections | Learner explicitly asks to go deep, or the topic is complex enough that a standard explanation would be misleading | | Tutorial | Step-by-step, hands-on walkthrough. The learner does something at each step and sees results. Theory is woven into practice. | Structured steps with embedded explanations | Learner wants to do something, not just understand it. Topic is practical and executable |
Use this decision tree to select the default recommendation:
IF topic is abstract AND counterintuitive:
→ Feynman + Standard
"Complex topics benefit from stripping away jargon and building from fundamentals."
IF topic is a design/philosophy question OR involves correcting a misconception:
→ Socratic + Standard
"Understanding 'why' here matters more than memorizing 'what' — discovery sticks better."
IF topic is a tool, language feature, API, or practical skill:
→ Example-First + Standard (or Tutorial if hands-on is possible)
"Seeing it work first gives you the anchor to understand the theory."
IF topic is broad with natural depth layers (e.g., "how does X work?"):
→ Layered + Standard
"This topic has natural zoom levels — I'll start simple and add depth."
IF topic is from an unfamiliar domain AND has a strong structural analogy:
→ Analogy Bridge + Brief
"Mapping this to something familiar will get you 80% of the way."
IF topic involves interacting components or system architecture:
→ Visual-Spatial + Standard
"This is easiest to understand as a picture of parts and relationships."
IF user says "ELI5" or "simply":
→ Feynman + Brief
(This is an explicit style request — honor it directly)
IF user says "quick overview" or "in a nutshell":
→ Layered + TL;DR
(This is an explicit verbosity request — honor it directly)
IF user provides their own style preference:
→ Use their preference. Do not override.
Some style + verbosity combinations don't work. Detect and adjust:
Present the recommendation as a single interaction. Be concise — the user wants the explanation, not a lecture about explanation methodology.
I'd recommend explaining [topic] using [style] at [verbosity] depth.
[1-sentence reason why this style fits this topic.]
Want me to adjust the approach?
Style: [recommended] / [alternative 1] / [alternative 2]
Depth: TL;DR / Brief / Standard / Deep Dive / Tutorial
If the agent platform supports structured input (e.g., ask_user_input), use it to present the options as clickable choices rather than requiring the user to type. The first option in each group should be the recommended one.
If the user signals impatience or just wants the answer (e.g., they asked a simple question like "what is Redis?"), skip this step entirely — default to Example-First + Brief and deliver the explanation. Don't force interaction when it would just slow things down.
Once the style and depth are confirmed (or defaulted), produce the explanation following the selected style's methodology.
Quality check: Read your explanation. If any sentence requires domain expertise to parse, rewrite it.
Quality check: Could the learner arrive at the concept through these questions alone? If not, your questions aren't doing enough work.
Quality check: If you removed all the theory, would the examples alone teach the concept? They should get at least 70% of the way there.
The learner can stop at any layer and have a complete (if simplified) understanding. Each layer adds detail but never contradicts the previous layer.
Quality check: Read only Layer 0 and Layer 1. Is that a valid explanation? If not, your layers aren't self-contained.
Quality check: Does the analogy hold for the core mechanism? Would it mislead the learner about any important property? If the analogy breaks in a way that creates a misconception, choose a different analogy or switch styles.
Quality check: Could the learner draw the system from your explanation? If not, your spatial language isn't precise enough.
After delivering the explanation, offer exactly one of these based on the style used:
This step is optional and should be offered naturally, not forced. If the user's response indicates they understood ("got it", "thanks", "makes sense"), don't push further.
1. Speed over ceremony. If the topic is simple ("what is a REST API?"), don't go through the full analysis-recommend-confirm dance. Pick Example-First + Brief and deliver. Reserve the full interaction for genuinely complex or ambiguous topics.
2. The user's explicit request overrides the recommendation. If they say "ELI5", use Feynman + Brief. If they say "give me the deep technical details", use Layered + Deep Dive. If they say "walk me through it step by step", use Tutorial. Never argue with an explicit style preference.
3. Analogies are powerful and dangerous. A bad analogy is worse than no analogy because it creates a wrong mental model that's hard to dislodge. If you can't find an analogy that holds for the core mechanism, use a different style. Always state where analogies break down.
4. Socratic style requires patience from the learner. Before using Socratic, gauge whether the user has the patience for it. If they seem to want a quick answer, switch to Feynman or Example-First. Socratic works best when the user has explicitly asked to understand deeply or when you're correcting a misconception.
5. Match precision to expertise. If context suggests the learner is a domain expert, skip simplification and go straight to precise technical language at the appropriate verbosity. A staff engineer asking about CRDTs doesn't need the "imagine a shared Google Doc" analogy — they need the mathematical properties.
6. End with the door open. Every explanation should end with an implicit or explicit invitation to go deeper, ask follow-up questions, or explore a related concept. Learning is iterative, not one-shot.
development
Apply kaizen continuous improvement philosophy to any codebase — identifying waste, unevenness, and overburden at the code level and producing small, actionable improvement opportunities. Triggers on '/kaizen', 'kaizen this codebase', 'continuous improvement audit', 'find waste in this code', 'what small improvements can we make?', 'improve this codebase incrementally', 'code health check', 'codebase hygiene', 'tech debt sweep', or any request to find incremental improvement opportunities in code. Also trigger when the user says 'clean up', 'tidy up', 'make this codebase better', or expresses frustration about code quality without wanting a full rewrite. This is NOT a code review skill for PRs or diffs — kaizen operates on the codebase as a whole or a focus area, looking for systemic improvement opportunities. Use this skill even for small codebases — the philosophy scales down gracefully.
tools
Build automation scripts and pipelines that use coding-agent CLIs (Claude Code, Codex, Gemini CLI, GitHub Copilot CLI) in headless/non-interactive mode as the AI engine, or delegate work to cloud agents (`gh agent-task`) that open pull requests asynchronously. Use this skill whenever the user wants to write a shell script, CI job, cron task, batch processor, webhook handler, or any automation that shells out to `claude`, `codex`, `gemini`, `copilot`, or `gh agent-task` — single-turn prompts, multi-turn agentic loops, parallel fan-out across files/folders, structured JSON outputs consumed by downstream tools, or cloud-delegated tasks that produce PRs. Trigger on phrases like "script that uses Claude", "automate with Claude Code", "headless Claude", "batch process files with an LLM", "pipeline with codex exec", "gemini -p", "copilot --autopilot", "gh agent-task create", "GitHub Action that calls Claude", "cron job to review PRs", "agent loop in bash", "dispatch an agent task to open a PR", "fleet-wide agent-task across repos", or any request to integrate a coding agent CLI into an automated workflow. Also trigger when the user describes the shape of a pipeline (fan-out, map-reduce, review-then-fix, extract-then-summarize, ticket-to-PR, scheduled fleet upgrade) and AI is the engine, even if they don't name the CLI explicitly.
development
Entry point for context engineering work. Routes to the right skill based on what the user needs — creating instructions, debugging agent failures, building documentation, or measuring outcomes. Use this when the user's goal involves agent context but they haven't named a specific skill.
development
Apply this skill whenever the user needs to write, draft, review, or improve any form of technical document — including RFCs, design docs, ADRs, runbooks, postmortems, one-pagers, internal announcements, Slack threads, PR descriptions, or any prose that communicates technical information to an audience. Triggers on phrases like 'write a design doc', 'draft an RFC', 'help me write this up', 'document this decision', 'write a runbook', 'review my doc', 'make this clearer', 'I need to announce this', 'how should I communicate this?', 'write a postmortem', 'draft a one-pager', or any situation where technical information needs to be transformed into written communication for a specific audience. Also trigger when the user pastes a draft and asks for feedback, when they need to explain a technical decision to non-technical stakeholders, or when they provide their own template and want the agent to follow it. This skill covers the full spectrum from 2-line Slack msages to multi-page design documents.