Files
sanguo_moziplus_v2/docs/review/v2-merged-audit.md
T
2026-05-19 22:45:33 +08:00

166 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# moziplus v2.0 背靠背合并审查报告
> **版本**: v1.0
> **日期**: 2026-05-19
> **作者**: 庞统🐦 + 司马懿🗡️
> **方法**: 庞统 vs 司马懿独立审查(背靠背),合并去重、交叉验证
> **子报告**: 庞统 backend-audit.md / frontend-audit.md / prd-coverage-audit.md + 司马懿 simayi-independent-audit.md
---
## 零、交叉验证结论
### 两份审查一致的部分(高置信度)
两份报告在以下核心结论上**完全一致**:
| 结论 | 庞统 | 司马懿 |
|------|------|--------|
| 安全红线(guardrails)是最大 P0 缺口 | ✅ C9 部分实现,R1/R4 缺失 | ✅ 6条中仅2.5条落地 |
| development-plan 严重滞后 | ✅ v2.8标注"待开发"但代码已完成 | ✅ 同 |
| 4个模块"已实现未集成" | ✅ HealthChecker/BootstrapBuilder/InboxWatcher/ExperienceDistiller | ✅ ExperienceStore未auto-distill + router.py未走新路由 |
| 前端组件死代码 | ✅ MorningPanel/GlobalSearch未注册 | ✅ 5个组件无import |
| 文档版本混乱 | ✅ architecture-v2.md应归档 + 10份Topic应归档 | ✅ 同+product-direction-notes |
| 黑板/Ticker/Checkpoint 质量高 | ✅ 与设计高度一致 | ✅ 端到端贯通质量高 |
### 两份审查的互补发现
| 发现 | 来源 | 另一方是否覆盖 |
|------|------|--------------|
| checkpoint_routes.py `_bb()` Bug | 庞统 | ❌ 司马懿未发现 |
| TaskModal StatusButtons 无 onClick | 庞统 | ❌ 司马懿未发现(前端审查更深入) |
| GET /api/daemon/sessions 未实现 | 司马懿 | ❌ 庞统未发现 |
| PATCH vs POST status 偏差 | 司马懿 | ❌ 庞统未发现(API语义审查更细致) |
| DELETE vs POST archive 偏差 | 司马懿 | ❌ 庞统未发现 |
| FK恢复缺finally保护 | 司马懿 | ❌ 庞统未发现(DB层更仔细) |
| 5个前端Tab超前实现(Mail/Usage/Templates/Morning/GlobalSearch) | 庞统 | ⚠️ 司马懿标记为"死代码"(视角不同) |
| 10个任务模板(TEMPLATES)超前 | 庞统 | ❌ 司马懿未发现 |
| Dispatcher可能走legacy路由 | 司马懿 | ❌ 庞统未发现 |
---
## 一、合并后的问题清单(按优先级排序)
### 🔴 P0(必须修)— 5 项
| # | 问题 | 发现者 | 证据 | 行动 |
|---|------|--------|------|------|
| **P0-1** | **安全红线未落地** | 双方一致 | PRD §10.1 六条红线,实盘交易拦截(R1)+系统配置变更拦截(R3)完全无代码;Token消耗追踪(R4)无拦截 | 创建 guardrails.yaml,实现 L1 硬检查 |
| **P0-2** | **development-plan 严重滞后** | 双方一致 | v2.8/M3 标注"待开发"但代码已完成且评审通过 | 立即更新 development-plan |
| **P0-3** | **checkpoint_routes.py `_bb()` 运行时 Bug** | 庞统 | L35 调用 `registry.get_db_path()` 但 registry.py 无此方法 | 修复为正确的方法调用 |
| **P0-4** | **TaskModal StatusButtons 无 onClick** | 庞统 | TaskModal.tsx L141-168 渲染按钮但未绑定处理函数 | 补充 onClick 处理 |
| **P0-5** | **FK恢复缺finally保护** | 司马懿 | db.py _migrate_v28 中 `PRAGMA foreign_keys=OFF` 后异常时无法恢复 | 加 finally 块 |
### 🟡 P1(应该修)— 10 项
| # | 问题 | 发现者 | 证据 |
|---|------|--------|------|
| **P1-1** | HealthChecker未集成到Ticker | 庞统 | health.py完整实现,Ticker未调用 |
| **P1-2** | BootstrapBuilder未集成到Spawner | 庞统 | bootstrap.py 215行,Spawner用自己模板 |
| **P1-3** | InboxWatcher未集成到Ticker | 庞统 | inbox.py完整,事件驱动未启用 |
| **P1-4** | ExperienceStore未自动蒸馏 | 双方 | experience.py 291行,无auto-distill |
| **P1-5** | GET /api/daemon/sessions 未实现 | 司马懿 | technical-design L768定义,spawner有数据未暴露 |
| **P1-6** | 5个前端组件死代码 | 双方 | MorningPanel/ArtifactList/ArtifactPanel/GlobalSearch/ConfirmDialog 无import |
| **P1-7** | ArtifactPanel未集成到TaskModal | 司马懿 | v2.8 §5.1要求,组件已写未接入 |
| **P1-8** | 设计文档版本混乱 | 双方 | architecture-v2.md + 3份重复Topic + product-direction-notes 未归档 |
| **P1-9** | Dispatcher可能走legacy路由 | 司马懿 | dispatcher.py _legacy_dispatch,新Router未生效 |
| **P1-10** | 苏格拉底Skill未注册 + AI规划环节缺失 | 司马懿 | PRD C1/C2核心能力,平台层未落地(依赖Agent Skill |
### 🟢 P2(可以后修)— 8 项
| # | 问题 | 发现者 |
|---|------|--------|
| P2-1 | PATCH status → POST status API语义偏差 | 司马懿 |
| P2-2 | DELETE project → POST archive 偏差(代码更安全,应更新设计) | 司马懿 |
| P2-3 | DAG拓扑视图未实现 | 庞统 |
| P2-4 | SSE实时推送(前端仍用HTTP 5s轮询) | 庞统 |
| P2-5 | 通知中心完整实现(仅铃铛占位) | 庞统 |
| P2-6 | 乐观锁(expected_version) | 庞统 |
| P2-7 | Subagent spawn为placeholder | 庞统 |
| P2-8 | agent-api-contract/routing-redesign未在主架构引用 | 司马懿 |
---
## 二、合并后的 PRD 覆盖率
### §5 十大能力
| 能力 | 庞统评级 | 司马懿评级 | 合并评级 |
|------|---------|-----------|---------|
| C1 需求探索 | ⚠️ 部分(依赖Agent Skill | ❌ 缺口(Skill未注册) | ⚠️ **部分** — 框架有,Skill未注册,属P1 |
| C2 动态规划 | ✅ 完整 | ⚠️ 部分(无AI规划环节) | ⚠️ **部分** — 有路由+审查+调度,缺显式AI规划 |
| C3 持续指挥 | ✅ 完整 | ✅ 完整 | ✅ **完整** |
| C4 共享意识 | ✅ 完整 | ✅ 完整 | ✅ **完整** |
| C5 自主协作 | ⚠️ v2.1+ | ❌ v2.1+ | ✅ **预期缺口** |
| C6 质量门禁 | ✅ 完整 | ✅ 完整 | ✅ **完整** |
| C7 主动汇报 | ✅ 完整 | ✅ 完整 | ✅ **完整** |
| C8 经验沉淀 | ✅ 完整 | ✅ 完整(+未自动调用) | ⚠️ **部分** — 代码完整但未集成自动流程 |
| C9 安全护栏 | ⚠️ 部分 | ⚠️ 部分(2/6落地) | ⚠️ **部分****P0缺口** |
| C10 工具链 | ❌ v2.1+ | ❌ v2.1+ | ✅ **预期缺口** |
**合并覆盖率:4/10 完整,4/10 部分,2/10 预期缺口(v2.1+)**
### §10.1 安全红线
| 红线 | 双方一致评级 |
|------|------------|
| R1 实盘交易拦截 | ❌ **P0** |
| R2 数据删除 | ⚠️ 部分(archive而非delete |
| R3 系统配置变更 | ❌ **P0** |
| R4 Token消耗 | ⚠️ 部分(有警告无拦截) |
| R5 Agent不受控 | ✅ 完整 |
| R6 连续失败 | ✅ 完整 |
---
## 三、做得好的(双方认可)
1. **黑板模块完整扎实** — operations.py 20+方法,覆盖设计文档全部要求
2. **v2.8 + M3 端到端贯通** — DDL→operations→routes→CheckpointPanel→TaskModal,质量高
3. **Ticker 持续指挥** — 580行实现,调度/超时/依赖推进/审查分发职责清晰
4. **状态机严格实现** — VALID_TRANSITIONS + CHECK约束双重保障
5. **前端12 Tab全覆盖** — 远超PRD预期(PRD标注v2.1+
6. **v2.7/v2.8超前实现** — 开发计划标"待开发"但实际已完成
7. **per-project SQLite隔离** — registry.db + 多blackboard.db,架构清晰
8. **Agent友好API** — 详细错误响应含hint + valid_values
---
## 四、行动优先级
### 第一批(本周)— P0 修复
| 行动 | 工作量 |
|------|--------|
| 修复 checkpoint_routes.py `_bb()` Bug | 0.5h |
| 修复 TaskModal StatusButtons onClick | 2h |
| 修复 db.py _migrate_v28 FK finally 保护 | 0.5h |
| 更新 development-plan v2.8 状态 | 1h |
| 创建 guardrails.yamlR1/R3/R4 三条红线) | 1-2天 |
### 第二批(下周)— P1 集成
| 行动 | 工作量 |
|------|--------|
| HealthChecker 集成到 Ticker | 2h |
| BootstrapBuilder 集成到 Spawner | 4h |
| 补实现 GET /api/daemon/sessions | 1h |
| ArtifactPanel 集成到 TaskModal | 2h |
| 清理/接入前端死代码组件 | 2h |
| 文档归档(10份过期文档) | 0.5h |
| Dispatcher 确认走新路由 | 1h |
### 第三批(v2.1+
| 行动 | 说明 |
|------|------|
| 苏格拉底Skill注册 | 依赖Agent层 |
| AI动态规划环节 | 依赖Agent层 |
| DAG拓扑视图 | 需React Flow |
| SSE实时推送 | 前端改造 |
| 工具链自动化 | PRD v2.1+ |
---
*合并审查完毕。庞统🐦 + 司马懿🗡️ 2026-05-19*