# Round 70 多智能体并行实施计划:审批数据库权威 Clock / TTL / CAS > 日期:2026-08-04 > 状态:`PLAN AUDIT: PASS` > 原则:写边界互斥;测试智能体不得直接修改实现文件;主 agent 负责最终集成和门禁。 ## 1. 依赖图 ```text W70-DISCOVERY ├─ W70-CLOCK ├─ W70-SCHEMA └─ W70-TEST-DESIGN ↓ Main integration ↓ focused regression ↓ independent audit/fixes ↓ full golden + runtime + detect_changes ``` W70-DISCOVERY 已完成:确认 MySQL DDL 当前为 FLOAT;本机 Docker daemon 不可用且无 mysql client;`DatabaseApprovalStore` LOW impact,`ApprovalRequestRecord` HIGH impact。 ## 2. Worker 边界 ### W70-CLOCK - 写:`server/agent_core/approval_db_store.py` - 不写:models、migration、tests、Harness/API - 交付:dialect-aware transaction clock;同 session DB now;request CAS expiry;grant consume/expire;fail-closed 错误分类。 - 自检:approval clock/store focused tests、Ruff、compileall。 ### W70-SCHEMA - 写:`server/db/models.py` - 新建:`server/db/migrations/versions/20260804_01_approval_database_clock.py` - 不写:approval store 逻辑、tests、API - 交付:六个 epoch 字段 MySQL DOUBLE variant;upgrade/downgrade;新 revision;InnoDB/索引/FK 不漂移。 - 自检:MySQL/SQLite DDL 编译、migration upgrade/downgrade、Ruff、compileall。 ### W70-TEST - 新建:`tests/golden/test_approval_database_clock.py` - 必要时写:`tests/golden/test_approval_database_store.py` - 不写:生产代码、migration、docs - 交付:TTL 边界、应用时钟偏移无权威性、DB clock 失败关闭、approve/expire、consume/expire、事务回滚、MySQL DOUBLE/SQL 编译。 - 自检:新测试 + 现有 approval database/migration/store/harness 回归。 ### Main agent - 写:Round 70 文档、`plan.md`、完成矩阵、CHANGELOG;必要的窄集成修复需先 impact。 - 负责:合并审阅、全量回归、数据保护、服务健康、GitNexus reindex/detect_changes、独立只读审计。 ## 3. 集成策略 1. W70-SCHEMA 先提供 revision/type 合同,W70-CLOCK 只引用新 required revision,不接触 migration。 2. W70-TEST 可先基于约定接口写测试;最终由主 agent 对齐具体私有函数名。 3. Worker 之间不得互相修改对方文件;如发现接口不一致,通过消息交给主 agent 集成。 4. 任何修改 Harness/API/文件 backend 的需求视为扩界,停止并重新 impact。 ## 4. 最终验收 - 本地合同全部通过后,结论为 `R67-B2 LOCAL PASS / EXTERNAL MYSQL PENDING`。 - 无真实 MySQL 8、多节点、时钟偏移、网络/HA 故障注入证据时,完成矩阵保持 Partial external。 - 最终审计必须区分 SQLite 合同、MySQL 方言编译和真实 MySQL 环境三种证据层级。 ## 5. Pre-target-merge gate 本轮明确不 commit/merge。未来若获授权,主 agent 必须先报告: - HIGH impact 模型变更和迁移风险; - 数据库时间、TTL、CAS 与事件原子性证据; - SQLite 与真实 MySQL 的验收边界; - 全量回归、detect_changes 和未关闭外部风险; 并等待用户确认后才能进入 target merge。