独立审计集成(FND-060)¶
本目录是独立审计(Audit)消费已发布 Contracts 的最小集成面。审计的职责是:以独立于生成器与 oracle 的 fixture、预期值和裁决,验证被消费的 skill-family-contracts 包没有被篡改、削弱或漏检。
权威边界¶
- 审计只消费 Contracts 的公开接口(
describeAuditSurface、validateDocument、checkOperation、findProtocol、isRegisteredErrorCode、digestDocument等),依赖方向恒为 Audit → Contracts; - 审计不依赖 engineering-kit,也不依赖 harness(见 independence.md 的机械证明);
- Contracts 不反向依赖审计:Contracts 侧只新增了只读投影模块
src/audit-surface.mjs,不接受任何回调、注册或审计侧输入; - 审计 fixture、预期与裁决全部由产品侧维护(夹具 provenance
product-fixture,pin provenanceproduct-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。