8.0 KiB
8.0 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P2AF-0 | P2AF 自动实施合同建档 | 建立 R7E 后可自动实施工作合同,只做口径纠偏、QA 脚本、自动化门禁和既有证据回填,不启动业务功能开发。 | 1) 本 CSV 校验通过;2) 范围限定 issues/docs/scripts/qa 和必要测试维护;3) 不新增业务 API/schema/UI/feature flag;4) 不部署、不执行生产恢复、不重置数据库、不打印 secret;5) 公网 payment_batch_v1 继续关闭,图片 OCR 默认冻结。 | 受影响流程:后续 P2 派工、OCR PDF-only 口径、付款批次公网关闭态、自动化回归;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_22-11-10-p2-automatable-followup.csv;人工核对不改业务运行时能力。 | python3|manual | DONE | DONE | DONE | issues/2026-05-16_22-11-10-p2-automatable-followup.csv | [] | CSV validated; Scope=automatable-followup; baseline=edabce8; no deployment; no runtime capability change. |
| 3 | P2AF-1 | OCR 口径纠偏 | 把图片发票 OCR 从主线等待样票纠正为 FREEZE_BY_DEFAULT;当前正式能力只维护 PDF-only OCR,图片仅普通附件,未来只有用户明确重启评估才另建合同。 | 1) P2Q/P2AUTO Notes 不再表达为主线等待图片样票;2) docs/文档索引.md、docs/文档事实源状态矩阵.md、docs/trialrun/人工试运行报告.md 记录 FREEZE_BY_DEFAULT;3) PDF live OCR 样票继续记录为可用;4) 不改 OCR 业务入口;5) 不新建综合规划文档。 | 受影响流程:PDF 发票上传 -> OCR -> 查重/重复票据可解释终态;图片附件 -> 普通附件材料;验证步骤:rg -n 'FREEZE_BY_DEFAULT|HOLD_FOR_SAMPLE|PDF-only|图片 OCR|普通附件|P2AUTO|P2Q' docs issues scripts;node scripts/qa/audit-docs.mjs --check-registry。 | rg|node|manual | DONE | DONE | DONE | issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv|issues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md | ["P2AF-0"] | DefaultDecision=FREEZE_BY_DEFAULT; P2Q/P2AUTO and existing docs corrected; audit-docs errors=0 warnings=1 existing unregistered docs. |
| 4 | P2AF-2 | OCR provider QA 脚本默认冻结语义 | 调整 scripts/qa/check-ocr-provider-samples.mjs:默认无显式图片 OCR 评估时输出 FREEZE_BY_DEFAULT;只有 OCR_IMAGE_OCR_EVALUATION=1 或显式参数开启时,图片样票缺失才输出 HOLD_FOR_SAMPLE。 | 1) 默认运行不把缺图片样票视为主线阻断;2) 显式图片评估模式仍支持 manifest/env 图片样票;3) 输出不包含真实路径、税号、手机号、二维码、完整号码或票面内容;4) node --check 通过;5) 不调用图片 OCR,除非显式评估且样票和凭据具备。 | 受影响流程:provider-only 样票脚本 -> PDF 基线摘要 -> 默认冻结/显式图片评估决策;验证步骤:node --check scripts/qa/check-ocr-provider-samples.mjs;set -a && source ~/.hyb-oa/live-smoke.env && set +a && 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|bash | DONE | DONE | DONE | scripts/qa/check-ocr-provider-samples.mjs | ["P2AF-1"] | node --check passed; default output decision=FREEZE_BY_DEFAULT imageEvaluation=false with PDF sample alias; explicit OCR_IMAGE_OCR_EVALUATION=1 returns HOLD_FOR_SAMPLE without image sample; no business runtime impact. |
| 5 | P2AF-3 | 自动回归聚合脚本 | 新增 scripts/qa/run-p2-safe-regression.sh,串联后端 focused、前端构建、隔离核心业务流、公网 readiness、移动矩阵、企业微信 UA/渲染和 OCR 默认冻结检查,并生成 artifacts/qa-flow/p2-safe-regression-* 摘要。 | 1) 脚本默认不部署、不启用公网 payment_batch_v1、不开放图片 OCR;2) 支持 P2_SAFE_SKIP_LIVE=1 和 P2_SAFE_SKIP_BUILD=1;3) 失败时返回非 0 并保留摘要;4) 报告路径可追溯;5) 不打印 secret。 | 受影响流程:全端自动化门禁聚合;验证步骤:bash scripts/qa/run-p2-safe-regression.sh;必要时 P2_SAFE_SKIP_LIVE=1 bash scripts/qa/run-p2-safe-regression.sh 验证本地聚合;检查 artifacts/qa-flow/p2-safe-regression-*/summary.txt。 | bash|npm|node|playwright | DONE | DONE | DONE | scripts/qa/run-p2-safe-regression.sh|artifacts/qa-flow | ["P2AF-2"] | bash scripts/qa/run-p2-safe-regression.sh PASS; report=artifacts/qa-flow/p2-safe-regression-20260516-222222; backend focused 43 tests passed; frontend typecheck/build passed; core isolated business flow PASS; live readiness PASS; OCR default FREEZE_BY_DEFAULT. |
| 6 | P2AF-4 | 付款批次公网关闭态只读门禁 | 新增或复用 QA 脚本验证公网 payment_batch_v1 继续关闭:只允许登录和 GET/只读探测,不创建、复核、执行付款批次。 | 1) 公网只读检查能证明付款批次关闭态可解释;2) 不执行 POST/PATCH/DELETE 付款批次动作;3) 财务账号只读访问不泄露敏感数据;4) 普通员工/admin-only 不越权;5) 输出脱敏摘要。 | 受影响流程:公网财务入口/AP/payment-batches 关闭态;验证步骤:set -a && source ~/.hyb-oa/live-smoke.env && set +a;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-payment-batch-flag-off.mjs --json;确认输出只含状态、角色、HTTP 状态和错误码摘要。 | node|manual | DONE | DONE | DONE | scripts/qa/check-payment-batch-flag-off.mjs|external | ["P2AF-0"] | ReadOnly=true; PASS: finance /api/payment-batches and /api/ap-operations plus employee/admin /api/payment-batches all returned 409 payment_batch_v1_disabled reason=flag_force_off; no POST/PATCH/DELETE. |
| 7 | P2AF-5 | UX8 自动矩阵扫尾 | 运行移动/企业微信自动化矩阵,记录 UX8 当前无新真实反馈时保持 TODO;若自动化发现确定性问题,只修复测试前置或明确前端体验缺陷。 | 1) DG7/R124 公网移动矩阵通过或失败可归因;2) R6 WeCom 渲染矩阵通过或失败可归因;3) UX8-1..5 无新反馈时不强行改 UI;4) 移动采购创建不并入本轮;5) 结果写入 Notes。 | 受影响流程:移动首页、移动审批/报销/通知、企业微信 UA、UX8 反馈池;验证步骤: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/r6-wecom-mobile-rendering-hardening.spec.ts --workers=1 --reporter=list;人工核对 UX8 CSV 不误置 DONE。 | playwright|manual | DONE | DONE | DONE | client/tests/e2e|issues/2026-05-13_13-17-38-ux8-trialrun-feedback-polish.csv | ["P2AF-3"] | Public mobile matrix DG7/R124 6 passed; WeCom rendering matrix 8 passed across 320/360/375/390/393/414/430 plus font failure case; UX8-1..5 remain TODO pending real feedback. |
| 8 | P2AF-6 | P2AF 收口回填与提交 | 回填 P2AF、既有文档和历史连续合同 Notes,运行最终门禁并提交中文 commit。 | 1) P2AF 状态真实回填;2) validate、audit-docs、rg、git diff --check 通过;3) 中文 commit 引用 P2AF;4) 明确未部署;5) 无未解释工作区变更。 | 流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_22-11-10-p2-automatable-followup.csv;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'P2AF|FREEZE_BY_DEFAULT|HOLD_FOR_SAMPLE|PDF-only|图片 OCR|payment_batch_v1|P2AUTO|UX8' docs issues scripts;git diff --check;git status --short。 | python3|node|rg|git | DONE | DONE | DONE | issues/2026-05-16_22-11-10-p2-automatable-followup.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md | ["P2AF-1","P2AF-2","P2AF-3","P2AF-4","P2AF-5"] | Closeout=PASS; validate_issues_csv passed; audit-docs errors=0 warnings=1 existing unregistered docs files=24; keyword sweep explainable; git diff --check passed before final commit; not deployed. |