curriculum-designer
Give it a topic or a list of books. It writes a course you can take at your own pace. Both courses on this site came from it.
What you get
You get one folder per course. It reads each book, pulls out the claims, and notes where the books disagree. From that it writes a one-page model of the subject, a set of cases, a final project and a primer on what the books leave out. A validator checks it all, then it builds a single HTML page.
<slug>-course/
SPEC.md goal, levels, source slugs, fixed ID schemes
course.json app manifest
README.md how to use it, and the honesty notes
books/NN-slug.md one breakdown per source
synthesis/ claims-ledger, learning-design, unified-model,
tensions, casebook, capstone, gaps-primer
app/data/*.json modules, diagnostic, cards, cases, brief, model
app/<slug>.html the course, one self-contained fileEach module starts with a question you try before the lesson. When you pick a wrong answer on a quiz, it tells you which common belief led you there. Review cards come back on a schedule. Every claim is tagged as evidence, hypothesis or value, and you tag your own too.
Where it came from
I first gave it books on how people learn, and it made a course about learning. Then I made it work for any reading list. The two courses below came from those runs, and the skill still uses them as examples.
See it run
13 books on how people learn and how schools get built. You finish by designing a school.
11 modules · about 16 hours Games and Norms11 books on why people cooperate. You finish by writing a cooperation plan for a group you're in.
12 modules · about 15 hoursBoth run in your browser, and your progress stays there. The bar at the bottom of each course saves it to a file if you want to move to another computer.
Take it
It's a Claude Code skill: a folder with a SKILL.md, a builder and a validator. Run it like this:
/curriculum-designer "behavioral finance" --sources "Thinking, Fast and Slow; Misbehaving; Nudge"
/curriculum-designer "distributed systems" --goal "design a storage system I can defend" --depth deep
Leave out --sources and it suggests a reading list. That's the only thing it asks you. Then it does the rest and hands back a folder and a page.
What it needs. Python 3.10 or newer, standard library only. Node and npm i playwright only if you want the smoke test.
Install it. It lives at github.com/kbhardwaj/curriculum-designer. In Claude Code, run these two lines:
/plugin marketplace add kbhardwaj/curriculum-designer
/plugin install curriculum-designer@kbhardwaj
Or from a terminal:
claude plugin marketplace add kbhardwaj/curriculum-designer && claude plugin install curriculum-designer@kbhardwaj
It's MIT licensed, so you can also copy the skills/curriculum-designer folder into your own project.
Self-hosting a course
python3 app/build.py <course-dir> --standalone makes one HTML file you can host anywhere. That's how I serve the courses here. The mentor, the chat tutor inside each course, needs a model to talk to, so it's off unless you open the page on claude.ai or build with --mentor-endpoint pointing at your own server. I include a 90-line Python proxy. The books/ and synthesis/ folders are plain Markdown, so any static site generator can render them.
What to expect from the output
- It's told not to make up studies or numbers. Each book file says how its contents were checked, and it says so when it's unsure.
- It throws out quiz questions you could guess without reading: options are the same length and tone, the right answer moves around, and no "always" or "never" gives it away.
- A standard course is about 5,000 words per book and 10 to 12 modules. The deep setting also reads the original papers the books cite. It takes a while and uses a lot of tokens, though it reads the books in parallel.
- It points out where the books disagree and where popular claims go past the evidence.