Claude Academy
Sign in

Vault / wiki/401/skill-course-builder.md

updated 2026-07-16

Worked Example: The course-builder Skill

How a pile of markdown notes becomes a course. The skill (.claude/skills/course-builder/SKILL.md) encodes this site's answer: a track is just an ordered list of vault-note slugs plus an optional quiz and flashcard deck, declared in one config file (web/scripts/tracks.config.mjs).

The design idea: courses as configuration

Nothing about a course lives in application code. Adding "Introduction to Claude Cowork" to the site is: write the note, add its slug to a track array, rerun the content pipeline. That is what makes the weekly skill-vault-sync automation able to grow the catalog without touching React.

  • Lesson slugs — filenames minus .md; the pipeline warns (not fails) on unknown slugs, so tracks can be declared before their content lands.
  • Ordering discipline — each lesson may only depend on earlier lessons: overview → mechanics → edge cases → operations. Prev/next navigation is derived from array order.
  • Attachment pointsquiz: binds a parsed practice file; deck: binds a generated flashcard deck. Both are ids produced by the same pipeline, so a typo is caught at build time.

Why validation is part of the skill

The skill ends with commands, not advice: run the pipeline, read the missing lesson slug warnings, preview the track route. A capability bundle that doesn't tell you how to verify success teaches the model to declare victory early.

Key terms

  • Track — an ordered lesson list + optional quiz/deck, rendered as a course.
  • Content pipeline — the build script that turns vault markdown into the JSON the site serves.
  • Declared-before-built — registering future content so it lights up the moment the note exists.
  • First-match ownership — a lesson's prev/next navigation belongs to the first track containing it.

Open .claude/skills/course-builder/SKILL.md and web/scripts/tracks.config.mjs together — the skill is short precisely because the system it operates is simple.