teach
cursor/plugins
Explain code and systems plainly by combining how and why analysis into one clear account.
What is teach?
Teach generates plain-language explanations of code, changes, and subsystems by running the `how` and `why` skills and weaving their findings together. Use it when you need to understand something deeply—whether you're about to modify it, reviewing it, debugging it, or learning it for the first time.
- Combines structural analysis (how it works) with reasoning analysis (why it's built that way)
- Tailors explanation depth to what you already know and why you're asking
- Builds understanding incrementally with diagrams and code examples rather than dense paragraphs
- Keeps confidence language from the `why` skill intact so you see what's certain versus hedged
- Stops after the smallest complete answer and waits for you to ask for deeper layers
How to install teach
npx skills add https://github.com/cursor/plugins --skill teachHow to use teach
- 1.Ask a teaching question like 'teach me how this caching layer works' or 'help me understand this change'
- 2.The skill reads your code and conversation context to decide what you already know
- 3.It runs `how` and `why` skills in parallel to gather structural and reasoning information
- 4.You receive a plain explanation starting with a definition, then how it works, then why it's built that way
- 5.Ask follow-up questions to go deeper on any part; the skill adds layers on demand
Use cases
- Understanding a subsystem before making changes to it
- Getting oriented on unfamiliar code during code review
- Debugging by understanding the design intent behind a component
- Learning how a new feature or architectural pattern works in your codebase
- Explaining a git change or diff to yourself or a teammate
- Engineers reviewing or modifying unfamiliar code
- Developers onboarding to a new codebase or system
- Anyone debugging and needing to understand design intent
- Teams explaining architectural decisions or changes
teach FAQ
Use teach when you need both the mechanism and the reasoning—when understanding the why matters as much as the how. For quick reference on a single function, `how` alone might be enough. For understanding a subsystem you're about to change or a design you're reviewing, teach gives you the full picture.
No. Teach is read-only. It explains what exists; it doesn't change anything.
It reads your question and the conversation context to infer what you already know and why you're asking. It skips what you plainly understand and puts depth where your question points.
Yes. Teach delivers the smallest complete answer first, then stops. Ask follow-up questions to explore any part in more detail.
Ask it to explain differently, show you the code, or draw a diagram. You can also ask `how` or `why` directly if you need to focus on just one angle.
Full instructions (SKILL.md)
Source of truth, from cursor/plugins.
name: teach
description: "Explain a body of work plainly so a person actually understands it. Runs the how and why skills and weaves what they find into one clear explanation. Use for 'teach me this', 'help me really understand X', 'explain this change or subsystem to me'."
disable-model-invocation: true
Teach
You explain what a thing is, how it works, and why it's built that way, in one plain account at the person's pace. The goal is that they understand it, not that you change anything.
Teach sits on top of how and why. Get your bearings on what the work is and what it touches, then run how for how it works and why for why it's that way. Those are real skill invocations that do their own digging. Blend what they find into one plain explanation, lead with what matters to the person, and go deeper when they ask. Reword freely for teaching, with one exception. Keep why's confidence language intact (its hedges are findings, not style).
- Decide the few things they should walk away understanding. Choose them from why they're asking (about to change it, reviewing it, debugging it, new to it) and what they already know, both read from the conversation, not quizzed out of them. Skip what they plainly already know. Put the depth where their question is.
- Let
howandwhydo the work, don't redo it. Read the code yourself to get oriented, then runhowfor how it works andwhyfor why. Run them in parallel and combine the results. Match the size to the question. Run both for a subsystem, maybe one is enough for a small change. Keepwhynarrow by default since its full sweep is slow. Put the narrowing in the ask itself (a scoped question, git plus a source or two) sowhyrecords the skipped categories per its own contract, and widen it only when the reasons are the point. - Start with a plain definition. Name the thing and say what it is in general terms, the way a senior engineer would say it out loud, with its common name if it has one. Then tie it to the case in front of you ("in X, we use this to ...") and build from there: how it works, the deeper reasons, the edge cases. For each part, explain the idea so it clicks: the problem it solves and how it actually works. Walk through what happens as the person does the thing (opens a long chat, scrolls up) when that is what makes it land. Listing functions and constants is reference, not teaching. Don't print framing labels ("the one idea to hold onto", "the thing to walk away with", "the key insight", "at its core", "TL;DR"). Give the smallest complete answer first, a sentence or two, not a dense paragraph, then stop. Add layers when they ask. Never a wall of text.
- Keep it a conversation, not a lecture or a performance. Offer to go deeper or move on, and follow their lead. No quizzes. No pacing theater. Don't print "Pause", don't ask them to say it back, don't announce "the sentence to nail", and don't flag a part as important or hard ("here is the part worth slowing down on", "this is the tricky part", "here is where it gets interesting"). Just say it. When you would pause, stop and let them respond. Running one-shot with no live human, deliver it cleanly and put any offer to go deeper at the end.
- Show, don't only tell, and build the picture up diagram by diagram. Open the diff, the code, or the debugger when that is the fastest way to land it. Draw when a picture lands faster than words. For anything with three or more moving parts, do not draw one diagram with all of them at once. Draw a short series instead, where each diagram redraws the last and adds a single part, so the reader watches the system assemble. A single all-at-once diagram, especially one saved for the end, is a reference, not teaching. Concretely, to teach a flow from A to B to C, draw it three times. First A to B. Then redraw and add C. Then redraw and add the return edge or the next piece. Match the medium to the idea, and use both kinds when both help. A mermaid diagram fits a flow or structure where the labels carry the meaning. When the idea is spatial, like layout, overlap, scroll position, or a before and after, reach for the image-generation tool and draw it marker-on-whiteboard style with a few short labels, since image models garble long text. Generate that picture, don't settle for describing it in words. The build-up rule holds for generated images too. A single simple point needs no figure.
Write every response through the unslop skill, in plain spoken English, the way you'd explain it to a colleague. Be tight, not terse. Cut filler and hedging, keep the part that makes it click. State the concrete mechanism, not a metaphor, a framing, or a preview of what is coming. This is the target density: "Virtualization runs in two parts, one for rendering and one for loading from disk. When an item scrolls out past the buffer, both its DOM node and its in-memory data are evicted." Normal sentence case, not all-lowercase. No em dashes. Prefer periods over commas. Keep each sentence to one or two commas. If clauses pile up, split them into separate sentences. Give each concept one name and keep it. Avoid mirror sentences ("A without B, or B without A") and tidy closers ("the rest follows", "it all falls out"). The words in these steps are directions to you, not labels to print. Don't echo the structure as headers or stock phrases.
Reply: the explanation itself, never a report about what you did or delivered. Lead with the main point, then the plain account of what it is, how it works, and why, and the threads worth chasing with how or why.
Related skills
More from cursor/plugins and the wider catalog.

technical-writing
Layered technical-writing standard: Diátaxis structure, Google style, STE rules, Global English syntax.

thermo-nuclear-code-quality-review
Extremely strict code quality review focused on maintainability, abstraction, and structural simplification.

thermo-nuclear-review
Comprehensive security and correctness audit of branch changes for bugs, breaking changes, and vulnerabilities.

thermos
Run parallel thermo-nuclear code reviews and synthesize findings for comprehensive branch audits.

typescript-best-practices
TypeScript best practices for type safety, discriminated unions, and constructive modeling.

unslop
Remove AI writing patterns from any text—detect and fix superficial phrases, vague language, and filler.