Files
gaokao-volunteer-system/EXECUTION_ROADMAP_V10_2026-07-03.md
Frontend Developer e8b8ad079e feat(sprint-2): V10 选项 B 完整切换 + G1 闸门通过
框架切换:Next.js 16 → Vite 5 + React 19 + React Router 7
状态管理:7 手写 hook → 4 Zustand slice
数据获取:直接 fetch → TanStack Query 5 (15 hooks)
表单:3-step 状态机 → RHF 7 + Zod
测试:0 → 25 单测 + 20 e2e (4 浏览器)
Bundle:192 KB gzip (目标 < 300 KB)
Lint:49 warning → 0 warning
Type:33 any → 0 any

S2-T-01 切 Vite 5 + React 19 框架
S2-T-02 Zustand 4 slice 替代 7 手写 hook
S2-T-03 TanStack Query 5 + 15 hooks
S2-T-04 Vitest + RTL + MSW + Chromatic 配置
S2-T-05 OpenAPI Codegen + Zod schema 复用
S2-T-06 RHF 7 + Zod 重写 FormCard
S2-T-07 Playwright 视觉基线 4 浏览器 5 spec
S2-T-08 Vite build + bundle < 300KB gzip

G1 闸门 (全部通过):
- typecheck: 0 error
- lint: 0 error 0 warning
- test (Vitest): 25/25 passed
- test:e2e (Playwright): 20/20 passed
- build (Vite): 326 modules 4.14s
- codegen:check: OpenAPI types 非占位

Sprint 2 收口报告:SPRINT_2_CLOSEOUT_2026-07-03.md
2026-07-03 15:51:03 +08:00

14 KiB
Raw Blame History

V10 执行路线图 — 82 人天 / 8 SprintV10 选项 B 重写)

配套文档V10_REFACTOR_STRATEGY_UI_VS_TECH.mdV10 决策)/ 8 个 SPRINT_X_SX_*.md 编制日期2026-07-03V10 重写版) 技术栈Vite 5 + React 19 + Zustand 4 + TanStack Query 5 + RHF 7 + Zod + Vitest 2 + Playwright 1.55 + Chromatic PM 决策2026-07-03

  • Q1技术栈前端工程师选型 → 选项 BVite+React+Zustand+TanStack Query+RHF
  • Q2UI 验收Playwright 视觉回归 + Chromatic
  • Q3代码处置整体重写为新实现
  • Q5文档更新更新 SPRINT_2-8 全部文档

⚠️ V10 vs V2 关键差异

维度 V2 V10 变化
框架 Next.js 16 Vite 5 + React 19 重写
状态管理 7 个手写 hook Zustand 4 简化
数据获取 自写 useChat TanStack Query 5 升级
表单 受控状态机 RHF 7 + Zod 升级
视觉回归 + Chromatic 新增
验收 axe / Lighthouse + Chromatic 像素 diff 加强
总估时 92 人天 82 人天 节省 10d
总子任务 470 415 节省 55

1. 路线图设计原则V10 不变)

原则 落地方式
垂直切片 每 sprint 都有可演示产物
风险前置 B 阶段(最大风险)放第 2-3 sprint
依赖显式化 跨 sprint 任务标 ,并行任务标
可中断性 每 sprint 末交付"Demoable Build"
能力对齐 每 sprint 必跑 Lighthouse / axe / Playwright / Chromatic
UI/交互 1:1 V10 核心约束12 项 UI 不变量必须复现

2. 8-Sprint 路线图V10 重写版 · 16 周)

假设1 个前端主程 + 1 个后端联调支持 + 0.5 个设计 review 单 sprint 容量~10 人天V10 平均Sprint 8 10d / Sprint 2 9.5d / Sprint 3 12d

Sprint 周次 阶段 任务数 人天 关键交付 Demoable 产物 闸门
S1 W1 A 前半 14 11 monorepo + 5 组件 + CI 5 页面 + CI 绿 G0
S2 W2-3 A 后半 + B 启动 16 9.5 Vite + Zustand + TanStack Query + Chromatic 8 端点真实化 + 视觉基线 8 页 G1
S3 W4-5 B 主体 15 12 5 大 V2 新模块 + LLM 4 模 端到端 5 模块 + 视觉基线 13 页 G2
S4 W6-7 B 收口 + C 启动 16 10 Lighthouse ≥90 + Poster CLI 性能报告 + Poster Docker G3 + G4
S5 W8-9 C 收口 + D 启动 16 9 18 高级组件 + Storybook Storybook 19 组件 + axe 0 critical G5
S6 W10-11 D 主体 13 12 7 业务组件 + 暗色审计 7 业务组件 + 视觉基线 7×3×3×6 G6
S7 W12-13 D 收口 + E 启动 14 9 i18n + 5 admin 页面 i18n 中/英 + admin 入口 G6.1
S8 W14-16 E 主体 18 10 12 后台 + 10 公共门户页 全量后台 + 门户 + 视觉收口 G7 最终
合计 16 周 122 82 + 11 缓冲 = 93 生产可发版

8 sprint 总容量 82 人天 + 11 缓冲 = 93 人天。按 4 人/16 周实际可投 = 64 人天 → 结论:单兵执行需 23 周,多人 16 周可完成(与 V2 一致)。


3. Sprint 详图V10 关键差异)

S1W1— 11 人天 · 阶段 A 前半 已完成

入口条件PM 批准 14 人天预算 目标:让原型在 monorepo 里能跑起来CI 灯绿

已完成SPRINT_1_CLOSEOUT_2026-07-03.md

  • pnpm + Turborepo + root package.json
  • cp -r 前端原型代码/apps/web/⚠️ 勘误:原型未在 git 中)
  • 5 基础组件Button / Input / Card / Badge / Tabs
  • web-ci.ymltypecheck / lint / build / bundle
  • G0 闸门pnpm install 1m55s / typecheck 0 errors / lint 0 errors 49 warnings / build 8 routes

V10 收益S1 是 V2 → V10 共同基础工时不变11d


S2W2-3— 9.5 人天 · A 后半 + B 启动 ⚠️ V10 简化

入口条件S1 G0 通过 目标Vite + Zustand + TanStack Query + Chromatic + 8 端点真实化

任务 人天 V10 变化
Vitest + RTL + MSW + Chromatic 配置 0.5 + Chromatic
OpenAPI Codegen + Zod schema 1.0 类型 + Zod 联合生成
Zustand store + 5 query hooks 1.0 替代 7 手写 hook
RHF 重写 FormCard 1.0 替代 3-step 状态机
Chromatic 视觉基线 8 页 0.5 V10 新增
Vite build + bundle 验证 0.5 V10 新增
其他 7 任务Playwright e2e 等) 5.0 不变

V10 vs V218d → 9.5d(节省 8.5d

退出条件

  • OpenAPI 30+ 端点类型生成 0 any
  • Zustand store 4 slice 完成
  • Chromatic 视觉基线 8 页全提交
  • Vite build bundle < 300KB gzip
  • G1 闸门lint 0 warningV10 重写后归零)

S3W4-5— 12 人天 · B 主体 ⚠️ V10 简化

入口条件S2 G1 通过 目标5 大 V2 新模块 + LLM 4 模 fallback

任务 人天 V10 变化
useChatOrchestratorV10 重写) 0.5 从 1.5d 简化
真实 sendMessage + typing 0.5 TanStack Query mutation
真实 getHistory + 滚动恢复 0.5 TanStack Query
usePlan/useConsultation 真实化 0.75 不变
useProfile Zustand 版 0.5 从 1.0d 简化
useAudit + LLM 增强4 模 fallback 0.75 4 模实测
Share Link API4 端点) 0.75 不变
Data Query API3 端点) 0.75 不变
Review Flow API3 端点) 0.75 不变
Portal API2 端点) 0.5 不变
LLM Audit Enhance API 0.75 SSE + Zustand 增量
Poster Generate API 0.5 不变
Share Link 统计 + UI 1.0 V10 加强
Chromatic 视觉回归S3 增量) 0.5 V10 新增
ESLint 0 warning 守门 0.5 V10 关键

V10 vs V222d → 12d节省 10d

退出条件

  • 5 大新模块端到端跑通
  • LLM 4 模实测可切换 + 自动降级
  • G2 闸门lint 0 warning + Chromatic 13 页基线

S4W6-7— 10 人天 · B 收口 + C 启动 ⚠️ V10 简化

入口条件S3 G2 通过 目标性能达标Lighthouse ≥ 90+ Poster CLI 镜像

任务 人天 V10 变化
错误码 → 用户文案映射 0.5 不变
ErrorBoundary + 离线 + 防重 1.5 RHF 简化
TanStack Query 持久化 0.5 persister 内置
e2e 真实化8 路径) 2.0 Playwright 加速
Lighthouse CI 1.5 Vite 产物天然高分
Bundle 优化 0.5 V10 简化(已分块)
真实后端回归 0.5 docker compose
Poster CLI Docker 1.0 不变
其他 4 任务 2.0 不变

V10 vs V214d → 10d节省 4d

退出条件

  • G3 闸门Lighthouse P/A/B/S ≥ 90
  • G4 闸门Poster CLI Docker 镜像跑通
  • 8 e2e spec 全绿 + 真实后端 5 模块 200

S5W8-9— 9 人天 · C 收口 + D 启动 ⚠️ V10 升级

入口条件S4 G3 + G4 通过 目标18 高级组件 + Storybook + axe-core CI

任务 人天 V10 变化
DataTableTanStack Table + Virtual 1.0 V10 升级
Treereact-arborist 0.5 V10 升级
Chartrecharts + 主题) 1.0 V10 主题适配
11 基础组件Modal/Toast/Tooltip 等) 3.75 Radix 头less
Storybook 配置 + 19 组件 story 1.5 Vite builder
axe-core CI 集成 0.5 V10 新增

V10 vs V212d → 9d节省 3d

退出条件

  • G5 闸门18 组件 dark story 全覆盖 + axe-core 0 critical

S6W10-11— 12 人天 · D 主体 ⚠️ V10 加强

入口条件S5 G5 通过 目标7 业务组件 + 暗色审计

任务 人天 V10 变化
SharePanel + ShareStatusPanel 1.25 不变
DataQueryForm 4 变体 1.0 不变
DataQueryResult 4 变体 1.0 不变
ReviewFlow + LLMEnhancement + PosterPreview 2.0 不变
暗色变体审计 1.0 V10 关键
Chromatic 视觉回归S6 增量) 1.0 V10 新增
axe-core 集成(复用 S5 0 V10 收益
屏幕阅读器 + 键盘测试 0.5 不变
替换 alert() 为 Toast 0.25 不变
ESLint 0 warning 守门 0.5 V10 关键

V10 vs V211d → 12d+1d Chromatic 验证)

退出条件

  • G6 闸门7 业务组件 + 暗色审计 0 像素 diff
  • WCAG AA 对比度全通过

S7W12-13— 9 人天 · D 收口 + E 启动 ⚠️ V10 替换

入口条件S6 G6 通过 目标i18n 中/英 + 5 admin 页面

任务 人天 V10 变化
react-intl 接入(替换 next-intl 1.0 V10 替换
文案审计(中/英) 0.5 V10 关键
Chromatic + Lighthouse 收口 1.0 V10 关键
5 admin 页面Login/Dashboard/Layout/Error/Auth 2.75 Vite 友好
4 订单/案例页面 2.0 不变
a11y 全量审计 0.75 V10 关键
Chromatic 收口S7 增量) 0.5 V10 新增

V10 vs V210d → 9d节省 1d

退出条件

  • G6.1 闸门i18n 中/英全覆盖 + Lighthouse ≥ 95 + a11y 0 critical

S8W14-16— 10 人天 · E 主体 ⚠️ V10 合理化

入口条件S7 G6.1 通过 目标12 后台 + 10 公共门户页

任务 人天 V10 变化
8 后台管理页面 5.0 V10 合理化(每页 0.5-1.0d
4 通知/Policy/设置/用户页面 2.75 V10 合理化
公共门户 React 化10 页) 1.0 V10 关键
Chromatic 收口S8 最终) 0.5 V10 新增
ESLint 0 warning 守门 0.25 V10 关键
G7 最终验收 0.25 V10 关键

V10 vs V28d → 10d+2d 合理化)

退出条件

  • G7 闸门(最终):生产可发版
    • 12 后台 + 10 公共门户页全部完成
    • pnpm typecheck/lint/test/e2e/storybook/chromatic 全绿
    • Lighthouse P/A/B/S ≥ 95
    • axe-core 0 critical 0 serious
    • bundle < 350KB gzip
    • 真实后端 5 模块 + admin 端到端跑通

4. V10 关键风险闸门(不能跳过)

闸门 位置 失败动作 V10 关键变化
G0 S1 末 暂停 S2修基础 已通过
G1 S2 末 暂停 S3补 codegen + Zustand 新增lint 0 warning
G2 S3 末 暂停 S4与后端对齐 LLM 超时 新增Chromatic 13 页基线
G3 S4 末 暂停 S5先做性能调优 不变
G4 S4 末 暂停 S5修正 Dockerfile 不变
G5 S5 末 暂停 S6先做 axe-core 加强axe 0 critical 强制
G6 S6 末 暂停 S7先做 design pass 加强:暗色审计
G6.1 S7 末 暂停 S8先做 i18n / a11y 新增Lighthouse ≥ 95
G7 S8 末 不发版 最终:生产可发版

5. V10 新增风险登记

ID 风险 等级 缓解
V10-R1 UI 1:1 复现遗漏 Chromatic 视觉基线 + Playwright 像素比对
V10-R2 Vite 切框架后 Next.js 能力失效 Sprint 4 处理i18n 用 react-intl
V10-R3 Zustand persist 与 SSR 冲突 客户端守卫
V10-R4 TanStack Query 5 与 React 19 兼容 锁定 5.59.x 稳定版
V10-R5 RHF + Zod 类型推导慢 z.infer<typeof Schema>
V10-R6 LLM 4 模 provider 适配 抽象统一接口Sprint 3 末 4 模实测
V10-R7 SSE 流式与 TanStack Query 兼容 Zustand 增量更新 + onMutate
V10-R8 Chromatic 商业配额 8 sprint × 1 次 = 8 次S2-S8 各 1 次)
V10-R9 整体重写工期超 V2 保留 11d 缓冲S2 中期 gate 评估
V10-R10 后台页面工期紧张 S8 合理化到 10d

6. 团队配置V10 不变)

角色 数量 占比 主要 sprint
前端主程Vite + React 19 1 60% 全程
UI/交互设计师 0.3 15% S1 / S4-S6
后端联调 0.3 15% S2-S4
QA / a11y 0.2 10% S4-S7
DevOps 0.1 5% S4

7. 监控与汇报机制

  • 每日sprint board 更新(按任务 ID 标 in_progress / done
  • 每 sprint 末Demoable Build + 风险闸门报告30 分钟会议)
  • S2/S4/S6/S8 末:里程碑汇报(含 Lighthouse / axe / e2e / Chromatic 截图)
  • S8 末:上线发布 + 复盘文档

8. 与上游文档的对齐V10 更新)

文档 状态
任务清单基线 FRONTEND_TASK_LIST_2026-07-02_V2.mdV2V10 选项 B 已合并到 SPRINT_2-8
V10 决策文档 V10_REFACTOR_STRATEGY_UI_VS_TECH.md 新增
技术决策依据 FRONTEND_REFACTOR_PLAN_2026-07-02.md
质量基线 REVIEW_REPORT_2026-07-02_SENIOR_DEVELOPER.md
Sprint 1 closeout SPRINT_1_CLOSEOUT_2026-07-03.md
Sprint 2-8 文档 已重写为 V10 选项 B

9. V10 工时对比汇总

Sprint | V2 估时 | V10 估时 | 节省 | 关键变化
S1     | 11d    | 11d      | 0    | 已完成
S2     | 18d    | 9.5d     | -8.5 | Zustand + TanStack Query 替代 7 hook
S3     | 22d    | 12d      | -10  | 5 新模块统一模式
S4     | 14d    | 10d      | -4   | Vite 性能天然高
S5     | 12d    | 9d       | -3   | TanStack Table/Virtual 升级
S6     | 11d    | 12d      | +1   | Chromatic 验证增量
S7     | 10d    | 9d       | -1   | react-intl 替换 next-intl
S8     | 8d     | 10d      | +2   | 后台页面合理化
合计   | 106d   | 82.5d    | -10  | 净节省 10 人天
缓冲   | 14d    | 11d      | -3   |
总计   | 92d + 14 = 106d | 82d + 11 = 93d |

10. 下一步

V10 路线图编制完成。请确认:

  1. Sprint 2-8 文档已按 V10 选项 B 重写
  2. V10 决策文档已归档
  3. 路线图已更新

等待 PM 确认

  • 立即启动 Sprint 2T-A-14 Vitest + Chromatic 配置)?
  • 或先审阅 V10 文档后决策?

V10 路线图版本v1.02026-07-03 作者Senior Developer高级开发工程师 配套8 个 SPRINT 文档 + V10_REFACTOR_STRATEGY_UI_VS_TECH.md