WMSG1 验证企微应用消息实发

这个提交包含在:
2026-05-19 08:15:12 +08:00
父节点 9d1927a4f9
当前提交 ea71cc5be6
共修改 5 个文件,包含 20 行新增和 7 行删除
+2
查看文件
@@ -51,6 +51,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
- 2026-05-18 WOUA-FIX 已按用户确认执行受控写入:7 个 OA active 缺企微账号均确认为测试/Smoke 数据并软归档,`oaActiveMissingInWecom` 复检为 0;`T0000` seed 逻辑已修正为存在真实 active admin 时不再复活已归档 fallback 管理员;`SMOKE201` 归档后遗留的 `SMOKE101` 主管和 2 个测试请假待办已转交 `HYD000007`。复检报告 `/app/artifacts/qa-flow/wecom-oa-user-consistency-20260518T161716Z/summary.json`:OA active 5、企微 active 5、匹配 5、OA active 缺企微 0;剩余 `missingRequiredFields=5` 按用户决策先接受不补,`HRWDTEST-20260517214548` 归档绑定保留为审计项。本轮不写企微资料,不执行真实员工 WHMS 批量 apply,不代表考勤/审批镜像可直接开工。
- 2026-05-19 WRV1 新增企业微信运行优先 QA-only 门禁:`server/src/scripts/check-wecom-runtime-ready.js` / `npm run check:wecom-runtime-ready`。该门禁检查工作台入口、OAuth/绑定概况、脱敏消息 dry-run、OA deeplink、通讯录 `user/list_id`、人事助手 `get_staff_info`、打卡短窗口读取,并把审批模板、测试 `sp_no` 和真实回调配置缺口记录为 `NEEDS_CONFIG`。已以 `SYNC_ENV=0` 部署并远端执行 live 只读报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T173402Z/summary.json`,结论为 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`:入口/OAuth、Secret 矩阵、OA active 绑定、通讯录和人事助手读取、消息 dry-run 均通过,打卡读取因 `WECOM_CHECKIN_SYNC_ENABLED=true` 未启用而阻断。默认不发送真实消息,不补企微资料,不写 OA/企微用户数据,不进入深度镜像。
- 2026-05-19 WRA1 修正 WRV1 运行验收门禁并完成公网复跑:`WECOM_CHECKIN_SYNC_ENABLED` 保留为正式考勤同步批次开关,但 QA-only 打卡短窗口读取显式使用 `requireSyncEnabled=false` 做只读探测,不再把同步开关未启用误判为运行主链路阻断。远端报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T180506Z/summary.json` 结论为 `PASS_WITH_CONFIG_GAPS`:入口/OAuth、Secret 矩阵、OA active 绑定、通讯录、人事助手、消息 dry-run 和打卡只读链路均通过,打卡读取记录 `readable_sync_disabled`;审批模板、测试 `sp_no` 和真实回调继续为 `NEEDS_CONFIG`。未发送真实消息,未写 OA/企微用户资料。
- 2026-05-19 WMSG1 完成企微应用消息实发与 Deeplink 真机验证:使用现有 `check:wecom-runtime-ready` runner,在远端容器内仅对单次命令设置 `WECOM_RUNTIME_TEST_SEND=1`,向管理员本人对应 OA 员工号 `HYD000006` 发送一条脱敏运行就绪消息。第一次按 `wangshunli` 参数执行未命中 OA `employee_no`,`recipientCount=0` 且未实际发出;随后按 `HYD000006` 重跑成功,报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T234431Z/summary.json` 显示 `checks.message.status=OK`、`code=wecom_app_sent`、`errcode=0`、`recipientCount=1`、收件企微前缀 `WangShun***`。用户确认企业微信可收到“OA 运行就绪检查”,点击“打开 OA”后可进入 OA 通知页面,结论 `PASS_MESSAGE_DELIVERY_CONFIRMED`。本轮不补企微资料、不配置审批模板/`sp_no`/真实回调、不进入深度镜像。
## 关键证据索引
@@ -100,6 +101,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
| WOUA/WAPI | 已收口:OA/企微用户一致性只读审计 runner 已按 WAPI 读取口径复跑;公网报告 `PASS_WITH_FINDINGS`,OA 侧脱敏计数 13/12/5,企微可见 active 5,匹配 5,OA active 缺企微 7,已归档仍有绑定 1,缺必填字段 5;未修改 OA/企微用户,未执行真实员工批量 apply | `issues/2026-05-18_20-45-58-wecom-oa-user-consistency-audit.csv`、`issues/2026-05-18_21-46-41-wecom-api-capability-catalog-runtime-first.csv`、`/app/artifacts/qa-flow/wecom-oa-user-consistency-20260518T142544Z/summary.json` |
| WOUA-FIX | 已受控写入并复检:7 个缺企微测试账号软归档,T0000 seed 不再复活,SMOKE201 归档后的测试主管和待办副作用已转交;复检 OA active 5、企微 active 5、匹配 5、OA active 缺企微 0;剩余 5 个企微缺字段先接受不补,1 个归档绑定保留审计 | `issues/2026-05-18_23-45-45-wecom-oa-user-consistency-fix-runtime-ready.csv`、`/app/artifacts/qa-flow/wecom-oa-user-consistency-fix-20260518T160944Z/summary.json`、`/app/artifacts/qa-flow/wecom-oa-user-consistency-20260518T161716Z/summary.json` |
| WRV1 | 已部署并公网只读验证:`check-wecom-runtime-ready` 返回 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`,阻断点为 `WECOM_CHECKIN_SYNC_ENABLED=true` 未启用;入口/OAuth、Secret 矩阵、OA active 绑定、通讯录、人事助手和消息 dry-run 已通过;审批模板、测试 `sp_no`、真实回调缺口记为 `NEEDS_CONFIG`,不放行深度镜像 | `issues/2026-05-19_01-10-32-wecom-runtime-ready-v1.csv`、`server/src/scripts/check-wecom-runtime-ready.js`、`/app/artifacts/qa-flow/wecom-runtime-ready-20260518T173402Z/summary.json` |
| WMSG1 | 已完成:企微应用消息真实发送和 Deeplink 真机确认通过;报告 `checks.message.status=OK`、`errcode=0`、`recipientCount=1`,用户确认收到消息并可点击进入 OA 通知页面 | `issues/2026-05-19_07-41-37-wecom-message-live-verify-v1.csv`、`/app/artifacts/qa-flow/wecom-runtime-ready-20260518T234431Z/summary.json` |
## 当前门禁
+7 -5
查看文件
@@ -75,6 +75,7 @@
| `WOUA-FIX` | `issues/2026-05-18_23-45-45-wecom-oa-user-consistency-fix-runtime-ready.csv` | `CURRENT` | OA/企微用户一致性差异已受控收口:7 个缺企微测试账号软归档,`T0000` seed 复活已修正,`SMOKE201` 测试主管/待办副作用已转交;WOUA 复检 OA active 5、企微 active 5、匹配 5、OA active 缺企微 0;企微缺字段先接受不补 |
| `WRV1` | `issues/2026-05-19_01-10-32-wecom-runtime-ready-v1.csv` | `EVIDENCE` | 企业微信运行优先门禁已部署并公网只读验证:新增 `check:wecom-runtime-ready` QA-only runner;报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T173402Z/summary.json` 为 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`,入口/OAuth、Secret 矩阵、OA active 绑定、通讯录、人事助手和消息 dry-run 通过,打卡读取因 `WECOM_CHECKIN_SYNC_ENABLED=true` 未启用阻断;审批模板、测试 `sp_no`、真实回调缺口仅记 `NEEDS_CONFIG`,不放行深度镜像 |
| `WRA1` | `issues/2026-05-19_01-55-43-wecom-runtime-acceptance-v1.csv` | `EVIDENCE` | 企微运行验收门禁修正已部署并公网复跑:`WECOM_CHECKIN_SYNC_ENABLED` 保留为正式考勤同步开关,QA-only 打卡只读探测显式使用 `requireSyncEnabled=false`;报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T180506Z/summary.json` 为 `PASS_WITH_CONFIG_GAPS`,打卡只读可读,审批模板、测试 `sp_no` 和真实回调仍为 `NEEDS_CONFIG` |
| `WMSG1` | `issues/2026-05-19_07-41-37-wecom-message-live-verify-v1.csv` | `EVIDENCE` | 企微应用消息实发与 Deeplink 真机验证已完成:远端单次设置 `WECOM_RUNTIME_TEST_SEND=1`,报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T234431Z/summary.json` 显示消息 `errcode=0`、`recipientCount=1`;用户确认收到“OA 运行就绪检查”并可点击进入 OA 通知页面;审批模板、测试 `sp_no` 和真实回调仍为后续配置缺口 |
旧 Issue CSV 保留为历史审计证据:不删除、不批量回写、不移动到 `docs/archive/` 或其他归档目录。新连续合同如替代旧合同,只在新合同 `Notes` 或文档索引中说明 supersedes。
@@ -82,18 +83,18 @@
| Doc_ID | Path | Category | Authority | Status | Owner | Related_Issues | Evidence | Supersedes | Last_Audited | Audit_Method | Risk | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `IDX` | `docs/文档索引.md` | 入口索引 | 最高文档入口 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WOUAFIX,WRV1,WRA1` | `rg` | none | 2026-05-19 | `node scripts/qa/audit-docs.mjs --check-registry` | medium | 判断当前该读什么 |
| `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WOUAFIX,WRV1,WRA1` | `audit-docs` | none | 2026-05-19 | `audit-docs --check-registry` | medium | 判断文档权威性 |
| `IDX` | `docs/文档索引.md` | 入口索引 | 最高文档入口 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WOUAFIX,WRV1,WRA1,WMSG1` | `rg` | none | 2026-05-19 | `node scripts/qa/audit-docs.mjs --check-registry` | medium | 判断当前该读什么 |
| `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WOUAFIX,WRV1,WRA1,WMSG1` | `audit-docs` | none | 2026-05-19 | `audit-docs --check-registry` | medium | 判断文档权威性 |
| `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA` | Issue CSV | `docs/requirements-specification.md` | 2026-05-18 | `rg` | high | WRRA 后定义 HR 主数据镜像读取口径、运行优先、WOUA 差异收口和下一阶段边界;ERP 未来不接入 OA |
| `PRODUCT-SCOPE` | `docs/产品口径.md` | 需求事实源 | 产品边界事实源 | `CURRENT` | product | `REQ8,P2T,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA` | `rg` | none | 2026-05-18 | `rg` | high | 记录已拍板产品边界、企微/OA 设计门禁、开发路线图、WCPC 准入结论、WHMS 部署验证、WAPI 运行优先和 WRRA 差异收口口径 |
| `DESIGN-UI` | `docs/产品设计规则.md` | 设计事实源 | PC/移动/企业微信设计事实源 | `CURRENT` | design/frontend | `MIA7,MIF7,GOV8,DG8,DG9,WFDG` | Playwright/视觉审查/DG8/DG9/WFDG | none | 2026-05-18 | `rg` | high | 页面改动必须读取;DG8 后飞书为主 UI/布局参考;DG9 后按页面分层和样板选型;WFDG 后区分 OA 主办、企微镜像和 OA 应急接管 |
| `ROADMAP-WECOM` | `docs/企微优先开发路线图.md` | 开发治理 | 企微优先开发路线图事实源 | `CURRENT` | product/dev | `WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WOUAFIX,WRV1,WRA1` | Issue CSV | none | 2026-05-19 | `rg` | high | WRV1 后记录企微 HR/考勤路线阶段顺序、API/Secret 口径、运行优先门禁、用户一致性差异收口和禁止跳阶段 |
| `ROADMAP-WECOM` | `docs/企微优先开发路线图.md` | 开发治理 | 企微优先开发路线图事实源 | `CURRENT` | product/dev | `WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WOUAFIX,WRV1,WRA1,WMSG1` | Issue CSV | none | 2026-05-19 | `rg` | high | WRV1/WRA1/WMSG1 后记录企微 HR/考勤路线阶段顺序、API/Secret 口径、运行优先门禁、消息实发真机验证、用户一致性差异收口和禁止跳阶段 |
| `WECOM-API-CATALOG` | `docs/企微API能力目录.md` | 集成事实源 | 企微 API 能力目录和 Secret 矩阵事实源 | `CURRENT` | product/backend/qa | `WAPI,WRRA` | 官方企业微信开发者中心链接/Issue CSV | none | 2026-05-18 | `rg` | high | 企微开发先读;只保存摘要、链接和项目决策,不保存 Secret、token、完整 userid、手机号、邮箱或原始 payload;WRRA 后深度镜像等待 WOUA 差异收口或 WHMS 同步窗口决策 |
| `DELIVERY` | `docs/开发交付与变更管理规约.md` | 开发治理 | 开发交付事实源 | `CURRENT` | dev/qa | `GOV8,WDRG,WRRA` | `rg` | none | 2026-05-18 | `rg` | high | Issue、review、commit、交付规则;WRRA 后采用路线图门禁 + 运行优先 + WOUA 差异收口 + 单功能 Issue CSV |
| `QA-GATE` | `docs/测试规约与回归门禁.md` | 测试验收 | 测试和回归门禁事实源 | `CURRENT` | qa | `QAF8,GOV8` | 回归脚本/Playwright | none | 2026-05-13 | `rg` | high | 测试计划和 DONE 门禁 |
| `AGENT-PRACTICE` | `docs/Agent开发交付实践.md` | Agent 治理 | Agent 协作事实源 | `CURRENT` | dev | `GOV8,DG8` | Skill 校验 | none | 2026-05-13 | `rg` | medium | Agent 协作开发实践和设计主参考层级 |
| `AGENTS` | `AGENTS.md` | 执行硬约束 | 项目硬规则 | `CURRENT` | lead | `GOV8` | 人工核对 | none | 2026-05-13 | `rg` | high | 不可违反约束 |
| `SKILL-HYB` | `.agents/skills/hyb-oa-delivery/SKILL.md` | Skill | 项目交付 Skill | `CURRENT` | dev | `GOV8,DG8,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WRV1,WRA1` | quick_validate | none | 2026-05-19 | `quick_validate.py` | medium | 每轮交付操作入口;企微/OA 后续先读 API 能力目录、Secret 矩阵、路线图和 WHMSLIVE/WOUA/WAPI/WRRA/WRV1/WRA1 状态,不得跳过单功能合同直接做考勤审批镜像 |
| `SKILL-HYB` | `.agents/skills/hyb-oa-delivery/SKILL.md` | Skill | 项目交付 Skill | `CURRENT` | dev | `GOV8,DG8,WFDG,WDRG,WCP1,WCPC,WHMS,WHMSLIVE,WOUA,WAPI,WRRA,WRV1,WRA1,WMSG1` | quick_validate | none | 2026-05-19 | `quick_validate.py` | medium | 每轮交付操作入口;企微/OA 后续先读 API 能力目录、Secret 矩阵、路线图和 WHMSLIVE/WOUA/WAPI/WRRA/WRV1/WRA1/WMSG1 状态,不得跳过单功能合同直接做考勤审批镜像 |
| `REQ-WF` | `docs/需求-统一审批中心规约.md` | 需求事实源 | 审批模块规约 | `CURRENT` | product/backend | `AP6,WF8,WFOC,DBWFOC,WFDG,WOUA,WAPI,WRRA,WRV1,WRA1` | workflow 回归 | none | 2026-05-19 | `rg` | high | OA 主办审批、企微镜像、WRV1/WRA1 运行优先门禁、WOUA 差异收口前置和 OA 应急接管边界 |
| `REQ-OCR` | `docs/需求-报销发票OCR规约.md` | 需求事实源 | OCR 模块规约 | `CURRENT` | product/backend | `RI6,OCR8,BIZ8` | OCR 回归 | none | 2026-05-13 | `rg` | high | OCR 和发票边界 |
| `RULE-REIMB` | `docs/报销发票附件规则.md` | 需求事实源 | 报销发票附件规则 | `CURRENT` | product/finance | `RI6,BIZ8` | 报销回归 | none | 2026-05-13 | `rg` | high | 报销、发票、附件细则 |
@@ -103,7 +104,7 @@
| `MANUAL-EMPLOYEE` | `docs/员工快速上手.md` | 操作手册 | 员工手册 | `CURRENT` | product | `R7E,WFOC,DBWFOC,WFDG` | 人工验收 | none | 2026-05-18 | `rg` | low | 员工侧使用说明,HR/考勤优先企业微信,采购/合同/财务仍在 OA;区分企微镜像和 OA 应急接管 |
| `R7-DRAFT` | `docs/trialrun/R7扩大试运行草案.md` | 草案 | R7 准备材料 | `DRAFT` | product/qa | `R7E` | R7EP 报告 | none | 2026-05-13 | `rg` | medium | 不代表当前 R7E 执行状态 |
| `OPS-RUNBOOK` | `docs/trialrun/OPS7运维交接Runbook.md` | 运维草案 | OPS 准备材料 | `DRAFT` | ops | `OPS8,QAOPS8` | 只读检查 | none | 2026-05-13 | `rg` | medium | 不代表恢复演练已执行 |
| `TRIAL-REPORT` | `docs/trialrun/人工试运行报告.md` | 证据材料 | 试运行证据入口 | `EVIDENCE` | qa | `R7EP,OPS8,QAF8,WOUA,WAPI,WOUAFIX,WRV1,WRA1` | artifacts/qa-flow | none | 2026-05-19 | `rg` | medium | 只证明发生过;记录 WOUA-FIX 受控写入和 WRV1/WRA1 运行优先门禁,不直接放行深度镜像 |
| `TRIAL-REPORT` | `docs/trialrun/人工试运行报告.md` | 证据材料 | 试运行证据入口 | `EVIDENCE` | qa | `R7EP,OPS8,QAF8,WOUA,WAPI,WOUAFIX,WRV1,WRA1,WMSG1` | artifacts/qa-flow | none | 2026-05-19 | `rg` | medium | 只证明发生过;记录 WOUA-FIX 受控写入、WRV1/WRA1 运行优先门禁和 WMSG1 消息实发真机确认,不直接放行深度镜像 |
| `FBA-AUDIT` | `docs/trialrun/R7E后功能边界审计.md` | 证据材料 | R7E 后功能边界审计 | `EVIDENCE` | product/dev/qa | `FBA,R7E,QAOPS8,P2T` | Issue CSV | none | 2026-05-15 | `rg` | medium | 只作为功能边界、P2 候选和 Issue 草案证据,不直接派工 |
| `HISTORY-MATRIX` | `docs/历史功能状态矩阵.md` | 历史材料 | 历史功能索引 | `HISTORICAL` | product | `DCL7` | git 历史 | none | 2026-05-13 | `rg` | low | 只追溯历史 |
| `OLD-IMPL-PLAN` | `docs/implementation_plan.md` | 已移除历史 | 早期实施计划 | `REMOVED` | product | `DCL7` | git history | none | 2026-05-13 | manual | low | 从 git 历史恢复 |
@@ -193,3 +194,4 @@
- `ME6-3` 代表性企业微信真机门禁已关闭。
- MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检。
- R7E 真实扩大试运行阶段验收、P2 排序、R7E 收口、QAOPS8 上线硬化阶段收口、QAOPS9 上线硬化连续合同、PRELAUNCH 正式启用前公网预回归、CASHIER-VOUCHER-V1 财务闭环与银行回单附件、LAUNCH-DEPLOY-FINANCE 部署复检、FIN-PROD-ENABLE 正式常开、ACCOUNTING-HANDOFF-V1 代账交接 SOP、SYSTEM-COMPLETE-GATE 系统完成门禁、LAUNCH-OPS-V1 首周运营保障、REQ-COMPLETE-AUDIT 需求完成度复核、ATTV1 考勤统一入口、AUTO-REMAINING-CLOSEOUT 剩余自动化收口、HRWD-CONTACT-LIVE-TEST 公网企微通讯录真实写入闭环、WFOC 需求重构、DBWFOC 数据边界修正、WFDG 设计门禁、WDRG 路线图门禁、WCPC 配置复跑、WHMSLIVE、WAPI、WRRA、WOUA-FIX 和 WRA1 均已完成,当前 P0/P1 阻断为 0;P2D 已完成决策分流,P2-ORG 只读巡检已完成且无需写修复合同。LAUNCH-AUTO-OPS-V1 发现的公网 `payment_batch_v1=force_off` 漂移已由 AUTOREM 恢复为 `force_on`,正式自动巡检结论为 `GO_TO_OPERATE`;`erp_sync=force_off`,ERP 未来不接入 OA,正式支付接口、图片 OCR 和银行流水导入继续不进入当前路线。WCP1 已完成企业微信能力 QA-only 只读 POC,历史结论为 `PAUSE_FOR_CONFIG`;WCPC 使用既有在职测试号 `SMOKE002/测试员工`(脱敏 `oa_smoke***`)完成远端只读复跑,报告 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`,结论 `GO_TO_HR_MASTER_SYNC`,`nextStageAllowed=true`,`blockingCapabilities=[]`。WHMS 已实现并部署验证 `wecom_hr_master_sync_v1`、同步批次/逐员工记录、dry-run/apply、管理员 API、People 管理入口和 QA-only runner;默认和最终均为 `force_off`,公网 `SMOKE002` 因缺手机号、邮箱和部门按 `missing_required_field` 跳过,未执行生产真实员工批量 apply。WAPI 已将企微官方 API 能力目录、Secret 矩阵和运行优先路线落为当前事实源:通讯录读取使用 `WECOM_CONTACT_SECRET` 和 `user/list_id`,成员详情只作可选富化,人事助手/花名册、打卡、消息、OAuth 默认使用 `WECOM_AGENT_SECRET`,`WECOM_CHECKIN_SECRET` 只作专用打卡 override,`WECOM_HR_ASSISTANT_SECRET` 不参与默认读取;后续企微能力不清楚时先查官方 API 和 [企微 API 能力目录](./企微API能力目录.md),不得靠运行时多个 Secret 试错。WOUA-FIX 已按用户确认执行受控写入并复检:7 个 OA active 缺企微测试账号软归档,`T0000` seed 复活问题修正,`SMOKE201` 测试主管和待办副作用已转交,最终 WOUA 报告 `/app/artifacts/qa-flow/wecom-oa-user-consistency-20260518T161716Z/summary.json` 为 `PASS_WITH_FINDINGS`,但 OA active 5、企微 active 5、匹配 5、OA active 缺企微 0;剩余 5 个企微缺字段先接受不补,`HRWDTEST-20260517214548` 归档绑定保留审计。WRV1 原始报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T173402Z/summary.json` 曾因同步开关误阻断;WRA1 已修正并公网复跑,报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T180506Z/summary.json` 为 `PASS_WITH_CONFIG_GAPS`,入口/OAuth、Secret 矩阵、OA active 绑定、通讯录、人事助手、消息 dry-run 和打卡只读链路均通过,打卡记录 `readable_sync_disabled`。HR/考勤员工日常审批优先复用企业微信,OA 目标是按域镜像、人工接管、恢复回写和 RuleOps;采购、费用、合同、项目、报销、付款、AP、代账交接、审计和高敏附件继续 OA 主办。考勤/审批镜像、审批回调、OA 应急接管、恢复回写和 RuleOps 尚未实现;审批模板 ID、审批单号 `sp_no`、真实回调配置和 HR 写接口仍需后续独立合同处理;不得直接跳到 `wecom_attendance_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1` 或 `wecom_ruleops_v1`。HRWD 已完成 OA 驱动企业微信通讯录同步,并通过 `HRWDTEST-20260517214548` 真实公网 create/update/disable 验证;测试成员按审计要求保留离职/禁用状态。
- WMSG1 已完成企微应用消息实发与 Deeplink 真机验证:远端报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T234431Z/summary.json` 显示 `checks.message.status=OK`、`errcode=0`、`recipientCount=1`,用户确认收到“OA 运行就绪检查”并可点击进入 OA 通知页面;本证据只证明消息和 Deeplink 可用,不放行审批模板、测试 `sp_no`、真实回调或深度镜像。
+4 -2
查看文件
@@ -20,7 +20,7 @@
## 最近事实源链
R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8 -> DG9 -> R7E -> FBA -> QAOPS9/P2D -> P2-ORG -> P2-FIN-DECISION -> P2-FIN-V1 -> P2-OCR-SAMPLE -> P2Q -> P2AUTO -> P2AF -> P2-FIN-LIVE-DECISION -> P2-FIN-LIVE -> PRELAUNCH -> CASHIER-VOUCHER-V1 -> LAUNCH-DEPLOY-FINANCE -> FIN-PROD-ENABLE -> ACCOUNTING-HANDOFF-V1 -> SYSTEM-COMPLETE-GATE -> LAUNCH-OPS-V1 -> REQ-COMPLETE-AUDIT -> ATTV1 -> LAUNCH-AUTO-OPS-V1 -> AUTO-REMAINING-CLOSEOUT -> HR-WECOM-DIRECTORY-V1 -> HRWD-CONTACT-LIVE-TEST -> WCFB -> WFOC -> DBWFOC -> WFDG -> WDRG -> WCP1 -> WCPC -> WHMS -> WHMSLIVE -> WOUA -> WAPI -> WRRA -> WOUA-FIX -> WRV1 -> WRA1。
R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8 -> DG9 -> R7E -> FBA -> QAOPS9/P2D -> P2-ORG -> P2-FIN-DECISION -> P2-FIN-V1 -> P2-OCR-SAMPLE -> P2Q -> P2AUTO -> P2AF -> P2-FIN-LIVE-DECISION -> P2-FIN-LIVE -> PRELAUNCH -> CASHIER-VOUCHER-V1 -> LAUNCH-DEPLOY-FINANCE -> FIN-PROD-ENABLE -> ACCOUNTING-HANDOFF-V1 -> SYSTEM-COMPLETE-GATE -> LAUNCH-OPS-V1 -> REQ-COMPLETE-AUDIT -> ATTV1 -> LAUNCH-AUTO-OPS-V1 -> AUTO-REMAINING-CLOSEOUT -> HR-WECOM-DIRECTORY-V1 -> HRWD-CONTACT-LIVE-TEST -> WCFB -> WFOC -> DBWFOC -> WFDG -> WDRG -> WCP1 -> WCPC -> WHMS -> WHMSLIVE -> WOUA -> WAPI -> WRRA -> WOUA-FIX -> WRV1 -> WRA1 -> WMSG1。
- R6、PC6、PA6、FL6、AP6、RI6、LP6 已完成并部署。
- ME6 自动化、公网视觉矩阵和 `ME6-3` 代表性企业微信真机门禁已完成。
@@ -68,6 +68,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
- 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`,不放行深度镜像。
- WRA1 是 WRV1 后的运行验收门禁修正合同:确认 `WECOM_CHECKIN_SYNC_ENABLED` 是正式考勤同步开关,不应阻断 QA-only 打卡只读探测;runner 显式使用 `requireSyncEnabled=false` 复跑公网运行验收。远端报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T180506Z/summary.json` 为 `PASS_WITH_CONFIG_GAPS`,打卡 API 只读可读,审批模板、测试 `sp_no` 和真实回调仍为 `NEEDS_CONFIG`。
- WMSG1 是 WRA1 后的企微应用消息实发与 Deeplink 真机验证合同:使用现有 runner 单次设置 `WECOM_RUNTIME_TEST_SEND=1`,向管理员本人对应 OA 员工号 `HYD000006` 发送脱敏消息;报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T234431Z/summary.json` 显示 `errcode=0`、`recipientCount=1`,用户确认收到消息并可点击进入 OA 通知页面。审批模板、测试 `sp_no` 和真实回调仍需后续配置。
## 当前活跃治理流
@@ -123,6 +124,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| `WOUA-FIX` | `issues/2026-05-18_23-45-45-wecom-oa-user-consistency-fix-runtime-ready.csv` | 已部署并受控写入:OA/企微用户一致性差异收口 | 7 个 OA active 缺企微测试账号已软归档,`T0000` seed 不再复活,`SMOKE201` 测试主管/待办副作用已转交;WOUA 复检 active 5/5 匹配 | 不写企微资料;不补企微缺字段;不执行真实员工 WHMS 批量 apply;不放行深度考勤/审批镜像 |
| `WRV1` | `issues/2026-05-19_01-10-32-wecom-runtime-ready-v1.csv` | 已部署验证:企业微信运行优先门禁 | 新增 QA-only runner 和 focused 单测;公网 live 只读报告为 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`,入口/OAuth、Secret 矩阵、OA active 绑定、通讯录、人事助手和消息 dry-run 通过,打卡读取因 `WECOM_CHECKIN_SYNC_ENABLED=true` 未启用阻断 | 不新增公开 API、schema、前端页面;不补企微资料;不配置审批模板/`sp_no`/真实回调;不进入深度镜像 |
| `WRA1` | `issues/2026-05-19_01-55-43-wecom-runtime-acceptance-v1.csv` | 已部署验证:企微运行验收门禁修正 | QA-only 打卡只读探测不再要求正式同步开关;公网报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T180506Z/summary.json` 为 `PASS_WITH_CONFIG_GAPS`,打卡只读可读且正式同步未启用 | 不改公开 API/schema/UI/远端 env;不发送真实消息;不补企微资料;不进入深度镜像 |
| `WMSG1` | `issues/2026-05-19_07-41-37-wecom-message-live-verify-v1.csv` | 已完成:企微应用消息实发与 Deeplink 真机验证 | 远端单次设置 `WECOM_RUNTIME_TEST_SEND=1`,向管理员本人对应 OA 员工号 `HYD000006` 发送脱敏消息;报告 `/app/artifacts/qa-flow/wecom-runtime-ready-20260518T234431Z/summary.json` 为 `PASS_WITH_CONFIG_GAPS`,消息 `errcode=0`、`recipientCount=1`;用户确认收到并可点击进入 OA 通知页面 | 不改代码/schema/UI/远端持久 env;不补企微资料;不配置审批模板/`sp_no`/真实回调;不进入深度镜像 |
旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。
@@ -145,7 +147,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| [海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md) | PRD 主事实源 |
| [文档事实源状态矩阵](./文档事实源状态矩阵.md) | 文档分类、删除恢复和冲突规则 |
| [产品设计规则](./产品设计规则.md) | PC、移动、企业微信 WebView 设计事实源;DG8 后飞书工作台/飞书审批为唯一主 UI/布局参考;DG9 后按页面分层和样板选型 |
| [企微优先开发路线图](./企微优先开发路线图.md) | WDRG/WCP1/WCPC/WHMS/WHMSLIVE/WOUA/WAPI/WRRA/WOUA-FIX/WRV1 后企微优先 HR/考勤改造的阶段顺序、准入/退出门禁、并行规则、禁止跳阶段、API/Secret 口径、运行优先和 WOUA 差异收口事实源 |
| [企微优先开发路线图](./企微优先开发路线图.md) | WDRG/WCP1/WCPC/WHMS/WHMSLIVE/WOUA/WAPI/WRRA/WOUA-FIX/WRV1/WRA1/WMSG1 后企微优先 HR/考勤改造的阶段顺序、准入/退出门禁、并行规则、禁止跳阶段、API/Secret 口径、运行优先和 WOUA 差异收口事实源 |
| [企微 API 能力目录](./企微API能力目录.md) | WAPI/WRRA 后企微官方 API、Secret 矩阵、权限/可信 IP/回调模板、读写边界和运行优先决策事实源 |
| [产品口径](./产品口径.md) | 已拍板产品边界和业务规则 |
| [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) | OA 主办审批、企微主办 HR/考勤员工日常审批镜像、催办、超时提醒、审批效率 |