mcpField
Q
quiz-generator

quiz-generator

github.com/dmccreary其他109168 次安装1 天前更新
代码仓库

关于 quiz-generator

quiz-generator 是面向智能教材的技能,可根据章节内容生成选择题、质量报告并更新 mkdocs.yml 导航。它结合学习图概念、Bloom 分类和干扰项分析,适用于教材作者及课程编写者。

主要功能

  1. 01按章节生成选择题
  2. 02依据 Bloom 分类分配题目
  3. 03分析干扰项质量
  4. 04生成 Markdown 质量报告
  5. 05更新 mkdocs.yml 导航

适用场景

  1. 01为新编教材章节创建测验
  2. 02内容修订后更新题目
  3. 03为整本教材建立题库

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dmccreary/ibook-skills --skill quiz-generator

安装后在 Claude Code 中输入/quiz-generator确认已加载。

附带文件README.mdreferences/distractor-writing-guide.md

详细介绍

智能教材测验生成器

版本: 0.5

概述

  1. 为每个 Markdown 章节生成互动式选择题测验,并进行优质干扰项分析。
  2. 以 Markdown 格式生成质量报告。
  3. 更新 mkdocs.yml 导航,以包含测验和报告。

用途

此技能通过分析章节内容,生成与上下文相关的选择题,自动为智能教材创建测验。每份测验都与学习图谱中的特定概念对应,覆盖布鲁姆分类法的不同认知层次,并采用 mkdocs-material 的问题提示框格式,选项标签使用大写字母(A、B、C、D)。此技能可确保干扰项质量、答案分布均衡,并提供全面的解析,以提升教育价值。

何时使用此技能

在以下情况下使用此技能:

  1. 章节内容已生成或撰写完成(每章 1000 个以上单词)
  2. 学习图谱已建立并包含概念依赖关系
  3. 术语表可用(建议用于术语类问题)

在以下情况下启动此技能:

  • 为新章节创建测验
  • 内容修订后更新测验
  • 为整本教材建立完整的测验题库
  • 导出测验数据,以便集成到 LMS 或聊天机器人中

Token 效率:仅限串行执行

!!! warning "除非用户明确要求,否则绝不使用并行 Agent" 始终使用单个串行 Agent 生成测验。 这是硬性要求, 而非建议。不要将并行执行作为可选方案。

每个启动的 Agent 都会产生约 12,000 个 Token 的启动开销(系统提示词、 工具架构、项目上下文)。并行执行会成倍增加这类开销, 却不会带来任何质量提升。一次涵盖 17 个章节的测验生成中测得的数据:

方式系统开销Token 总数浪费
串行(1 个 Agent)~12,000~310,000—
并行(4 个 Agent)~48,000~358,000+48,000(13%)

生产环境中还观察到并行执行的其他问题:

  1. 行为不一致: 各 Agent 独立选择不同策略, 导致相同工作量的工具调用次数相差 5 倍(8 次对 39 次)
  2. 文件编辑冲突: 多个 Agent 同时修改 mkdocs.yml 会导致不一致,需要人工修复
  3. 无法共享学习成果: 每个 Agent 都从头开始,无法利用 早期章节积累的上下文

此技能支持两种模式:

  • 串行模式(默认且始终使用):一个 Agent 按顺序处理所有章节
  • 单章节模式:为某个特定章节生成测验

工作流

阶段 1:设置(按顺序执行)

此阶段在生成测验前运行一次,用于读取共享上下文。

步骤 1.1:记录开始时间
date "+%Y-%m-%d %H:%M:%S"

记录会话报告的开始时间。

步骤 1.2:说明技能正在运行

通知用户:“Quiz Generator Skill v0.5 正在以串行模式运行。”

步骤 1.3:读取共享上下文

为所有 Agent 读取并缓存以下文件:

  1. 课程说明(docs/course-description.md)

    • 提取目标受众和阅读水平
    • 记录布鲁姆分类法的学习成果
  2. 学习图谱(docs/learning-graph/learning-graph.csv 或类似文件)

    • 加载包含依赖关系的概念列表
    • 计算概念中心性,以便确定优先级
  3. 术语表(docs/glossary.md)

    • 加载术语定义,用于术语类问题
    • 记录哪些概念包含术语表条目
  4. 章节列表(扫描 docs/chapters/ 目录)

    • 列出所有章节目录
    • 统计每章的字数,用于就绪情况评估
步骤 1.4:评估内容就绪情况

为每个目标章节计算内容就绪分数(1-100):

质量检查:

1. 章节字数:
  • 2000 个以上单词 = 优秀(20 分)
  • 1000-1999 个单词 = 良好(15 分)
  • 500-999 个单词 = 基本(10 分)
  • 少于 500 个单词 = 不足(5 分)
2. 示例覆盖率:
  • 60% 以上的概念有示例 = 优秀(20 分)
  • 40-59% = 良好(15 分)
  • 20-39% = 基础(10 分)
  • <20% = 不足(5 分)
3. 术语表覆盖率:
  • 80% 以上的章节概念有定义 = 优秀(20 分)
  • 60-79% = 良好(15 分)
  • 40-59% = 基础(10 分)
  • <40% = 不足(5 分)
4. 概念清晰度:
  • 所有概念都有清晰的解释(20 分)
  • 大多数概念清晰(15 分)
  • 部分概念不清晰(10 分)
  • 许多概念不清晰(5 分)
5. 与学习图谱的一致性:
  • 所有章节概念都已映射(20 分)
  • 大多数已映射(15 分)
  • 部分已映射(10 分)
  • 少数已映射(5 分)

内容就绪度范围:

  • 90-100:内容丰富,可生成优质测验
  • 70-89:内容良好,可生成不错的测验
  • 50-69:内容基础,可生成的测验有限
  • 低于 50:内容不足以生成优质测验

用户对话触发条件:

  • 分数 < 60:询问“第 [X] 章内容有限([N] 个词)。要生成较短的测验,还是跳过?”
  • 没有术语表:询问“未找到术语表。定义类问题将受限。是否继续?”
  • 概念缺漏:询问“本章有 [N] 个概念不在学习图谱中。是否继续使用现有概念?”
  • 没有学习成果:询问“课程描述中没有布鲁姆分类法学习成果。是否使用默认分布?”
阶段 2:测验生成(串行)

启动一个 Agent,按顺序处理所有章节。Agent 逐章阅读内容、生成 10 道题,并在处理下一章之前写入测验文件。这样只需支付一次约 12K 的系统提示词开销。

Agent 提示词模板:

You are generating quizzes for an intelligent textbook. Generate quizzes for
ALL of the following chapters, processing them one at a time.

COURSE CONTEXT:
- Course: [course name]
- Target audience: [audience]
- Reading level: [level]

BLOOM'S TAXONOMY TARGETS:
- Introductory chapters (1-3): 40% Remember, 40% Understand, 15% Apply, 5% Analyze
- Intermediate chapters (4-N): 25% Remember, 30% Understand, 30% Apply, 15% Analyze
- Advanced chapters: 15% Remember, 20% Understand, 25% Apply, 25% Analyze, 10% Evaluate, 5% Create

CHAPTERS TO PROCESS:
[List ALL chapter directories with full paths]

FOR EACH CHAPTER:
1. Read the chapter content at the index.md file
2. Identify the key concepts covered in that chapter
3. Generate exactly 10 questions following the format below
4. Ensure answer balance: A (2-3), B (2-3), C (2-3), D (2-3)
5. Write the quiz to docs/chapters/[chapter-dir]/quiz.md

QUIZ FORMAT - Each question MUST follow this exact format:

#### [N]. [Question text ending with ?]

<div class="upper-alpha" markdown>
1. [Option A text]
2. [Option B text]
3. [Option C text]
4. [Option D text]
</div>

??? question "Show Answer"
    The correct answer is **[LETTER]**. [Explanation 50-100 words]

    **Concept Tested:** [Concept Name]

---

QUIZ FILE STRUCTURE:
# Quiz: [Chapter Title]

Test your understanding of [topic] with these review questions.

---

[Questions 1-10 following the format above]

REPORT when done:
- Chapter name
- Number of questions
- Bloom's distribution (R:#, U:#, Ap:#, An:#)
- Answer distribution (A:#, B:#, C:#, D:#)
阶段 2 步骤(逐章处理)
步骤 2:确定目标分布

根据章节类型(入门、中级、高级),设定布鲁姆分类法的目标分布:

入门章节(通常为第 1-3 章):

  • 40% 记忆
  • 40% 理解
  • 15% 应用
  • 5% 分析
  • 0% 评价
  • 0% 创造

中级章节:

  • 25% 记忆
  • 30% 理解
  • 30% 应用
  • 15% 分析
  • 0% 评价
  • 0% 创造

高级章节:

  • 15% 记忆
  • 20% 理解
  • 25% 应用
  • 25% 分析
  • 10% 评价
  • 5% 创造

根据以下因素确定章节类型:

  • 在教材中的位置(前 3 章 = 入门)
  • 概念在学习图谱中的中心性(中心性高 = 高级)
  • 章节元数据中的明确标记
  • 用户指定

目标题目数量:每章 8-12 题(默认:10 题)

步骤 3:确定要测试的概念

分析章节内容和学习图谱,确定概念的优先级:

优先级 1(必须测试):

  • 学习图谱中中心性高的概念
  • 在章节标题或引言中提及的概念
  • 有专门章节介绍的概念
  • 以粗体强调或链接到术语表的关键术语

优先级 2(应当测试):

  • 有大量解释的辅助概念
  • 有示例的概念
  • 本章复习的先决概念
  • 来自学习目标的概念

优先级 3(可以测试):

  • 简要提及的外围概念
  • 用于提供背景的相关概念
  • 预览的后续主题

目标是覆盖 80% 以上的优先级 1 概念。

第 4 步:按布鲁姆分类法层级生成问题

对于每个选定用于测试的概念,按照目标分布生成相应布鲁姆分类法层级的问题。如需了解各层级的行动动词和问题编写指南,请阅读权威参考 $BK_HOME/skills/chapter-content-generator/references/blooms-taxonomy.md。

重要格式要求:

所有问题都必须使用 mkdocs-material 问题提示框格式,并采用大写字母列表样式:

#### 1. What is the primary purpose of a learning graph?

<div class="upper-alpha" markdown>
1. To create visual decorations for textbooks
2. To map prerequisite relationships between concepts
3. To generate random quiz questions
4. To organize files in a directory structure
</div>

??? question "Show Answer"
    The correct answer is **B**. A learning graph is a directed graph that maps prerequisite relationships between concepts, showing which concepts must be learned before others. This ensures proper scaffolding in educational content.

    **Concept Tested:** Learning Graph

    **See:** [Learning Graph Concept](../concepts/learning-graph.md)

格式规则:

  1. 使用四级标题(####),并注明问题编号
  2. 将问题写成完整句子,并以 ? 结尾
  3. 使用 <div class="upper-alpha" markdown> 包装
  4. 将 4 个答案选项写成编号列表(1、2、3、4)
  5. 使用 ??? question "Show Answer" 提示框
  6. 答案内容缩进 4 个空格
  7. 以“The correct answer is [LETTER].”开头
  8. 包含概念名称,并链接到来源
  9. 确保 div 前后都有空行

问题编写指南:

记忆层级:

  • 询问术语表中的定义
  • 测试事实回忆能力
  • 识别术语
  • 示例:“[concept] 的定义是什么?”

理解层级:

  • 询问解释
  • 测试对概念间关系的理解
  • 比较或对比概念
  • 示例:“以下哪项最能描述 [A] 和 [B] 之间的关系?”

应用层级:

  • 提供需要应用概念的场景
  • 测试运用所学方法解决问题的能力
  • 示例:“给定 [scenario],你会采用哪种方法?”

分析层级:

  • 询问如何识别模式或原因
  • 测试拆解概念的能力
  • 示例:“[phenomenon] 的根本原因是什么?”

评价层级:

  • 询问基于标准作出的判断
  • 测试批判性思维
  • 示例:“为了实现 [goal],哪种方法最有效?”

创造层级:

  • 询问如何设计解决方案
  • 测试综合运用概念的能力
  • 示例:“你会如何设计一个满足 [requirements] 的 [system]?”
第 5 步:编写优质干扰项

对于每个错误答案选项(干扰项),确保其符合以下要求:

合理性:

  • 对尚未学习材料的人来说听起来合理
  • 使用相关术语
  • 避免明显错误的答案
  • 与正确答案的长度相近

教育价值:

  • 涵盖常见误解
  • 测试对相关概念的理解
  • 区分不同知识水平
  • 不要设置陷阱题或文字游戏

常见干扰项类型:

  • 部分正确(在不同情境下正确)
  • 反转(与正确答案相反)
  • 类似术语(相关但不同的概念)
  • 常见错误(学生常犯的错误)

避免:

  • “以上皆是”或“以上皆非”
  • 笑话或无意义的选项
  • 语法不一致的选项
  • 相互重叠或可能同时正确的答案
第 6 步:编写解释

针对每个问题,编写的解释应:

确认正确答案:

  • 明确写出:“The correct answer is [LETTER].”
  • 解释该答案正确的原因
  • 引用章节内容或概念定义
  • 目标长度:50–100 个英文单词

讲解内容(可选,但建议包含):

  • 简要解释干扰项错误的原因
  • 澄清常见误解
  • 提供额外背景信息
  • 链接到章节中更详细的部分

解释示例:

The correct answer is **B**. A learning graph is a directed graph that maps
prerequisite relationships between concepts. Option A is incorrect because
learning graphs serve a structural purpose, not decorative. Option C is
incorrect because quiz generation is not the primary purpose. Option D
confuses learning graphs with file systems.

**Concept Tested:** Learning Graph

**See:** [Learning Graph Concept](../concepts/learning-graph.md#definition)
第 7 步:确保答案分布均衡

检查正确答案是否在 A、B、C、D 之间均匀分布:

目标分布:

  • A:25%(±5%)
  • B:25%(±5%)
  • C:25%(±5%)
  • D:25%(±5%)

避免以下模式:

  • 连续多个 C
  • A-B-A-B 交替出现
  • 可预测的序列
  • 位置偏差(总是第一个或最后一个答案正确)

随机化策略:

  • 编写测验前先生成随机序列
  • 为每个问题随机排列选项
  • 完成后检查分布
  • 如果分布不均衡,则进行调整
步骤 8:创建测验文件

按正确结构生成测验文件:

独立测验文件(docs/chapters/[chapter-name]/quiz.md):

# Quiz: [Chapter Name]

Test your understanding of [chapter topic] with these questions.

---

#### 1. [Question text]?

<div class="upper-alpha" markdown>
1. [Option 1]
2. [Option 2]
3. [Option 3]
4. [Option 4]
</div>

??? question "Show Answer"
    The correct answer is **[LETTER]**. [Explanation]

    **Concept Tested:** [Concept Name]

---

#### 2. [Question text]?

[Continue for all questions...]

格式要求:

  • 在题目之间使用水平分隔线(---)
  • 按顺序为题目编号(1、2、3……)
  • 保持间距一致
  • 确保所有 Markdown 均能正确渲染
阶段 3:汇总

串行 Agent 完成后,收集其结果:

  • 已创建的测验文件列表
  • 各章节统计信息(题目数量、布鲁姆分类法分布、答案分布)
  • 遇到的错误或问题
步骤 10:生成元数据文件(可选)

为每个章节创建 docs/learning-graph/quizzes/[chapter-name]-quiz-metadata.json:

{
  "chapter": "Chapter Name",
  "chapter_file": "docs/chapters/chapter-name/index.md",
  "quiz_file": "docs/chapters/chapter-name/quiz.md",
  "generated_date": "YYYY-MM-DD",
  "total_questions": 10,
  "content_readiness_score": 85,
  "overall_quality_score": 78,
  "questions": [
    {
      "id": "ch1-q001",
      "number": 1,
      "question_text": "What is the primary purpose of a learning graph?",
      "correct_answer": "B",
      "bloom_level": "Understand",
      "difficulty": "medium",
      "concept_tested": "Learning Graph",
      "source_link": "../concepts/learning-graph.md",
      "distractor_quality": 0.85,
      "explanation_word_count": 67
    }
  ],
  "answer_distribution": {
    "A": 2,
    "B": 3,
    "C": 3,
    "D": 2
  },
  "bloom_distribution": {
    "Remember": 2,
    "Understand": 4,
    "Apply": 3,
    "Analyze": 1,
    "Evaluate": 0,
    "Create": 0
  },
  "concept_coverage": {
    "total_concepts": 12,
    "tested_concepts": 10,
    "coverage_percentage": 83
  }
}
步骤 11:生成测验题库(汇总)

使用所有题目创建或更新 docs/learning-graph/quiz-bank.json:

{
  "textbook_title": "Building Intelligent Textbooks",
  "generated_date": "YYYY-MM-DD",
  "total_chapters": 20,
  "total_questions": 187,
  "questions": [
    {
      "id": "ch1-q001",
      "chapter": "Introduction to Learning Graphs",
      "question_text": "What is the primary purpose of a learning graph?",
      "options": {
        "A": "To create visual decorations for textbooks",
        "B": "To map prerequisite relationships between concepts",
        "C": "To generate random quiz questions",
        "D": "To organize files in a directory structure"
      },
      "correct_answer": "B",
      "explanation": "A learning graph is a directed graph...",
      "bloom_level": "Understand",
      "difficulty": "medium",
      "concept": "Learning Graph",
      "chapter_file": "docs/concepts/learning-graph.md",
      "source_section": "#definition",
      "tags": ["graph", "prerequisites", "scaffolding"]
    }
  ]
}

测验题库的使用场景:

  • 导出到 LMS(Moodle、Canvas、Blackboard XML)
  • 随机生成测验(选择部分题目)
  • 创建测验的替代版本
  • 集成到聊天机器人(练习题)
  • 集成到学习应用
步骤 12:生成质量报告

创建 docs/learning-graph/quiz-generation-report.md:

# Quiz Generation Quality Report

Generated: YYYY-MM-DD
Execution Mode: Serial (1 agent)
Wall-clock Time: X minutes Y seconds

## Overall Statistics

- **Total Chapters:** 20
- **Total Questions:** 187
- **Avg Questions per Chapter:** 9.4
- **Overall Quality Score:** 76/100

## Per-Chapter Summary

| Chapter | Questions | Quality Score | Bloom's Score | Coverage |
|---------|-----------|---------------|---------------|----------|
| Ch 1: Introduction | 10 | 82/100 | 24/25 | 83% |
| Ch 2: Learning Graphs | 12 | 78/100 | 22/25 | 90% |
| ... | ... | ... | ... | ... |

## Bloom's Taxonomy Distribution (Overall)

| Level | Actual | Target | Deviation |
|-------|--------|--------|-----------|
| Remember | 22% | 25% | -3% ✓ |
| Understand | 28% | 30% | -2% ✓ |
| Apply | 27% | 25% | +2% ✓ |
| Analyze | 18% | 15% | +3% ✓ |
| Evaluate | 4% | 4% | 0% ✓ |
| Create | 1% | 1% | 0% ✓ |

**Bloom's Distribution Score:** 24/25 (excellent)

## Answer Balance (Overall)

- A: 24% (45/187)
- B: 26% (49/187)
- C: 25% (47/187)
- D: 25% (46/187)

**Answer Balance Score:** 15/15 (perfect distribution)

## Recommendations

[Include recommendations based on aggregated data]
步骤 13:验证质量

对所有生成的测验进行全面验证:

1. 无歧义:

  • 每道题都只有一个站得住脚的正确答案
  • 题干清晰、完整
  • 无语法错误

2. 干扰项质量:

  • 所有错误答案都合理可信
  • 干扰项考查理解,而非仅靠猜测
  • 长度和语法结构相近
  • 答案之间无重叠

3. 语法与清晰度:

  • 全文采用专业写法
  • 动词时态一致
  • 标点使用正确
  • 无拼写错误

4. 答案分布:

  • 正确答案分布在 A、B、C、D 选项中
  • 每个选项占比在 20%–30% 之间(目标:25%)
  • 不存在可预测的模式

5. 布鲁姆分类法分布:

  • 符合章节类型的目标分布
  • 在 ±15% 范围内可接受
  • 测验难度逐步递增

6. 概念覆盖:

  • 测试了 75% 以上的主要概念
  • 重要概念有多道题目
  • 不会过度测试琐碎概念

7. 无重复题目:

  • 所有测验中的题目各不相同
  • 无近似重复题目(相似度 >80%)

8. 解析质量:

  • 每道题都有解析
  • 解析能帮助学习,而非仅确认答案
  • 目标长度为 50–100 个单词
  • 引用章节中的相关部分

9. 链接验证:

  • 所有源链接都指向现有内容
  • 适当使用章节锚点
  • 链接均能正确渲染
  • 不要在无法正常工作的 quiz.md 文件中放置链接
  • 不要使用指向不存在章节的链接标签

10. 偏见检查:

  • 无文化偏见
  • 无性别偏见
  • 不预设读者的背景
  • 使用易于理解的语言

成功标准:

  • 总体质量评分 >70/100
  • 每章 8–12 道题
  • 布鲁姆分类法分布与目标相差不超过 ±15%
  • 概念覆盖率达到 75% 以上
  • 每个选项的答案占比在 20%–30% 之间
  • 100% 的题目都有解析
  • 无重复题目
  • 所有链接均有效
步骤 14:更新站点导航

在 mkdocs.yml 的每个章节下嵌套一个 Quiz: 条目,并在 Learning Graph: 下添加 Quiz Generation Report:。遵循 $BK_HOME/skills/book-installer/references/mkdocs-nav-editing.md 中的规范导航编辑规则—— 尤其要注意:先读后写;为许多章节并行生成测验时,串行执行导航编辑 (在最后一次编辑中应用所有导航更改);将章节页面标记为 Content:,且标签中绝不能出现 "Chapter":

    - 1. Introduction to AI and Intelligent Textbooks:
      - Content: chapters/01-intro-ai-intelligent-textbooks/index.md
      - Quiz: chapters/01-intro-ai-intelligent-textbooks/quiz.md
步骤 15:记录结束时间并写入会话日志

记录结束时间:

date "+%Y-%m-%d %H:%M:%S"

将会话信息导出到 logs/quiz-generator-YYYY-MM-DD.md:

# Quiz Generator Session Log

**Skill Version:** 0.4
**Date:** YYYY-MM-DD
**Execution Mode:** Serial (1 agent)

## Timing

| Metric | Value |
|--------|-------|
| Start Time | YYYY-MM-DD HH:MM:SS |
| End Time | YYYY-MM-DD HH:MM:SS |
| Elapsed Time | X minutes Y seconds |

## Token Usage

| Phase | Estimated Tokens |
|-------|------------------|
| Setup (shared context) | ~15,000 |
| Serial agent (all chapters) | ~295,000 |
| Aggregation + nav update | ~5,000 |
| **Total** | ~315,000 |

## Results

- Total chapters: N
- Total questions: N × 10
- Quality score: XX/100
- All quizzes written successfully: Yes/No

## Files Created

[List all quiz.md files and report files]
步骤 16:通知用户

通知用户:

“Quiz Generator v0.5 已完成!

  • 模式: 串行(1 个 Agent)
  • 耗时: X 分钟 Y 秒
  • 已处理章节: 23
  • 已生成问题: 230
  • 质量评分: 82/100

mkdocs.yml 中的站点导航已更新,为每个章节添加了 Content/Quiz 链接,并在 learning-graph 部分添加了测验生成报告。

会话记录已保存至 logs/quiz-generator-YYYY-MM-DD.md”

问题格式参考

包含所有要素的完整示例
#### 3. Given a course with 50 concepts, what is the most important factor in organizing the learning graph?

<div class="upper-alpha" markdown>
1. Alphabetical order of concept names
2. Prerequisite relationships between concepts
3. The length of concept definitions
4. The visual appearance of the graph diagram
</div>

??? question "Show Answer"
    The correct answer is **B**. Prerequisite relationships are the most important factor because they determine the order in which concepts must be learned. A learning graph maps these dependencies to ensure students learn foundational concepts before advanced ones. Alphabetical order (A) and visual appearance (D) are organizational preferences, not educational requirements. Definition length (C) does not affect concept sequencing.

    **Concept Tested:** Learning Graph Structure

    **See:** [Learning Graph](../concepts/learning-graph.md#prerequisites)
格式检查清单
  • 带有问题编号的四级标题
  • 以 ? 结尾的完整句子
  • <div class="upper-alpha" markdown> 包装标签
  • 选项使用编号列表(1、2、3、4)
  • 闭合 </div> 标签
  • ??? question "Show Answer" 提示块
  • 答案块缩进 4 个空格
  • “正确答案是 [LETTER]。”陈述
  • 解释(50-100 个单词)
  • Concept Tested: 标签
  • 带有正确路径的 See: 链接
  • div 前后留空行

需要避免的常见问题

格式错误:

  • ❌ 忘记 <div class="upper-alpha" markdown> 包装标签
  • ❌ 列表使用字母(A、B、C、D),而非数字
  • ❌ 答案块缩进不正确
  • ❌ 缺少闭合 </div> 标签

问题质量:

  • ❌ 有多个正确答案的模糊问题
  • ❌“以上皆是”或“以上皆非”选项
  • ❌ 陷阱题或文字游戏
  • ❌ 考查琐碎事实的问题

干扰项质量:

  • ❌ 明显错误的答案
  • ❌ 玩笑选项或无意义选项
  • ❌ 干扰项比正确答案长或短很多
  • ❌ 选项相互重叠或矛盾

解释质量:

  • ❌ 只是重复问题
  • ❌ 没有教学价值
  • ❌ 缺少链接或链接失效
  • ❌ 过短(少于 30 个单词)或过长(超过 150 个单词)

Token 效率:

  • ❌ 使用并行 Agent(每个额外 Agent 的系统提示词开销会浪费约 12K 个 token)
  • ❌ 在单个串行 Agent 可以生成相同输出时启动多个 Agent
  • ❌ 用户未明确要求时,将并行执行作为选项提出

输出文件汇总

必需(每个章节):

  1. 测验 Markdown 文件:docs/chapters/[chapter-name]/quiz.md

建议(汇总): 2. docs/learning-graph/quiz-generation-report.md - 质量指标 3. logs/quiz-generator-YYYY-MM-DD.md - 含耗时信息的会话记录

可选: 4. docs/learning-graph/quiz-bank.json - 全部问题数据库 5. docs/learning-graph/quizzes/[chapter-name]-quiz-metadata.json - 每个章节的元数据 6. 更新 mkdocs.yml 中的导航

示例会话

所有章节(默认串行模式)

用户:“为所有章节生成测验”

Claude(使用此技能):

  1. 记录开始时间
  2. 通知:“Quiz Generator Skill v0.5 正以串行模式运行。”
  3. 读取共享上下文(课程说明、学习图谱、术语表)
  4. 扫描章节目录,找到 23 个章节
  5. 评估内容准备情况(所有章节均超过 2000 个单词)
  6. 启动一个串行 Agent,依次处理全部 23 个章节
  7. Agent 阅读每个章节,生成 10 个问题,写入 quiz.md,然后继续处理下一个章节
  8. 收集该 Agent 的结果
  9. 生成质量报告(评分:82/100)
  10. 更新 mkdocs.yml 导航
  11. 记录结束时间
  12. 写入会话记录
  13. 报告:“Quiz Generator v0.5 已完成!模式:串行。耗时:33 分钟。问题:230 个。质量:82/100。”
单章模式

User:“仅针对第 3 章生成测验”

Claude(使用此技能):

  1. 评估第 3 章内容的就绪情况(得分:82/100)
  2. 确定章节类型:中级
  3. 设定目标分布:25% 记忆、30% 理解、30% 应用、15% 分析
  4. 确定 12 个待测试概念(10 个优先级为 1,2 个优先级为 2)
  5. 使用问题提示格式生成 10 道题
  6. 创建高质量的干扰项
  7. 确保答案分布均衡(A:2,B:3,C:3,D:2)
  8. 编写解析,未经核实则不添加链接
  9. 将测验写入 docs/chapters/03-chapter-name/quiz.md
  10. 报告:“已为第 3 章创建包含 10 道题的测验。质量得分:78/100。”

评论

支持 Markdown