CHAPTER 14 · 公开候选
多角色协作不是把同一任务复制三遍。你会按交付物拆成盘点、起草、审查三条单写路径;审查只能记录发现,不能改草稿;建议 A 与 B 都要留到人工决定。
打开第 14 章练习入口。完整任务位于练习包内 tasks/chapter-14.md;网站只提供下载与阅读,不会替你执行本地文件。
1. 起点
你要把前章成果整理成训练包,需要盘点、起草和审查三种不同工作。两份虚构建议互相冲突,不能靠角色“投票”自动决定。
先理解问题
协作失控往往不是模型不够强,而是两个角色同时写一份文件,或审查者直接把草稿改成自己的版本。本章用目录、唯一交付物和前后哈希,把职责边界变成可检查事实。
2. 只读输入
inputs/chapter-14/master-task.mdinputs/chapter-14/role-inventory.mdinputs/chapter-14/role-draft.mdinputs/chapter-14/role-review.mdinputs/chapter-14/conflict-a.mdinputs/chapter-14/conflict-b.md- 第 8—13 章已验收成果
建议阅读顺序
先读总任务,再读三张角色卡,最后并排读 conflict-a 与 conflict-b。不要在角色输出前决定哪个建议“更好”。
3. 唯一写入位置
- 盘点只写
workbench/collaboration/inventory/ - 起草只写
workbench/collaboration/draft/ - 审查只写
workbench/collaboration/review/ - 你只写
workbench/collaboration/human-decision/ - 角色边界账本写
workbench/collaboration/role-boundaries.json - 总交接写
workbench/collaboration/handoff.md
写入位置是本章的安全边界。Codex 可以创建目录,但不能扩大到 inputs、checkpoint 或别章输出。
4. 本章唯一成果
得到四份隔离结果:inventory/materials.md、draft/training-package.md、review/findings.md、human-decision/decision.md,以及 role-boundaries.json 和 handoff.md。
role-boundaries.json 不是额外业务内容,而是检查器读取的边界账本。它必须记录三角色各自的 writableDirectory 与 delivery、草稿审查前后的 draftHashBeforeReview / draftHashAfterReview,以及两份冲突原文的 conflictSourceHashes。这些值都从本轮实际目录和 SHA-256 计算得到,不手填占位值。
成果必须能打开、能回查、能由本章检查验证。只有一句“已经完成”不算交付。
5. 可复制给 Codex 的任务
读取 inputs/chapter-14 的总任务和三张角色卡,按交付物而不是工具名称执行三步协作。盘点角色只写 inventory/materials.md;起草角色只读盘点和已确认事实,只写 draft/training-package.md;审查角色只读前两份结果,只写 review/findings.md,不得改草稿。完整保留 conflict-a.md 与 conflict-b.md 的冲突。审查前后分别计算草稿 SHA-256,并把三角色目录/交付物、两个草稿哈希和两份冲突原文哈希写入 collaboration/role-boundaries.json;字段名使用 writableDirectory、delivery、draftHashBeforeReview、draftHashAfterReview、conflictSourceHashes。不要替人工选择,也不要用角色票数决定。三份角色输出和边界账本完成后,只核对目录、交付物和哈希并停下等待我决定;此时决定与交接尚未完成,不要运行全量 check:14。等我在 human-decision/decision.md 记录采用、退回或暂停后,生成 handoff.md,再运行 npm run check:14。
把代码块整段复制,不要拆掉输入范围、停止条件和检查命令。Codex 的总结不能代替产出文件。
6. 你必须亲手完成
阅读盘点、草案、审查意见和两份冲突建议。亲自选择“采用 A”“采用 B”“退回补材料”或“暂停”,在 human-decision/decision.md 写明依据、未采用或未决项和下一步,再让 Codex 生成交接。检查器接受这四种人工决定,不替你预设答案;若选择“退回补材料”或“暂停”,本章可以验收,但连续实战必须停在这里,不能假装已经获准进入第 15 章。
人工动作为什么不能省
你要亲手选择采用 A、采用 B、退回补材料或暂停,并写依据、未采用项和下一步。参考完成态的“采用 B”只是虚构人工步骤示例,不能复制成你的决定。
7. 你应该看到
- 三个角色各有且仅有一个输出目录。
- 草案没有被审查者直接覆盖。
role-boundaries.json中审查前后草稿哈希相同,两份冲突源哈希都能回到只读输入。- 两份冲突建议都保留原文和证据位置。
- 最终选择只出现在你的人工决定记录中。
跟着做:从输入到可观察结果
1. 按交付物拆角色
抄出盘点、起草、审查各自唯一目录和文件。
**你应看到:**三条写入路径没有交集。
2. 顺序执行
把第 5 节任务整段交给 Codex,要求它按盘点、起草、审查顺序写入三个隔离目录。
**你应看到:**三个角色各产出一份文件,role-boundaries.json 记录实际路径。
3. 证明审查未改稿
比较 draftHashBeforeReview 与 draftHashAfterReview。
**你应看到:**两个哈希完全相等;审查只写 findings。
4. 保留冲突并人工决定
在 findings 中找 A/B 两条建议,亲手写决定,再运行 npm run check:14。
**你应看到:**角色输出没有 FINAL_CHOICE,最终选择只有 human-decision 一处真源。

参考完成态:本地实跑记录
- 三个角色目录互不重叠,每个只有一份交付物。
- 审查前后草稿哈希相同。
- 参考决定明确标为虚构示例,不代表作者已经审核。
证据文件:completed-example/collaboration/role-boundaries.json。这些记录只证明虚构练习在本地按规则跑通,不代表网站已发布、现实用户已使用或作者已批准。
8. 三个真实坑
坑 1:按工具名而不是交付物分工
角色卡检查的是读写目录和唯一交付物;“让三个 AI 都完善内容”会因为共享写入而失败。
坑 2:多个角色共写一份文件
检查会比较角色允许目录和实际变更。审查者直接改草稿或盘点者补写决定都会越界。
坑 3:用 AI 投票替代人工裁决
两份建议故意冲突且没有预设多数。没有 human-decision/decision.md 时,章节不能通过;任何自动票数都不是决定依据。
这三个坑都由练习材料、代码或检查实际暴露,不是提醒语。
先看信号,再做补救
**识别信号:**两个角色写同一路径、审查前后草稿哈希变化,或角色输出出现 FINAL_CHOICE,说明职责边界已经失控。**补救动作:**只移走越界角色自己的目录,保留前序交付与冲突输入,按盘点→起草→审查重跑;最终选择仍由人写入唯一决定文件。
补救后仍不能让本章检查因正确原因通过,就按第 10 节停止并回退;不要手改日志或复制参考完成态绕过。
9. 复选框验收
- 盘点、草案、审查各自只写唯一目录。
- 审查意见有证据位置且未改草稿。
-
role-boundaries.json已记录角色边界、草稿前后哈希和两份冲突源哈希。 - 两份冲突建议完整保留。
- 我已亲手记录决定、理由与下一步。
- 如果我选择退回或暂停,已停止而没有进入第 15 章。
-
npm run check:14通过。
每一项都要靠打开文件或完成动作后再勾选;不要只凭 Codex 报告的 PASS。
10. 停止、回退与交接
出现共享写入、冲突被覆盖、审查直接改稿或没有人工决定时停止。回退只重建越界角色的目录,保留冲突和审计记录。交给第 15 章的是 handoff.md 和人工明确采用的成果;被退回或暂停的内容不得进入最终工作台。
**停止条件:**出现共享写入、审查改稿、冲突被覆盖、角色自动选择、或人工决定没有依据。
**回退动作:**只重建越界角色自己的目录,保留前序交付、冲突输入和审计记录。
**交接文件:**collaboration/handoff.md 与 human-decision/decision.md;第 15 章只接收人工采用的结果。