Academy Track
Generate a complete Academy track: N lessons with quizzes, wired into tracks.ts, MDX pages built and tested, PR created. Repeatable pattern for any topic.
How It Works
- Topic or outline: Generate a full N-lesson Academy track
- Write the lessons: MDX · ≥3 quizzes · ≥2 bespoke diagrams · BuildChallenge
- Register the track: tracks.ts · tiers.ts · exams.ts · diagram + challenge exports
- Build + test: tsc --noEmit · vitest · npm run build compiles every MDX
- Sanitize gate: verify-pii.py + verify-codenames.py — no leaks
- Create PR: Merge → Vercel deploy + Discord announce cron fires
Invocation Triggers
/academy-tracknew trackacademy lessoncreate trackcreate courseUse Cases
- Generate a full course track from a topic outline
- Add a new lesson to an existing Academy track
- Build an MDX-based educational module with quizzes and exercises
The Problem
Writing a course track by hand is the slowest kind of busywork. Every lesson needs prose, three application-style quiz questions, two diagrams that actually teach, and a runnable exercise — then all of it has to be wired into tracks.ts, tiers.ts, exams.ts, and the integrity tests without breaking the build. Skip the diagrams and you have a wall of text. Skip the registration and the lesson renders to nothing with no error. Academy Track does the whole assembly line and refuses to call a thin lesson done.
What It Does
- 1Define the track
Lock the name, slug, tier, lesson count, diagram prefix, and which lessons get a BuildChallenge. The next free lesson block is read off disk so numbering never collides.
- 2Write each lesson MDX
Per lesson: 800 to 2000 words of concrete teaching, three or more application-style quiz questions with explanations, a doctrine callout, and both bespoke diagrams rendered in the body. Prose-only does not pass.
- 3Build diagrams and challenges
Each diagram is a hand-built React component in the house palette — grids, flow arrows, decision trees, not styled bullet lists. Hands-on lessons get an id-based BuildChallenge with a real stub, TODOs, and a correct reference solution.
- 4Wire into the registry
Export every diagram in index.ts, register the challenge module in buildChallenges.ts, append the track to tracks.ts, add the slug to its tier in tiers.ts, and bump the exact lesson and track counts the integrity tests assert.
- 5Build, test, sanitize
Run tsc, vitest, and npm run build — the build compiles every MDX and is the real gate. The PII and codename gates run because the academy is publicly served.
- 6Open the PR
Branch, commit the content plus all registration files, and open the PR. On merge, Vercel deploys and the date-stamped lessons fire the ingest and Discord announce crons.
What You Get / What It Doesn't Do
- N lesson MDX files, each with quizzes, two rendered diagrams, and a doctrine callout
- Hand-built diagram components registered in index.ts
- An id-based BuildChallenge per hands-on lesson with a correct reference solution
- tracks.ts, tiers.ts, exams.ts, and integrity counts updated together
- A PR with the build, tests, and sanitize gates green
- Invent the track scope — it builds the outline you define
- Sync to ask-knox or the jeremyknox.ai mirror — run academy-sync after merge
- Pass a lesson that is prose-only or has a blank BuildChallenge
- Publish internal codenames or infra coordinates — the sanitize gate blocks them
Tips
RSC MDX drops expression-container props at render, so inline BuildChallenge props render nothing. Put the content in challenges/{slug}.ts and reference id only. A missing key fails silently with no build error.
The integrity tests assert exact lesson and track counts in two files, including the projects-api TRACKS lengths. Forget one and vitest goes red after a clean build.
Stub and solution are JS template literals, so a bare dollar-brace interpolates and breaks the build. Use string concatenation or escape it.
Get the Skill
Unlock the full Academy Track SKILL.md — drop it into ~/.claude/skills/ and trigger it by name.
- N lesson MDX files, each with quizzes, two rendered diagrams, and a doctrine callout
- Hand-built diagram components registered in index.ts
- An id-based BuildChallenge per hands-on lesson with a correct reference solution
- tracks.ts, tiers.ts, exams.ts, and integrity counts updated together
29 more production skills ready to install.