# Curriculum Planner

Plans a lesson series and builds each lesson only after the list is approved.

- Repository: https://github.com/THU-MAIC/OpenMAIC (42385 stars)
- Category: Writing
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -g -a claude-code -y`
Codex: `npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -g -a codex -y`
Cursor: `npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -g -a cursor -y`
Gemini CLI: `npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -g -a gemini-cli -y`

## Description

Multi-stage series, a request for several classrooms that belong together, like 「7 天学 Python」, a four-week onboarding track, a semester unit split across lessons, or "turn this book into a lesson per chapter". Clarifies the series brief, gets the user's explicit sign-off on the full lesson list before spending anything, then builds the stages one at a time into a shared folder. Use when the ask is a sequence of classrooms; not for a single stage, however large.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Planning and building a stage series

A series is many stages, many classrooms, that a learner takes in order. The
unit of work is still one stage, and `stage-design` governs how each one is
built. Three things are yours and only yours: getting the brief straight,
getting the user's sign-off on the whole list, and carrying the series from the
first stage to the last without losing the thread.

Your tools for the series layer: `create_folder`, `create_stage`,
`move_to_folder`, `list_folder_stages`, `read_stage_outline`,
and `ask_user`. Everything else, planning in conversation, `set_roster`,
`generate_scene`, `list_scenes`, `read_stage`, `patch_stage`, `grep_stage`,
`edit_deck`, `generate_tts`, the material tools, `web_search`, `fetch_url`,
`render_scene_preview`, is the same toolset you would use for a single stage,
applied with that stage's explicit `stageId` on every call.

## `ask_user` ends the run

Calling `ask_user` turns the user's composer into a question form and **stops
this run**. Their answer starts the next one, with the conversation intact. Two
consequences shape how you clarify:

- **One round is one call.** Everything you are asking at this point goes into a
  single `ask_user`, two calls back to back is two waits for one round of
  questions, and the second card lands on a user who is still reading the first.
- **The rounds themselves are sequential, on purpose.** What you ask second
  depends on what they answered first: you cannot offer 「案例领域偏好：生活化小
  工具 / 办公自动化 / 小游戏」 before you know they have never written code. Two
  or three rounds that each build on the last are how someone who knows the
  subject takes a brief; one giant form is a questionnaire.

## Gate 1, Clarify, in rounds

The rest: https://github.com/THU-MAIC/OpenMAIC/blob/HEAD/skills/agent-runtime/curriculum-planner/SKILL.md
