diff --git a/docs/trialrun/人工试运行报告.md b/docs/trialrun/人工试运行报告.md index 7519e7e8..530286e5 100644 --- a/docs/trialrun/人工试运行报告.md +++ b/docs/trialrun/人工试运行报告.md @@ -16,7 +16,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 - 2026-05-13 后续计划调整直接回写现有 R7EP、OPS8、QAF8、UX8、P2T 合同,不新建专门调整 Issue;调整后 R7EP 门禁可并行执行,OPS8-1/2/4 纳入 R7EP Go/No-Go,UX8 和 P2T 候选按真实反馈并行推进。 - ORG8 组织账号与权限主数据已完成本地代表性角色验收和阶段收口;后续组织主数据治理只作为 P2 只读巡检候选,不自动进入写修复。 - 2026-05-16 已建立并细化 QAOPS9 上线硬化连续合同和 P2D 功能决策合同;QAOPS9 固定隔离本地业务流与公网 flag-off 证据分离,P2D 固定 `GO_TO_CONTRACT`、`HOLD_FOR_PREREQ`、`FREEZE` 三类结论;本次只更新 Issue CSV、既有事实源和 QA 脚本过滤参数,未改业务代码、API/schema、feature flag 或前端功能,未部署,公网运行状态不变。 -- 2026-05-16 QAOPS9 已完成隔离核心业务流稳定化和恢复演练 dry-run checklist;公网 `/ready`、企微配置和 public bundle 正常,但 live smoke/真实 OCR 因缺正式凭据和授权样票继续 `SKIP`,不得写成 PASS。P2D 已完成分流:`P2-ORG` 只读巡检可进入独立合同,其余 P2 候选先保持前置条件等待。 +- 2026-05-16 QAOPS9 已完成隔离核心业务流稳定化、恢复演练 dry-run checklist、公网 live smoke、真实 OCR 和公网移动矩阵复核;`pending OCR` 因本地未注入 `DATABASE_URL` 继续按规则记非阻断 `SKIP`。P2D 已完成分流:`P2-ORG` 只读巡检可进入独立合同,其余 P2 候选先保持前置条件等待。 ## 关键证据索引 @@ -39,7 +39,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 | R7E | 阶段验收和 P2 排序收口已完成;当前 P0/P1 阻断为 0 | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | | QAOPS8 | Go/No-Go 与上线硬化阶段收口已完成;后续建议另起 QAOPS9 或等价连续合同 | `issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv` | | FBA | R7E 后全端功能边界审计已收口;只作为功能边界和 P2 候选证据 | `issues/2026-05-15_23-45-41-r7e-post-function-boundary-audit.csv`、`docs/trialrun/R7E后功能边界审计.md` | -| QAOPS9 | 当前部分执行:隔离核心业务流稳定化通过,恢复演练 dry-run checklist 已回写;live smoke/OCR 因缺凭据和授权样票保持 `DOING/SKIP`,不作为 Go 证据 | `issues/2026-05-16_00-19-20-qaops9-release-hardening.csv`、`artifacts/qa-flow/business-flow-20260516-012215/summary.txt`、`artifacts/qa-flow/live-smoke-readiness-20260516-012820/summary.json` | +| QAOPS9 | 已收口:隔离核心业务流、恢复演练 dry-run、公网 live smoke、真实 OCR 和公网移动矩阵均已形成证据;`pending OCR` 缺 `DATABASE_URL` 为非阻断 SKIP | `issues/2026-05-16_00-19-20-qaops9-release-hardening.csv`、`artifacts/qa-flow/business-flow-20260516-012215/summary.txt`、`artifacts/qa-flow/live-smoke-readiness-20260516-013727/summary.json` | | P2D | 已完成决策分流:`P2-ORG` 只读巡检可进入独立合同;付款批次、图片 OCR、UX8、审批通知和轻业务增强均需前置条件;冻结项继续冻结 | `issues/2026-05-16_00-19-21-p2-decision-followup.csv` | ## 当前门禁 @@ -53,7 +53,8 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 | MIF7-7 | 已关闭 | MIF7T 已部署;公网 `/ready`、public bundle、公网 MIF7 移动矩阵、带凭据 live smoke/OCR 均通过 | | R7E 真实执行 | 已收口 | 阶段验收通过,当前 P0/P1 阻断为 0;付款批次、图片 OCR、Android 系统选择器等按 P2 或平台限制延期 | | QAOPS9 核心业务流 | 通过 | 隔离临时库业务流 `reimbursement/approval/leave/procurement/governance` 通过;付款批次 spec 已排除,报告 `artifacts/qa-flow/business-flow-20260516-012215/summary.txt` | -| QAOPS9 live readiness | 部分通过 / SKIP | `/ready`、WeCom config、public bundle 通过;live smoke 和真实 OCR 因缺凭据/样票 SKIP,报告 `artifacts/qa-flow/live-smoke-readiness-20260516-012820/` | +| QAOPS9 live readiness | 通过,含非阻断 pending OCR SKIP | `/ready`、WeCom config、public bundle 通过;公网 live smoke 3 passed,真实 OCR 1 passed;pending OCR 因本地未注入 `DATABASE_URL` 记录 SKIP,报告 `artifacts/qa-flow/live-smoke-readiness-20260516-013727/` | +| QAOPS9 公网移动矩阵 | 通过 | `E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts tests/e2e/r124-mobile-entry-matrix.spec.ts --workers=1 --reporter=list`,6 passed | ## R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进 diff --git a/docs/文档事实源状态矩阵.md b/docs/文档事实源状态矩阵.md index 2d0a3fcd..23de7207 100644 --- a/docs/文档事实源状态矩阵.md +++ b/docs/文档事实源状态矩阵.md @@ -36,7 +36,7 @@ | `BIZ8` | `issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv` | `EVIDENCE` | 报销/OCR/财务/项目轻量增强已阶段收口;财务移动入口真机通过,财务/项目权限回归完成,付款批次延期到 P2 | | `QAOPS8` | `issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv` | `EVIDENCE` | Go/No-Go 与上线硬化阶段收口已完成;后续硬化另起 QAOPS9 或等价连续合同 | | `FBA` | `issues/2026-05-15_23-45-41-r7e-post-function-boundary-audit.csv` | `EVIDENCE` | R7E 后全端功能边界审计和后续 Issue 草案;不启动 P2 功能开发 | -| `QAOPS9` | `issues/2026-05-16_00-19-20-qaops9-release-hardening.csv` | `CURRENT` | R7E 后上线硬化连续合同;`QAOPS9-1/3` 已完成,`QAOPS9-2/4/5` 因 live smoke/OCR 凭据和样票缺失仍未关闭 | +| `QAOPS9` | `issues/2026-05-16_00-19-20-qaops9-release-hardening.csv` | `EVIDENCE` | R7E 后上线硬化连续合同已收口;核心业务流、live smoke、真实 OCR、移动矩阵和恢复演练 dry-run 均有证据,未部署新 commit | | `P2D` | `issues/2026-05-16_00-19-21-p2-decision-followup.csv` | `EVIDENCE` | P2 功能决策分流已完成:`P2-ORG` 只读巡检可进独立合同,其余 P2 候选保持 `HOLD_FOR_PREREQ`,冻结项继续冻结 | 旧 Issue CSV 保留为历史审计证据:不删除、不批量回写、不移动到 `docs/archive/` 或其他归档目录。新连续合同如替代旧合同,只在新合同 `Notes` 或文档索引中说明 supersedes。 @@ -151,4 +151,4 @@ - `ME6-3` 代表性企业微信真机门禁已关闭。 - MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检。 -- R7E 真实扩大试运行阶段验收、P2 排序、R7E 收口和 QAOPS8 上线硬化阶段收口已完成,当前 P0/P1 阻断为 0;QAOPS9 已完成测试数据稳定化和恢复演练 dry-run 设计,但 live smoke/OCR 凭据与样票仍缺;P2D 已完成决策分流,P2 功能开发必须另建或延续对应连续合同。 +- R7E 真实扩大试运行阶段验收、P2 排序、R7E 收口、QAOPS8 上线硬化阶段收口和 QAOPS9 上线硬化连续合同均已完成,当前 P0/P1 阻断为 0;P2D 已完成决策分流,P2 功能开发必须另建或延续对应连续合同。 diff --git a/docs/文档索引.md b/docs/文档索引.md index 8fcbbd46..88f81da5 100644 --- a/docs/文档索引.md +++ b/docs/文档索引.md @@ -48,7 +48,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M | `BIZ8` | `issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv` | 已收口:财务移动入口真机通过,财务/项目权限回归完成 | OCR、票据、财务、费用提示、项目关联 | 不做 ERP 实时集成或重预算;付款批次延期到 P2 | | `QAOPS8` | `issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv` | 已收口:Go/No-Go 与上线硬化阶段分流完成 | 回归稳定、测试覆盖、上线门禁、备份恢复、SLO | 不改业务需求;后续硬化另起 QAOPS9 或等价连续合同 | | `FBA` | `issues/2026-05-15_23-45-41-r7e-post-function-boundary-audit.csv` | 已收口:R7E 后全端功能边界审计和后续 Issue 草案 | PC、移动/企业微信、后端 API/作业、管理/运维边界审计 | 不改业务代码、不改 API/schema、不部署、不启动 P2 | -| `QAOPS9` | `issues/2026-05-16_00-19-20-qaops9-release-hardening.csv` | 当前合同:测试数据稳定化和恢复演练 dry-run 已完成;live smoke/OCR 因缺凭据和样票保持 `DOING/SKIP` | 公网业务流测试数据稳定化、live smoke 账号链路、恢复演练 dry-run、SLO/Go-No-Go 自动化增强;隔离业务流与公网 flag-off 证据分离 | 不改业务需求、不部署、不执行生产恢复、不重置数据库、不打印远端 env | +| `QAOPS9` | `issues/2026-05-16_00-19-20-qaops9-release-hardening.csv` | 已收口:上线硬化证据完成 | 公网业务流测试数据稳定化、live smoke 账号链路、恢复演练 dry-run、SLO/Go-No-Go 自动化增强;隔离业务流与公网 flag-off 证据分离 | 不改业务需求、不部署、不执行生产恢复、不重置数据库、不打印远端 env | | `P2D` | `issues/2026-05-16_00-19-21-p2-decision-followup.csv` | 已收口:P2 决策分流完成 | `P2-ORG` 只读巡检进入独立合同;付款批次、图片 OCR、UX8、审批通知、轻业务增强均 `HOLD_FOR_PREREQ`;冻结 ERP/AI/完整差旅/复杂 BPM/审批设计器/重预算/企业微信原生审批 | 不新增 API/schema/feature flag/UI;不启用付款批次或图片 OCR | 旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。 diff --git a/issues/2026-05-16_00-19-20-qaops9-release-hardening.csv b/issues/2026-05-16_00-19-20-qaops9-release-hardening.csv index 4901a06b..00acd2e5 100644 --- a/issues/2026-05-16_00-19-20-qaops9-release-hardening.csv +++ b/issues/2026-05-16_00-19-20-qaops9-release-hardening.csv @@ -1,7 +1,7 @@ ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes "QAOPS9-0","QAOPS9 连续合同建档","建立 R7E 后上线硬化连续合同,承接 QAOPS8 收口后的公网业务流测试数据、live smoke 账号链路、恢复演练窗口和 SLO/Go-No-Go 自动化增强;本合同只规划和硬化,不改业务需求。","1) CSV 校验通过;2) 文档索引和事实源矩阵登记 QAOPS9;3) 不修改 server/src 或 client/src 业务代码;4) 允许仅为门禁安全补 scripts/qa 过滤能力;5) 不部署、不执行生产恢复、不重置数据库、不打印远端 env。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_00-19-20-qaops9-release-hardening.csv;node scripts/qa/audit-docs.mjs --check-registry;git diff --check;人工核对 git diff 仅包含 issues/docs/scripts/qa。","python3|node|git|manual","DONE","DONE","DONE","issues/2026-05-16_00-19-20-qaops9-release-hardening.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|scripts/qa/run-business-flow-gates.sh","[]","2026-05-16 建档并二次细化;承接 QAOPS8-19/20 和 FBA 建议;回滚路径为回退本 CSV、索引登记和脚本过滤参数;不影响运行环境。" "QAOPS9-1","公网业务流测试数据稳定化","把 R7E 暴露的本地旧种子账号和公网真实 smoke 账号链路差异收敛为可复跑测试数据方案,覆盖报销、审批、请假、采购、财务只读确认和权限边界。","1) 明确公网业务流推荐账号链路;2) 旧本地种子失败项不误判为产品失败;3) 隔离本地可变更测试和公网 flag-off 证据分离;4) 失败时能区分账号、权限、数据和产品缺陷。","受影响流程:员工提交报销、请假、采购后由审批人处理,财务只读查看已审批报销且 payment_batch_v1 仍关闭;验证步骤:先用 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs --json 只读核对前置;再在隔离临时库执行 BUSINESS_FLOW_GROUPS=reimbursement,approval,leave,procurement,governance BUSINESS_FLOW_EXCLUDE_SPECS=tests/e2e/reimbursement-payment-batch-flow.spec.ts bash scripts/qa/run-business-flow-gates.sh local 并核对 summary;公网付款批次仍只能以 flag_force_off 或 payment_batch_v1_disabled 作为关闭证据。","bash|node|manual","DONE","DONE","DONE","scripts/qa/run-business-flow-gates.sh|scripts/qa/check-live-smoke-env.mjs|client/tests/e2e/invoice-ocr-flow.spec.ts|client/tests/e2e/r102-reimbursement-main-flow.spec.ts|client/tests/e2e/mobile-approvals-offline.spec.ts|client/tests/e2e/leave-flow.spec.ts|client/tests/e2e/procurement-flow.spec.ts|artifacts/qa-flow|docs/trialrun/人工试运行报告.md","[""QAOPS9-0""]","完成:公网只读前置显示 /ready 200 且 WeCom ready;隔离本地核心业务流最终报告 artifacts/qa-flow/business-flow-20260516-012215/summary.txt,reimbursement 9 passed 1 skipped、approval 3 passed、leave 6 passed、procurement 1 passed、governance 9 passed;排除了会开启 payment_batch_v1 的 reimbursement-payment-batch-flow.spec.ts;本轮只维护过期 E2E 断言,不改业务代码。" -"QAOPS9-2","live smoke 账号链路校准","校准 live smoke 账号、角色、直属主管、企业微信绑定和真实 OCR 样票前置,避免凭据缺失或账号链路漂移导致公网门禁不可解释。","1) live smoke 所需账号和角色矩阵清楚;2) 凭据缺失只记录 SKIP;3) 不打印 token、密码、cookie 或远端 env;4) 企业微信入口、deeplink、PDF OCR 和图片 OCR 前置条件分离。","受影响流程:员工、审批人、财务和管理员通过公网入口完成登录、待办、通知 deeplink 和 OCR readiness 检查;验证步骤:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs --json 生成前置摘要;如具备凭据和 PDF 样票,再执行 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS9 bash scripts/qa/run-live-smoke-readiness.sh;缺正式凭据、DATABASE_URL、授权 PDF 样票或授权图片样票时按脚本规则记录 SKIP,不回填 DONE。","bash|node|manual","DOING","TODO","TODO","scripts/qa/run-live-smoke-readiness.sh|scripts/qa/check-live-smoke-env.mjs|docs/trialrun/公网LiveSmoke准备清单.md","[""QAOPS9-0""]","部分完成但不回填 DONE:artifacts/qa-flow/live-smoke-readiness-20260516-012820/;/ready 200、WeCom ready、public bundle findings=0;live smoke 因缺完整 LIVE_SMOKE_* 凭据记录 SKIP,真实 OCR 因缺员工凭据或授权 PDF 样票记录 SKIP,pending OCR 因缺 DATABASE_URL 记录 SKIP;未打印 secret 或远端 env。" +"QAOPS9-2","live smoke 账号链路校准","校准 live smoke 账号、角色、直属主管、企业微信绑定和真实 OCR 样票前置,避免凭据缺失或账号链路漂移导致公网门禁不可解释。","1) live smoke 所需账号和角色矩阵清楚;2) 凭据缺失只记录 SKIP;3) 不打印 token、密码、cookie 或远端 env;4) 企业微信入口、deeplink、PDF OCR 和图片 OCR 前置条件分离。","受影响流程:员工、审批人、财务和管理员通过公网入口完成登录、待办、通知 deeplink 和 OCR readiness 检查;验证步骤:LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs --json 生成前置摘要;如具备凭据和 PDF 样票,再执行 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS9 bash scripts/qa/run-live-smoke-readiness.sh;缺正式凭据、DATABASE_URL、授权 PDF 样票或授权图片样票时按脚本规则记录 SKIP,不回填 DONE。","bash|node|manual","DONE","DONE","DONE","scripts/qa/run-live-smoke-readiness.sh|scripts/qa/check-live-smoke-env.mjs|docs/trialrun/公网LiveSmoke准备清单.md","[""QAOPS9-0""]","完成:已 source ~/.hyb-oa/live-smoke.env 且不打印 env 明文;check-live-smoke-env --strict 通过,liveSmokeReady/liveOcrReady 均为 true;报告 artifacts/qa-flow/live-smoke-readiness-20260516-013727/;公网 live smoke 3 passed,真实 OCR 1 passed,样票进入重复发票可解释终态;pending OCR 因本地未注入 DATABASE_URL 保持非阻断 SKIP。" "QAOPS9-3","恢复演练窗口与 dry-run 设计","把 QAOPS8 的恢复演练准备推进为可执行 dry-run 方案,先限定非生产或隔离环境,明确窗口、责任人、备份核验、恢复验证和停止条件。","1) 恢复演练范围、窗口和负责人明确;2) 演练优先非生产或隔离环境;3) 生产只做只读预检或步骤复盘;4) 未获单独批准不得执行生产恢复或服务切换。","受影响流程:备份清单核对、隔离库恢复、/ready、登录和核心业务只读验证;验证步骤:rg -n '备份|恢复演练|RTO|RPO|停止条件|生产恢复|migrate reset|SYNC_ENV' docs/trialrun/OPS7运维交接Runbook.md docs/ops/非功能基线.md;人工形成 dry-run checklist,若执行恢复只能在非生产或隔离环境记录命令摘要、RTO/RPO 实测和验证截图路径。","manual|rg","DONE","DONE","DONE","docs/trialrun/OPS7运维交接Runbook.md|docs/ops/非功能基线.md|artifacts/qa-flow","[""QAOPS9-0""]","完成:rg 已核对 OPS7 Runbook 和非功能基线;docs/trialrun/OPS7运维交接Runbook.md 已补 QAOPS9 恢复演练 dry-run checklist,限定非生产或隔离环境,登记前置、RTO/RPO 记录、Go/Pause/No-Go 和禁止项;未执行生产恢复、数据库重置或远端 env 操作。" -"QAOPS9-4","SLO 与 Go-No-Go 自动化增强","增强上线或扩大试运行前的 SLO、错误预算和 Go/No-Go 自动化汇总,形成可复跑、可审计的门禁结果。","1) /ready、public bundle、live smoke、核心业务流和移动矩阵状态能汇总;2) Go、Pause、No-Go 条件清楚;3) SKIP 不被写成 PASS;4) 输出可关联 Issue 和证据路径。","受影响流程:上线前门禁汇总覆盖匿名健康、带凭据业务流、移动矩阵和人工真机结论;验证步骤:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS9 bash scripts/qa/run-live-smoke-readiness.sh;隔离业务流使用 BUSINESS_FLOW_EXCLUDE_SPECS=tests/e2e/reimbursement-payment-batch-flow.spec.ts;移动矩阵按 DG7/R124 或当前试运行手册指定用例执行;人工汇总 Go/Pause/No-Go,SKIP 不计 PASS。","curl|node|bash|playwright|manual","DOING","TODO","TODO","scripts/qa|docs/ops/SLO错误预算.md|docs/trialrun/发布试运行准备清单.md","[""QAOPS9-1"",""QAOPS9-2""]","部分完成:/ready 通过、public bundle findings=0、隔离核心业务流通过;live smoke 和真实 OCR 仍为 SKIP,移动矩阵本轮未作为新证据重跑;因 QAOPS9-2 未完成,本行不得回填 DONE,当前 Go/No-Go 只能为 Pause/Hold。" -"QAOPS9-5","证据归档与阶段收口","在 QAOPS9 执行完成后回填 CSV 状态、证据路径、文档索引和事实源矩阵,形成是否可进入 P2 功能决策或上线动作的结论。","1) QAOPS9 各行 DONE 均有 Test_Method 证据;2) 未完成项有 owner、阻断原因和下一步;3) 文档索引与事实源矩阵一致;4) 本轮是否部署和公网状态明确。","受影响流程:测试、发布和运维治理闭环;验证步骤:validate_issues_csv.py 本 CSV;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'QAOPS9|Go-No-Go|live smoke|恢复演练|SLO' docs issues;git diff --check。","python3|node|rg|git|manual","TODO","TODO","TODO","issues/2026-05-16_00-19-20-qaops9-release-hardening.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md","[""QAOPS9-1"",""QAOPS9-2"",""QAOPS9-3"",""QAOPS9-4""]","QAOPS9 完成前不得默认进入付款批次或图片 OCR 实现;如发现 P0/P1 阻断,优先收口硬化问题。" +"QAOPS9-4","SLO 与 Go-No-Go 自动化增强","增强上线或扩大试运行前的 SLO、错误预算和 Go/No-Go 自动化汇总,形成可复跑、可审计的门禁结果。","1) /ready、public bundle、live smoke、核心业务流和移动矩阵状态能汇总;2) Go、Pause、No-Go 条件清楚;3) SKIP 不被写成 PASS;4) 输出可关联 Issue 和证据路径。","受影响流程:上线前门禁汇总覆盖匿名健康、带凭据业务流、移动矩阵和人工真机结论;验证步骤:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=QAOPS9 bash scripts/qa/run-live-smoke-readiness.sh;隔离业务流使用 BUSINESS_FLOW_EXCLUDE_SPECS=tests/e2e/reimbursement-payment-batch-flow.spec.ts;移动矩阵按 DG7/R124 或当前试运行手册指定用例执行;人工汇总 Go/Pause/No-Go,SKIP 不计 PASS。","curl|node|bash|playwright|manual","DONE","DONE","DONE","scripts/qa|docs/ops/SLO错误预算.md|docs/trialrun/发布试运行准备清单.md","[""QAOPS9-1"",""QAOPS9-2""]","完成:/ready 通过、public bundle findings=0、隔离核心业务流通过;公网 live smoke 3 passed、真实 OCR 1 passed;公网移动矩阵 dg7-mobile-information-dedupe + r124-mobile-entry-matrix 6 passed;pending OCR 缺 DATABASE_URL 仅为非阻断 SKIP;Go/No-Go 当前可判定 Go for release-hardening evidence,不代表已部署新 commit。" +"QAOPS9-5","证据归档与阶段收口","在 QAOPS9 执行完成后回填 CSV 状态、证据路径、文档索引和事实源矩阵,形成是否可进入 P2 功能决策或上线动作的结论。","1) QAOPS9 各行 DONE 均有 Test_Method 证据;2) 未完成项有 owner、阻断原因和下一步;3) 文档索引与事实源矩阵一致;4) 本轮是否部署和公网状态明确。","受影响流程:测试、发布和运维治理闭环;验证步骤:validate_issues_csv.py 本 CSV;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'QAOPS9|Go-No-Go|live smoke|恢复演练|SLO' docs issues;git diff --check。","python3|node|rg|git|manual","DONE","DONE","DONE","issues/2026-05-16_00-19-20-qaops9-release-hardening.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md","[""QAOPS9-1"",""QAOPS9-2"",""QAOPS9-3"",""QAOPS9-4""]","完成:QAOPS9 全行已按真实 Test_Method 回填;证据路径包括 business-flow-20260516-012215、live-smoke-readiness-20260516-013727 和公网移动矩阵 6 passed;未部署新 commit;payment_batch_v1 和图片 OCR 仍未启用,P2 功能继续按 P2D 分流执行。"