6.0 KiB
6.0 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | A1 | R105 真实试运行前自动化收口合同 | 以 R104 公网部署验收为基础,固定真实试运行前 P0 收口范围:smoke 数据治理、公网/移动视觉自动化、发布门禁脚本化、真实企业微信最终落点人工证据。 | 本 CSV 校验通过;本批不改业务状态机、审批规则、权限模型和 Prisma schema;所有新增脚本默认只读或 dry-run。 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-07_12-34-21-r105-pretrial-readiness-automation.csv;业务流程影响:固定真实试运行前自动化验收范围。 | python|manual | DONE | DONE | DONE | issues/2026-05-07_12-34-21-r105-pretrial-readiness-automation.csv | [] | 回滚路径:删除本批新增 Issue、脚本、测试和报告;不提交密钥。 |
| 3 | A2 | smoke 数据足迹审计 | 新增只读 smoke 数据审计脚本,按 smoke-admin/smoke-employee 或 SMOKE001/SMOKE002 识别测试账号,统计其报销、票据、OCR、工作流、通知、审计日志足迹,形成试运行前清理依据。 | 脚本默认只读;可输出 text/json;不会删除或修改业务数据;缺少 smoke 账号时返回清晰提示。 | cd server && node --check src/scripts/audit-smoke-data.js && node src/scripts/audit-smoke-data.js --help;在可用数据库上执行 node src/scripts/audit-smoke-data.js --format=json;业务流程:识别公网自动化账号产生的报销/票据/OCR 数据,避免污染真实试运行。 | node|prisma | DONE | DONE | DONE | server/src/scripts/audit-smoke-data.js|server/package.json | ["A1"] | 远端只读审计通过:smoke 员工 2 个、票据 5 张、无 pending_ocr;只做审计不做清理。 |
| 4 | A3 | 预试运行公网视觉自动化 | 新增 R105 公网视觉验收用例,扩展 R104 覆盖到移动票据上传、移动审批、我的/更多、PC Portal 与关键页面一致性,并保存截图证据。 | E2E_MODE=live 时 R105 用例可运行;截图输出 output/playwright/r105;断言无黑色移动底栏、无旧口语化文案、无桌面表格进入移动核心页、企业微信入口仍指向 /mobile。 | cd client && LIVE_SMOKE_BASE_URL=https://oa.hyinda.com E2E_MODE=live npx playwright test tests/e2e/r105-pretrial-visual.spec.ts --reporter=list;业务流程:员工从公网登录后检查移动首页、票据上传、审批、我的、PC Portal 和票据/报销入口视觉可用。 | playwright | DONE | DONE | DONE | client/tests/e2e/r105-pretrial-visual.spec.ts|output/playwright/r105 | ["A1"] | 公网 R105 视觉 4 passed;截图目录不纳入 git;真实企业微信客户端最终点击仍需人工。 |
| 5 | A4 | 预试运行门禁脚本 | 新增 R105 预试运行门禁脚本,串联 CSV 校验、设计规则、前端 typecheck、smoke 数据审计、可选公网 live smoke、可选 R105 视觉自动化和可选真实 OCR。 | 脚本默认执行安全本地门禁;提供 live/visual/ocr 开关;缺少 LIVE_SMOKE_* 时跳过 live 项并给出明确提示;不打印密码。 | bash scripts/qa/run-pretrial-readiness.sh --help;bash scripts/qa/run-pretrial-readiness.sh --static;业务流程:发布前一条命令复核试运行关键自动化证据。 | bash|node|playwright | DONE | DONE | DONE | scripts/qa/run-pretrial-readiness.sh | ["A2","A3"] | static、live-smoke、visual、ocr 均已通过;live/ocr 凭据仅临时环境变量传入。 |
| 6 | A5 | 真实企业微信最终落点证据模板 | 新增 R105 试运行人工证据模板,明确手机企业微信工作台打开 OA 的最小步骤、成功/失败记录字段、requestId/时间点/截图要求和自动化已覆盖边界。 | 存在 artifacts/r105-pretrial-readiness/wecom-mobile-final-check.md;用户可按模板完成真实企业微信最终确认;模板不包含密钥或个人隐私值。 | 人工按模板执行:手机企业微信工作台 -> OA 应用 -> 确认已绑定账号进入 /mobile;若失败记录 requestId、北京时间、截图。业务流程:真实企业微信客户端内免登最终落点确认。 | manual | DONE | DONE | DONE | artifacts/r105-pretrial-readiness/wecom-mobile-final-check.md | ["A1"] | 模板已落地;真实企业微信客户端不是 Playwright 可完全替代的环境;本项作为唯一人工剩余点。 |
| 7 | A6 | R105 自动化验证与报告 | 执行 R105 新增脚本和视觉用例的本地验证,生成自动化收口报告,记录已通过项、跳过原因和剩余人工项。 | 存在 artifacts/r105-pretrial-readiness/report.md;报告列出命令、结果、截图路径和剩余人工动作;不包含密码、token、secret、cookie。 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-07_12-34-21-r105-pretrial-readiness-automation.csv;bash scripts/qa/run-pretrial-readiness.sh --static;cd client && npm run typecheck;业务流程:试运行前自动化证据可追溯。 | python|bash|npm|manual | DONE | DONE | DONE | artifacts/r105-pretrial-readiness/report.md | ["A2","A3","A4","A5"] | 报告已落地;公网 live smoke 3 passed、R105 visual 4 passed、真实 OCR 1 passed。 |
| 8 | A7 | 状态回填与中文分批提交 | 回填 A1-A6 状态,执行提交前 diff 和敏感词扫描,按中文提交 R105 规划与实现。 | A1-A6 状态按实测回填;git diff --check 通过;提交信息中文且引用 R105/A1-A7;无截图和密钥进入 git。 | git diff --check;git diff --cached --check;git diff --cached --name-only | xargs -r rg -n -i '(secret|token|authorization|cookie|set-cookie|accessToken|refreshToken|password)' --;业务流程:试运行收口变更可审计、可回滚。 | git|rg | DONE | DONE | DONE | issues/2026-05-07_12-34-21-r105-pretrial-readiness-automation.csv|server/src/scripts/audit-smoke-data.js|client/tests/e2e/r105-pretrial-visual.spec.ts|scripts/qa/run-pretrial-readiness.sh|artifacts/r105-pretrial-readiness | ["A1","A2","A3","A4","A5","A6"] | 提交前确认 output/playwright/r105 未被纳入 git;敏感词扫描只允许字段名/说明命中,不允许真实密钥。 |