From c628038ed82a6f7fedc606ead67eb1dce9e9e199 Mon Sep 17 00:00:00 2001 From: shunli Date: Wed, 13 May 2026 22:07:06 +0800 Subject: [PATCH] =?UTF-8?q?QAOPS8-17=20=E5=9B=BA=E5=8C=96=E4=B8=8A?= =?UTF-8?q?=E7=BA=BF=E9=97=A8=E7=A6=81=E6=9A=82=E5=81=9C=E7=BB=93=E8=AE=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/trialrun/人工试运行报告.md | 26 ++++++++++++++++ docs/trialrun/发布试运行准备清单.md | 30 +++++++++++++++++++ ...05-13_17-30-00-qaops8-test-release-ops.csv | 2 +- 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/docs/trialrun/人工试运行报告.md b/docs/trialrun/人工试运行报告.md index 04f3b30d..8ddc10a2 100644 --- a/docs/trialrun/人工试运行报告.md +++ b/docs/trialrun/人工试运行报告.md @@ -168,6 +168,32 @@ R7E 结论:公网、live smoke/OCR、移动矩阵、核心业务流、账号 该预检早于 2026-05-14 09:30 的推荐真实启动窗口,因此只作为启动前健康证据;`R7E-8` 仍需在启动当天复核后才能置为 `DONE`。 +## QAOPS8 Go/No-Go 当前结论 + +执行时间:2026-05-13。 + +`QAOPS8-17` 当前结论为 `No-Go/Pause`,原因不是自动化基础门禁失败,而是 R7E 真实扩大试运行尚未发生。该结论用于防止把 R7EP、MIF7TD 或 QAOPS8 自动化证据误解释为已经可以上线或已经完成真实试运行。 + +| 检查项 | 当前状态 | 处理 | +| --- | --- | --- | +| QAOPS8 发布、备份、回滚和 SLO 基线 | 已形成 | 可作为 R7E 启动前准备证据 | +| R7E-1..7 人工启动确认 | 已确认 | 可以进入启动当天公网健康复核 | +| R7E-8 公网健康复核 | 未完成 | 需在 2026-05-14 启动当天重跑后才能置为 `DONE` | +| R7E-9..15 真实业务和真机流程 | 未完成 | 需用户按角色实际点击或提供反馈 | +| R7E-16..18 每日问题和验收结论 | 未完成 | 需试运行窗口内记录 | +| WF8-11 通知 deeplink 回 OA | 未完成 | 需企业微信或代表性真机验证 | +| BIZ8-12 移动业务入口评估 | 暂停收口 | 自动化截图已有,仍需代表性真机和角色反馈 | + +保持 `No-Go/Pause` 的阻断项: + +- `SMOKE002` 企业微信工作台进入 `/mobile` 后确认无 PC 外壳,底部导航和业务入口正常。 +- `SMOKE002` 完成移动报销详情和 PDF 上传确认,不能被图片拍照入口误导。 +- `SMOKE101` 完成移动审批和通知 deeplink 回 OA 的确认。 +- 财务角色完成付款、导出或财务台账代表性确认。 +- `SMOKE301` / `SMOKE302` 尚未启用且没有企业微信,不能作为企业微信真机证据。 + +结论:当前可以继续准备 R7E,但不能给正式 `Go`,也不能关闭 `R7E-8..18`、`WF8-11`、`BIZ8-12` 或 QAOPS8 后续收口项。 + ## 历史恢复 需要追溯 R70-R91 的详细流水时,使用: diff --git a/docs/trialrun/发布试运行准备清单.md b/docs/trialrun/发布试运行准备清单.md index e6f12c28..498710a5 100644 --- a/docs/trialrun/发布试运行准备清单.md +++ b/docs/trialrun/发布试运行准备清单.md @@ -188,3 +188,33 @@ R5 已完成。R6 准备合同已创建:`issues/2026-05-11_10-23-41-r6-small-t - 问题先登记到新 Issue CSV,不在试运行现场扩大范围。 - P2 的预算、ERP、AI、完整差旅、复杂 BPM 继续不进入首轮试运行。 - 出现权限泄漏、付款状态错乱、真实 OCR 大面积失败、企业微信入口无法进入时,应暂停试运行并回滚或修复。 + +## 8. QAOPS8 Go/No-Go 清单 + +本节是 `QAOPS8-17` 的上线和扩大试运行门禁。它只给当前时点结论,不替代 R7E 真实人工验收。 + +当前结论:`No-Go/Pause`。 + +| 门禁 | 当前状态 | 结论 | +| --- | --- | --- | +| 本地和公网自动化 | 已有通过证据 | MIF7TD、QAOPS8-5、QAOPS8-6、QAOPS8-8 的历史证据可作为启动前基础门禁,但 R7E 启动当天仍需复核公网健康 | +| 备份、恢复和回滚边界 | 已确认方案 | QAOPS8-10..16 已记录备份策略、恢复演练方案、SLO/DORA、发布 Runbook、回滚演练窗口;真实恢复或生产回滚执行前仍需单独批准 | +| R7E 启动确认 | 已确认 R7E-1..7 | 参与人、窗口、回滚联系人、问题登记负责人和暂停决策人已确认 | +| R7E 启动当天公网健康 | 未完成 | `R7E-8` 需在 2026-05-14 启动当天复核 `/ready` 和 public bundle 后才能关闭 | +| 企业微信入口和 deeplink 真机 | 未完成 | `R7E-9`、`WF8-11` 需要 `SMOKE002`、`SMOKE101` 等真实企业微信或真机反馈;`SMOKE301`、`SMOKE302` 当前未启用且没有企业微信 | +| 真实业务流程试运行 | 未完成 | `R7E-10..15` 仍需人工执行报销、审批、请假、采购、财务付款导出和移动端反馈 | +| 问题清单和验收结论 | 未完成 | `R7E-16..18` 仍需每日问题收口、阻断分流和最终验收结论 | +| 移动业务入口扩展反馈 | 未完成 | `BIZ8-12` 自动化已有代表性截图证据,但仍需真机和角色反馈后才能关闭 | + +Go 条件: + +- `R7E-8..18` 均有当天或试运行窗口内证据,并且阻断问题为 0。 +- 企业微信入口、通知 deeplink 和移动主流程至少有代表性真机确认,且没有未解释的权限、审批链或财务数据问题。 +- 备份和回滚联系人在线;若进入真实恢复或生产回滚,必须另行获得明确批准。 + +Pause 或 No-Go 条件: + +- 公网 `/ready`、public bundle、企业微信入口或登录任一启动门禁失败。 +- 报销、审批、请假、采购、财务任一主流程阻断。 +- 出现权限泄漏、财务状态错误、审批链错误、无法回 OA、真实 OCR 大面积失败,或两个以上高优先级问题当天无法解释。 +- R7E 人工证据缺失,或把自动化结果误当作真实试运行结论。 diff --git a/issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv b/issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv index 92aa2449..a199d8d0 100644 --- a/issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv +++ b/issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv @@ -16,7 +16,7 @@ QAOPS8-13,DORA 交付指标基线,"建立部署频率、变更前置时间、变 QAOPS8-14,安全发布前检查,"建立发布前安全检查,包括权限、敏感信息、日志、配置、依赖和等保相关底线。","1) 不泄露 token、密码、票据和个人隐私;2) 权限直连审计有证据;3) 日志不记录敏感明文;4) 高风险项进入 Go/No-Go。","流程级验证:node scripts/qa/audit-docs.mjs --check-links;rg -n 'password|token|secret|密钥|权限直连|敏感' docs scripts issues。",node|rg|manual,DONE,DONE,DONE,scripts/qa/audit-docs.mjs|docs|scripts|issues,"[""QAOPS8-9""]",node scripts/qa/audit-docs.mjs --check-links 为 errors=0 warnings=0;全量 audit-docs 为 errors=0 warnings=8;已知 QA 脚本本地测试哨兵值和未登记 docs 作为 Go/No-Go 复核项,不声明等保测评完成。 QAOPS8-15,发布 Runbook 收敛,"把发布前检查、部署步骤、验证步骤、暂停条件和沟通责任收敛到现有 Runbook。","1) 发布步骤可按顺序执行;2) 预检、部署、验证、暂停、回滚边界清楚;3) 不新增冲突文档;4) 用户可审计。","流程级验证:rg -n '发布|预检|部署|验证|暂停|回滚|Runbook' docs/trialrun/发布试运行准备清单.md docs/trialrun/OPS7运维交接Runbook.md docs/试运行与自动化验证手册.md。",rg|manual,DONE,DONE,DONE,docs/trialrun/发布试运行准备清单.md|docs/trialrun/OPS7运维交接Runbook.md|docs/试运行与自动化验证手册.md,"[""QAOPS8-5"",""QAOPS8-6"",""QAOPS8-10""]",rg 复核通过;发布前检查、部署步骤、部署后验证、暂停条件、回滚边界和责任记录均在现有 Runbook 中;未新增冲突文档。 QAOPS8-16,回滚演练窗口,"确认回滚演练窗口、负责人、触发条件、数据保护和恢复验证步骤。","1) 窗口和负责人确认;2) 回滚脚本或步骤有只读预检;3) 数据保护优先;4) 演练结果可追溯。","流程级验证:人工确认回滚窗口;必要时先在非生产环境执行。",manual,DONE,DONE,DONE,docs/trialrun/OPS7运维交接Runbook.md,"[""QAOPS8-11"",""QAOPS8-15""]",完成:按用户授权采用推荐方案;窗口暂定 2026-05-14 19:30-20:30 Asia/Shanghai 即 R7E 首日每日收口后;负责人和暂停回滚决策人 wangshunli;范围为非生产恢复演练优先 生产只读回滚 dry run;步骤为备份清单核对 隔离库恢复 /ready 登录核心流程只读验证 生产回滚步骤只读复盘;触发条件为 P0 数据损坏 发布阻断或公网关键门禁失败;停止条件为备份不完整 权限不明确 影响生产或责任人不在线;本行只确认窗口和边界 未执行数据库恢复 生产回滚 服务切换或破坏性命令;真实恢复或生产回滚执行前仍需再次明确批准。 -QAOPS8-17,上线 Go No-Go 清单,"建立上线或扩大试运行 Go/No-Go 清单,统一本地、公网匿名、带凭据、企业微信真机和人工验收结论。","1) Go、No-Go、Pause 条件明确;2) 阻断问题为 0 或有明确延期;3) R7E 人工验收不被自动化替代;4) 结论写入 Issue 和报告。","流程级验证:人工核对 R7E 结论、QAOPS8 门禁、发布清单和问题清单。",manual,TODO,TODO,TODO,docs/trialrun/发布试运行准备清单.md|docs/trialrun/人工试运行报告.md|issues/*.csv,"[""QAOPS8-15"",""QAOPS8-16""]",R7E 未完成时不得给正式 Go 结论。 +QAOPS8-17,上线 Go No-Go 清单,"建立上线或扩大试运行 Go/No-Go 清单,统一本地、公网匿名、带凭据、企业微信真机和人工验收结论。","1) Go、No-Go、Pause 条件明确;2) 阻断问题为 0 或有明确延期;3) R7E 人工验收不被自动化替代;4) 结论写入 Issue 和报告。","流程级验证:人工核对 R7E 结论、QAOPS8 门禁、发布清单和问题清单。",manual,DOING,TODO,TODO,docs/trialrun/发布试运行准备清单.md|docs/trialrun/人工试运行报告.md|issues/*.csv,"[""QAOPS8-15"",""QAOPS8-16""]",当前清单已形成:2026-05-13 当前结论为 No-Go/Pause;Go Pause No-Go 条件已写入发布清单和人工试运行报告;明确 R7E 人工验收不被自动化替代;因 R7E-8..18 WF8-11 BIZ8-12 仍是未完成阻断项 本行不标 DONE。 QAOPS8-18,只读审计和排障边界,"明确公网、数据库、日志和 MCP 只读审计边界,避免排障时误写生产或泄露敏感信息。","1) 只读查询边界明确;2) 禁止 INSERT、UPDATE、DELETE;3) 敏感字段脱敏;4) 排障证据只记录摘要和路径。","流程级验证:rg -n 'audit-readonly|只读|INSERT|UPDATE|DELETE|MCP|PostgreSQL' AGENTS.md docs/mcp-tools.md docs/开发交付与变更管理规约.md。",rg|manual,DONE,DONE,DONE,AGENTS.md|docs/mcp-tools.md|docs/开发交付与变更管理规约.md,"[""QAOPS8-14""]",rg 复核通过;AGENTS 限定 audit-readonly 和 PostgreSQL MCP 只读查询;docs/mcp-tools 限定 SELECT 和禁止写操作;开发交付规约已补日志和证据摘要脱敏边界;未执行生产查询或启用新 MCP。 QAOPS8-19,R7E 后上线硬化收口,"在 R7E 真实反馈后集中收口上线硬化,更新门禁缺口、问题分流和后续治理优先级。","1) R7E 结论已记录;2) QAOPS8 未完成项有归属;3) 阻断问题有 owner;4) 后续 ORG8、WF8、BIZ8、QAOPS8 顺序可解释。","流程级验证:人工核对 R7E-18、R7E-19、QAOPS8 当前状态和问题清单。",manual,TODO,TODO,TODO,issues/2026-05-13_17-11-44-r7e-human-trialrun.csv|issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv,"[""QAOPS8-17""]",依赖 R7E 人工试运行结论;当前不能提前完成。 QAOPS8-20,QAOPS8 收口,"完成 QAOPS8 状态回填、验证摘要、证据索引和中文提交。","1) CSV 校验通过;2) 所有 DONE 有命令或人工证据;3) 文档索引和状态矩阵一致;4) git diff --check 通过;5) 中文提交引用 QAOPS8。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv;node scripts/qa/audit-docs.mjs --check-registry;git diff --check。",python3|node|git|manual,TODO,TODO,TODO,issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md,"[""QAOPS8-19""]",所有执行行完成后才能收口。