Source: mattpocock/skills · Maintainer: community: Matt Pocock · License: MIT · Checked: 24 October 2026
What is the teach skill?
The teach skill turns your coding agent into a tutor for one topic across many sessions: you run /teach in a folder, it asks why you want to learn, collects trusted sources, and writes short HTML lessons that build on a record of what you already know. It is for developers who want to learn a language, framework, codebase or any other subject with an agent, and keep the course as files they own.
It comes from mattpocock/skills, which Matt Pocock describes in the README as "My agent skills that I use every day to do real engineering - not vibe coding." The skill's description is short: "Teach the user a new skill or concept, within this workspace."
Its skills.sh page listed about 862,000 installs (snapshot, 24 October 2026), with Pass results from Gen Agent Trust Hub, Socket and Snyk.
What does it do?
The SKILL.md opens: "This is a stateful request - they intend to learn the topic over multiple sessions." Everything it learns about you is written to the folder, so a new session picks up where the last one stopped.
The workspace. The skill keeps these files in the directory you ran it in:
| Path | What it holds |
|---|---|
MISSION.md |
Why you are learning this. Every lesson ties back to it. |
RESOURCES.md |
Vetted sources, split into knowledge and wisdom (communities). |
lessons/*.html |
Numbered lessons, the main unit of teaching. |
reference/*.html |
Cheat sheets, algorithms, glossaries: the pages you come back to. |
learning-records/*.md |
Notes on what you have learned, like architecture decision records. |
assets/* |
Reusable components, starting with a shared stylesheet. |
NOTES.md |
Your teaching preferences. |
Mission first. If MISSION.md is empty, "your first job should be to question the user on why they want to learn this." The format file pushes for concrete goals: "Ship a Rust CLI to my team" beats "learn Rust."
Sources before lessons. The skill says "Never trust your parametric knowledge." Until RESOURCES.md is well populated, the agent's job is to find high-quality sources. Lessons should be "littered with citations," and each one recommends a single primary source to read or watch.
Lessons that stick. The skill separates fluency (recall in the moment) from storage strength (long-term retention) and designs for the second with retrieval practice, spacing and interleaving. Each lesson is one short, self-contained HTML file, "beautiful" ("Think Tufte"), with a single tangible win inside your zone of proximal development.
Feedback loops. Skills are drilled through quizzes and real-world step lists with immediate feedback. Quiz answers must be the same length, and the agent is told to vary which position holds the correct one.
Wisdom. Questions that need real-world judgement get an attempted answer, then a pointer to a community such as a forum, subreddit or class, unless you say you don't want one.
What's in the folder:
SKILL.md: the teaching method.MISSION-FORMAT.md,RESOURCES-FORMAT.md,LEARNING-RECORD-FORMAT.md,GLOSSARY-FORMAT.md: templates for the workspace files.agents/openai.yaml: Codex display metadata ("Teach") with implicit invocation turned off.
How do you install it?
The README offers a plugin route and an editable-files route, and says to "Pick one per agent, because installing both gives you every skill twice."
Claude Code plugin (whole set, updates itself), from Anthropic's official plugin marketplace:
claude plugin install mattpocock-skills@claude-plugins-official
Plugin skills are namespaced, so it appears as /mattpocock-skills:teach.
Codex plugin, from the README:
codex plugin marketplace add mattpocock/skills
codex plugin add mattpocock-skills@mattpocock
Just this skill, as editable files, with the skills CLI:
npx skills add mattpocock/skills --skill teach
Add -g to install it for all projects. Since the workspace files land wherever you run /teach, a global install suits this skill: you can start a course in any folder. Files go to .claude/skills/teach/ or ~/.claude/skills/teach/, the standard Claude Code skill locations. For other agents see Codex skills and Cursor skills.
The skill ships no scripts, packages or API keys. The docs' one prerequisite is a folder you are happy to give over to a single topic.
How do you use it?
Make an empty folder (or a new repo) for the topic, open your agent there and type /teach. The skill sets disable-model-invocation: true, which per the Claude Code docs means Claude won't load it automatically. The argument-hint asks "What would you like to learn about?"
Example prompts (suggestions, not quotes from the repo):
/teach I just joined a team that uses Elixir and Phoenix. I know Python well. I want to ship my first feature in two weeks./teach SQL window functions, so I can write our monthly retention report without help./teach next lesson for Rust/teach That lesson assumed I knew what a borrow checker is. I don't. Go back a step./teach I want review and drills today, not new material.
The docs for teach say common practice is to open a fresh session in the workspace and say /teach next lesson for <topic>. The course state lives in the folder, so staying in one session also works.
Tips and limits
From the repo's docs, not from testing:
- Keep it out of your project. The docs say a separate repo is the best home, "better than a global
~/.learnings/folder or the working project itself," and committing it lets a team share lessons. - State your level up front. There is no assessment step, so session one guesses. The docs call assumed knowledge "the most common real complaint" and suggest stating what you know and don't in the first message. A request for a knowledge-assessment step was closed as not planned on 6 October 2026; the maintainer suggests asking it to quiz you before starting.
- Check the lessons. "
teachis not reliable enough to trust unchecked." Risk is highest in procedural topics with precise notation, lowest where you can verify the output, like code you can run. - Watch quiz answer position. The docs report the correct answer often landing in the first slot, even with instruction-level fixes, and suggest a quiz component in
assets/that shuffles answers. A SKILL.md line telling the agent to vary the position was added on main for issue #611, with its release note still pending. - No scheduled review. It designs for spacing but schedules nothing, and it won't propose switching to review on its own. Ask for it.
- No glossary unless you ask. The folder ships
GLOSSARY-FORMAT.md, but the docs note SKILL.md no longer links to it. - Model and effort matter. Users report better lessons at higher reasoning effort, and one user got a single short HTML card from another harness where Claude Code produced a full lesson.
It is not just for code: the docs list languages, music, certifications and exam prep among reported uses. Under the MIT License you can copy and change it if you keep the copyright notice.
Save it in your Kipt library
In Kipt, open Skills and paste the GitHub folder link into the import box. Kipt reads the SKILL.md and the four format files beside it. The repo holds many skills, so Kipt shows a list to pick from, which makes it easy to take handoff too. Your copies live in your own private GitHub repo and install into Claude Code or Codex with one command:
npx skills add https://github.com/<you>/<repo>.git --all -g
Kipt is not affiliated with Matt Pocock or mattpocock/skills.
Similar skills
- Handoff skill: the docs suggest handing off from a grilling session to a teaching workspace, learning there with
teach, then going back. - Grill me skill: sharpen thinking you already have rather than learn new material.
- Grilling skill: the interview engine behind the repo's grill skills.
- Doc co-authoring skill: Anthropic's skill for writing a document together, when the output is a doc rather than your own learning.