R7EP-5/R7EP-6/OPS8-3 收口预检门禁

这个提交包含在:
2026-05-13 15:28:25 +08:00
父节点 db1df49632
当前提交 56fa38010f
共修改 6 个文件,包含 14 行新增和 12 行删除
+1 -1
查看文件
@@ -109,5 +109,5 @@ Final responses should include:
- After MUD6, `R6-ISSUE-001` is treated as resolved based on representative real-device confirmation; future mobile regressions should be recorded as new Issues rather than reopening the old WCM6/MME6 gate unless the same production behavior returns.
- After AP6, approval reminder, overdue reminder, and workflow productivity summary are current product facts, not open planning items. Reuse `POST /api/workflow/tasks/:taskId/remind`, `GET /api/workflow/tasks/summary`, `job:workflow-overdue-reminders`, existing workflow history, audit logs, notifications, and WeCom personal app delivery semantics. Do not add a parallel reminder channel, change approval status from reminders, or expand into complex BPM/SLA escalation without a new Issue.
- After DG7/MRF7, mobile approval is an "approval and progress" entry: employees may use it for submitted-item progress, while approvers use it for assigned tasks. Do not reintroduce disabled approval tabs for ordinary employees, duplicated home pending lists, or notification cards that only bounce users back to the notification center when a business target exists.
- After RI6, LP6, ME6 automation, QG6, MIF7/MIF7T, MIF7TD, and R7/OPS7/DOC7 draft materials, treat `ME6-3` as closed by representative iPhone 12, iPhone 14, and Redmi K60 Enterprise WeChat feedback. R7 draft rows may be `DONE`, but `R7E-*` true execution rows must stay `TODO` until the user confirms participants, roles, window, rollback contact, issue owner, and daily closeout, and R7E automatic gates pass. Do not start real R7 from documentation alone; future mobile or real-device regressions must be recorded as new Issues such as UX8/R7E follow-ups.
- After RI6, LP6, ME6 automation, QG6, MIF7/MIF7T, MIF7TD, R7/OPS7/DOC7 draft materials, R7EP automatic gates, and OPS8 remote read-only checks, treat `ME6-3` as closed by representative iPhone 12, iPhone 14, and Redmi K60 Enterprise WeChat feedback. R7EP may conclude that the project can enter R7E human confirmation, but `R7E-*` true execution rows must stay `TODO` until the user confirms participants, roles, window, rollback contact, issue owner, daily closeout, and pause/rollback decision maker. Do not start real R7 from documentation or automation gates alone; future mobile or real-device regressions must be recorded as new Issues such as UX8/R7E follow-ups.
- After DCL7, document governance must start from `docs/文档索引.md` and `docs/文档事实源状态矩阵.md`. Use Chinese-first current docs. Confirmed obsolete docs may be physically removed from the current tree and restored from git history when needed; do not create `docs/archive/` just to move clutter. Do not rewrite old Issue CSV snapshots when cleaning current docs.
+1 -1
查看文件
@@ -94,7 +94,7 @@ AGENTS.md 只放硬约束和入口,不复制长规则。
- 审批入口默认承载“待我审批”和“我发起的进度”两种视角;普通员工不能看到不可点或无权限的审批入口,审批人/财务/负责人只能看到服务端允许的动作。
- 真机验证暂停时记录为 `PAUSED`;自动化通过不能替代代表性真机确认,也不能关闭仍待人工确认的移动阻断。当前 `ME6-3` 已由三台代表设备反馈关闭,后续新增真机问题必须另建 Issue 跟踪。
截至 MIF7TD,RI6 报销票据体验、LP6 请假采购体验、ME6 自动化/部署收口、QG6 QA 治理、MIF7/MIF7T 移动整改与真机反馈、带凭据 live smoke/OCR 复检以及 R7/OPS7/DOC7 草案材料均已完成;`ME6-3` 已关闭。后续默认进入 R7E 前置门禁准备状态:不得把文档草案当成真实 R7 启动证据,也不得把未来新增真机问题用自动化伪造成关闭。R7 真实执行必须保持 `R7E-*` 为 TODO,直到用户确认最终人员、角色、窗口、回滚联系人、问题登记负责人和每日收口节奏,并完成 R7E 自动门禁。
截至 R7EP/OPS8 收口,RI6 报销票据体验、LP6 请假采购体验、ME6 自动化/部署收口、QG6 QA 治理、MIF7/MIF7T 移动整改与真机反馈、带凭据 live smoke/OCR 复检、R7/OPS7/DOC7 草案材料、R7EP 自动门禁和 OPS8 远端只读状态检查均已完成;`ME6-3` 已关闭。后续可进入 R7E 人工确认环节,但不得把文档草案或自动门禁通过当成真实 R7 已启动,也不得把未来新增真机问题用自动化伪造成关闭。R7 真实执行必须保持 `R7E-*` 为 TODO,直到用户确认最终人员、角色、窗口、回滚联系人、问题登记负责人、每日收口节奏和暂停/回滚决策人。
文档治理采用 DCL7 后的中文优先和物理精简策略:
+3 -1
查看文件
@@ -161,4 +161,6 @@ live readiness 归档规则:
- `live-smoke.txt` 和 `live-ocr.txt` 不含 `SKIP` 才能作为真实通过证据;`pending OCR` 缺 `DATABASE_URL` 时可记录为非阻断 `SKIP`,不得写成数据库健康通过。
- R7EP 或上线前结论必须同时说明 `/ready`、public bundle、live smoke、真实 OCR 和移动矩阵状态。
OPS8-3 远端运行状态只读检查仍是建议门禁。执行前需先确认 SSH 目标和只读命令清单,只允许 `ps`、`status`、`config`、`docker compose ps`、`prisma migrate status` 等不改变状态的命令;不得打印远端 env,不得执行 migrate reset 或数据库写操作。
2026-05-13 已按默认部署目标 `[email protected]:/opt/hyb-oa-trialrun` 补跑 OPS8-3 远端运行状态只读检查,证据目录 `artifacts/qa-flow/ops8-remote-readonly-20260513-152024/`:`/ready` ok,Caddy active,Docker Compose 中 db/server Up,Prisma migration status up to date。该检查未打印远端 env,未重启服务,未执行数据库写操作或 `migrate reset`。
后续每次 R7E 或上线前复跑 OPS8-3 时,仍只允许 `ps`、`status`、`config`、`docker compose ps`、`prisma migrate status` 等不改变状态的命令;不得打印远端 env,不得执行 migrate reset 或数据库写操作。
+5 -5
查看文件
@@ -12,7 +12,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
- 2026-05-13 用户完成 iPhone 12、iPhone 14、Redmi K60 企业微信代表性真机主流程复测,`ME6-3` 已按主流程门禁关闭;iPhone 12 图文上下间距偏紧按非阻断观察项记录。
- MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检;2026-05-13 已将包含 `cf2bba0` 的 MIF7T 代码部署到 `https://oa.hyinda.com`。
- MIF7TD 收口报告为 `artifacts/qa-flow/live-smoke-readiness-20260513-115455/`:公网 live smoke `3 passed`,真实 OCR `1 passed`,样票为重复发票可解释终态;`pending OCR` 因本地未注入 `DATABASE_URL` 记录 `SKIP`,不作为 MIF7-7 硬阻断。
- R7/OPS7/DOC7 是准备材料;真实 R7 未启动,需用户确认人员、窗口、回滚联系人、问题登记负责人和每日收口节奏,并先完成 R7E 自动门禁。
- R7/OPS7/DOC7 是准备材料;R7EP 自动门禁和 OPS8 只读检查已完成,可进入 R7E 人工确认环节;真实 R7 仍未启动,需用户确认人员、窗口、回滚联系人、问题登记负责人和每日收口节奏。
- 2026-05-13 后续计划调整直接回写现有 R7EP、OPS8、QAF8、UX8、P2T 合同,不新建专门调整 Issue;调整后 R7EP 门禁可并行执行,OPS8-1/2/4 纳入 R7EP Go/No-Go,UX8 和 P2T 候选按真实反馈并行推进。
## 关键证据索引
@@ -46,7 +46,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
## R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进
执行时间:2026-05-13 14:10-15:05 前后。
执行时间:2026-05-13 14:10-15:25 前后。
| 检查项 | 结果 | 证据 |
| --- | --- | --- |
@@ -54,13 +54,13 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
| R7EP 带凭据 live readiness | 通过,含非阻断 pending OCR SKIP | 报告 `artifacts/qa-flow/live-smoke-readiness-20260513-141253/`;live smoke `3 passed`,真实 OCR `1 passed`;`pending OCR` 因本地未注入 `DATABASE_URL` 记录 `SKIP` |
| R7EP 公网移动矩阵 | 通过 | `cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list`,5 passed |
| R7EP 核心业务流 | 分段通过 | 长组合命令在当前工具会话中不稳定中断,不采用不完整 `summary.json` 作为通过证据;采用同一 groups 的可追溯分段结果:`business-flow-20260513-142857/summary.txt` 中 reimbursement/approval/leave/procurement PASS,`business-flow-20260513-145759/summary.txt` 中 approval PASS,`business-flow-20260513-144801/summary.txt` 中 governance PASS |
| R7EP 账号角色只读核验 | 待用户输入 | 自动化已覆盖 admin-only 不具备业务审批权、财务/管理员边界和员工/经理移动入口口径;真实 R7 候选账号名单、角色、active 状态和企业微信绑定仍需用户确认或另行只读核验 |
| OPS8 最小准备 | 已补文档 | `docs/trialrun/OPS7运维交接Runbook.md` 已补当前部署版本追踪、`SYNC_ENV=0` 口径、备份/回滚占位和 live readiness 归档规则;OPS8-3 远端只读检查未执行,需先确认 SSH 目标和命令清单 |
| R7EP 账号角色只读核验 | 通过 | 只读 SQL 证据 `artifacts/qa-flow/r7ep-account-role-readonly-20260513-152121/`;`SMOKE002`、`SMOKE101`、`SMOKE201`、`SMOKE301`、`SMOKE302`、`SMOKE001`、`wangzhiling`、`wangshunli` 均为 `active`;角色、直属主管、企业微信绑定布尔状态已核验;`SMOKE001` 和 `admin` role 当前无 pending 审批任务,财务角色无 admin 混授 |
| OPS8 最小准备 | 已补文档并通过远端只读检查 | `docs/trialrun/OPS7运维交接Runbook.md` 已补当前部署版本追踪、`SYNC_ENV=0` 口径、备份/回滚占位和 live readiness 归档规则;OPS8-3 远端只读证据 `artifacts/qa-flow/ops8-remote-readonly-20260513-152024/`,Caddy active,compose db/server Up,Prisma migration up to date |
| QAF8 覆盖刷新 | 已补文档 | `docs/测试规约与回归门禁.md` 已补当前最小回归组合、本地/公网匿名/带凭据门禁边界、R108/R109 历史专项分类 |
| UX8 反馈池 | 阶段性收口 | 本轮未新增 UX8 代码实现;iPhone 12 间距、详情扫读性、财务摘要、移动采购创建和列表卡片反馈继续按真实反馈进入后续项 |
| P2T 候选盘点 | 已补文档 | `docs/海音达OA-MVP需求规格说明书.md` 已补 P2T 候选优先级:组织账号主数据、审批通知扩展、OCR/票据增强、费用预算项目轻量增强、运维上线增强;冻结项继续不进入当前实现 |
R7E 结论:自动化门禁已推进到可证明公网、live smoke/OCR、移动矩阵和核心业务流基础可用;但真实 R7 仍不能启动,缺口是用户尚未确认 R7 候选参与人、账号角色清单、时间窗口、回滚联系人、问题登记负责人和每日收口节奏。远端 Caddy/Docker/Prisma 只读状态检查也尚未执行,需先确认命令清单。
R7E 结论:公网、live smoke/OCR、移动矩阵、核心业务流、账号角色只读核验和 OPS8 远端只读状态检查均已通过,可进入 R7E 人工确认环节;但真实 R7 仍未启动。启动前仍需用户最终确认参与名单、时间窗口、回滚联系人、问题登记负责人、每日收口节奏和暂停/回滚决策人。
## MIF7-7 非人工自动化补验
@@ -4,5 +4,5 @@ R7EP-1,公网匿名健康门禁,"执行 R7E 前公网匿名检查。","1) /ready
R7EP-2,带凭据 live smoke 和真实 OCR 门禁,"在授权后以不打印内容方式注入 live-smoke.env,复跑 live readiness。","1) live-smoke.txt 不含 SKIP 且通过;2) live-ocr.txt 不含 SKIP 且真实 OCR 进入可解释通过终态;3) pending OCR SKIP 单独说明;4) 不打印凭据或样票路径内容。","流程级验证:子 shell set -a source /home/shunli/.hyb-oa/live-smoke.env set +a;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=R7EP bash scripts/qa/run-live-smoke-readiness.sh;检查最新报告。",bash|node|playwright,DONE,DONE,DONE,scripts/qa|artifacts/qa-flow|docs/trialrun/人工试运行报告.md,["R7EP-0"],报告 artifacts/qa-flow/live-smoke-readiness-20260513-141253/;live smoke 3 passed;真实 OCR 1 passed;pending OCR 缺 DATABASE_URL 按规则非阻断 SKIP;未读取 wangzhiling-onetime.env。
R7EP-3,公网移动视觉矩阵,"复跑 MIF7 公网移动矩阵,确认 R7E 前移动体验无阻断回退。","1) MIF7 公网移动专项通过;2) 覆盖首页、进度/审批、通知、报销详情、请假详情、采购详情、财务首页;3) 截图目录可追溯;4) 失败项写明设备宽度和页面。","流程级验证:cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list。",playwright,DONE,DONE,DONE,client/tests/e2e/dg7-mobile-information-dedupe.spec.ts|output/playwright/mobile-ia-flow-remediation,["R7EP-0"],2026-05-13 公网 MIF7 移动专项 5 passed;不污染业务数据。
R7EP-4,核心业务流与权限 smoke,"复核 R7E 前报销、请假、采购、审批、财务和权限治理测试替身流程。","1) 报销/请假/采购提交与审批测试替身流程可用;2) 审批待办和处理链路可用;3) 财务付款/导出相关路径和权限边界可解释;4) governance 权限直连不泄露;5) 失败则不建议进入 R7E 人工确认。","流程级验证:BUSINESS_FLOW_GROUPS=reimbursement,approval,leave,procurement,governance bash scripts/qa/run-business-flow-gates.sh local;如长组合命令在工具会话中中断,可按相同 BUSINESS_FLOW_GROUPS 分段执行,并在人工试运行报告记录等价 PASS 目录和中断原因。",bash|manual,DONE,DONE,DONE,scripts/qa|docs/trialrun/人工试运行报告.md|client/tests/e2e/mobile-approvals-offline.spec.ts|client/tests/e2e/permission-direct-access.spec.ts,["R7EP-0"],分段证据:business-flow-20260513-142857 reimbursement/approval/leave/procurement PASS;business-flow-20260513-145759 approval PASS;business-flow-20260513-144801 governance PASS;已更新旧移动审批/权限测试断言到 MIF7T 信息架构。不使用真实参与者业务数据。
R7EP-5,账号角色只读核验,"核验 R7E 候选角色账号处于 active 且权限边界符合草案。","1) 员工、审批人、财务、管理员角色边界清晰;2) admin-only 不具备业务审批权;3) 财务不具备系统管理权;4) 只记录角色和状态,不记录密码。","流程级验证:优先使用现有只读脚本或 audit-readonly 查询;核验结果写入 docs/trialrun/人工试运行报告.md。",manual,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,["R7EP-0"],自动化已覆盖 admin-only/财务/管理员边界;真实 R7 候选账号名单、active 状态和企业微信绑定仍待用户确认或 audit-readonly 只读核验;禁止 INSERT/UPDATE/DELETE。
R7EP-6,R7E 前置结论,"汇总 R7EP 检查结果和 OPS8 最小准备结论,给出是否可进入 R7E 人工确认。","1) 结论只能是可进入 R7E 人工确认或仍需修复/补测;2) 不直接启动 R7;3) R7EP-1..5 结果真实回填;4) OPS8-1/2/4 完成或有明确阻塞说明;5) 中文提交。","流程级验证:CSV 校验;rg 核对报告;git diff --check;git commit。",python3|rg|git,TODO,TODO,TODO,issues/2026-05-13_13-17-35-r7e-preflight-automation.csv|docs/trialrun/人工试运行报告.md,"[""R7EP-1"",""R7EP-2"",""R7EP-3"",""R7EP-4"",""R7EP-5"",""OPS8-1"",""OPS8-2"",""OPS8-4""]",已在报告给出阶段性结论:自动门禁基础通过,但 R7EP-5 真实候选账号核验、用户确认参与名单/窗口/联系人/节奏、OPS8-3 远端只读状态检查仍未完成;不启动 R7。
R7EP-5,账号角色只读核验,"核验 R7E 候选角色账号处于 active 且权限边界符合草案。","1) 员工、审批人、财务、管理员角色边界清晰;2) admin-only 不具备业务审批权;3) 财务不具备系统管理权;4) 只记录角色和状态,不记录密码。","流程级验证:优先使用现有只读脚本或 audit-readonly 查询;核验结果写入 docs/trialrun/人工试运行报告.md。",manual,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md,["R7EP-0"],只读证据 artifacts/qa-flow/r7ep-account-role-readonly-20260513-152121/summary.txt;SMOKE002/SMOKE101/SMOKE201/SMOKE301/SMOKE302/SMOKE001、wangzhiling、wangshunli 均已核验状态和角色;SMOKE002/SMOKE101/wangzhiling/wangshunli 有企业微信绑定;SMOKE001/admin role pending tasks=0;finance_users_with_admin_role=0;未记录密码。
R7EP-6,R7E 前置结论,"汇总 R7EP 检查结果和 OPS8 最小准备结论,给出是否可进入 R7E 人工确认。","1) 结论只能是可进入 R7E 人工确认或仍需修复/补测;2) 不直接启动 R7;3) R7EP-1..5 结果真实回填;4) OPS8-1/2/4 完成或有明确阻塞说明;5) 中文提交。","流程级验证:CSV 校验;rg 核对报告;quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check;git commit。",python3|rg|git,DONE,DONE,DONE,issues/2026-05-13_13-17-35-r7e-preflight-automation.csv|docs/trialrun/人工试运行报告.md|docs/Agent开发交付实践.md|.agents/skills/hyb-oa-delivery/SKILL.md,"[""R7EP-1"",""R7EP-2"",""R7EP-3"",""R7EP-4"",""R7EP-5"",""OPS8-1"",""OPS8-2"",""OPS8-4""]",R7EP-1..5 和 OPS8-1/2/4 均完成;OPS8-3 建议门禁也已补远端只读检查。结论:可进入 R7E 人工确认,但不代表 R7 启动,仍需用户确认最终参与名单、窗口、回滚联系人、问题登记负责人、每日收口节奏和暂停/回滚决策人。
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 449 列。
@@ -2,6 +2,6 @@ ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regr
OPS8-0,OPS8 运维准备合同建档,"建立 OPS8 运维和回滚准备合同,先做非破坏性准备,不做真实恢复或配置修改,并作为 R7EP Go/No-Go 的运维前置依据。","1) 本 CSV 校验通过;2) 不执行数据库写操作;3) 不同步或覆盖远端 .env;4) 不做真实恢复演练;5) OPS8-1/2/4 是 R7EP-6 最小前置项。","流程级验证:validate_issues_csv.py 本 CSV;人工核对后续行均为 TODO。",python3|manual,DONE,DONE,DONE,issues/2026-05-13_13-17-36-ops8-trialrun-ops-hardening.csv,[],回滚路径:删除本 CSV;不影响运行环境。
OPS8-1,远端部署版本追踪,"梳理当前公网部署版本、部署脚本行为和证据记录方式。","1) 记录当前部署 commit;2) 明确 deploy.sh 默认 SYNC_ENV=0;3) 记录 /ready 和 public bundle 检查命令;4) 不改远端配置。","流程级验证:git log -1 --oneline;curl -fsS https://oa.hyinda.com/ready;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs;写入运维记录。",git|curl|node,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md|docs/trialrun/OPS7运维交接Runbook.md,["OPS8-0"],已记录当前本地基线 0260bc7、最近已部署基线 cf2bba0、deploy.sh 默认 SYNC_ENV=0、/ready 和 public bundle 检查命令;不部署不改远端配置。
OPS8-2,备份和回滚目标清单,"补齐 R7E 前备份文件位置、负责人、回滚目标 commit 和恢复演练窗口占位。","1) 备份文件名/位置记录为占位或已知历史;2) 回滚联系人和执行窗口等待用户确认;3) 回滚目标 commit 记录方式清晰;4) 不执行恢复。","流程级验证:人工核对 OPS Runbook 和人工试运行报告新增占位;rg -n '备份|回滚|恢复演练|commit' docs/trialrun/OPS7运维交接Runbook.md docs/trialrun/人工试运行报告.md。",manual|rg,DONE,DONE,DONE,docs/trialrun/OPS7运维交接Runbook.md|docs/trialrun/人工试运行报告.md,["OPS8-1"],已补数据库/附件备份、回滚目标 commit、回滚联系人和恢复演练窗口占位;未执行真实恢复,真实恢复演练必须另拆 Issue 并确认窗口。
OPS8-3,远端运行状态只读检查(建议门禁),"以只读方式检查 Caddy、Docker Compose、Prisma migration status 和服务状态;该项建议在 R7E 前完成,但不阻塞 OPS8 最小准备收口。","1) 只读命令通过或失败原因记录;2) 不修改 systemd/Caddy/docker compose;3) 不执行 migrate reset;4) 输出可追溯;5) 若未执行,必须在 R7EP 结论中说明原因和风险。","流程级验证:按 OPS Runbook 执行只读状态检查;如需 ssh,仅执行 ps/config/status 类命令;结果写入报告。",ssh|manual,TODO,TODO,TODO,docs/trialrun/人工试运行报告.md,["OPS8-1"],涉及远端命令前需确认目标命令;不得打印远端 env。
OPS8-3,远端运行状态只读检查(建议门禁),"以只读方式检查 Caddy、Docker Compose、Prisma migration status 和服务状态;该项建议在 R7E 前完成,但不阻塞 OPS8 最小准备收口。","1) 只读命令通过或失败原因记录;2) 不修改 systemd/Caddy/docker compose;3) 不执行 migrate reset;4) 输出可追溯;5) 若未执行,必须在 R7EP 结论中说明原因和风险。","流程级验证:按 OPS Runbook 执行只读状态检查;如需 ssh,仅执行 ps/config/status 类命令;结果写入报告。",ssh|manual,DONE,DONE,DONE,docs/trialrun/人工试运行报告.md,["OPS8-1"],2026-05-13 按默认部署目标 [email protected]:/opt/hyb-oa-trialrun 只读执行;证据 artifacts/qa-flow/ops8-remote-readonly-20260513-152024/summary.txt;Caddy active,compose db/server Up,Prisma migration up to date;未打印远端 env、未重启、未写库。
OPS8-4,live readiness 报告归档规则,"固定 R7E/上线前 live readiness 报告目录、命名和引用规则。","1) 报告目录记录 artifacts/qa-flow;2) live smoke/OCR SKIP 规则清晰;3) pending OCR SKIP 不误判为失败或通过;4) 文档引用相同路径。","流程级验证:rg -n 'live readiness|artifacts/qa-flow|SKIP|pending OCR' docs/trialrun/OPS7运维交接Runbook.md docs/trialrun/人工试运行报告.md。",rg,DONE,DONE,DONE,docs/trialrun/OPS7运维交接Runbook.md|docs/trialrun/人工试运行报告.md,"[""OPS8-1"",""OPS8-2""]",已固定 artifacts/qa-flow/live-smoke-readiness-<timestamp>/ 归档规则;live smoke/OCR SKIP 与 pending OCR 非阻断 SKIP 规则清晰;不依赖 OPS8-3。
OPS8-5,OPS8 收口,"完成 OPS8 最小准备项校验、状态回填和提交。","1) OPS8 CSV 校验通过;2) OPS8-1/2/4 完成或有明确阻塞说明;3) git diff --check 通过;4) destructive 项保持 TODO 或明确说明;5) 中文提交。","流程级验证:validate_issues_csv.py 本 CSV;git diff --check;git status --short;git commit。",python3|git,DONE,DONE,DONE,issues/2026-05-13_13-17-36-ops8-trialrun-ops-hardening.csv|docs/trialrun,"[""OPS8-1"",""OPS8-2"",""OPS8-4""]",OPS8 最小准备项已完成;OPS8-3 未执行且保持 TODO,已在报告说明需先确认 SSH 目标和只读命令清单;未执行 destructive 操作。
OPS8-5,OPS8 收口,"完成 OPS8 最小准备项校验、状态回填和提交。","1) OPS8 CSV 校验通过;2) OPS8-1/2/4 完成或有明确阻塞说明;3) git diff --check 通过;4) destructive 项保持 TODO 或明确说明;5) 中文提交。","流程级验证:validate_issues_csv.py 本 CSV;git diff --check;git status --short;git commit。",python3|git,DONE,DONE,DONE,issues/2026-05-13_13-17-36-ops8-trialrun-ops-hardening.csv|docs/trialrun,"[""OPS8-1"",""OPS8-2"",""OPS8-4""]",OPS8 最小准备项已完成;OPS8-3 已补远端只读检查;未执行 destructive 操作、未同步或打印远端 env、未执行恢复演练。
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 559 列。