Teach 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.
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.
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.
Open an MR. CI runs the same check. When it merges, the university deploys and your course appears with your name on it.
| Stage | Fields | Use it for |
|---|---|---|
term | type the command to type · out lines it prints ({c:"ok"|"warn"|"err"|"dim"|"ai", t:"…"}) · clear:true wipes the screen · status changes the status line | Anything someone does in Claude Code or a shell: Forge, Hopper tools, git, scripts. |
slide | title 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. |
web | content HTML of the screen · url for the address bar · target a selector the cursor clicks · show/hide selectors · fills input values | A 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.
dim line: example; your keys will differ.passMark to raise it; the ladder uses 80%). The quiz is what makes the course count on the Registrar.teacher field is who people will ask on Slack.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.This is client/courses/_template.js, in full.
loading…