textbook-exercises · v0.7.0 · 2026-10-19 · sha256 66ab0ec07075d89a

textbook-exercises v0.7.0A

Immutable. This exact content never changes and is served at /api/v1/blob/66ab0ec07075d89a.

---
name: textbook-exercises
description: 生成带 Bloom 层级标注的成套习题时用它,可依据已有 Word 文档、教材、讲义或笔记出题:示范例题(完整解题过程)、引导练习(带提示)、独立习题(附参考答案)三类,答案按学科档案逐题验证。触发语如"根据这份讲义出题"、"给这一章生成例题"。通常由 textbook-chapter 调用,也可单独运行。不适用于档案没有验证手段的题型,也不负责组卷。需与 textbook 系列其余 skill 装在同一 skills 目录下。
slug: textbook-exercises
displayName: 教材写作·习题生成
version: 0.7.0
summary: 生成示范例题、引导练习、独立习题三类题并逐题验证答案(stem 学科档案下为真算复核),每题带 Bloom 层级标注。需与 textbook 系列其余 skill 同级安装。
---

# textbook-exercises

生成三类题(示范例题/引导练习/独立习题),每道题带 Bloom 层级标注,**每道题的答案都经过验证才输出**。学科无关的设计与验证纪律见 [references/exercise-design.md](references/exercise-design.md);本次出题的**题型集与每型的验证手段**取自输入契约 `学科档案` 指定的档案第 2 节(规格与索引见 [../textbook/references/subject-profile-spec.md](../textbook/references/subject-profile-spec.md))。

作者提供现有材料时,按 [../textbook/references/source-material-workflow.md](../textbook/references/source-material-workflow.md) 第 3 节从指定片段出题;材料中的现成答案只作为待核对象,不能代替本 skill 的验证。

## 何时不触发

- 题型在所用档案第 2 节里没有对应验证手段的(如 `stem` 档案下的文科论述题、案例分析题)——按 exercise-design.md 第 7 节反模式 5 处理:改出档案内最接近的题型(`stem` 档案下改概念辨析题)并在输出中说明替换
- 组卷/试卷排版(本 skill 只产题目内容)
- 与教材无关的一般性问答

## 两种调用模式

- **被 textbook-chapter 调用**(常规):输入 = 契约 `{章上下文, 题目计划, 术语表, 学科档案, 素材片段[]}`(字段定义见 [../textbook/references/handoff-contract.md](../textbook/references/handoff-contract.md) 第 2 节)。按题目计划逐条生成,不多不少;无素材时传空数组。
- **独立触发**:一轮问清 `{主题, 读者水平, 三类题各要几道, 期望 Bloom 层级分布}`(用户已说明的不重复问);按主题自行判定学科档案(索引见 subject-profile-spec.md 第 5 节,找不到匹配项按该文档第 7 节处理:说明将按最接近的档案处理并指出差异),并在输出开头说明用了哪份档案;术语自拟并保持内部一致;编号中的章号默认取 1,用户指定章号则从之。

  独立素材出题时直接读取用户已给的可访问材料,只追问缺失的素材位置或确实影响出题的条件。先给每份材料编来源 ID,再按来源段落提取 `素材片段[]`;输出题目时沿用同一 ID 和原文位置。无法访问原文时不装作已读。可指定“仅基于素材”,此时题面内容不得超出材料覆盖范围,覆盖不足就说明可出的题量或层级限制。

## 生成流程(每道题走完 1–4 才算完成一道)

1. **设计题面**:题型从档案第 2 节的题型集里选(表外的题型不出,见"何时不触发"),支撑纪律按 [references/exercise-design.md](references/exercise-design.md) 第 4 节,具体教学动作按档案第 4 节;对照题目计划的主题与 Bloom 层级,层级判定标准查 [../textbook-outline/references/bloom-levels.md](../textbook-outline/references/bloom-levels.md) 第 4 节(同题多问取最高层,歧义就低不就高;六层对照标尺在档案第 3 节)。
   素材模式下,涉及特定引文、案例或统计数值的题干附素材 ID 与原文位置,题目能回指到实际读过的片段;素材不足时不虚构细节。
2. **同步写完整解答**:示范例题 = 逐步推导每步一行理由;引导练习 = 提示阶梯(提示 1 方向 → 提示 2 关键步骤)+ 完整解答;独立习题 = 参考答案或含关键中间结果的解题路径。禁止先攒题后补答案。
3. **验证(红线,不可省略)**:到**档案第 2 节**查该题型的「验证手段」列,照它执行;执行不了时照同一行的「无法验证时的降级」列处理,不自行发明第三种做法。两条与学科无关的硬纪律:

   - 验证必须走**与解答不同的路径**——沿同一条路径重走一遍,重复的是同一个错误,等于没验证;
   - 档案里每型的「验证手段」列都非空,即**没有任何题型可以跳过验证**(spec 第 2 节)。
4. **处理验证结果**:核对一致 → 标 `✅ 已验证(<方式>)`;不一致 → 修题或修解答后重新验证;**连续 2 次验证失败 → 弃题换题**。手段与降级路径都走不通(如开放性探究题)→ 标 `⚠️ 需作者确认(<原因>)`,绝不假装已验证。

## 输出

- 按契约逐题给出 `{编号, 类型, 题干, 解答或提示, Bloom层级, 验证状态, 素材依据[]}`;素材依据逐条标来源 ID 与原文位置,未用素材的题为空数组;
- 正文格式遵循 exercise-design.md 第 6 节(编号规则 `例 N-M` / `习题 N-M`,引导练习计入"例"序列加后缀),文体附加条款按档案第 4 节;
- **验证过程逐题附上**(放在该题"验证"行后的代码块中,每题都要有):能用代码复算的,附**这道题自己的、复制即可运行**的代码——不写"多题共用一个外部脚本 + 逐题只附调用命令",因为章文件里没有安放共享脚本的位置,脚本落在章外读者就复核不了;靠核验依据完成的附核验记录(详见 exercise-design.md 第 3 节末);
- 交付前逐个检查公式:行内只用 `$...$`、行间只用 `$$...$$`,搜一遍输出,不得残留 `\(`、`\)`、`\[`、`\]` 或 math 代码块;公式内若出现中文字符或中文标点(包括 `\text{给出的结果}`),把说明移到公式外正文,公式只留符号与运算。这些都是 writing-style.md 第 13 节的排版硬约束;
- 术语用词严格对照传入的术语表;独立触发时保持自拟术语的内部一致。

## 纪律(违反任何一条即返工)

- 绝不输出未验证的答案——"应该没错"不是验证;
- 开放题给参考要点并标注"开放题",不编造标准答案;
- 每题必有 Bloom 标注**与验证状态行**,漏任一即不完整——不需要算的题同样要标,方式取档案第 2 节该题型的「验证手段」列(`stem` 档案:概念/记忆理解类写 `✅ 已验证(核对定义来源:…)`,开放题写 `⚠️ 需作者确认(开放题,不设标准答案)`);交付前数一遍,题目数必须等于验证行数;
- "留给读者作为练习"式悬空 = 违规(exercise-design.md 第 3 节第 6 条);
- 出题偏离题目计划的主题或层级时,须在输出中注明偏离原因(如"该主题在应用层无自然题型,改为分析层"),由调用方决定是否接受。