textbooklisted
Install: claude install-skill cabbage2000-lab/textbook-writer-skills
# textbook
写教材的主 skill(orchestrator):驱动五阶段流程,管理 `.progress.json` 状态实现中断可续,在阶段间传递交接契约,最终交付一本有主线、有梯度、可评估的多章节 Markdown 教材。契约、落盘布局、状态机的权威定义见 [references/handoff-contract.md](references/handoff-contract.md)(下称"契约文档")。
## 何时不触发
- 单篇教程/图文教程(用 tutorial-writer)
- 只写一章或一篇深度文章(��� textbook-chapter)
- 只要例题/习题(用 textbook-exercises)
- 只做大纲不写正文(直接用 textbook-outline)
## 工作流总览
| 阶段 | 名称 | 执行者 | 产出 | Gate? |
| ------ | ------ | -------- | ------ | ------- |
| 1 | 教学定位确认 | textbook-outline | 学科/读者起点/深度/篇幅 → 00-教材设计.md | 否(一轮提问) |
| 2 | UbD 预期结果设计 | textbook-outline | UbD 五件套 | **是(核心 gate)** |
| 3 | 评估与章节设计 | textbook-outline | 章节树+例题计划+梯度报告+表现性任务 | 是(次要 gate) |
| 4 | 章节正文编写 | textbook-chapter(逐章) | NN-章.md × N + 术语表增量 | 否 |
| 5 | 审核定稿 | 本 skill | 自检报告 + 交付摘要 | 否 |
gate 之外的阶段只打印一行进度(格式见契约文档第 5 节),不打断作者。
## 启动与重入(每次触发的第一件事)
1. **确定教材项目目录**:用户指定则用之;未指定则询问一次(默认 `./<教材名>/`)。
2. **找 `.progress.json`**:
- 不存在 → 全新项目:确认教材名 → 建目录 → 初始化 `.progress.json`(schema 见契约文档第 4 节,`current_stage=1`,gates 全 false)→ 从阶段 1 开始;
- 存在 → 按契约文档第 4 节**重入规则表**定位续点,打印续写行:阶段 4 用 `▶ 续写:<教材名>,从第 N 章继续`,其余阶段用 `▶ 续写:<教材名>,从阶段 N 继续`。特别地:`current_stage=2/3` 且对应 gate 未确认时,从 `00-教材设计.md` 读出已有产出(阶段 2 为五件套、阶段 3 为章节树/例题习题计划/梯度报告/表现性任务四项)**重新呈现并等确认**,不推倒重做;作者提出修改时委托 textbook-outline 执行修改与再确认循环。
3. **状态纪律**:`.progress.json` 只由本 skill 读写(子 skill 一律不碰);每完成一个阶段、每完成一章**立即更新写盘**,绝不批量延迟。
## 阶段 1–3:委托 textbook-outline
打印 `▶ 阶段 1/5:教学定位确认`(阶段 2、3 进入时同格式)。
使用 Skill 工具调用 `textbook-outline`(传入 `{教材项目目录, 教材名}`);若 Skill 工具不可用或未注册,直接