WRULE1 实现企微审批链校验器 POC
这个提交包含在:
+2
-1
@@ -1,9 +1,10 @@
|
||||
# hyb-oa 管理员手册(10 人以下团队版)
|
||||
|
||||
**当前状态(2026-05-20 / WOPS1/WROAD2-CLOSEOUT/WROAD2-BIZ1/WAPPR1/WREAL1-PREP 后)**:R7E、PRELAUNCH、财务闭环、ATTV1、HR-WECOM-DIRECTORY-V1、WAPI、WOUA-FIX、WRV1/WRA1、WMSG1、WAPC1/WAPC2、WPROC1/WPROC2、WAPC2F dry-run、WAPC2FLIVE、WCBK1、WEGOV1、WACP3/WACP3R、WREAD1/WREAD1F、WADM1、WARCH1 和 WARCH2 均已收口到当前开发阶段;WROAD2+OPS 已完成测试账号受控上线 Day 0 巡检,报告 `/app/artifacts/qa-flow/wroad2-ops-20260520-041941/summary.json` 为 `PASS_WITH_FINDINGS`;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。WAPI 后固定企微 API 能力目录和 Secret 矩阵:通讯录使用 `WECOM_CONTACT_SECRET`,人事助手/打卡/消息/OAuth/审批读取使用 `WECOM_AGENT_SECRET`,运行时代码不得靠多个 Secret 试错。WAPC2FLIVE 已创建 OA-POC 请假/补卡测试模板和低风险测试审批单,报告 `/app/artifacts/qa-flow/wecom-approval-fixtures-20260519T053400Z/summary.json` 为 `PASS_FIXTURE_CREATED`,自动复跑 WAPC2 为 `PASS_APPROVAL_POC`;测试模板和审批记录保留审计,不自动删除。WCBK1 已部署只读回调端点和 runner,远端完成回调 URL 验证并收到一条由 `SMOKE101` 同意现有 OA-POC 补卡测试单触发的真实审批状态事件,报告 `/app/artifacts/qa-flow/wecom-approval-callback-poc-20260519T092648Z/summary.json` 为 `PASS_CALLBACK_EVENT_CONFIRMED`。WACP3R 已新增自动发现模板 ID 路径并公网只读复跑,报告 `/app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T115944Z/summary.json` 为 `PASS_WITH_FINDINGS`;WREAD1F 新样例后,用户确认请假/补卡在企业微信消息卡片、列表和详情页均可看清,远端报告 `/app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T133628Z/summary.json` 为 `PASS_READABLE`。WARCH1 已新增并部署请假/补卡最小审批历史留存:回调事件默认入 OA DB,补偿拉取可在 `--persist-to-db` + `WECOM_ARCHIVE_WRITE=1` 双开关下写 OA 留存,离线 runner 可不调用企微 API 读取已保存历史摘要;公网报告 `/app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T160306Z/summary.json` 和 `/app/artifacts/qa-flow/wecom-approval-archive-20260519T160330Z/summary.json` 均为 `PASS_WITH_FINDINGS`,2 条请假/补卡历史可离线读取,finding 是旧回调未入库历史 gap。WARCH2 已新增只读历史查询 API 和 PC/移动历史页:页面入口为“企微审批历史”,文案固定“企业微信主办,OA 自建留存”和“仅已归档记录”,只读 OA DB,不调用企微 API,不提供审批动作;权限按本人相关、直属下属和 HR/admin/* 分层,申请人未映射或 callback-only 记录仅 HR/admin/* 可见。WARCH3 已新增 07:30 systemd timer 巡检和脱敏企微告警;WOPS1 将默认告警收件员工号修正为 `HYD000006`,也就是管理员 `wangshunli` 的员工号,并把策略改为只在阻断、脚本失败、新增 finding 或状态恶化时发送,已知 observation 不重复告警。WCHECK1 已新增打卡规范化明细、日/月摘要和规则快照留存;WEXT1 已支持外出/加班 dry-run,但未 live 创建模板或审批单。WROAD2-BIZ1 固定三天内补充测试账号人工业务冒烟:`SMOKE002` 打卡、请假、补卡,`SMOKE101` 先看详情再审批,`HYD000006` 查看 OA 归档历史和打卡摘要;WAPPR1 固定审批规则门禁,申请人不得任意选择审批人,正式模板必须自动带出审批人,缺审批人或自审时阻断。巡检只允许补偿归档和打卡摘要写 OA 留存库,不写企业微信、不扩大真实员工。WREAL1-PREP 只准备真实小范围试用清单,当前不启用真实员工;三天巡检、业务冒烟和审批规则门禁后先问答是否进入 WEXT1-LIVE 外出/加班测试号 live POC,四类测试号证据和 WAPPR1 通过后才问是否启动真实小范围试用。同意单击即通过风险已进入归档审计事实,后续正式历史页和操作规程继续突出动作来源与补偿一致性。采购、费用、合同、项目、报销、付款、AP、代账交接和高敏附件继续 OA 主办,企业微信只做脱敏提醒和 OA deeplink。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。
|
||||
**当前状态(2026-05-20 / WOPS1/WROAD2-CLOSEOUT/WROAD2-BIZ1/WAPPR1/WRULE1/WREAL1-PREP 后)**:R7E、PRELAUNCH、财务闭环、ATTV1、HR-WECOM-DIRECTORY-V1、WAPI、WOUA-FIX、WRV1/WRA1、WMSG1、WAPC1/WAPC2、WPROC1/WPROC2、WAPC2F dry-run、WAPC2FLIVE、WCBK1、WEGOV1、WACP3/WACP3R、WREAD1/WREAD1F、WADM1、WARCH1 和 WARCH2 均已收口到当前开发阶段;WROAD2+OPS 已完成测试账号受控上线 Day 0 巡检,报告 `/app/artifacts/qa-flow/wroad2-ops-20260520-041941/summary.json` 为 `PASS_WITH_FINDINGS`;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。WAPI 后固定企微 API 能力目录和 Secret 矩阵:通讯录使用 `WECOM_CONTACT_SECRET`,人事助手/打卡/消息/OAuth/审批读取使用 `WECOM_AGENT_SECRET`,运行时代码不得靠多个 Secret 试错。WAPC2FLIVE 已创建 OA-POC 请假/补卡测试模板和低风险测试审批单,报告 `/app/artifacts/qa-flow/wecom-approval-fixtures-20260519T053400Z/summary.json` 为 `PASS_FIXTURE_CREATED`,自动复跑 WAPC2 为 `PASS_APPROVAL_POC`;测试模板和审批记录保留审计,不自动删除。WCBK1 已部署只读回调端点和 runner,远端完成回调 URL 验证并收到一条由 `SMOKE101` 同意现有 OA-POC 补卡测试单触发的真实审批状态事件,报告 `/app/artifacts/qa-flow/wecom-approval-callback-poc-20260519T092648Z/summary.json` 为 `PASS_CALLBACK_EVENT_CONFIRMED`。WACP3R 已新增自动发现模板 ID 路径并公网只读复跑,报告 `/app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T115944Z/summary.json` 为 `PASS_WITH_FINDINGS`;WREAD1F 新样例后,用户确认请假/补卡在企业微信消息卡片、列表和详情页均可看清,远端报告 `/app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T133628Z/summary.json` 为 `PASS_READABLE`。WARCH1 已新增并部署请假/补卡最小审批历史留存:回调事件默认入 OA DB,补偿拉取可在 `--persist-to-db` + `WECOM_ARCHIVE_WRITE=1` 双开关下写 OA 留存,离线 runner 可不调用企微 API 读取已保存历史摘要;公网报告 `/app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T160306Z/summary.json` 和 `/app/artifacts/qa-flow/wecom-approval-archive-20260519T160330Z/summary.json` 均为 `PASS_WITH_FINDINGS`,2 条请假/补卡历史可离线读取,finding 是旧回调未入库历史 gap。WARCH2 已新增只读历史查询 API 和 PC/移动历史页:页面入口为“企微审批历史”,文案固定“企业微信主办,OA 自建留存”和“仅已归档记录”,只读 OA DB,不调用企微 API,不提供审批动作;权限按本人相关、直属下属和 HR/admin/* 分层,申请人未映射或 callback-only 记录仅 HR/admin/* 可见。WARCH3 已新增 07:30 systemd timer 巡检和脱敏企微告警;WOPS1 将默认告警收件员工号修正为 `HYD000006`,也就是管理员 `wangshunli` 的员工号,并把策略改为只在阻断、脚本失败、新增 finding 或状态恶化时发送,已知 observation 不重复告警。WCHECK1 已新增打卡规范化明细、日/月摘要和规则快照留存;WEXT1 已支持外出/加班 dry-run,但未 live 创建模板或审批单。WROAD2-BIZ1 固定三天内补充测试账号人工业务冒烟:`SMOKE002` 打卡、请假、补卡,`SMOKE101` 先看详情再审批,`HYD000006` 查看 OA 归档历史和打卡摘要;WAPPR1 固定审批规则门禁,申请人不得任意选择审批人,正式模板必须自动带出审批人,缺审批人或自审时阻断。WRULE1 新增只读审批链校验器:OA 按员工直属主管、指定审批角色和管理员兜底计算理论审批人,再与 OA 已归档的企微实际审批链对比;它不读取企微后台规则、不写企业微信、不替代 WAPPR1 人工 A/B/C/D 门禁。巡检只允许补偿归档和打卡摘要写 OA 留存库,不写企业微信、不扩大真实员工。WREAL1-PREP 只准备真实小范围试用清单,当前不启用真实员工;三天巡检、业务冒烟和审批规则门禁后先问答是否进入 WEXT1-LIVE 外出/加班测试号 live POC,四类测试号证据和 WAPPR1/WRULE1 通过后才问是否启动真实小范围试用。同意单击即通过风险已进入归档审计事实,后续正式历史页和操作规程继续突出动作来源与补偿一致性。采购、费用、合同、项目、报销、付款、AP、代账交接和高敏附件继续 OA 主办,企业微信只做脱敏提醒和 OA deeplink。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。
|
||||
|
||||
**WROUTE2 后续路线锁定**:继续先收口测试账号全域证据,不提前启用真实员工。WAPPR1 四类模板必须达到 A(审批人自动带出,申请人不能任意选择)后,才允许另建 WEXT1-LIVE 合同并再次问答是否一次性 live 创建外出+加班测试号样件。请假、补卡、外出、加班四类测试号证据通过后,WREAL1 首批固定为 1 名真实员工 + 1 名审批人/管理员观察;WREAL1 通过后优先规划 `wecom_attendance_approval_mirror_v1` 最小完整镜像,应急接管、恢复回写和 RuleOps 均后置。
|
||||
**WTCLOSE1 小团队规则**:公司不到 10 人时,HR/考勤审批先按一层直属主管或指定审批角色自动带出审批人,申请人不能任意改人;主管链缺失、审批人不可见/停用/未绑定或命中自审时,管理员兜底或阻断。当前目标是请假、补卡、外出、加班四类模板均达到 A;本轮自动工作只到 WAUTO1/WFULLSMOKE1 汇总和 WEXT1-LIVE 前 dry-run,不创建企微样件。
|
||||
**WRULE1 审批链校验**:管理员后台规则和真机提交页仍由 WAPPR1 人工确认;系统只能用已归档审批详情校验实际审批链。校验命令为 `npm run check:wecom-approval-rule-validator -- --template=<类型> --manual-gate=<类型>:A`,缺人工门禁时结论为 `PAUSED_MANUAL_CONFIRMATION`;自审、实际审批人不符或申请人可手选审批人均阻断 WEXT1-LIVE、WREAL1 和最小镜像。
|
||||
|
||||
## 1. 适用范围
|
||||
- 适用于 `small_team_internal` 工作区模式。
|
||||
|
||||
在新工单中引用
屏蔽一个用户