WAPPR1 记录四类审批规则A结论
这个提交包含在:
+2
-1
@@ -491,6 +491,7 @@ Go 结论边界:
|
||||
| --- | --- | --- |
|
||||
| WAUTO1 自动证据汇总 | 远端 `PAUSED_MANUAL_CONFIRMATION` | 新增 `scripts/qa/collect-wecom-controlled-trial-evidence.sh`,汇总 WROAD2/WARCH3/WCHECK1/WROAD2-BIZ1/WAPPR1/WEXT1 dry-run 证据,复跑公网 `/ready`、审批补偿只读、审批归档离线、打卡摘要 offline、外出/加班 dry-run 和隐私扫描。公网报告 `/app/artifacts/qa-flow/wecom-controlled-trial-evidence-20260520-103617/summary.json`:`/ready` 通过,外出/加班 dry-run 通过,审批补偿和归档离线为 `PASS_WITH_FINDINGS`,WARCH3 历史 summary 在容器内不可见记为人工缺口;脚本默认不设置 `WECOM_ARCHIVE_WRITE=1`、`WECOM_CHECKIN_ARCHIVE_WRITE=1` 或 `WECOM_APPROVAL_FIXTURE_WRITE=1`,不写 OA DB、不写企业微信、不创建模板或审批单。 |
|
||||
| WAPPR1 人工确认模板 | 已补充 | 请假、补卡、外出、加班逐模板确认:A 审批人自动带出且申请人不能任意选择;B 默认带出但申请人仍可改人;C 必须申请人手选审批人;D 当前看不到或模板未配置。B/C/D 均不得直接进入真实员工试用。不要记录 Secret、token、完整 userid、完整审批单号、完整 template_id、表单值、附件、评论或原始 payload。 |
|
||||
| WAPPR1 人工门禁结果 | `PASS_APPROVER_RULES_READY` | 2026-05-21 用户确认测试员工直属上级已设置为测试主管;请假、补卡、外出、加班提交页均自动带出测试主管,且申请人不能删除、改人或新增审批人,四类模板均为 A。该结论仍需结合 WRULE1 提交后实际审批链校验、WROAD2-BIZ1 业务动作和三天自动汇总,不自动触发 WEXT1-LIVE 或 WREAL1。 |
|
||||
| WEXT1LD 外出/加班 dry-run gate | 远端 dry-run 通过 | 远端只执行 `npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime`,不带 live 写入参数,不设置写入环境变量。报告 `/app/artifacts/qa-flow/wecom-controlled-trial-evidence-20260520-103617/wecom-approval-fixtures-dryrun/summary.json` 为 `PASS_FIXTURE_DRY_RUN_READY`,且 `liveWrite.requested=false`、`liveWrite.allowed=false`。dry-run 通过后,仍需问答选择:批准一次 live 创建外出+加班 OA-POC 样件、只保留 dry-run、或外出/加班移出 V1。 |
|
||||
| 后续人工问答 | 待三天汇总 | 三天汇总后选项固定为:接受 `PASS_AUTO_EVIDENCE_READY` 并进入 WEXT1-LIVE live 问答;接受 `PASS_WITH_FINDINGS` 但先处理指定 finding;暂停,不进入外出/加班 live 或真实试用。 |
|
||||
|
||||
@@ -530,7 +531,7 @@ Go 结论边界:
|
||||
| WAUTO1 公网汇总 | `PAUSED_MANUAL_CONFIRMATION` | 公网报告 `/app/artifacts/qa-flow/wecom-controlled-trial-evidence-20260520-130010/summary.json`;`/ready`、审批补偿只读、审批归档离线、打卡摘要 offline、外出/加班 dry-run 和隐私扫描完成;finding 为 WARCH3 历史 summary 缺口、审批补偿和归档离线既有 `PASS_WITH_FINDINGS`。人工门禁仍待 WROAD2-BIZ1 三天业务动作和 WAPPR1 四类模板确认。 |
|
||||
| WFULLSMOKE1 公网全域 smoke | `PASS_WITH_FINDINGS` | 公网报告 `/app/artifacts/qa-flow/three-day-full-goal-smoke-20260520-125909/summary.json`;主控脚本完成三天全域目标聚合。finding 为 live feature flag/OA 公网写流程需凭据或人工确认、运行镜像缺部分浏览器 spec、既有 WARCH3/WROAD2/WAUTO1 观察项;未写企业微信,未创建外出/加班样件,未启用真实员工。 |
|
||||
| 外出/加班 live 前 dry-run | `PASS_FIXTURE_DRY_RUN_READY` | 公网报告 `/app/artifacts/qa-flow/wecom-approval-fixtures-20260520T125941Z/summary.json`;`secretMatrix=OK`、`actors=OK`、`liveWrite=DRY_RUN_READY`、`autoRerun=DRY_RUN_SKIPPED`。本轮没有设置 `WECOM_APPROVAL_FIXTURE_WRITE=1`,没有带 `--live --create-templates --submit-test-approvals`,没有创建企微模板或审批单。 |
|
||||
| 后续问答 | 待人工门禁 | dry-run 已具备进入问答的自动证据,但必须先由 `HYD000006` 确认请假、补卡、外出、加班四类模板均为 A;若出现 B/C/D,先修审批规则。WAPPR1 四类为 A 且三天业务动作可解释通过后,才问是否进入 WEXT1-LIVE;真实员工试用仍固定后置为 1 名真实员工 + 1 名审批人/管理员观察。 |
|
||||
| 后续问答 | 待自动复核和三天业务收口 | dry-run 已具备进入问答的自动证据,且 2026-05-21 WAPPR1 四类模板人工门禁均为 A。下一步需复跑只读证据汇总和 WRULE1 实际审批链校验,并结合三天业务动作可解释通过后,再问是否进入 WEXT1-LIVE;真实员工试用仍固定后置为 1 名真实员工 + 1 名审批人/管理员观察。 |
|
||||
|
||||
## WRULE1 企微 HR/考勤审批链校验器 POC
|
||||
|
||||
|
||||
+4
-3
@@ -4,10 +4,11 @@
|
||||
**分类**:开发治理 / 路线图。
|
||||
**适用时间**:WDRG / WCP1 / WHMSLIVE / WOUA / WAPI / WRRA / WOUA-FIX / WRV1 / WRA1 / WMSG1 / WAPC1 / WAPC2 / WPROC1 / WPROC2 / WAPC2F / WAPC2FLIVE / WCBK1 / WEGOV1 / WACP3 / WACP3R / WREAD1 / WREAD1F / WADM1 / WARCH1 / WARCH2 / WROAD2 / WARCH3 / WCHECK1 / WEXT1 / WOPS1 / WROAD2-CLOSEOUT / WROAD2-BIZ1 / WAPPR1 / WAUTO1 / WEXT1LD / WFULLSMOKE1 / WROUTE2 / WTCLOSE1 / WRULE1 / WREAL1-PREP / WEXT1-LIVE 路线选择之后。
|
||||
**关联 Issue**:`WDRG,WCP1,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WOUAFIX,WRV1,WRA1,WMSG1,WAPC1,WAPC2,WPROC1,WPROC2,WAPC2F,WAPC2FLIVE,WCBK1,WEGOV1,WACP3,WACP3R,WREAD1,WREAD1F,WADM1,WARCH1,WARCH2,WROAD2,WARCH3,WCHECK1,WEXT1,WOPS1,WROAD2C,WROAD2B,WAPPR1,WAUTO1,WEXT1LD,WFULLSMOKE1,WROUTE2,WTCLOSE1,WRULE1,WREAL1P`。
|
||||
**最近审计**:2026-05-20。
|
||||
**最近审计**:2026-05-21。
|
||||
**不得误读**:本文只控制后续开发节奏、阶段顺序和门禁。WHMSLIVE 后只代表企微 HR 主数据镜像已部署并受控验证;WAPI 后进一步固定企微 API/Secret 口径并转为运行优先;WRRA 后明确 `PASS_WITH_FINDINGS` 只代表只读对账成功且存在差异,不代表企微考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps 已完成运行时实现。WMSG1 只证明企业微信应用消息可达和 Deeplink 可回到 OA;WAPC1 只固化审批配置准备清单;WAPC2 只新增请假/补卡模板详情和低风险 `sp_no` 审批详情只读 POC,不代表真实回调或镜像能力已完成。WPROC1 后,WAPC2 不直接放行深度镜像,必须先完成自动样件、回调、补偿拉取和镜像数据模型设计门禁。WPROC2 只新增可执行 process gate。WAPC2FLIVE 已创建 OA-POC 请假/补卡测试模板和低风险测试审批单,并自动复跑 WAPC2 得到 `PASS_APPROVAL_POC`。WCBK1 已完成真实回调 URL 验证和一条现有 OA-POC 测试审批单事件确认,公网报告为 `PASS_CALLBACK_EVENT_CONFIRMED`;WEGOV1 后路线明确为“企微成熟功能优先上线,OA 做自建留存、审计、入口、消息和应急兜底”。WACP3R 已将补偿拉取复跑修正为自动按 `SMOKE002` creator 发现 OA-POC 请假/补卡模板,公网报告 `/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/WARCH2 的留存、审计、提示或操作规程中继续处理。WADM1 只完成自建留存/镜像数据模型设计;WARCH1 只实现请假/补卡最小审批历史留存、回调事件入库、补偿拉取入库和 QA-only 离线读取证明;WARCH2 只提供 OA DB 只读查询 API 和 PC/移动历史页,不调用企微 API、不读取企微 Secret、不代表完整镜像、外出/加班、应急接管、恢复回写或 RuleOps 已完成。WROAD2 后当前策略是测试账号受控上线和每日脚本化巡检,允许补偿归档写 OA 自建留存库,但不写企业微信、不扩大真实员工范围;WARCH3 将每日巡检升级为服务器 `systemd timer` 与脱敏企微告警,WCHECK1 增加打卡规范化明细、日/月摘要和规则快照留存,WEXT1 只完成外出/加班 dry-run 支持。WOPS1 已公网验证巡检告警降噪:`HYD000006` 是管理员 `wangshunli` 的 employee_no,脚本不再把姓名字符串当员工号;已知 finding 不重复发送,只有阻断、脚本失败、新增 finding 或状态恶化才告警。WROAD2-BIZ1 在三天内补充测试账号人工业务冒烟;WAPPR1 将申请人任意选择审批人列为真实试用前阻断 finding。WAUTO1 只做只读证据汇总,WEXT1LD 只做外出/加班 live 前 dry-run,均不授权 live 创建。WFULLSMOKE1 是三天全域最终目标测试总控,只聚合企微 HR/考勤、OA 主办域、移动端和运维巡检证据;它允许在公网试运行环境创建带 `TEST/SMOKE/WFULL` 标记的 OA 测试业务数据,但不写企业微信、不创建外出/加班样件、不做真实付款、不接真实支付、不写 ERP、不导入银行流水、不启用真实员工。WREAL1-PREP 只准备真实小范围试用清单,不启用真实员工;后续顺序收紧为 WROAD2-CLOSEOUT 三天验收 -> WROAD2-BIZ1 三天业务冒烟 -> WAPPR1 审批规则规范化 -> WAUTO1 自动证据汇总 -> WEXT1LD 外出/加班 live 前 dry-run -> WFULLSMOKE1 三天全域最终目标测试 -> WEXT1-LIVE 外出/加班测试号 live POC -> 请假/补卡/外出/加班四类测试号证据和审批规则门禁通过后再问真实小范围试用。上述阶段仍不代表完整深度镜像、应急接管、恢复回写或 RuleOps 已完成。
|
||||
**WROUTE2 补充口径**:WFULLSMOKE1 之后先锁定测试号全域收口,再进入 WEXT1-LIVE 问答;WREAL1 首批固定为 1 名真实员工 + 1 名审批人/管理员观察;WREAL1 通过后优先规划 `wecom_attendance_approval_mirror_v1` 最小完整镜像,应急接管、恢复回写和 RuleOps 后置。
|
||||
**WTCLOSE1 执行口径**:公司不到 10 人,WAPPR1 四类模板目标按 A 执行;正式 HR/考勤审批采用一层直属主管或指定审批角色自动带出审批人,主管链缺失、审批人不可见/停用/未绑定或命中自审时由管理员兜底或阻断。本轮自动执行到 WAUTO1/WFULLSMOKE1 汇总和 WEXT1-LIVE 前 dry-run,不授权任何企微写入。
|
||||
**WAPPR1 2026-05-21 人工门禁结论**:测试员工直属上级已设置为测试主管;用户真机确认请假、补卡、外出、加班提交页均自动带出测试主管,且申请人不能删除、改人或新增审批人,四类模板均为 A。该结论只放行规则门禁,不等于批准外出/加班 live 写入或真实员工试用;后续仍需 WRULE1 实际审批链校验和 WEXT1-LIVE/WREAL1 问答。
|
||||
**WRULE1 执行口径**:采用“单一组织规则,两个执行域”。OA 维护员工、直属主管、业务角色和管理员兜底事实;企业微信只执行 HR/考勤审批;OA 通过 `check:wecom-approval-rule-validator` 读取已归档企微审批详情,计算理论审批人并对比实际审批链。WRULE1 是只读校验器,不新增 HR/考勤审批引擎,不写企微,不替代 WAPPR1 的后台人工确认和真机提交页确认。
|
||||
|
||||
## 1. 路线图原则
|
||||
@@ -24,7 +25,7 @@
|
||||
- WEXT1LD 是外出/加班 live 前 dry-run gate:远端只执行 `npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime`,不设置 `WECOM_APPROVAL_FIXTURE_WRITE=1`,不带 `--live`/`--create-templates`/`--submit-test-approvals`;通过后仍只进入人工问答。
|
||||
- WFULLSMOKE1 把三天目标从“企微受控巡检”扩展为全域主路径闭环:企微 HR/考勤、OA 报销、采购、合同/项目、付款批次、移动端和运维巡检一起汇总;只允许 `TEST/SMOKE/WFULL` 标记的 OA 测试业务数据,不写企业微信、不真实付款、不写 ERP、不导入银行流水。
|
||||
- WROUTE2 后锁定“测试号全域收口 -> 外出/加班测试号 live POC -> 真实小试用 -> 最小完整镜像”:当前不启用真实员工;WREAL1 首批固定为 1 名真实员工 + 1 名审批人/管理员观察;WREAL1 通过后优先规划 `wecom_attendance_approval_mirror_v1` 最小完整镜像,不先做应急接管、恢复回写或 RuleOps。
|
||||
- WTCLOSE1 后小团队审批规则按一层主管/指定审批角色 + 管理员兜底执行;四类模板未达到 A 时,不进入 WEXT1-LIVE 或 WREAL1。
|
||||
- WTCLOSE1 后小团队审批规则按一层主管/指定审批角色 + 管理员兜底执行;2026-05-21 用户已真机确认请假、补卡、外出、加班四类模板均达到 A;若后续模板回退为 B/C/D,立即暂停 WEXT1-LIVE 或 WREAL1。
|
||||
- WRULE1 后,WAPPR1 仍是人工规则门禁;WRULE1 只把已提交审批链和 OA 理论审批人自动对账。`PASS_RULE_MATCH` 或可解释 `PASS_WITH_ADMIN_FALLBACK` 才能继续测试号收口;`FAIL_APPLICANT_CAN_CHOOSE`、`FAIL_SELF_APPROVAL`、`FAIL_APPROVER_MISMATCH` 或 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG` 均阻断 WEXT1-LIVE、WREAL1 和最小完整镜像。
|
||||
- 企业微信自建应用不按完整隔离 sandbox 处理;后续默认使用真实企业内受控测试域、本地 synthetic 自动测试、公网 live runner 和少量真机确认。
|
||||
- 阶段未满足退出条件前不得跳阶段。线上缺陷、安全风险、正式使用阻断或真实反馈可以另开独立 Issue CSV,但不得混入企微 HR/考勤主路线。
|
||||
@@ -68,7 +69,7 @@
|
||||
| `WOPS1` | 巡检告警降噪已公网验证 | 将 WARCH3 告警从“有 finding 就发”改为“阻断、失败、新增 finding 或状态恶化才发”;默认收件员工号 `HYD000006`。远端二次触发报告 `/app/artifacts/qa-flow/wecom-ops-alert-20260520T070740Z/summary.json` 为 `PASS_ALERT_SKIPPED_NO_FINDINGS`,原因 `no_new_findings_or_status_worsening`;状态文件只保存脱敏状态、finding 摘要和报告路径。 |
|
||||
| `WROAD2-CLOSEOUT` | 三天验收采集中 | Day 1/2/3 继续由 WARCH3 timer 采集;已知 observation(live smoke 凭据、pending OCR、历史 callback gap)可接受但要保留趋势;三天结束后只在异常或验收点问答,若通过则进入 `WEXT1-LIVE` 合同,不直接启用真实员工。 |
|
||||
| `WROAD2-BIZ1` | 三天人工业务冒烟已建档 | 三天内并行补充测试账号业务动作:`SMOKE002` 每天按规则尝试企微打卡,提交低风险请假/补卡;`SMOKE101` 先看详情再审批;`HYD000006` 每天查看 OA 归档历史和打卡摘要。人工业务冒烟不替代 WARCH3 自动巡检,不写企业微信,不启用真实员工。 |
|
||||
| `WAPPR1` | 审批规则规范化门禁已建档 | 用户发现补卡申请需要手动选择审批人后,正式把“申请人不得任意选择审批人”列为真实试用前门禁。测试模板固定 `SMOKE002 -> SMOKE101`;正式模板必须按直属主管、部门负责人或指定审批角色自动带出审批人;审批人缺失、停用、未绑定、不可见或自审时阻断。 |
|
||||
| `WAPPR1` | 人工规则门禁已通过 | 用户先发现补卡可编辑审批人、请假/外出/加班提示指定上级为空;2026-05-21 设置测试员工直属上级为测试主管并调整模板后,用户真机确认请假、补卡、外出、加班均为 A:自动带出测试主管且申请人不能编辑审批人。该结论仍需后续 WRULE1 校验实际审批链,不自动授权 WEXT1-LIVE 或 WREAL1。 |
|
||||
| `WAUTO1` | 自动证据汇总已实现 | 新增 `scripts/qa/collect-wecom-controlled-trial-evidence.sh`,只读汇总 WROAD2/WARCH3/WCHECK1/WROAD2-BIZ1/WAPPR1/WEXT1 dry-run 证据,并复跑 `/ready`、审批补偿只读、审批归档离线、打卡摘要 offline、外出/加班 dry-run 和隐私扫描。脚本默认不写 OA DB、不写企业微信、不创建模板或审批单,结论限定为 `PASS_AUTO_EVIDENCE_READY`、`PASS_WITH_FINDINGS`、`PAUSED_MANUAL_CONFIRMATION` 或 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`。 |
|
||||
| `WEXT1LD` | 外出/加班 live 前 dry-run gate 已实现 | 新增独立 dry-run 合同,远端只执行外出+加班 payload dry-run;固定 `SMOKE002 -> SMOKE101` 和 `WECOM_AGENT_SECRET`,不尝试其他 Secret,不设置写入双开关。dry-run 通过后仍必须问答选择是否一次性 live 创建样件、只保留 dry-run 或移出 V1。 |
|
||||
| `WFULLSMOKE1` | 三天全域最终目标测试已建档 | 新增总控合同和 `scripts/qa/run-three-day-full-goal-smoke.sh`,聚合企微 HR/考勤、OA 报销、采购、合同/项目、付款批次、移动端和运维巡检。脚本可在具备凭据且未关闭写入时创建带 `TEST/SMOKE/WFULL` 标记的 OA 测试业务数据;不写企业微信、不创建外出/加班样件、不启用真实员工、不做真实付款、不接真实支付、不写 ERP、不导入银行流水。 |
|
||||
|
||||
+1
-1
@@ -97,7 +97,7 @@
|
||||
| `WOPS1` | `issues/2026-05-20_14-35-42-warch3-ops-alert-tuning-v1.csv` | `CURRENT` | 巡检告警降噪与管理员收件人修正已公网验证:默认收件员工号为 `HYD000006`(`wangshunli` 的员工号),状态文件记录上次状态和 finding 摘要;远端 WARCH3 `/app/artifacts/qa-flow/warch3-ops-20260520-070731/summary.json` 为 `PASS_WITH_FINDINGS`,告警 `/app/artifacts/qa-flow/wecom-ops-alert-20260520T070740Z/summary.json` 为 `PASS_ALERT_SKIPPED_NO_FINDINGS`;已知 finding 不重复告警,仅阻断、脚本失败、新增 finding、状态恶化或人工 `--force` 发送脱敏消息 |
|
||||
| `WROAD2-CLOSEOUT` | `issues/2026-05-20_14-35-42-wroad2-controlled-ops-closeout-v1.csv` | `CURRENT` | 三天受控巡检验收合同:Day 1/2/3 由 WARCH3 timer 采集后汇总,已知 live smoke 凭据、pending OCR 和历史 callback gap 作为 observation 不阻断;结束后需结合 WROAD2-BIZ1 和 WAPPR1 结论,再问答确认进入 WEXT1-LIVE、先处理 finding 或暂停,不直接启用真实员工 |
|
||||
| `WROAD2-BIZ1` | `issues/2026-05-20_17-13-57-wroad2-business-smoke-v1.csv` | `CURRENT` | 三天测试账号业务冒烟合同:不替代 WARCH3 自动巡检;`SMOKE002` 每天按企微规则尝试打卡并提交低风险请假/补卡,`SMOKE101` 先看详情再审批,`HYD000006` 查看 OA 企微审批归档和打卡摘要;无法打卡、无法审批或仍需手选审批人时记录 finding;不写企业微信、不启用真实员工 |
|
||||
| `WAPPR1` | `issues/2026-05-20_17-13-57-wecom-approval-rule-governance-v1.csv` | `CURRENT` | 企微审批规则规范化门禁合同:补卡手动选择审批人现象作为 blocking finding;测试模板固定 `SMOKE002 -> SMOKE101`;正式请假、补卡、外出、加班模板必须按直属主管、部门负责人或指定审批角色自动带出审批人;申请人不得任意选择审批人;审批人缺失、停用、未绑定、不可见或自审时阻断;官方 API 不支持只读读取原生模板审批规则,WAPPR1 需后台人工确认 + 真机提交页确认 + API 实际审批链校验;规则未通过不得进入真实试用 |
|
||||
| `WAPPR1` | `issues/2026-05-20_17-13-57-wecom-approval-rule-governance-v1.csv` | `CURRENT` | 企微审批规则规范化门禁合同:官方 API 不支持只读读取原生模板审批规则,WAPPR1 需后台人工确认 + 真机提交页确认 + API 实际审批链校验;2026-05-21 用户已设置测试员工直属上级为测试主管,并真机确认请假、补卡、外出、加班均自动带出测试主管且申请人不能编辑审批人,四类模板均为 A / `PASS_APPROVER_RULES_READY`;规则若回退为 B/C/D 仍不得进入真实试用 |
|
||||
| `WRULE1` | `issues/2026-05-20_23-56-15-wecom-hr-approval-rule-validator-v1.csv` | `CURRENT` | 企微 HR/考勤审批链校验器 POC:采用“单一组织规则,两个执行域”,OA 维护员工直属主管、业务审批角色和管理员兜底事实,企微执行 HR/考勤审批,OA 只读已归档企微审批详情并对比理论审批人和实际审批链;新增 `check:wecom-approval-rule-validator`,不读取企微后台规则、不写 OA/企微、不替代 WAPPR1 人工门禁;自审、实际审批人不符、申请人可手选审批人或缺人工门禁均阻断后续 live/真实试用 |
|
||||
| `WAUTO1` | `issues/2026-05-20_18-04-16-wecom-controlled-trial-auto-evidence-v1.csv` | `CURRENT` | 受控试用证据自动汇总合同已实现:新增 `scripts/qa/collect-wecom-controlled-trial-evidence.sh`,只读汇总 WROAD2/WARCH3/WCHECK1/WROAD2-BIZ1/WAPPR1/WEXT1 dry-run 证据,复跑 `/ready`、WARCH3 summary-only、审批补偿只读、审批归档离线、打卡摘要 offline、外出/加班 dry-run 和隐私扫描;默认不写 OA DB、不写企业微信、不创建模板或审批单 |
|
||||
| `WEXT1LD` | `issues/2026-05-20_18-04-16-wecom-outing-overtime-live-dryrun-gate-v1.csv` | `CURRENT` | 外出/加班 live 前 dry-run gate 已实现:远端只执行 `npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime`,固定 `SMOKE002 -> SMOKE101` 与 `WECOM_AGENT_SECRET`;不设置写入环境变量、不带 live 写入参数,dry-run 通过后仍需人工问答批准或暂停 |
|
||||
|
||||
+2
-2
@@ -158,13 +158,13 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
|
||||
| `WOPS1` | `issues/2026-05-20_14-35-42-warch3-ops-alert-tuning-v1.csv` | 已完成并公网验证:巡检告警降噪,只报新增异常或状态恶化 | 默认收件员工号改为 `HYD000006`(管理员 `wangshunli` 的员工号);`send-wecom-ops-alert` 使用状态文件记录上次状态和 finding 摘要;远端 WARCH3 `/app/artifacts/qa-flow/warch3-ops-20260520-070731/summary.json` 为 `PASS_WITH_FINDINGS`,告警 `/app/artifacts/qa-flow/wecom-ops-alert-20260520T070740Z/summary.json` 为 `PASS_ALERT_SKIPPED_NO_FINDINGS`,重复 finding 未发送 | 不写企业微信业务数据;只发送脱敏状态消息;不扩大真实用户 |
|
||||
| `WROAD2-CLOSEOUT` | `issues/2026-05-20_14-35-42-wroad2-controlled-ops-closeout-v1.csv` | 当前三天受控巡检验收:Day 1/2/3 采集后人工确认 | 已知 observation 为 live smoke 凭据、pending OCR 和历史 callback gap,不阻断;主链必须保持企微 runtime、审批补偿归档、OA 离线读取、打卡摘要 offline 可读和隐私扫描通过 | 三天结束前不启用真实员工;结论需结合 WROAD2-BIZ1/WAPPR1 后问答确认是否进入 WEXT1-LIVE、先处理 finding 或暂停 |
|
||||
| `WROAD2-BIZ1` | `issues/2026-05-20_17-13-57-wroad2-business-smoke-v1.csv` | 当前三天业务冒烟:补充测试账号人工业务动作 | `SMOKE002` 每天按企微规则尝试打卡并提交低风险请假/补卡,`SMOKE101` 先看详情再审批,`HYD000006` 查看 OA 归档历史和打卡摘要 | 不替代 WARCH3 自动巡检;不写企业微信;无法打卡、无法审批或仍需手选审批人时记录 finding |
|
||||
| `WAPPR1` | `issues/2026-05-20_17-13-57-wecom-approval-rule-governance-v1.csv` | 当前审批规则规范化门禁:真实试用前必须解决审批人规则 | 测试模板固定 `SMOKE002 -> SMOKE101`;正式请假、补卡、外出、加班模板必须自动带出审批人;申请人不得任意选择审批人 | 审批人缺失、停用、未绑定、不可见或自审时阻断;规则未通过的模板不得进入真实试用 |
|
||||
| `WAPPR1` | `issues/2026-05-20_17-13-57-wecom-approval-rule-governance-v1.csv` | 当前审批规则规范化门禁:2026-05-21 人工门禁已通过 | 用户已设置测试员工直属上级为测试主管,并真机确认请假、补卡、外出、加班均自动带出测试主管且申请人不能编辑审批人,四类模板均为 A | 仍需 WRULE1 校验提交后的实际审批链;不自动授权外出/加班 live 或真实员工试用;后续模板若回退为 B/C/D 立即暂停 |
|
||||
| `WRULE1` | `issues/2026-05-20_23-56-15-wecom-hr-approval-rule-validator-v1.csv` | 当前审批链校验器 POC:单一组织规则 + 企微执行 + OA 校验留存 | 新增 `npm run check:wecom-approval-rule-validator`,按 OA 直属主管、业务审批角色和管理员兜底计算理论审批人,并对比 OA 已归档企微审批详情中的实际审批链 | 只读 OA DB;不读取企微后台规则、不调用企微 API、不写 OA/企微;不替代 WAPPR1 人工 A/B/C/D 门禁 |
|
||||
| `WAUTO1` | `issues/2026-05-20_18-04-16-wecom-controlled-trial-auto-evidence-v1.csv` | 当前受控试用证据自动汇总:把三天自动报告和只读 runner 汇总成脱敏证据 | 新增 `scripts/qa/collect-wecom-controlled-trial-evidence.sh`,复跑 `/ready`、WARCH3 summary-only、审批补偿只读、审批归档离线、打卡摘要 offline、外出/加班 dry-run 和隐私扫描 | 默认不写 OA DB、不写企业微信、不创建模板或审批单;WAPPR1 和三天业务仍需人工确认 |
|
||||
| `WEXT1LD` | `issues/2026-05-20_18-04-16-wecom-outing-overtime-live-dryrun-gate-v1.csv` | 当前外出/加班 live 前 dry-run gate:只做远端 dry-run,不授权 live 写入 | 远端执行 `npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime`;固定 `SMOKE002 -> SMOKE101` 和 `WECOM_AGENT_SECRET` | 不设置 `WECOM_APPROVAL_FIXTURE_WRITE=1`,不带 live 写入参数;通过后仍需问答是否 live 创建样件 |
|
||||
| `WFULLSMOKE1` | `issues/2026-05-20_19-01-12-three-day-full-goal-smoke-v1.csv` | 当前三天全域最终目标测试总控:覆盖企微 HR/考勤、OA 主办域、移动端和运维巡检 | 新增 `scripts/qa/run-three-day-full-goal-smoke.sh`,聚合 `/ready`、feature flag、WARCH3/WAUTO1、审批归档、打卡摘要、OA 报销/采购/付款批次主路径、移动/企微入口和隐私扫描 | 只允许 `TEST/SMOKE/WFULL` OA 测试业务数据;不写企业微信、不创建外出/加班样件、不启用真实员工、不真实付款、不接真实支付、不写 ERP、不导入银行流水 |
|
||||
| `WROUTE2` | `issues/2026-05-20_20-15-29-wecom-test-account-closeout-to-minimal-mirror-route-v1.csv` | 当前后续路线锁定:测试号全域收口 -> 外出/加班 live POC -> 真实小试用 -> 最小完整镜像 | 固化 WAPPR1 A 为 WEXT1-LIVE 和 WREAL1 硬门禁;WREAL1 首批固定为 1 名真实员工 + 1 名审批人/管理员观察;WREAL1 通过后优先规划 `wecom_attendance_approval_mirror_v1` 最小完整镜像 | 不写企业微信;不启用真实员工;不创建外出/加班样件;应急接管、恢复回写和 RuleOps 继续后置 |
|
||||
| `WTCLOSE1` | `issues/2026-05-20_21-10-00-wecom-test-account-closeout-auto-dryrun-v1.csv` | 当前小团队自动审批规则与测试号全域收口 dry-run:公司不到 10 人时,四类 HR/考勤模板目标均为 A | 固化一层主管或指定审批角色 + 管理员兜底规则;公网 WAUTO1 `/app/artifacts/qa-flow/wecom-controlled-trial-evidence-20260520-130010/summary.json` 为 `PAUSED_MANUAL_CONFIRMATION`,WFULLSMOKE1 `/app/artifacts/qa-flow/three-day-full-goal-smoke-20260520-125909/summary.json` 为 `PASS_WITH_FINDINGS`,外出/加班 dry-run `/app/artifacts/qa-flow/wecom-approval-fixtures-20260520T125941Z/summary.json` 为 `PASS_FIXTURE_DRY_RUN_READY`;WAPPR1 API 边界已补充为 `NOT_SUPPORTED_BY_API / NEEDS_MANUAL_GATE` | 不写企业微信;不创建外出/加班模板或审批单;不启用真实员工;WAPPR1 四类未达到 A 前不进入 WEXT1-LIVE 或 WREAL1 |
|
||||
| `WTCLOSE1` | `issues/2026-05-20_21-10-00-wecom-test-account-closeout-auto-dryrun-v1.csv` | 当前小团队自动审批规则与测试号全域收口 dry-run:公司不到 10 人时,四类 HR/考勤模板目标均为 A | 固化一层主管或指定审批角色 + 管理员兜底规则;公网 WAUTO1 `/app/artifacts/qa-flow/wecom-controlled-trial-evidence-20260520-130010/summary.json` 为 `PAUSED_MANUAL_CONFIRMATION`,WFULLSMOKE1 `/app/artifacts/qa-flow/three-day-full-goal-smoke-20260520-125909/summary.json` 为 `PASS_WITH_FINDINGS`,外出/加班 dry-run `/app/artifacts/qa-flow/wecom-approval-fixtures-20260520T125941Z/summary.json` 为 `PASS_FIXTURE_DRY_RUN_READY`;2026-05-21 WAPPR1 四类模板已由用户真机确认均为 A | 不写企业微信;不创建外出/加班模板或审批单;不启用真实员工;进入 WEXT1-LIVE/WREAL1 前仍需 WRULE1、三天业务动作和最终问答 |
|
||||
| `WREAL1-PREP` | `issues/2026-05-20_14-35-42-wecom-real-trial-prep-v1.csv` | 当前真实试用准备:不启用真实员工 | 固化候选员工、非自审审批人、回滚联系人、允许流程、暂停条件和验收标准;真实试用必须等请假、补卡、外出、加班四类测试号证据、WAPPR1 和 WFULLSMOKE1 通过后再问 | 当前不创建外出/加班 live 样件;真实员工名单不写入 Issue 或文档,后续通过问答确认 |
|
||||
|
||||
旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
**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,不创建企微样件。
|
||||
**WAPPR1 2026-05-21 真机结论**:测试员工直属上级已设置为测试主管;请假、补卡、外出、加班提交页均自动带出测试主管,且申请人不能删除、改人或新增审批人,四类模板均按 A 记录。该结论仍需结合提交后的 WRULE1 实际审批链校验和三天业务冒烟证据,不单独放行真实员工试用。
|
||||
**WRULE1 审批链校验**:管理员后台规则和真机提交页仍由 WAPPR1 人工确认;系统只能用已归档审批详情校验实际审批链。校验命令为 `npm run check:wecom-approval-rule-validator -- --template=<类型> --manual-gate=<类型>:A`,缺人工门禁时结论为 `PAUSED_MANUAL_CONFIRMATION`;自审、实际审批人不符或申请人可手选审批人均阻断 WEXT1-LIVE、WREAL1 和最小镜像。
|
||||
|
||||
## 1. 适用范围
|
||||
|
||||
+2
-1
@@ -419,8 +419,9 @@ WAPPR1 承接 WROAD2 期间发现的补卡申请仍需申请人手动选择审
|
||||
- 审批人缺失、停用、未绑定企微、不可见、主管链断裂或命中申请人本人时,必须由管理员兜底或阻断提交;若只能手选审批人,则阻断进入真实试用。
|
||||
- 官方 API 边界:`gettemplatedetail` 只返回模板控件,`getapprovaldetail` 只返回已提交审批单的实际审批节点和审批人,均不能只读证明申请页是否允许手选或修改审批人;`applyevent` 的 `use_template_approver=1` 属于写入型验证,且不适合作为补卡等模板的通用只读门禁。
|
||||
- WAPPR1 验收必须由三类证据组合:管理员在企微后台确认无“申请人自选”节点;`SMOKE002` 真机提交页确认审批人自动带出且不能任意改人;提交后用 `getapprovaldetail` 校验实际审批人为 `SMOKE101` 且无自审。
|
||||
- 2026-05-21 人工门禁结论:测试员工直属上级已设置为测试主管,用户真机确认请假、补卡、外出、加班提交页均自动带出测试主管,且申请人不能删除、改人或新增审批人;四类模板均按 A / `PASS_APPROVER_RULES_READY` 记录。
|
||||
- 结论按模板分别记录:`PASS_APPROVER_RULES_READY`、`PASS_WITH_TEMPLATE_ADJUSTMENTS`、`FAIL_KEEP_OA_PRIMARY_FOR_THIS_TEMPLATE` 或 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`。
|
||||
- A/B/C/D 人工门禁口径不变:只有 A 可放行;B、C、D 均阻断 WEXT1-LIVE、WREAL1 和后续 `wecom_attendance_approval_mirror_v1`。
|
||||
- A/B/C/D 人工门禁口径不变:只有 A 可作为规则门禁通过条件;B、C、D 均阻断 WEXT1-LIVE、WREAL1 和后续 `wecom_attendance_approval_mirror_v1`。
|
||||
- 如果企微模板能力或后台配置暂时无法做到自动审批人规则,对应模板继续保持测试账号 POC 或 OA 主办,不进入 WREAL1 真实员工试用。
|
||||
|
||||
### 9.3.2 WRULE1 企微 HR/考勤审批链校验器 POC
|
||||
|
||||
在新工单中引用
屏蔽一个用户