Competency Unpacker
GarethManning/education-agent-skills
Unpack a broad standard or competency descriptor into specific, assessable success criteria and sub-skills.
Baseline procedure for building one new classroom stage: settle the page plan with you, create the stage, write the roster, then generate each page in order.
$ npx skills add THU-MAIC/OpenMAIC --skill stage-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install THU-MAIC/OpenMAIC stage-design --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/stage-design .claude/skills/stage-design && 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 "stage-design" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/stage-design into .claude/skills/stage-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stage-design", 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/stage-designType 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 stage-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install THU-MAIC/OpenMAIC stage-design --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/stage-design .agents/skills/stage-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "stage-design" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/stage-design into .agents/skills/stage-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stage-design", 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 stage-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install THU-MAIC/OpenMAIC stage-design --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/stage-design .cursor/skills/stage-design && 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 "stage-design" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/stage-design into .cursor/skills/stage-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stage-design", 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/stage-design--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 stage-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install THU-MAIC/OpenMAIC stage-design --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/stage-design .gemini/skills/stage-design && 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 "stage-design" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/stage-design into .gemini/skills/stage-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stage-design", 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 stage-designInstalls 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 stage-design -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/stage-design .github/skills/stage-design && 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 "stage-design" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/stage-design into .github/skills/stage-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stage-design", 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 stage-design -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 stage-design --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/stage-design .opencode/skills/stage-design && 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 "stage-design" agent skill from https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/stage-design into .opencode/skills/stage-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stage-design", 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.
stage-designBaseline procedure for building one new classroom stage: settle the page plan with you, create the stage, write the roster, then generate each page in order.
A stage is one classroom with one agreed plan, one roster and one deck of pages. The skill covers only building a new stage that has no saved pages yet; a stage that already has pages is edited with a different skill. The agent proposes a page plan itself, giving each page a title, a type of slide, quiz, interactive or pbl, and a brief of its teaching intent, then settles it with you through `ask_user` before creating anything.
Next come `create_stage` and `set_roster`, which must happen before any page exists. The roster has exactly one teacher and at least two agents in total, each with a concrete persona and a voice taken from `list_voices` or from `register_voice`. Then `generate_scene` runs once per page in ascending order. Topic skills may shape the contents, but this sequence stays the same under all of them. The description adds rules on re-synthesizing narration and on what must hold before a stage counts as done.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6a84dbe. 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.
Classroom Stage Design Method loads about 1.4k tokens when it runs. Until then it costs about 120 tokens; SKILL.md has 821 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 6a84dbe, republished under its MIT licence (© THU-MAIC). 821 words, ~1,410 tokens.
.claude/skills/stage-design/SKILL.md (or your agent's skills folder).A stage is one classroom: one settled plan, one roster, one deck of pages. This is how a stage is built here, whatever its subject.
A topic skill (deep-interactive, vocational, deep-research,
teacher-style-clone, …) may shape what the stage contains — its structure, its
page types, how scenes are named — and where one is active its instructions win
on those questions. The sequence below is not one of those questions: it is the
same under every topic skill. Read this one first, then the topic skill.
Nothing here applies to a stage that already has pages. A stage with persisted
pages is edited, not built (see pro-editing).
Build a NEW stage only when there are no persisted pages yet. Then, in this order:
title, type (slide / quiz / interactive /
pbl) and brief (this page's teaching intent and content outline, the
same information a planned outline slot used to carry) — in page order.
Settle the plan with the user through ask_user before creating anything:
there is no outline tool to plan with, so the plan is your words and their
sign-off. A topic skill's structural constraints are a diagnostic the
runtime checks against the real stage after each page; you decide how to
act on it.create_stage with the settled course title (pass the series folder's
folderId when the stage is part of a series, so it is filed in the same
call). From here on, pass the returned stageId to every stage tool.set_roster, before any page is generated. Write the classroom the
user settled: exactly one teacher, at least two agents in total, each with
a concrete persona (2-3 sentences on personality and teaching/learning
style, in the stage language) and a voice — call list_voices first and
bind one of the returned providerId::voiceId pairs, or the exact pair
register_voice returned for a cloned voice; omit the binding when no
usable voice exists. Every page's content
and narration is written for the roster that exists when the page is
generated, so a roster settled late is a roster half the stage never saw.generate_scene for EACH settled page, in ascending order — one
page per call, never more. Pass the page's settled title, type and
brief (plus materialFacts when the page's content comes from attached
material); no planned outline is needed. A pbl page is generated the same
way and lands as a full PBL project (projectV2) from its brief; a failed
generation reports an error and writes nothing. Each call is the durable
checkpoint for its page: the page survives an interruption only once the
call has returned.list_scenes to verify every page you settled is actually persisted.None of the planning steps is a place to stop: a turn ends when a page actually
landed, when ask_user is waiting on the user, or when the stage is done by the
check below. Reporting what you have planned, imported or confirmed leaves the
user holding an empty deck.
generate_scene failsTrack generation attempts by stageId + order. Changing the title or brief,
or generating another page in between, does not reset the attempt.
prompt-unavailable or another deterministic failure, do not repeat the
same call.invalid-model-output, change the brief without changing the settled
teaching intent, then retry once. Retry once for a clearly transient provider
failure too.generate_scene again for that target during
this run. Leave the page unwritten, continue with later pages in the same
stage, and name the gap when wrapping up. Do not call ask_user after every
failed page or silently drop the page from the settled plan.Use list_scenes to reconcile persisted pages with the settled plan. A stage
with a missing page can be wrapped up after later pages are built, but it is not
done; name each gap and its latest failure instead of claiming completion.
When a page's narration is written or reworded with patch_stage on an
/actions/... JSON Pointer, call generate_tts on that page. A reworded speech line has
no audio until the page is re-synthesized, so narration text that was changed
and not re-synthesized ships as a silent page.
Every settled page has to be persisted — a stage is done when the deck is complete, not when it is planned or half built.
Every speech action must have audio. read_stage each page at
path:/scenes/<order|id> with detail:"source", check the
audioId field on its speech actions, and call generate_tts on any page that
is missing it. Read what those actions say while you are there: narration that
talks about material this stage does not teach is a defect, whatever its audio
status. Only then is the stage finished.
When every settled page is persisted, say so to the user in one or two sentences.
© 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/stage-design of THU-MAIC/OpenMAIC.
Open the folder on GitHubat commit 6a84dbe
Classroom Stage Design Method 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 |
|---|---|---|---|---|---|---|
| Classroom Stage Design Method this skillTHU-MAIC/OpenMAIC | 40k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Competency UnpackerGarethManning/education-agent-skills | 837 | — | ~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 | |
| AI Engineering Placement Quizrohitg00/ai-engineering-from-scratch | 66k | — | ~2k | Automated safety check: Pass | MIT | |
| AnythingAtlasLiuziyu77/AnythingAtlas | 195 | — | ~3.6k | Automated safety check: Pass | Apache-2.0 |
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.
rohitg00/ai-engineering-from-scratch
Runs a 10-question quiz across five areas to place a learner in the AI Engineering from Scratch curriculum, so they skip what they already know.
Liuziyu77/AnythingAtlas
Researches an unfamiliar topic and delivers a verified resource guide and a staged, timed learning roadmap as matching Markdown and HTML files.
FlorianBruniaux/claude-code-ultimate-guide
Runs an interactive quiz in a quick or comprehensive mode, scores your skill level by topic and generates a personalized learning path with practice projects.
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 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.
Categories
Baseline procedure for building one new classroom stage: settle the page plan with you, create the stage, write the roster, then generate each page in order. A stage is one classroom with one agreed plan, one roster and one deck of pages. The skill covers only building a new stage that has no saved pages yet; a stage that already has pages is edited with a different skill.
Classroom Stage Design Method fits situations like: building a brand-new classroom stage from scratch; rebuilding a stage that has no saved pages; writing a classroom roster with a teacher and learner personas.
Run `npx skills add THU-MAIC/OpenMAIC --skill stage-design -a claude-code`. Or copy the skill folder (skills/agent-runtime/stage-design in THU-MAIC/OpenMAIC) into .claude/skills/stage-design in your project. Claude Code loads it when a task matches its description.
Run `npx skills add THU-MAIC/OpenMAIC --skill stage-design -a codex`. Or copy the skill folder (skills/agent-runtime/stage-design in THU-MAIC/OpenMAIC) into .agents/skills/stage-design 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 stage-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/stage-design, .gemini/skills/stage-design, .github/skills/stage-design and .opencode/skills/stage-design in your project.
SKILL.md names no scripts, command-line tools or credentials: Classroom Stage Design Method is instructions for the agent only. Our summary lists: The classroom runtime tools such as `create_stage`, `set_roster` and `generate_scene`.
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.
Classroom Stage Design Method is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.6k 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 Classroom Stage Design Method: Competency Unpacker (GarethManning/education-agent-skills, 837 stars), HTML Ppt Course Module (sanqiufong/slides-from-anything, 132 stars), Course Builder (revfactory/harness-100, 1.3k stars) and AI Engineering Placement Quiz (rohitg00/ai-engineering-from-scratch, 66k 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,213 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 9, 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.