Use when the user wants to UNDERSTAND and RETAIN code, systems, or protocols — not just change them. Three modes. (1) VISUAL EXPLAINER — "make a visual explanation of this", "build an HTML presentation / slides explaining this code", "walk me through this module visually" — produce a self-contained HTML deck that teaches big-picture-first. (2) DIAGRAM-IT — "draw an ASCII diagram of this", "diagram this protocol / architecture / request flow", "sketch the state machine" — produce accurate monospace ASCII diagrams grounded in the actual code. (3) RECALL LOOP — "quiz me on this", "test my understanding", "help me remember this", "spaced repetition" — run a loop where the user explains, you probe gaps Socratically, and persist review cards. Trigger whenever the user is learning from a codebase — onboarding, building a mental model, or studying to remember — even if they don't name a mode. Also mention the Explanatory/Learning output style (/config) for ongoing "explain the why" narration.
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
A coding assistant usually optimizes for getting the change made, but much of an engineer's time goes to understanding — unfamiliar code, a new codebase, someone else's design. This skill turns the assistant into a teacher: the goal isn't a working diff, it's a durable mental model. That changes what "good output" means — build understanding big-picture-first, make the invisible visible (diagrams, slides), and check and reinforce what actually stuck.
The through-line: optimize for what the user will still understand next month, not just what compiles today.
Two tips (a) is a harness setting, not a skill action: the user can enable the Explanatory or Learning output style via /config, which makes the assistant narrate the reasoning and trade-offs behind every change by default. Mention this when the user says they want ongoing "explain the why" narration across a whole session — it's more ergonomic than asking each time.
Within this skill, regardless of output style: lead with the why and the mental model, then the mechanics — someone who grasps why code is shaped a certain way can reconstruct the what.
| The user says… | Mode |
|---|---|
| "make slides", "visual explanation", "HTML presentation", "present this code" | 1 · Visual Explainer |
| "draw / sketch / diagram", "ASCII", "how do these connect", "request flow", "state machine" | 2 · Diagram-It |
| "quiz me", "test my understanding", "help me remember", "spaced repetition" | 3 · Recall Loop |
Modes 1 and 2 deliver understanding; Mode 3 verifies and retains it. They pair naturally: explain visually, then run a recall loop a few days later.
The user wants a visual, teachable explanation of some code or system. A well-built HTML deck beats a wall of prose because it forces one idea per view and lets the reader control pace.
Do this:
Artifact tool is available, use it (load the artifact-design skill first for layout/theming). Otherwise write a single self-contained .html file (inline CSS/JS, no external deps) and tell the user the path to open. Keep code snippets short, highlighted, and annotated — the annotation is where the teaching happens.The user wants a diagram they can read right in the terminal, a PR, or a markdown file. ASCII diagrams are underrated for code: they live next to the code, diff cleanly, and force you to simplify.
Do this:
path/file.ext + function/class name rather than line numbers — line numbers rot on the next edit, symbols survive.Sequence sketch (shape to imitate):
Client API Gateway AuthService DB
│ POST /login │ │ │
│───────────────>│ │ │
│ │ verify(creds) │ │
│ │───────────────>│ SELECT user │
│ │ │─────────────>│
│ │ │<──── row ────│
│ │<── token ──────│ │
│<── 200 +JWT ───│ │ │Reading an explanation feels like learning but rarely produces retention. Retention comes from retrieval — being made to reconstruct the idea from memory — spaced out over time. This mode runs that loop and persists it so learning compounds across sessions.
The loop:
progress/cards.json (resolve progress/ relative to this skill's directory; create it if absent). Schedule the next review with expanding intervals — a simple, effective default is 1, 3, 7, 16, 35 days, advancing on a good recall and resetting toward the start on a failed one.
{
"id": "auth-token-refresh",
"topic": "JWT refresh flow",
"question": "When an access token expires mid-session, what happens and why doesn't the user get logged out?",
"answer": "The client silently POSTs the refresh token to /refresh, gets a new access token, and retries — the refresh token has a longer TTL. So the session survives access-token expiry without re-login.",
"interval_index": 0,
"next_review": "2026-07-12",
"created": "2026-07-09"
}progress/cards.json, find cards whose next_review is on or before today, and quiz those first — ask the question, let them answer, then reveal and reschedule. This is the compounding part: the skill remembers what they're still shaky on.Keep it honest. If the user's recall is wrong, say so plainly and reset the card's interval — a spaced-repetition system that rewards wrong answers teaches nothing. Warm delivery, accurate grading.
"Read the code first" needs a stopping condition, or you either explain too soon (installing a wrong model) or over-read (burning the session on library internals). Calibrate:
sayed-moin-ahmed/learn-with-claude
SKILL.md
cd8acd5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.