From teaching-pipeline
Generate the actual lesson files (lesson.md, exercise skeleton, solution, Pen-and-Paper Work sections, assessments) from a curriculum plan + research dossier. Use when the learner asks to "build the lesson for module X", "draft module Y", "generate exercise files for Z", or when a planned-but-unwritten module needs concrete materials. Reads the plan and dossier; writes files. Does not invent curriculum (use curriculum-planner) and does not gather refs (use lesson-researcher).
How this skill is triggered — by the user, by Claude, or both
Slash command
/teaching-pipeline:lesson-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turns a curriculum plan + research dossier into shipping lesson materials. The output of this skill is the set of files the learner will actually open during a session.
Turns a curriculum plan + research dossier into shipping lesson materials. The output of this skill is the set of files the learner will actually open during a session.
curriculum-plannerlesson-researcherlesson-review-boardprofessorBefore building, read:
CURRICULUM_PLAN.md) — module objectives, prereqs, exercise idea, time estimate.research/<module>.md) — citations, quotes, version notes, inline-vs-docs-dive markings.lesson.md, exercise.*, solution.* to mirror file layout, naming, and tone. Each course has its own dialect; match it.PROGRESS.md and the learner's auto-memory MEMORY.md (e.g., "build composite formulas from their parts", "use 📖 callouts for docs-dive", "Pen-and-Paper Work sections", "minimal hints"). CONVENTIONS.md describes the defaults.If any of these inputs are missing, stop and surface it — don't guess.
Mirror the conventions of the target course. A common layout:
lessons/<module-id>-<slug>.md — narrative + concept + worked example + exercise promptexercises/<module-id>-<slug>.{py,c,…} — TODO-skeleton with PASS/FAIL test harness baked insolutions/<module-id>-<slug>.{py,c,…} — full working solutionhomework/ — pen-and-paper prompts (when used) and the photos uploaded via review-handwritten-homeworkEPIPHANIES.md — append-only log of "click" moments (the professor writes these during sessions; the builder doesn't seed them)For C / DSA courses also produce/update a Makefile target so make ex<name> and make run-<name> work.
See ${CLAUDE_PLUGIN_ROOT}/skills/lesson-builder/references/course-design.md for the full template. Required sections per lesson:
solutions/<file> rather than inlining (some courses do inline; mirror existing convention)Every exercise file ships as a TODO skeleton with a runnable test harness, not a blank file. Pattern:
# Module XX — <title>
# Goal: <one sentence>
#
# Read lesson <path> first, then fill in the TODO blocks.
# Run this file directly: PASS/FAIL prints inline.
def <function_to_implement>(...):
"""<one-line behavior contract — what it should do, NOT how>"""
# TODO: <pointer to the relevant concept in the lesson>
raise NotImplementedError
if __name__ == "__main__":
# ---- tests ----
assert <function>(input1) == expected1, "case 1"
assert <function>(input2) == expected2, "case 2"
print("PASS")
For C: emit a #include "test.h" style harness, with EXPECT_EQ_INT(...) macros and a single main() that runs all checks and prints PASS / FAIL: <case>.
Important: TODO docstrings describe the behavior contract — never implementation pseudocode the learner can transcribe. Pseudocode hints belong (collapsed) in the lesson, not in the skeleton.
Honor the dossier's Treatment field per concept:
Default to inline for core mechanics. Reserve docs-dive for periphery or extended reading.
When the plan calls for an assessment (mid-course checkpoint, capstone, end-of-module review), build it using the three-part structure in ${CLAUDE_PLUGIN_ROOT}/skills/lesson-builder/references/assessment-patterns.md:
Bugs in part 1 should mirror real mistakes the learner has actually made (from PROGRESS.md knowledge-gap notes), not generic textbook bugs.
Solutions are full working code with comments that explain why — not just what. The professor will reveal these only after the learner has attempted the exercise. Solutions should:
pyright/compiler/formatter before declaring done)lesson.md first (narrative + concept + worked example + exercise prompt + Pen-and-Paper Work).Recommend the next step: "Module XX files written. Next: run lesson-review-board against this draft before promoting to live, or hand off to professor if you trust the draft."
${CLAUDE_PLUGIN_ROOT}/skills/lesson-builder/references/course-design.md — full lesson and module-guide templates${CLAUDE_PLUGIN_ROOT}/skills/lesson-builder/references/assessment-patterns.md — three-part assessment structure with examples and scoringProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub geopopos/teaching-pipeline-plugin --plugin teaching-pipeline