P2FLD 收口付款批次公网启用窗口决策

这个提交包含在:
2026-05-16 22:53:59 +08:00
父节点 ed608034f6
当前提交 08853c7f03
共修改 4 个文件,包含 17 行新增和 3 行删除
@@ -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."
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 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.
3 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.
4 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.
5 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.
6 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.
7 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.
8 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.