teach-me
Skill2 starsChanged 6 months agoMITView on GitHub
Teach the user one piece of knowledge at a time about a chosen topic, advancing only when they ask, and auto-saving each lesson as a committed markdown note when the working folder is a git repo. Use when the user wants to learn or study a topic, asks to be taught something, is learning a foreign language, or mentions "teach me".
41 other projects use a version of this.
Adopted by
Most recently taken up by
- caidanw/skillstheir own version, first seen Nov 8, 2026
- claude-code-hardened/claude-code-hardenedtheir own version, first seen Nov 8, 2026
- Barytes/interview-prep-like-a-buildertheir own version, first seen Nov 8, 2026
- lalulali/vespyrtheir own version, first seen Nov 6, 2026
- qa-aman/claude-skillstheir own version, first seen Nov 1, 2026
- magnus919/agent-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use interview and grill-me.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
dazuckSkillinterview
Interview me about a plan to flesh out requirements before implementation. Asks non-obvious questions one at a time until all ambiguities are resolved.
Also in 8 projects that use this
GoogleSkillgrill-me
A relentless interview to sharpen a plan or design.
Also in 8 projects that use this
Other versions41 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 41
- claude-code-best/claude-code★ 23ksame name
- magnus919/agent-skills★ 172same name
- latour-ai/skills★ 69same name
- Amazon-Quick/Amazon-Quick-official-catalog★ 50same name
- AlemTuzlak/skills★ 45same name
- qa-aman/claude-skills★ 24same name
- galando/temper★ 18same name
- wangjs-jacky/jacky-skills★ 15same name
- caidanw/skills★ 11same name
- lalulali/vespyr★ 11same name
31 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- create-nextjs-specificationSkill
- create-product-demoSkill
- find-github-repoSkill
- find-npm-packageSkill
- image-styleSkill
- nextjs-route-scaffoldSkill
- perfect-promptSkill
- place-meSkill
- review-meSkill
- setup-aeo-geoSkill
- setup-harnessSkill
- songwritingSkill
- step-by-stepSkill
- stock-analysisSkill
- study-meSkill
- three-linesSkill
- visualstormingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
26 rules. 0 are common, 17 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 35 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
No topic given → ask which topic I want to learn.
- Very specific: line 19
If levels.md exists and has a summary for this topic → skip the offer.
- Distinctive: line 20
If it has no summary for this topic (or place-me did not just hand off) → offer a level test once:
- Very specific: line 24
If yes → run the place-me skill for this topic, then come back here and teach calibrated to its result.
- Distinctive: line 25
If no → start teaching directly.
- Distinctive: line 30
Stop. Wait for me.
- Very specific: line 31
If I ask a follow-up about that piece → answer it.
- Distinctive: line 32
If I use a term vaguely or inconsistently → interrupt immediately.
- Distinctive: line 33
If I say to continue (or "next") → pick the next piece.
- Distinctive: line 34
Never explain two pieces at once.
- Distinctive: line 43
If I say a piece is hard to understand, offer a visual:
- Very specific: line 45
Run the visualstorming skill (no changes to it — just reference it) to draw a visual aid for the current concept.
- Distinctive: line 46
Keep explaining against that visual until I say the concept clicked.
- Distinctive: line 50
Use this only for concepts that are genuinely visual (structure, relationships, layout, flow).
- Very specific: line 52
If the visualstorming skill is not installed, ask me once whether to install it (npx skills@latest add kidow/skills/visualstorming).
- Very specific: line 58
Look for the repo's illustration convention first (e.g.
- Distinctive: line 59
If no convention exists, draw a small self-contained SVG next to the note and embed it with standard Markdown.
- Very specific: line 60
Place the figure right under the ## section heading it explains.
- Distinctive: line 62
Commit the image, its manifest entry, and the note together in the lesson commit.
- Distinctive: line 68
When the topic is a foreign language and pronunciation of a word or phrase is relevant, offer to let me hear it:
- Distinctive: line 79
After I confirm I heard it, delete the file.
- Very specific: line 81
If the Google Translate TTS request fails (CORS block or network error), fall back to SpeechSynthesisUtterance with the appropriate …
- Distinctive: line 83
Use this only when pronunciation genuinely matters (foreign language phonetics, tone, rhythm).
- Distinctive: line 87
After each piece is explained, persist it:
- Distinctive: line 89
Check git rev-parse --is-inside-work-tree.
- Very specific: line 90
Write the lesson to notes/topic_name.md (one file per topic, all notes live under the notes/ folder).
“Common” is measured: kept by at least 6 in 10 of the 35 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Teach me one piece of knowledge at a time about a topic. Inspired by grill-me, but I learn by explanation, not interrogation.
Choosing the topic
- No topic given → ask which topic I want to learn. Stop and wait.
- Context given but not a concrete topic → ask me to name a specific topic. Stop and wait.
- A specific topic is given → before teaching, see Level check, then mentally outline a curriculum for the topic from foundational to advanced, and start from the beginning.
- If a note for this topic already exists (
notes/topic_name.md, possibly in a subfolder), read it first and treat every## sectionin it as already taught. Never re-teach a covered piece — continue with a new one. (Re-teaching only happens when I explicitly ask to revisit a specific piece.)
Level check
Once the topic is set, decide based on levels.md at the repo root:
- If
levels.mdexists and has a summary for this topic → skip the offer. Read it and calibrate the difficulty of pieces to it. If it has no summary for this topic (or place-me did not just hand off) → offer a level test once:
Want a quick level check on this topic first so I can teach at the right depth? (yes / no)
- If yes → run the
place-meskill for this topic, then come back here and teach calibrated to its result. - If no → start teaching directly.
- If yes → run the
Teaching loop
- Explain exactly one piece of knowledge. Clear, self-contained, with a concrete example.
- Stop. Wait for me.
- If I ask a follow-up about that piece → answer it. If the answer adds non-obvious insight (not just restating the piece), append it to the note under the current
## sectionas a**Q:** … / **A:** …block, then commit:learn: <topic_name> — <short piece title> (follow-up). Trivial confirmations ("맞죠?", "got it?") are not saved. - If I use a term vaguely or inconsistently → interrupt immediately. Name the fuzziness, ask me to define it precisely, then continue. Don't let imprecise vocabulary pile up.
- If I say to continue (or "next") → pick the next piece. Always progress from foundational to advanced: each piece should assume all previously taught pieces, never the reverse. Repeat forever.
- Never explain two pieces at once.
- If there are no more pieces left to teach on this topic → first commit the last piece (same flow as step 5: save + commit
learn: <topic_name> — <short piece title>), then tell me explicitly that this topic is fully covered, then suggest 2–3 related topics that would naturally build on what I've learned, and invite me to run/teach-me <suggested topic>.
Match the explanation language to the language I gave the topic/context in. (e.g. Korean context → explain in Korean with target-language examples; target-language context → explain in that language.)
When a piece is complex, ground it in something from my own world — analogies to my native language, culture, or familiar domain. (e.g. a Korean learning a foreign language → "in Korean this would be like…".) Use the context language as the signal for what's familiar to me.
Visual aid when stuck
If I say a piece is hard to understand, offer a visual:
- Run the
visualstormingskill (no changes to it — just reference it) to draw a visual aid for the current concept. Its own consent gate handles asking first. - Keep explaining against that visual until I say the concept clicked.
- Once I understand, remove the visual artifact that visualstorming created (delete the HTML file). The aid is temporary — do not commit it; only the lesson note gets committed.
- Return to the teaching loop.
Use this only for concepts that are genuinely visual (structure, relationships, layout, flow). For purely verbal points, keep explaining in text.
If the visualstorming skill is not installed, ask me once whether to install it (npx skills@latest add kidow/skills/visualstorming). If I decline, keep explaining without visuals.
Illustrations in notes
Unlike the temporary visual aid above, an illustration is a permanent part of the lesson. When a piece is about structure, flow, relationships, or comparison (not a purely verbal point), add one diagram to that piece without asking:
- Look for the repo's illustration convention first (e.g.
assets/images/notes/README.md,manifest.json, existing<figure>blocks in other notes). If one exists, follow it exactly — style, asset folder, figure markup, alt text, caption, manifest entry. Reuse an existing asset when the concept is the same. - If no convention exists, draw a small self-contained SVG next to the note and embed it with standard Markdown.
- Place the figure right under the
## sectionheading it explains. Keep text inside the image to short labels; the explanation stays in the note. - Show the image in the chat too (send the file or describe where it is) so I see it while learning.
- Commit the image, its manifest entry, and the note together in the lesson commit.
One illustration per piece at most. Skip it for pieces that a diagram would not make clearer.
Audio aid for pronunciation (foreign language topics)
When the topic is a foreign language and pronunciation of a word or phrase is relevant, offer to let me hear it:
- Generate a standalone HTML file (
audio_aid.html) at the repo root containing:- The target-language text displayed large and centered
- Its romanization / reading below
- Its meaning in the context language
- A play button that fetches audio from Google Translate TTS:
https://translate.google.com/translate_tts?ie=UTF-8&q=TEXT&tl=LANG&client=tw-ob&ttsspeed=0.85 - A hidden
<audio>element driven by JavaScript - Minimal dark styling
- Open the file:
open audio_aid.html(macOS) orxdg-open audio_aid.html(Linux). - After I confirm I heard it, delete the file. It is ephemeral — do not commit it.
If the Google Translate TTS request fails (CORS block or network error), fall back to SpeechSynthesisUtterance with the appropriate language code.
Use this only when pronunciation genuinely matters (foreign language phonetics, tone, rhythm). Skip for purely conceptual or text-based pieces.
Saving notes (only if the working folder is a git repo)
After each piece is explained, persist it:
- Check
git rev-parse --is-inside-work-tree. If not a repo, teach only — do not save or commit. - Write the lesson to
notes/topic_name.md(one file per topic, all notes live under thenotes/folder). No date in the name — git history already records when each piece was added.topic_name: lowercase, spaces →_, in the same language as the context. If a note orlevels.mdsection already uses a name for this topic, reuse it exactly — this stem is the shared key across teach-me, place-me, and review-me.- Append the new piece as a
## section; if the same piece is being re-taught, overwrite that section. - Content: the knowledge only, no frontmatter. Write notes in the same language as the explanation.
- Stage and commit just that file:
learn: <topic_name> — <short piece title>.
Auto-organizing structure
As notes accumulate inside notes/, keep its layout optimal automatically — no asking. When themes emerge, create subfolders under notes/ (e.g. by language or domain) and move related notes in. Commit each reorganization as its own commit (chore: reorganize notes) so moves stay separate from new lessons.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

