with one click
story-chapter-write-mimo
单章写作流程,14步子agent隔离执行,有问题必修
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
单章写作流程,14步子agent隔离执行,有问题必修
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
统一网文写作入口。支持单章写作、续写、修改、重写。 通过模式参数控制深度:standard(标准)、fast(快速)、ultra(极致)。
章节重写。支持全文重写、局部重写、风格重写,保留原稿备份。 触发方式:/rewrite、/重写、/回炉、「重写第X章」「修改第X章」「回炉第X章」
短篇网文写作。从构思到成稿,聚焦情绪拉扯与节奏把控。 触发方式:/story-short-write-mimo、/写短篇、「帮我写一篇短篇」「写个盐言故事」
网文去AI味。子agent隔离执行:主agent读取文本 → 子agent隔离检测+修复 → 主agent输出结果。 触发方式:/story-deslop-mimo、/去AI味、「去AI味」「这篇太AI了」
严格编辑审稿。以出版社专业编辑的眼光,用最严格最挑剔的标准 审校正文、大纲、细纲、卷纲,支持按目标平台对标审稿。 触发方式:/story-critic-mimo、/编辑审稿、「审一下」「帮我审审」「当编辑」
全书大纲生成(迭代式)。从设定出发,分题材模板生成卷级大纲和逐卷细纲, 每步与用户反复沟通打磨,细纲每次最多生成3章。 触发方式:/outline、/story-outline-mimo、「生成大纲」「大纲生成」「帮我写大纲」
| name | story-chapter-write-mimo |
| version | 2.0.0 |
| description | 单章写作流程,14步子agent隔离执行,有问题必修 |
| category | write |
| triggers | ["/chapter-write","写第X章","单章写作","续写"] |
| inputs | [{"name":"project_dir","type":"directory","required":true,"description":"写作项目根目录"},{"name":"chapter_number","type":"number","required":false,"description":"指定章节号(默认自动检测下一章)"}] |
读文件,写文件,跑脚本,给用户看
不凭记忆,不跳步骤,不偷懒
每个 Agent 执行前后必须运行守卫脚本:
node {skill_dir}/scripts/step-guard.js pre <步骤号> {workflow_dir}
node {skill_dir}/scripts/step-guard.js post <步骤号> {workflow_dir}
T-CHAP-{N}: 写第{N}章
│
├─── Phase 1: 准备阶段
│ ├── T-CHAP-{N}-01: 目录健全检查 [子 agent 隔离·explore]
│ ├── T-CHAP-{N}-02: 获取最新章节信息 [子 agent 隔离·explore]
│ ├── T-CHAP-{N}-03: 检查细纲是否存在 [子 agent 隔离·explore]
│ ├── [条件] T-CHAP-{N}-04: 创建细纲 [子 agent 隔离·general]
│ ├── [条件] T-CHAP-{N}-04.5: 对标文件处理 [子 agent 隔离·general]
│ ├── T-CHAP-{N}-05: 分析细纲确定读取文件 [子 agent 隔离·general]
│ ├── T-CHAP-{N}-06: 决策是否创建新设定 [子 agent 隔离·general]
│ └── [条件] T-CHAP-{N}-07: 创建新设定文件 [子 agent 隔离·general]
│
├─── Phase 2: 写作阶段
│ ├── T-CHAP-{N}-08: 读取上下文并展示 [子 agent 隔离·general]
│ ├── T-CHAP-{N}-09: 生成约束参数 [子 agent 隔离·general]
│ └── T-CHAP-{N}-10: 正文写作 [子 agent 隔离·general] ← 只写作,不检查
│
├─── Phase 3: 检测阶段
│ └── T-CHAP-{N}-11: 综合质量检测 [子 agent 隔离·general]
│ ├── 字数检测
│ ├── 禁用词+AI腔检测
│ ├── 一致性检测
│ ├── 章内逻辑性检查
│ └── 跨章节检查
│
├─── Phase 4: 修复阶段(有问题必修)
│ ├── [条件] T-CHAP-{N}-12: 综合修复 [子 agent 隔离·general]
│ └── [条件] T-CHAP-{N}-13: 复查 [子 agent 隔离·general]
│ └── [条件] T-CHAP-{N}-13.5: 百分制评分 [子 agent 隔离·general]
│
└─── Phase 5: 收尾阶段
├── T-CHAP-{N}-14: 追踪+设定更新 [子 agent 隔离·general]
└── T-CHAP-{N}-14.5: 设定回写验证 [子 agent 隔离·explore]
每步必须用 actor 工具 spawn 子 agent 执行,不可在主会话中直接完成。
所有子 agent 的 prompt 必须包含防偷懒铁律:
你是单章写作流程的一个步骤执行器。
【防偷懒铁律】
- 读文件,写文件,跑脚本,给用户看
- 不凭记忆,不跳步骤,不偷懒
- 所有输出必须写入 .workflow/ 目录
- 项目目录:{project_dir}
- 章节号:{N}
// Step 01: 目录健全检查
actor({
"operation": {
"action": "run",
"subagent_type": "explore",
"description": "目录健全检查 - 第{N}章",
"prompt": "你是单章写作流程的目录检查器。\n\n【防偷懒铁律】读文件,写文件,跑脚本,给用户看。不凭记忆,不跳步骤。\n\n【任务】检查项目目录 {project_dir} 的结构完整性。\n\n【检查项】\n1. 正文/ 目录是否存在\n2. 追踪/ 目录是否存在\n3. 大纲/ 目录是否存在\n4. 设定/ 目录是否存在\n5. 故事线/ 目录是否存在\n6. 跨卷追踪/ 目录是否存在\n7. 对标/ 目录是否存在(可选)\n8. 参考资料/ 目录是否存在(可选)\n9. 以下追踪文件是否存在:伏笔.md、时间线.md、角色状态.md、物品.md、环境.md、物资.md、重复语句.md、上下文.md\n\n【执行规则】\n- 缺失的目录必须创建\n- 缺失的追踪文件必须创建空模板\n- 所有问题必须修复,不能跳过\n\n【输出】将结果写入 {project_dir}/.workflow/step01-health-check.json,格式:\n{\"project_dir\": \"...\", \"status\": \"pass|fail\", \"missing_dirs\": [...], \"missing_files\": [...], \"created\": [...], \"issues\": [...]}\n\n- status: 仅当所有必需目录和文件都存在时为 \"pass\",否则为 \"fail\"\n- issues: 列出所有发现的问题(即使已修复)\n- created: 列出本次创建的目录和文件\n\n【关键规则】\n- 只要发现任何问题,status 必须为 \"fail\"\n- 即使问题已修复,仍需记录在 issues 中\n- 后续步骤必须检查 status,为 \"fail\" 时停止并报告",
"context": "none"
}
})
// Step 02: 获取最新章节信息
actor({
"operation": {
"action": "run",
"subagent_type": "explore",
"description": "获取最新章节信息 - 第{N}章",
"prompt": "你是单章写作流程的章节扫描器。\n\n【防偷懒铁律】不凭记忆,必须扫描目录。\n\n【任务】扫描 {project_dir}/正文/ 目录,找出最新章节。\n\n【执行】\n1. 列出正文/ 目录下所有 .md 文件\n2. 提取最大章节编号\n3. 对最新章节运行字数统计:node $HOME/.config/mimocode/skills/_shared/scripts/wordcount.js <最新章节文件> --json\n\n【输出】写入 {project_dir}/.workflow/step02-chapter-info.json,格式:\n{\"latest_chapter\": 5, \"latest_file\": \"正文/第005章.md\", \"word_count\": 3200, \"next_chapter\": 6}",
"context": "none"
}
})
// Step 03: 检查细纲
actor({
"operation": {
"action": "run",
"subagent_type": "explore",
"description": "检查细纲 - 第{N}章",
"prompt": "你是单章写作流程的细纲检查器。\n\n【防偷懒铁律】必须实际检查文件,不能推断。\n\n【任务】检查 {project_dir}/大纲/细纲_第{N}章.md 是否存在且格式完整。\n\n【执行】\n1. 检查文件是否存在\n2. 如存在,验证是否包含:核心事件、情节点序列、目标情绪、章首钩子、章尾钩子、字数目标\n3. 统计情节点数量\n\n【输出】写入 {project_dir}/.workflow/step03-outline-check.json,格式:\n{\"exists\": true, \"need_create\": false, \"chapter\": {N}, \"plot_points\": 12, \"has_hook\": true, \"word_target\": 3000}",
"context": "none"
}
})
// Step 04: 创建细纲 [条件](动态扫描)
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "创建细纲 - 第{N}章",
"prompt": "你是单章写作流程的细纲创建器。\n\n【防偷懒铁律】必须动态扫描项目目录获取文件列表,不能硬编码。\n\n【任务】为第{N}章创建细纲。\n\n【Step A:读取项目结构定义】\n读取 $HOME/.config/mimocode/skills/_shared/references/project-structure.md,获取目录结构和文件清单。\n\n【Step B:动态扫描项目目录】\n```bash\nls {project_dir}/大纲/大纲.md 2>/dev/null\nls {project_dir}/大纲/卷纲_*.md 2>/dev/null\nls {project_dir}/追踪/*.md 2>/dev/null\nls {project_dir}/正文/第{N-1}章*.md 2>/dev/null\nls {project_dir}/设定/世界观/*.md 2>/dev/null\nls {project_dir}/设定/角色/*.md 2>/dev/null\nls {project_dir}/设定/势力/*.md 2>/dev/null\nls {project_dir}/设定/关系.md 2>/dev/null\nls {project_dir}/设定/题材定位.md 2>/dev/null\nls {project_dir}/设定/文风.md 2>/dev/null\nls {project_dir}/跨卷追踪/*.md 2>/dev/null\nls {project_dir}/故事线/*.md 2>/dev/null\n```\n\n【细纲内容去重(必须执行)】生成新细纲前,扫描前 5 章细纲的核心事件和情节点序列,避免以下重复:\n1. 核心事件重复:新章核心事件不得与前 5 章中任意一章高度相似\n2. 情节点重复:新章情节点序列不得与前 3 章有 >50% 重合\n3. 情绪重复:连续 3 章不得交付同一情绪目标\n4. 爽点重复:新章爽点类型不得与前 3 章完全相同\n去重方法:读取前 5 章细纲的「核心事件」字段对比,如重复则调整事件方向或增加新冲突。\n\n【输出格式】写入 {project_dir}/大纲/细纲_第{N}章.md,格式如下:\n\n# 第{N}章:{章名} 细纲\n\n## 核心事件\n{一句话描述本章核心事件}\n\n## 情节点序列\n1. {情节点1}\n2. {情节点2}\n...(>=10个)\n\n## 目标情绪\n{本章要交付的情绪}\n\n## 章首钩子\n{如何吸引读者继续阅读}\n\n## 章尾钩子\n{如何引导读者期待下一章}\n\n## 爽点\n{本章爽点类型和位置}\n\n## 字数目标\n{预计字数}\n\n## 涉及角色\n{本章出场或提及的角色名列表,用于文件分析器映射到设定文件}\n\n## 涉及场景\n{本章发生的地点/场景,用于映射到世界观文件}\n\n## 涉及伏笔\n{本章需要推进或回收的伏笔,用于从伏笔.md筛选相关行}\n\n【要求】\n- 情节点 >= 10 个\n- 必须有章首钩子和章尾钩子\n- 必须有爽点标注\n- 必须有字数目标\n- 涉及角色/场景/伏笔必须列出,供下游文件分析器使用\n- 细纲内容不得违反世界观规则和金手指规则\n- 角色行为必须符合角色设定和性格锚点\n- 如有跨卷伏笔需要在本章回收,必须在涉及伏笔中标注",
"context": "none"
}
})
// Step 04.5: 对标文件处理 [条件]
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "对标文件处理 - 第{N}章",
"prompt": "你是单章写作流程的对标文件处理器。\n\n【防偷懒铁律】必须实际读取文件,不能凭记忆。\n\n【任务】处理对标书的文风和拆文报告,为写作提供参考。\n\n【执行】\n1. 读取 {project_dir}/设定/题材定位.md 的「主对标书」字段\n2. 确定对标书路径(优先 对标/{书名}/,回退 拆文库/{书名}/)\n3. 读取对标文风.md,提取原文锚点片段(300-500字)\n4. 读取拆文报告.md,提取可借鉴套路\n5. 读取本章涉及角色的角色档案\n\n【输出】写入 {project_dir}/.workflow/step04-benchmark.json,格式:\n{\"benchmark_book\": \"书名\", \"benchmark_path\": \"...\", \"anchor_excerpts\": [...], \"techniques\": [...], \"characters\": [...]}",
"context": "none"
}
})
// Step 05: 分析细纲确定读取文件(动态扫描)
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "文件分析 - 第{N}章",
"prompt": "你是单章写作流程的文件分析器。\n\n【防偷懒铁律】必须动态扫描项目目录获取文件列表,不能硬编码。\n\n【任务】动态扫描项目结构,确定本章需要读取的所有文件。\n\n【Step A:读取项目结构定义】\n读取 $HOME/.config/mimocode/skills/_shared/references/project-structure.md,获取目录结构和文件清单。\n\n【Step B:动态扫描项目目录】\n执行以下扫描命令获取实际文件列表:\n```bash\n# 设定目录\nls {project_dir}/设定/世界观/*.md 2>/dev/null\nls {project_dir}/设定/角色/*.md 2>/dev/null\nls {project_dir}/设定/势力/*.md 2>/dev/null\nls {project_dir}/设定/关系.md 2>/dev/null\nls {project_dir}/设定/题材定位.md 2>/dev/null\nls {project_dir}/设定/文风.md 2>/dev/null\n# 追踪目录\nls {project_dir}/追踪/*.md 2>/dev/null\n# 跨卷追踪(可选)\nls {project_dir}/跨卷追踪/*.md 2>/dev/null\n# 故事线(可选)\nls {project_dir}/故事线/*.md 2>/dev/null\n# 对标文件(可选)\nls {project_dir}/对标/*/拆文报告.md 2>/dev/null\nls {project_dir}/对标/*/文风.md 2>/dev/null\n```\n\n【Step C:从细纲提取本章涉及的角色和场景】\n读取 {project_dir}/大纲/细纲_第{N}章.md,提取:\n1. 本章涉及的角色名 → 映射到扫描到的 设定/角色/{角色名}.md\n2. 本章涉及的场景\n3. 本章涉及的伏笔\n\n【Step D:组装文件清单】\n将扫描结果 + 细纲解析结果合并,输出最终需要加载的文件列表。\n\n【输出】写入 {project_dir}/.workflow/step05-required-files.json,格式:\n{\"scanned_files\": {\"setting\": [...], \"tracking\": [...], \"cross_volume\": [...], \"storyline\": [...], \"benchmark\": [...]}, \"characters\": [...], \"scenes\": [...], \"foreshadows\": [...], \"files_to_load\": [...]}",
"context": "none"
}
})
// Step 06: 设定决策
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "设定决策 - 第{N}章",
"prompt": "你是单章写作流程的设定决策器。\n\n【防偷懒铁律】必须实际比对,不能推断。\n\n【任务】比对细纲中的元素与现有设定,发现新元素。\n\n【执行】\n1. 读取 {project_dir}/.workflow/step05-required-files.json\n2. 读取 {project_dir}/追踪/角色状态.md\n3. 检查细纲中提到的角色是否已有设定文件\n4. 检查细纲中提到的势力/地点是否已有设定文件\n\n【输出】写入 {project_dir}/.workflow/step06-new-settings.json,格式:\n{\"need_new_settings\": true, \"new_characters\": [...], \"new_forces\": [...], \"new_locations\": [...]}",
"context": "none"
}
})
// Step 07: 创建新设定 [条件]
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "创建新设定 - 第{N}章",
"prompt": "你是单章写作流程的设定创建器。\n\n【防偷懒铁律】必须完整,不能只有骨架。\n\n【任务】为新出现的元素创建设定文件。\n\n【输入】读取 {project_dir}/.workflow/step06-new-settings.json\n\n【执行】\n1. 为每个新角色创建 {project_dir}/设定/角色/{角色名}.md\n2. 为每个新势力创建 {project_dir}/设定/势力/{势力名}.md\n3. 在 {project_dir}/追踪/角色状态.md 中登记新角色初始状态\n4. 运行 character-sync.js 验证同步\n\n【输出】设定文件 + 更新后的角色状态.md",
"context": "none"
}
})
// Step 08: 读取上下文
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "读取上下文 - 第{N}章",
"prompt": "你是单章写作流程的上下文加载器。\n\n【防偷懒铁律】设定文件必须全部读取,不能跳过。\n\n【任务】读取 step05 列出的所有文件,组装写作上下文。参考 $HOME/.config/mimocode/skills/_shared/references/context-checklist.md 场景2:正文写作(22项)。\n\n【必读】\n1. {project_dir}/.workflow/step05-required-files.json — 需要读取的文件列表\n2. 按列表逐一读取所有文件,每读一个输出状态(✅已加载 / ⚠️缺失 / 🚫阻断)\n3. 上一章结尾必须是最后500字原文\n4. 细纲:{project_dir}/大纲/细纲_第{N}章.md — 本章细纲(O3)\n5. 设定文件(S1-S7)必须全部读取:世界观/*.md、金手指.md、角色/{角色}.md、势力/*.md、关系.md、题材定位.md、文风.md\n6. 追踪文件(T1-T8)必须全部读取:伏笔.md、时间线.md、角色状态.md、物品.md、环境.md、物资.md、重复语句.md、上下文.md\n7. 跨卷追踪(C1-C3)存在时必须加载:跨卷伏笔.md、跨卷角色弧线.md、卷间过渡.md\n8. 故事线(L1-L3)存在时必须加载:故事线索引.md、主线_*.md、交叉点.md\n9. 如有对标,读取 {project_dir}/.workflow/step04-benchmark.json\n\n【输出】写入 {project_dir}/.workflow/step08-context.json,格式:\n{\"chapter\": {N}, \"previous_ending\": \"...\", \"characters\": {...}, \"settings\": {...}, \"tracking\": {...}, \"cross_volume\": {...}, \"storylines\": {...}, \"foreshadows\": [...], \"benchmark\": {...}}",
"context": "none"
}
})
// Step 09: 生成约束
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "生成约束 - 第{N}章",
"prompt": "你是单章写作流程的约束生成器。\n\n【防偷懒铁律】禁用词必须从文件加载,字数限制必须明确。\n\n【任务】生成本章写作的质量约束参数。\n\n【执行】\n1. 读取 {project_dir}/.workflow/step08-context.json 获取上下文\n2. 从细纲读取字数目标\n3. 加载质量规则(读取 $HOME/.config/mimocode/skills/_shared/references/quality-rules.md)\n4. 如有对标,从 step04-benchmark.json 读取锚点片段和技法\n\n【输出】写入 {project_dir}/.workflow/step09-constraints.json,格式:\n{\"word_count_target\": 3000, \"banned_words\": [...], \"ai_patterns\": [...], \"benchmark_excerpts\": [...], \"techniques\": [...]}",
"context": "none"
}
})
// Step 10: 正文写作
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "正文写作 - 第{N}章",
"prompt": "你是 narrative-writer,负责正文写作。只写作,不检查质量。\n\n【防偷懒铁律】必须写入文件,不在对话中输出。必须包含所有场景。\n\n【输入文件】\n1. {project_dir}/大纲/细纲_第{N}章.md — 细纲\n2. {project_dir}/.workflow/step08-context.json — 上下文\n3. {project_dir}/.workflow/step09-constraints.json — 约束\n\n【写作要求】\n1. 严格按细纲的事件序列写作\n2. 遵守约束参数(禁用词、文风、字数目标)\n3. 字数必须达到 {word_count_target}\n4. 写入文件,不在对话中输出\n\n【质量红线】读取 $HOME/.config/mimocode/skills/_shared/references/quality-rules.md 获取完整规则。写作时直接避开,不要写完再改。\n\n【输出】\n- 正文:{project_dir}/正文/第{N}章.md\n\n写完后运行字数验证:\nnode $HOME/.config/mimocode/skills/_shared/scripts/wordcount.js {project_dir}/正文/第{N}章.md --json\n字数未达标禁止结束。",
"context": "none"
}
})
// Step 11: 综合质量检测
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "综合质量检测 - 第{N}章",
"prompt": "你是 quality-checker,负责综合质量检测。有问题必修。\n\n【防偷懒铁律】必须运行所有检测脚本,不能跳过。\n\n【输入文件】\n- 正文:{project_dir}/正文/第{N}章.md\n- 约束:{project_dir}/.workflow/step09-constraints.json\n- 上下文:{project_dir}/.workflow/step08-context.json\n- 细纲:{project_dir}/大纲/细纲_第{N}章.md\n\n【参考文件】(设定校验和跨卷一致性检测必须读取)\n- 设定:{project_dir}/设定/世界观/*.md、设定/世界观/金手指.md\n- 角色:{project_dir}/设定/角色/{相关角色}.md\n- 关系:{project_dir}/设定/关系.md\n- 题材:{project_dir}/设定/题材定位.md\n- 文风:{project_dir}/设定/文风.md\n- 物品:{project_dir}/追踪/物品.md(如存在)\n- 环境:{project_dir}/追踪/环境.md(如存在)\n- 物资:{project_dir}/追踪/物资.md(如存在)\n- 跨卷伏笔:{project_dir}/跨卷追踪/跨卷伏笔.md(如存在)\n- 角色弧线:{project_dir}/跨卷追踪/跨卷角色弧线.md(如存在)\n- 故事线:{project_dir}/故事线/故事线_索引.md、故事线_主线_*.md、故事线_交叉点.md(如存在)\n\n【检测项】(必须全部运行)\n1. 字数达标 — node $HOME/.config/mimocode/skills/_shared/scripts/wordcount.js {chapter_file} --json — BLOCK\n2. 禁用词+AI腔 — node $HOME/.config/mimocode/skills/_shared/scripts/style-lint.js --json {chapter_file} — BLOCK\n3. AI标点符号 — node $HOME/.config/mimocode/skills/_shared/scripts/punctuation-normalize.js --json {chapter_file} — BLOCK\n4. 一致性 — node $HOME/.config/mimocode/skills/_shared/scripts/consistency-check.js --json {chapter_file} {project_dir} — BLOCK\n5. 设定校验 — LLM分析(对比设定文件,检查世界观/金手指/文风/题材/关系是否符合)— BLOCK\n6. 章内逻辑性 — LLM分析 — WARN\n7. 跨章节检查 — node $HOME/.config/mimocode/skills/_shared/scripts/cross-chapter-check.js --json {chapter_file} {project_dir} — WARN\n8. 跨卷一致性 — LLM分析(对比跨卷追踪和故事线文件,检查伏笔逾期/弧线断裂/故事线断裂)— WARN\n\n【输出】写入 {project_dir}/.workflow/step11-quality-report.json,格式:\n{\"status\": \"pass|warn|fail\", \"blockers\": [...], \"warnings\": [...], \"checks\": [...]}\n\n【关键规则】只要有任何 WARN 或 BLOCK,status 必须为 fail。",
"context": "none"
}
})
// Step 12: 综合修复 [条件]
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "综合修复 - 第{N}章",
"prompt": "你是 quality-fixer,负责修复所有问题。\n\n【防偷懒铁律】每个问题必须修复,不能跳过 WARN。\n\n【输入文件】\n- 检测报告:{project_dir}/.workflow/step11-quality-report.json\n- 正文:{project_dir}/正文/第{N}章.md\n- 约束:{project_dir}/.workflow/step09-constraints.json\n- 细纲:{project_dir}/大纲/细纲_第{N}章.md\n\n【参考文件】(修复一致性错误和设定违反时必须读取)\n- 角色状态:{project_dir}/追踪/角色状态.md\n- 物品:{project_dir}/追踪/物品.md\n- 环境:{project_dir}/追踪/环境.md\n- 世界观:{project_dir}/设定/世界观/*.md\n- 角色设定:{project_dir}/设定/角色/{相关角色}.md\n- 质量规则:读取 $HOME/.config/mimocode/skills/_shared/references/quality-rules.md\n\n【修复规则】\n1. 读取检测报告中的 blockers 和 warnings\n2. 逐一修复每个问题\n3. 字数不足 → 补充内容\n4. 禁用词 → 替换\n5. 一致性错误 → 修正(参考追踪文件获取正确状态)\n6. 设定违反 → 修正(参考设定文件获取正确规则)\n7. 修复后重新运行字数验证:node $HOME/.config/mimocode/skills/_shared/scripts/wordcount.js {chapter_file} --json\n\n【输出】\n- 更新:{project_dir}/正文/第{N}章.md(修复后)\n- 日志:{project_dir}/.workflow/step12-fix-log.json,格式:\n{\"fixed_count\": 5, \"fixed_items\": [...], \"final_word_count\": 3200}",
"context": "none"
}
})
// Step 13: 复查 [条件]
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "复查 - 第{N}章",
"prompt": "你是 quality-rechecker,负责复查修复结果。最多3轮。\n\n【防偷懒铁律】不能假设修复成功,必须重新检测。\n\n【任务】重新运行 Step 11 的全部检测项,验证修复是否成功。\n\n【执行】\n1. 重新运行所有检测脚本\n2. 如仍有问题 → 回到 Step 12(上限3轮)\n3. 如全部通过 → 输出通过报告\n\n【输出】写入 {project_dir}/.workflow/step13-recheck-report.json,格式:\n{\"status\": \"pass|fail\", \"round\": 1, \"remaining_blockers\": [], \"remaining_warnings\": []}",
"context": "none"
}
})
// Step 14: 追踪+设定更新(三步流程)
actor({
"operation": {
"action": "run",
"subagent_type": "general",
"description": "追踪+设定更新 - 第{N}章",
"prompt": "你是单章写作流程的追踪更新器。\n\n【防偷懒铁律】必须从正文实际提取,不能凭记忆。\n\n【任务】按三步流程更新所有相关文件。\n\n【Step A:动态扫描项目结构】获取所有实际存在的配置文件\n- 使用 `glob` 工具扫描 {project_dir} 下所有 `.md` 文件\n- 识别配置文件类型:设定/、追踪/、故事线/、跨卷追踪/ 等目录下的文件\n- 输出完整文件清单(路径+文件名),不读内容\n\n【Step B:分析正文提取变更清单】从本章正文识别变化点\n- 新角色出现?→ 需要建档/更新设定/角色/{名}.md\n- 角色状态变化?→ 需要更新追踪/角色状态.md + 设定/角色/{名}.md\n- 新伏笔/回收伏笔?→ 需要更新追踪/伏笔.md + 跨卷追踪/跨卷伏笔.md(如有)\n- 新物品/物品变化?→ 需要更新追踪/物品.md\n- 环境变化?→ 需要更新追踪/环境.md\n- 经济活动?→ 需要更新追踪/物资.md\n- 故事线推进?→ 需要更新故事线/故事线_*.md\n- 角色弧线阶段变化?→ 需要更新跨卷追踪/跨卷角色弧线.md\n- 接近卷末?→ 需要检查跨卷追踪/卷间过渡.md\n\n【Step C:按清单更新文件】只更新变更涉及的文件\n- 始终更新:追踪/时间线.md(记录事件时序)、追踪/上下文.md(进度摘要)、追踪/重复语句.md(记录重复表达)\n- 按变更清单更新其余文件(对照 Step A 文件清单 + Step B 变更清单)\n- 设定文件回写:正文揭示新信息影响设定时,同步更新对应设定/文件\n- 跨卷追踪更新:涉及跨卷伏笔回收/推进或角色弧线变化时,更新跨卷追踪/下对应文件\n- 故事线更新:故事线推进时更新故事线/故事线_*.md\n\n【角色同步】更新完角色状态后,运行:\nnode $HOME/.config/mimocode/skills/_shared/scripts/character-sync.js {project_dir} --json\n\n【输出】更新后的文件列表",
"context": "none"
}
})
// Step 14.5: 设定回写验证 [子 agent 隔离·explore]
actor({
"operation": {
"action": "run",
"subagent_type": "explore",
"description": "设定回写验证 - 第{N}章",
"prompt": "你是单章写作流程的设定回写验证器。\n\n【防偷懒铁律】必须实际扫描文件,不能凭记忆。\n\n【任务】验证 Step 14 的设定回写是否完整。\n\n【Step A:扫描本章正文中的角色】\n1. 读取 {project_dir}/正文/第{N}章.md\n2. 提取所有出现的角色名\n3. 去重并列出角色清单\n\n【Step B:检查每个角色的设定文件】\n对每个角色:\n1. 检查 {project_dir}/设定/角色/{角色名}.md 是否存在\n2. 如存在,检查是否包含本章新增的关键信息:\n - 性格锚点是否更新\n - 关键关系是否更新\n - 能力/状态是否更新\n3. 检查 {project_dir}/追踪/角色状态.md 中该角色的状态是否已更新\n\n【Step C:输出验证报告】\n1. 列出所有本章出现的角色\n2. 标注每个角色的设定文件状态:\n - ✅ 已更新:设定文件包含本章新增信息\n - ⚠️ 需更新:设定文件存在但缺少本章新增信息\n - ❌ 缺失:设定文件不存在\n3. 如有遗漏,列出需要回写的文件清单\n\n【输出】写入 {project_dir}/.workflow/step14.5-setting-verification.json,格式:\n{\"chapter\": {N}, \"characters_found\": [...], \"verification_results\": [...], \"missing_updates\": [...], \"status\": \"pass|warn\"}\n\n【关键规则】\n- 只要发现任何角色的设定文件需要更新,status 必须为 warn\n- 缺失的设定文件不阻断(可能是新角色未建档)\n- 但已有设定文件缺少本章新增信息时必须标记为 warn",
"context": "none"
}
})
.workflow/step01-health-check.json.workflow/step01-health-check.json,如果 status 为 fail,停止并报告问题.workflow/step02-chapter-info.json.workflow/step03-outline-check.json大纲/细纲_{N}章.md.workflow/step04-benchmark.json.workflow/step05-required-files.json设定/世界观/*.md — 世界观、力量体系、金手指等设定/势力/*.md — 势力设定设定/关系.md — 角色关系设定/题材定位.md — 题材核心梗设定/文风.md — 文风设定跨卷追踪/跨卷伏笔.md — 需要跨卷回收的伏笔跨卷追踪/跨卷角色弧线.md — 角色全书成长路线跨卷追踪/卷间过渡.md — 卷与卷衔接要点故事线/故事线_索引.md — 所有故事线列表+状态故事线/故事线_主线_*.md — 主线故事线故事线/故事线_交叉点.md — 线与线交汇标记.workflow/step06-new-settings.json设定/世界观/*.md — 世界观规则(如时代背景、社会规则、技术设定)设定/势力/*.md — 势力设定(如组织结构、势力关系)设定/关系.md — 角色关系网络设定/题材定位.md — 题材核心梗、卖点设定/文风.md — 文风约束跨卷追踪/跨卷伏笔.md — 跨卷伏笔状态跨卷追踪/跨卷角色弧线.md — 角色弧线进展跨卷追踪/卷间过渡.md — 卷间衔接要点故事线/故事线_索引.md — 故事线总览故事线/故事线_主线_*.md — 当前相关主线故事线/故事线_交叉点.md — 交叉点标记.workflow/step04-benchmark.json(如存在)benchmark 字段.workflow/step08-context.json.workflow/step09-constraints.json正文/第{N}章.md.workflow/step11-quality-report.json.workflow/step12-fix-log.json.workflow/step13-recheck-report.json触发条件:质量门禁和一致性检查无阻断且无警告后创建
⚠️ 重要:任何问题都必须处理!
执行方式:子agent隔离执行
prompt: 你是章节评分评审 agent。
对刚通过质量门禁的章节进行百分制评分。
详见 skills/_shared/references/writing-score-rubric.md
判定规则: score >= 90 → 通过 score < 90 → 创建 Step 13.6 修复任务
触发条件:评分 < 90
执行方式:子agent隔离执行
prompt: 你是章节评分修复 agent。 针对评分不达标的维度进行定向修复。
后续流程: 修复后重新评分 → 仍 < 90 则再修复(上限3轮) → 3轮后仍不达标则阻断
node $HOME/.config/mimocode/skills/_shared/scripts/character-sync.js <项目目录> --json 验证设定与追踪一致.workflow/step14.5-setting-verification.json| 任务 | 触发条件 | 跳过则 |
|---|---|---|
| Step 04 | step03.need_create=true | abandoned |
| Step 04.5 | 存在 对标/ 或 拆文库/ 目录 | abandoned |
| Step 07 | step06.need_new_settings=true | abandoned |
| Step 12 | step11有任何WARN或BLOCK | abandoned |
| Step 13 | step12存在 | abandoned |
| Step 13.5 | Step 11无阻断且无警告(或Step 13复查通过) | abandoned |
| Step 13.6 | score < 90 | abandoned |
| Step 14.5 | step14完成 | abandoned |
Step 11 检测到 ANY 问题(WARN 或 BLOCK)
↓
Step 12 综合修复(所有问题)
↓
Step 13 复查
↓
仍有问题 → 再回 Step 12(上限3轮)
↓
全部通过(无阻断且无警告)→ Step 13.5 百分制评分
↓
score >= 90 → Step 14 追踪+设定更新
score < 90 → Step 13.6 修复低分维度 → 重新评分(上限3轮)
↓
Step 14.5 设定回写验证
所有中间结果存放在 {PROJECT_DIR}/.workflow/ 目录:
.workflow/
├── step01-health-check.json
├── step02-chapter-info.json
├── step03-outline-check.json
├── step04-benchmark.json # 对标文件处理(条件)
├── step05-required-files.json
├── step06-new-settings.json
├── step08-context.json
├── step09-constraints.json
├── step11-quality-report.json # 综合检测报告
├── step12-fix-log.json # 修复日志
├── step13-recheck-report.json # 复查报告
└── step14.5-setting-verification.json # 设定回写验证
| 文档 | 用途 |
|---|---|
references/anti-lazy-checklist.md | 防偷懒速查,每个Agent必读 |
references/agent-contracts.md | Agent详细契约,按需读取 |
references/logic-check-rules.md | 章内逻辑性检查规则 |
references/quality-detection-spec.md | 综合质量检测规范 |
_shared/scripts/quality-gate.js | 质量门禁脚本 |