Teach enhance
Teach a topic over multiple sessions AND ship it as a polished, self-hosted HTML course in one command — no separate /teach call. Runs the full teaching methodology (mission-first grounding, a stateful workspace of lessons + glossary + reference cards + learning records, zone-of-proximal-development pacing) and produces every lesson with the enhanced experience baked in: a local neural read-aloud button (Kokoro-82M, in-browser) with word-highlighting and a voice/speed picker, ADHD-friendly reading aids (progress bar, focus mode, read-time, glossary tooltips, mobile-safe tables, on-this-page TOC), offline syntax highlighting, a unified light/dark inline-SVG diagram kit, and content-design patterns (TL;DR box, mid-lesson Quick check + end Retrieval check, labeled Worked examples, Recap box). Triggers: "teach me X", "build a course on X", "I want to learn X over time", "make me lessons on …", plus "enhance / polish my course", "add the read-aloud button / focus mode / TL;DR".From its SKILL.md
npx -y skills add thattimc/skills --skill teach-enhanceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 2 commands, including `python3 scripts/apply.py <workspace>` and 1 more.
SKILL.md
6.0 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Teach Enhance
Teach someone a topic over multiple sessions by building them a beautiful, self-hosted HTML
course. Knowledge, skill, and experience are one thing here: each lesson is at once a grounded
pedagogical unit and a finished, polished artifact. The pedagogy is the /teach method (by
Matt Pocock, MIT — read references/teach-method/teach-method.md and its format files first);
this skill is that method, realized in a fixed house style so nothing has to be polished after
the fact.
The teaching workspace
Treat the current directory as a stateful workspace that holds the learner's progress:
MISSION.md— the real reason the user is learning; ground every decision in it. Interview first if it's unclear (a bad mission is worse than none).RESOURCES.md— high-trust sources. Draw all knowledge from here; never teach from parametric guesses, and cite liberally.lessons/NNNN-slug.html— the lessons (see below).GLOSSARY.md— the course's controlled vocabulary ·reference/*.html— printable cards ·learning-records/*.md— ADRs for what the learner has learned (drives the next session's zone of proximal development).assets/— the shared design system + components every lesson links, so the course looks like one thing, not a pile of one-offs.
Pace each lesson to the learner's zone of proximal development from the learning records: challenged just enough, one tangible win, tied to the mission.
What a lesson is
One short, self-contained HTML file that teaches one tightly-scoped thing in the learner's
ZPD, grounded in RESOURCES.md — and is built to a fixed skeleton that carries the experience,
so the teaching and the polish are the same act. Every lesson has, in order:
masthead · eyebrow (+ phase chip) · h1 · subtitle · lead · TL;DR box · 2–4 sections (with callouts, a kit diagram, and a labeled Worked example) · a mid-lesson Quick check quiz + an end Retrieval check quiz · a Recap box · footer (recommended source · "Ask your teacher" · cited references · prev/next pager).
By linking the shared assets/, every lesson also inherits — for free, at runtime — a local
neural read-aloud (Kokoro-82M in-browser, with word-highlighting and a voice/speed picker), a
scroll progress bar, a focus mode that dims all but the current line, a ~N min
read-time, glossary tooltips on first term use, mobile-safe table scrolling, an "On this
page" contents on longer lessons, and palette-matched syntax highlighting. The two specs
that define the skeleton and the visuals are references/content-patterns.md (every class the
markup and JS expect) and references/diagram-kit.md (the one inline-SVG kit — gradient tints,
52px boxes, curved connectors, one arrowhead — that themes light/dark automatically).
Workflow
- Mission. Establish/confirm
MISSION.md(interview if needed) and set up the workspace. - Sources. Populate
RESOURCES.mdwith high-trust references; ground every claim there. - Lessons. Build each lesson to the skeleton above — in the learner's ZPD, with the two quizzes, a worked example, a kit diagram, a TL;DR, and a recap — keeping the glossary, reference cards, and learning records current as understanding deepens.
- Wire it in. Run
python3 scripts/apply.py <workspace>to copy the components intoassets/, add the<script>includes to everylessons/*.html, and vendor the highlighter. (If the workspace already had acourse.css, merge in this skill'sassets/course.css.) Then tune the glossary tooltips via theDEFSmap at the top ofassets/content.js. - Serve over http (not
file://) so the neural voice can fetch its model, e.g.python3 -m http.server 8137 --directory <workspace>, and open a lesson.
Files
assets/—course.css(full design system) +quiz.js,speak.js,reading.js,content.js,code-highlight.js. (highlight.min.jsis vendored byapply.py.)scripts/apply.py— wires the components into a workspace.references/teach-method/— the bundled/teachmethodology + format files (MIT; see NOTICE).references/content-patterns.md— the per-lesson skeleton + every class the JS expects.references/diagram-kit.md— the unified inline-SVG kit (colours/ids the dark mode keys off).
Caveats
- Kokoro read-aloud downloads an ~80 MB model on first use (cached after); best on
Chrome/WebGPU, slower on Safari/WASM; offline or
file://→ it falls back to the OS voice. - Dark-mode diagrams recolor via CSS attribute selectors keyed to the kit's exact colours/ids
— keep diagrams to
diagram-kit.mdor they won't adapt. - The components are markup-driven; if you rename lesson classes, update the JS selectors.
- This skill is user-invoked (
/teach-enhance); it does not auto-trigger.
What ships with it: 16 files
75.6 KB alongside SKILL.md, 6 of them executable
agents/
- openai.yaml158 B
assets/
- code-highlight.jsruns303 B
- content.jsruns5.5 KB
- course.css22.6 KB
- quiz.jsruns2.1 KB
- reading.jsruns3.6 KB
- speak.jsruns12.8 KB
references/
scripts/
- apply.pyruns3.2 KB
Gives 1 of the 12 instructions most learn study skills give in ~1.3k tokens
Counted across 545 of the 593 authors here whose files we hold, read 2026-09-06
- Treat the current directory as a teaching workspacein 20 of 545, across 17 files
- Teach knowledge first then practice skillsin 19 of 545, across 16 files
- Design lessons which build long-term retentionin 15 of 545, across 12 files
- Save each lesson as a self-contained HTML filehere, and in 15 of 545, across 12 files
- Question the user on why they want to learn thisin 15 of 545, across 12 files
- Reuse components from the assets directoryin 14 of 545, across 11 files
- Never trust your parametric knowledgein 13 of 545, across 10 files
- Record user preferences in NOTES.mdin 11 of 545, across 8 files
- Ground all teaching in the MISSION.md documentin 11 of 545, across 8 files
- Save each lesson to the lessons directoryin 8 of 545
- Question the user if the mission is unclearin 7 of 545
- Gather primary sources onlyin 7 of 545, across 4 files
Said here and by no other author read
- Ground every decision in MISSION.md
- Draw all knowledge from RESOURCES.md
- Pace each lesson to the ZPD
- Run apply.py to wire in components
- Serve the workspace over HTTP
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.