Files
Neo-ZQYY/docs/_overview/04c-feedback/00-P2-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

113 lines
6.5 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.
# P2 反馈响应总报告
> 日期:2026-05-04 / 触发:Neo 在 04c-conflicts-P2-detail.md 13 条 P2 + 5 子项 上写下斜体反馈
> 主线 + 2 个子代理(H-1 课程体系+看板限制 / H-2 prompt 答疑+无权限页设计) / 状态:**调研完成,等 Neo 拍板进入实施**
## 一、13 项 P2 + 5 子项 处理状态总览
| # | Neo 反馈 | 处理 | 关键结论 |
|---|---|---|---|
| **P2-1** | 选项 A | 直接确认 | tabBar 旧文档同步为"动态过滤" |
| **P2-2** | 选项 A | 直接确认 | 维客线索 tag 改枚举 + label 双字段 |
| **P2-3** | 选项 A | 直接确认 | 维客线索 source 改枚举 + recorded_by_name |
| **P2-4** | 要再调研 | [P2-4-and-P2-7-research.md](P2-4-and-P2-7-research.md) | **A 两套独立体系**;无两级嵌套;ROOM 是死代码 |
| **P2-5** | 选项 A | 直接确认 | ChatMessage timestamp → createdAt |
| **P2-6** | 选 A + 问 prompt | [P2-6-and-P2-9-design.md](P2-6-and-P2-9-design.md) | **不改 APP1 prompt**;推荐 R2 SQL `LEFT(content,16)` 写 title;`title` 字段已存在未写入 |
| **P2-7** | 选 B + 调研其他限制 | [P2-4-and-P2-7-research.md](P2-4-and-P2-7-research.md) | **新发现 board-finance 隐式 null Bug**(area≠all 三板块凭空消失);board-customer 无问题 |
| **P2-8** | 选项 B(改原 A→B) | 直接确认 | site_admin/tenant_admin **不混入** dev-tools |
| **P2-9** | 选 A + 设计 + 实施 + 测试 | [P2-6-and-P2-9-design.md](P2-6-and-P2-9-design.md) | 表名 `biz.site_contact_info` / 3 端点 / Wave 5 全部 1.7 人天 |
| **P2-10** | 选项 B | 直接确认 | Pydantic Field alias 显式写 |
| **P2-11** | 选项 A | 直接确认 | AI 需求 2 表头 6→8 |
| **P2-12** | 同意建议 | 直接确认 | NS4 加职责边界节 |
| **P2-13.1** | A | 直接确认 | NS3 加 72 组合二分逻辑节 |
| **P2-13.2** | **B**(改 A→B) | 直接确认 | `biz/cfg_event_types.py` 维护源 + 文档自动生成 |
| **P2-13.3** | A | 直接确认 | 接受双入口现状 + PRD 解释 |
| **P2-13.4** | 同意建议 | 直接确认 | 校对 auth.py 实际路径 + 同步 NS1 |
| **P2-13.5** | A | 直接确认 | getSelectedKeys 改造支持多 group 展开 |
## 二、4 件 Neo 必须知道的事
### 1. P2-4 — 课程体系的"两套" + 死代码隐患
H-1 实测发现:
- **`course_type`(`cfg_skill_type`)只有 BASE / BONUS 两类**,**BD 手册说有 ROOM 但数据库实际无**(BD 手册过期)
- **`category_code`(`cfg_area_category`)6 类**(BILLIARD/SNOOKER/MAHJONG/KTV/SPECIAL/OTHER)
- 两套**完全独立**,不是两级嵌套
- **死代码隐患**:`CourseType.ROOM` 枚举 + DWS `room_*` 列均存在,但配置数据未提供 → **所有 ROOM 相关代码分支永不命中**
修正后 P2-4 选项:
- 推荐 **B 清理代码冗余**:决定 ROOM 是去掉(不需要)还是补配置(需要)
- service-record-card 组件用 `vip/tip` 与 COURSE_TAG_MAP `basic/room/incentive` 不一致,需统一
*category_code不是课程是项目分类。课程的调研不对不够深入课程全部应该有 包厢课 麻将课 基础课 激励课 但应该分布在不同的表中。继续深入调研。*
### 2. P2-7 — 新发现 board-finance 隐式 null Bug
H-1 全看板扫描:
- board-coach(已知):`time=last_6m + sort=sv_desc` 后端 400,前端无禁用提示 → 需双向变灰
- **board-finance(新发现)**:`area≠all` 时后端 **recharge / cashflow / expense 三板块返回 null**,前端无任何提示,**板块凭空消失** → 需补占位文案
- board-customer:无组合限制
**意外多挖出 1 个 D Bug(P2-7 board-finance 隐式 null)**,严重度比 P2-7 主体高(用户看不到原因)。
*`area≠all` 时后端 **recharge / cashflow / expense 三板块返回 null**,前端无任何提示是可以的。找到的BUG进行修复。*
### 3. P2-6 — 不改 APP1 prompt,因为 prompt 在百炼云端不入 git
H-2 调研:
- APP1 prompt 在百炼控制台云端,改动**不可追溯**(不在 git)
- SSE 流式纯文本末尾插结构化 title 会**破坏流式体验**
- **`biz.ai_conversations.title` 字段已存在但当前未写入**(意外发现)
- **`chat_service.generate_title()` 已有"客户姓名 / 首句 20 字 / 新对话"回退链**(意外发现 2)
**推荐 R2 起步**:Wave 5 用 SQL `LEFT(content, 16)` 在首轮结束时写 title。R1(qwen-turbo 异步轻量摘要)后续观察再决定。
*APP1 prompt 在百炼控制台云端,改动不可追溯但如果有改动的必要我可以手动操作。并且现在应该有路径保存了当前所有Prompt。现在用你的推荐方案是可行的暂时不改Prompt我同意。但要记录后续观察的需求需要跟踪。*
### 4. P2-9 — no-permission 编辑入口设计完成,Wave 5 实施 1.7 人天
H-2 设计:
- **表名**:`biz.site_contact_info` PK=site_id
- **字段**:display_name / phone / wechat_id / notes / updated_by / updated_at
- **默认值**:`display_name = '门店管理员'`,**不预填真名**(让 Neo 上线后手工配置)
- **3 端点**:
- `GET /api/tenant/site-contact`(tenant 端读)
- `PATCH /api/tenant/site-contact`(tenant 端改)
- `GET /api/xcx/site-contact`(小程序 no-permission 拉)
- **小程序从 token 推 site_id**,前端不传(防伪造)
- **Wave 5 全部 1.7 人天**(后端 + tenant-admin + 小程序 + 测试)
H-2 提的 7 个审稿题(表名 / 拦真名黑名单 / 刷新时机 / 菜单文字 / 自动建行 / 审计 / R2-R1) 待 Neo 答。
*同意。*
## 三、按 Wave 重新分配的 P2 执行清单
| Wave | 任务 |
|---|---|
| **Wave 1-3 / 即时** | board-finance 隐式 null Bug(P2-7 副发现,Wave 1 协同) |
| **Wave 5** | **全部 P2 主体** — 13 项主条目 + 5 子项,统一文档收尾 + 小代码改动批 |
## 四、给 Neo 的 P2 决策提问
| # | 问题 | 我的建议 |
|---|---|---|
| 1 | P2-4 ROOM 死代码处理:去掉 / 补配置 / 维持现状 | **去掉**(BD 手册更新为 BASE+BONUS 两类) |
| 2 | P2-4 service-record-card 组件命名是否同步改 `vip/tip → vip-tag/tip-tag`? | Y(统一命名) |
| 3 | P2-7 board-finance 隐式 null Bug 是否纳入 D Bug 清单 | **Y(D Bug)** |
| 4 | P2-9 H-2 提的 7 个审稿题(表名/拦真名/菜单文字/审计...)是否一次答完 | Y |
| 5 | P2-6 接受 R2 起步(SQL LEFT 16 字)+ R1 后续观察 | Y |
## 五、产出文件索引
```
docs/_overview/04c-feedback/
├── 00-P2-feedback-response-summary.md (本文)
├── P2-4-and-P2-7-research.md (H-1)
└── P2-6-and-P2-9-design.md (H-2)
```
---
> 全部 P0(2 轮)+ P1(2 轮)+ P2 反馈调研完成。下一步:Neo 答 P2 5 问 + P1 二轮 5 问 + H-2 的 7 个审稿题。