# 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 个审稿题。
