# 第八篇实际程序验证记录

验证日期：2026-10-05。系统：Windows，Python 3.11.9。执行脚本位于 `snapshots/08-workflow-validation/validate_workflow.py`，复制练习项目到系统临时目录后执行。输入、代码、运行产物与博客源码分开；本次原始命令、退出码和输出见同目录 `program-validation.json`。

测试夹具显式来自独立 `expected/05-output/records.json`，只用于程序验收，没有交给被测试模型。模型调用次数为 0。确认命令也是程序测试动作，不代表读者完成了实际模型候选的人工审核。

## 已完成检查

19 项检查均通过：

1. S3 第一次读取接口注入超时后停止下游。
2. 恢复保留 S1/S2 原始字节、摘要与修改时间。
3. 六份来源完成，S3 累计 2 次，其他各 1 次。
4. 合格结构候选生成待审稿并停在 waiting_review。
5. 不匹配确认摘要无法产生 output。
6. 当前摘要确认后，12 条夹具记录与三文件一致；冲突、缺失与零值保留。
7. 重复 resume、同摘要 approve、重复 start 均保留原运行文件与修改时间。
8. 一个命令内的有限自动重试正常。
9. 累计第三次超时后 blocked，重启没有第四次调用。
10. 缺一条记录的候选阻止待审与交付。
11. 保留失败候选，另存修订版本后能够继续。
12. MIT 人为事实错误但结构合法时，仍只进入待审，不声称程序语义通过。
13. 待审稿变化阻止旧摘要确认，错误文件不被覆盖。
14. 锁冲突阻止写入并保留锁。
15. 固定输入版本变化时停止恢复，既有运行保留。
16. 未完成运行的候选路径不能逃出本次 inbox。
17. 模拟中断后已有同内容未登记产物可以重新登记。
18. 未登记部分产物与预期不一致时保留并停止。
19. 临时副本的固定项目文件摘要最终保持不变。

测试脚本只在临时副本修改故障候选、状态索引和已有文件，属于明确的程序实验；不修改博客原资料或实际工作目录。普通状态更新、排他锁和同内容比较不能推出断电、多机事务或对抗性安全保证。

## 验证限制

没有运行独立模型或原生 Agent；T01/T02/T03 任务是读者实验入口，没有测得模型自主恢复成功率。没有连接 MCP、调用 Platform API、真实在线重试、远端发送、服务端去重、定时调度、Linux 原生运行或多 Python 版本。故障是主动抛出的 TimeoutError，不能当成真实网络/磁盘故障。状态文件中的本地确认不是认证机制或独立事实证明。

文章、来源定位、下载包、导航与站点构建在写作交付时另行核对；本文件的 19 项结论仅描述上述程序验收。
