文件
hyb-oa/issues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv

11 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2P2AUTO-0P2 自动化回归合同建档建立 R7E 后 P2 自动化优先回归合同,只做自动化验证、样票安全核对和证据回填,不启动业务功能开发。1) 本 CSV 校验通过;2) 范围限定自动化、QA 脚本和既有证据文档;3) 不部署、不执行生产恢复、不重置数据库;4) 不打开公网 payment_batch_v1;5) 不开放图片 OCR。流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv;人工核对不改业务 API/schema/UI。python3|manualDONEDONEDONEissues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv[]Scope=automation-first; baseline=7a59fd7; validate_issues_csv passed; no runtime change; no deployment; public payment_batch_v1 remains off.
3P2AUTO-1凭据与样票掩码核对加载本机安全 live smoke 配置并核对公网、企业微信、PDF live OCR readiness;只输出 ready 状态,不输出 secret、真实样票路径或票面信息。1) liveSmokeReady=true;2) liveOcrReady=true;3) PDF 样票不再被记录为缺失;4) 输出不含密码、token 或真实路径;5) 图片样票若未登记则只作为后续缺口记录。受影响流程:公网 live smoke、PDF live OCR、企业微信 config readiness;验证步骤:set -a && source ~/.hyb-oa/live-smoke.env && set +a;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs --strict;补充掩码脚本只统计 PLAYWRIGHT_OCR_IMAGE_* 是否存在,不打印路径。bash|node|manualDONEDONEDONEscripts/qa/check-live-smoke-env.mjs|external["P2AUTO-0"]live smoke env strict check PASS: publicReady=true, liveSmokeReady=true, liveOcrReady=true; PDF sample env present; image sample is not registered via OCR_PROVIDER_SAMPLE_MANIFEST or PLAYWRIGHT_OCR_IMAGE_*; no secret/path printed.
4P2AUTO-2合同与文档门禁校验当前 P2Q、P2OCRS、P2FINV1、UX8、P2AUTO 合同和文档登记,确认事实源链没有把 PDF 样票误写为缺失。1) 相关 CSV 校验通过;2) audit-docs 无 error;3) 文档关键词命中可解释;4) PDF 样票已具备口径被登记;5) 不新建综合规划文档。流程级验证:validate_issues_csv.py 本 CSV、P2Q、P2-OCR-SAMPLE、P2-FIN-V1、UX8;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'P2AUTO|P2Q|P2OCRS|P2-FIN-V1|UX8|PDF live OCR|图片样票|HOLD_FOR_SAMPLE' docs issues。python3|node|rgDONEDONEDONEissues/*.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md["P2AUTO-0"]CSV gates passed for P2AUTO, P2Q, P2OCRS, P2FINV1 and UX8; audit-docs errors=0 warnings=1 existing unregistered docs files=24; docs updated in existing index/matrix/report only.
5P2AUTO-3后端自动化门禁执行 Prisma validate、关键路由/服务语法检查和 OCR、付款批次、导出、企业微信、通知 focused 单测。1) Prisma validate 通过;2) node --check 通过;3) focused npm test 通过或有明确非业务前置失败;4) 不改 server/src 业务逻辑;5) 不打印 secret。受影响流程:发票 OCR、OCR job、付款批次、AP 导出、workflow、企业微信认证、通知;验证步骤:cd server && npm run prisma:validate;cd server && node --check src/routes/invoicePool.js src/jobs/ocrJob.js src/services/ocr/tencent.js src/routes/paymentBatches.js src/routes/exports.js src/routes/workflow.js src/routes/wecomAuth.js;cd server && npm test -- tests/unit/services/ocr.tencent.test.js tests/unit/jobs/ocrJob.test.js tests/unit/routes/invoicePool.upload.test.js tests/unit/routes/paymentBatches.reimbursement.test.js tests/unit/routes/exports.apOperations.test.js tests/unit/routes/wecomAuth.test.js tests/unit/routes/notifications.test.js。npm|nodeDONEDONEDONEserver/src|server/tests/unit["P2AUTO-1"]PASS: server prisma:validate; node --check invoicePool/ocrJob/tencent/paymentBatches/exports/workflow/wecomAuth; focused npm test 7 files/43 tests passed; no server/src business change.
6P2AUTO-4前端自动化门禁执行前端 typecheck、build 和高风险确认、审批确认、发票 PDF-only、权限直连等 Playwright 自动化。1) typecheck 通过;2) build 通过;3) 指定 Playwright 用例通过或失败可归因;4) 不新增前端页面或业务入口;5) 企业微信真机不被自动化伪装为通过。受影响流程:PC 高风险动作、审批确认、发票上传、权限直连、移动入口;验证步骤:cd client && npm run typecheck && npm run build;cd client && npx playwright test tests/e2e/system-action-confirmation.spec.ts tests/e2e/workflow-action-confirm-ui.spec.ts tests/e2e/r111-invoice-reimbursement-guard.spec.ts tests/e2e/permission-direct-access.spec.ts --workers=1 --reporter=list。npm|playwrightDONEDONEDONEclient/src|client/tests/e2e["P2AUTO-3"]PASS: client typecheck/build; high-risk confirmation 4 passed; r111 invoice guard and permission direct access covered by business-flow report business-flow-20260516-203001; test-only stale assertions updated for current labels/role boundary.
7P2AUTO-5隔离业务流自动化在隔离临时库中运行核心业务流 flag-off 门禁,并单独运行付款批次 flag-on 闭环;付款批次结果不得解释为公网启用。1) 核心业务流通过或失败有明确用例;2) payment_batch_v1 公网保持关闭;3) 付款批次仅隔离环境 flag-on;4) 报告路径写入 Notes;5) 不执行生产数据写入。受影响流程:登录、企业微信入口、报销、审批、请假、采购、权限治理、付款批次隔离闭环;验证步骤:BUSINESS_FLOW_GROUPS=auth,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;cd client && E2E_BASE_URL=<local-or-isolated-url> npx playwright test tests/e2e/reimbursement-payment-batch-flow.spec.ts --workers=1 --reporter=list。bash|playwrightDONEDONEDONEscripts/qa/run-business-flow-gates.sh|client/tests/e2e/reimbursement-payment-batch-flow.spec.ts|artifacts/qa-flow["P2AUTO-4"]PASS: core isolated business flow auth/reimbursement/approval/leave/procurement/governance passed, report artifacts/qa-flow/business-flow-20260516-203001/summary.txt; payment batch isolated flag-on flow 1 passed, report artifacts/qa-flow/business-flow-20260516-203856/summary.txt; public payment_batch_v1 remains off.
8P2AUTO-6公网自动化门禁在公网只跑 /ready、public bundle、live smoke、PDF live OCR、pending OCR 扫描和 live smoke Playwright,不执行公网付款批次写入。1) /ready 通过;2) public bundle findings=0;3) live smoke 通过;4) PDF live OCR 进入可解释终态;5) pending OCR 缺 DATABASE_URL 时只作非阻断 SKIP。受影响流程:公网健康、登录 smoke、PDF live OCR、企业微信 config、公网资源;验证步骤:set -a && source ~/.hyb-oa/live-smoke.env && set +a;QA_ISSUE_ID=P2AUTO LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/live-smoke.spec.ts --workers=1 --reporter=list。bash|node|playwrightDONEDONEDONEscripts/qa/run-live-smoke-readiness.sh|client/tests/e2e/live-smoke.spec.ts|artifacts/qa-flow["P2AUTO-5"]PASS: live readiness report artifacts/qa-flow/live-smoke-readiness-20260516-204157; /ready ok, public bundle findings=0, live smoke 3 passed, PDF live OCR 1 passed with duplicate-invoice explainable terminal state; pending OCR missing local DATABASE_URL recorded SKIP; no public payment batch writes.
9P2AUTO-7移动与企业微信自动化门禁执行移动矩阵、企业微信 UA、入口/绑定/deeplink 自动化;真机只保留少量真实差异确认,不阻断可自动化收口。1) 移动矩阵通过;2) WeCom UA/入口/绑定自动化通过;3) 企业微信真机差异不被自动化替代;4) 发现移动缺陷进入 UX8;5) 不新增移动业务能力。受影响流程:/mobile、审批、报销、企业微信入口、绑定、deeplink 和移动布局;验证步骤:cd client && 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;cd client && npx playwright test tests/e2e/wecom-entry.spec.ts tests/e2e/wecom-first-bind.spec.ts tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts --workers=1 --reporter=list。playwright|manualDONEDONEDONEclient/tests/e2e|docs/trialrun/人工试运行报告.md["P2AUTO-6"]PASS: public DG7/R124 mobile matrix 6 passed; local auth business-flow covered wecom-entry/wecom-first-bind; R6 WeCom rendering matrix 8 passed after subpixel test assertion normalization; real-device delta remains manual-only when user requests.
10P2AUTO-8OCR provider 样票自动化缺口新增并运行 provider-only 样票 QA 脚本;PDF 样票可回归,图片 OCR 默认冻结,未显式进入图片评估时不得把缺图片样票写成主线 HOLD。1) scripts/qa/check-ocr-provider-samples.mjs 存在且 node --check 通过;2) 默认无图片评估时输出 FREEZE_BY_DEFAULT;3) 有显式样票时输出脱敏 JSON 摘要;4) 不输出票面、税号、手机号、二维码、完整号码或真实路径;5) 不开放图片 OCR。受影响流程:PDF provider 样票 -> Tencent OCR 可用性摘要;默认图片 OCR -> FREEZE_BY_DEFAULT;显式图片评估 -> 字段命中摘要 -> GO/HOLD 决策;验证步骤:node --check scripts/qa/check-ocr-provider-samples.mjs;node scripts/qa/check-ocr-provider-samples.mjs --provider=tencent --json;OCR_IMAGE_OCR_EVALUATION=1 node scripts/qa/check-ocr-provider-samples.mjs --provider=tencent --json。node|manualDONEDONEDONEscripts/qa/check-ocr-provider-samples.mjs|external["P2AUTO-1"]P2AF correction: default provider-only run with current safe env should report decision=FREEZE_BY_DEFAULT when image evaluation is not explicit. Do not auto-select arbitrary image candidates; image OCR remains closed.
11P2AUTO-9收口回填与中文提交汇总 P2AUTO 自动化证据,回填 CSV、人工试运行报告、索引和事实源矩阵,完成最终校验和中文 commit。1) 已执行项按真实 Test_Method 回填;2) 未执行外部项记录 SKIP 或后续条件;3) validate、audit-docs、rg、git diff --check 通过;4) 中文 commit 引用 P2AUTO;5) 明确未部署。流程级验证:validate_issues_csv.py 本 CSV;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'P2AUTO|PDF live OCR|图片样票|payment_batch_v1|SKIP|live smoke|企业微信' docs issues scripts;git diff --check;git status --short。python3|node|rg|git|manualDONEDONEDONEissues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md["P2AUTO-2","P2AUTO-3","P2AUTO-4","P2AUTO-5","P2AUTO-6","P2AUTO-7","P2AUTO-8"]Closeout=PASS; validate_issues_csv passed; audit-docs errors=0 warnings=1 existing unregistered docs files=24; rg keyword sweep explainable; git diff --check passed; not deployed; no business API/schema/UI/runtime change.