‹ 返回笔记 · Back to notes

现场手记

《Codex 使用手册》· 第 15 章|完整实战:做一个可维护的资料工作台

把前七章已验收成果接成 17 个本地入口,并用 A-13 实际完成白名单更新、回退和重放。

CHAPTER 15 · 公开候选

最后一章不是写一份“项目完成说明”。你会打开统一入口的真实链接,用 A-13 只改四个白名单业务文件,运行受影响检查,实际回退到更新前哈希,再确定性地重新应用。

打开第 15 章练习入口。完整任务位于练习包内 tasks/chapter-15.md;网站只提供下载与阅读,不会替你执行本地文件。

1. 起点

第 8—14 章已经交出并验收了各自成果。现在要把人工采用的结果接成一个入口,并用新增材料 A-13 完成一次可回退的小更新。

先理解问题

可维护的判断标准不是目录看起来完整,而是下一位能从入口开始,知道读什么、写哪里、失败时如何恢复。A-13 更新把这件事变成一次真实演练:范围受限、检查可跑、回退等值、重放确定。

2. 只读输入

  • 第 8—14 章通过检查的成果和人工决定
  • inputs/chapter-15/A-13.md
  • inputs/chapter-15/update-request.md

任何未验收、被退回或仍待确认的前章内容都不进入工作台。

建议阅读顺序

先读第 14 章 handoff 和人工决定,再读 A-13 与 update-request;最后才打开更新脚本。入口只接收已验收且被采用的成果。

3. 唯一写入位置

只写 workbench/handoff/,以及更新请求明确允许的 workbench/library/workbench/content-package/ 副本。不得改 inputs/、checkpoint 或前章证据。

写入位置是本章的安全边界。Codex 可以创建目录,但不能扩大到 inputs、checkpoint 或别章输出。

4. 本章唯一成果

交付 index.htmlmaintenance-log.mdtest-record.mdrollback-point.jsonrollback-proof.jsonHANDOFF.mdmaintenance-checklist.md,并证明 A-13 可更新、可检查、可回退。

rollback-proof.json 必须在实际回退并逐文件比对之后生成:顶层记录 exactRestoration: true 和回退命令的 directExitCode: 0files 为四个白名单业务文件逐一记录 actualSha256exact: true。其中 actualSha256 必须等于 rollback-point.json 中同一文件的 beforeSha256,不能只写一句“已经恢复”。

成果必须能打开、能回查、能由本章检查验证。只有一句“已经完成”不算交付。

5. 可复制给 Codex 的任务

只整合第 8—14 章已通过检查且被人工采用的成果,在 workbench/handoff/index.html 建一个离线统一入口,逐项链接资料库、内容包、记录页、批处理、事件证据和协作决定。先运行 node scripts/apply-update.mjs workbench,记录允许文件的更新前哈希到 rollback-point.json,再按 inputs/chapter-15/update-request.md 把 A-13 作为一次最小更新加入获准的资料库和内容包副本,写 maintenance-log.md,运行受影响检查并写 test-record.md。执行 node scripts/rollback-update.mjs workbench;直接记录退出码,逐一计算四个白名单文件回退后的 SHA-256,与 beforeSha256 比较,并把 exactRestoration、directExitCode、每个文件的 actualSha256 和 exact 写入 rollback-proof.json。只有全部逐字节恢复,才运行 node scripts/apply-update.mjs workbench --reuse-rollback-point 重新应用经检查的更新。脚本也接受把 --reuse-rollback-point 放在目标目录之前,但不得省略或猜测其他参数。写清从哪里开始、读什么、改哪里、何时回退、何时停止的 HANDOFF.md 和维护清单。最后运行 npm run check:15。

把代码块整段复制,不要拆掉输入范围、停止条件和检查命令。Codex 的总结不能代替产出文件。

6. 你必须亲手完成

从统一入口依次打开六类前章成果;检查 A-13 在资料库与内容包中的表达一致;亲手执行一次回退并比较结果;最后按 HANDOFF.md 判断下一位是否能在不询问背景的情况下开始一次小更新。

人工动作为什么不能省

你要亲手打开资料、交付、记录、批处理、事故、协作、维护七类入口;再实际运行一次 rollback-update 和重新 apply。文档写“可回退”而没有真实回退,不算完成。

7. 你应该看到

  • 入口的本地链接全部可达,没有链接到未采用成果。
  • A-13 只改变授权的资料库、内容包和维护记录。
  • 记录页 v1.1 和其他未受影响检查仍通过。
  • 回退后哈希与更新前完全一致,重新应用后检查再次通过。
  • rollback-proof.json 中四个 actualSha256 都等于对应的更新前哈希,且没有把未执行的回退写成成功。

跟着做:从输入到可观察结果

1. 建立统一入口

把第 5 节任务整段交给 Codex,只整合前章已通过检查且被人工采用的成果。

**你应看到:**handoff/index.html 有 17 个本地链接,未采用和待确认内容不进入主线。

2. 应用白名单更新

脚本先记录四个业务文件 before 哈希,再把 A-13 加入资料库和文字内容包。

**你应看到:**只有 index.csv、update-log.md、facts.md、one-page-summary.md 四个既有文件变化。

3. 实际回退与重放

运行 node scripts/rollback-update.mjs workbench,再运行 node scripts/apply-update.mjs workbench --reuse-rollback-point

**你应看到:**回退逐字节等于 before;重放逐项等于第一次 after。

4. 全链检查与交接

运行 npm run check:15npm run check:all,再读 HANDOFF 的五个问题。

**你应看到:**17 个链接可达,记录页回归绿色,输出 LAB_ALL_PASS: inputs + Chapters 8–15

第15章最终离线工作台,展示资料、交付、记录、批处理、事故、协作和维护入口
真实最终工作台:17 个本地链接直接打开前章成果和维护证据;页面本身不联网、不执行外部发布。

参考完成态:本地实跑记录

  • 17 个相对链接全部解析到现有文件。
  • A-13 只改变四个白名单业务文件,回退后逐字节恢复。
  • 重放哈希与第一次一致,全练习检查通过;最终 ZIP 仍需从零独立复演并核对哈希。

证据文件:completed-example/handoff/index.html。这些记录只证明虚构练习在本地按规则跑通,不代表网站已发布、现实用户已使用或作者已批准。

8. 三个真实坑

坑 1:一次塞入所有扩展

更新请求只授权 A-13 和三类文件。增加新模块、字段或协作角色会被变更范围清单拦住。

坑 2:打开离线入口后就写“已经发布”

识别信号是:你只在本机打开了 handoff/index.html,却在交接里出现“发布完成、已经外发、现实用户可用”。立刻删掉这类越界结论,把状态恢复为“虚构、离线、练习”;真正发布必须另行获得作者批准并完成部署验收。

坑 3:交接责任与下一步不清

HANDOFF.md 必须回答开始、读取、写入、回退和停止五个问题。只有文件列表、没有责任边界不能通过。

这三个坑都由练习材料、代码或检查实际暴露,不是提醒语。

先看信号,再做补救

**识别信号:**有死链、超过四个既有业务文件变化、rollback 后实际哈希不等于 before,或离线练习被写成线上发布,说明维护闭环失真。**补救动作:**立即停止并保留当前哈希;只有当前文件仍匹配 after 时才运行确定性回退,逐文件比对成功后再重新应用,不能强制覆盖。

补救后仍不能让本章检查因正确原因通过,就按第 10 节停止并回退;不要手改日志或复制参考完成态绕过。

9. 复选框验收

  • 统一入口的全部本地链接可达。
  • A-13 只影响授权文件且前后表达一致。
  • 受影响检查和记录页回归均通过。
  • 回退精确恢复,重新应用后再次通过。
  • rollback-proof.json 记录了真实退出码与四文件逐字节比对结果。
  • npm run check:15 通过。

每一项都要靠打开文件或完成动作后再勾选;不要只凭 Codex 报告的 PASS。

10. 停止、回退与交接

入口有死链、更新越界、资料库与内容包不一致、回归失败或回退不等值时停止。使用 rollback-point.jsonscripts/rollback-update.mjs 恢复,不靠手工猜。最终交接文件是 workbench/handoff/HANDOFF.md;本地检查或 AI 复演不能被写成另一位人类已经完成复演。

**停止条件:**入口死链、白名单外改动、A-13 两处不一致、回归失败、回退不等值、或出现现实发布声明。

**回退动作:**只有当前文件匹配 after 哈希时运行回退;不匹配时先保留现场并停止,不能强制覆盖。

**交接文件:**workbench/handoff/HANDOFF.md、index.html、维护与测试记录、回退点和回退证明。

本页目录
  1. 1. 起点
  2. 先理解问题
  3. 2. 只读输入
  4. 建议阅读顺序
  5. 3. 唯一写入位置
  6. 4. 本章唯一成果
  7. 5. 可复制给 Codex 的任务
  8. 6. 你必须亲手完成
  9. 人工动作为什么不能省
  10. 7. 你应该看到
  11. 跟着做:从输入到可观察结果
  12. 参考完成态:本地实跑记录
  13. 8. 三个真实坑
  14. 坑 1:一次塞入所有扩展
  15. 坑 2:打开离线入口后就写“已经发布”
  16. 坑 3:交接责任与下一步不清
  17. 先看信号,再做补救
  18. 9. 复选框验收
  19. 10. 停止、回退与交接

继续读下去

这些是同一条线索附近的记录。也可以继续追问、回到目录,或从标签进入同一主题。

追问这篇 回到目录 浏览标签