From e975c81fbb33abcb56abff411d07d883187ee5f9 Mon Sep 17 00:00:00 2001 From: shunli Date: Wed, 13 May 2026 19:34:25 +0800 Subject: [PATCH] =?UTF-8?q?WF8-3=20WF8-4=20WF8-5=20=E5=9B=9E=E5=A1=AB?= =?UTF-8?q?=E8=BD=AC=E5=AE=A1=E6=B5=81=E7=A8=8B=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- issues/2026-05-13_18-23-52-wf8-approval-notification.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/issues/2026-05-13_18-23-52-wf8-approval-notification.csv b/issues/2026-05-13_18-23-52-wf8-approval-notification.csv index d4f3ba3a..0ee64a98 100644 --- a/issues/2026-05-13_18-23-52-wf8-approval-notification.csv +++ b/issues/2026-05-13_18-23-52-wf8-approval-notification.csv @@ -2,9 +2,9 @@ ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regr WF8-0,WF8 连续合同建档,"建立审批与通知增强连续型合同,把转审、通知、催办、邮件通道决策、三渠道验收和审批历史一致性放入同一 CSV。","1) 本 CSV 校验通过;2) 文档索引和状态矩阵指向本合同;3) 不进入复杂 BPM 或审批设计器;4) 不改业务代码;5) 执行前确认 ORG8 角色边界。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_18-23-52-wf8-approval-notification.csv;rg -n 'WF8|审批|通知' docs/文档索引.md docs/文档事实源状态矩阵.md issues/README.md。",python3|rg|manual,DONE,DONE,DONE,issues/2026-05-13_18-23-52-wf8-approval-notification.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|issues/README.md,[],CSV validator 和索引 rg 均通过;本次仅合同建档和入口登记,未改业务代码,执行前仍需 ORG8 角色边界和方案批准。 WF8-1,审批通知需求规约更新,"复核统一审批中心规约,把转审、通知失败、催办、deeplink 和邮件通道决策写清楚或确认已覆盖。","1) 审批和通知边界清楚;2) 不引入复杂 BPM;3) 企业微信审批动作回 OA;4) 邮件是否验收有决策。","流程级验证:rg -n '转审|通知|催办|邮件|deeplink|复杂 BPM|审批设计器' docs/需求-统一审批中心规约.md docs/需求-企业微信基础设施规约.md。",rg|manual,DONE,DONE,DONE,docs/需求-统一审批中心规约.md|docs/需求-企业微信基础设施规约.md,"[""WF8-0""]",统一审批中心规约已覆盖转审、通知失败、催办、deeplink、复杂 BPM 和审批设计器冻结;已补 WF8 邮件通道决策;未改 workflow 代码。 WF8-2,转审扩展设计,"设计请假、采购和报销的转审扩展规则,明确权限、状态、历史和通知影响。","1) 转审发起人和接收人规则清楚;2) 原审批人和新审批人历史可追溯;3) 不造成重复审批;4) 回滚路径明确。","流程级验证:人工审查状态流;rg -n '转审|delegat|reassign|审批历史|workflow' docs/需求-统一审批中心规约.md server/src。",rg|manual,DONE,DONE,DONE,docs/需求-统一审批中心规约.md|server/src,"[""WF8-1""]",已将 docs/需求-统一审批中心规约.md 更新到 1.3 并新增 WF8 转审扩展设计,明确发起人、接收人、状态历史、并发重复、请假采购报销副作用和回滚路径;rg Test_Method 通过;node --check src/routes/workflow.js 通过;npm test -- tests/unit/routes/workflow.transfer.test.js 通过 7 tests。 -WF8-3,请假转审,"实现或补强请假审批转审,保证请假流程和团队状态一致。","1) 请假待办可合法转审;2) 被转审人可审批;3) 历史记录完整;4) 团队状态不被错误更新。","流程级验证:员工提交请假 -> 审批人转审 -> 新审批人通过或驳回 -> 检查请假状态和审批历史。",node|bash|manual,TODO,TODO,TODO,server/src|client/src|server/scripts,"[""WF8-2""]",不扩展考勤 API。 -WF8-4,采购转审,"实现或补强采购审批转审,保证采购状态、附件和审批历史一致。","1) 采购待办可合法转审;2) 附件和状态不丢失;3) 重复转审有防护;4) 历史可追溯。","流程级验证:员工提交采购 -> 审批人转审 -> 新审批人处理 -> 检查采购状态和历史。",node|bash|manual,TODO,TODO,TODO,server/src|client/src|server/scripts,"[""WF8-2""]",不引入复杂预算和供应商准入。 -WF8-5,报销转审复核,"复核既有报销转审能力,补齐权限、历史或通知缺口。","1) 报销转审符合权限;2) 发票和附件不受影响;3) 财务状态不被非法改变;4) 通知到正确处理人。","流程级验证:员工提交报销 -> 审批人转审 -> 新审批人审批 -> 财务查看台账 -> 检查历史和通知。",node|bash|manual,TODO,TODO,TODO,server/src|client/src|server/scripts,"[""WF8-2""]",不得改变付款状态机。 +WF8-3,请假转审,"实现或补强请假审批转审,保证请假流程和团队状态一致。","1) 请假待办可合法转审;2) 被转审人可审批;3) 历史记录完整;4) 团队状态不被错误更新。","流程级验证:员工提交请假 -> 审批人转审 -> 新审批人通过或驳回 -> 检查请假状态和审批历史。",node|bash|manual,DONE,DONE,DONE,server/src|client/src|server/scripts,"[""WF8-2""]",本地真实 API 闭环通过:员工提交请假 df0648b5-f564-42a0-a38a-0027646b0f50;manager 转审 task cf6e23c1-0043-40d5-bc9f-659fe4028dc5 给 CEO;原审批人再审批返回 403;CEO 审批后请假状态 approved;history 包含 transfer/approve;不扩展考勤 API。 +WF8-4,采购转审,"实现或补强采购审批转审,保证采购状态、附件和审批历史一致。","1) 采购待办可合法转审;2) 附件和状态不丢失;3) 重复转审有防护;4) 历史可追溯。","流程级验证:员工提交采购 -> 审批人转审 -> 新审批人处理 -> 检查采购状态和历史。",node|bash|manual,DONE,DONE,DONE,server/src|client/src|server/scripts,"[""WF8-2""]",本地真实 API 闭环通过:员工提交采购 ac507147-74de-48c7-a4f3-95846ea87b3f;附件 565ac2ff-847e-41cd-99b6-2fbd4ed2e8f8 在转审和审批后仍存在;manager 转审 task cf5ccf97-938f-4ae2-8f40-d042dcf0bd69 给 CEO;原审批人再审批返回 403;CEO 审批后采购状态 approved;history 包含 transfer/approve;不引入复杂预算和供应商准入。 +WF8-5,报销转审复核,"复核既有报销转审能力,补齐权限、历史或通知缺口。","1) 报销转审符合权限;2) 发票和附件不受影响;3) 财务状态不被非法改变;4) 通知到正确处理人。","流程级验证:员工提交报销 -> 审批人转审 -> 新审批人审批 -> 财务查看台账 -> 检查历史和通知。",node|bash|manual,DONE,DONE,DONE,server/src|client/src|server/scripts,"[""WF8-2""]",本地真实 API 闭环通过:员工提交报销 52ed3c3b-39bf-4178-8014-7458d091910d;manager 转审 task d2bd491d-e1c1-4302-9c1c-20bcaa51db63 给 CEO;原审批人再审批返回 403;CEO 审批后报销状态 approved;发票 ed13493b-62cf-4f91-89fe-2017fb11a88c 仍绑定;目标审批人通知已检查;history 包含 transfer/approve;不得改变付款状态机。 WF8-6,通知失败可追溯,"补强企业微信、站内和可选邮件通知失败的追踪口径。","1) 发送失败有摘要和错误类型;2) 不打印 token 或手机号;3) 业务流程不因非关键通知失败误完成;4) 可人工排障。","流程级验证:模拟通知失败 -> 检查通知记录或日志摘要 -> 确认业务状态和错误提示可解释。",node|manual,DONE,DONE,DONE,server/src|scripts/qa|docs/试运行与自动化验证手册.md,"[""WF8-1""]",现有能力已覆盖:notificationDelivery 持久化 attempt/status/result_code/error_message/response_body 且管理员接口按 notification.channel.manage 查看摘要;失败或跳过不回滚主业务;通知渠道读模型脱敏 secret;已执行 npm test -- tests/unit/services/notificationDispatcher.test.js tests/unit/services/imEnqueue.test.js tests/unit/routes/notifications.test.js 通过 26 tests;node --check notificationDispatcher.js/notifications.js 通过。 WF8-7,邮件通道决策记录,"决定邮件通道是否进入当前验收,若不进入则冻结并说明替代通知通道。","1) 邮件是否验收有明确结论;2) 不影响企业微信和站内通知验收;3) 冻结原因可追溯;4) 后续解锁条件清楚。","流程级验证:人工核对需求规约和 Issue Notes 中邮件通道决策。",manual,DONE,DONE,DONE,docs/需求-统一审批中心规约.md|issues/2026-05-13_18-23-52-wf8-approval-notification.csv,"[""WF8-1""]",邮件通道当前冻结,不作为 WF8 硬门禁;站内通知和企业微信个人应用消息继续验收;解锁条件已写入规约和本 Notes。 WF8-8,三渠道通知验收设计,"设计站内、企业微信个人应用消息和邮件或冻结替代通道的三渠道验收口径。","1) 三渠道或二渠道加冻结说明清楚;2) deeplink 回 OA;3) 缺配置时 SKIP 不等于 PASS;4) 真机和公网边界明确。","流程级验证:人工审查通知矩阵;必要时执行 live readiness 和企业微信真机验证。",manual|bash|playwright,DONE,DONE,DONE,docs/试运行与自动化验证手册.md|docs/需求-企业微信基础设施规约.md,"[""WF8-6"",""WF8-7""]",Runbook 已新增 WF8 通知渠道验收矩阵:站内/企业微信个人应用/邮件冻结/失败追溯四类口径;明确本地自动化/公网匿名/公网带凭据/企业微信真机证据边界;rg Test_Method 已通过;本任务仅设计验收口径 未执行真机验收。