Files
nj/docs/superpowers/specs/2026-06-01-30-day-action-plan.md
iven 075536660a docs(specs): 30 天行动计划 — 质量+体验+架构三位一体
多专家组头脑风暴综合报告:
- 质量保障: 前端测试 4 批次 ~120 用例 + CI/CD + Docker 验证
- 核心体验: 编辑器文字/图片/贴纸 + 班级闭环 + 家长 PIPL
- 架构演进: Feature Flag + 状态管理统一 + 环境配置
- 30 天时间线: Week1 编辑器 → Week2 班级 → Week3 测试 → Week4 收尾
2026-06-01 20:57:28 +08:00

7.1 KiB
Raw Blame History

暖记 (Warm Notes) — 30 天行动计划:质量保障 + 核心体验 + 架构演进

版本: 1.0 日期: 2026-06-01 来源: 多专家组头脑风暴(质量保障 / UX体验 / 系统架构) 目标: 从当前状态推进到小学生可用的 MVP


1. 项目现状快照

指标
后端 Rust 51,459 行8 个 crate~50 测试
前端 Flutter 18,398 行70 文件,0 测试
技术债 10 已记录 + 9 新发现
CI/CD
Docker 配置存在但未验证Dockerfile 缺失

2. 三维分析矩阵

2.1 质量保障QA 专家)

核心发现:前端 0 测试是最大风险。没有测试保障,任何重构都可能引入回归 Bug。

策略:由内向外,先逻辑后 UI。

批次 目标 用例数 工时
1 InMemoryJournalRepository + SyncEngine + EditorBloc ~40 16h
2 AuthBloc + HomeBloc + CalendarBloc + MoodBloc ~35 24h
3 IsarJournalRepository + RemoteJournalRepository ~20 32h

CI/CD 设计

  • PR 触发cargo fmt/check/clippy/test + flutter analyze/test + cargo audit
  • Main 触发:上述 + Docker 构建验证
  • 质量门禁:必须通过全部检查 + 1 人 Code Review

Docker 验证

  • 创建多阶段 Dockerfilerust:alpine → alpine
  • docker-compose 添加 server service
  • verify.sh 自动化健康检查

2.2 核心体验UX 专家)

核心发现:编辑器的文字/图片/贴纸工具全为占位,班级互动有 5 个断点。小学生"第一个 30 分钟"的体验路径断裂。

编辑器 P0 缺口

缺口 现状 方案 工时
文字输入 工具栏显示静态文字 叠加式 TextField + 小/中/大字号 16h
图片上传 无反应 image_picker + 压缩 + 拖拽 12h
贴纸接入 仅切换模式 编辑器贴纸面板 → 放置 8h
模板传递 忽略 template 参数 EditorPage 读取 template 查询参数 8h

班级流程 5 个断点

断点1: 班级码硬编码 'a1b2c3' → 需接入后端 API 生成
断点2: 班级码验证跳过 (TODO) → 需调用后端验证
断点3: 编辑器无分享选项 → 需添加分享 BottomSheet
断点4: 老师查看无只读模式 → 需 readonly 参数
断点5: 无评语输入入口 → 需评语 BottomSheet

家长中心 PIPL 合规Phase 1 必须 4 功能(关联/查看/导出/删除),约 30h。

搜索替代:标签+心情筛选先行6h无需 Isar FTS。

2.3 架构演进(架构专家)

核心发现Feature Flag 在规划中设计完善但未落地;状态管理两种模式混用;环境配置硬编码。

Feature Flag 落地2h

  • erp-server/Cargo.toml 添加 [features] default = ["diary"]
  • main.rs 6 个区域用 #[cfg(feature = "diary")] 包裹

状态管理统一2 天,第二批):

  • 5 个 ChangeNotifier → flutter_bloc + sealed class
  • app.dart 移除 provider 依赖,统一 BlocProvider

超大文件拆分(第三批):

  • manifest.rs (1809行) → 8 个子文件
  • data_service.rs (1907行) → 6 个子文件
  • module.rs (1283行) → 事件处理器独立
  • main.rs (820行) → bootstrap/router/seed 模块

环境配置4h

  • 新建 AppConfig 类,--dart-define 注入
  • 修复 SSE 端口 8080 → 3000

3. 综合决策

3.1 优先级取舍

交锋点 决策 理由
先测试 vs 先功能 功能优先 + 关键路径同步写测试 产品不可用比测试缺失更致命
状态管理统一 第二批再做 当前不阻塞开发,统一需要 2 天集中投入
Feature Flag 第三批与 CI/CD 同步 Flag 是给 CI 用的CI 建好了再落地
家长中心 仅做 PIPL 最低 4 功能 30h 已是极限,时间限制等 Phase 2

3.2 风险预警

风险 缓解策略
编辑器文字输入比预期复杂 先做最简版(固定位置 TextField后续迭代
家长中心 30h 可能低估 仅做 4 个核心功能,不做时间限制
测试和功能并行阻塞 测试只覆盖纯逻辑层,不测 UI

4. 30 天行动时间线

Week 1核心路径打通 — 编辑器体验(~44h

目标:小学生可以写出包含手写+文字+贴纸+照片的完整日记

任务 工时 交付物
编辑器文字输入 16h 叠加式 TextField + 小/中/大字号 + 颜色选择
编辑器图片上传 12h image_picker + 压缩 + 拖拽定位
编辑器贴纸接入 8h 贴纸面板 → 选择 → 放置到画布
模板数据传递 8h EditorPage 读取 template 参数并预填充

Week 2班级互动闭环 + 测试基础(~52h

目标:老师→学生→分享→点评 闭环可走通

任务 工时 交付物
班级码生成+验证 14h 前后端联调6 位随机码 + 5 次锁定
分享到班级 8h 编辑器完成按钮 → 分享/私密 BottomSheet
老师只读查看+点评 12h readonly 模式 + 评语 BottomSheet
前端第一批测试 16h EditorBloc + InMemoryRepo + SyncEngine (~40 用例)
添加测试依赖 2h bloc_test + mocktail

Week 3质量保障体系~42h

目标CI 自动化 + 核心模块 80% 测试覆盖

任务 工时 交付物
前端第二批测试 24h AuthBloc + HomeBloc + CalendarBloc + MoodBloc (~35 用例)
后端 P0 单元测试 10h journal/sync/class service 核心逻辑
CI/CD 流水线 8h pr-check.yml + main-merge.yml

Week 4收尾 + 架构治理(~48h

目标:搜索可用 + PIPL 合规 + 部署就绪

任务 工时 交付物
搜索替代方案 6h 标签+心情筛选(无 FTS
家长中心最小集 30h 关联/查看/导出/删除 4 功能
Docker 部署验证 6.5h Dockerfile + docker-compose + verify.sh
环境配置统一 4h AppConfig + SSE 端口修复
Feature Flag 落地 2h Cargo.toml [features] + main.rs 条件编译

5. 成功标准

30 天后验收清单:

  • 小学生可以写出包含 手写 + 文字 + 贴纸 + 照片 的完整日记
  • 老师布置 → 学生写作 → 分享到班级 → 老师点评 闭环可演示
  • 前端 ~80 个测试 覆盖核心 BLoC 和 Repository
  • CI 自动运行 cargo check + flutter analyze + 测试
  • Docker 一键启动PG + Redis + Axum
  • 家长可查看孩子日记 + 导出/删除数据PIPL 合规)
  • 搜索可按标签和心情筛选日记

6. 总工时估算

方向 工时 占比
核心体验(编辑器+班级+家长) ~122h 55%
质量保障(测试+CI+Docker ~100h 38%
架构治理Feature Flag+环境配置) ~20h 7%
合计 ~186h 100%

按 1 人每天 6h 有效开发时间,约 31 个工作日(~6 周)。


本文档由多专家组头脑风暴综合生成:质量保障专家 + UX体验专家 + 系统架构专家