diff --git a/docs/trialrun/人工试运行报告.md b/docs/trialrun/人工试运行报告.md index 29e718fb..3ea683da 100644 --- a/docs/trialrun/人工试运行报告.md +++ b/docs/trialrun/人工试运行报告.md @@ -24,6 +24,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 - 2026-05-16 P2Q 已完成 P2OCRS 后续任务队列规划;P2AF 后图片 OCR 不再作为默认主线等待样票,后续默认按 UX8 真实反馈池、P2-FIN-LIVE 公网启用窗口、P2-WF、P2-BIZ 和持续上线门禁拆独立合同推进。 - 2026-05-16 P2AUTO 已完成自动化优先回归:后端 focused、前端 typecheck/build、高风险确认、隔离核心业务流、隔离付款批次闭环、公网 readiness/PDF live OCR、公网移动矩阵和企业微信 UA/渲染自动化均通过;PDF 样票和 live smoke 凭据可用,P2AF 后 provider-only 默认结论为 `FREEZE_BY_DEFAULT`,不开放图片 OCR,不启用公网 `payment_batch_v1`,未部署。 - 2026-05-16 P2AF 已完成可自动实施收口:图片 OCR 默认 `FREEZE_BY_DEFAULT`,PDF-only OCR 继续维护;新增 QA-only 回归聚合和付款批次公网关闭态只读门禁,公网 `payment_batch_v1` 继续 `flag_force_off`,本轮不做业务实现、不部署。 +- 2026-05-16 P2-FIN-LIVE-DECISION 已完成公网付款批次启用窗口决策:live smoke/PDF OCR readiness 通过,付款批次公网关闭态只读门禁通过;由于尚未明确公网启用窗口、财务/复核参与人、flag 启停人、回滚联系人、暂停/继续决策人和测试报销单来源,结论为 `HOLD_FOR_WINDOW`,公网 `payment_batch_v1` 继续关闭。 ## 关键证据索引 @@ -55,6 +56,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 | P2Q | 已收口:P2OCRS 后续队列和启动门槛完成;图片 OCR 默认冻结,所有实现或公网启用均需另建独立合同 | `issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv` | | P2AUTO | 已收口:自动化优先回归和样票 provider 门禁完成;核心隔离业务流通过、付款批次隔离闭环 1 passed、公网 readiness/PDF live OCR 通过、公网移动矩阵 6 passed、企业微信渲染矩阵 8 passed;provider 默认结论改为 `FREEZE_BY_DEFAULT` | `issues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv`、`artifacts/qa-flow/business-flow-20260516-203001/summary.txt`、`artifacts/qa-flow/business-flow-20260516-203856/summary.txt`、`artifacts/qa-flow/live-smoke-readiness-20260516-204157/` | | P2AF | 已收口:可自动实施收口完成;安全回归聚合 PASS,付款批次公网关闭态只读门禁 PASS,UX8 自动矩阵通过且 UX8-1..5 保持真实反馈驱动 | `issues/2026-05-16_22-11-10-p2-automatable-followup.csv`、`artifacts/qa-flow/p2-safe-regression-20260516-222222/summary.json` | +| P2-FIN-LIVE-DECISION | 已收口:公网付款批次启用窗口决策完成,结论 `HOLD_FOR_WINDOW`;readiness 和 flag-off 证据通过,等待明确窗口、参与人、回滚联系人和测试报销单来源 | `issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv` | ## 当前门禁 @@ -76,6 +78,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 | P2Q 后续队列 | 已收口,未部署 | 图片 OCR 不再作为默认主线等待样票;UX8 等待真实反馈;P2-FIN-LIVE 等待公网启用窗口批准;后续 P2-WF/P2-BIZ 均需独立合同 | | P2AUTO 自动化优先回归 | 通过,未部署 | 后端 focused 43 tests passed;`client` typecheck/build 通过;核心隔离业务流 auth/reimbursement/approval/leave/procurement/governance PASS;付款批次隔离 flag-on 1 passed;公网 `/ready`、public bundle、live smoke 3 passed、PDF live OCR 1 passed;公网移动矩阵 6 passed;企业微信渲染矩阵 8 passed;P2AF 后 provider-only 默认结论为 `FREEZE_BY_DEFAULT` | | P2AF 可自动实施收口 | 通过,未部署 | `run-p2-safe-regression.sh` PASS:后端 focused 43 tests passed,`client` typecheck/build 通过,核心隔离业务流 auth/reimbursement/approval/leave/procurement/governance PASS,公网 readiness/PDF live OCR 通过,付款批次公网关闭态 409 `payment_batch_v1_disabled / flag_force_off`,公网移动矩阵 6 passed,企业微信渲染矩阵 8 passed,OCR provider-only 默认 `FREEZE_BY_DEFAULT`;不启用公网 `payment_batch_v1`,不开放图片 OCR,不做业务实现 | +| P2-FIN-LIVE-DECISION | HOLD,未部署 | `check-live-smoke-env --strict` 通过,`check-payment-batch-flag-off --json` 通过,财务/员工/admin 对付款批次公网只读访问均为 409 `payment_batch_v1_disabled / flag_force_off`;未提供启用窗口、财务/复核参与人、flag 启停人、回滚联系人、暂停/继续决策人和测试报销单来源,因此不启动 P2-FIN-LIVE | ## R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进 diff --git a/docs/文档事实源状态矩阵.md b/docs/文档事实源状态矩阵.md index 7d93735b..5f207e8d 100644 --- a/docs/文档事实源状态矩阵.md +++ b/docs/文档事实源状态矩阵.md @@ -45,6 +45,7 @@ | `P2Q` | `issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv` | `EVIDENCE` | P2OCRS 后续任务队列已锁定;图片 OCR 默认冻结,后续实现均需另建独立合同,当前不部署、不改业务代码 | | `P2AUTO` | `issues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv` | `EVIDENCE` | 自动化优先回归已收口;后端/前端/隔离业务流/公网 readiness/PDF live OCR/移动与企业微信自动化均有证据,provider-only 默认决策为 `FREEZE_BY_DEFAULT` | | `P2AF` | `issues/2026-05-16_22-11-10-p2-automatable-followup.csv` | `EVIDENCE` | 可自动实施收口已完成;纠正图片 OCR 默认冻结口径,补 QA-only 安全回归、付款批次公网关闭态只读门禁和 UX8 自动矩阵扫尾;报告 `artifacts/qa-flow/p2-safe-regression-20260516-222222/` | +| `P2-FIN-LIVE-DECISION` | `issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv` | `EVIDENCE` | 公网付款批次启用窗口决策已收口;readiness 和 flag-off 只读门禁通过,但缺启用窗口/参与人/回滚联系人/测试数据前置,结论 `HOLD_FOR_WINDOW` | 旧 Issue CSV 保留为历史审计证据:不删除、不批量回写、不移动到 `docs/archive/` 或其他归档目录。新连续合同如替代旧合同,只在新合同 `Notes` 或文档索引中说明 supersedes。 @@ -52,8 +53,8 @@ | Doc_ID | Path | Category | Authority | Status | Owner | Related_Issues | Evidence | Supersedes | Last_Audited | Audit_Method | Risk | Notes | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| `IDX` | `docs/文档索引.md` | 入口索引 | 最高文档入口 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF` | `rg` | none | 2026-05-16 | `node scripts/qa/audit-docs.mjs --check-registry` | medium | 判断当前该读什么 | -| `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF` | `audit-docs` | none | 2026-05-16 | `audit-docs --check-registry` | medium | 判断文档权威性 | +| `IDX` | `docs/文档索引.md` | 入口索引 | 最高文档入口 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION` | `rg` | none | 2026-05-16 | `node scripts/qa/audit-docs.mjs --check-registry` | medium | 判断当前该读什么 | +| `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION` | `audit-docs` | none | 2026-05-16 | `audit-docs --check-registry` | medium | 判断文档权威性 | | `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8` | Issue CSV | `docs/requirements-specification.md` | 2026-05-13 | `rg` | high | 定义做什么、不做什么和验收口径 | | `PRODUCT-SCOPE` | `docs/产品口径.md` | 需求事实源 | 产品边界事实源 | `CURRENT` | product | `REQ8,P2T` | `rg` | none | 2026-05-13 | `rg` | high | 记录已拍板产品边界 | | `DESIGN-UI` | `docs/产品设计规则.md` | 设计事实源 | PC/移动/企业微信设计事实源 | `CURRENT` | design/frontend | `MIA7,MIF7,GOV8,DG8,DG9` | Playwright/视觉审查/DG8/DG9 | none | 2026-05-13 | `rg` | high | 页面改动必须读取;DG8 后飞书为主 UI/布局参考;DG9 后按页面分层和样板选型 | diff --git a/docs/文档索引.md b/docs/文档索引.md index dec17695..1aa39575 100644 --- a/docs/文档索引.md +++ b/docs/文档索引.md @@ -20,7 +20,7 @@ ## 最近事实源链 -R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8 -> DG9 -> R7E -> FBA -> QAOPS9/P2D -> P2-ORG -> P2-FIN-DECISION -> P2-FIN-V1 -> P2-OCR-SAMPLE -> P2Q -> P2AUTO -> P2AF。 +R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8 -> DG9 -> R7E -> FBA -> QAOPS9/P2D -> P2-ORG -> P2-FIN-DECISION -> P2-FIN-V1 -> P2-OCR-SAMPLE -> P2Q -> P2AUTO -> P2AF -> P2-FIN-LIVE-DECISION。 - R6、PC6、PA6、FL6、AP6、RI6、LP6 已完成并部署。 - ME6 自动化、公网视觉矩阵和 `ME6-3` 代表性企业微信真机门禁已完成。 @@ -39,6 +39,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M - P2Q 是 P2OCRS 后续任务队列合同:只锁定 `UX8`、`P2-FIN-LIVE`、审批通知、轻业务增强和持续上线门禁等启动条件;图片 OCR 不进入默认主线,只有用户明确重启评估才另建 provider 回归或实现合同。 - P2AUTO 是 P2Q 后自动化优先回归合同:后端 focused、前端构建、高风险确认、隔离核心业务流、隔离付款批次闭环、公网 readiness/PDF live OCR、公网移动矩阵和企业微信 UA/渲染自动化均已完成;PDF 样票和 live smoke 凭据可用,图片 OCR 默认冻结。 - P2AF 是 P2AUTO 后可自动实施收口合同:纠正图片 OCR 默认冻结口径,补 QA-only provider 决策语义、安全回归聚合、付款批次公网关闭态只读门禁和 UX8 自动矩阵扫尾;不部署、不启用公网付款批次、不开放图片 OCR。 +- P2-FIN-LIVE-DECISION 是 P2AF 后付款批次公网启用窗口决策合同:公网 readiness 和 flag-off 只读门禁通过,但缺明确启用窗口、财务/复核参与人、flag 启停人、回滚联系人、暂停/继续决策人和测试报销单来源,结论为 `HOLD_FOR_WINDOW`;公网 `payment_batch_v1` 继续关闭。 ## 当前活跃治理流 @@ -64,6 +65,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M | `P2Q` | `issues/2026-05-16_10-35-22-p2-post-p2ocrs-followup-queue.csv` | 已收口:P2OCRS 后续队列和启动门槛完成;图片 OCR 默认冻结 | UX8、付款批次公网启用、审批通知、轻业务增强和持续上线门禁的后续合同顺序;图片 OCR 仅在用户明确重启评估时另建合同 | 不直接启动 HOLD 项、不新建综合规划文档、不改业务代码、不部署 | | `P2AUTO` | `issues/2026-05-16_20-09-49-p2-automated-regression-sweep.csv` | 已收口:自动化优先回归和样票 provider 门禁完成;P2AF 后 provider 默认结论为 `FREEZE_BY_DEFAULT` | 凭据/样票掩码核对、后端 focused、前端构建、高风险确认、隔离业务流、隔离付款批次、公网 readiness/PDF live OCR、移动/企业微信自动化、OCR provider-only 脚本 | 不部署、不开放图片 OCR、不打开公网 `payment_batch_v1`、不自动选择未登记图片样票 | | `P2AF` | `issues/2026-05-16_22-11-10-p2-automatable-followup.csv` | 已收口:可自动实施收口完成 | 图片 OCR 默认冻结纠偏、QA 脚本语义、安全回归聚合、付款批次公网关闭态只读门禁、UX8 自动矩阵扫尾;报告 `artifacts/qa-flow/p2-safe-regression-20260516-222222/` | 不部署、不开放图片 OCR、不启用公网 `payment_batch_v1`、不做业务实现 | +| `P2-FIN-LIVE-DECISION` | `issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv` | 已收口:公网启用窗口决策完成,结论 `HOLD_FOR_WINDOW` | 公网 readiness、付款批次 flag-off 只读门禁、窗口/参与人/回滚联系人/测试数据前置、后续 P2-FIN-LIVE 启动条件 | 不打开公网 `payment_batch_v1`、不写付款批次、不部署、不接真实支付、不写 ERP 实时凭证 | 旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。 diff --git a/issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv b/issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv new file mode 100644 index 00000000..0455972b --- /dev/null +++ b/issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv @@ -0,0 +1,8 @@ +"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes" +"P2FLD-0","P2-FIN-LIVE-DECISION 合同建档","建立付款批次公网启用窗口决策合同,只做公网启用条件、参与人、flag 启停、回滚联系人、测试数据来源和验收口径确认;不直接打开 payment_batch_v1。","1) 本 CSV 校验通过;2) 不新增业务 API/schema/UI/feature flag;3) 不部署、不执行生产恢复、不重置数据库、不打印 secret 或远端 env;4) 公网 payment_batch_v1 继续关闭;5) 输出 GO_TO_LIVE_WINDOW、HOLD_FOR_WINDOW 或 FREEZE。","受影响流程:P2-FIN-V1 已完成启用前硬化 -> 公网付款批次启用窗口决策 -> 后续是否创建 P2-FIN-LIVE;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv;人工核对本轮不改运行时代码、不启用 flag。","python3|manual","DONE","DONE","DONE","issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv","[]","Scope=decision-only; baseline=ed60803; no runtime change; no deployment; public payment_batch_v1 remains off." +"P2FLD-1","公网 readiness 和凭据只读复核","只读复核公网 /ready、企业微信配置、live smoke 凭据和 PDF live OCR readiness;确认 live smoke/PDF OCR 凭据不作为 HOLD 原因。","1) publicReady=true;2) liveSmokeReady=true;3) liveOcrReady=true;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。","bash|node","DONE","DONE","DONE","scripts/qa/check-live-smoke-env.mjs|external","[""P2FLD-0""]","PASS: publicReady=true status=200; wecom=ready entry=true oauth=true; liveSmokeReady=true; liveOcrReady=true; no secret/sample path printed." +"P2FLD-2","公网付款批次关闭态只读复核","只读确认公网 payment_batch_v1 仍关闭,财务、员工和 admin 访问付款批次或 AP 运营入口均不返回业务数据。","1) 财务 GET /api/payment-batches 返回 409 payment_batch_v1_disabled;2) 财务 GET /api/ap-operations 返回 409 payment_batch_v1_disabled;3) 员工/admin GET /api/payment-batches 不返回 200;4) 不执行 POST/PATCH/DELETE;5) 输出脱敏 JSON 摘要。","受影响流程:公网财务付款批次入口、AP 运营入口、普通员工/admin-only 直连边界;验证步骤: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。","bash|node","DONE","DONE","DONE","scripts/qa/check-payment-batch-flag-off.mjs|external","[""P2FLD-0""]","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; readOnly=true; no write action." +"P2FLD-3","公网启用窗口和参与人前置确认","确认启动 P2-FIN-LIVE 前必须具备的窗口与人:公网验收时间窗、财务创建人、复核人、flag 启停人、回滚联系人和暂停/继续决策人。","1) 缺任一关键人或窗口时不得 GO_TO_LIVE_WINDOW;2) admin-only 不作为业务付款或复核角色;3) 财务/admin 混授需人工确认;4) 验收窗口需能覆盖 flag on 正向和 flag off 回滚;5) 不以自动化 readiness 替代人工窗口批准。","受影响流程:公网付款批次启用窗口审批、财务创建、复核、执行和回滚;验证步骤:人工核对本计划、P2-FIN-DECISION、P2-FIN-V1、人工试运行报告和当前用户输入,确认是否已提供窗口和参与人。","manual|rg","DONE","DONE","DONE","issues/2026-05-16_09-02-42-p2-fin-payment-batch-decision.csv|issues/2026-05-16_09-42-43-p2-fin-payment-batch-v1.csv|docs/trialrun/人工试运行报告.md","[""P2FLD-1"",""P2FLD-2""]","PrereqStatus=HOLD: current prompt approves decision planning but does not provide explicit live window, finance participant, reviewer, flag operator, rollback contact or pause/go decision owner; therefore no public enable in this round." +"P2FLD-4","测试数据、审计和导出口径确认","锁定后续 P2-FIN-LIVE 必须使用可回滚的测试报销单来源,并验收 PAYMENT_BATCH_*、EXPORT_AP_OPERATIONS、AP 导出和 flag off 回滚。","1) 测试报销单来源必须在 P2-FIN-LIVE CSV 中写明;2) 不使用真实支付;3) 不写 ERP 实时凭证;4) 审计覆盖 PAYMENT_BATCH_* 与 EXPORT_AP_OPERATIONS;5) 导出只按财务权限验收,不泄露无权限数据。","受影响流程:审批通过报销 -> 公网付款批次创建/复核/执行标记 -> AP 导出 -> 审计追溯 -> flag off 回滚;验证步骤:rg -n 'payment_batch_v1|付款批次|flag_force_off|PAYMENT_BATCH|EXPORT_AP_OPERATIONS' docs issues scripts server client。","rg|manual","DONE","DONE","DONE","server/src/routes/paymentBatches.js|server/src/routes/exports.js|docs/trialrun/人工试运行报告.md|issues","[""P2FLD-2""]","Evidence=rg keyword sweep confirms PAYMENT_BATCH_CREATED/REVIEWED/SECOND_REVIEWED/EXECUTED and EXPORT_AP_OPERATIONS audit paths plus flag_force_off/payment_batch_v1_disabled checks; P2-FIN-LIVE must name exact test reimbursement source before enable." +"P2FLD-5","公网启用决策结论","基于 readiness、关闭态只读复核、窗口参与人和测试数据前置输出 P2-FIN-LIVE 是否可启动。","1) 结论为 GO_TO_LIVE_WINDOW、HOLD_FOR_WINDOW 或 FREEZE;2) 若 GO,后续必须另建 P2-FIN-LIVE CSV 并单独批准;3) 若 HOLD,列出缺口;4) 若 FREEZE,列出冻结原因;5) 结论不改变公网 flag 状态。","受影响流程:后续 P2-FIN-LIVE 派工;验证步骤:人工核对 P2FLD-1..4 证据,确认未启用 payment_batch_v1、未部署、未执行付款批次写入。","manual","DONE","DONE","DONE","issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv","[""P2FLD-3"",""P2FLD-4""]","Decision=HOLD_FOR_WINDOW; Rationale=technical readiness and flag-off evidence pass, but live window, finance participant, reviewer, flag operator, rollback contact, pause/go owner and exact test reimbursement source are not explicitly approved in this contract; NextContract=P2-FIN-LIVE only after those are provided; public payment_batch_v1 remains flag_force_off." +"P2FLD-6","收口回填与提交","回填 P2-FIN-LIVE-DECISION、文档索引、事实源矩阵和人工试运行报告,运行最终门禁并提交中文 commit。","1) CSV 状态真实回填;2) docs/文档索引.md、docs/文档事实源状态矩阵.md、docs/trialrun/人工试运行报告.md 必要状态已更新;3) validate、audit-docs、rg、git diff --check 通过;4) 中文 commit 引用 P2FLD;5) 明确未部署。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'P2FLD|P2-FIN-LIVE-DECISION|GO_TO_LIVE_WINDOW|HOLD_FOR_WINDOW|payment_batch_v1|flag_force_off' docs issues scripts;git diff --check;git status --short。","python3|node|rg|git","DONE","DONE","DONE","issues/2026-05-16_22-49-05-p2-fin-payment-batch-live-decision.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md","[""P2FLD-5""]","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; public payment_batch_v1 remains flag_force_off."