R6-3 固定试运行前检查状态

这个提交包含在:
2026-05-12 00:24:42 +08:00
父节点 53a7779a70
当前提交 f7e2a128fb
共修改 4 个文件,包含 19 行新增和 17 行删除
+15 -13
查看文件
@@ -14,12 +14,12 @@
| 项目 | 记录 |
| --- | --- |
| 公网地址 | `https://oa.hyinda.com` |
| 当前门禁 | R5 已 `DONE/DONE/DONE`;R6 仍 `TODO` |
| 当前代码基线 | 待 R6-3 试运行前检查时记录公网运行版本 |
| 试运行窗口 | 待填写 |
| 回滚联系人 | 待填写 |
| 问题登记负责人 | 待填写 |
| 当前候选配置 | 员工 `SMOKE002`;经理/审批人 `SMOKE101`;管理员 `wangshunli`;财务 `wangzhiling` |
| 当前门禁 | R5 已 `DONE/DONE/DONE`;R6 仍 `TODO`;R6-3 自动检查已完成但真实财务账号 `wangzhiling` 未命中,R6-4 暂不启动 |
| 当前代码基线 | `53a7779`;公网 `https://oa.hyinda.com` 已部署 MUD6 移动统一设计 |
| 试运行窗口 | `2026-05-12 14:00-17:00 Asia/Shanghai`;若现场无法执行,顺延到 `2026-05-13 14:00-17:00 Asia/Shanghai` |
| 回滚联系人 | `wangshunli` |
| 问题登记负责人 | `wangshunli` |
| 当前候选配置 | 员工 `SMOKE002`;经理/审批人 `SMOKE101`;管理员/拍板人 `wangshunli`;财务 `wangzhiling` |
| 允许范围 | 报销、请假、采购、审批、企业微信入口/通知、财务付款/导出 |
| 禁止扩展 | 预算、ERP、AI、完整差旅、复杂 BPM、审批设计器、新组织规则 |
@@ -43,18 +43,18 @@
| --- | --- | --- | --- | --- | --- | --- |
| `SMOKE002` | 员工 / 提交人 | PC / 企业微信 / 手机浏览器 | iPhone 12 / iOS 14.1 / Redmi K60 | 报销、请假、采购提交 | 待执行 | 用户口径为 `smkoe02/smoke02`,按既有账号统一记录为 `SMOKE002` |
| `SMOKE101` | 经理 / 审批人 | PC / 企业微信 / 手机浏览器 | iPhone 12 / iOS 14.1 / Redmi K60 | 审批待办、退回或驳回 | 待执行 | 审批人可以是经理;不使用 admin 解释审批权 |
| `wangshunli` | 管理员 / 回滚或试运行拍板候选 | PC | 待填写 | 管理后台、配置核对、试运行决策 | 待执行 | 不作为本轮普通业务审批人;财务由 `wangzhiling` 候选承担 |
| `wangzhiling` | 财务 | PC / 手机浏览器 | Redmi K60 | 财务复核、付款标记、导出 | 待执行 | R6-3 前需只读确认账号 active、财务角色和权限 |
| `wangshunli` | 管理员 / 回滚联系人 / 试运行拍板人 / 问题登记负责人 | PC | 管理员 PC | 管理后台、配置核对、试运行决策、问题分级和回滚拍板 | 待执行 | 不作为本轮普通业务审批人;财务由 `wangzhiling` 承担 |
| `wangzhiling` | 财务 | PC / 手机浏览器 | Redmi K60 | 财务复核、付款标记、导出 | 待补账号 | R6-3 只读查询未命中 `wangzhiling` / `zhiling` 员工账号;自动化阶段不使用真实密码 |
### R6 流程执行矩阵
| 流程 | 操作路径 | 期望结果 | 执行人 | 结果 | 证据位置 |
| --- | --- | --- | --- | --- | --- |
| 报销 | 员工提交报销 -> 上传 PDF 发票或附件 -> 提交审批 -> 审批人处理 -> 财务复核或付款标记 | 状态、审批历史、通知和财务动作一致 | 待填写 | 待执行 | 不提交敏感截图 |
| 请假 | 员工提交请假 -> 审批人处理 -> 员工查看状态 | 待办、历史和团队状态一致 | 待填写 | 待执行 | 不提交敏感截图 |
| 采购 | 员工提交采购 -> 审批人处理 -> 查看审批历史 | 采购状态和审批中心一致 | 待填写 | 待执行 | 不提交敏感截图 |
| 企业微信通知 | 待办产生 -> 审批人收到个人应用消息 -> 点击回 OA | 消息可达且 deeplink 回移动审批或详情 | 待填写 | 待执行 | 记录文字结论即可 |
| 财务付款/导出 | 财务处理已通过单据 -> 标记付款或导出 | 权限、状态和审计记录正确 | 待填写 | 待执行 | 不导出敏感数据到仓库 |
| 报销 | 员工提交报销 -> 上传 PDF 发票或附件 -> 提交审批 -> 审批人处理 -> 财务复核或付款标记 | 状态、审批历史、通知和财务动作一致 | `SMOKE002` / `SMOKE101` / `wangzhiling` | 待执行 | 不提交敏感截图 |
| 请假 | 员工提交请假 -> 审批人处理 -> 员工查看状态 | 待办、历史和团队状态一致 | `SMOKE002` / `SMOKE101` | 待执行 | 不提交敏感截图 |
| 采购 | 员工提交采购 -> 审批人处理 -> 查看审批历史 | 采购状态和审批中心一致 | `SMOKE002` / `SMOKE101` | 待执行 | 不提交敏感截图 |
| 企业微信通知 | 待办产生 -> 审批人收到个人应用消息 -> 点击回 OA | 消息可达且 deeplink 回移动审批或详情 | `SMOKE101` / `oa_smoke_02` | 待执行 | 记录文字结论即可 |
| 财务付款/导出 | 财务处理已通过单据 -> 标记付款或导出 | 权限、状态和审计记录正确 | `wangzhiling` | 待执行 | 不导出敏感数据到仓库 |
### R6 问题登记
@@ -67,6 +67,8 @@ MME6 补充(2026-05-11):针对用户补充的 iPhone 12 / iOS 14.1 图文
MUD6 收口(2026-05-11):已将 MME6 槽位自适应方案推广到专用 `/mobile` 路由:移动首页、审批、报销列表、报销详情、我的、个人设置、通知、票据上传、请假和资产扫码。通用移动样式固定图标/头像槽、`minmax(0, 1fr)` 文本槽、`clamp()` 间距、`mobile-card`、移动列表卡片、空状态和深层页吸底操作;业务角色差异继续按权限裁剪入口和动作,不拆多套 UI。本地 `client typecheck`、`client build`、MUD6 全移动页视觉专项 7 passed、WCM6/RS6/R124 回归 16 passed;已部署到 `https://oa.hyinda.com`,`/ready` 正常、public bundle `findings=0`、live smoke readiness PASS、真实 OCR 样票为重复发票可解释终态且通过,公网 MUD6 视觉专项 7 passed,报告 `artifacts/qa-flow/live-smoke-readiness-20260511-235918`。R6-3 可恢复执行试运行前检查,建议仍抽查 iPhone 12 / iOS 14、iPhone 14 / iOS 16.2、Redmi K60 的企业微信首页、审批、报销详情、我的和通知。
R6-3 试运行前自动检查(2026-05-12):公网 `/ready` 正常;public bundle 扫描 `scanned=54 focused=4 findings=0`;`check-live-smoke-env --strict` 通过,`liveSmokeReady=true`、`liveOcrReady=true`;`LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh` 通过,公网 live smoke `3 passed`,真实 OCR 样票返回“该发票已用于报销,不能重复添加”的可解释终态,报告 `artifacts/qa-flow/live-smoke-readiness-20260512-001722`。只读查询确认通知渠道 `R5-WECOM-APP-PERSONAL` 为 `enabled=true`、`mode=wecom_app_message`,旧 `R50-MOCK-007334` 为 `enabled=false`;远端容器 `hyb-oa-trialrun-db` healthy、`hyb-oa-trialrun-server` running,Prisma migration status 为 up to date;最近可追溯备份为 `hyb-oa-db-20260510_134340.dump` 与 `hyb-oa-storage-20260510_134341.tar.gz`。只读查询未命中 `wangzhiling` / `zhiling` 员工账号;当前可用测试财务账号仍为 `SMOKE301`(`finance`)和 `SMOKE302`(`finance,finance_mgr`),二者均为 `active`。因此 R6-3 自动检查主体通过,但真实财务用户未补齐前不启动 R6-4。
级别定义:
- 阻断:权限泄漏、付款状态错乱、企业微信入口不可用、审批主流程无法继续、真实 OCR 大面积失败。
+1 -1
查看文件
@@ -172,7 +172,7 @@ LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readine
## 7. 小范围试运行
R5 已完成。R6 准备合同已创建:`issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv`。当前仅完成基线建档;名单、窗口、回滚联系人和问题登记负责人未固定前,主 R6 保持 `TODO/TODO/TODO`,不能直接把 R5 通过解释为“自动进入正式试运行”。
R5 已完成。R6 准备合同已创建:`issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv`。R6-2 已固定名单、窗口、回滚联系人和问题登记负责人;R6-3 自动检查主体通过,但只读查询未命中真实财务候选账号 `wangzhiling`,当前仅 `SMOKE301/SMOKE302` 测试财务账号可用。真实财务账号未补齐或未明确改用测试财务前,主 R6 继续保持 `TODO/TODO/TODO`,不能直接把 R5 通过解释为“自动进入正式试运行”。
建议首批角色:
@@ -4,4 +4,4 @@ R2,本地门禁与 Runbook 补强,把 A8 本地回归真实需要的本地服务
R3,权限直连审计,在部署前用员工、主管、财务、管理员账号直连主路径和备用路径,确认导航隐藏没有掩盖服务端授权缺口。,1) 形成角色 x 路径允许/拒绝矩阵;2) 普通员工直连预算、AP、ERP、完整差旅、票据中心、合同台账、付款批次等备用路径不得获得越权数据;3) 若发现服务端权限缺口,先拆独立修复 Issue,不进入部署。,流程级验证:分别登录员工、主管、财务、管理员账号 -> 直连 /budgets、/ap、/system/integrations/erp、/travel-requests、/invoice-pool、/contracts-registry、/payment-batches 和对应 API -> 记录 HTTP 状态、页面提示和是否泄露数据;命令:cd client && npm run test:e2e -- permission-direct-access.spec.ts settings-governance.spec.ts login-portal-ux.spec.ts --workers=1。,playwright|curl|manual,DONE,DONE,DONE,client/tests/e2e/permission-direct-access.spec.ts|docs/trialrun/permission-direct-access-audit.md|docs/trialrun/release-readiness-checklist.md|issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv,"[""R2""]",R3 已完成:新增权限直连 E2E 和审计记录;首次 E2E 因 127.0.0.1:3000 未启动失败,启动本地 OA 服务后重跑通过 10 passed;typecheck/build/CSV/diff check 通过;未发现权限泄漏,未改业务代码,R4 仍未执行。
R4,部署预检,检查生产/公网环境变量、数据库迁移状态、备份、回滚命令、Caddy/systemd 状态、/ready 和前端资源版本;未经批准不部署。,1) 生产环境变量缺项和敏感项不打印;2) 数据库迁移状态明确且有备份/回滚路径;3) Caddy/systemd 或既有部署方式健康;4) /ready 与前端资源版本可核对;5) 若需要修改生产配置,必须先获得确认。,流程级验证:只读检查部署目录、服务状态和 /ready;命令:node scripts/qa/check-live-smoke-env.mjs;命令:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;生产变更前必须停止等待批准。,ssh|bash|node|manual,DONE,DONE,DONE,deploy/*|scripts/qa/*|docs/trialrun/release-readiness-checklist.md,"[""R3""]",R4 完成:先发现远端运行时代码未对齐,后续按治理合同完成部署前备份、D3 受控同步和 D4 只读复检;远端关键运行时文件哈希已对齐,本机/公网 /ready 200,Prisma up to date,Caddy 正常,企业微信 config 不含 secret,公网 bundle 扫描 0 findings;R5 仍未执行。
R5,公网企业微信和真实 OCR live smoke,在 R4 预检通过且真实测试账号、企业微信配置和真实 OCR 样票齐备后,执行公网登录、企业微信入口、移动审批、报销/OCR 上传和通知 deeplink。,1) LIVE_SMOKE_* 从缺失变为可执行;2) 企业微信 config、OAuth 跳转和手机入口可验证;3) 真实 PDF OCR 样票上传能进入可解释终态;4) PC/自动化审批链证明 SMOKE002->SMOKE101->SMOKE201->SMOKE302/SMOKE301、自审禁止和 admin-only 不能审批;5) 企业微信移动体验验证入口、绑定、免登录、移动待办、报销详情、PDF 上传、底部导航和 deeplink;6) 缺配置时继续 SKIP,不得宣称真机或真实 OCR 通过。,流程级验证: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;PC 审批链:公网 PC 登录 SMOKE002/SMOKE101/SMOKE201/SMOKE301/SMOKE302 或复用自动化证据验证正式链路;人工真机:手机企业微信工作台打开海音达工作台 -> 免登录 -> 移动待办/报销详情/PDF 上传/deeplink -> 记录结果。,node|bash|playwright|manual,DONE,DONE,DONE,scripts/qa/*|docs/trialrun/live-smoke-readiness.md|docs/trialrun/real-device-public-checklist.md,"[""R4""]",R5 completed 2026-05-11:最新 RC 795e976 已部署并完成 R4 只读复检;公网 live smoke 3 passed,真实 PDF OCR 不再 SKIP,终态为 ocr_failed/该发票已用于报销不能重复添加,证据 artifacts/qa-flow/live-smoke-readiness-20260511-001603;O3 PC/自动化审批链已完成并回填 DONE;公网自动移动视觉通过,截图 output/playwright/r5-live-mobile-wecom-visual/;用户确认真实企业微信工作台入口和免登录通过;站内通知与移动 deeplink 自动视觉通过,截图 output/playwright/r5-notification-deeplink-live/。2026-05-11 追加:b1ae41f 已部署,R4 复检通过;通知渠道切换为 R5-WECOM-APP-PERSONAL/wecom_app_message,旧 R50-MOCK-007334 已停用;strict 准入通过,live smoke 报告 artifacts/qa-flow/live-smoke-readiness-20260511-092236;SMOKE002->SMOKE101 新待办 936362d8-c4e0-454f-a589-9c9653bcbfda 的 delivery=wecom_app_sent/errcode=0/无 invaliduser,企业微信 UA 自动视觉通过,截图 output/playwright/r5-wecom-app-message-live/。用户已确认 oa_smoke_02 手机企业微信收到“海音达工作台”个人应用消息,标题正确;点击后首次进入提示进入工作台,进入后可看到移动审批,后续再次进入可直接看到移动审批;有消息通知但未观察到系统弹窗。主 R5 已回填 DONE/DONE/DONE;R6 继续 TODO,需单独规划和批准。
R6,小范围试运行,公网和真机 smoke 通过后,只开放 2-3 个内部用户按清单试运行报销、请假、采购、审批、企业微信移动入口、付款和导出;反馈转新 Issue。,1) 试运行名单、角色、时间窗口和回滚联系人明确;2) 员工提交、审批人审批、财务付款/导出、企业微信 deeplink 回 OA 均有记录;3) 每日问题只登记和分级,不现场扩大 P2 功能范围;4) 试运行结束形成继续/回滚/修复判断。,流程级验证:员工提交报销/请假/采购 -> 主管或财务审批 -> 财务付款或导出 -> 企业微信通知 deeplink 回 OA -> 管理员检查审计和状态;人工记录问题、截图和处理结论。,manual|playwright,TODO,TODO,TODO,docs/trialrun/release-readiness-checklist.md|docs/trialrun/manual-trialrun-report.md|issues/*.csv,"[""R5""]",R6 准备合同已创建:issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv;当前仅 R6-1 基线建档完成,R6-2 名单/窗口/回滚联系人仍 TODO,因此主 R6 继续 TODO/TODO/TODO,不开放真实用户。小范围试运行前不得扩 P2 预算、ERP、AI、完整差旅、复杂 BPM;反馈必须进入新 Issue CSV。
R6,小范围试运行,公网和真机 smoke 通过后,只开放 2-3 个内部用户按清单试运行报销、请假、采购、审批、企业微信移动入口、付款和导出;反馈转新 Issue。,1) 试运行名单、角色、时间窗口和回滚联系人明确;2) 员工提交、审批人审批、财务付款/导出、企业微信 deeplink 回 OA 均有记录;3) 每日问题只登记和分级,不现场扩大 P2 功能范围;4) 试运行结束形成继续/回滚/修复判断。,流程级验证:员工提交报销/请假/采购 -> 主管或财务审批 -> 财务付款或导出 -> 企业微信通知 deeplink 回 OA -> 管理员检查审计和状态;人工记录问题、截图和处理结论。,manual|playwright,TODO,TODO,TODO,docs/trialrun/release-readiness-checklist.md|docs/trialrun/manual-trialrun-report.md|issues/*.csv,"[""R5""]","R6 准备合同已创建:issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv;R6-2 已固定 SMOKE002、SMOKE101、wangzhiling、wangshunli、默认窗口和回滚/问题负责人;R6-3 自动检查主体通过,报告 artifacts/qa-flow/live-smoke-readiness-20260512-001722,通知渠道 wecom_app_message enabled,旧 mock disabled,备份可追溯。但只读查询未命中 wangzhiling/zhiling 员工账号,当前仅 SMOKE301/SMOKE302 测试财务 active,因此主 R6 继续 TODO/TODO/TODO,不开放真实用户。小范围试运行前不得扩 P2 预算、ERP、AI、完整差旅、复杂 BPM;反馈必须进入新 Issue CSV。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
4 R3 权限直连审计 在部署前用员工、主管、财务、管理员账号直连主路径和备用路径,确认导航隐藏没有掩盖服务端授权缺口。 1) 形成角色 x 路径允许/拒绝矩阵;2) 普通员工直连预算、AP、ERP、完整差旅、票据中心、合同台账、付款批次等备用路径不得获得越权数据;3) 若发现服务端权限缺口,先拆独立修复 Issue,不进入部署。 流程级验证:分别登录员工、主管、财务、管理员账号 -> 直连 /budgets、/ap、/system/integrations/erp、/travel-requests、/invoice-pool、/contracts-registry、/payment-batches 和对应 API -> 记录 HTTP 状态、页面提示和是否泄露数据;命令:cd client && npm run test:e2e -- permission-direct-access.spec.ts settings-governance.spec.ts login-portal-ux.spec.ts --workers=1。 playwright|curl|manual DONE DONE DONE client/tests/e2e/permission-direct-access.spec.ts|docs/trialrun/permission-direct-access-audit.md|docs/trialrun/release-readiness-checklist.md|issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv ["R2"] R3 已完成:新增权限直连 E2E 和审计记录;首次 E2E 因 127.0.0.1:3000 未启动失败,启动本地 OA 服务后重跑通过 10 passed;typecheck/build/CSV/diff check 通过;未发现权限泄漏,未改业务代码,R4 仍未执行。
5 R4 部署预检 检查生产/公网环境变量、数据库迁移状态、备份、回滚命令、Caddy/systemd 状态、/ready 和前端资源版本;未经批准不部署。 1) 生产环境变量缺项和敏感项不打印;2) 数据库迁移状态明确且有备份/回滚路径;3) Caddy/systemd 或既有部署方式健康;4) /ready 与前端资源版本可核对;5) 若需要修改生产配置,必须先获得确认。 流程级验证:只读检查部署目录、服务状态和 /ready;命令:node scripts/qa/check-live-smoke-env.mjs;命令:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;生产变更前必须停止等待批准。 ssh|bash|node|manual DONE DONE DONE deploy/*|scripts/qa/*|docs/trialrun/release-readiness-checklist.md ["R3"] R4 完成:先发现远端运行时代码未对齐,后续按治理合同完成部署前备份、D3 受控同步和 D4 只读复检;远端关键运行时文件哈希已对齐,本机/公网 /ready 200,Prisma up to date,Caddy 正常,企业微信 config 不含 secret,公网 bundle 扫描 0 findings;R5 仍未执行。
6 R5 公网企业微信和真实 OCR live smoke 在 R4 预检通过且真实测试账号、企业微信配置和真实 OCR 样票齐备后,执行公网登录、企业微信入口、移动审批、报销/OCR 上传和通知 deeplink。 1) LIVE_SMOKE_* 从缺失变为可执行;2) 企业微信 config、OAuth 跳转和手机入口可验证;3) 真实 PDF OCR 样票上传能进入可解释终态;4) PC/自动化审批链证明 SMOKE002->SMOKE101->SMOKE201->SMOKE302/SMOKE301、自审禁止和 admin-only 不能审批;5) 企业微信移动体验验证入口、绑定、免登录、移动待办、报销详情、PDF 上传、底部导航和 deeplink;6) 缺配置时继续 SKIP,不得宣称真机或真实 OCR 通过。 流程级验证: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;PC 审批链:公网 PC 登录 SMOKE002/SMOKE101/SMOKE201/SMOKE301/SMOKE302 或复用自动化证据验证正式链路;人工真机:手机企业微信工作台打开海音达工作台 -> 免登录 -> 移动待办/报销详情/PDF 上传/deeplink -> 记录结果。 node|bash|playwright|manual DONE DONE DONE scripts/qa/*|docs/trialrun/live-smoke-readiness.md|docs/trialrun/real-device-public-checklist.md ["R4"] R5 completed 2026-05-11:最新 RC 795e976 已部署并完成 R4 只读复检;公网 live smoke 3 passed,真实 PDF OCR 不再 SKIP,终态为 ocr_failed/该发票已用于报销不能重复添加,证据 artifacts/qa-flow/live-smoke-readiness-20260511-001603;O3 PC/自动化审批链已完成并回填 DONE;公网自动移动视觉通过,截图 output/playwright/r5-live-mobile-wecom-visual/;用户确认真实企业微信工作台入口和免登录通过;站内通知与移动 deeplink 自动视觉通过,截图 output/playwright/r5-notification-deeplink-live/。2026-05-11 追加:b1ae41f 已部署,R4 复检通过;通知渠道切换为 R5-WECOM-APP-PERSONAL/wecom_app_message,旧 R50-MOCK-007334 已停用;strict 准入通过,live smoke 报告 artifacts/qa-flow/live-smoke-readiness-20260511-092236;SMOKE002->SMOKE101 新待办 936362d8-c4e0-454f-a589-9c9653bcbfda 的 delivery=wecom_app_sent/errcode=0/无 invaliduser,企业微信 UA 自动视觉通过,截图 output/playwright/r5-wecom-app-message-live/。用户已确认 oa_smoke_02 手机企业微信收到“海音达工作台”个人应用消息,标题正确;点击后首次进入提示进入工作台,进入后可看到移动审批,后续再次进入可直接看到移动审批;有消息通知但未观察到系统弹窗。主 R5 已回填 DONE/DONE/DONE;R6 继续 TODO,需单独规划和批准。
7 R6 小范围试运行 公网和真机 smoke 通过后,只开放 2-3 个内部用户按清单试运行报销、请假、采购、审批、企业微信移动入口、付款和导出;反馈转新 Issue。 1) 试运行名单、角色、时间窗口和回滚联系人明确;2) 员工提交、审批人审批、财务付款/导出、企业微信 deeplink 回 OA 均有记录;3) 每日问题只登记和分级,不现场扩大 P2 功能范围;4) 试运行结束形成继续/回滚/修复判断。 流程级验证:员工提交报销/请假/采购 -> 主管或财务审批 -> 财务付款或导出 -> 企业微信通知 deeplink 回 OA -> 管理员检查审计和状态;人工记录问题、截图和处理结论。 manual|playwright TODO TODO TODO docs/trialrun/release-readiness-checklist.md|docs/trialrun/manual-trialrun-report.md|issues/*.csv ["R5"] R6 准备合同已创建:issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv;当前仅 R6-1 基线建档完成,R6-2 名单/窗口/回滚联系人仍 TODO,因此主 R6 继续 TODO/TODO/TODO,不开放真实用户。小范围试运行前不得扩 P2 预算、ERP、AI、完整差旅、复杂 BPM;反馈必须进入新 Issue CSV。 R6 准备合同已创建:issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv;R6-2 已固定 SMOKE002、SMOKE101、wangzhiling、wangshunli、默认窗口和回滚/问题负责人;R6-3 自动检查主体通过,报告 artifacts/qa-flow/live-smoke-readiness-20260512-001722,通知渠道 wecom_app_message enabled,旧 mock disabled,备份可追溯。但只读查询未命中 wangzhiling/zhiling 员工账号,当前仅 SMOKE301/SMOKE302 测试财务 active,因此主 R6 继续 TODO/TODO/TODO,不开放真实用户。小范围试运行前不得扩 P2 预算、ERP、AI、完整差旅、复杂 BPM;反馈必须进入新 Issue CSV。
@@ -1,7 +1,7 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
R6-1,R6 基线与准备合同,固定 R6 小范围试运行准备合同,记录 R5 已完成、当前公网版本、回滚口径和不扩范围原则;本项不启动真实试运行。,"1) 本 CSV 存在且校验通过;2) 主 R5 为 DONE/DONE/DONE;3) 主 R6 仍为 TODO;4) R6 范围限定报销、请假、采购、审批、企业微信入口通知、财务付款导出;5) 不改业务代码、不部署、不改远端数据。","流程级验证:git status --short;git log --oneline -5;python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv;人工核对 issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv 中 R5 DONE、R6 TODO。",git|python3|manual,DONE,DONE,DONE,issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv,[],基线为 c8b6749;公网 R5 运行代码包含 b1ae41f;回滚优先使用最近部署包、数据库备份、storage 备份和配置备份;本合同只做 R6 准备。
R6-2,固定试运行名单与窗口,固定 R6 首批 2-3 个内部用户、角色、时间窗口、回滚联系人和问题登记负责人;名单未确定时不得启动 R6。,"1) 至少覆盖员工、审批人、财务或管理员;2) 每个用户有角色、入口、设备和预期流程;3) 时间窗口、回滚联系人、问题登记负责人明确;4) 若名单缺失,本项保持 TODO,R6 不进入 DOING。","流程级验证:人工填写 docs/trialrun/manual-trialrun-report.md 的 R6 试运行记录模板;检查不得写入密码、secret、个人隐私截图或真实票据文件。",manual,TODO,TODO,TODO,docs/trialrun/manual-trialrun-report.md,"[""R6-1""]",已记录候选配置:员工 SMOKE002;经理/审批人 SMOKE101;管理员 wangshunli 仅做管理后台和试运行拍板候选;财务 wangzhiling 候选,设备 Redmi K60;员工和经理设备 iPhone 11 / Redmi K60。仍缺试运行窗口、回滚联系人、问题登记负责人;另有 iPhone 11 企业微信底部菜单第二项不可点与页面拥挤阻断候选,见 issues/2026-05-11_10-46-10-r6-iphone11-wecom-mobile-layout-hotfix.csv。未补齐前 R6-2 保持 TODO,不开放真实用户。
R6-3,R6 试运行前自动检查,在名单与窗口确认后,复核公网健康、企业微信个人应用消息、live smoke、真实 PDF OCR、测试账号和回滚证据。,"1) /ready 正常;2) 公网 bundle findings=0;3) check-live-smoke-env --strict 通过;4) run-live-smoke-readiness.sh 通过;5) 企微个人应用消息渠道 enabled 且旧 mock 不作为验收依据;6) 回滚联系人和备份位置可追溯。","流程级验证: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;只读确认通知渠道 mode=wecom_app_message;记录最新 artifacts/qa-flow/live-smoke-readiness-*。",node|bash|ssh|manual,TODO,TODO,TODO,scripts/qa/*|artifacts/qa-flow|docs/trialrun/manual-trialrun-report.md,"[""R6-2""]",仅在 R6-2 完成后执行;执行时不得打印密码、secret、样票路径或敏感截图。
R6-2,固定试运行名单与窗口,固定 R6 首批 2-3 个内部用户、角色、时间窗口、回滚联系人和问题登记负责人;名单未确定时不得启动 R6。,"1) 至少覆盖员工、审批人、财务或管理员;2) 每个用户有角色、入口、设备和预期流程;3) 时间窗口、回滚联系人、问题登记负责人明确;4) 若名单缺失,本项保持 TODO,R6 不进入 DOING。","流程级验证:人工填写 docs/trialrun/manual-trialrun-report.md 的 R6 试运行记录模板;检查不得写入密码、secret、个人隐私截图或真实票据文件。",manual,DONE,DONE,DONE,docs/trialrun/manual-trialrun-report.md,"[""R6-1""]","R6-2 completed:已固定员工 SMOKE002、经理/审批人 SMOKE101、财务 wangzhiling、管理员/拍板人 wangshunli;回滚联系人和问题登记负责人均为 wangshunli;默认窗口为 2026-05-12 14:00-17:00 Asia/Shanghai,若现场无法执行则顺延到 2026-05-13 14:00-17:00。R6-ISSUE-001/002 已关闭;不记录密码、secret、隐私截图或真实票据文件。"
R6-3,R6 试运行前自动检查,在名单与窗口确认后,复核公网健康、企业微信个人应用消息、live smoke、真实 PDF OCR、测试账号和回滚证据。,"1) /ready 正常;2) 公网 bundle findings=0;3) check-live-smoke-env --strict 通过;4) run-live-smoke-readiness.sh 通过;5) 企微个人应用消息渠道 enabled 且旧 mock 不作为验收依据;6) 回滚联系人和备份位置可追溯。","流程级验证: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;只读确认通知渠道 mode=wecom_app_message;记录最新 artifacts/qa-flow/live-smoke-readiness-*。",node|bash|ssh|manual,DONE,DONE,TODO,scripts/qa/*|artifacts/qa-flow|docs/trialrun/manual-trialrun-report.md,"[""R6-2""]","BLOCKED:2026-05-12 自动检查已执行,/ready ok,public bundle findings=0,strict live env 通过,run-live-smoke-readiness PASS,真实 OCR 样票为重复发票可解释终态,报告 artifacts/qa-flow/live-smoke-readiness-20260512-001722;通知渠道 R5-WECOM-APP-PERSONAL enabled=true mode=wecom_app_message,旧 R50-MOCK-007334 enabled=false;远端 Prisma up to date,容器健康,备份 hyb-oa-db-20260510_134340.dump 与 hyb-oa-storage-20260510_134341.tar.gz 可追溯。只读查询未命中 wangzhiling/zhiling 员工账号;SMOKE301/SMOKE302 仍为 active 测试财务账号。真实 R6 财务用户未补齐前 Regression_Status 保持 TODO,不启动 R6-4。"
R6-4,R6 小范围真实流程执行,按已确认名单执行员工、审批人、财务或管理员的真实或准真实业务流程,并把所有问题登记到模板或新 Issue。,"1) 员工提交报销并上传 PDF 发票或附件;2) 请假和采购各至少一条轻量流程;3) 审批人从 PC 或企业微信移动入口处理待办;4) 财务完成复核、付款标记或导出验证;5) 企业微信消息能收到并回流 OA。","流程级验证:按 docs/trialrun/manual-trialrun-report.md 的 R6 流程矩阵逐项记录;必要时用 Playwright 辅助 PC 1440x960、iPhone 11、Redmi K60 和企业微信 UA 视觉验证;问题按阻断、严重、一般、体验建议分级。",manual|playwright,TODO,TODO,TODO,docs/trialrun/manual-trialrun-report.md|output/playwright,"[""R6-3""]",R6 期间不扩预算、ERP、AI、完整差旅、复杂 BPM、审批设计器或新组织规则;发现需求只登记。
R6-5,R6 每日收口与风险处置,试运行期间每日汇总问题,判断继续、修复后继续、暂停或回滚。,"1) 每日问题按阻断、严重、一般、体验建议分级;2) 阻断问题暂停试运行;3) 严重问题当天判断修复、降级或回滚;4) 一般和体验建议进入后续 Issue;5) 每日结论有负责人和时间。","流程级验证:检查 docs/trialrun/manual-trialrun-report.md 每日收口区;若触发回滚,记录触发条件、决策人、执行人、回滚点和复检结果。",manual,TODO,TODO,TODO,docs/trialrun/manual-trialrun-report.md|issues/*.csv,"[""R6-4""]",只有阻断主流程或数据安全的问题才立即修复;其余问题进入后续批次。
R6-6,R6 结论与后续优化入口,汇总 R6 结果,形成继续、修复后继续、暂停回滚或进入下一批优化的结论。,"1) 试运行结论明确;2) 主 R6 仅在真实流程和每日收口全部满足后才可回填 DONE/DONE/DONE;3) 后续优化拆成新 Issue;4) 不把 R6 通过解释为全面正式上线。","流程级验证:校验本 CSV、主 R5/R6 合同和试运行报告;git diff --check;人工核对所有问题均已登记、分级和指派。",python3|git|manual,TODO,TODO,TODO,issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv|docs/trialrun/manual-trialrun-report.md,"[""R6-5""]",R6 通过后优先规划 PC 信息架构统一、移动深层页体验、审批催办/超时和财务台账增强。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 R6-1 R6 基线与准备合同 固定 R6 小范围试运行准备合同,记录 R5 已完成、当前公网版本、回滚口径和不扩范围原则;本项不启动真实试运行。 1) 本 CSV 存在且校验通过;2) 主 R5 为 DONE/DONE/DONE;3) 主 R6 仍为 TODO;4) R6 范围限定报销、请假、采购、审批、企业微信入口通知、财务付款导出;5) 不改业务代码、不部署、不改远端数据。 流程级验证:git status --short;git log --oneline -5;python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv;人工核对 issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv 中 R5 DONE、R6 TODO。 git|python3|manual DONE DONE DONE issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv [] 基线为 c8b6749;公网 R5 运行代码包含 b1ae41f;回滚优先使用最近部署包、数据库备份、storage 备份和配置备份;本合同只做 R6 准备。
3 R6-2 固定试运行名单与窗口 固定 R6 首批 2-3 个内部用户、角色、时间窗口、回滚联系人和问题登记负责人;名单未确定时不得启动 R6。 1) 至少覆盖员工、审批人、财务或管理员;2) 每个用户有角色、入口、设备和预期流程;3) 时间窗口、回滚联系人、问题登记负责人明确;4) 若名单缺失,本项保持 TODO,R6 不进入 DOING。 流程级验证:人工填写 docs/trialrun/manual-trialrun-report.md 的 R6 试运行记录模板;检查不得写入密码、secret、个人隐私截图或真实票据文件。 manual TODO DONE TODO DONE TODO DONE docs/trialrun/manual-trialrun-report.md ["R6-1"] 已记录候选配置:员工 SMOKE002;经理/审批人 SMOKE101;管理员 wangshunli 仅做管理后台和试运行拍板候选;财务 wangzhiling 候选,设备 Redmi K60;员工和经理设备 iPhone 11 / Redmi K60。仍缺试运行窗口、回滚联系人、问题登记负责人;另有 iPhone 11 企业微信底部菜单第二项不可点与页面拥挤阻断候选,见 issues/2026-05-11_10-46-10-r6-iphone11-wecom-mobile-layout-hotfix.csv。未补齐前 R6-2 保持 TODO,不开放真实用户。 R6-2 completed:已固定员工 SMOKE002、经理/审批人 SMOKE101、财务 wangzhiling、管理员/拍板人 wangshunli;回滚联系人和问题登记负责人均为 wangshunli;默认窗口为 2026-05-12 14:00-17:00 Asia/Shanghai,若现场无法执行则顺延到 2026-05-13 14:00-17:00。R6-ISSUE-001/002 已关闭;不记录密码、secret、隐私截图或真实票据文件。
4 R6-3 R6 试运行前自动检查 在名单与窗口确认后,复核公网健康、企业微信个人应用消息、live smoke、真实 PDF OCR、测试账号和回滚证据。 1) /ready 正常;2) 公网 bundle findings=0;3) check-live-smoke-env --strict 通过;4) run-live-smoke-readiness.sh 通过;5) 企微个人应用消息渠道 enabled 且旧 mock 不作为验收依据;6) 回滚联系人和备份位置可追溯。 流程级验证: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;只读确认通知渠道 mode=wecom_app_message;记录最新 artifacts/qa-flow/live-smoke-readiness-*。 node|bash|ssh|manual TODO DONE TODO DONE TODO scripts/qa/*|artifacts/qa-flow|docs/trialrun/manual-trialrun-report.md ["R6-2"] 仅在 R6-2 完成后执行;执行时不得打印密码、secret、样票路径或敏感截图。 BLOCKED:2026-05-12 自动检查已执行,/ready ok,public bundle findings=0,strict live env 通过,run-live-smoke-readiness PASS,真实 OCR 样票为重复发票可解释终态,报告 artifacts/qa-flow/live-smoke-readiness-20260512-001722;通知渠道 R5-WECOM-APP-PERSONAL enabled=true mode=wecom_app_message,旧 R50-MOCK-007334 enabled=false;远端 Prisma up to date,容器健康,备份 hyb-oa-db-20260510_134340.dump 与 hyb-oa-storage-20260510_134341.tar.gz 可追溯。只读查询未命中 wangzhiling/zhiling 员工账号;SMOKE301/SMOKE302 仍为 active 测试财务账号。真实 R6 财务用户未补齐前 Regression_Status 保持 TODO,不启动 R6-4。
5 R6-4 R6 小范围真实流程执行 按已确认名单执行员工、审批人、财务或管理员的真实或准真实业务流程,并把所有问题登记到模板或新 Issue。 1) 员工提交报销并上传 PDF 发票或附件;2) 请假和采购各至少一条轻量流程;3) 审批人从 PC 或企业微信移动入口处理待办;4) 财务完成复核、付款标记或导出验证;5) 企业微信消息能收到并回流 OA。 流程级验证:按 docs/trialrun/manual-trialrun-report.md 的 R6 流程矩阵逐项记录;必要时用 Playwright 辅助 PC 1440x960、iPhone 11、Redmi K60 和企业微信 UA 视觉验证;问题按阻断、严重、一般、体验建议分级。 manual|playwright TODO TODO TODO docs/trialrun/manual-trialrun-report.md|output/playwright ["R6-3"] R6 期间不扩预算、ERP、AI、完整差旅、复杂 BPM、审批设计器或新组织规则;发现需求只登记。
6 R6-5 R6 每日收口与风险处置 试运行期间每日汇总问题,判断继续、修复后继续、暂停或回滚。 1) 每日问题按阻断、严重、一般、体验建议分级;2) 阻断问题暂停试运行;3) 严重问题当天判断修复、降级或回滚;4) 一般和体验建议进入后续 Issue;5) 每日结论有负责人和时间。 流程级验证:检查 docs/trialrun/manual-trialrun-report.md 每日收口区;若触发回滚,记录触发条件、决策人、执行人、回滚点和复检结果。 manual TODO TODO TODO docs/trialrun/manual-trialrun-report.md|issues/*.csv ["R6-4"] 只有阻断主流程或数据安全的问题才立即修复;其余问题进入后续批次。
7 R6-6 R6 结论与后续优化入口 汇总 R6 结果,形成继续、修复后继续、暂停回滚或进入下一批优化的结论。 1) 试运行结论明确;2) 主 R6 仅在真实流程和每日收口全部满足后才可回填 DONE/DONE/DONE;3) 后续优化拆成新 Issue;4) 不把 R6 通过解释为全面正式上线。 流程级验证:校验本 CSV、主 R5/R6 合同和试运行报告;git diff --check;人工核对所有问题均已登记、分级和指派。 python3|git|manual TODO TODO TODO issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv|docs/trialrun/manual-trialrun-report.md ["R6-5"] R6 通过后优先规划 PC 信息架构统一、移动深层页体验、审批催办/超时和财务台账增强。