# Textbook Exercises

> 生成带 Bloom 层级标注的成套习题时用它：示范例题（完整解题过程）、引导练习（带提示）、独立习题（附参考答案）三类，每道计算题的答案都真算核对过再输出。触发语如"出几道矩阵乘法的练习题"、"给这一章生成例题"。通常由 textbook-chapter 调用，也可单独运行。不适用于文科论述题（stem 学科档案未为其定义验证手段），也不负责组卷。需与 textbook 系列其余 skill 装在同一 skills 目录下。

- Skill: `cabbage2000-lab/textbook-exercises` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add cabbage2000-lab/textbook-exercises`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cabbage2000-lab/textbook-exercises/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cabbage2000-lab (https://skillmd.com/u/cabbage2000-lab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cabbage2000-lab/textbook-exercises

---


# textbook-exercises

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

## 何时不触发

- 题型在所用档案第 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，用户指定章号则从之。

## 生成流程（每道题走完 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 节）。
2. **同步写完整解答**：示范例题 = 逐步推导每步一行理由；引导练习 = 提示阶梯（提示 1 方向 → 提示 2 关键步骤）+ 完整解答；独立习题 = 参考答案或含关键中间结果的解题路径。禁止先攒题后补答案。
3. **验证（红线，不可省略）**：到**档案第 2 节**查该题型的「验证手段」列，照它执行；执行不了时照同一行的「无法验证时的降级」列处理，不自行发明第三种做法。两条与学科无关的硬纪律：

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

## 输出

- 按契约逐题给出 `{编号, 类型, 题干, 解答或提示, Bloom层级, 验证状态}`；
- 正文格式遵循 exercise-design.md 第 6 节（编号规则 `例 N-M` / `习题 N-M`，引导练习计入"例"序列加后缀），文体附加条款按档案第 4 节；
- **验证过程逐题附上**（放在该题"验证"行后的代码块中，每题都要有）：能用代码复算的，附**这道题自己的、复制即可运行**的代码——不写"多题共用一个外部脚本 + 逐题只附调用命令"，因为章文件里没有安放共享脚本的位置，脚本落在章外读者就复核不了；靠核验依据完成的附核验记录（详见 exercise-design.md 第 3 节末）；
- 术语用词严格对照传入的术语表；独立触发时保持自拟术语的内部一致。

## 纪律（违反任何一条即返工）

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

