2026-08-22 · dev2 · 按项目规定的需求变更六阶段流程排
前置已验:Phase 74 号空闲(git grep "Phase 74" origin/test -- docs/superpowers/plans/= 0 文件;
对照组 Phase 73 命中 4 文件 ⇒ 查法有效)
| 阶段 | 状态 | 说明 |
|---|---|---|
| 1 需求 brainstorming | 🟡 内容完成,手续没走 | 决策全拍板、方案 v1.4+ 定稿;但没占号、没写 flywheel-business.md、没进进度表 |
| 2 UI 设计 | 🟡 超额完成,位置不对 | 13 节高保真已逐节验收;但图在 ~/reports/,没进仓库 docs/superpowers/demos/、没 git commit 锁定 |
| 3 架构 tech | ❌ 未做 | 涉及新列 / 新接口 / 新配额模型 ⇒ 必须写 |
| 4 计划 impl | ❌ 未做 | impl + test-coverage + 进度表双文件 + plan-audit 九轮 |
| 5 执行 | ❌ 未做 | |
| 6 验收 | ❌ 未做 |
🔴 流程红线提醒:阶段 2 未 commit 锁定 Demo 之前禁止写前端代码;
禁止跳过 business.md 直接改 impl.md;禁止擅自占号。
codeup/test 拉(不从 dev/main),分支名 feature/phase74-c-end-parentflywheel-business.md 写 Phase 74 需求;flywheel-impl.md + flywheel-progress.md~/reports/c-end-full-mockup-20260821.html → docs/superpowers/demos/phase74-c-end-*.htmldocs/superpowers/plans/tech/phase74-*.md)—— 已 verify 的口径直接落进去,见第四节plan-audit 九轮至连续两轮零发现| 批 | 内容 | 依赖 | 风险 |
|---|---|---|---|
| A · 地基 | seat_type 字段 + 登录返回体加 seat_type/visible_features + enable_parent_subseat 机构开关 + 门店端设置页 gate |
无 | 🔴 动登录链路,门店零回归是硬要求 |
| B · 门店端 | 开通席位弹层(两步)+ 开通历史 + 子席位详情 | A | 中 |
| C · PC 后台 | 子席位管理页(平台管理组)+ 家长端模块设置弹窗 + 机构弹框新开关 | A | 低 |
| D · 家长端壳 | 名单制下发 + 平板/手机首页与菜单收敛 + 家长端设置页第三分支 | A | 🔴 越权口子在这批堵 |
| E · 个人档案 | 档案 CRUD + 检查单十一段 + 眼轴曲线(recharts) | A | 🔴 本期最大工作量 · 需档案归属隔离 |
| F · 识别复用 | 调 VLLMClient.extract() 回填 + 图片存档 |
E | 低(已 verify 一行调用) |
| G · 配额 | 秒读 6 次 / 账号 / 365 天新模型 + 入口扣减(解析成功才扣) | 无 | 中 · 新建模型 |
建议顺序:A → (B‖C 并行) → D → E → F → G
建议发版粒度:A 单独发一次 test 验门店零回归;之后每批一次。
c-end-ocr-reuse-verify-20260822.md · 27 维)VLM_SERVER_URL=http://100.68.51.72:8080(GPU1)· 模型 cyankiwi/Qwen3.6-27B-AWQ-INT4VLLMClient().extract(path, type)(vllm_client.py:704)· adapter="" 走 base 27Bfour_l_report.py / four_l_orchestrator.py /four_l_summary_service.py / four_l_summary_prompt.py / vllm_client.py(只调不改)enable_parent_subseat(8 维已验)OrgBrainConfig(app/models/database.py:61),不在 organizations 表enable_refractive_record(opt-in · server_default false)写/api/h5/store-card:h5_store_card.py:145 已 select 该表、:193 进返回体 ⇒ 多带一列SeatStoreCard.tsx:316 的 {data.enable_tablet_home_branding && (…)} 包一层org-features;后台弹框照 admin/orgs/page.tsx:292/297 加一行users 表 role='org_seat'(seat_auth.py:3/:199/:510)SeatLoginResponse(seat_auth.py:79)只有 4 个字段,seat_type/visible_features/account_type 0 命中(对照组 org_features 命中 8)users 加 seat_type(store/parent);登录返回体 + /api/seat/org-features 同步加TABLET_FEATURES(menu-sidebar.tsx:41-50)+ filter(:72)过滤,门店端那份不动settings/page.tsx:176 {isSeat && <SeatStoreCard/>} / :178 {!isSeat && …}isSeat=true ⇒ 能看到并修改门店品牌 / 名片 / 地址 / 素材,连子席位开通块都能看到seat_type='parent' 走第三支:我的账号 / 修改密码 / 关于+隐私 / 退出登录menu-sidebar.tsx)原样复用,唯一改动是底部「设置」指向家长版vision_exams;refractive_records 本期不动不迁移不双写refraction_method 枚举扩为 无/小瞳/快散/中散/慢散seat_activity_log / report_image 的_ACTOR_TYPES 没有子席位这一档 ⇒ 新增一档 + 反向清查所有按 org_id 聚合的读接口require_org_seat + search_patients(seat["org_id"])| 令 | 触发什么 |
|---|---|
| 「开工」 | 建分支 + 占 Phase 74 + 写 business.md + 搬 Demo 进仓库 commit 锁定 |
| 批次顺序确认 | 按第三节 A→(B‖C)→D→E→F→G 走,还是您另有优先级 |
| 发版粒度确认 | A 单独发一次验门店零回归,之后每批一发 —— 还是攒批发 |
红线不变:push / 建 MR / 合并 / 发版仍需长官现场下令,一次一令。
云机环境 · 本文技术口径全部来自 origin/test 物理 grep 证据。