P2AUTO 收口自动化回归和样票门禁
这个提交包含在:
@@ -0,0 +1,11 @@
|
||||
"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes"
|
||||
"P2AUTO-0","P2 自动化回归合同建档","建立 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|manual","DONE","DONE","DONE","issues/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."
|
||||
"P2AUTO-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|manual","DONE","DONE","DONE","scripts/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."
|
||||
"P2AUTO-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|rg","DONE","DONE","DONE","issues/*.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."
|
||||
"P2AUTO-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|node","DONE","DONE","DONE","server/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."
|
||||
"P2AUTO-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|playwright","DONE","DONE","DONE","client/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."
|
||||
"P2AUTO-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|playwright","DONE","DONE","DONE","scripts/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."
|
||||
"P2AUTO-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|playwright","DONE","DONE","DONE","scripts/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."
|
||||
"P2AUTO-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|manual","DONE","DONE","DONE","client/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."
|
||||
"P2AUTO-8","OCR provider 样票自动化缺口","新增并运行 provider-only 样票 QA 脚本;PDF 样票可回归,图片样票未在 manifest 或环境变量登记时记录 SKIP,不得写 PASS。","1) scripts/qa/check-ocr-provider-samples.mjs 存在且 node --check 通过;2) 无样票时输出 SKIP;3) 有样票时输出脱敏 JSON 摘要;4) 不输出票面、税号、手机号、二维码、完整号码或真实路径;5) 不开放图片 OCR。","受影响流程:PDF/image provider 样票 -> Tencent OCR -> 字段命中摘要 -> GO/HOLD/FREEZE 决策;验证步骤:node --check scripts/qa/check-ocr-provider-samples.mjs;OCR_PROVIDER_SAMPLE_MANIFEST=/safe/ocr-samples.json node scripts/qa/check-ocr-provider-samples.mjs --provider=tencent --json;无授权图片样票或 manifest 时写 SKIP。","node|manual","DONE","DONE","DONE","scripts/qa/check-ocr-provider-samples.mjs|external","[""P2AUTO-1""]","QA script added and node --check passed. Provider-only run with current safe env found PDF sample only and no image manifest/env; local Tencent provider credentials not present, so output status=SKIP decision=HOLD_FOR_SAMPLE. Do not auto-select arbitrary image candidates; image OCR remains closed."
|
||||
"P2AUTO-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|manual","DONE","DONE","DONE","issues/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."
|
||||
|
在新工单中引用
屏蔽一个用户