P2AF 收口自动化后续和默认冻结口径
这个提交包含在:
@@ -1,9 +1,9 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
"P2Q-0","P2OCRS 后续队列建档","建立 P2OCRS 后全量后续任务队列合同,只锁定启动顺序、前置条件、后续合同 slug 和冻结边界,不执行任何业务功能开发。","1) CSV 校验通过;2) 当前事实链以 P2-OCR-SAMPLE=HOLD_FOR_SAMPLE 为基线;3) 不新增业务 API/schema/UI/feature flag;4) 不部署、不执行生产恢复、不重置数据库、不打印 secret 或远端 env;5) 后续实现均必须另建独立 Issue CSV。","受影响流程:P2 后续派工、图片 OCR、UX8、付款批次公网启用、审批通知、轻业务增强和上线门禁;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv;人工核对本 CSV 不含业务代码、API/schema、部署或生产操作。","python3|manual","DONE","DONE","DONE","issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv","[]","QueueScope=DONE; no runtime effect; rollback=delete this CSV and doc status updates before commit."
|
||||
"P2Q-1","图片 OCR provider 回归启动门槛","锁定 P2-OCR-IMAGE-REGRESSION 的启动条件:只有出现授权图片样票、安全别名和脱敏规则确认后,才新建 provider 回归合同。","1) 未提供授权图片样票时不启动真实图片 provider 回归;2) 仓库只记录 SAMPLE-IMG-* 别名、格式、大小、状态、字段命中摘要和失败原因;3) 不开放图片 OCR;4) 不提交真实票据或敏感字段;5) 结论枚举为 GO_TO_IMPLEMENT、HOLD_FOR_SAMPLE、FREEZE。","受影响流程:图片样票授权 -> 脱敏确认 -> 真实 provider 回归 -> P2-OCR-V1 是否启动;验证步骤:人工核对 P2-OCR-SAMPLE Notes、docs/报销发票附件规则.md 和 docs/需求-报销发票OCR规约.md;rg -n 'P2OCRS|HOLD_FOR_SAMPLE|SAMPLE-IMG|图片 OCR|image_native' docs issues server/src client/tests scripts。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_10-15-21-p2-ocr-image-sample-governance.csv|docs/报销发票附件规则.md|docs/需求-报销发票OCR规约.md","[""P2Q-0""]","NextContract=issues/<timestamp>-p2-ocr-image-provider-regression.csv; CurrentDecision=WAIT_FOR_AUTHORIZED_IMAGE_SAMPLE; no provider call until sample evidence exists."
|
||||
"P2Q-0","P2OCRS 后续队列建档","建立 P2OCRS 后全量后续任务队列合同,只锁定启动顺序、前置条件、后续合同 slug 和冻结边界,不执行任何业务功能开发。","1) CSV 校验通过;2) P2AF 后当前事实链以图片 OCR=FREEZE_BY_DEFAULT 为基线;3) 不新增业务 API/schema/UI/feature flag;4) 不部署、不执行生产恢复、不重置数据库、不打印 secret 或远端 env;5) 后续实现均必须另建独立 Issue CSV。","受影响流程:P2 后续派工、图片 OCR、UX8、付款批次公网启用、审批通知、轻业务增强和上线门禁;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv;人工核对本 CSV 不含业务代码、API/schema、部署或生产操作。","python3|manual","DONE","DONE","DONE","issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv","[]","QueueScope=DONE; no runtime effect; P2AF correction=current image OCR default is FREEZE_BY_DEFAULT, not a mainline sample wait."
|
||||
"P2Q-1","图片 OCR provider 回归启动门槛","锁定 P2-OCR-IMAGE-REGRESSION 的启动条件:图片 OCR 默认冻结;只有用户明确重启图片 OCR 评估并提供授权图片样票、安全别名和脱敏规则确认后,才新建 provider 回归合同。","1) 默认不启动真实图片 provider 回归;2) 仓库只记录 SAMPLE-IMG-* 别名、格式、大小、状态、字段命中摘要和失败原因;3) 不开放图片 OCR;4) 不提交真实票据或敏感字段;5) 结论枚举为 GO_TO_IMPLEMENT、HOLD_FOR_SAMPLE、FREEZE_BY_DEFAULT。","受影响流程:用户明确重启图片 OCR 评估 -> 图片样票授权 -> 脱敏确认 -> 真实 provider 回归 -> P2-OCR-V1 是否启动;验证步骤:人工核对 P2-OCR-SAMPLE Notes、docs/报销发票附件规则.md 和 docs/需求-报销发票OCR规约.md;rg -n 'P2OCRS|FREEZE_BY_DEFAULT|SAMPLE-IMG|图片 OCR|image_native' docs issues server/src client/tests scripts。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_10-15-21-p2-ocr-image-sample-governance.csv|docs/报销发票附件规则.md|docs/需求-报销发票OCR规约.md","[""P2Q-0""]","NextContract=issues/<timestamp>-p2-ocr-image-provider-regression.csv; CurrentDecision=FREEZE_BY_DEFAULT_UNLESS_USER_RESTARTS_IMAGE_OCR; no provider call until explicit evaluation approval and sample evidence exist."
|
||||
"P2Q-2","UX8 真实反馈队列","确认无授权图片样票时,默认可执行队列转向 UX8 真实反馈池;继续使用既有 UX8 CSV,不新建同类 CSV。","1) UX8-1..5 只有真实截图、设备、角色、页面、复现步骤或明确频次时才实施;2) 移动采购创建仍作为新能力评估,不并入普通 UX 修复;3) 体验修复不新增后端字段、API、状态机或业务域;4) 无新反馈时只保持 TODO 和观察;5) 需要视觉验证时覆盖 320/360/375/390/393/414/430。","受影响流程:移动首页、详情扫读、财务摘要、移动采购评估、列表卡片反馈;验证步骤:人工核对 issues/2026-05-13_13-17-38-ux8-trialrun-feedback-polish.csv;rg -n 'UX8-1|UX8-2|UX8-3|UX8-4|UX8-5|移动采购创建|真实反馈' docs issues。","manual|rg|playwright","DONE","DONE","DONE","issues/2026-05-13_13-17-38-ux8-trialrun-feedback-polish.csv|docs/产品设计规则.md|docs/trialrun/人工试运行报告.md","[""P2Q-0""]","NextContract=existing UX8 CSV; CurrentDecision=KEEP_FEEDBACK_POOL; no UI change without reproducible feedback."
|
||||
"P2Q-3","P2-FIN-LIVE 公网启用窗口门槛","锁定付款批次公网启用窗口必须独立于 P2-FIN-V1;只有用户批准公网验收窗口、财务/复核参与人、flag 启停和回滚联系人后才启动。","1) P2-FIN-LIVE 必须另建 CSV;2) 不改变 API 契约,只受控启停公网 payment_batch_v1;3) 验收覆盖财务创建、复核、执行、审计、导出和 flag off 回滚;4) 不接真实支付、不写 ERP 实时凭证;5) 不执行生产恢复或数据库重置。","受影响流程:审批通过报销 -> 公网付款批次创建 -> 复核 -> 执行标记 -> AP 导出 -> flag off 回滚;验证步骤:人工核对 P2-FIN-V1 证据和 P2-FIN-DECISION 结论;rg -n 'P2-FIN-V1|P2-FIN-DECISION|payment_batch_v1|PAYMENT_BATCH|EXPORT_AP_OPERATIONS|flag_force_off' docs issues server/src client/tests。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_09-42-43-p2-fin-payment-batch-v1.csv|issues/2026-05-16_09-02-42-p2-fin-payment-batch-decision.csv|docs/trialrun/人工试运行报告.md","[""P2Q-0""]","NextContract=issues/<timestamp>-p2-fin-payment-batch-live-enable.csv; CurrentDecision=WAIT_FOR_LIVE_WINDOW_APPROVAL; public payment_batch_v1 remains off."
|
||||
"P2Q-4","P2-OCR-V1 最小实现门槛","锁定图片 OCR 最小实现只能在 P2-OCR-IMAGE-REGRESSION=GO_TO_IMPLEMENT 后启动,且必须独立声明入口、MIME allowlist、provider、字段、审计、flag 和 PDF-only 兼容。","1) 未满足授权图片样票和真实图片 provider 回归前不得启动;2) 不默认开放拍照 capture、OFD、多票种或 AI 自动处理;3) PDF-only 流程必须不回归;4) 实现合同必须包含权限、审计和回滚;5) 不从本队列自动继承 API/schema/UI 变化。","受影响流程:图片发票上传 -> provider 识别 -> 字段归一化 -> 查重 -> 人工复核 -> flag off 回滚;验证步骤:人工核对 P2Q-1 结论和 P2-OCR-SAMPLE 前置;rg -n 'P2-OCR-V1|图片 OCR|PDF-only|SAMPLE-IMG|feature flag|provider|字段归一化' docs issues。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_10-15-21-p2-ocr-image-sample-governance.csv|docs/需求-报销发票OCR规约.md|docs/报销发票附件规则.md","[""P2Q-1""]","NextContract=issues/<timestamp>-p2-ocr-image-v1.csv; CurrentDecision=BLOCKED_BY_SAMPLE_REGRESSION; no implementation now."
|
||||
"P2Q-4","P2-OCR-V1 最小实现门槛","锁定图片 OCR 最小实现默认冻结;只有用户明确重启评估且 P2-OCR-IMAGE-REGRESSION=GO_TO_IMPLEMENT 后才可启动,并必须独立声明入口、MIME allowlist、provider、字段、审计、flag 和 PDF-only 兼容。","1) 默认不启动图片 OCR 实现;2) 不默认开放拍照 capture、OFD、多票种或 AI 自动处理;3) PDF-only 流程必须不回归;4) 实现合同必须包含权限、审计和回滚;5) 不从本队列自动继承 API/schema/UI 变化。","受影响流程:未来显式重启时的图片发票上传 -> provider 识别 -> 字段归一化 -> 查重 -> 人工复核 -> flag off 回滚;验证步骤:人工核对 P2Q-1 结论和 P2-OCR-SAMPLE 前置;rg -n 'P2-OCR-V1|图片 OCR|PDF-only|SAMPLE-IMG|feature flag|provider|字段归一化|FREEZE_BY_DEFAULT' docs issues。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_10-15-21-p2-ocr-image-sample-governance.csv|docs/需求-报销发票OCR规约.md|docs/报销发票附件规则.md","[""P2Q-1""]","NextContract=issues/<timestamp>-p2-ocr-image-v1.csv; CurrentDecision=FREEZE_BY_DEFAULT; no implementation now."
|
||||
"P2Q-5","P2-WF 审批通知扩展门槛","锁定审批通知扩展先走决策合同;只有明确通知痛点、模板清单、收件范围或转审扩展需求时才进入实现。","1) 企业微信个人应用消息和站内通知继续为正式通道;2) 邮件必须先确认 SMTP、发件域、退信处理、收件范围和脱敏策略;3) 缺邮件配置时只能 SKIP;4) 不进入复杂 BPM、审批设计器或企业微信原生审批;5) 实现项必须另建合同。","受影响流程:审批待办、催办、超时提醒、通知 deeplink、企业微信个人应用消息、可选邮件;验证步骤:人工核对 P2D-5、WF8 证据和审批/企业微信规约;rg -n 'P2-WF|通知模板|偏好|邮件|SMTP|企业微信个人应用消息|复杂 BPM|审批设计器' docs issues。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_00-19-21-p2-decision-followup.csv|issues/2026-05-13_18-23-52-wf8-approval-notification.csv|docs/需求-统一审批中心规约.md|docs/需求-企业微信基础设施规约.md","[""P2Q-0""]","NextContract=issues/<timestamp>-p2-wf-notification-decision.csv; CurrentDecision=HOLD_FOR_REAL_PAIN_OR_CONFIG."
|
||||
"P2Q-6","P2-BIZ 轻业务增强门槛","锁定轻业务增强先走决策合同;供应商准入、费用提示继续优化、项目/采购摘要、合同归档细化、资产盘点体验必须明确频次、owner 和验收样例后才进入实现。","1) P2-BIZ 不牵连付款批次或 OCR;2) 是否影响 API/schema 必须先说明;3) ERP、AI、完整差旅、重预算继续冻结;4) 供应商、费用、项目、合同、资产候选各自有 owner 和验收样例后才能开发;5) 实现项另建合同。","受影响流程:采购、费用提示、项目摘要、合同归档、资产盘点;验证步骤:人工核对 P2D-6、BIZ8、采购/合同/项目规约和 FBA;rg -n 'P2-BIZ|供应商准入|费用提示|项目摘要|采购摘要|合同归档|资产盘点|ERP|AI|完整差旅|重预算' docs issues。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_00-19-21-p2-decision-followup.csv|issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv|docs/需求-采购费用审批规约.md|docs/需求-合同附件归档规约.md|docs/需求-项目轻管理规约.md","[""P2Q-0""]","NextContract=issues/<timestamp>-p2-biz-light-enhancement-decision.csv; CurrentDecision=HOLD_FOR_FREQUENCY_OWNER_ACCEPTANCE."
|
||||
"P2Q-7","持续上线门禁","锁定所有后续实现合同必须自带上线门禁,不默认新建 QAOPS10;涉及公网可测代码变更时再补 /ready、public bundle、live smoke、真实 OCR 或 SKIP、移动矩阵和 Go/No-Go。","1) 非代码决策/样票阶段不部署;2) 实现类合同必须说明是否部署;3) 公网付款批次和图片 OCR 不可混入同一上线窗口;4) 不执行生产恢复、不重置数据库、不打印远端 env;5) 恢复演练必须单独批准窗口。","受影响流程:后续 P2 实现、上线硬化、真实 OCR、公网付款批次和移动矩阵;验证步骤:人工核对 docs/试运行与自动化验证手册.md、docs/trialrun/发布试运行准备清单.md、docs/trialrun/OPS7运维交接Runbook.md;rg -n 'ready|public bundle|live smoke|真实 OCR|Go/No-Go|恢复演练|重置数据库|远端 env' docs scripts issues。","manual|rg","DONE","DONE","DONE","docs/试运行与自动化验证手册.md|docs/trialrun/发布试运行准备清单.md|docs/trialrun/OPS7运维交接Runbook.md|scripts/qa","[""P2Q-0""]","RollingGate=DONE; no QAOPS10 by default; each implementation contract carries gates."
|
||||
|
||||
|
@@ -7,5 +7,5 @@
|
||||
"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-8","OCR 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|manual","DONE","DONE","DONE","scripts/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."
|
||||
"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."
|
||||
|
||||
|
@@ -0,0 +1,8 @@
|
||||
"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes"
|
||||
"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."
|
||||
"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."
|
||||
"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."
|
||||
"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."
|
||||
"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."
|
||||
"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."
|
||||
"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."
|
||||
|
在新工单中引用
屏蔽一个用户