# P1 反馈响应总报告(第二轮) > 日期:2026-05-04 / 触发:Neo 在 `00-P1-feedback-response-summary.md` 表格里写下斜体二轮反馈 > 主线 + 1 个子代理(G-1 P4 前置修复深度调研) / 状态:**调研完成,等 Neo 拍板进入实施** 第一轮总报告见 [`00-P1-feedback-response-summary.md`](00-P1-feedback-response-summary.md)。 ## 一、Neo 二轮反馈分类 ### A. 直接同意 12 项(无需调研,直接进 Wave) | # | 反馈 | Wave 分配 | |---|---|---| | P1-1 | 同意接受方案 A | Wave 2 | | P1-2 | 同意 | Wave 5 | | P1-3 | 同意接受 SPEC 化 | Wave 1-3 + Wave 5 | | P1-4 | (默认接受 A 改文档,从清单消除) | Wave 5 | | P1-5 | 同意接受 packages/shared 跨包枚举 | Wave 2 | | P1-6 | 同意接受方案 A 完全合并 | Wave 2 | | P1-7 | 同意接受 B+D 混合 | 跨 Wave | | P1-8 | 同意应用 4 三种触发条件 | Wave 1-3 | | P1-9 | 同意 | Wave 5 | | P1-10 | (默认接受 B 现状对,从清单移除) | — | | P1-11 | 同意 | Wave 1 | | P1-12 | 同意接受 0=散客 + isScattered | Wave 4 | ### B. 要工作的 2 项 | # | Neo 反馈 | 处理 | |---|---|---| | **P1-13** | "牵扯的前后依赖和上下文比看起来更复杂,关联性更高,别轻易修改" | **G-1 子代理深度调研** → 见 §二 | | **extra dev-trace** | "接受 Drop,Wave 排序你来定" | **主线确认 Wave 5** → 见 §三 | ## 二、P1-13 深度调研结论(Neo 担忧严重证实) **G-1 报告** → [`P1-13-deep-research.md`](P1-13-deep-research.md) ### 1. 4 个 T 当前精确状态(tasks.md 状态严重失实) | T | tasks.md 标记 | 实际状态 | Diff | |---|---|---|---| | T1 | [x] | 真已实现 | OK | | T2 | [x] | **被 2026-04-08 Fix-13 重写,语义偏离原 spec** | ⚠️ | | T3 | [ ] | **主体已实现,但有沙箱缺陷**(无 runtime_mode 隔离) | ⚠️ | | T4 | [ ] | 完全已实现 | OK 但需补 sandbox 兼容 | | T5 | [ ] | **半实施**:sync handler OK / cron + AI async 仍漏 | ⚠️ | | T6 | [ ] | 代码默认值改 7:00,**但迁移脚本缺失** | ⚠️ | | **测试** | tasks.md [x] 8 项 | **实际 0 个测试文件** | ❌ **撒谎状态** | **关键意义**:**Neo 的直觉完全正确**。如果按原 P1 总报告的"剩余 T3/T4/T5/T6 纳入 Wave 1-3 一并修"动手,会: - T3 重复改造(已实现,改两次) - T4 重复改造(同上) - T5 没修对地方(缺 cron + AI async 路径) - T6 缺迁移脚本(改代码不改 DB,生产部署后行为不一致) - **测试全部缺失**(tasks.md 标 [x] 但 0 文件) ### 2. 两条致命风险(spec 完全没记录) #### 致命 1:Fix-13 引发的"任务创建-顶替"循环污染 - 2026-04-08 Fix-13 让 `recall_detector` 自己开/关 `follow_up_visit` - 然后又触发 `note_reclassifier` 走 T3+T4 流程 - **每次 `etl_data_updated` 事件触发**,任务表 `coach_tasks` 和历史表 `coach_task_history` **持续被"创建-顶替"循环污染** - spec 完全没记录这个新行为,无人能发现何时进入死循环 #### 致命 2:note_reclassifier 跨沙箱数据污染 - `note_reclassifier` **完全没有 `runtime_mode` 隔离** - sandbox 演示期间,它会**跨模式查询/插入**(沙箱触发的事件 → 改 live 数据,反之亦然) - 可能造成: - 误跳过(本应创建任务,因为查到沙箱里有任务而跳过) - 数据漏写(应该写 sandbox 但写到 live) - **与 P0-7 沙箱收口直接冲突** ### 3. 推荐 Phase 0-3 渐进路径 **绝不要按 P1 第一轮报告的"Wave 1-3 一并修"直接动手**。改按: | Phase | 范围 | 触发条件 | |---|---|---| | **Phase 0** | 跑 5 条 SELECT 看测试库 / 生产 DB 实际状态(确认调研结论) | 立即,1h | | **Phase 1 必修** | 补 T6 迁移脚本 + note_reclassifier 加 `runtime_mode` 列 | Phase 0 通过后,Wave 1 内 | | **Phase 2 决策** | T5 cron 路径与 AI async path 的 path B/C 双路径策略 + last_run_at 兜底机制 | Phase 1 完成后,Wave 1-2 | | **Phase 3 测试补漏** | 补全 8 项测试文件(tasks.md 标 [x] 实际 0 个) | Phase 2 完成后,Wave 2-3 | **绝不混入 Wave 1-3 D Bug 修复批次**(避免一次提交太多变化)。 ### 4. 给 Neo 的 15 个决策题 详见 G-1 报告 §九。本总报告聚焦顶层判断: - **核心 Y/N**:接受 Phase 0-3 渐进路径,不在 Wave 1-3 一次性修?**Y** - **优先级**:Phase 0 立即跑 SELECT?是否需要主线协助?**Y,主线协助** - **测试补漏**:tasks.md 标 [x] 但 0 文件 — 是否要先校正 tasks.md 状态再实施?**Y,先校正** ## 三、dev-trace Wave 排序确认 → Wave 5 **主线决定** → [`extra-dev-trace-wave-schedule.md`](extra-dev-trace-wave-schedule.md) ### 排到 Wave 5 的理由 - Wave 1-3 是业务 D Bug 主线,移除工具页分散注意力 - Wave 2 已有 P1-1 schema 迁移 9 人时,不再叠加 - Wave 5 本来就要做大量结构性清理,合并 1 个 PR 即可 ### 执行清单 - 删除 admin-web 5 文件 + 后端 4 文件 + 数据库表 DROP + 配置清理 + 文档清理 - **总耗时 1-2h 单 PR** - 详细 6 步执行 + 风险回滚方案见排程文件 ## 四、整合后的 Wave 分配(P0 + P1 全部反馈) | Wave | 主要任务 | 累积反馈分配 | |---|---|---| | **Wave 1** | Runtime Context 沙箱 | P0-3 看板接入 / P0-7 SPEC + §15 patch / P0-1 SCD2 视图入口 / P1-11 chat 后端契约 / **P1-13 Phase 0 SELECT 校核(立即)** | | **Wave 1-3** | 代码 D Bug | P0-6 临时守卫 / P0-8 DBViewer / **P0-5 致命 1+2(伪 FDW 残留 + JWT aud)** / P1-3 customer_id / 2 个独立 Bug(page_context + ClueCategory)/ **P1-13 Phase 1 必修(T6 迁移 + runtime_mode 列)** | | **Wave 2** | admin-web AI + schema 迁移 | P1-1 维客线索迁移(9h)/ P1-6 触发器合并 / P1-5 跨包枚举 / **P0-5 Wave 协同 6 项** / **P1-13 Phase 2 决策(T5 path B/C)** | | **Wave 4** | DWS / RLS / 数据正确 | 4.1 财务看板 5 项 / P0-7 todos P1×8 / P1-12 isScattered / **P1-13 Phase 3 测试补漏** | | **Wave 5** | 部署 + 文档收尾 | P0-1/2/4 文档 / P0-5 长期治理 5 项 / P0-7 todos P2×7 / P1-2/9/10/13 文档 / **dev-trace Drop** | | **跨 Wave** | admin API PRD | P1-7 B+D 混合 | | **P0-6 阶段 2** | 沙箱内/全局清空语义 | P0-7 收口后 | ## 五、本轮 Neo 必须答的关键问题 | # | 问题 | 我的建议 | |---|---|---| | 1 | P1-13 接受 Phase 0-3 渐进路径,不一次性修 Y/N | **Y** | | 2 | P1-13 Phase 0 立即跑 5 条 SELECT,主线协助 Y/N | **Y** | | 3 | P1-13 先校正 tasks.md 标记状态 Y/N | **Y** | | 4 | dev-trace 排到 Wave 5 单 PR 1-2h Y/N | **Y** | | 5 | tasks.md 撒谎状态(标 [x] 实际未做)是否要做项目级审计,看其他 SPEC tasks 是否也有 | **Y(强烈建议)** | 第 5 项是**严重的项目治理问题**:如果 P4-prerequisite-fixes 的 tasks.md 撒谎,**其他 SPEC 的 tasks.md 可能也撒谎**。建议起一个跨 Wave 的"tasks.md 真实性审计"任务,排到 Wave 5 文档收尾时统一做。 ## 六、产出文件索引(累积) ``` docs/_overview/04b-feedback/ ├── 00-P1-feedback-response-summary.md (第一轮) ├── 00-P1-round2-feedback-response-summary.md (本文) ├── P1-1-schema-migration-risk.md (E-1) ├── P1-2-mvp-cleanup-result.md (主线) ├── P1-3-4-cross-page-params.md (E-2) ├── P1-5-ai-cache-type-spec.md (E-3) ├── P1-6-trigger-api-merge.md (E-3) ├── P1-7-admin-api-prd-evaluation.md (主线) ├── P1-10-customer-detail-entries.md (E-4) ├── P1-12-scattered-memberid.md (E-4) ├── P1-13-prerequisite-fixes-found.md (主线第一轮) ├── P1-13-deep-research.md (G-1 第二轮) ├── extra-dev-trace-perf.md (E-4) └── extra-dev-trace-wave-schedule.md (主线第二轮) ``` --- > 等 Neo 答 5 个关键问题 + 完成 04c 反馈处理 + 答 P0 二轮 10 问,所有 Wave 进入实施轨道。