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 残留, 已修 commit17f045a) - P0-5 致命 2 (JWT aud 缺失, 已修 commit17f045a) - P0-6 clearAllTasks 守卫 (Wave 3) - P0-8 DBViewer 黑名单漏 (已修 commit17f045a) - 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
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
# 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 进入实施轨道。
|
||||
Reference in New Issue
Block a user