跳转至

独立审计集成(FND-060)

本目录是独立审计(Audit)消费已发布 Contracts 的最小集成面。审计的职责是:以独立于生成器与 oracle 的 fixture、预期值和裁决,验证被消费的 skill-family-contracts 包没有被篡改、削弱或漏检。

权威边界

  • 审计只消费 Contracts 的公开接口(describeAuditSurfacevalidateDocumentcheckOperationfindProtocolisRegisteredErrorCodedigestDocument 等),依赖方向恒为 Audit → Contracts;
  • 审计不依赖 engineering-kit,也不依赖 harness(见 independence.md 的机械证明);
  • Contracts 不反向依赖审计:Contracts 侧只新增了只读投影模块 src/audit-surface.mjs,不接受任何回调、注册或审计侧输入;
  • 审计 fixture、预期与裁决全部由产品侧维护(夹具 provenance product-fixture,pin provenance product-compatibility-fixture),不复用生成器自测预期表,也不读取 oracle 判据(该隔离由 independence.md 的机械证明强制)。

目录结构

docs/integration/audit/
  README.md                     本文件
  mutation-taxonomy.md          五类变异分类学(冻结)
  failure-evidence.md           失败证据格式与 AUD 码登记表
  version-compatibility.md      版本兼容定义
  isolation-and-lockfile.md     隔离安装与包锁验证设计
  independence.md               独立性声明与机械证明
  schemas/audit-evidence.schema.json   证据文档的 JSON Schema(审计自有)
  baseline/contracts-1.12.0.pin.json   Contracts 1.12.0 当前候选基线 pin(摘要+事实)
  baseline/contracts-1.11.0.pin.json   Contracts 1.11.0 只读兼容存档 pin
  baseline/contracts-1.10.0.pin.json   Contracts 1.10.0 只读兼容存档 pin
  baseline/contracts-1.9.0.pin.json    Contracts 1.9.0 只读兼容存档 pin
  baseline/contracts-1.8.0.pin.json    Contracts 1.8.0 只读兼容存档 pin
  baseline/contracts-1.6.0.pin.json    Contracts 1.6.0 只读兼容存档 pin
  baseline/contracts-1.5.0.pin.json    Contracts 1.5.0 只读兼容存档 pin
  baseline/contracts-1.1.1.pin.json    Contracts 1.1.1 只读兼容存档 pin
  baseline/contracts-1.1.0.pin.json    Contracts 1.1.0 只读兼容存档 pin
  baseline/contracts-1.0.0.pin.json    Contracts 1.0.0 只读兼容存档 pin
  baseline/audit-codes.json            AUD 码登记表(append-only)
  fixtures/{structure,semantics,digest,omission,engine}/   18 个变异 fixture
  runner/                       审计运行器(只读,证据输出到 stdout)

运行

# 完整管线:独立性证明 → 包锁验证 → 变异重放 → 漏报负例自检
node docs/integration/audit/runner/run-all.mjs

# 分步运行
node docs/integration/audit/runner/proof-independence.mjs   # 独立性机械证明
node docs/integration/audit/runner/verify-lock.mjs          # 消费包 pin/锁验证
node docs/integration/audit/runner/run-audit.mjs            # 变异重放 + 证据
node docs/integration/audit/runner/selftest-negative.mjs    # 漏报负例控制

退出码约定:0 通过;1 有发现(verdict fail);2 用法或机制错误。所有报告以 JSON 输出到 stdout,运行器对仓库零写入

裁决规则

  • 五类变异(结构、语义、摘要、遗漏、检查引擎被削弱)每类至少 3 个 fixture,且至少检出 1 个;
  • 任一类漏报即失败:覆盖门(AUD-MISS-001)机械强制,漏报类的存在使整体 verdict 必为 fail;
  • 任一 fixture 未被如预期检出、基线 pin 漂移、fixture 信封不合法,都产生 mandatory 级发现并使 verdict fail。