edit | blame | history | raw

CODE-D-HEAVY-001 manifest 结果包校验 helper 编码方案

创建人员:Codex
文件职责:记录 DEV-D-HEAVY-001 的重型编码方案、接口、测试、风险和验收方式。
管理规范/模板:../../../common/dev-doc/编码规范.md;../../../common/dev-doc/编码方案范本.md。
引用文件:../开发工作区说明.md;../目录导读.md;../../开发事项总纲.md;../../开发事项计划.md;../../开发审计报告.md;../../../exp-doc/实验设计.md。
记录方式:重型开发方案;方案变化时追加修订记录。

1. 背景和目标

实验 EXP-D-HEAVY-001 需要一个脚本校验结果包 manifest 是否完整、文件是否存在、sha256 是否匹配,并输出可审计结果包。

2. 模块接口

代码路径:dev/exp-dev/manifest_pack_validator.py

CLI:

python dev/exp-dev/manifest_pack_validator.py --input-root exp-data/raw/EXP-D-HEAVY-001 --output-dir exp-data/result/RUN-D-HEAVY-001

输入目录下每个 case 目录包含 manifest.json

manifest schema:

字段 类型 说明
package_id string 包 ID
files array 文件清单
files[].path string 相对 case 目录的文件路径
files[].sha256 string 文件 sha256

输出:

  1. summary.json
  2. case_results.csv
  3. readout.md

3. 公共逻辑

实现公共函数:

  1. sha256_file(path)
  2. load_manifest(case_dir)
  3. validate_case(case_dir)
  4. write_outputs(results, output_dir)

4. 测试方案

测试覆盖:

  1. valid_pack:文件存在且 hash 正确,应 PASS。
  2. invalid_pack_missing_file:manifest 指向缺失文件,应 FAIL。
  3. invalid_pack_hash:文件存在但 hash 错,应 FAIL。

5. 风险和处理

  1. 路径风险:manifest 只能使用相对路径,不允许绝对路径。
  2. 审计风险:readout 必须包含创建人员、文件职责、管理规范/模板、引用文件、记录方式。
  3. 结果风险:任何 case 失败不影响脚本运行完成,但 summary 要统计失败数。

6. 验收标准

  1. py_compile 通过。
  2. unittest 通过。
  3. 实验结果包 3 个文件存在。
  4. summary 中 total_cases=3、pass_count=1、fail_count=2、quality_pass=true。
  5. 开发审计和实验审计能追到代码、测试、结果包和修复记录。