G1-G6 同步 R6 前置规约与最佳实践

这个提交包含在:
2026-05-11 10:16:05 +08:00
父节点 bc6b222224
当前提交 c8b67498fb
共修改 12 个文件,包含 111 行新增和 19 行删除
+17 -6
查看文件
@@ -7,11 +7,12 @@
## 1. 当前结论
- Release candidate:`537e608 A8 完成首轮主线总回归门禁`。
- 首轮本地 release candidate:`537e608 A8 完成首轮主线总回归门禁`。
- 当前公网 R5 运行代码:`b1ae41f W1-W3 实现企业微信个人应用消息通知`。
- 主开发合同:`issues/2026-05-09_20-57-19-mvp-mainline-dev-kickoff.csv`,A1-A8 已全部 `DONE/DONE/DONE`。
- 剩余主线批次合同:`issues/2026-05-10_10-48-03-mvp-remaining-mainline-closeout.csv`,B1-B5 已全部 `DONE/DONE/DONE`。
- 当前状态:本地门禁已闭环;R4 部署预检、D3 受控同步和 D4 只读复检已完成;公网已部署本轮 release candidate。
- 当前最大缺口:R5 公网自动化和真实 OCR 已通过;企业微信真机人工验收尚未执行,因此 R5 尚未完成,R6 仍不能开始。
- 当前状态:本地门禁已闭环;R4 部署预检、D3 受控同步、D4 只读复检、R5 公网 live smoke、真实 PDF OCR、PC/自动化审批链、企业微信真机入口、个人应用消息和 deeplink 均已完成。
- 当前最大缺口:R6 尚未单独规划。R6 只能在独立 Issue CSV 中固定试运行名单、时间窗口、回滚联系人和问题登记规则后启动。
首轮路线保持不变:OA 是唯一业务主系统和正式审批中心;企业微信只做入口、身份、通知、deeplink 和打卡原始采集边界;不接飞书,不接企业微信原生审批。
@@ -81,7 +82,7 @@ R3 审计执行记录见 [`permission-direct-access-audit.md`](permission-direct
部署前只做只读确认,不直接改生产:
2026-05-10 R4/D3/D4 结论:`DONE`。已创建部署前 DB/storage 备份,执行 `bash deploy/trialrun/deploy.sh` 同步远端文件树并完成脚本内置 smoke;部署后只读复检显示关键运行时文件哈希对齐、Prisma migration up to date、`/ready` 200、Caddy 正常、企业微信 config 不返回 secret、公网资源文案扫描 0 findings。R5 公网自动化和真实 OCR 已在后续 smoke 密码重置后通过,仍需企业微信真机人工验收后才能关闭。
2026-05-10 R4/D3/D4 结论:`DONE`。已创建部署前 DB/storage 备份,执行 `bash deploy/trialrun/deploy.sh` 同步远端文件树并完成脚本内置 smoke;部署后只读复检显示关键运行时文件哈希对齐、Prisma migration up to date、`/ready` 200、Caddy 正常、企业微信 config 不返回 secret、公网资源文案扫描 0 findings。后续 R5 已完成公网自动化、真实 PDF OCR、企业微信真机和个人应用消息验收。
- 当前生产 commit、部署目录和本地 release candidate 是否一致。
- 生产 `.env` 必需项是否完整;检查时不得打印 secret。
@@ -151,7 +152,17 @@ LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readine
- 证据目录:`artifacts/qa-flow/live-smoke-readiness-20260510-172421/`。
- pending OCR 辅助扫描仍因缺 `DATABASE_URL` 记录 `SKIP`,不作为 R5 硬阻断。
- K4 副作用只读审计:`authSessions=555 -> 572`,`auditLogs=258 -> 263`;`reimbursements=1`、`invoices=5`、`ocrResultsLinkedFromInvoices=1` 保持不变;未清理数据。
- 结论:公网自动化和真实 OCR 已通过;企业微信真机人工验收尚未执行,所以主 R5 仍不能置为 `DONE/DONE/DONE`,R6 仍不能开始。
- 阶段结论:公网自动化和真实 OCR 已通过;当时企业微信真机人工验收尚未执行,所以主 R5 仍不能置为 `DONE/DONE/DONE`。
2026-05-11 R5 最终收口:
- 当前公网已部署 `b1ae41f`,R4 复检通过;企业微信通知渠道切换为 `R5-WECOM-APP-PERSONAL / wecom_app_message`,旧 mock 渠道已停用。
- `node scripts/qa/check-live-smoke-env.mjs --strict` 通过;`LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh` 通过;证据目录 `artifacts/qa-flow/live-smoke-readiness-20260511-092236/`。
- 真实 PDF OCR 不再 `SKIP`,重复样票进入“已用于报销,不能重复添加”的可解释终态。
- 测试组织审批链、admin-only 无业务审批权、自审阻断、财务/财务主管节点已由 PC/自动化证明。
- 企业微信真机已确认:`oa_smoke_01 -> SMOKE002`、`oa_smoke_02 -> SMOKE101` 绑定、工作台入口、免登录、提交、审批和移动回流通过。
- 个人应用消息已确认:`SMOKE002` 触发 `SMOKE101` 待办 `936362d8-c4e0-454f-a589-9c9653bcbfda`,delivery 为 `wecom_app_sent`、`errcode=0`、无 `invaliduser`;用户确认手机企业微信收到“海音达工作台”消息,标题正确,点击后可进入移动审批。
- 结论:主 R5 已 `DONE/DONE/DONE`。R6 仍需单独规划和批准,不能自动扩大试运行。
判定:
@@ -161,7 +172,7 @@ LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readine
## 7. 小范围试运行
只有 R3-R5 无阻断后,才开放 2-3 个内部用户试运行。
R5 已完成。下一步只能通过独立 R6 Issue CSV 开放 2-3 个内部用户试运行,不能直接把 R5 通过解释为“自动进入正式试运行”。
建议首批角色: