course-generator
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCourse Generator
课程生成器
Convert course outlines into complete intelligent textbook courses.
将课程大纲转换为完整的智能教材课程。
Prerequisites
前置要求
Read the teaching philosophy context before generating any content:
/Users/vishal/admin/teaching-philosophy-context.md
This provides the pedagogical principles that guide all content generation.
在生成任何内容之前,请先阅读教学理念文档:
/Users/vishal/admin/teaching-philosophy-context.md
该文档提供了指导所有内容生成的教学原则。
Workflow
工作流程
Phase 0: Customization Questions
阶段0:自定义问题
Before generating, ask these questions to customize the output:
1. TARGET AUDIENCE
- Who is this course for? (students, professionals, self-learners)
- What's their background/prerequisite knowledge?
- Age/education level? (high school, college, graduate, professional)
2. FORMAT & DELIVERY
- Self-paced online textbook? Live cohort? Hybrid?
- Approximate total hours for completion?
- Any specific platform constraints? (Canvas, MkDocs, other)
3. DEPTH & SCOPE
- Full course or condensed version?
- Which topics to emphasize or skip?
- Include hands-on projects? What tools available?
4. ASSESSMENT STYLE
- Quiz-heavy or project-based?
- Include peer review components?
- Public presentation/portfolio requirements?Use AskUserQuestion tool with these as options, or gather through conversation.
生成之前,请询问以下问题以定制输出内容:
1. 目标受众
- 本课程面向哪些人群?(学生、专业人士、自学者)
- 他们的背景/前置知识是什么?
- 年龄/教育水平?(高中、大学、研究生、专业人士)
2. 格式与交付方式
- 自进度在线教材?直播 cohort?混合模式?
- 完成课程的大致总时长?
- 是否有特定平台限制?(Canvas、MkDocs、其他)
3. 深度与范围
- 完整课程还是精简版本?
- 需要重点强调或跳过哪些主题?
- 是否包含实操项目?可用哪些工具?
4. 评估风格
- 侧重测试题还是项目式评估?
- 是否包含同行评审环节?
- 是否要求公开演示/作品集?使用AskUserQuestion工具,将上述内容作为选项,或通过对话收集信息。
Phase 1: Parse & Analyze
阶段1:解析与分析
URL Parsing Strategy
URL解析策略
For simple/static pages (documentation sites, GitHub, simple HTML):
Use WebFetch to retrieve contentFor JS-heavy pages (Maven, Coursera, Udemy, course platforms):
Use Chrome browser automation:
1. mcp__claude-in-chrome__tabs_context_mcp (get/create tab)
2. mcp__claude-in-chrome__navigate to URL
3. mcp__claude-in-chrome__computer action=wait duration=3
4. mcp__claude-in-chrome__read_page to get accessibility tree
5. Click "expand" buttons for syllabus/curriculum sections
6. mcp__claude-in-chrome__get_page_text or screenshot as needed针对简单/静态页面(文档站点、GitHub、简单HTML):
使用WebFetch获取内容针对JS渲染页面(Maven、Coursera、Udemy、课程平台):
使用Chrome浏览器自动化:
1. mcp__claude-in-chrome__tabs_context_mcp(获取/创建标签页)
2. mcp__claude-in-chrome__navigate to URL
3. mcp__claude-in-chrome__computer action=wait duration=3
4. mcp__claude-in-chrome__read_page 获取无障碍树
5. 点击“展开”按钮以查看教学大纲/课程章节部分
6. 根据需要使用mcp__claude-in-chrome__get_page_text或截图Extract Key Elements
提取关键元素
- Course title and description
- Target audience and prerequisites
- Learning objectives (if stated)
- Topic list or module structure (expand collapsed sections!)
- Any existing assessments or projects
- 课程标题与描述
- 目标受众与前置要求
- 学习目标(若有说明)
- 主题列表或模块结构(展开折叠的章节!)
- 任何已有的评估或项目
Identify Course Level
确定课程级别
| Level | Glossary/Chapter | MicroSim Complexity |
|---|---|---|
| Junior high | ~10 terms | Simple, single-parameter |
| Senior high | ~15 terms | Moderate, 2-3 parameters |
| College | ~20 terms | Full treatment |
| Graduate | ~25 terms | Research connections |
| 级别 | 术语表/章节数量 | MicroSim复杂度 |
|---|---|---|
| 初中 | ~10个术语 | 简单,单参数 |
| 高中 | ~15个术语 | 中等,2-3个参数 |
| 大学 | ~20个术语 | 完整内容 |
| 研究生 | ~25个术语 | 关联研究内容 |
Parallel Subagent Execution
并行Subagent执行
Cost optimization: Use haiku for structured/repetitive tasks, sonnet for creative/complex tasks.
成本优化:使用haiku模型处理结构化/重复性任务,使用sonnet模型处理创意/复杂任务。
Phase 2-5: Launch Subagents in Parallel
阶段2-5:并行启动Subagent
After Phase 1 parsing and user approval of chapter structure, launch these subagents in parallel using a single message with multiple Task tool calls:
Task(subagent_type="general-purpose", model="haiku", prompt="[learning graph task]")
Task(subagent_type="general-purpose", model="haiku", prompt="[glossary task]")
Task(subagent_type="general-purpose", model="haiku", prompt="[quiz task]")
Task(subagent_type="general-purpose", model="sonnet", prompt="[chapter content task]")
Task(subagent_type="general-purpose", model="sonnet", prompt="[microsim spec task]")完成阶段1的解析并获得用户对章节结构的批准后,通过包含多个Task工具调用的单条消息并行启动以下Subagent:
Task(subagent_type="general-purpose", model="haiku", prompt="[learning graph task]")
Task(subagent_type="general-purpose", model="haiku", prompt="[glossary task]")
Task(subagent_type="general-purpose", model="haiku", prompt="[quiz task]")
Task(subagent_type="general-purpose", model="sonnet", prompt="[chapter content task]")
Task(subagent_type="general-purpose", model="sonnet", prompt="[microsim spec task]")Subagent Task Assignments
Subagent任务分配
Learning Graph Agent (haiku)
学习图谱Agent(haiku)
Generate a learning graph JSON for "[Course Name]".
Context: [paste parsed course outline]
REQUIREMENTS:
1. CONCEPT ENUMERATION (150-250 concepts)
- Each concept label: Title Case, max 32 characters
- Entity names only (not questions like "What is X")
- Cover full breadth of course material
2. TAXONOMY CATEGORIZATION
Assign each concept to exactly one category:
- FOUND: Foundation concepts with NO dependencies (entry points)
- BASIC: Build directly on foundations
- INTER: Intermediate, build on basics
- ADV: Advanced, build on intermediate
- APP: Application/synthesis of multiple concepts
3. DEPENDENCY MAPPING (DAG structure)
Critical validation rules:
- NO circular dependencies (A→B→C→A is invalid)
- NO self-dependencies (concept cannot depend on itself)
- FOUND concepts have empty dependencies array
- All other concepts have at least one dependency
- Prefer multiple learning pathways over linear chains
- Avoid long single-dependency chains (>5 concepts)
4. QUALITY METRICS TO ACHIEVE
- Foundational concepts (zero dependencies): 10-15% of total
- Orphaned nodes (nothing depends on them): <20% (except APP category)
- Average dependencies per concept: 1.5-3.0
- No disconnected subgraphs (all concepts reachable)
Output: learning-graph.json content only, valid JSON per schema为「[Course Name]」生成学习图谱JSON。
上下文:[粘贴解析后的课程大纲]
要求:
1. 概念枚举(150-250个概念)
- 每个概念标签:标题格式,最多32个字符
- 仅包含实体名称(不能是类似「什么是X」的问题)
- 覆盖课程内容的全部范围
2. 分类法归类
为每个概念分配唯一类别:
- FOUND:无依赖的基础概念(入门点)
- BASIC:直接基于基础概念构建
- INTER:中级,基于基础概念构建
- ADV:高级,基于中级概念构建
- APP:多概念的应用/综合
3. 依赖关系映射(DAG结构)
关键验证规则:
- 无循环依赖(A→B→C→A无效)
- 无自依赖(概念不能依赖自身)
- FOUND概念的依赖数组为空
- 所有其他概念至少有一个依赖
- 优先选择多条学习路径而非线性链
- 避免过长的单依赖链(超过5个概念)
4. 需达成的质量指标
- 基础概念(零依赖):占总数的10-15%
- 孤立节点(无其他概念依赖它):<20%(APP类别除外)
- 每个概念的平均依赖数:1.5-3.0
- 无不连通子图(所有概念均可访问)
输出:仅learning-graph.json内容,符合JSON schema的有效JSONGlossary Agent (haiku)
术语表Agent(haiku)
Generate glossary entries for "[Course Name]".
Concepts to define: [list from learning graph]
Course level: [junior-high/senior-high/college/graduate]
Terms per chapter target: [10/15/20/25 based on level]
ISO 11179 DEFINITION STANDARDS (mandatory):
Each definition must be:
1. PRECISE: Exact meaning, no ambiguity, specific to course context
2. CONCISE: 20-50 words target, as brief as possible while complete
3. DISTINCT: Differentiates from similar terms
4. NON-CIRCULAR: Never use the term being defined in its definition
5. NO BUSINESS RULES: Definition only, not how it's used
QUALITY RUBRIC (aim for 85+ per definition):
- Precision (25 pts): Accurately captures meaning
- Conciseness (25 pts): Within 20-50 words
- Distinctiveness (25 pts): Unique, not copied
- Non-circularity (25 pts): No self-reference or undefined terms
FORMAT:为「[Course Name]」生成术语表条目。
需定义的概念:[来自学习图谱的列表]
课程级别:[junior-high/senior-high/college/graduate]
每章目标术语数:[根据级别为10/15/20/25]
ISO 11179定义标准(强制要求):
每个定义必须:
1. 精确:含义准确,无歧义,符合课程上下文
2. 简洁:目标20-50词,在完整表达的前提下尽可能简短
3. 独特:与相似术语区分开
4. 无循环:定义中不得使用被定义的术语
5. 无业务规则:仅包含定义,不说明使用方法
质量评分标准(每个定义目标得分85+):
- 精确性(25分):准确捕捉含义
- 简洁性(25分):在20-50词范围内
- 独特性(25分):原创,非复制
- 无循环性(25分):无自引用或未定义术语
格式:[Term]
[术语]
[Definition in 1-2 sentences]
Example: [Concrete illustration from course domain]
REQUIREMENTS:
- Sort alphabetically (case-insensitive)
- 60-80% of terms should have examples
- Use simpler terms in definitions (avoid undefined jargon)
BAD: "A learning graph is a graph used for learning."
GOOD: "A directed graph of concepts showing prerequisite relationships for mastering a topic."
Output: glossary.md content only
undefined[1-2句话的定义]
示例: [来自课程领域的具体例证]
要求:
- 按字母顺序排序(不区分大小写)
- 60-80%的术语应包含示例
- 定义中使用更简单的术语(避免未定义的行话)
错误示例:「学习图谱是用于学习的图谱。」
正确示例:「展示掌握主题所需前置关系的概念有向图。」
输出:仅glossary.md内容
undefinedQuiz Agent (haiku)
测试题Agent(haiku)
Generate quiz questions for "[Course Name]" Chapter [N]: [Title].
Chapter type: [introductory/intermediate/advanced]
Concepts covered: [list from learning graph]
Learning objectives: [from chapter structure]
BLOOM'S TAXONOMY DISTRIBUTION (adjust by chapter type):
Introductory chapters:
- 40% Remember, 40% Understand, 15% Apply, 5% Analyze
Intermediate chapters:
- 25% Remember, 30% Understand, 30% Apply, 15% Analyze
Advanced chapters:
- 15% Remember, 20% Understand, 25% Apply, 25% Analyze, 10% Evaluate, 5% Create
QUESTION STEMS BY LEVEL:
- Remember: Define..., List..., What is..., Name...
- Understand: Explain..., Describe..., Why does..., Summarize...
- Apply: How would you use..., Calculate..., Demonstrate...
- Analyze: Compare..., What is the relationship..., Why might...
- Evaluate: Assess..., Which is better..., Justify...
- Create: Design..., Propose..., How might you...
ANSWER BALANCE (critical):
- Distribute correct answers: A=25%, B=25%, C=25%, D=25% (±5%)
- Avoid patterns (not A-B-A-B, not all C's in a row)
DISTRACTOR QUALITY:
- All wrong answers must be plausible (sound reasonable)
- Similar length to correct answer
- No "All of the above" or "None of the above"
- No jokes or obviously wrong options
- Address common misconceptions
FORMAT (mkdocs-material):为「[Course Name]」第[N]章:[标题]生成测试题。
章节类型:[introductory/intermediate/advanced]
涵盖的概念:[来自学习图谱的列表]
学习目标:[来自章节结构]
布鲁姆分类分布(根据章节类型调整):
入门章节:
- 40% 记忆,40% 理解,15% 应用,5% 分析
中级章节:
- 25% 记忆,30% 理解,30% 应用,15% 分析
高级章节:
- 15% 记忆,20% 理解,25% 应用,25% 分析,10% 评估,5% 创造
不同级别问题题干:
- 记忆:定义…,列出…,什么是…,名称…
- 理解:解释…,描述…,为什么…,总结…
- 应用:你会如何使用…,计算…,演示…
- 分析:比较…,…之间的关系是什么,为什么可能…
- 评估:评估…,哪个更好…,证明…
- 创造:设计…,提出…,你可能会如何…
答案平衡(关键):
- 正确答案分布:A=25%,B=25%,C=25%,D=25%(±5%)
- 避免模式(不要A-B-A-B,不要连续选C)
干扰项质量:
- 所有错误答案必须合理(听起来可信)
- 长度与正确答案相似
- 无「以上所有」或「以上都不是」
- 无玩笑或明显错误选项
- 针对常见误解
格式(mkdocs-material):1. [Question text]?
1. [问题文本]?
<div class="upper-alpha" markdown>
1. [Option A]
2. [Option B]
3. [Option C]
4. [Option D]
</div>
??? question "Show Answer"
The correct answer is [LETTER].
[Explanation 50-100 words: why correct, why others wrong]
**Concept:** [Concept name]Generate 8-12 questions per chapter.
Output: quiz.md content only
undefined<div class="upper-alpha" markdown>
1. [选项A]
2. [选项B]
3. [选项C]
4. [选项D]
</div>
??? question "显示答案"
正确答案是 [LETTER].
[50-100词的解释:为什么正确,其他选项错误的原因]
**概念:** [概念名称]每章生成8-12个问题。
输出:仅quiz.md内容
undefinedChapter Content Agent (sonnet)
章节内容Agent(sonnet)
Generate chapter content for "[Course Name]" Chapter [N]: [Title].
Learning objectives: [list with Bloom's verbs]
Concepts to cover: [from learning graph, in dependency order]
Target word count: 1500-2500 words
TEACHING PHILOSOPHY (apply throughout):
- Low floor, high ceiling: Accessible entry, unlimited depth
- Concrete before abstract: Examples and stories before theory
- Intrinsic motivation: Connect to real problems students care about
- Socratic coaching: Reflection questions, not just content delivery
REQUIRED STRUCTURE:为「[Course Name]」第[N]章:[标题]生成章节内容。
学习目标:[包含布鲁姆动词的列表]
需涵盖的概念:[来自学习图谱,按依赖顺序]
目标字数:1500-2500词
教学理念(全程应用):
- 低门槛,高上限:入门简单,深度无限制
- 先具体后抽象:先举例和讲故事,再讲理论
- 内在动机:连接学生关心的实际问题
- 苏格拉底式指导:反思问题,而非单纯内容传递
必填结构:Learning Objectives
学习目标
By the end of this chapter, you will be able to:
- [Bloom's verb] [specific outcome]
- [Bloom's verb] [specific outcome]
- [Bloom's verb] [specific outcome]
完成本章学习后,你将能够:
- [布鲁姆动词] [具体成果]
- [布鲁姆动词] [具体成果]
- [布鲁姆动词] [具体成果]
Introduction
引言
[Hook: Story, question, or real-world scenario that motivates the topic]
[Why this matters - connect to student's world]
[钩子:激发主题兴趣的故事、问题或真实场景]
[重要性说明 - 与学生的世界建立联系]
Section 1: [Foundation Concept]
第1节:[基础概念]
[Concrete example FIRST, then abstract principle]
[先给出具体示例,再讲抽象原则]
Key Idea
核心观点
[Core concept in 1-2 sentences]
[1-2句话的核心概念]
Example
示例
[Worked example with step-by-step explanation]
[带分步解释的实操示例]
Try It
试一试
[Low-stakes practice opportunity - something student can do now]
[低风险练习机会 - 学生现在可以完成的任务]
Section 2: [Building Concept]
第2节:[进阶概念]
[Build on Section 1, introduce complexity]
[基于第1节内容,引入复杂度]
Section 3: [Application]
第3节:[应用]
[Real-world use cases, synthesis]
[真实用例,综合应用]
Reflection Questions
反思问题
- [Socratic question prompting deeper thinking]
- [Question connecting to student's own experience]
- [Question about assumptions or limitations]
- [引导深度思考的苏格拉底式问题]
- [连接学生自身经验的问题]
- [关于假设或局限性的问题]
Summary
总结
- [3-5 bullet points of key takeaways]
- [3-5个要点总结]
Next Steps
下一步
[Preview next chapter, how concepts connect]
Output: index.md content only
undefined[预览下一章,说明概念之间的关联]
输出:仅index.md内容
undefinedMicroSim Spec Agent (sonnet)
MicroSim规格Agent(sonnet)
Generate MicroSim specifications for "[Course Name]" Chapter [N].
Concepts to visualize: [list abstract concepts that benefit from interactivity]
Course level: [junior-high/senior-high/college/graduate]
FOR EACH MICROSIM, SPECIFY:为「[Course Name]」第[N]章生成MicroSim规格。
需可视化的概念:[受益于交互性的抽象概念列表]
课程级别:[junior-high/senior-high/college/graduate]
每个MicroSim需指定:MicroSim: [Name]
MicroSim: [名称]
Concept Visualized
可视化的概念
- Concept: [From learning graph]
- Learning Goal: Students will understand [X] by manipulating [Y] and observing [Z]
- Difficulty: [Beginner/Intermediate/Advanced]
- 概念: [来自学习图谱]
- 学习目标: 学生将通过操作[Y]并观察[Z]来理解[X]
- 难度: [Beginner/Intermediate/Advanced]
Controls (Right Panel)
控件(右侧面板)
| Control | Type | Range | Default | Effect |
|---|---|---|---|---|
| [Name] | slider | [min]-[max] | [val] | [What changes] |
| [Name] | button | - | - | [What happens on click] |
| [Name] | dropdown | [options] | [val] | [What changes] |
| 控件 | 类型 | 范围 | 默认值 | 效果 |
|---|---|---|---|---|
| [名称] | slider | [min]-[max] | [val] | [变化内容] |
| [名称] | button | - | - | [点击后的效果] |
| [名称] | dropdown | [options] | [val] | [变化内容] |
Visualization (Left Panel)
可视化(左侧面板)
- What is drawn (shapes, graphs, animations)
- How it responds to control changes
- Color/size encoding (if any)
- Animation behavior
- 绘制内容(形状、图表、动画)
- 响应控件变化的方式
- 颜色/大小编码(若有)
- 动画行为
The "Aha" Moment
「顿悟」时刻
When the student [does specific action], they see [specific result],
which demonstrates [principle/insight].
当学生[执行特定操作]时,他们会看到[特定结果],
这展示了[原理/洞察]。
Technical Notes
技术说明
- Canvas: Responsive, min 400px width
- Frame rate: 30fps (or specify if different)
- Library: p5.js
- Mobile: Touch-friendly controls required
- Canvas:响应式,最小宽度400px
- 帧率:30fps(或指定其他值)
- 库:p5.js
- 移动端:需支持触控操作
Assessment Integration
评估集成
After using this MicroSim, students should be able to answer:
- [Quiz question this prepares them for]
- [Another related question]
COMPLEXITY BY LEVEL:
- Junior high: 1-2 controls, simple cause-effect
- Senior high: 2-3 controls, moderate relationships
- College: 3-4 controls, complex interactions
- Graduate: 4+ controls, research-level visualizations
Output: spec.md content for each MicroSim
undefined使用此MicroSim后,学生应能回答:
- [此MicroSim准备的测试题]
- [另一个相关问题]
按级别区分的复杂度:
- 初中:1-2个控件,简单因果关系
- 高中:2-3个控件,中等关系
- 大学:3-4个控件,复杂交互
- 研究生:4+个控件,研究级可视化
输出:每个MicroSim的spec.md内容
undefinedFAQ Agent (haiku)
FAQ Agent(haiku)
Generate FAQ for "[Course Name]".
Course description: [summary]
Target audience: [from customization]
Prerequisites: [list]
Chapter topics: [list]
Common misconceptions in this domain: [if known]
REQUIREMENTS:
Generate 15-25 questions across these categories:
1. CONCEPTUAL CLARIFICATIONS (30%)
- "What is the difference between X and Y?"
- "Why is X important in this field?"
- "How does X relate to Y?"
2. COMMON MISCONCEPTIONS (25%)
- "Is it true that X always causes Y?"
- "Why do people think X when actually Y?"
- Address errors students typically make
3. PRACTICAL APPLICATIONS (25%)
- "How do I apply X in real situations?"
- "When should I use X vs Y?"
- "What tools/resources help with X?"
4. PREREQUISITES & NEXT STEPS (20%)
- "What should I know before starting?"
- "What should I learn after this course?"
- "How does this connect to [related field]?"
ANSWER GUIDELINES:
- 2-4 sentences per answer (concise but complete)
- Reference specific chapter when helpful: "See Chapter 3 for details"
- Use concrete examples where possible
- Avoid jargon not defined in glossary
FORMAT:为「[Course Name]」生成FAQ。
课程描述:[摘要]
目标受众:[来自自定义设置]
前置要求:[列表]
章节主题:[列表]
该领域的常见误解:[若已知]
要求:
生成15-25个问题,涵盖以下类别:
1. 概念澄清(30%)
- 「X和Y的区别是什么?」
- 「X在该领域为什么重要?」
- 「X和Y有什么关系?」
2. 常见误解(25%)
- 「X总是导致Y是真的吗?」
- 「为什么人们认为X而实际是Y?」
- 解决学生常犯的错误
3. 实际应用(25%)
- 「我如何在实际场景中应用X?」
- 「我应该何时使用X而非Y?」
- 「哪些工具/资源有助于学习X?」
4. 前置要求与下一步(20%)
- 「开始前我应该了解什么?」
- 「完成本课程后我应该学习什么?」
- 「这与[相关领域]有什么联系?」
答案指南:
- 每个答案2-4句话(简洁但完整)
- 必要时参考具体章节:「详见第3章」
- 尽可能使用具体示例
- 避免使用术语表中未定义的行话
格式:[Category Name]
[类别名称]
Q: [Question]?
Q: [问题]?
[Answer in 2-4 sentences]
Output: faq.md content only
---[2-4句话的答案]
输出:仅faq.md内容
---Orchestration Flow
编排流程
┌─────────────────────────────────────────────────────────────┐
│ PHASE 1: Parse URL (main agent) │
│ - Use Chrome for JS-heavy pages │
│ - Extract course structure │
│ - Identify level │
└─────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ USER CHECKPOINT: Approve chapter structure │
└─────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ PHASE 2-5: Parallel Subagents (single message) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │Learning Graph│ │ Glossary │ │ Quizzes │ │
│ │ (haiku) │ │ (haiku) │ │ (haiku) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Chapters │ │ MicroSim Spec│ │ FAQ │ │
│ │ (sonnet) │ │ (sonnet) │ │ (haiku) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ PHASE 6: Assembly (main agent) │
│ - Compile outputs into course structure │
│ - Generate mkdocs.yml │
│ - Validate cross-references │
└─────────────────────────────────────────────────────────────┘┌─────────────────────────────────────────────────────────────┐
│ PHASE 1: 解析URL(主agent) │
│ - 针对JS渲染页面使用Chrome │
│ - 提取课程结构 │
│ - 确定级别 │
└─────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 用户检查点:批准章节结构 │
└─────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ PHASE 2-5: 并行Subagents(单条消息) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │Learning Graph│ │ Glossary │ │ Quizzes │ │
│ │ (haiku) │ │ (haiku) │ │ (haiku) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Chapters │ │ MicroSim Spec│ │ FAQ │ │
│ │ (sonnet) │ │ (sonnet) │ │ (haiku) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ PHASE 6: 组装(主agent) │
│ - 将输出内容编译为课程结构 │
│ - 生成mkdocs.yml │
│ - 验证交叉引用 │
└─────────────────────────────────────────────────────────────┘Output Structure
输出结构
course-name/
├── docs/
│ ├── index.md # Course home page
│ ├── course-description.md # Full course description
│ ├── chapters/
│ │ ├── 01-chapter-name/
│ │ │ ├── index.md # Chapter content
│ │ │ └── quiz.md # Chapter quiz
│ │ └── ...
│ ├── sims/
│ │ ├── sim-name/
│ │ │ ├── index.md # MicroSim documentation
│ │ │ └── spec.md # Implementation spec
│ │ └── ...
│ ├── learning-graph/
│ │ └── learning-graph.json # Concept dependency graph
│ ├── glossary.md # Master glossary
│ └── faq.md # FAQ
└── mkdocs.yml # MkDocs configurationcourse-name/
├── docs/
│ ├── index.md # 课程主页
│ ├── course-description.md # 完整课程描述
│ ├── chapters/
│ │ ├── 01-chapter-name/
│ │ │ ├── index.md # 章节内容
│ │ │ └── quiz.md # 章节测试题
│ │ └── ...
│ ├── sims/
│ │ ├── sim-name/
│ │ │ ├── index.md # MicroSim文档
│ │ │ └── spec.md # 实现规格
│ │ └── ...
│ ├── learning-graph/
│ │ └── learning-graph.json # 概念依赖图谱
│ ├── glossary.md # 总术语表
│ └── faq.md # FAQ
└── mkdocs.yml # MkDocs配置Phase 6: Assembly & Validation
阶段6:组装与验证
After subagents complete, validate and assemble outputs:
Subagent完成任务后,验证并组装输出内容:
Quality Checklist
质量检查清单
Learning Graph Validation
学习图谱验证
- Valid JSON (parse without errors)
- 150-250 concepts present
- No circular dependencies (DAG structure)
- Foundational concepts (zero deps): 10-15%
- All categories used (FOUND, BASIC, INTER, ADV, APP)
- No disconnected subgraphs
- 有效的JSON(解析无错误)
- 包含150-250个概念
- 无循环依赖(DAG结构)
- 基础概念(零依赖):10-15%
- 使用了所有类别(FOUND、BASIC、INTER、ADV、APP)
- 无不连通子图
Glossary Validation
术语表验证
- All terms from learning graph included
- Alphabetically sorted
- Definitions 20-50 words average
- 60%+ have examples
- No circular definitions (term used in own definition)
- 包含学习图谱中的所有术语
- 按字母顺序排序
- 定义平均20-50词
- 60%以上的术语有示例
- 无循环定义(定义中使用被定义的术语)
Quiz Validation
测试题验证
- 8-12 questions per chapter
- Answer distribution balanced (A/B/C/D within 20-30% each)
- Bloom's levels present (Remember, Understand, Apply, Analyze)
- All questions have explanations
- mkdocs format correct (upper-alpha div, question admonition)
- 每章8-12个问题
- 答案分布均衡(A/B/C/D在20-30%之间)
- 包含布鲁姆分类级别(记忆、理解、应用、分析)
- 所有问题均有解释
- mkdocs格式正确(upper-alpha div,question提示框)
Chapter Content Validation
章节内容验证
- 1500-2500 words per chapter
- Learning objectives present
- Hook/Introduction engaging
- Examples before abstract concepts
- "Try It" sections present
- Reflection questions (not just recall)
- 每章1500-2500词
- 包含学习目标
- 钩子/引言有吸引力
- 先举例后讲抽象概念
- 包含「试一试」环节
- 反思问题(不只是回忆)
Cross-Reference Validation
交叉引用验证
- Glossary terms align with learning graph concepts
- Quiz concepts reference learning graph
- Chapter sections cover assigned concepts
- MicroSims reference specific concepts
- 术语表术语与学习图谱概念一致
- 测试题概念引用学习图谱
- 章节内容覆盖指定概念
- MicroSim引用特定概念
Assembly Steps
组装步骤
- Create directory structure per Output Structure
- Write each file to appropriate location
- Generate mkdocs.yml with navigation
- Run to verify no broken links
mkdocs build - Report summary to user:
- Total concepts: X
- Total glossary terms: X
- Total quiz questions: X
- Chapters generated: X
- MicroSim specs: X
- 按照输出结构创建目录
- 将每个文件写入对应位置
- 生成带导航的mkdocs.yml
- 运行验证无断链
mkdocs build - 向用户报告摘要:
- 总概念数:X
- 总术语表术语数:X
- 总测试题数:X
- 生成的章节数:X
- MicroSim规格数:X
Key Principles (from Teaching Philosophy)
核心原则(来自教学理念)
Apply throughout generation:
- Low floor, high ceiling: Accessible entry points, unlimited depth
- Intrinsic motivation: Connect to real problems students care about
- Build → Present → Feedback → Iterate: Design projects with public output
- Socratic coaching: Include reflection questions, not just content
- Concrete before abstract: Stories and examples before theory
- Friction as signal: Include peer review, public presentation requirements
全程应用以下原则:
- 低门槛,高上限:入门简单,深度无限制
- 内在动机:连接学生关心的实际问题
- 构建→呈现→反馈→迭代:设计带有公开输出的项目
- 苏格拉底式指导:包含反思问题,而非单纯传递内容
- 先具体后抽象:先讲案例和故事,再讲理论
- 摩擦作为信号:包含同行评审、公开演示要求
Reference Files
参考文件
- Output Formats - JSON schemas and markdown templates for all artifacts
- Output Formats - 所有产物的JSON schema和markdown模板