R7E 按最新代码部署并完成公网复核

这个提交包含在:
2026-05-14 01:25:36 +08:00
父节点 4b14c925b6
当前提交 4dd26f81c9
共修改 6 个文件,包含 35 行新增和 17 行删除
+6 -5
查看文件
@@ -160,7 +160,8 @@ curl -fsS https://oa.hyinda.com/api/auth/wecom/config
当前公网部署追踪口径:
- 本次 OPS8 起始基线:`0260bc7 R7EP/OPS8/QAF8/UX8/P2T 调整后续计划`。
- 最近已确认部署基线:MIF7TD 部署包含 `cf2bba0` 的 MIF7T 代码;后续若部署新提交,必须在本节追加新 commit。
- 最近已确认部署基线:2026-05-14 R7E 按最新代码部署包含 `4b14c92 DG9 统一全站 UI 布局样板迁移`;上一可用基线为 MIF7TD 的 `cf2bba0`。
- 本次部署说明:首次部署因远端缺少既有加性迁移 `20260513214500_biz8_purchase_project_link` 停止;创建 DB 和附件备份后执行 `prisma migrate deploy`,复跑部署脚本通过,远端 migration status up to date。
- `deploy/trialrun/deploy.sh` 默认 `SYNC_ENV=0`,不得覆盖远端 `.env`;需要同步 `.env` 时必须另行确认。
- R7E 前公网只读检查命令固定为:`curl -fsS https://oa.hyinda.com/ready`、`PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs`、带凭据 `scripts/qa/run-live-smoke-readiness.sh`。
@@ -168,10 +169,10 @@ R7E 前备份和回滚占位:
| 项目 | 当前记录方式 |
| --- | --- |
| 数据库备份 | R7E 前由运维负责人填写备份文件名、位置和生成时间;本文不记录真实数据内容 |
| 附件备份 | R7E 前由运维负责人填写对象存储或服务器路径占位;不得提交真实附件 |
| 回滚目标 commit | 部署时记录“当前 commit”和“上一可用 commit”;前端/脚本问题优先回滚应用版本,不默认回滚数据库 |
| 回滚联系人 | 待用户在 R7E 启动前确认 |
| 数据库备份 | `hyb-oa-db-20260514_011940.dump`,远端 `deploy/trialrun/backups/`;本文不记录真实数据内容 |
| 附件备份 | `hyb-oa-storage-20260514_011940.tar.gz`,远端 `deploy/trialrun/backups/`;不得提交真实附件 |
| 回滚目标 commit | 当前 commit 为 `4b14c92`;上一可用 commit 为 `cf2bba0`;前端/脚本问题优先回滚应用版本,不默认回滚数据库 |
| 回滚联系人 | `wangshunli`;真实联系方式放在仓库外企业微信或电话通讯录 |
| 恢复演练窗口 | 由 `QAOPS8-16` 确认窗口、负责人、触发条件和停止条件;未确认前不得执行生产回滚或恢复演练 |
live readiness 归档规则:
+20 -3
查看文件
@@ -166,7 +166,24 @@ R7E 结论:公网、live smoke/OCR、移动矩阵、核心业务流、账号
| 2026-05-13 20:42 CST | `curl -fsS https://oa.hyinda.com/ready` | 通过 | 返回 `ok=true` |
| 2026-05-13 20:42 CST | `PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs` | 通过 | `scanned=57`,`focused=4`,`findings=0` |
该预检早于 2026-05-14 09:30 的推荐真实启动窗口,因此只作为启动前健康证据;`R7E-8` 仍需在启动当天复核后才能置为 `DONE`。
## R7E 最新代码部署与启动当天复核
执行时间:2026-05-14。
| 检查项 | 结果 | 证据 |
| --- | --- | --- |
| 试运行基线 | 已锁定 | `4b14c92 DG9 统一全站 UI 布局样板迁移` |
| 部署前本地门禁 | 通过 | `cd client && npm run typecheck`;`cd client && npm run build` |
| 受控部署 | 通过 | `bash deploy/trialrun/deploy.sh`;默认 `SYNC_ENV=0`,未覆盖远端 `.env` |
| 迁移处理 | 通过 | 部署首次停止于未应用迁移 `20260513214500_biz8_purchase_project_link`;该迁移为 BIZ8 既有加性迁移,给采购申请增加可空项目关联;执行前已创建 DB 和附件备份 |
| 备份 | 已生成 | DB 备份 `hyb-oa-db-20260514_011940.dump`;附件备份 `hyb-oa-storage-20260514_011940.tar.gz`;均位于远端 `deploy/trialrun/backups/` |
| 远端 migration 状态 | 通过 | `npx prisma migrate deploy` 应用缺失迁移后,`npx prisma migrate status` 返回 up to date |
| 公网 `/ready` | 通过 | `curl -fsS https://oa.hyinda.com/ready` 返回 `ok=true` |
| 公网前端资源文案扫描 | 通过 | `PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs`:`scanned=57`,`focused=4`,`findings=0` |
| 公网移动矩阵 | 通过 | `E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list`:5 passed |
| 带凭据 live smoke | SKIP | 本地未提供完整 `LIVE_SMOKE_*` 凭据,部署脚本按规则跳过;不得记为真实业务通过 |
结论:`R7E-8` 已完成 `DONE/DONE/DONE`,公网可进入最新代码试运行。真实企业微信入口、报销、审批、请假、采购、财务、通知 deeplink 和真机反馈仍需按 `R7E-9..18` 逐项人工记录,不能由自动化替代。
## QAOPS8 Go/No-Go 当前结论
@@ -178,7 +195,7 @@ R7E 结论:公网、live smoke/OCR、移动矩阵、核心业务流、账号
| --- | --- | --- |
| QAOPS8 发布、备份、回滚和 SLO 基线 | 已形成 | 可作为 R7E 启动前准备证据 |
| R7E-1..7 人工启动确认 | 已确认 | 可以进入启动当天公网健康复核 |
| R7E-8 公网健康复核 | 未完成 | 需在 2026-05-14 启动当天重跑后才能置为 `DONE` |
| R7E-8 公网健康复核 | 已完成 | 最新代码 `4b14c92` 已部署;`/ready`、public bundle、远端 migration 状态和公网移动矩阵通过 |
| R7E-9..15 真实业务和真机流程 | 未完成 | 需用户按角色实际点击或提供反馈 |
| R7E-16..18 每日问题和验收结论 | 未完成 | 需试运行窗口内记录 |
| WF8-11 通知 deeplink 回 OA | 未完成 | 需企业微信或代表性真机验证 |
@@ -192,7 +209,7 @@ R7E 结论:公网、live smoke/OCR、移动矩阵、核心业务流、账号
- 财务角色完成付款、导出或财务台账代表性确认。
- `SMOKE301` / `SMOKE302` 尚未启用且没有企业微信,不能作为企业微信真机证据。
结论:当前可以继续准备 R7E,但不能给正式 `Go`,也不能关闭 `R7E-8..18`、`WF8-11`、`BIZ8-12` 或 QAOPS8 后续收口项。
结论:当前可以按最新代码继续 R7E 真实试运行,但不能给正式上线 `Go`,也不能关闭 `R7E-9..18`、`WF8-11`、`BIZ8-12` 或 QAOPS8 后续收口项。
## 历史恢复
+3 -3
查看文件
@@ -29,11 +29,11 @@
| --- | --- | --- | --- |
| `GOV8` | `issues/2026-05-13_16-31-09-gov8-system-governance.csv` | `EVIDENCE` | 连续型 Issue 治理、文档台账、流程模板和审计脚本,已收口 |
| `DG8` | `issues/2026-05-13_22-56-49-design-ui-governance.csv` | `EVIDENCE` | 设计治理主参考系统收口;飞书工作台/飞书审批为唯一主 UI/布局参考,不代表页面已整改 |
| `DG9` | `issues/2026-05-13_23-30-00-dg9-ui-layout-rollout.csv` | `CURRENT` | 全站 UI/布局样板迁移;A/B/C 页面分层、共享工作台骨架和移动槽位,不替代 WF8/UX8/BIZ8 |
| `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | `CURRENT` | 真实扩大试运行人工确认和执行;R7E-1..7 完成前不得启动真实 R7 |
| `DG9` | `issues/2026-05-13_23-30-00-dg9-ui-layout-rollout.csv` | `EVIDENCE` | 全站 UI/布局样板迁移已收口;最新代码已作为 R7E 基线部署到公网,不替代 WF8/UX8/BIZ8 |
| `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | `CURRENT` | 真实扩大试运行人工确认已完成;最新代码已部署并完成 R7E-8,待 R7E-9..18 人工流程和真机反馈 |
| `ORG8` | `issues/2026-05-13_18-23-51-org8-master-data-permission.csv` | `EVIDENCE` | 组织账号和权限主数据治理已阶段收口;本地代表性角色验收通过,不替代 R7E 真实人工试运行 |
| `WF8` | `issues/2026-05-13_18-23-52-wf8-approval-notification.csv` | `CURRENT` | 审批与通知增强;移动审批历史展示方案批准后继续执行 |
| `BIZ8` | `issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv` | `CURRENT` | 报销/OCR/财务/项目轻量增强;财务台账和项目关联方案已固化,代码/迁移执行前仍需批准 |
| `BIZ8` | `issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv` | `CURRENT` | 报销/OCR/财务/项目轻量增强;采购项目关联加性迁移已随最新部署应用,移动入口和权限回归仍待收口 |
| `QAOPS8` | `issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv` | `CURRENT` | 测试、发布、运维和上线准备;与 R7E 并行贯穿,不替代 R7E 人工确认 |
旧 Issue CSV 保留为历史审计证据:不删除、不批量回写、不移动到 `docs/archive/` 或其他归档目录。新连续合同如替代旧合同,只在新合同 `Notes` 或文档索引中说明 supersedes。
+4 -4
查看文件
@@ -26,7 +26,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
- QG6 已完成 QA 治理升级。
- MIA7 已完成移动信息架构、视觉和流程审查;MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检。
- DG8 已完成设计治理主参考系统收口:飞书工作台/飞书审批是唯一主 UI/布局参考;本结论只更新设计事实源,不代表已做页面整改。
- DG9 承接 DG8 后的页面整改:按 A/B/C 页面分层和 DG9 样板统一 PC、移动和企业微信入口布局;不替代 WF8、UX8 或 BIZ8 业务验收。
- DG9 承接 DG8 后的页面整改:按 A/B/C 页面分层和 DG9 样板统一 PC、移动和企业微信入口布局;最新代码已作为 R7E 试运行基线部署到公网,不替代 WF8、UX8 或 BIZ8 业务验收。
- R7/OPS7/DOC7 是准备材料,不代表已上线或已启动真实 R7。
## 当前活跃治理流
@@ -37,11 +37,11 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| --- | --- | --- | --- | --- |
| `GOV8` | `issues/2026-05-13_16-31-09-gov8-system-governance.csv` | 已收口 | 文档分类、台账、流程模板、审计脚本、需求冻结、变更控制 | 不改业务代码、不部署 |
| `DG8` | `issues/2026-05-13_22-56-49-design-ui-governance.csv` | 已收口:设计事实源主参考系统更新 | 主 UI/布局参考层级、外部参考降级、Agent/Skill 设计入口、设计检查门禁 | 不改业务页面、不部署、不接入飞书 |
| `DG9` | `issues/2026-05-13_23-30-00-dg9-ui-layout-rollout.csv` | 当前执行:全站 UI/布局样板迁移 | A/B/C 页面分层、共享工作台骨架、移动槽位、审批/报销/首页/通知样板、设计门禁 | 不改 server、不改 API/schema/权限/状态机、不部署 |
| `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | 当前执行:等待人工确认 | 人工确认、真实试运行、每日问题收口、验收结论 | 不新增 P2 能力 |
| `DG9` | `issues/2026-05-13_23-30-00-dg9-ui-layout-rollout.csv` | 已收口;最新代码已随 R7E 部署到试运行环境 | A/B/C 页面分层、共享工作台骨架、移动槽位、审批/报销/首页/通知样板、设计门禁 | 不替代 WF8、UX8 或 BIZ8 业务验收 |
| `R7E` | `issues/2026-05-13_17-11-44-r7e-human-trialrun.csv` | 当前执行:最新代码已部署,待真实流程和真机反馈 | 人工确认、真实试运行、每日问题收口、验收结论 | 不新增 P2 能力 |
| `ORG8` | `issues/2026-05-13_18-23-51-org8-master-data-permission.csv` | 已收口:本地代表性角色验收通过 | 组织、账号、直属主管、停用、角色、企业微信绑定、权限边界 | 不做审批流程增强;不替代 R7E 真实人工试运行 |
| `WF8` | `issues/2026-05-13_18-23-52-wf8-approval-notification.csv` | 当前执行:待移动审批历史方案批准 | 转审、通知、催办、邮件通道决策、三渠道验收 | 不做复杂 BPM 或审批设计器 |
| `BIZ8` | `issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv` | 当前执行:财务台账和项目关联方案已固化,待代码/迁移批准 | OCR、票据、财务、费用提示、项目关联 | 不做 ERP 实时集成或重预算 |
| `BIZ8` | `issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv` | 当前执行:采购项目关联加性迁移已随最新部署应用,待移动入口和权限回归收口 | OCR、票据、财务、费用提示、项目关联 | 不做 ERP 实时集成或重预算 |
| `QAOPS8` | `issues/2026-05-13_17-30-00-qaops8-test-release-ops.csv` | 当前执行:贯穿治理 | 回归稳定、测试覆盖、上线门禁、备份恢复、SLO | 不改业务需求 |
旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。
@@ -7,7 +7,7 @@ R7E-4,回滚联系人确认,"确认 R7E 回滚联系人、联系方式存放位
R7E-5,问题登记负责人确认,"确认 R7E 问题登记负责人、问题分级规则、记录位置和每日 closeout 责任。","1) 问题 owner 确认;2) 阻断/高/中/低分级明确;3) 问题记录位置明确;4) 每日 closeout 责任明确。","流程级验证:人工确认问题登记规则;试运行中所有问题进入本 CSV Notes、报告或后续连续治理流。",manual,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md,"[""R7E-3""]",问题登记负责人为 wangshunli;可审计摘要写入 docs/trialrun/人工试运行报告.md 和本 CSV;按阻断 高 中 低分级;需开发的分流到 R7E ORG8 WF8 BIZ8 QAOPS8。
R7E-6,每日收口节奏确认,"确认 R7E 每日收口节奏,包括当天问题、阻断判定、是否继续、是否回滚和次日计划。","1) 每日收口模板确认;2) 阻断问题处理规则明确;3) 是否继续/暂停/回滚有决策人;4) 收口证据可追溯。","流程级验证:人工确认每日收口模板;首日试运行后按模板记录。",manual,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md,"[""R7E-5""]",每日 17:30 收口;记录当天流程结果 问题级别 继续或暂停或回滚判断 次日动作和证据路径;不在仓库记录密码 token 私密联系方式或未授权票据原件。
R7E-7,暂停和回滚决策人确认,"确认 R7E 试运行中触发暂停、回滚或继续推进的最终决策人。","1) 决策人角色确认;2) 决策条件确认;3) 与回滚联系人不冲突;4) 未确认不得执行真实 R7。","流程级验证:人工确认暂停/回滚/继续决策人。",manual,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md,"[""R7E-4"",""R7E-6""]",最终决策人为 wangshunli;触发条件包括 P0 阻断 权限泄漏 财务数据错误 审批链错误 无法登录或无法回 OA 或两个以上高优先级问题当天无法解释清楚;R7E-8 可进入。
R7E-8,公网健康复核,"在真实 R7E 启动当天复核公网匿名健康和 public bundle。","1) /ready 返回 ok=true;2) public bundle findings=0;3) 结果写入试运行报告;4) 失败则暂停试运行。","流程级验证:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs。",curl|node,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,"[""R7E-7""]",2026-05-13 20:42 启动前预检通过:/ready ok=true;public bundle scanned=57 focused=4 findings=0。因真实窗口为 2026-05-14 09:30 起 本行仍保持 TODO 等启动当天复核。
R7E-8,公网健康复核,"在真实 R7E 启动当天复核公网匿名健康和 public bundle。","1) /ready 返回 ok=true;2) public bundle findings=0;3) 结果写入试运行报告;4) 失败则暂停试运行。","流程级验证:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs。",curl|node,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md,"[""R7E-7""]",2026-05-14 按最新代码 4b14c92 完成受控部署;部署前 client typecheck/build 通过;部署中发现既有 BIZ8 加性 migration 未应用 先创建 DB 备份 hyb-oa-db-20260514_011940.dump 和附件备份 hyb-oa-storage-20260514_011940.tar.gz 后执行 prisma migrate deploy;复跑 deploy.sh 通过且远端 migration up to date;公网 /ready ok=true;public bundle scanned=57 focused=4 findings=0;公网移动矩阵 dg7-mobile-information-dedupe 5 passed。
R7E-9,企业微信入口复核,"在真实 R7E 启动前复核企业微信入口、绑定状态、免登或账号密码兜底、deeplink 回 OA。","1) 企业微信入口可达;2) 绑定用户可进入移动端;3) 未绑定有明确兜底;4) deeplink 回 OA 正确。","流程级验证:代表性真机或企业微信 WebView 人工复核;必要时补 Playwright WeCom UA。",manual|playwright,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md|output/playwright,"[""R7E-8""]",真实企业微信体验需人工或代表设备确认。
R7E-10,报销流程试运行,"员工按真实路径提交报销或复核已有样例,覆盖发票/OCR/附件/审批/财务查看。","1) 员工可提交或查看报销;2) OCR/PDF-only 口径清晰;3) 审批链可追溯;4) 财务可复核;5) 问题进入登记清单。","流程级验证:员工进入报销 -> 上传/选择材料 -> 提交 -> 审批 -> 财务复核;记录结果和问题。",manual,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,"[""R7E-9""]",不得提交未经授权真实票据;真实样票规则不清时使用授权样例或跳过 OCR。
R7E-11,审批流程试运行,"审批人按真实路径处理待办,员工查看进度,验证通知和审批历史一致。","1) 审批人可处理待办;2) 申请人可看进度;3) 审批历史一致;4) 自审和越权被拒绝。","流程级验证:提交申请 -> 审批人处理 -> 申请人查看状态 -> 审计/历史可追溯。",manual,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,"[""R7E-10""]",不引入复杂 BPM 或审批设计器。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
7 R7E-5 问题登记负责人确认 确认 R7E 问题登记负责人、问题分级规则、记录位置和每日 closeout 责任。 1) 问题 owner 确认;2) 阻断/高/中/低分级明确;3) 问题记录位置明确;4) 每日 closeout 责任明确。 流程级验证:人工确认问题登记规则;试运行中所有问题进入本 CSV Notes、报告或后续连续治理流。 manual DONE DONE DONE docs/trialrun/人工试运行报告.md ["R7E-3"] 问题登记负责人为 wangshunli;可审计摘要写入 docs/trialrun/人工试运行报告.md 和本 CSV;按阻断 高 中 低分级;需开发的分流到 R7E ORG8 WF8 BIZ8 QAOPS8。
8 R7E-6 每日收口节奏确认 确认 R7E 每日收口节奏,包括当天问题、阻断判定、是否继续、是否回滚和次日计划。 1) 每日收口模板确认;2) 阻断问题处理规则明确;3) 是否继续/暂停/回滚有决策人;4) 收口证据可追溯。 流程级验证:人工确认每日收口模板;首日试运行后按模板记录。 manual DONE DONE DONE docs/trialrun/人工试运行报告.md ["R7E-5"] 每日 17:30 收口;记录当天流程结果 问题级别 继续或暂停或回滚判断 次日动作和证据路径;不在仓库记录密码 token 私密联系方式或未授权票据原件。
9 R7E-7 暂停和回滚决策人确认 确认 R7E 试运行中触发暂停、回滚或继续推进的最终决策人。 1) 决策人角色确认;2) 决策条件确认;3) 与回滚联系人不冲突;4) 未确认不得执行真实 R7。 流程级验证:人工确认暂停/回滚/继续决策人。 manual DONE DONE DONE docs/trialrun/人工试运行报告.md ["R7E-4","R7E-6"] 最终决策人为 wangshunli;触发条件包括 P0 阻断 权限泄漏 财务数据错误 审批链错误 无法登录或无法回 OA 或两个以上高优先级问题当天无法解释清楚;R7E-8 可进入。
10 R7E-8 公网健康复核 在真实 R7E 启动当天复核公网匿名健康和 public bundle。 1) /ready 返回 ok=true;2) public bundle findings=0;3) 结果写入试运行报告;4) 失败则暂停试运行。 流程级验证:curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs。 curl|node TODO DONE TODO DONE TODO DONE docs/trialrun/人工试运行报告.md ["R7E-7"] 2026-05-13 20:42 启动前预检通过:/ready ok=true;public bundle scanned=57 focused=4 findings=0。因真实窗口为 2026-05-14 09:30 起 本行仍保持 TODO 等启动当天复核。 2026-05-14 按最新代码 4b14c92 完成受控部署;部署前 client typecheck/build 通过;部署中发现既有 BIZ8 加性 migration 未应用 先创建 DB 备份 hyb-oa-db-20260514_011940.dump 和附件备份 hyb-oa-storage-20260514_011940.tar.gz 后执行 prisma migrate deploy;复跑 deploy.sh 通过且远端 migration up to date;公网 /ready ok=true;public bundle scanned=57 focused=4 findings=0;公网移动矩阵 dg7-mobile-information-dedupe 5 passed。
11 R7E-9 企业微信入口复核 在真实 R7E 启动前复核企业微信入口、绑定状态、免登或账号密码兜底、deeplink 回 OA。 1) 企业微信入口可达;2) 绑定用户可进入移动端;3) 未绑定有明确兜底;4) deeplink 回 OA 正确。 流程级验证:代表性真机或企业微信 WebView 人工复核;必要时补 Playwright WeCom UA。 manual|playwright TODO TODO TODO docs/trialrun/人工试运行报告.md|output/playwright ["R7E-8"] 真实企业微信体验需人工或代表设备确认。
12 R7E-10 报销流程试运行 员工按真实路径提交报销或复核已有样例,覆盖发票/OCR/附件/审批/财务查看。 1) 员工可提交或查看报销;2) OCR/PDF-only 口径清晰;3) 审批链可追溯;4) 财务可复核;5) 问题进入登记清单。 流程级验证:员工进入报销 -> 上传/选择材料 -> 提交 -> 审批 -> 财务复核;记录结果和问题。 manual TODO TODO TODO docs/trialrun/人工试运行报告.md ["R7E-9"] 不得提交未经授权真实票据;真实样票规则不清时使用授权样例或跳过 OCR。
13 R7E-11 审批流程试运行 审批人按真实路径处理待办,员工查看进度,验证通知和审批历史一致。 1) 审批人可处理待办;2) 申请人可看进度;3) 审批历史一致;4) 自审和越权被拒绝。 流程级验证:提交申请 -> 审批人处理 -> 申请人查看状态 -> 审计/历史可追溯。 manual TODO TODO TODO docs/trialrun/人工试运行报告.md ["R7E-10"] 不引入复杂 BPM 或审批设计器。
@@ -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,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-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-14 最新代码 4b14c92 已部署到试运行环境且 R7E-8 完成;Go Pause No-Go 条件已写入发布清单和人工试运行报告;明确 R7E 人工验收不被自动化替代;因 R7E-9..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""]",所有执行行完成后才能收口。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
16 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 复核项,不声明等保测评完成。
17 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 中;未新增冲突文档。
18 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 数据损坏 发布阻断或公网关键门禁失败;停止条件为备份不完整 权限不明确 影响生产或责任人不在线;本行只确认窗口和边界 未执行数据库恢复 生产回滚 服务切换或破坏性命令;真实恢复或生产回滚执行前仍需再次明确批准。
19 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。 当前清单已形成:2026-05-14 最新代码 4b14c92 已部署到试运行环境且 R7E-8 完成;Go Pause No-Go 条件已写入发布清单和人工试运行报告;明确 R7E 人工验收不被自动化替代;因 R7E-9..18 WF8-11 BIZ8-12 仍是未完成阻断项 本行不标 DONE。
20 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。
21 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 人工试运行结论;当前不能提前完成。
22 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"] 所有执行行完成后才能收口。