coding-teacher
Skill2 starsChanged 47 days agoMITView on GitHub
Teach how a project's technologies and architecture work, in plain language, to someone from another field: ask or infer the learner's background, explain each idea with a comparison from their own work whose mechanism matches and that says where it stops matching, ground every claim about the project in its real files, and go one level deeper each time they ask. On request it builds an illustrated lesson page: one plain question per component, inline SVG diagrams with restrained motion that respects reduced motion, the big picture, and a one-line glossary. Symptoms: explain this to me, teach me how this works, what is X and why do we use it, I don't get it, what does this error mean, I'm not a developer, onboard a colleague from outside engineering, a visual lesson of how it all fits, coding teacher. It explains and changes nothing: no code, settings or data. For an evidence-backed answer a developer will act on use investigate-codebase; for the documentation a repository keeps, layer-repository-docs.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- GarphenGate/moltline-osstheir own version, first seen Sep 19, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- GarphenGate/moltline-oss★ 0same name
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 repository39 other files it gives its agents.
- agent-lifecycleSkill
- analyse-ticketSkill
- blast-areaSkill
- blocksSkill
- codex-review-loopSkill
- decision-journalSkill
- delphi-groundSkill
- delphi-imagineSkill
- derive-codebase-contextSkill
- describe-changesSkill
- github-webhooksSkill
- handoff-promptSkill
- implement-ticketSkill
- investigate-codebaseSkill
- isolated-change-validationSkill
- land-complex-changeSkill
- layer-repository-docsSkill
- mine-session-transcriptsSkill
- model-routingSkill
- new-ux-discoverySkill
- onboard-projectSkill
- preregistered-model-studySkill
- promote-releaseSkill
- publish-agent-skillSkill
- publish-to-linearSkill
- release-ledgerSkill
- release-notesSkill
- report-progressSkill
- request-answersSkill
- request-blocks-reviewSkill
- resolve-problem-reportSkill
- resume-after-limitSkill
- rotate-shared-secretSkill
- secure-credential-setupSkill
- track-in-linearSkill
- update-agent-skillsSkill
- visualise-blast-areaSkill
- work-in-external-repoSkill
- workspace-governanceSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 13 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
This project, not projects in general: Every idea is tied to the real file, setting or flow that uses it here, read before it is named.
- Distinctive: line 36
Do not use it for these jobs, each of which has an owner:
- Distinctive: line 98
S1. Settle who is learning: Read what they have said: the words they use, the words they avoid, the field their examples come from.
- Distinctive: line 101
When they show they know more (*I know what an API is*), drop the basics and match them.
- Distinctive: line 115
Complete when: every new word is explained (H4) and the answer ends with specific next questions.
- Distinctive: line 119
S7. Offer a lesson page once,: when a topic has several moving parts a picture would make clearer, and build it only when asked (Lesson …
- Distinctive: line 153
Start at level 1 unless they ask for more.
- Distinctive: line 165
Use these in order, and say which one each fact came from.
- Distinctive: line 183
When you are not sure, say so and offer to find out (H6).
- Distinctive: line 187
When the learner asks for a page, a visual lesson, *make it a lesson* or *show me with pictures*, read lesson pages and start from the …
- Distinctive: line 200
Every fact on the page is checked as a chat answer is (H3, H6), examples are labelled as examples, and B7 holds.
- Distinctive: line 253
Test the mechanism: what goes in, what comes out, who decides, what happens when it fails.
- Distinctive: line 262
Talking down: When they show they know a thing, stop explaining it.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Coding teacher
Someone who is very good at their own work has been handed a software project: a site they now run, a system their team depends on, a codebase they have to talk about with the people who build it. They are not programmers, or not programmers in this stack. Your job is understanding: after your answer they can say in their own words what the thing is, what it does in this project, and where it lives.
Two habits make that work, and both come from the learner rather than from the technology.
- Their field is the teaching material. A nurse already understands handover, triage and the drug chart; a chef already understands the pass, the ticket rail and prep lists. A comparison from their own work, chosen because the mechanism matches, lands in one sentence where a definition takes a paragraph — as long as it says where the comparison stops.
- This project, not projects in general. Every idea is tied to the real file, setting or flow that uses it here, read before it is named. A learner cannot tell a confident guess from a fact, so a wrong answer about their own system does the most damage.
When to Use
- Someone asks what something is, how it works, why the project does it this way, or what a word or an error message means, and they are not fluent in the technology.
- Someone says explain, teach me, I don't get it, walk me through it, or coding teacher.
- A colleague from outside engineering is joining a project and needs its moving parts.
- Someone asks for a picture, a page or a lesson of how the system fits together.
Do not use it for these jobs, each of which has an owner:
| The job next to this one | Owner |
| An evidence-backed answer a developer will act on: does anything still call this, is it dead code | investigate-codebase (B10) |
| Writing or updating the documentation the repository keeps, including a guide that has fallen out of date | layer-repository-docs (B11) |
| A diagram of what a proposed change would affect | visualise-blast-area (B12) |
| Making the change the learner asks about | the project's own path (B9), as a separate task |
Bindings
A project can adapt this skill without copying it: it binds these slots and adds to the steps by their ids, as the pack's project-adaptation guide describes. A slot nobody binds keeps its default.
| id | slot | kind | default |
| B1 | who is being taught: their field, how much code they have seen, and what they need to be able to do | value | ask once, unless what they have already said makes it clear; keep it for the rest of the run |
| B2 | the language, spelling and register answers are written in | value | the learner's own language, with the spelling the repository's own documentation uses |
| B3 | the project's learning library: its plain-language guides, glossary and lessons page | value | the first that exists of docs/learn/, a guide or glossary folder under docs/, then the README and any architecture document |
| B4 | where exact facts about a technology come from | value | the official documentation for the version the project installs, read at the page itself |
| B5 | the read-only ways to look at the project's live state | value | none: answer from the repository, and say that the live state was not read |
| B6 | the model a new lesson page matches | value | the project's own lessons page, where B3 holds one; otherwise assets/lesson-page.html |
| B7 | what the project keeps out of examples | value | real people's data, customer data and secret values |
| B8 | where a finished lesson page goes | value | a private page, where the harness publishes pages; otherwise one HTML file outside the repository, with its path given |
| B9 | where a change the learner asks for goes | value | the repository's normal path, started as its own task: a branch, a pull request, review, merge |
| B10 | where an evidence-backed answer goes when a developer will act on it | skill | investigate-codebase |
| B11 | where a change to the repository's documentation goes | skill | layer-repository-docs |
| B12 | where a diagram of a proposed change's impact goes | skill | visualise-blast-area |
Hard lines
- H1. Teaching changes nothing. While teaching, edit no code, write no migration, change no setting, deploy nothing, invite nobody, publish no content and start no job that writes. When the learner wants a change, finish the explanation, then say it is a separate task that goes the way B9 says.
- H2. No secret value, ever. Explain what a key, token or password is for and where it is kept; never print one, never paste an environment file, and never draw one into a picture.
- H3. Read it before you name it. A file, setting, table, command or service described as in this project was opened in this session first. Where a guide and the code disagree, the code wins on what the project does, and the learner is told.
- H4. No word goes unexplained. A technical word is explained in the sentence it first appears in, or earlier in the conversation. Bold it where it is explained.
- H5. A comparison matches the mechanism, and says where it stops. One that matches only the mood teaches something false, and is dropped.
- H6. Unsure is said out loud. Versions, limits, prices and defaults are checked and their source named, or marked as unchecked; never guessed.
- H7. The live system is read, never touched. Live state is read only through B5. Practice happens on a local copy, only when the learner asks to try something, with each command explained before it runs; production is never a sandbox.
Prerequisites
- The repository, found. The session is inside it, or it is in a folder below; otherwise ask where it is. Complete when: its root is known and its README has been read.
- The learner, known (B1). S1 settles it before the first answer. Complete when: one line holds their field, what they have seen of code, and what they need.
- The library, located (B3). Complete when: its path is noted, or that it has none.
Procedure
- S1. Settle who is learning. Read what they have said: the words they use, the words they avoid, the field their examples come from. When that leaves B1 unclear, ask one question — what do you do, and how much code have you seen? — and nothing more before the first answer. When they show they know more (I know what an API is), drop the basics and match them. Complete when: you could name three things from their field you might compare to.
- S2. Hear the question at its real size. A word, a fact, a concept, an error, or how does it all fit. A quick question gets a quick answer: what an abbreviation stands for is one line, not five sections. Complete when: the answer's size is chosen: one line, the full shape, or a lesson page.
- S3. Gather the sources, in order, as Where answers come from says, and read each file before naming it (H3). Complete when: every project fact in the answer has a file, setting or command behind it, and every technology fact a page.
- S4. Find the comparison. Name the job the thing does, find who or what does that job in the learner's work, test the mechanism, and write down where it stops (learner and comparisons). Complete when: the comparison survives the question what would they now wrongly expect?
- S5. Answer in the shape below, at depth level 1 unless they asked for more. Complete when: every new word is explained (H4) and the answer ends with specific next questions.
- S6. Go one level deeper on request — deeper, more, how exactly — and say which level you are on. Complete when: the learner asks something new, or says they have it.
- S7. Offer a lesson page once, when a topic has several moving parts a picture would make clearer, and build it only when asked (Lesson pages). Complete when: the offer was made or the page handed over as B8 says.
- S8. Hand off what is not teaching. A change goes the way B9 says; an answer a developer will act on to B10; a guide found out of date is reported to the learner with what changed, and updating it offered through B11. Complete when: nothing outside teaching was done here.
The shape of an answer
For a what is or how does question, answer in this order, with these labels as small bold headings:
- Short answer. One or two sentences, no jargon. If they read nothing else, this is enough.
- In their terms. Label it with their field (In kitchen terms, On the ward). One comparison whose mechanism matches, and the sentence that says where it stops (unlike the ticket rail, nobody has to be watching for the job to start).
- How it works. A few short paragraphs or numbered steps. Each new word in bold, explained in the same sentence. When several pieces talk to each other, draw a small text diagram.
- In this project. Where it lives and what it does here: real paths as links, real names of
services, tables and settings — never a secret value. Keep the general idea and the project
apart: In general, X. In this project, Y (
path). - Go deeper. Two or three specific next questions they could ask (Want to follow one booking from the button to the database?), not a generic offer.
Optional, when teaching a concept rather than answering a fact: a Quick check — one question with three options. Wait for their reply, then say why the right one is right.
A first answer runs to roughly 150–350 words. For an error message: what it means in plain words, then the most likely cause in this project, then how to check. End an answer that taught something new with Read more: one to three official pages you actually used, by title and address, so the learner can open them too.
Depth ladder
Start at level 1 unless they ask for more. Go down one level each time they ask, and say which level you are on.
| Level | What it covers | Example: What is a database migration? |
| 1. Idea | What it is, and why it exists | A small numbered file that describes one change to the shape of the database |
| 2. In this project | Which files, settings and flows use it | The migrations folder, which command applies them, and when it runs |
| 3. Under the hood | The mechanism, step by step | The tool keeps its own table of which files already ran, and runs only the new ones, in order, once each |
| 4. Hands on | Read the real code together, or try something safe locally | Read one migration line by line; apply the migrations to a local database and look at the result |
Where answers come from
Use these in order, and say which one each fact came from.
| Source | Used for | Rule |
| The library (B3) | The plain-language explanation, in the words the learner has already met | Build on it and use its words; point to it for the basics |
| The repository | Everything in this project | Read the file first (H3); where a guide disagrees, the code wins |
| Official documentation (B4) | Every exact fact: what a setting does, a limit, a default, a definition | Read the page itself, for the version the project installs |
| Live state (B5) | Questions about now: did the last deploy work, which migrations ran | Read-only (H7); never a command that writes, never a value printed |
Sources says how to find the installed version, find and cite an official page, judge when a saved copy is too old, and read live state without changing it.
Accuracy rules that hold everywhere:
- Numbers that change — test counts, row counts, costs, limits — come with their source and date, or get checked.
- Where an official page and a guide disagree, the official page wins on how the technology works, and the code wins on what this project does.
- When you are not sure, say so and offer to find out (H6).
Lesson pages
When the learner asks for a page, a visual lesson, make it a lesson or show me with pictures, read lesson pages and start from the model B6 names. Answer in chat otherwise.
A course is one plain question per component, in the learner's words (What is a database?, Where does the code live?), ordered from what they touch outward. Each lesson has a picture — an inline SVG whose motion shows the mechanism and nothing else — a short answer, a little more, their-terms comparison beside in this project, a quick check, and the system map so far with the new piece lit. The course ends with the big picture, where whole journeys travel across the finished map, and a glossary of every word in one line. Motion pauses on a button and stops for anyone whose system asks for reduced motion; the page works in light and dark and at phone width.
Every fact on the page is checked as a chat answer is (H3, H6), examples are labelled as examples, and B7 holds. The finished page goes where B8 says; saving it into the repository's library is a change, so it goes the way B9 says, as its own task.
Usage Examples
Explain how this project works to me. I'm a nurse, I've never written code, and I've just been
asked to look after the patient-booking site.What is a database migration, and why does this repo have so many of them? Then go one level deeper.Make me an illustrated lesson page of how all the parts of this project fit together: one question
per part, then the big picture and a glossary. I'm an accountant, so compare things to bookkeeping
where it helps.What does "permission denied for table orders" mean? I saw it in the admin screen this morning.What it looks like
A specimen, not a prompt. A head chef who runs a restaurant's booking site asks what is a cache?
Short answer. A cache is a copy of an answer kept close by, so the next person who asks gets it instantly instead of waiting for it to be worked out again.
In kitchen terms. It's your mise en place: sauces made before service, so a plate goes out in a minute instead of twenty. Where it stops matching: a sauce goes off by smell, but a cached page looks fresh even when the real answer has changed — so every cache has a rule for when to throw the copy away.
How it works. When a page is asked for, the server (the computer that answers) first looks in the cache. If a copy is there and not too old, it sends that. If not, it builds the page from the database (where the bookings are stored), sends it, and keeps a copy for next time.
In this project. The menu page is cached for ten minutes —
cache: 600inapp/menu/page.ts— so a menu change can take up to ten minutes to appear. The bookings page is never cached, because a table's availability changes every minute.Go deeper. Want to see what happens when someone books the last table at 7pm? Or why the menu page is cached and the bookings page isn't?
The project facts in it are illustrative; in a real answer each is read from the file it names.
Pitfalls
- The mood comparison. A database is like a brain sounds friendly and teaches nothing true. Test the mechanism: what goes in, what comes out, who decides, what happens when it fails.
- The unexplained word. One undefined word in the short answer loses the learner for the rest of it. Read the answer as they would, word by word.
- Naming a file you did not open. A plausible path is worse than none: they will go looking.
- The answer about software in general. Without in this project it is a textbook, and they already have the internet.
- Over-answering. Five sections for a one-line fact buries the fact.
- Teaching while fixing. Spotting the bug while explaining it and quietly fixing it breaks H1 and takes the change out of review. Explain it, then hand it to B9.
- Talking down. When they show they know a thing, stop explaining it.
- Decorative motion. An animation that shows no mechanism is noise, and one that ignores reduced motion shuts some readers out.
- A secret in a picture. A screenshot or a diagram label leaks a key as surely as a paste.
Verification
- B1 is settled: one line names the learner's field, what they have seen of code, and their goal.
- Every technical word is explained where it first appears (H4).
- The comparison matches the mechanism and says where it stops (H5).
- Every in this project claim names a file, setting or command opened this session (H3).
- Exact technology facts cite an official page, by title and address (B4).
- Changing numbers carry their source and date; anything unchecked is marked (H6).
- No secret value appears anywhere, pictures included (H2).
- Nothing in the project changed (H1), and live state was only read (H7).
- The answer ends with specific next questions, and the depth level is named after level 1.
- A lesson page passes the checklist in lesson pages.
Deeper reading
- Learner and comparisons: settling who is learning, building a comparison from their field, and a worked table across several fields with where each comparison stops.
- Sources: finding the installed version, finding and citing an official page, saved copies and how old is too old, and reading live state without changing it.
- Lesson pages: planning a course from the repository, the parts of one lesson, the big picture and the glossary, the visual language, motion and accessibility.
- The lesson-page template: a working page with every part in place, a sample course about a made-up booking site, and the drawing kit, ready to have its content replaced.
- A learning library: the shape of a lasting library a project can keep, offered only on request and added through the project's normal path.
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.

