textbook-chapter
按大纲切片与 UbD 锚点写一章教材正文时用它:固定四段式结构——概念讲解 → 示范例题 → 引导练习 → 独立习题。触发语如"写第三章"、"按大纲写这一章"。通常由 textbook…
写一整本多章节教材或成体系的课程讲义(含习题)时用它:按 UbD 逆向设计调度五个阶段——教学定位 → UbD 预期结果(gate)→ 章节树(gate)→ 逐章写作 → 审核定稿;进度落盘 .progress.json,中断后可从断点续写。触发语如"写教材"、"写一本教材"、"编写课程讲义"、"系统教材"、"textbook"。只写单篇教程、只写一章(用 textbook-chapter)、只出习题(用 textbook-exercises)时不要用它。需与
$ npx -y skills add cabbage2000-lab/textbook-writer-skills --skill textbook --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/textbookContext preview
The summary Claude sees to decide when to auto-load this skill.
写一整本多章节教材或成体系的课程讲义(含习题)时用它:按 UbD 逆向设计调度五个阶段——教学定位 → UbD 预期结果(gate)→ 章节树(gate)→ 逐章写作 → 审核定稿;进度落盘 .progress.json,中断后可从断点续写。触发语如"写教材"、"写一本教材"、"编写课程讲义"、"系统教材"、"textbook"。只写单篇教程、只写一章(用 textbook-chapter)、只出习题(用 textbook-exercises)时不要用它。需与
name: textbook description: 写一整本多章节教材或成体系的课程讲义(含习题)时用它:按 UbD 逆向设计调度五个阶段——教学定位 → UbD 预期结果(gate)→ 章节树(gate)→ 逐章写作 → 审核定稿;进度落盘 .progress.json,中断后可从断点续写。触发语如"写教材"、"写一本教材"、"编写课程讲义"、"系统教材"、"textbook"。只写单篇教程、只写一章(用 textbook-chapter)、只出习题(用 textbook-exercises)时不要用它。需与 textbook-outline、textbook-chapter、textbook-exercises 装在同一 skills 目录下。 slug: textbook displayName: 教材写作流水线 version: 0.6.2 summary: UbD 逆向设计驱动的多章节教材写作主流程——五阶段调度、阶段 2/3 双 gate 作者确认、.progress.json 中断可续。需与 textbook-outline、textbook-chapter、textbook-exercises 装在同一 skills 目录下。
写教材的主 skill(orchestrator):驱动五阶段流程,管理 `.progress.json` 状态实现中断可续,在阶段间传递交接契约,最终交付一本有主线、有梯度、可评估的多章节 Markdown 教材。契约、落盘布局、状态机的权威定义见 [references/handoff-contract.md](references/handoff-contract.md)(下称"契约文档")。
学科差异(题型集、验证手段、认知动词、章内段义)不在本 skill 里分支,收拢在**学科档案**中:阶段 1 判定一次,落盘为 `.progress.json` 的 `subject_profile`,逐章原样透传。规格与索引见 [references/subject-profile-spec.md](references/subject-profile-spec.md)。
| 阶段 | 名称 | 执行者 | 产出 | Gate? | | ------ | ------ | -------- | ------ | ------- | | 1 | 教学定位确认 | textbook-outline | 学科/读者起点/深度/篇幅 → 00-教材设计.md | 否(一轮提问) | | 2 | UbD 预期结果设计 | textbook-outline | UbD 五件套 | **是(核心 gate)** | | 3 | 评估与章节设计 | textbook-outline | 章节树+例题计划+梯度报告+表现性任务 | 是(次要 gate) | | 4 | 章节正文编写 | textbook-chapter(逐章) | NN-章.md × N + 术语表增量 | 否 | | 5 | 审核定稿 | 本 skill | 自检报告 + 00-前言.md + 99-表现性任务.md + 交付摘要 | 否 |
gate 之外的阶段只打印一行进度(格式见契约文档第 5 节),不打断作者。
1. **确定教材项目目录**:用户指定则用之;未指定则询问一次(默认 `./<教材名>/`)。 2. **找 `.progress.json`**:
3. **状态纪律**:`.progress.json` 只由本 skill 读写(子 skill 一律不碰);每完成一个阶段、每完成一章**立即更新写盘**,绝不批量延迟。
打印 `▶ 阶段 1/5:教学定位确认`(阶段 2、3 进入时同格式)。
使用 Skill 工具调用 `textbook-outline`(传入 `{教材项目目录, 教材名}`);若 Skill 工具不可用或未注册,直接读取 [../textbook-outline/SKILL.md](../textbook-outline/SKILL.md) 并严格遵循其指令执行。
打印 `▶ 阶段 4/5:章节正文编写`。
对 章号 N 从 `chapters.next` 到 `chapters.total` 逐章执行(严格顺序,前章完成才写后章):
1. **提取该章大纲切片**:从 `00-教材设计.md` 的「## 三、章节树与梯度规划(已确认)」取该章的章节树条目 + 例题习题计划;再按该条目的 `承载的学习目标编号[]` 到「## 二」逐条取出**学习目标原文**(含 Bloom 标注)一并放进切片——**只取该章那几条**,不把全书目标清单塞进去; 2. **读跨章载体**:术语表.md 当前版 + 前一章文件的「## 本章小结」全节(N=1 时前章小结为空); 3. **组装输入契约调用 textbook-chapter**:`{章号, 章标题, 该章大纲切片, UbD五件套, 术语表, 前章小结, 学科档案, 答案排版}`(五件套从「## 二、UbD 五件套(已确认)」提取 `{大概念[], 持久理解[], 核心问题[]}`;学科档案取 `.progress.json` 的 `subject_profile`、答案排版取 `answer_layout`,均原样透传,不重新判定)。调用方式同上:Skill 工具优先,降级读 [../textbook-chapter/SKILL.md](../textbook-chapter/SKILL.md); 4. **收输出契约** `{章文件路径, 新增术语[], 新增符号[], Bloom标注回写[], 本章独立习题答案[]}`:新增术语追加进术语表.md 的「## 术语」节、**新增符号追加进「## 符号约定」节**(术语表.md 不存在则先建,两节标题都写上,即使某节暂时为空——节标题是逐章追加的落点,缺标题下一章就没处可追);追加符号前先比对已登记条目:**同一含义已用别的符号登记过**,说明本章与前章不一致,退回该章统一符号后再追加(这正是符号表要存在的理由);Bloom 标注回写记入 `00-教材设计.md` 该章例题习题计划条目旁的"实际"标注(与"计划"并排,供阶段 5 对比);**本章独立习题答案追加进 `98-参考答案.md`**(`answer_layout=separate` 时;文件不存在则先建,含首行说明"建议先独立完成习题再对照",每章一个 `## 第 N 章 <章标题>` 小节,结构见契约文档 3.1 节)——追加前先数一遍:条目数与章内独立习题数不等、或题号对不上,**当场退回该章重做**,不许带着缺口往下写; 5. **更新状态**:`chapters.done` 加入 N、`chapters.next=N+1`,写盘 `.progress.json`。
全部章完成后置 `current_stage=5`,写盘。任何一章中途中断,重入时从 `chapters.next` 无缝继续,已完成章不重写。
打印 `▶ 阶段 5/5:审核定稿`。逐项检查并输出报告,每项给出:通过/不通过 + 具体位置 + 修改建议。
1. **章节对齐走查**:逐章读「## 本章小结」的"与持久理解的呼应",对照 `00-教材设计.md` 的承载计划——每章至少承载一条持久理解,每条持久理解至少被一章实际承载; 2. **Bloom 梯度复核(看实际不看计划)**:用各章"实际"标注重算层级×章节矩阵,按 [../textbook-outline/references/bloom-levels.md](../textbook-outline/references/bloom-levels.md) 第 5 节三条规则复核,输出第 6 节格式的报告; 3. **术语与符号一致性**:对照术语表.md 抽查各章(每章至少查引言与小结两处)用词是否一致,发现不一致列出位置;**符号另查两件**——各章正文与题目里出现的符号是否都在「## 符号约定」节登记(漏登记的补登)、同一含义是否全书只用一个符号(一义两符的列出两处位置,由作者定统一用哪个)。学科不使用形式符号时,确认该节写着「本书不使用形式符号」而非空表; 4. **例题验证残留与答案落位对账**:搜索范围为全部章文件 **加 `98-参考答案.md`**,三件事一起查——
5. **循序渐进走查**:逐章检查引言是否衔接前章小结、是否使用了后文才定义的概念(前置知识跳跃); 6. **学习目标覆盖矩阵(三列对账)**:对照 `00-教材设计.md`「## 二」的学习目标清单,输出「学习目标 × 章」矩阵,每条目标查三件——
三列任一为空的逐条列出,并给可操作建议("建议在第 N 章补 X 层级题目"/"第 N 章章首漏了这一条,补写")。**动机**:ubd-framework.md 2.5 节要求每条学习目标"能想象出一道题来检验它",设计时查了、交付时不查等于只查一半;上面第 2 项统计的是层级分布,看不出哪条目标没人管。加设计侧与读者侧两列的理由是同一条目标可以在三个环节各自掉队——设计文档里有、章节树没认领;认领了、章首没写;章首写了、没有题检验——只查最后一环,前两种漏法会一路漏到读者手上; 7. **表现性任务复核与落盘**:核对「## 四、表现性任务」——每条迁移目标至少被一个任务覆盖、每个任务附评价标准表(维度从持久理解或迁移目标推出,每格为可观察的表现描述);核对通过后从「## 四」派生生成 `99-表现性任务.md`(学生可读版:任务说明 + 评价标准表,去掉迁移目标编号一类设计元信息;写法见 [../textbook-outline/references/performance-task-rubric.md](../textbook-o
Textbook-Writer-Skills 是一套装进编程智能体(Claude Code / Codex / 国内 WorkBuddy)的教材写作 skill 组合。它把成熟的教学设计方法装进 AI 的工作流:先想清楚「学生学完该带走什么」,再倒推章节和习题,一章一章写出有主线、有梯度、题目答案可信的成体系教材——中途断了随时续写。当前 v0.6.2:5 个 skill(1 个主调度 + 3 个流水线子 skill + 1 个独立辅助)覆盖从工作目录规划到审核定稿的五阶段全流程,理科、人文社科与经济学都能写。
按大纲切片与 UbD 锚点写一章教材正文时用它:固定四段式结构——概念讲解 → 示范例题 → 引导练习 → 独立习题。触发语如"写第三章"、"按大纲写这一章"。通常由 textbook…
生成带 Bloom 层级标注的成套习题时用它:示范例题(完整解题过程)、引导练习(带提示)、独立习题(附参考答案)三类,每道计算题的答案都真算核对过再输出。触发语如"出几道矩阵乘法的练习题"、"给这一章生成例题"。通常由 textbook-chapter 调用,也可单独运行。不适用于文科论述题(stem…
动笔写教材前要先规划并创建工作目录时用它:规划单本教材项目目录或多教材工作区,可选 git 版本管理与 README 工作说明,建好后把产出交接给…
教材项目要做教学设计时用它:产出教学定位、UbD 预期结果五件套(大概念 / 持久理解 / 核心问题 / 迁移目标 / 学习目标)、章节树与例题 Bloom 梯度规划,写入 00-教材设计.md。触发语如"设计教材大纲"、"教材规划"、"课程体系设计"。通常由 textbook…