Sprint 1 G0 闸门通过 (pnpm install / typecheck / lint / build / turbo 全部 exit 0) 实际完成: - T-A-01 monorepo 根骨架: pnpm-workspace.yaml + turbo.json + 根 package.json - T-A-02 收编原型: apps/web/ 30 个 src/ 文件 (4948 行) 首次入库 - T-A-03 lint/format: eslint flat config (根 + apps/web) + prettier - T-A-23 web-ci.yml: GitHub Actions 4-step CI (typecheck/lint/build/bundle) 勘误 (前置假设错误): - 原型 4948 行 (不是 4114 行) - 原型含 33 个 any + 16 个未用变量 (Sprint 2 修) - 原型从未 commit, 用 cp -r + git add, 不是 git mv 推迟到 Sprint 2+: - T-A-04/05 tsconfig packages 抽离 - T-A-06/07/08 design tokens 抽离 - T-A-09~13 5 基础组件 依赖隔离: - .gitignore 加 11 行 monorepo 规则 - apps/web/.gitignore 补 .npm-cache/next-dev.log - 删除 apps/web 内嵌 .git/ (cp -r 复制时携带) 验证: - pnpm install: 1m55s, 456 packages - typecheck: 0 errors - lint: 0 errors, 49 warnings (any + unused) - next build: 8 routes compiled, 9/9 static pages - turbo run build: 1 successful, 12.9s
10 KiB
10 KiB
V2 任务清单执行路线图 — 92 人天 / 8 Sprint 拆分
配套文档:
FRONTEND_TASK_LIST_2026-07-02_V2.md(136 任务 / 92 人天) 编制日期:2026-07-02 22:55 编制人:Senior Developer(执行规划) 批准状态:PM 已批准追加 14 人天预算
1. 路线图设计原则
| 原则 | 落地方式 |
|---|---|
| 垂直切片 | 每 sprint 都有可演示产物,不做"建库 2 周后再做页面" |
| 风险前置 | B 阶段(最大风险 38 人天)放第 2-3 sprint,D 阶段视觉与 B 阶段并跑 |
| 依赖显式化 | 跨 sprint 任务标 ❗,并行任务标 ⚡ |
| 可中断性 | 每 sprint 末交付"Demoable Build",PM 可中止而不丢已投入工作 |
| 能力对齐 | 每 sprint 必跑 Lighthouse / axe / Playwright 三件套 |
2. 8-Sprint 路线图(4 周一档,共 16 周 ≈ 4 个月)
假设:1 个前端主程 + 1 个后端联调支持 + 0.5 个设计 review 单 sprint 容量:~12 人天(按 5 天 × 0.85 效率 × 2.5 人 = 10.6 人天取整)
| Sprint | 周次 | 阶段 | 任务数 | 人天 | 关键交付 | Demoable 产物 |
|---|---|---|---|---|---|---|
| S1 | W1 | A 前半 | 8 | 11 | monorepo + 5 组件 + CI | 5 页面原貌复刻 + CI 绿灯 |
| S2 | W2-3 | A 后半 + B 启动 | 17 | 18 | OpenAPI codegen + 8 核心 hook | 30+ 端点 TypeScript 类型 + chat 流式 e2e |
| S3 | W4-5 | B 主体 | 22 | 22 | 真实对接 + LLM fallback + Share | 完整 chat/plan 真实流,含 4 模 fallback |
| S4 | W6-7 | B 收口 + C 启动 | 17 | 14 | Lighthouse ≥90 + Poster CLI 接入 | 性能报告 + Sentry + CSP 通过 |
| S5 | W8-9 | C 收口 + D 启动 | 18 | 12 | 独立部署 + SharePanel | 灰度环境可访问 + Share 弹窗 3 状态 |
| S6 | W10-11 | D 主体 | 22 | 11 | 18 组件 + DataQuery + Review UI | 全部页面视觉与 a11y 验收 |
| S7 | W12-13 | D 收口 + E 启动 | 16 | 10 | axe 0 critical + Review 页 4 按钮 | 3 个 portal 页面 React 化 |
| S8 | W14-16 | E 主体 | 14 | 8 | 6 个内部页 + Policy + Poster 渲染 | 全量运营后台可访问 |
| 合计 | 16 周 | — | 136 | 92 + 14 缓冲 | — | 生产可发版 |
8 sprint 总容量 92 人天 + 14 缓冲 = 106 人天。按 4 人/16 周实际可投 = 64 人天 → 结论:单兵执行需 22 周,多人 16 周可完成。
3. Sprint 详图
S1(W1)— 11 人天 · 阶段 A 前半
入口条件:PM 批准 14 人天预算完成 目标:让原型在 monorepo 里能跑起来,CI 灯绿
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-A-01 monorepo 创建 | 0.5 | — | pnpm + Turborepo |
| T-A-02 收编前端原型 | 0.5 | — | 软链接 + tsconfig |
| T-A-03 共享包骨架 | 0.5 | — | @app/ui / @app/lib / @app/api |
| T-A-06 设计 token 提取 | 0.5 | ⚡ | |
| T-A-07 组件库首批 5 组件 | 1.0 | — | |
| T-A-21 OpenAPI Codegen 接入 | 1.0 | — | V2 跑出 30+ 端点类型 |
| T-A-23 CI 工作流 | 1.5 | — | lint + test + build |
| T-A-04 tsconfig 共享 | 0.5 | ⚡ | |
| T-A-14 Vitest 骨架 | 0.5 | ⚡ | |
| T-A-18 Playwright 骨架 | 0.5 | ⚡ |
退出条件:
pnpm dev可启动apps/web5 个页面pnpm test跑通pnpm build通过- GitHub Actions 绿
- 无 mock 数据残留(原型中的
chat-fixtures.ts移走)
S2(W2-3)— 18 人天 · A 后半 + B 启动
入口条件:S1 退出 目标:8 个核心 hook 真实化,OpenAPI 类型贯通
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-A-22 OpenAPI 类型生成完成 | 1.0 | — | 30+ 端点全部生成 |
| T-A-08-T-A-13 6 组件扩展 | 3.0 | ⚡ | 12 组件总量 |
| T-A-15 单元测试 50% | 1.0 | ⚡ | |
| T-A-19 Playwright 首批 3 e2e | 1.0 | ⚡ | |
| T-A-16 集成测试 30% | 1.0 | ⚡ | |
| T-A-20 Storybook | 1.0 | ⚡ | |
| T-B-01~08 chat 流式对接 | 4.0 | — | SSE + 重连 + 取消 |
| T-B-09~14 plan/audit 真实化 | 3.0 | — | |
| T-A-05 ESLint/Prettier 收口 | 0.5 | ⚡ | |
| T-A-17 性能预算 CI | 0.5 | ⚡ |
退出条件:
- Chat 流式 e2e 真实后端可跑通
- Plan/Audit 8 hook 全部对接真实 API
- OpenAPI 30+ 端点无
any残留 - 单元测试覆盖率 ≥50%
S3(W4-5)— 22 人天 · B 主体
入口条件:S2 退出 目标:全部 35 端点对接完成,含 5 大 V2 新模块
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-B-15~18 Share Link API 对接 | 3.0 | — | 4 端点 + QR 渲染 ❗ |
| T-B-19~22 Data Query 4 端点 | 3.0 | — | |
| T-B-23~26 Review Flow 4 端点 | 3.0 | — | step1 + 冲稳保按钮 |
| T-B-27~30 LLM 增强 + 多模型 fallback | 4.0 | — | 4 模 + SSE 重连 ❗ |
| T-B-31~35 Poster 渲染 + 政策页 | 3.0 | — | |
| T-B-11 错误边界全局化 | 1.0 | ⚡ | |
| T-B-12 Loading/Toast 统一 | 1.0 | ⚡ | |
| T-B-13 离线兜底策略 | 1.0 | ⚡ | |
| T-B-14 表单 RHF+Zod 接入 | 2.0 | ⚡ | |
| T-B-07 mock 数据清理 | 0.5 | ⚡ | |
| T-B-08 端到端联调 | 0.5 | ⚡ |
退出条件:
- 35 端点 e2e 全绿
- LLM fallback 4 模模拟可切换
- Share link 生成/打开可闭环
- 全部 mock 移除
- 风险闸门:R-NEW-7(LLM 超时)实测 < 30s
S4(W6-7)— 14 人天 · B 收口 + C 启动
入口条件:S3 退出 目标:性能达标,监控接入
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-B 收尾 + Lighthouse 调优 | 3.0 | — | ≥90 性能分 |
| T-C-01~04 独立部署 + Sentry | 2.0 | — | |
| T-C-05~07 CSP + 安全头 | 1.5 | ⚡ | |
| T-C-08~10 Poster CLI 接入 | 2.0 | — | 风险 R-NEW-8 ❗ |
| T-C-11~12 灰度发布 + 灰度路由 | 1.5 | ⚡ | |
| T-C-13 性能监控 RUM | 1.0 | ⚡ | |
| T-C-14 错误追踪 | 1.0 | ⚡ | |
| T-C-15 部署文档 | 1.0 | ⚡ | |
| D 阶段预研:design pass (R-NEW-9) | 1.0 | — | 风险闸门 |
退出条件:
- Lighthouse Performance ≥90 / A11y ≥95
- Sentry 接收到测试事件
- CSP 报告 0 violation
- 灰度发布可路由
- 风险闸门:R-NEW-8(Poster CLI 镜像验证)通过
S5(W8-9)— 12 人天 · C 收口 + D 启动
入口条件:S4 退出 + Design pass 完成 目标:18 组件 + SharePanel 基础
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-C 收尾 2 任务 | 1.0 | — | |
| T-D-01~05 5 组件 design system | 2.5 | ⚡ | |
| T-D-06~10 5 业务组件 | 2.5 | ⚡ | |
| T-D-11~14 4 反馈组件 | 2.0 | ⚡ | |
| T-D-15~18 4 容器组件 | 2.0 | ⚡ | |
| T-D-19 SharePanel 弹窗 | 2.0 | — | 3 状态 (生成/复制/失效) |
退出条件:
- 18 组件 Storybook 全部可查
- SharePanel 弹窗 3 状态 e2e 通过
- 风险闸门:R-NEW-9(Portal 视觉一致性)已对齐
S6(W10-11)— 11 人天 · D 主体
入口条件:S5 退出 目标:DataQuery + Review UI 全部页面
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-D-20~23 DataQuery 4 页面 | 2.0 | — | |
| T-D-24~27 Review UI 4 状态 | 2.0 | — | step1 + 冲稳保 + token 加载 |
| T-D-28 主题切换持久化 | 0.5 | ⚡ | |
| T-D-29 暗色模式适配 | 0.5 | ⚡ | |
| T-D-30 焦点环统一 | 0.5 | ⚡ | |
| T-D-31 prefers-reduced-motion | 0.5 | ⚡ | |
| T-D-32 键盘导航 | 0.5 | ⚡ | |
| T-D-33~35 视觉 QA 3 轮 | 1.5 | ⚡ | |
| T-D-36 风险面板 | 1.0 | ⚡ | |
| T-D-37 LLM 失败兜底 UI | 1.0 | ⚡ | |
| T-D-38 错误页统一 | 1.0 | ⚡ |
退出条件:
- DataQuery 4 页面真实数据流通
- Review 4 状态全跑通
- axe-core 0 critical issue
- prefers-reduced-motion 全部组件支持
S7(W12-13)— 10 人天 · D 收口 + E 启动
入口条件:S6 退出 目标:a11y 完整合规,3 个 portal 页面 React 化
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-D 收尾 3 任务 (axe 0 critical / 屏幕阅读器测试 / WCAG 报告) | 1.5 | — | |
| T-E-01~04 后台登录 + 导航 | 2.0 | — | |
| T-E-05~08 Share 管理 + Data Query 后台 | 2.0 | — | |
| T-E-09~12 Review 后台 + Poster 渲染 | 2.0 | — |
退出条件:
- axe-core 0 critical,0 serious
- 3 个 portal 页面(运营 / Share / Data Query)可访问
- 后台登录 + RBAC 工作
S8(W14-16)— 8 人天 · E 主体
入口条件:S7 退出 目标:6 个内部页 + Policy + Poster 完整
| 任务 | 人天 | 并行 | 备注 |
|---|---|---|---|
| T-E-13~16 我的订单 + 我的报告 | 1.5 | — | |
| T-E-17~20 Policy 5 页 (服务/隐私/退订/合规/关于) | 2.0 | — | |
| T-E-21~23 Poster 渲染页 + 下载 | 1.5 | — | |
| T-E-24 联调收口 + 灰度上线 | 3.0 | — |
退出条件:
- 6 个内部页全部可访问
- 5 个 Policy 页发布
- Poster 可生成可下载
- 生产可发版 ✅
4. 关键风险闸门(不能跳过)
| 闸门 | 位置 | 失败动作 |
|---|---|---|
G1: OpenAPI 类型生成无 any |
S2 末 | 暂停 S3,补 codegen 配置 |
| G2: LLM fallback 4 模实测 | S3 末 | 暂停 S4,与后端对齐超时策略 |
| G3: Lighthouse ≥90 | S4 末 | 暂停 S5,先做性能调优 |
| G4: R-NEW-8 Poster CLI 镜像验证 | S4 末 | 暂停 S5,修正 Dockerfile |
| G5: axe 0 critical | S7 末 | 暂停 S8,先做 a11y |
| G6: R-NEW-9 视觉一致 | S5 末 | 暂停 S6,先做 design pass |
5. 团队配置推荐
| 角色 | 数量 | 占比 | 主要 sprint |
|---|---|---|---|
| 前端主程(Next.js + TS) | 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 |
6. 监控与汇报机制
- 每日:sprint board 更新(按任务 ID 标 in_progress / done)
- 每 sprint 末:Demoable Build + 风险闸门报告(30 分钟会议)
- S2/S4/S6 末:里程碑汇报(含 Lighthouse / axe / e2e 截图)
- S8 末:上线发布 + 复盘文档
7. 与上游文档的对齐
- 任务清单基线:
FRONTEND_TASK_LIST_2026-07-02_V2.md - 技术决策依据:
FRONTEND_REFACTOR_PLAN_2026-07-02.md - 质量基线:
REVIEW_REPORT_2026-07-02_SENIOR_DEVELOPER.md - 历史对照:
docs/REVIEW_REPORT_2026-06-19_SYSTEMATIC_PRODUCTION_READINESS_REVIEW.md
路线图编制完成。请确认是否进入 S1 启动。