Teaching Resource Research Skill
mingchen666/Reviva
Find, verify, and curate teaching resources for lesson preparation.
Plans a multi-classroom series such as a seven-day course, clarifies the brief in rounds, gets sign-off on the full lesson list, then builds each stage in a shared folder.
$ npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install THU-MAIC/OpenMAIC curriculum-planner --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-runtime/curriculum-planner .claude/skills/curriculum-planner && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "curriculum-planner" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/curriculum-planner into .claude/skills/curriculum-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "curriculum-planner", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/curriculum-plannerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install THU-MAIC/OpenMAIC curriculum-planner --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agent-runtime/curriculum-planner .agents/skills/curriculum-planner && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "curriculum-planner" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/curriculum-planner into .agents/skills/curriculum-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "curriculum-planner", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install THU-MAIC/OpenMAIC curriculum-planner --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agent-runtime/curriculum-planner .cursor/skills/curriculum-planner && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "curriculum-planner" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/curriculum-planner into .cursor/skills/curriculum-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "curriculum-planner", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/THU-MAIC/OpenMAIC.git --path skills/agent-runtime/curriculum-planner--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install THU-MAIC/OpenMAIC curriculum-planner --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agent-runtime/curriculum-planner .gemini/skills/curriculum-planner && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "curriculum-planner" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/curriculum-planner into .gemini/skills/curriculum-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "curriculum-planner", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install THU-MAIC/OpenMAIC curriculum-plannerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agent-runtime/curriculum-planner .github/skills/curriculum-planner && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "curriculum-planner" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/curriculum-planner into .github/skills/curriculum-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "curriculum-planner", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install THU-MAIC/OpenMAIC curriculum-planner --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agent-runtime/curriculum-planner .opencode/skills/curriculum-planner && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "curriculum-planner" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/curriculum-planner into .opencode/skills/curriculum-planner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "curriculum-planner", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
curriculum-plannerPlans a multi-classroom series such as a seven-day course, clarifies the brief in rounds, gets sign-off on the full lesson list, then builds each stage in a shared folder.
Used when a request calls for several classrooms that belong together: a short course, an onboarding track, a unit split into lessons, or a book turned into one lesson per chapter. A single stage, however large, is out of scope. The agent owns three things: getting the brief straight, getting your explicit approval of the whole lesson list before anything is generated, and carrying the series from first stage to last.
Clarification happens in two or three narrowing rounds, each one a single `ask_user` call that ends the agent's run until you answer. The first round settles who the learner is and what they want out of the course. Series-level tools are `create_folder`, `create_stage`, `move_to_folder`, `list_folder_stages` and `read_stage_outline`; per-stage work uses the normal single-stage toolset with that stage's id, and a separate `stage-design` skill governs how each stage is built.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7d324aa. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Curriculum Planner loads about 2.8k tokens when it runs. Until then it costs about 121 tokens; SKILL.md has 1,755 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from THU-MAIC/OpenMAIC at commit 7d324aa, republished under its MIT licence (© THU-MAIC). 1,755 words, ~2,778 tokens.
.claude/skills/curriculum-planner/SKILL.md (or your agent's skills folder).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 runCalling 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:
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.A series request is almost always underdetermined. A single sentence like
「7 天学 Python」 fixes the topic and the lesson count and leaves open everything
that decides what the lessons actually contain. Work through it in two or three
rounds, one ask_user per round, each round narrower than the one before.
Round 1 — where this lands. The two or three things nothing else can be decided without:
Put the example inside the option label: 「完全零基础,没写过一行代码」 tells the user what you mean by beginner, 「初级」 makes them guess.
Round 2 — the shape, fitted to Round 1's answers. Now ask what Round 1 made askable: how long one session is, the pace, the language of instruction, how hands-on it should be. Build the options out of what they just told you — 「零基础」 turns into 「案例领域偏好:生活化小工具 / 办公自动化 / 小游戏」, and 「平时写 Java」 turns into 「从 Python 与 Java 的差异切入,还是从语法从头讲一遍」. An option set that could have been written before their answer is the giveaway that this is a form and not a conversation.
Round 3 — the edges, and only when they are real. Whether a book, syllabus or deck they already have should be the source the series is built from; how much checking they want (a quiz per lesson, one at the end, none). Skip this round whenever neither question would change the plan.
Rules that hold for every round:
The question IS the tool call, never the text. Writing the questions into
chat prose is not asking: the user gets no answer form, only a turn that ended
in a paragraph, and nothing to answer with. Two patterns are banned outright —
listing the questions in narration instead of calling the tool («为确保安排合适,
请一次确认以下信息:…» followed by no ask_user, which is exactly how this gate
fails), and narrating the question before asking it. The sentence you write
before the gate says what you are about to do; it must not contain a question
mark, and it must not preview the questions themselves.
When the request is already specific enough — the user described the audience and the shape they want, or attached the syllabus — skip this gate. Go straight to a proposal and let Gate 2 be the one place they confirm.
Never start building before the user has signed off on the full series. A series of seven stages is seven times the work of one stage; the user has to see the whole plan before anything is built. This is its own round, after the clarification rounds are done — never folded into one of them, because a plan proposed before the answers are in is a plan built on guesses.
Present, in the chat, before any stage exists:
Then call ask_user for an explicit go, and offer the obvious alternatives to
a plain yes: change the count, reorder, drop or add a lesson, adjust the level.
A silent or ambiguous answer is not a go. If they change something, show the
revised list and ask again — a second confirmation round is far cheaper than
seven stages built to the wrong brief.
The list above belongs in the chat — it is what the user reads. The ask does
not. The go is an ask_user call with those alternatives as its options; a
turn that presents the list and then asks «可以开始吗?» in prose ends with no
way to answer, and treating that silence as consent is the one thing this gate
exists to prevent. Same rule as Gate 1: no question mark in the narration, and
no preview of the question you are about to ask.
Once you have the go:
create_folder for the series, named as the user would name it.create_stage passing the series folder's folderId — the stage is filed
into the folder in the same call, never left sitting in ungrouped — keep
the returned stageId and pass it to every generation/edit/read call;stage-design sequence — outline once, roster, one
generate_scene per page in order, list_scenes to verify, audio checked
before it counts as done;list_folder_stages and check the stage is in
the series folder. If it shows no folder (the folderId was dropped), call
move_to_folder to file it right away — never let the whole series run to
the end before noticing an ungrouped stage;read_stage_outline
on that earlier stage. Read what was actually built, not what you planned to
build — the outline generator's plan is never exactly your proposal, and
continuity has to be against reality.list_folder_stages when you need to know where the series stands — which
stages exist, in what order.A series is a long conversation, and everything you write stays in it. Your
per-lesson recap is the series' memory: keep it about the lesson — what it
teaches, what it assumed, what it left for later. Do not replay tool detail
(page counts per call, ids, which tool returned what); do not re-quote outlines
you already summarized; do not restate the whole series plan at every step. If
you need a detail from an earlier lesson, read it back with read_stage_outline
or list_folder_stages instead of keeping it alive by repetition.
Page recovery follows stage-design; one failed page does not abort the rest of
the series.
Close with:
stage-design governs each individual stage; this skill adds the layer above it
and never replaces it — read both. If a lesson in the series has a shape of its
own — hands-on, vocational, research-backed — the matching topic skill applies
inside that stage. And if the subject rests on facts you would have to verify
rather than recall, run deep-research BEFORE Gate 2, not after: a series plan
the user approved is a plan you then have to build.
© THU-MAIC, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/agent-runtime/curriculum-planner of THU-MAIC/OpenMAIC.
Open the folder on GitHubat commit 7d324aa
Curriculum Planner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Curriculum Planner this skillTHU-MAIC/OpenMAIC | 40k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Teaching Resource Research Skillmingchen666/Reviva | 244 | — | ~1k | Automated safety check: Pass | None | |
| Worksheet Skillmingchen666/Reviva | 244 | — | ~1.1k | Automated safety check: Pass | None | |
| Competency UnpackerGarethManning/education-agent-skills | 840 | — | ~4.5k | Automated safety check: Pass | Custom licence | |
| HTML Ppt Course Modulesanqiufong/slides-from-anything | 132 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Course Builderrevfactory/harness-100 | 1.3k | — | ~1.8k | Automated safety check: Pass | Apache-2.0 |
mingchen666/Reviva
Find, verify, and curate teaching resources for lesson preparation.
mingchen666/Reviva
Create teacher-ready worksheets, guided learning sheets, preview sheets, class exercises, homework, layered assignments, remediation sheets, answer keys, and teacher notes.
GarethManning/education-agent-skills
Unpack a broad standard or competency descriptor into specific, assessable success criteria and sub-skills.
sanqiufong/slides-from-anything
Online-course / workshop module deck — warm paper background + Playfair serif, persistent left sidebar of learning objectives, MCQ self-check page.
revfactory/harness-100
A full production pipeline where an agent team collaborates to design online courses all at once — curriculum, lesson plans, quizzes, and hands-on labs.
pawbytes/skill-suites
Builder of knowledge products such as courses, ebooks, guides, memberships, and educational assets.
THU-MAIC/OpenMAIC
Guides setup, classroom generation and secondary development for OpenMAIC, the multi-agent interactive classroom, one confirmed phase at a time.
THU-MAIC/OpenMAIC
Designs a Chinese K-12 classroom for one OpenMAIC stage around the core-literacy model, using authentic tasks, performance assessment and observable evidence.
THU-MAIC/OpenMAIC
Maps the structure of an OpenMAIC stage document so an agent can find the right path, read it and patch quizzes, widgets, actions and project pages without guessing.
THU-MAIC/OpenMAIC
Designs a review-and-practice lesson around an independent first attempt, targeted feedback, supported practice, a fresh independent check and a next step.
THU-MAIC/OpenMAIC
Derives a reusable personal skill for course-making from a representative sample of the user's own past classrooms and chat history, confirmed with them before saving.
THU-MAIC/OpenMAIC
Plans online courses so learners manipulate simulations, diagrams, code, games or 3D scenes on most pages, with slides only for the opening and the close.
Categories
Plans a multi-classroom series such as a seven-day course, clarifies the brief in rounds, gets sign-off on the full lesson list, then builds each stage in a shared folder. Used when a request calls for several classrooms that belong together: a short course, an onboarding track, a unit split into lessons, or a book turned into one lesson per chapter. A single stage, however large, is out of scope.
Curriculum Planner fits situations like: requests for a multi-lesson course, such as a seven-day Python primer; building a four-week onboarding track as a set of linked classrooms; turning a book into one lesson per chapter; planning a semester unit that spans several lessons.
Run `npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a claude-code`. Or copy the skill folder (skills/agent-runtime/curriculum-planner in THU-MAIC/OpenMAIC) into .claude/skills/curriculum-planner in your project. Claude Code loads it when a task matches its description.
Run `npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a codex`. Or copy the skill folder (skills/agent-runtime/curriculum-planner in THU-MAIC/OpenMAIC) into .agents/skills/curriculum-planner in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add THU-MAIC/OpenMAIC --skill curriculum-planner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/curriculum-planner, .gemini/skills/curriculum-planner, .github/skills/curriculum-planner and .opencode/skills/curriculum-planner in your project.
SKILL.md names no scripts, command-line tools or credentials: Curriculum Planner is instructions for the agent only. Our summary lists: The OpenMAIC classroom toolset (`create_stage`, `generate_scene`, `ask_user` and related tools).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Curriculum Planner is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Curriculum Planner: Teaching Resource Research Skill (mingchen666/Reviva, 244 stars), Worksheet Skill (mingchen666/Reviva, 244 stars), Competency Unpacker (GarethManning/education-agent-skills, 840 stars) and HTML Ppt Course Module (sanqiufong/slides-from-anything, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
THU-MAIC (a GitHub organization) maintains it in THU-MAIC/OpenMAIC, which has 40,274 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 10, 2026.
Source: THU-MAIC/OpenMAIC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.