DATA_RULE_M4_ACCEPTANCE_20260724.md 6.2 KB

数据规则完整执行 M4 阶段验收记录

日期:2026-07-24
分支:codex/data-rule-execution-m3a-m5
验收范围:可信发布、数据标准/数据规则组装、数据生产线收敛

1. 验收结论

M4 通过验收,可以进入 M5 数据工厂投产阶段。

本阶段已把自然语言规则形成的候选结果收敛为不可变、可证明、可组装的 RuleVersion / DataStandardVersion / DataFlowVersion 边界。数据流程只能 组装服务端证明已发布且编译、测试、Schema 哈希证据一致的固定版本;发布前 Schema 漂移、证据不一致、版本失效或请求篡改都会失败关闭。

生产线草稿创建采用 PostgreSQL/Neo4j 可恢复 Saga,具备请求摘要绑定、响应丢失 重放、租约围栏、无客户端回执对账、UID/名称数据库唯一性和原子标签关系。旧 code/task/Python/n8n 字段不能再成为新受治理流程的执行语义。

2. 交付能力

2.1 可信规则发布

  • 发布只接受已验证的自然语言候选和不可变 RuleVersion
  • 发布逻辑计划固定 compiler、capabilities、plan hash 和 input/output Schema snapshot hashes。
  • compile evidence 与 test evidence 必须成功且与同一逻辑计划、编译器版本、 plan hash、capabilities 和 Schema hashes 完整一致。
  • golden-row 对比、Schema 漂移、证据篡改、失效版本和越权发布均失败关闭。

Task 7 最终提交:8e42704 test: exercise golden row comparison boundary

2.2 数据标准与数据流程组装

  • 数据标准自然语言录入强制生成规则候选,再发布并绑定固定 RuleVersion; 标准本身不保存可执行代码。
  • 数据流程组装支持 rule.applystandard.enforcequality.check 三类 工位,并固定标准、规则、数据集和 Schema 版本。
  • 目录兼容性由服务端 SchemaResolver 解析当前快照,与发布逻辑计划中的 Schema hashes 比较;Standard 会展开全部固定规则逐条验证。
  • exact-version hydration、请求序列防旧响应覆盖、未知/不兼容阻断和 Release-ready 状态均已落实。
  • context-aware catalog GET 对新快照采用显式事务提交;返回的 snapshot ID 跨请求稳定且可从独立数据库会话查询。

2.3 可恢复生产线创建

  • 迁移 20260723_210 建立 actor-bound、短期、单次草稿 reservation。
  • 前向迁移 20260724_220 建立 reserved/creating/completed/failed Saga、 lease、attempt、图节点引用、结果及 SHA-256 摘要。
  • 前向迁移 20260724_230 固化 canonical request、server-owned intent 和 request digest;claim、replay、finalize 全程校验。
  • Neo4j 创建使用 UID MERGE,并安装 DataFlow.uidDataFlow.name_zh 数据库唯一约束。
  • 对账器默认 dry-run;apply 模式逐条 claim、语义验证后续租、再执行图副作用, complete/fail 均使用 lease token 围栏。
  • 畸形、超限或摘要不一致记录逐条终止隔离;基础设施故障保留可重试状态。
  • 标签关系使用严格原子 MERGE;失败不会把 Saga 错误标记为 completed。
  • 前端保存 reservation expiry,在到期前 60 秒续订;仅 draft_reservation_refresh_required 才换 UID 并安全重试一次。

Task 8 最终提交链:

  • f31cc2e feat: assemble production lines from published rule assets
  • 90b16af fix: close governed rule assembly cutover gaps
  • e4a64a3 fix: secure governed dataflow assembly boundary
  • 6decbe9 fix: make governed dataflow creation recoverable
  • 99411f3 fix: bind and reconcile governed dataflow creates
  • 21c4f89 fix: fence dataflow create reconciliation
  • 29c6746 fix: enforce unique governed dataflow names

详细实现报告:.superpowers/sdd/task-8-report.md

3. 验收证据

3.1 自动化测试

  • Task 7 完成态全量:632 passed, 29 skipped, 59 subtests passed
  • M4 最终提交态全量:682 passed, 34 skipped, 59 subtests passed
  • 第七轮独立复审聚焦测试:40 passed, 4 skipped
  • git diff --check:通过。
  • Ruff 选择性 FIB:通过。

最终全量中的 skip 是需要显式外部连接或可选运行环境的测试,不代表静默降级; 关键 PostgreSQL、Neo4j 和 API 场景已在配置真实连接的独立命令中执行。

3.2 真实基础设施

  • PostgreSQL/API/Neo4j 验证覆盖:
    • 两会话并发 reservation/lease 抢占;
    • completed 响应重放和请求摘要冲突;
    • 相同 Schema 引用发生 hash 漂移;
    • catalog snapshot ID 跨请求稳定并可查询;
    • 图成功、PG 未 finalize、客户端回执丢失后的无 nonce 对账;
    • 两个 reconciler 仅一个取得所有权;
    • 原子标签 MERGE 重试后关系仍唯一;
    • 两个不同 UUIDv7 使用同一 name_zh 时一成功、一 dataflow_uid_conflict,最终节点数为 1。
  • Docker backend/frontend 已由最终源码重建并为 healthy。
  • 容器 Alembic:20260724_230 (head)
  • 应用健康接口:HTTP 200,数据库与 Neo4j healthy。
  • 前端:HTTP 200。
  • 前端生产构建:0 errors;保留 20 个既有 console warnings。

3.3 独立审查

Task 8 经七轮独立审查。前六轮发现的跨库非原子双写、Schema 字符串伪兼容、 租约续订、请求摘要重放、无客户端对账、快照幽灵 ID、批量租约过期、毒记录 阻塞、标签非原子以及名称 TOCTOU 问题均已逐项修复并补回归测试。

第七轮结论:APPROVE,新增代码未发现 P1/P2。

4. M5 入口条件

以下条件已满足:

  • 已发布规则和标准可作为不可变生产线资产;
  • DataFlow 组装不接受 inline SQL/Python/凭据或未发布版本;
  • Schema、编译、测试和版本证据可由服务端验证;
  • 生产线创建可恢复、可重放、可对账;
  • Docker 控制面已在最终代码和迁移上健康运行。

以下属于 M5,不作为 M4 残余缺陷:

  • DataFlowDeployment 的 disabled deploy、canary、activate、supersede 和 rollback 状态机;
  • Data Factory 独立权限和操作界面;
  • Kestra 稳定性修复、真实试生产、重启恢复和有界 soak;
  • 完整 AI 规则到数据产品 E2E、容量门槛、运行手册及 data_factory_activation=true 最终开闸。