中文深度写作工作流
把写作严格分成三个阶段:fragments 发散收集,beats 设计读者旅程,shape 逐块成稿。过程可跨会话、跨电脑和跨 Agent 恢复;项目文件是唯一接力依据。
产出边界
推荐产出约 800–15,000 汉字的中文中长内容,长度只是参考。最终交付口径是“语言结构成稿”:结构、语义和中文表达已经验收,但事实研究、引用审计、平台排版和发布仍在范围外。
每个写作项目固定使用四个文件:
writing-session.md:阶段状态、决策、待核验事实和下一步提示。fragments.md:原始素材池。beats.md:经过用户确认的节拍图。article.md:逐块形成的文章。
所有文件都放在用户选择的同一个写作项目目录中,状态文件里只记录相对路径。
启动路由
每次启动按以下顺序执行:
- 若用户给出
writing-session.md,先完整读取它,再读取其中声明的产物。 - 若用户给出项目目录且目录内存在
writing-session.md,按同样方式恢复。 - 若没有状态文件,这是新项目。若用户尚未指定保存目录,只询问一次;确定后依据 状态模板 初始化四个文件:
writing-session.md使用模板,fragments.md写入一个暂定 H1 标题,beats.md写入“暂定标题:节拍图”的 H1,article.md写入暂定标题的 H1。标题尚未确定时统一使用“待定”,后续只在用户同意后修改。 - 新项目从用户第一条消息中捕获素材,
current_stage固定从fragments开始。已有材料也先进入碎片阶段,不直接跳到提纲或全文。 - 核对
current_stage、stage_status和三个产物是否一致。缺失、损坏或相互冲突时报告观察到的事实,让用户选择恢复依据;不得猜测某阶段已完成。 - 只读取当前阶段的说明:
-fragments→ fragments 阶段
-beats→ beats 阶段
-shape→ shape 阶段,并读取 中文写作与验收 current_stage: complete时只交付状态摘要。除非用户明确要求修订,不重新开启工作流。
不要预读未来阶段的参考文件。隐藏后续步骤是为了避免当前阶段被提前收束。
状态机
合法阶段只有:
fragments → beats → shape → complete
合法阶段状态只有:
active:阶段进行中。awaiting-approval:当前产物已经达到阶段标准,等待用户明确确认。approved:用户已确认,可以推进到下一阶段。overridden:用户在知情确认后越级。
推进规则:
- Agent 达到阶段完成条件后,将状态改为
awaiting-approval,说明已完成什么、仍有哪些缺口。 - 只有用户明确确认,才记录批准并进入下一阶段。
- 切换阶段时更新
current_stage、stage_status、已确认决定和“下一步提示词”。 - 状态文件更新后,再开始下一阶段;不能只在对话中宣布切换。
越级请求
用户说“别问了,直接写全文”或提出其他越级要求时:
- 说明将失去的保障,例如素材缺口未暴露、读者前提未确认或节拍图未批准。
- 询问用户是否确认越级。没有明确确认就停留在当前阶段。
- 确认后,在
writing-session.md的“越级记录”中写明时间、原阶段、目标阶段、用户原因和未完成检查,将原阶段标为overridden。 - 进入目标阶段后仍执行该阶段自身的询问与验收;不把越级结果描述成完整流程产物。
全程不变量
- 每次写任何项目文件前,重新从磁盘读取目标文件,保留用户或其他 Agent 的修改。
- 修改只针对当前同意的碎片、beat 或文章块;不顺手重写其他内容。
- 用户原话、经历、引语、数据和事实不能由 Agent 编造或补全。
- “读者已经理解”按概念判断,不按术语是否出现判断;场景、例子和共有知识都可以完成铺垫。
- 不要求用完所有碎片。文章完成由读者旅程和写作承诺决定。
- 对话中一次只解决当前最重要的写作决定,不一次倾倒整套问题。
- 写作项目文件是事实来源;对话记忆、成功写入提示或旧摘要都不能替代重新读取。
完成
只有在以下条件全部满足时才能设置 current_stage: complete:
- 用户确认文章内容完成。
- Shape 阶段已完成结构、语义、中文表达和事实边界的对抗性验收。
article.md与状态文件一致。- 待核验事实已记录在状态文件中。
- 最终回复明确称其为“语言结构成稿”,没有宣称已核验、已排版或可直接发布。