MindGuard 《质量门禁与验收标准》
字数
1643 字
阅读时间
7 分钟
1. 代码质量门禁
- ESLint / Prettier:所有提交必须在 CI 中通过
npm run lint(底层执行eslint --max-warnings=0)与npm run format:check(执行prettier --check .);禁止新增eslint-disable、prettier-ignore豁免,确有必要需 Tech Lead 批准并登记。 - 单元测试覆盖率:整体语句覆盖率 ≥ 80%,关键模块(
pages/today、packages/journal、packages/community、cloudfunctions/*)覆盖率 ≥ 70%;覆盖率报告需随 PR 附件上传并在合并前由 QA Lead 审核。 - E2E 主流程:使用 Cypress 或微信开发者工具自动化脚本覆盖以下路径,并在 CI「回归」阶段全部通过:
- 今天页情绪打卡 → 微建议生成任务 → 任务完成并写回回执;
- 心情随笔记录(含多模 REBT 模板)→ 生成任务 → 清单同步;
- 树洞发帖(含草稿自检)→ 风控提示触发 → 行动卡领取;
- 我的 Tab 周报查看 → 生成任务 → 授权中心撤销授权;
- SOS 独立分包唤起 → 守护通知回执确认。
- 合并准入:仅在 CI 中 lint、单测、E2E 均为绿色时允许合入主干;若流水线失败,PMO 需在看板记录原因与修复完成时间。
2. 性能预算与检查
| 项目 | 指标 / 要求 | 校验方式 | 负责人 | 频率 |
|---|---|---|---|---|
| 首屏渲染 | 首屏 TTI ≤ 2s(目标 1.5s);白屏率 < 2% | 微信开发者工具性能面板 + 真机测速 | FE Lead / QA Lead | 每次提测、发版前 |
| 资源体积 | 主包 ≤ 2 MB;任一分包 ≤ 2 MB;公共组件仅打包一次 | 构建产物分析(webpack-bundle-analyzer) | FE Lead | 每周构建 |
| 图片加载 | 所有图片使用延迟加载(<image lazy-load> 或 IntersectionObserver)并通过 CDN 压缩;禁止同步加载 >300 KB 图片 | 代码审查 + 体验版实机验证 | FE Lead | 持续 |
| 分包 & 预加载 | app.json 配置与《分包规划方案.md》一致;预加载命中率 ≥ 80% | 自动路由校验脚本 + 体验版巡检 | FE Lead / QA Lead | 每次发版前 |
| 性能回归 | 关键接口 P95 响应 ≤ 1.5s;接口错误率 ≤ 1% | APM / 腾讯云监控告警 | BE Lead / Ops-Risk Lead | 实时 |
3. 安全与隐私控制
- TCB 权限表达式校验:所有集合权限需通过
schemaValidator自动化检查,并由 QA 使用真实权限账号验证读写矩阵;严禁true、*等全开权限。 - 敏感集合访问限制:P3 级集合(
checkins、sos、reports的risk_digest、users.risk_tier等)禁止管理员直接查询,必须通过具备审计的云函数(如pushGuardianAlert、后台 BFF)间接访问;所有输出需脱敏。 - 审计日志留存:云函数和后台写入
audit_logs,记录操作者、时间、字段差异,并保留 ≥ 12 个月;Ops/Risk Lead 每周输出合规抽样报告。 - 数据传输安全:所有请求走 HTTPS 白名单域名;敏感字段(手机号、地理位置、心理状态)在前端与日志中需掩码;CI 中不得输出凭证或 OpenID。
4. 数据正确性与埋点验收
4.1 埋点事件自检表
| 事件 ID | 触发页面/操作 | 核心参数 | 校验方式 |
|---|---|---|---|
pv_today | pages/today/index onShow | entry_source、has_login、recommendation_bucket | 真机抓包 + ClickHouse 日次对账 |
mood_checkin_submit | 今天页情绪打卡提交 | mood_score、mood_tags[]、input_type | 前端控制台校验 + checkins 集合抽样 |
suggestion_task_create | 微建议一键生成任务 | suggestion_id、task_id、latency_ms | 埋点事件与 tasks 集合对账 |
journal_entry_submit | 心情随笔保存或多模录入完成 | entry_id、input_channel、use_rebt_template | /api/journals 响应与埋点比对 |
task_status_update | 任务开始/完成/跳过 | task_id、status、delay_minutes | tasks 集合状态变更对照 |
treehole_post_publish | 树洞发帖成功 | post_id、topic、risk_score | posts 集合与埋点对账 |
risk_signal_escalate | 风险升级/通知触发 | severity_level、handler_role、response_latency_s | 风控告警日志核对 |
weekly_report_view | 我的 Tab 周报详情查看 | report_id、view_channel、share_action | reports 集合 read_at 字段比对 |
4.2 周/日漏斗校验
- 日报(T+1):
mood_checkin_submit→suggestion_task_create→task_status_update(status=complete)转化率若环比下降 > 10% 须 24 小时内排查。 - 周报:
journal_entry_submit、treehole_post_publish、risk_signal_escalate事件与数据库记录差异需 < 5%;Data Lead 每周五 16:00 输出埋点周报并附差异说明。 - 异常处理:差异超标时 48 小时内补发/补算,并在《埋点周报》中记录补偿动作及负责人。
5. 里程碑验收清单(DoD)
| 里程碑 | 必须满足的 DoD | 验收材料 |
|---|---|---|
| M0 准备 | 环境搭建完成;分包规划与数据库命名冻结;CI 初版跑通;风险清单发布 | 启动会纪要、环境截图、docs/项目计划/风险清单与应对.md |
| M1 骨架与首页 | 主包四 Tab 可运行;今天页情绪打卡→任务闭环 Demo;pv_today、mood_checkin_submit 上报;体验版提测 | Demo 录屏、体验包链接、联调报告、埋点校验截图 |
| M2 核心流程 | 今天/任务/树洞/心情随笔四大闭环真机可用;tasks、checkins、journals、posts 集合读写验收;分包 journal/community 加载成功;联调缺陷关闭率 ≥ 95% | 真机 demo、集合验收记录、缺陷统计表、埋点漏斗截图 |
| M3 扩展与风控 | 风控提示、SOS 分包、晚安模式上线测试环境;风险/性能监控配置;审核资料初稿归档;风控演练通过 | 风控演练报告、Grafana 截图、审核资料包、性能回归报告 |
| M4 提审与发布 | 全量测试通过;审核资料提交并确认;提审通过;回滚预案演练完成 | 测试报告、提审后台截图、回滚演练记录、上线公告草案 |
| M5 运营与复盘 | 上线 48h 值班记录;关键指标日报/周报发布;用户反馈与缺陷跟踪;项目复盘与下一阶段 backlog 归档 | 值班表、指标看板截图、反馈清单、复盘报告 |
验收需由 PMO、QA Lead、Tech Lead 联合签字,并在项目看板同步 DoD 状态。