WAPPR1 固化企微审批规则API边界
这个提交包含在:
+2
-2
@@ -63,7 +63,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
|
||||
- WCPC 是 WCP1 后的配置收口合同:已使用既有在职低风险测试号 `SMOKE002/测试员工`(报告只记录 `oa_smoke***`)完成远端只读复跑,报告 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`,结论 `GO_TO_HR_MASTER_SYNC`。WHMS 已承接该准入结论;审批模板 ID、审批单号 `sp_no`、真实回调配置和 HR 写接口仍需后续独立合同处理。
|
||||
- WHMS/WHMSLIVE 是 WCPC 后的企微 HR 主数据镜像合同和部署验证合同:已实现并部署 `wecom_hr_master_sync_v1`、企微/人事助手读取服务、dry-run/apply、同步批次/逐员工记录、People 管理入口和 QA-only runner;公网对 `SMOKE002`(脱敏 `oa_smoke***`)完成 dry-run/apply 管道验证,缺手机号、邮箱和部门按 `missing_required_field` 跳过;权限负例 403;最终 `force_off`,未执行生产真实员工批量 apply。WAPI 后其读取口径被修正为通讯录 `user/list_id` + 人事助手 `get_staff_info`,不再用运行时 Secret fallback。
|
||||
- WOUA 是 WHMSLIVE 后的 OA/企微用户一致性只读审计合同:已新增 QA-only runner `server/src/scripts/audit-wecom-oa-user-consistency.js`,本地静态/单测门禁通过并以 `SYNC_ENV=0` 部署执行;初始公网报告因旧读取路径为 `SKIP / BLOCKED_BY_EXTERNAL_CONFIG`。WAPI 后按新 API/Secret 口径复跑成功,远端脱敏报告 `/app/artifacts/qa-flow/wecom-oa-user-consistency-20260518T142544Z/summary.json` 为 `PASS_WITH_FINDINGS`,计数为 `oaEmployees=13`、`oaActiveEmployees=12`、`oaActiveWithBinding=5`、`wecomProfiles=5`、`matchedActive=5`、`oaActiveMissingInWecom=7`、`inactiveWithBinding=1`、`missingRequiredFields=5`。本轮未修改 OA/企微用户,未执行真实员工批量 apply,不代表 OA/企微用户已经一致。
|
||||
- WAPI 是 WOUA 后的企微 API 能力目录与运行优先纠偏合同:新增 [企微 API 能力目录](./企微API能力目录.md),固定通讯录用 `WECOM_CONTACT_SECRET`、人事助手/打卡/消息/OAuth 用 `WECOM_AGENT_SECRET`、`WECOM_CHECKIN_SECRET` 仅作显式打卡 override、`WECOM_HR_ASSISTANT_SECRET` 仅历史兼容;后续企微能力不清楚时先查官方 API 和本地目录,不在运行时代码里轮询多个 Secret 试错。WAPI 已把通讯录成员详情降级为可选富化并完成 WOUA 公网复跑,后续由 WRRA/WOUA-FIX 承接路线与差异收口。
|
||||
- WAPI 是 WOUA 后的企微 API 能力目录与运行优先纠偏合同:新增 [企微 API 能力目录](./企微API能力目录.md),固定通讯录用 `WECOM_CONTACT_SECRET`、人事助手/打卡/消息/OAuth 用 `WECOM_AGENT_SECRET`、`WECOM_CHECKIN_SECRET` 仅作显式打卡 override、`WECOM_HR_ASSISTANT_SECRET` 仅历史兼容;后续企微能力不清楚时先查官方 API 和本地目录,不在运行时代码里轮询多个 Secret 试错。WAPPR1 后已补充审批规则 API 边界:原生审批模板的“申请人是否可手选审批人/审批规则配置”不能只读读取,必须保留后台人工确认和真机门禁。WAPI 已把通讯录成员详情降级为可选富化并完成 WOUA 公网复跑,后续由 WRRA/WOUA-FIX 承接路线与差异收口。
|
||||
- WRRA 是 WAPI 后的企微路线门禁修正合同:只做 docs-only 路线修正,不改业务代码、不部署、不写 OA/企微数据;明确 `PASS_WITH_FINDINGS` 不能直接放行深度镜像,并已由 WOUA-FIX 承接测试账号差异收口;后续默认进入 `WECOM-RUNTIME-READY-V1`。
|
||||
- WOUA-FIX 是 WRRA 后的 OA/企微用户一致性差异收口合同:按用户确认软归档 7 个缺企微测试/Smoke 账号,修正 `T0000` seed 复活,转交 `SMOKE201` 归档后的测试主管和待办副作用;复检 OA active 5、企微 active 5、匹配 5、OA active 缺企微 0。企微缺字段先接受不补,归档绑定保留审计,不写企微资料、不执行真实员工 WHMS 批量 apply。
|
||||
- WRV1 是 WOUA-FIX 后的企业微信运行优先门禁合同:新增 `server/src/scripts/check-wecom-runtime-ready.js` 和 `npm run check:wecom-runtime-ready`,检查工作台入口、OAuth/绑定、脱敏消息、OA deeplink、通讯录 `user/list_id`、人事助手 `get_staff_info` 和打卡短窗口读取;已部署并远端 live 只读验证,报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T173402Z/summary.json` 为 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`,阻断点是 `WECOM_CHECKIN_SYNC_ENABLED=true` 未启用;审批模板、测试 `sp_no` 和真实回调缺口记录为 `NEEDS_CONFIG`,不放行深度镜像。
|
||||
@@ -163,7 +163,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
|
||||
| `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 四类未达到 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`;WAPPR1 API 边界已补充为 `NOT_SUPPORTED_BY_API / NEEDS_MANUAL_GATE` | 不写企业微信;不创建外出/加班模板或审批单;不启用真实员工;WAPPR1 四类未达到 A 前不进入 WEXT1-LIVE 或 WREAL1 |
|
||||
| `WREAL1-PREP` | `issues/2026-05-20_14-35-42-wecom-real-trial-prep-v1.csv` | 当前真实试用准备:不启用真实员工 | 固化候选员工、非自审审批人、回滚联系人、允许流程、暂停条件和验收标准;真实试用必须等请假、补卡、外出、加班四类测试号证据、WAPPR1 和 WFULLSMOKE1 通过后再问 | 当前不创建外出/加班 live 样件;真实员工名单不写入 Issue 或文档,后续通过问答确认 |
|
||||
|
||||
旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。
|
||||
|
||||
在新工单中引用
屏蔽一个用户