| Skill | What it does |
|---|---|
teach-me |
Explains any technical topic from first principles, in a textbook style, as chat or a printable PDF. |
Install
claude plugin marketplace add sahanaramesh09/claude-skills
claude plugin install teach-me@claude-skills --scope user
Update later with claude plugin update. If you would rather not use plugins,
copy the folder in directly:
git clone https://github.com/sahanaramesh09/claude-skills.git
cp -R claude-skills/skills/teach-me ~/.claude/skills/
teach-me
teach me Kafka
teach me React, I have a frontend interview next week
teach me how database indexes work
Most technical explanations make sense while you read them and leave nothing behind an hour later. They summarise a topic instead of teaching it: naming things before showing them, asserting conclusions without the reasoning, and quietly assuming a layer of knowledge the reader does not have.
teach-me encodes a specific method to avoid that. It produces a chapter, not a
summary, and ends by testing whether you understood it.
See a sample chapter → (2 pages, on database indexes)
How it works
flowchart LR
A[Ask to be taught a topic] --> B{Code or concept}
B -->|code| C[Language mode]
B -->|concept| D[Concept mode]
C --> E{Interview prep}
D --> E
E -->|yes| F[Add spoken lines and honest boundaries]
E -->|no| G[Chapter]
F --> G
G --> H[Chat or PDF or both]
Mode is picked automatically. A CV, job description or interviewer profile is optional; supply them and the chapter is calibrated to the level you will actually be asked at. Supply nothing and it assumes no prior knowledge and teaches from the ground up.
The method
flowchart LR
A[Ground floor] --> B[Show before naming]
B --> C[One analogy]
C --> D[Arithmetic built up]
D --> E[Contrast with neighbour]
E --> F[Check questions]
- Teach the ground floor first. A topic almost always sits on another. React sits on JavaScript; Kubernetes sits on containers. Without the layer beneath, the top layer is unteachable, and it feels "too complex" without the reader being able to say why. This is the most common failure.
- Show the thing before naming it. Show what a metric literally looks like before defining "series". A definition given first is just vocabulary.
- One physical analogy, sustained. A numbered notebook. A loading dock. Kept and mapped back to, rather than three competing metaphors.
- Never assert a conclusion without showing where it came from. Show
3 x 2 = 6before500 x 200,000. Readers do not announce that they lost the thread; they just stop understanding. - Contrast it with what it gets confused with, and give the consequence. "A queue versus a log" is uninteresting. "If your program crashes, a queue has lost the ticket and the log has not" is the point.
- Define every term, including the obvious ones. Detail is not complexity.
- End with check questions and model answers in a panel you can cover.
Output
Chat, a PDF, or both. PDFs are generated directly with reportlab in a dense
textbook layout: analogy boxes, vocabulary tables, annotated code, vector
diagrams, and answer panels you can cover while you test yourself.
Repository layout
claude-skills/
├── .claude-plugin/
│ └── marketplace.json plugin manifest
├── skills/
│ └── teach-me/
│ ├── SKILL.md the method
│ ├── sheet.py PDF toolkit
│ ├── local.example.md personalisation template
│ ├── requirements.txt
│ └── LICENSE.txt
├── evals/ trigger tests and results
└── examples/ sample output
Only skills/ is installed onto a user's machine. evals/ and examples/ are
for people reading the repository and are deliberately kept out of the skill
folder.
Tested
A skill is only useful if it fires on the right prompts and stays quiet on the
wrong ones. evals/ holds a trigger-eval set run with the harness from
anthropics/skills:
| Result | |
|---|---|
| Prompts that should trigger it | 8 / 8, every one at 3 of 3 runs |
| Prompts that should not | 7 / 7, every one at 0 of 3 runs |
Negatives matter as much as positives. "Write a Python function that reverses a linked list" does not trigger the skill, because teaching a subject and doing a task are different requests.
Requirements
Chat output needs nothing. PDF output needs reportlab:
python3 -m pip install reportlab
sheet.py uses only reportlab's built-in fonts, so PDFs render identically on
macOS, Linux and Windows with no font files to install. To verify an install:
python3 examples/build_example.py
Personalisation
Optional, and the skill is fully functional without it. Copy
skills/teach-me/local.example.md to local.md in the same folder to point the
skill at your own CV, preferred depth, or output location. local.md is
git-ignored, so personal settings stay on your machine and are never shared.
Licence
MIT. See LICENSE.
Built by Sahana Ramesh.
No comments yet
Be the first to share your take.