Files
Neo-ZQYY/docs/_overview/04b-feedback/00-P1-round2-feedback-response-summary.md
Neo 509cf43284 chore(docs): Wave 0 调研产出 + P0/P1/P2 反馈调研
建立项目级标杆文档 docs/_overview/ 作为产品全景索引,
解决"PRD 零碎、文档膨胀、跨子系统调研无入口"的问题。

主要内容:
- 00-index 总索引 + 维护协议 + 与 CLAUDE.md 关系
- 01-product-overview 产品全景脑图(6 角色 / 6 子系统 / 数据流 /
  7 业务概念 / 8+1 AI 矩阵 / 22 术语)
- 02a-miniprogram-page-matrix 小程序 21 页业务指纹
- 02b-adminweb-page-matrix admin-web 19 路由业务指纹
- 03-test-spec 测试规范 (L1-L5 分层 + 走查模板 + 75-95 case 估算)
- 04-doc-conflicts 39 条冲突索引(P0×8 / P1×13 / P2×13 + 5 子项)
- 04a/b/c-conflicts-*-detail 业务故事卡(7 字段:关联/逻辑/影响/选项/判定)
- 05-orphan-pages-cleanup admin-web 6 孤儿页面处置(1 归档 + 4 保留)
- WAVES-MASTER-PLAN.md 全 Wave 主计划(0-5,共 22-32 工作日)
- WAVE-1-KICKOFF.md Wave 1 实施 kickoff
- GLOBAL-DECISION-DASHBOARD.md 全局决策仪表板

反馈调研产物:
- 04a-feedback/ P0 两轮反馈(8+8 项决策 + D-1/2/3 + F-1/2 子代理产出)
- 04b-feedback/ P1 两轮反馈(13+1+5 项 + E-1/2/3/4 + G-1/2 子代理产出)
- 04c-feedback/ P2 反馈(13 项 + 5 子项 + H-1/2/3 子代理产出)
- NEO-DECISIONS-LOG 累积决策记录

关键追加发现 8 处 D Bug(原蓝本 0):
- P0-3 看板沙箱接入(Wave 1 W1-T1)
- P0-5 致命 1 (4 处 fdw_etl 残留, 已修 commit 17f045a)
- P0-5 致命 2 (JWT aud 缺失, 已修 commit 17f045a)
- P0-6 clearAllTasks 守卫 (Wave 3)
- P0-8 DBViewer 黑名单漏 (已修 commit 17f045a)
- P1-3 task-detail 跳转传 task_id 而非 customer_id
- P2-7 board-finance 隐式 null
- 2 个独立 Bug (page_context.created_at + ClueCategory 字典)

参考: docs/_overview/00-index.md
2026-05-04 07:38:28 +08:00

159 lines
7.8 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.
# 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 进入实施轨道。