交付出件箱

← 返回出件箱

Phase 74 · 智脑 C 端(家长版)· 开发路线图 v2

2026-08-24 · dev2 · 按长官 8-24 口径重排(v1 见 c-end-dev-roadmap-20260822.md)

长官三条新口径:
1. C 端手机端优先做,平板端压到最后 —— 因为不知道做的快慢,先减一部分工作量
2. 门店端设置(开通入口)平板端 + 手机端都要
3. 🔴 门店端零回归是铁律 —— 现有功能(你问我答 / 报告秒读 / 近视的世界)绝不能受影响;
能复用的复用,但不能改到门店端。门店端已有真实客户在用,一旦影响就是大事故。


〇、本次开工前物理复核(2026-08-24 · 对最新 origin/test · 全带对照组)

复核项 结果 对照组(证明查法有效)
Phase 74 号是否被占 0 命中 · 仍空闲 Phase 73 命中 4 文件 ✅
seat_auth.py 有无 seat_type 0 命中 · 缺口仍在 同文件 org_features 命中 8 ✅
enable_parent_subseat 是否被人加 0 命中 · 未被占 enable_refractive_record 命中 32 文件 ✅
门店端设置页是不是两套 一套 web/app/h5/settings/page.tsx 全目录仅此 1 个 page.tsx ✅
家长端两个壳的物理入口 手机 h5/chat/page.tsx · 平板 h5/tablet/page.tsx + h5/tablet/pane/page.tsx ls-tree 实列 ✅

结论:v1 路线图的技术口径全部仍成立,只需按长官口径调整顺序与批次划分。

🟢 一条省工作量的实测发现

门店端设置页平板和手机共用同一个文件,页内只有一处分叉——
page.tsx:38/43 读 ?from= 决定返回目标(平板经 ?from=/h5/tablet 带入,手机不传则回 /h5/chat),
没有 isTablet 之类的两端分支。

⇒ 长官要的「门店端设置平板端 + 手机端都要」= 写一份、响应式覆盖两端,不是两倍工作量。
效果图 §8 已经是按这个画的(平板 4 张 + 手机 4 张,同一页面两个宽度)。


一、重排后的批次(v2)

顺序:A → B → D → E → F → G → C → H

批 内容 端 依赖 分量 / 风险
A · 地基 users.seat_type 字段 + 登录返回体加 seat_type/visible_features + enable_parent_subseat 机构开关 后端 无 小,但动登录链路 🔴 门店零回归硬要求
B · 门店端开通 设置页开通块(gate 在机构开关后)+ 两步开通弹层 + 开通历史 + 子席位详情 平板 + 手机(一份实现) A 中
D · 家长端壳 名单制下发 + 首页 + 侧栏/会话历史 + 设置页第三分支堵越权 🔴 仅手机端 A 中
E · 个人档案 档案 CRUD + 检查记录十一段 + 眼轴曲线(recharts) 仅手机端 D 🔴 本期最大
F · 识别复用 调 VLLMClient().extract() 回填 + 图片就近上传就地回填 + 存档 手机端 E 小(一行调用已验)
G · 秒读配额 6 次 / 账号 / 开通起 365 天,解析成功才扣,失败回滚 后端 A 中(新建模型)
C · PC 后台 子席位管理页(平台管理组)+ 家长端模块设置 + 机构弹框新开关 PC 后台 A 低 · 碰不到门店端任何代码
H · 家长端平板 复用 h5/tablet/pane 壳,把 D+E+F+G 的成果适配到平板 仅平板端 D~G 中 · 最后做

排这个顺序的三条理由

  1. B 必须排在 D/E 前面 —— 子席位账号的唯一签发入口就是门店端设置页那个开通弹层。
    B 不做完,D/E 连一个真家长账号都造不出来,只能靠手工塞库测,那不叫真打。
  2. C(PC 后台)放后面,但随时可并行插队 —— 它是纯管控/统计页,
    物理上碰不到门店端任何代码,风险最低。哪一批卡住了就把 C 提上来填空档。
  3. H(平板)放最末 —— 完全按长官口径。平板壳是复用 tablet/pane,
    D~G 的业务逻辑届时已经跑通,H 主要是版式适配,放最后风险最小、也最能先减工作量。

发版粒度建议


二、🔴 门店零回归铁律 · 工程落法(长官 8-24 明令 · 每批必守)

长官原话:「做 C 端的时候千万一定不要影响门店端的功能,是铁律必须要遵守的。
但能复用的复用,千万不要影响现在这个,因为现在门店端已经有客户在用了,一旦影响了就是大事故。」

总原则:只做加法,不做改法。 复用 = 调用它 / 在它旁边加一支,不等于改它。

风险点 具体守法
A 批动登录返回体 seat_auth.py 新字段只加不改,老字段一个不动;seat_type 加 server_default='store' ⇒ 存量席位全部落 store,门店登录行为与今天逐字节一致
前端功能名单 menu-sidebar.tsx TABLET_FEATURES(:41-50)+ filter(:72) 🔴 门店端那份一行不动,家长端另起一份名单(D-D 已拍板)
设置页分叉 settings/page.tsx:176/178 只新增第三支 seat_type==='parent';原 {isSeat && <SeatStoreCard/>} 与 {!isSeat && …} 两支一行不改
报告秒读五个文件 four_l_report.py / four_l_orchestrator.py / four_l_summary_service.py / four_l_summary_prompt.py / vllm_client.py —— 🔴 只调不改
图片类型枚举 不动 classify 的 refraction/axial/oct/fundus/unknown(改了就动到门店端报告解读)
秒读配额 只在 seat_type=='parent' 分支扣减;门店席位不进该分支(对门店 fail-open)
机构开关 enable_parent_subseat server_default false opt-in ⇒ 没开的机构完全无感,存量零影响
检查数据落表 vision_exams 只加 nullable 列;refractive_records(门店平板端在用)不动、不迁移、不双写
活动日志 / 图片归属 _ACTOR_TYPES 加一档子席位 + 反向清查所有按 org_id 聚合的读接口,别让家长数据混进门店统计
档案搜索 现端点全 require_org_seat + search_patients(seat["org_id"]) ⇒ 加归属标记(seat/parent)+ 搜索过滤,别让门店搜到家长档案

门店端回归验收清单(每批发 test 后必跑 · 用真页面打,不看代码)

用 how-to-open-real-h5-pages 那套方法开真页面,逐条打勾:

  1. [ ] 门店席位登录进得去 —— 平板 + 手机两个宽度都试
  2. [ ] 平板首页功能卡在位、张数没变、点得开
  3. [ ] 你问我答:能提问、能出流式回答
  4. [ ] 报告秒读:能传图、能出 4L 解读结果
  5. [ ] 近视的世界:进得去
  6. [ ] 设置页四区块(品牌 / 名片 / 地址 / 素材)能改能存
  7. [ ] 会话历史抽屉:开合正常、历史读得出
  8. [ ] 机构未开 enable_parent_subseat 时,设置页看不到开通块(对照组:开了就看得到)

⚠️ 第 8 条必须带对照组 —— 只验"看不到"证明不了 gate 有效,可能是整块没渲染出来。


三、开工第一天 5 件事(顺序不能乱 · 与 v1 一致)

  1. 拉干净 worktree —— 从 codeup/test 建 feature/phase74-c-end-parent
    (⚠️ 当前遥控桥分支 worktree-bridge-* 落后 712 个提交,不能拿来发版)
  2. 占号 + 补手续 —— flywheel-business.md 写需求;flywheel-impl.md + flywheel-progress.md
    双文件同步加 Phase 74 行(标 ⬜)
  3. 效果图搬进仓库 —— c-end-full-mockup-20260821.html → docs/superpowers/demos/phase74-*.html
    → git commit 锁定(🔴 锁定前不许写前端代码)
  4. 写 tech —— 口径直接抄 c-end-ocr-reuse-verify-20260822.md(27 维已验),不重查
  5. 写 impl + test-coverage → 跑 plan-audit 九轮至连续两轮零发现

四、技术口径(全部沿用 v1 · 8-22 台账已物理 verify)

不再重复抄,见 v1 第四节与 c-end-ocr-reuse-verify-20260822.md。要点索引:


五、等长官下的令

令 触发什么
「开工」 建分支 + 占 Phase 74 + 写 business.md + 搬 Demo 进仓库 commit 锁定
顺序确认 A→B→D→E→F→G→C→H 这个排法对不对,C 要不要提前并行
发版粒度 A 单独发一次验门店零回归,之后每批一发 —— 还是攒批发

红线不变:push / 建 MR / 合并 / 发版仍需长官现场下令,一次一令,绝不外推。

云机环境 · 非验收证据。第〇节复核证据为本机对 origin/test 的真实 git grep 输出。