← Back to the university

Teach a course

Anyone can add a course.

A course is one small file. You don't touch the app, you don't need to know how the player works, and a script checks your file before it can break anything. If you can describe what you'd type and what you'd say, you can teach here.

Three steps

  1. 1

    Copy the template. In the repo's client/courses/, copy _template.js to <school>-<number>.js, for example ops-110.js. Fill in the id, code, title, your name, and the steps. Each step is what the screen shows plus what the Dean says.

  2. 2

    Run the check. npm run courses:check. It runs your file, checks every step has a caption and every quiz answer exists, and wires the course into the page. If it prints ok, you're in the catalog. If not, it tells you the line.

  3. 3

    Open an MR. CI runs the same check. When it merges, the university deploys and your course appears with your name on it.

Don't want to write the file yourself? Record the session you were going to give anyway, or paste a transcript into Claude Code and say: "turn this into a B-Stock University course using courses/_template.js". Review what it wrote, then run the check.

What a step can be

StageFieldsUse it for
termtype the command to type · out lines it prints ({c:"ok"|"warn"|"err"|"dim"|"ai", t:"…"}) · clear:true wipes the screen · status changes the status lineAnything someone does in Claude Code or a shell: Forge, Hopper tools, git, scripts.
slidetitle starts a slide · bullet adds a line (earlier ones stay) · fig draws boxes and arrows: ["shape","→","build"]The idea before the mechanics. Rules, lifecycles, why something is the way it is.
webcontent HTML of the screen · url for the address bar · target a selector the cursor clicks · show/hide selectors · fills input valuesA portal screen: Hopper, Argus, the seller portal. Give elements ids and point at them.

Every step has rail (its label in the step list) and cap (what the Dean says, with <em> around the words that matter). Steps are cumulative: jumping to step 7 replays 0 to 7, so the screen is always right, and search finds any word in any caption or command.

Rules that keep courses good

  1. Never rename an id. People's progress is keyed on it. Change the title all you like.
  2. Facts only. If output is illustrative rather than recorded, say so in a dim line: example; your keys will differ.
  3. Two or three sentences per caption. That's eight seconds of narration. Split a long one into two steps.
  4. End with a quiz of four to eight questions. Pass mark is 70% (set passMark to raise it; the ladder uses 80%). The quiz is what makes the course count on the Registrar.
  5. Put your name on it. The teacher field is who people will ask on Slack.
  6. Pass on real work when it matters. Add an exercise block (title, brief, evidence fields) and the done card asks for evidence after the quiz: an MR URL, a Hopper key, a pasted transcript. It lands in the Registrar's Reviews queue. With pass:true a reviewer's approval is required and nothing passes on the quiz alone. That is how Ken's AI University ladder works; the template shows the shape.

The template

This is client/courses/_template.js, in full.

loading…