---
name: Textbook Exercises
slug: textbook-exercises
category: AI Engineering
description: "Generates three types of STEM exercises (worked examples, guided practice, independent exercises) with Bloom's taxonomy levels, and verifies every computational answer before output to ensure accuracy."
github: "https://github.com/cabbage2000-lab/textbook-writer-skills/tree/main/skills/textbook-exercises"
language: Python
stars: 19
forks: 4
install: "npx degit https://github.com/cabbage2000-lab/textbook-writer-skills/tree/main/skills/textbook-exercises ~/.claude/skills/textbook-exercises"
installs_to: ~/.claude/skills/textbook-exercises
source_path: skills/textbook-exercises/SKILL.md
collection_size: 5
category_size: 2451
collection_url: "https://dirskills.com/collections/cabbage2000-lab/textbook-writer-skills"
added: 2026-08-11T07:22:35.023Z
last_synced: 2026-08-11T07:22:35.023Z
canonical_url: "https://dirskills.com/skills/textbook-exercises"
---

# Textbook Exercises

Generates three types of STEM exercises (worked examples, guided practice, independent exercises) with Bloom's taxonomy levels, and verifies every computational answer before output to ensure accuracy.

**Install:**

```bash
npx degit https://github.com/cabbage2000-lab/textbook-writer-skills/tree/main/skills/textbook-exercises ~/.claude/skills/textbook-exercises
```

## README

# 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 条）；
- 出题偏离题目计划的主题或层级时，须在输出中注明偏离原因（如"该主题在应用层无自然题型，改为分析层"），由调用方决定是否接受。
