{"slug":"textbook-init","title":"textbook-init","summary":"动笔写教材前要先规划并创建工作目录时用它：规划单本教材项目目录或多教材工作区，可选 git 版本管理与 README 工作说明，建好后把产出交接给 textbook。触发语如\"初始化教材项目\"、\"创建教材工作目录\"、\"规划教材工作区\"、\"建一个写教材的目录\"。只搭目录骨架，不创建流水线文件（.progress.json、00-教材设计.md、术语表.md）。写正文用 textbook（不经 init 它也会自建默认目录），续写已有项目直接用 textbook。需与 textbook 系列其余 skill 装在同一 skills 目录下。","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-02T16:12:15.702382Z","repo":{"url":"https://github.com/cabbage2000-lab/textbook-writer-skills","stars":31,"forks":7,"license":"MIT","updatedAt":"2026-09-02T11:29:20Z"},"bodyHtml":"<hr>\n<h2>name: textbook-init\ndescription: 动笔写教材前要先规划并创建工作目录时用它：规划单本教材项目目录或多教材工作区，可选 git 版本管理与 README 工作说明，建好后把产出交接给 textbook。触发语如\"初始化教材项目\"、\"创建教材工作目录\"、\"规划教材工作区\"、\"建一个写教材的目录\"。只搭目录骨架，不创建流水线文件（.progress.json、00-教材设计.md、术语表.md）。写正文用 textbook（不经 init 它也会自建默认目录），续写已有项目直接用 textbook。需与 textbook 系列其余 skill 装在同一 skills 目录下。\nslug: textbook-init\ndisplayName: 教材写作·项目初始化\nversion: 0.6.2\nsummary: 动笔前规划并创建教材工作目录（可选 git 与 README 工作说明），只搭目录骨架、不碰流水线文件，产出交接给 textbook。需与 textbook 同级安装。</h2>\n<h1>textbook-init</h1>\n<p>动笔前的工作目录规划师：一轮提问弄清作者要写一本还是多本、放在哪里、要不要版本管理，呈现目录方案等确认后创建目录骨架（可含 git 仓库与 README 工作说明），最后把作者交给 textbook 主流程开写。教材项目内部的文件构成以 <a href=\"../textbook/references/handoff-contract.md\">../textbook/references/handoff-contract.md</a>（下称\"契约文档\"）第 3 节为唯一权威定义，本 skill 只引用不重复定义。</p>\n<h2>何时不触发</h2>\n<ul>\n<li>已有教材项目要续写（目录里有 <code>.progress.json</code>）——直接用 textbook，它会按状态文件定位续点；</li>\n<li>作者直接开写、不关心目录规划——textbook 启动时自会询问一次并默认 <code>./&lt;教材名&gt;/</code>，无需先走本 skill；</li>\n<li>整理与教材写作无关的目录——本 skill 只服务教材项目的开局。</li>\n</ul>\n<h2>与流水线的关系</h2>\n<p>本 skill 只独立触发：不被 textbook 调度，不进五阶段契约链，产出是\"就绪的空工作目录 + 启动指引\"。</p>\n<p><strong>流水线文件一律不建不改</strong>：<code>.progress.json</code>（主 skill 是唯一写者，这是项目红线）、<code>00-前言.md</code>（阶段 5 派生生成）、<code>00-教材设计.md</code>（textbook-outline 写入）、<code>NN-&lt;章标题&gt;.md</code>（逐章生成）、<code>98-参考答案.md</code>（逐章追加）、<code>99-表现性任务.md</code>（阶段 5 派生生成）、<code>术语表.md</code>（主 skill 追加维护）。动机：主 skill 的重入判定靠\"这些文件存不存在、内容有没有\"定位续点（契约文档第 4 节），预建空文件会让它把全新项目误判成半成品；空壳文件混进交付物也违背\"交付即可用\"的底线。本 skill 创建的只有目录本身、<code>.gitignore</code> 和 README 工作说明——均在契约之外。</p>\n<h2>工作流</h2>\n<h3>第 1 步：一轮提问</h3>\n<p>用 AskUserQuestion <strong>一轮</strong>收集四项（触发语已说明的项不再问）：</p>\n<ol>\n<li><strong>教材名</strong>：如《线性代数入门》——将成为项目目录名；</li>\n<li><strong>规划范围</strong>：a) 只写这一本  b) 未来还会写多本（追加：工作区名，默认\"教材工作区\"）；</li>\n<li><strong>位置</strong>：项目/工作区建在哪个目录下，默认当前目录 <code>./</code>；</li>\n<li><strong>git 版本管理</strong>：默认要（教材写作周期以周计，版本保护值回票价）；作者明确不要则跳过。</li>\n</ol>\n<p>若当前环境没有 AskUserQuestion 工具，降级为编号提问并等待文本回复：</p>\n<pre><code>请回答以下问题（回复格式如 \"1 线性代数入门 2b 教材工作区 3 ./ 4 要\"）：\n1. 教材名？\n2. 规划范围？ a) 只写这一本  b) 未来还会写多本（请给工作区名，默认\"教材工作区\"）\n3. 建在哪个目录下？（默认当前目录 ./）\n4. 要 git 版本管理吗？（默认要）\n</code></pre>\n<p>按语义宽松解析回复，只就有歧义的一项追问。</p>\n<h3>第 2 步：方案呈现与确认</h3>\n<p>按 <a href=\"references/workspace-layout.md\">references/workspace-layout.md</a> 第 1、2 节的布局规则组装方案，完整呈现后停下：</p>\n<ul>\n<li><strong>目录树预览</strong>：含流水线随后会生成的文件，逐项注明\"由 textbook 流水线创建\"——让作者看到最终形态，同时不误以为本 skill 会建它们；</li>\n<li><strong>关键选择及理由</strong>：单本还是工作区分层、git 建在哪一层、<code>.gitignore</code> 为什么不忽略 <code>.progress.json</code>；</li>\n<li>停点格式沿用契约文档第 5 节：</li>\n</ul>\n<p><code>⏸ 等待确认：工作目录方案（回复\"确认\"开始创建，或直接提出修改）</code></p>\n<p>作者提出修改 → 更新方案后<strong>重新完整呈现</strong>再等确认，循环直到明确确认；\"确认，但把位置改一下\"这类混合答复按修改分支处理（修改优先于确认，判定语义同契约文档第 5 节）。<strong>确认前不创建任何东西。</strong></p>\n<h3>第 3 步：创建与交接</h3>\n<ol>\n<li><strong>建目录</strong>：按确认的方案 <code>mkdir -p</code>；</li>\n<li><strong>git 判重</strong>：在目标位置检查是否已处于某个 git 仓库内（方法见 references/workspace-layout.md 第 3 节）——已在，则跳过 git init 并向作者说明原因；</li>\n<li><strong>git 初始化</strong>（作者要 git 且未命中判重）：git init + 写 <code>.gitignore</code> + 首次提交，层级与内容规范见 references/workspace-layout.md 第 3、4 节；</li>\n<li><strong>README 工作说明</strong>：按 references/workspace-layout.md 第 5 节模板实例化——所有字段填当前项目的真实值，写完通读确认没有残留尖括号或待填空白；</li>\n<li><strong>打印成果与下一步指引</strong>：</li>\n</ol>\n<pre><code>✅ 工作目录就绪：&lt;实际路径&gt;\n接下来对我说：写教材《&lt;教材名&gt;》，落盘目录用 &lt;项目目录路径&gt;\n（textbook 会在该目录里创建 .progress.json 并从教学定位开始五阶段流程）\n</code></pre>\n<h2>安全边界</h2>\n<ul>\n<li><strong>目标目录已存在且非空</strong>：呈现现有内容清单，绝不覆盖、移动或删除任何既有文件；其中若发现 <code>.progress.json</code>，说明这是进行中的教材项目，提示作者直接对 textbook 说续写，本 skill 就此打住；</li>\n<li><strong>README / .gitignore 已存在</strong>：保留原文件不动，仅提示作者自行核对是否需要补充；</li>\n<li>本 skill 的全部动作<strong>只增不删</strong>：创建目录、创建新文件、git init 与提交——不含任何删除、移动、覆盖操作。</li>\n</ul>\n","files":[{"path":"references/workspace-layout.md","sizeBytes":6023,"isText":true},{"path":"SKILL.md","sizeBytes":6150,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-02T16:12:20.376096Z","sha256":"E10BF837F9CAEFC571B76FE6634C001DF74906F063DDAA4B2ED027B46E00559D","sizeBytes":6489},"review":null,"source":{"repositoryUrl":"https://github.com/cabbage2000-lab/textbook-writer-skills","path":"skills/textbook-init","license":"MIT","commit":"7dc21eaa05dcaf17672df71b5a0bf64f9e614362","subtreeSha":"97C1AE0B38EE2365541AE6B929B3FAA88DC89222C9E00706027DAC7206461BF7","lastSyncedAt":"2026-09-18T13:50:31.477005Z"},"reviewedAt":"2026-09-02T16:12:23.376573Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/cabbage2000-lab/textbook-writer-skills/tree/main/skills/textbook-init"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install cabbage2000-lab-textbook-writer-skills@llmmart"},{"target":"git","command":"git clone https://github.com/cabbage2000-lab/textbook-writer-skills.git"}]}