← ClaudeAtlas

textbooklisted

Use when the user wants to write a complete multi-chapter textbook or systematic course material with exercises — e.g. "写教材"、"写一本教材"、"编写课程讲义"、"系统教材"、"textbook". Orchestrates a five-stage UbD-driven pipeline (教学定位 → UbD 预期结果 gate → 章节树 gate → 逐章写作 → 审核定稿) with resumable progress via .progress.json. Not for single tutorials (use tutorial-writer), single chapters (use textbook-chapter), or exercise-only requests (use textbook-exercises).
cabbage2000-lab/textbook-writer-skills · ★ 9 · Data & Documents · score 77
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 工具不可用或未注册,直接