--- name: pre-write-checklist description: "Activates automatically before chapter writing to enforce the 9-item mandatory file reading checklist - prevents AI focus degradation in long-form fiction by ensuring all context is loaded before each writing session" allowed-tools: Read, Grep --- # 写作前强制检查清单 ## 核心功能 **解决AI长篇失焦问题** - 这是Novel Writer Skills v1.0的核心创新。 ### 问题根源 用户反馈:使用novel-writer创作,前30章质量很好,但30章后AI开始: - 忘记前文设定 - 角色性格不一致 - 情节重复或矛盾 - 忽略创作宪法的原则 **根本原因**:长对话导致AI遗忘早期context,即使specification.md写得再详细也会被忘记。 ### 解决方案 **每次写作前强制重读所有关键文件** → AI重新加载完整context → 保持一致性 --- ## 9项强制检查清单 每次执行`/write`命令时,必须先完成此检查清单: ```markdown 📋 写作前检查清单(必须完成): ✓ 1. memory/constitution.md - 创作宪法 ✓ 2. memory/style-reference.md - 风格参考(如有) ✓ 3. stories/*/specification.md - 故事规格 ✓ 4. stories/*/creative-plan.md - 创作计划 ✓ 5. stories/*/tasks.md - 当前任务 ✓ 6. spec/tracking/character-state.json - 角色状态 ✓ 7. spec/tracking/relationships.json - 关系网络 ✓ 8. spec/tracking/plot-tracker.json - 情节追踪(如有) ✓ 9. spec/tracking/validation-rules.json - 验证规则(如有) 📊 上下文加载状态:✅ 完成 ``` --- ## 工作原理 ### 自动触发时机 1. **用户执行 `/write` 命令** 2. **本Skill自动激活** 3. **强制执行检查清单** 4. **输出确认报告** 5. **然后才开始写作** ### 执行流程 ``` 用户: /write 第10章 ↓ [pre-write-checklist 自动激活] ↓ 步骤1:读取 memory/constitution.md 步骤2:读取 memory/style-reference.md(如有) 步骤3:读取 stories/*/specification.md 步骤4:读取 stories/*/creative-plan.md 步骤5:读取 stories/*/tasks.md 步骤6:读取 spec/tracking/character-state.json 步骤7:读取 spec/tracking/relationships.json 步骤8:读取 spec/tracking/plot-tracker.json(如有) 步骤9:读取 spec/tracking/validation-rules.json(如有) ↓ 输出确认: 📋 写作前检查清单(已完成): ✓ 1-9 所有文件已读取 📊 上下文加载状态:✅ 完成 关键信息摘要: - 创作原则:[从constitution提取] - 当前任务:[从tasks.md提取] - 主要角色:[从character-state提取] - 情节进度:[从plot-tracker提取] ↓ 开始写作第10章... ``` --- ## 输出格式 ### 标准输出(所有文件存在) ```markdown 📋 写作前检查清单(已完成): ✓ 1. memory/constitution.md - 创作宪法 → 核心原则:[列出2-3条关键原则] ✓ 2. memory/style-reference.md - 风格参考 → 风格要点:[提取关键风格要求] ✓ 3. stories/xxx/specification.md - 故事规格 → 故事类型:[言情/悬疑/历史等] → P0元素:[必须包含的元素] ✓ 4. stories/xxx/creative-plan.md - 创作计划 → 当前阶段:[第X卷/第X章] → 本章目标:[情节/情感目标] ✓ 5. stories/xxx/tasks.md - 当前任务 → 待写章节:[第X章] → 任务状态:[pending/in_progress] ✓ 6. spec/tracking/character-state.json - 角色状态 → 主要角色:[列出角色名和当前状态] ✓ 7. spec/tracking/relationships.json - 关系网络 → 核心关系:[主角与谁的关系变化] ✓ 8. spec/tracking/plot-tracker.json - 情节追踪 → 活跃线索:[当前进行中的情节线] ✓ 9. spec/tracking/validation-rules.json - 验证规则 → 自动修复:[启用/禁用] 📊 上下文加载状态:✅ 完成(加载9个文件,约XXXX tokens) 🎯 准备写作第X章... ``` ### 部分文件缺失时 ```markdown 📋 写作前检查清单(部分完成): ✓ 1. memory/constitution.md - 创作宪法 ✓ 2. ⚠️ memory/style-reference.md - 不存在(可选文件,跳过) ✓ 3. stories/xxx/specification.md - 故事规格 ✓ 4. stories/xxx/creative-plan.md - 创作计划 ✓ 5. stories/xxx/tasks.md - 当前任务 ✓ 6. spec/tracking/character-state.json - 角色状态 ✓ 7. spec/tracking/relationships.json - 关系网络 ✓ 8. ⚠️ spec/tracking/plot-tracker.json - 不存在(可选文件,跳过) ✓ 9. ⚠️ spec/tracking/validation-rules.json - 不存在(可选文件,跳过) 📊 上下文加载状态:✅ 完成(加载6个必须文件 + 0个可选文件) 💡 建议:运行 `/track-init` 初始化完整追踪系统 ``` ### 关键文件缺失时(阻止写作) ```markdown 📋 写作前检查清单(失败): ✓ 1. memory/constitution.md - 创作宪法 ✓ 2. memory/style-reference.md - 风格参考 ❌ 3. stories/xxx/specification.md - **文件不存在** ❌ 4. stories/xxx/creative-plan.md - **文件不存在** ❌ 5. stories/xxx/tasks.md - **文件不存在** ⛔ 错误:缺少必需文件,无法继续写作 必须先完成: 1. 运行 `/constitution` 创建创作宪法 2. 运行 `/specify` 定义故事规格 3. 运行 `/plan` 制定创作计划 4. 运行 `/tasks` 分解任务清单 然后才能执行 `/write` 这是seven-step methodology的推荐流程。 ``` --- ## 与Commands集成 ### `/write` 命令 **必须先执行检查清单,才能写作**: ```yaml 执行顺序: 1. pre-write-checklist(本Skill)→ 读取所有文件 2. 输出确认报告 3. 检查setting-detector → 是否需要激活知识库 4. 开始实际写作 ``` ### `/analyze` 命令 分析时也建议执行检查清单: ```yaml 分析前先确保context完整: 1. pre-write-checklist → 重新加载所有文件 2. 基于最新状态执行分析 ``` ### `/track` 命令 追踪更新后触发检查清单: ```yaml 更新流程: 1. 用户修改tracking文件 2. 运行 `/track` 更新 3. pre-write-checklist → 重新读取验证 ``` --- ## 文件重要性分类 ### 必须文件(缺失则阻止写作) ``` 1. memory/constitution.md - 创作原则 3. stories/*/specification.md - 故事规格 4. stories/*/creative-plan.md - 创作计划 5. stories/*/tasks.md - 当前任务 6. spec/tracking/character-state.json - 角色状态 7. spec/tracking/relationships.json - 关系网络 ``` **逻辑**:没有这些文件,AI不知道: - 要遵循什么原则 - 故事是关于什么的 - 当前写到哪里了 - 角色是谁、什么状态 ### 可选文件(缺失时警告但允许继续) ``` 2. memory/style-reference.md - 风格参考 8. spec/tracking/plot-tracker.json - 情节追踪 9. spec/tracking/validation-rules.json - 验证规则 ``` **逻辑**:这些文件增强质量,但不是最低要求: - style-reference:某些用户不用/book-internalize - plot-tracker:简单故事可能不需要 - validation-rules:非必需的自动化 --- ## 防失焦机制 ### 问题场景 ``` 第1章写作: - AI记得所有设定 - 质量很好 第10章写作: - 对话已经很长 - AI开始遗忘第1章的设定 第30章写作: - 完全忘记早期设定 - 角色性格走样 - 情节自相矛盾 ``` ### 解决机制 ``` 每次写作前: - 强制重读所有核心文件 - 重新加载完整context - 像写第1章一样对待第30章 结果: - 第30章质量 ≈ 第1章质量 - 一致性保持 - 不再失焦 ``` ### 效果对比 | 对比维度 | 无检查清单 | 有检查清单 | |---------|----------|----------| | 第1-10章 | ✓ 质量好 | ✓ 质量好 | | 第11-30章 | ⚠️ 开始不稳定 | ✓ 保持稳定 | | 第31-50章 | ❌ 明显失焦 | ✓ 依然稳定 | | 第51+章 | ❌ 严重失焦 | ✓ 长期稳定 | --- ## 配置选项 ### 调整严格度 **默认:严格模式**(推荐) ``` "使用严格检查清单模式" → 缺少必需文件则阻止写作 ``` **宽松模式**(不推荐) ``` "使用宽松检查清单模式" → 允许跳过部分文件(不推荐,可能失焦) ``` ### 自定义检查项 如果你有额外的重要文件: ``` "检查清单请额外包含: - spec/knowledge/worldbuilding/magic-system.md - spec/knowledge/characters/protagonist-profile.md" ``` --- ## 性能优化 ### Token消耗 ``` 每次写作的额外token成本: 9个文件读取: - constitution.md:~200 tokens - specification.md:~500 tokens - creative-plan.md:~300 tokens - tasks.md:~150 tokens - character-state.json:~200 tokens - relationships.json:~150 tokens - 其他:~200 tokens 总计:约1700 tokens/次写作 收益: - 避免失焦导致的重写(节省数万tokens) - 保持质量一致(用户满意度) - 长篇项目的可持续性 ``` **ROI极高**:1700 tokens换来长期稳定质量。 ### 缓存策略 ``` 同一写作会话中: 第1次写作:读取所有文件(1700 tokens) 第2次写作(1小时内):检查文件是否修改 - 未修改:使用缓存(0 tokens) - 已修改:重新读取(部分tokens) ``` --- ## 常见问题 ### Q: 每次写作都要读这么多文件,会不会很慢? **A**: 不会。 - 文件读取很快(毫秒级) - token消耗合理(~1700 tokens) - 换来的是长期质量保证 **对比**: - 不用检查清单:第30章质量差 → 用户要求重写10章 → 浪费数万tokens - 用检查清单:每章+1700 tokens → 50章也只+85000 tokens → 但质量稳定 ### Q: 我能跳过检查清单吗? **A**: 技术上可以,但**强烈不推荐**。 ``` "跳过检查清单,直接写作" → AI会警告:"不推荐,可能导致失焦" → 但会尊重你的选择 ``` **后果自负**:30章后失焦了别说我没提醒你😊 ### Q: 某些文件我确实没有怎么办? **A**: 分两种情况: **必需文件缺失**(constitution、specification等): → 阻止写作,提示先运行对应命令创建 **可选文件缺失**(style-reference、plot-tracker): → 警告但允许继续,建议后续创建 ### Q: 检查清单和setting-detector的关系? **A**: 互补工作: ``` pre-write-checklist: - 加载项目特定文件(你的故事数据) setting-detector: - 加载通用知识库(类型惯例、写作技巧) 两者结合 = 完整context: 你的故事设定 + 类型专业知识 ``` ### Q: 100章的长篇小说也要每次都读吗? **A**: 是的,而且**更需要**。 ``` 长篇小说的挑战: - 设定更复杂 - 角色更多 - 情节线更多 - AI更容易忘记 检查清单的作用: - 确保第100章和第1章质量一致 - 防止角色性格突变 - 防止情节自相矛盾 这是长篇小说质量保证的基石。 ``` --- ## 最佳实践 ### 1. 保持文件更新 检查清单只能确保AI读取文件,但文件内容要准确: ``` ✓ 角色状态变化 → 更新 character-state.json ✓ 关系变化 → 更新 relationships.json ✓ 新情节线 → 更新 plot-tracker.json ``` ### 2. 定期运行 `/track` ``` 建议频率:每5-10章运行一次 `/track` 作用: - 更新tracking文件 - 验证一致性 - 发现潜在问题 ``` ### 3. 重要变更后手动触发 ``` 如果你手动修改了关键文件: "请重新执行检查清单,重新加载所有文件" 确保AI看到最新状态。 ``` ### 4. 与consistency-checker配合 ``` pre-write-checklist(写前): - 加载所有context - 准备写作 consistency-checker(写中/写后): - 监控一致性 - 发现矛盾 ``` 双重保障 = 最高质量。 --- ## 技术实现 ### 文件读取顺序 ``` 优先级排序(重要的先读): 1. constitution(最高原则) 2. specification(故事核心) 3. creative-plan(技术方案) 4. tasks(当前任务) 5. character-state(角色数据) 6. relationships(关系数据) 7. plot-tracker(情节追踪) 8. validation-rules(验证规则) 9. style-reference(风格参考) ``` ### 错误处理 ``` 文件不存在: → 必需文件:阻止写作,提示创建 → 可选文件:警告,允许继续 文件格式错误: → JSON解析失败:显示错误,建议修复 → Markdown格式问题:尽力读取,标记问题 文件过大: → 超过10000行:警告(可能影响性能) → 建议拆分文件 ``` --- ## 总结 pre-write-checklist是Novel Writer Skills v1.0的**核心创新**: ✓ 解决AI长篇失焦问题 ✓ 强制重读关键文件 ✓ 确保context完整性 ✓ 保持质量长期稳定 ✓ 适合专业作者长篇创作 **30章后不再失焦 = 长期竞争力** 🎯 --- **本Skill版本**: v1.0 **最后更新**: 2025-10-18 **核心问题**: 解决30章后AI失焦 **配合**: write.md, setting-detector, consistency-checker