Files
Artemis-Plugins/plugins/artemis-device-test/skill/references/evidence.md
T

2.6 KiB

联合证据报告

用 python scripts/evidence.py bundle --manifest RUN/input.json --out RUN/result 生成独立报告。输出目录必须不存在,防止覆盖历史。evidence_root 相对输入文件目录,可是绝对目录;每条 evidence 必须是其中的相对文件,不能越界或通过符号链接逃逸。

输入示例(实验虚构值,不代表已执行):

{
  "schema_version": 1,
  "run_id": "LAB-20261016-001",
  "evidence_root": ".",
  "context": {
    "execution_mode": "simulation",
    "real_device_test_executed": false,
    "case": {"sheet": "9系统设置", "row": 96, "case_id": "9.132"},
    "tool_versions": {"ffprobe": "实际版本"},
    "artemis": {"session_id": "实际返回的 session"}
  },
  "assertions": [
    {
      "id": "encoded-format",
      "required": true,
      "expected": "原始流 codec_name 为 hevc",
      "actual": "无法取得原始流",
      "verdict": "blocked",
      "evidence": []
    }
  ]
}

verdict 只能是 passed/failed/blocked/inconclusive。passed 和 failed 必须引用真实观测文件;缺证据或提供的 SHA-256 不符时降为 inconclusive,保留 requested_verdict、requested_evidence 及原因。摘要不符的原文件仍收进归档但标记 integrity=mismatch,不能作为通过依据。引用支持字符串路径或 {"path":"probe.json","sha256":"实际64位哈希"}。

汇总仅针对 required=true 的必需断言,顺序为有明确失败→failed,否则有阻塞→blocked,否则有未验证→inconclusive,全部有证据且通过→passed。没有必需断言不能通过。可选断言仍逐条展示,不能用可选断言绕过原用例要求。context.execution_mode 使用 live/offline/simulation,未标注显示 unspecified;模拟/离线不能声明实际执行过真机。人类可读报告顶栏会显示运行性质;真机操作也不意味着所有用例已完成真机验收。

脚本校验文件完整性,并不理解截图、JSON、PCAP 的业务含义。断言的作者必须核对原始预期和实际观测。一个无关但存在的文件不构成有效证据;不把运行脚本成功写为业务通过。用例未执行、只是架构联调时,context 中写明框架场景而非原 Excel 完整覆盖。

输出 manifest.json 保存上下文、断言和文件哈希,report.md 供阅读,bundle.zip 收入两者与文件副本。该脚本不向外发送资料。归档保留原始证据,不自动去除 PCAP、截图、日志中的全部敏感信息;归档前选择/处理允许交付的文件,原始资料按内部测试权限保管。分发 Skill 的 ZIP 不包含现场证据。