R6-1 建立小范围试运行准备合同
这个提交包含在:
@@ -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""]",小范围试运行前不得扩 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-1 基线建档完成,R6-2 名单/窗口/回滚联系人仍 TODO,因此主 R6 继续 TODO/TODO/TODO,不开放真实用户。小范围试运行前不得扩 P2 预算、ERP、AI、完整差旅、复杂 BPM;反馈必须进入新 Issue CSV。
|
||||
|
||||
|
@@ -0,0 +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""]",等待用户提供首批试运行人员、角色、时间窗口和回滚联系人;未提供前只做准备,不开放真实用户。
|
||||
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-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 信息架构统一、移动深层页体验、审批催办/超时和财务台账增强。
|
||||
|
在新工单中引用
屏蔽一个用户