WCPC 完成已有测试号企微能力POC复跑

这个提交包含在:
2026-05-18 17:41:29 +08:00
父节点 a5f49cec3b
当前提交 3a6bfa0eaa
共修改 10 个文件,包含 95 行新增和 88 行删除
+2 -2
查看文件
@@ -16,7 +16,7 @@ Read only what is relevant:
- For UI/page work, PC/mobile/WeCom experience, approval UX, or domestic OA benchmarking, read `docs/产品设计规则.md` and `references/visual-qa.md`. DG8 makes Feishu workbench/approval the single main UI/layout reference, with Hyinda branding and project rules taking priority. DG9 adds the A/B/C page layering and shared workbench/mobile samples; choose the DG9 sample before designing or coding a page. Other products are only function/process/control references. Mobile page work must treat `docs/产品设计规则.md` as the source of truth for the unified mobile shell, icon grid, card lists, deep Push pages, sticky actions, safe-area, and cross-viewport matrix. 移动页必须先对齐该设计事实源,再进入实现或验证。
- For approval workflow, roles, self-approval, notification, deeplink, reminder, or escalation work, read `docs/需求-统一审批中心规约.md`.
- For HR lifecycle, employee onboarding/offboarding, Enterprise WeChat directory sync, or account disablement work, read `docs/需求-企业微信基础设施规约.md`, `docs/管理员手册.md`, and the latest HCLT/HRWD Issue CSV evidence first.
- For Enterprise WeChat-first HR/attendance runtime migration, read `docs/企微优先开发路线图.md` before planning or coding. WDRG makes the roadmap authoritative for stage order; WCPC currently waits for external Enterprise WeChat configuration after a `PAUSE_FOR_CONFIG` baseline, so do not start `wecom_hr_master_sync_v1`, `wecom_attendance_approval_mirror_v1`, `oa_hr_emergency_mode_v1`, `wecom_recovery_writeback_v1`, or `wecom_ruleops_v1` until WCPC reruns the capability POC and reaches the required gate.
- For Enterprise WeChat-first HR/attendance runtime migration, read `docs/企微优先开发路线图.md` before planning or coding. WDRG makes the roadmap authoritative for stage order; WCPC has rerun the capability POC with an existing active test account and reached `GO_TO_HR_MASTER_SYNC`, so the next allowed step is planning `wecom_hr_master_sync_v1`. Do not start `wecom_attendance_approval_mirror_v1`, `oa_hr_emergency_mode_v1`, `wecom_recovery_writeback_v1`, or `wecom_ruleops_v1` until their preceding stages exit.
- For reimbursement, invoice, OCR, duplicate invoice, or attachment work, read `docs/报销发票附件规则.md` and `references/reimbursement.md`.
- For local/WeCom/public trial-run, OCR runtime, Caddy, or DB drift work, read `docs/试运行与自动化验证手册.md` and `references/trialrun.md`.
- For how this skill should evolve, read `docs/Agent开发交付实践.md`.
@@ -105,7 +105,7 @@ Final responses should include:
- R6 scope defaults to reimbursement, leave, procurement, approval, Enterprise WeChat entry/notification, finance payment/export.
- Do not expand to budget, ERP, AI, full travel, or complex BPM during R6; record those as follow-up Issues.
- Enterprise WeChat personal app message is the formal approval notification channel after R5; mock and group bots are not acceptance evidence for R6 business notification.
- After WCPC, ERP is not a future OA integration target. HR/attendance employee daily approvals (leave, missed punch, outing, overtime) should reuse mature Enterprise WeChat capabilities first, while OA provides domain-based mirror, manual takeover, recovery writeback, finance closeout, and audit. Reimbursement, payment batches, AP, accounting handoff, procurement, expenses, contracts, projects, sensitive attachments, invoices, bank receipts, and accounting handoff materials remain OA-primary unless a later Issue changes that domain explicitly. OA-primary approvals may send Enterprise WeChat personal-app notifications, but messages must contain only dehydrated title/type/no/status/deeplink; do not upload procurement forms, contract bodies, quotes, supplier files, invoices, bank receipts, or accounting materials to WeCom native approvals or WeCom attachments. Before runtime migration, read `docs/企微优先开发路线图.md`, run or check `WECOM-CAPABILITY-POC-V1`/WCPC, and classify each capability as `CAN_REUSE_NOW`, `NEEDS_CONFIG`, `NEEDS_API_POC`, `KEEP_OA_PRIMARY`, or `NOT_SUPPORTED_BY_API`; missing Secret, callback, template, trusted IP, visible scope, or API permission must be recorded as `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`, not PASS. Current WCPC status is waiting for external configuration: use an existing active low-risk test account, provide test userid, approval template ID, and `sp_no`, and confirm check-in/approval/vacation/callback permissions; do not use disabled `HRWDTEST-20260517214548` as the main POC account. Baseline still has `contact.member_read=wecom_errcode_48009` and `hr.staff_read=wecom_errcode_60021`. Do not skip stage order: clear WCPC / `WECOM-CAPABILITY-POC-V1` -> `wecom_hr_master_sync_v1` -> `wecom_attendance_approval_mirror_v1` -> `oa_hr_emergency_mode_v1` -> `wecom_recovery_writeback_v1` -> `wecom_ruleops_v1`. UI and API work must distinguish `OA 主办`, `企微镜像`, and `OA 应急接管`. OA-driven Enterprise WeChat directory create/update/disable is live verified; for later HR/WeCom directory issues, first check configuration, permission, department, and data-specific causes before treating the capability as unfinished. After WCFB, Enterprise WeChat check-in sync uses an authorized custom app Secret: `WECOM_CHECKIN_SECRET` is an explicit override for a dedicated check-in app, and when it is empty OA can reuse the authorized workbench app `WECOM_AGENT_SECRET`.
- After WCPC, ERP is not a future OA integration target. HR/attendance employee daily approvals (leave, missed punch, outing, overtime) should reuse mature Enterprise WeChat capabilities first, while OA provides domain-based mirror, manual takeover, recovery writeback, finance closeout, and audit. Reimbursement, payment batches, AP, accounting handoff, procurement, expenses, contracts, projects, sensitive attachments, invoices, bank receipts, and accounting handoff materials remain OA-primary unless a later Issue changes that domain explicitly. OA-primary approvals may send Enterprise WeChat personal-app notifications, but messages must contain only dehydrated title/type/no/status/deeplink; do not upload procurement forms, contract bodies, quotes, supplier files, invoices, bank receipts, or accounting materials to WeCom native approvals or WeCom attachments. Before runtime migration, read `docs/企微优先开发路线图.md`, run or check `WECOM-CAPABILITY-POC-V1`/WCPC, and classify each capability as `CAN_REUSE_NOW`, `NEEDS_CONFIG`, `NEEDS_API_POC`, `KEEP_OA_PRIMARY`, or `NOT_SUPPORTED_BY_API`; missing Secret, callback, template, trusted IP, visible scope, or API permission must be recorded as `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`, not PASS. Current WCPC status: existing active test account `SMOKE002/测试员工` (reported only as `oa_smoke***`) reran successfully with report `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`, `status=PASS`, `conclusion=GO_TO_HR_MASTER_SYNC`, and `blockingCapabilities=[]`. `contact.member_read`, `hr.staff_read`, check-in record/rule read, and vacation quota are reusable for HR master sync; approval template ID, approval `sp_no`, callback config, and HR write API remain later-stage gaps. Do not skip stage order: `WECOM-CAPABILITY-POC-V1`/WCPC -> `wecom_hr_master_sync_v1` -> `wecom_attendance_approval_mirror_v1` -> `oa_hr_emergency_mode_v1` -> `wecom_recovery_writeback_v1` -> `wecom_ruleops_v1`. UI and API work must distinguish `OA 主办`, `企微镜像`, and `OA 应急接管`. OA-driven Enterprise WeChat directory create/update/disable is live verified; for later HR/WeCom directory issues, first check configuration, permission, department, and data-specific causes before treating the capability as unfinished. After WCFB, Enterprise WeChat check-in sync uses an authorized custom app Secret: `WECOM_CHECKIN_SECRET` is an explicit override for a dedicated check-in app, and when it is empty OA can reuse the authorized workbench app `WECOM_AGENT_SECRET`.
- Approval-chain correctness can be proven by PC or automation, while Enterprise WeChat validates entry, binding,免登录, notification, deeplink, and mobile layout.
- If real-device mobile validation is paused after automation passes, record the gate as `PAUSED`; do not close RS6/UI6/R6 mobile blockers until representative real-device confirmation is recorded.
- Role-specific pages should use one shared OA/mobile framework and tailor summaries, entries, actions, and sensitive fields by role. Do not create unrelated UI systems for employee, approver, finance, admin, or CEO views.
+5 -5
查看文件
@@ -44,8 +44,8 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
- 2026-05-18 DBWFOC 已完成“企微能力参考 + OA 主办数据边界”修正:HR/考勤员工日常审批优先复用企业微信;采购、费用、合同、项目、报销、付款、AP、代账交接、审计和高敏附件继续 OA 主办。企业微信成熟功能可作为流程、字段、交互和规则参考,但不默认托管 OA 主办业务数据;企业微信消息只承载脱敏标题、业务类型、编号、状态和 OA deeplink。采购单附件、合同正文、报价、供应商资料、发票、银行回单和代账资料不进入企业微信原生审批或企业微信附件。本轮只更新需求事实源、手册、索引、项目 skill 和 Issue CSV,不改业务代码、不部署、不改公网配置。
- 2026-05-18 WFDG 已完成“企微优先 + OA 主办数据边界”的设计规约门禁:后续开发前必须先判定业务域主办方、主事实源、操作端、镜像方向、附件归属和审计责任;PC/移动页面需区分 `OA 主办`、`企微镜像` 和 `OA 应急接管`;企微同步必须具备幂等、重试、脱敏日志、审计记录和 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`。下一轮先做 `WECOM-CAPABILITY-POC-V1`,输出 `CAN_REUSE_NOW`、`NEEDS_CONFIG`、`NEEDS_API_POC`、`KEEP_OA_PRIMARY`、`NOT_SUPPORTED_BY_API` 能力矩阵;本轮不改业务代码、不部署、不调用生产写接口。
- 2026-05-18 WDRG 已完成“企微优先后续开发路线图”门禁:新增 `docs/企微优先开发路线图.md`,固定“路线图门禁 + 单功能 Issue CSV”的工程节奏。后续顺序为 `WECOM-CAPABILITY-POC-V1` -> `wecom_hr_master_sync_v1` -> `wecom_attendance_approval_mirror_v1` -> `oa_hr_emergency_mode_v1` -> `wecom_recovery_writeback_v1` -> `wecom_ruleops_v1`;阶段未退出前禁止跳阶段。本轮只更新路线图、交付规约、事实源、手册、项目 skill 和 Issue CSV,不改业务代码、不部署、不调用公网写接口。
- 2026-05-18 WCP1 已完成企业微信能力 POC:新增 QA-only 只读 runner `scripts/qa/check-wecom-capability-poc.mjs`,本地不开启 live read 时可解释为 `PAUSE_FOR_API_POC`,本地开启 live read 但无真实 env 时可解释为 `PAUSE_FOR_CONFIG`;部署服务器容器内 live 只读探测报告为远端 `/tmp/wecom-capability-poc-wcp1/summary.json`,结论同为 `PAUSE_FOR_CONFIG`。当前可复用工作台 token、HCLT 通讯录 create/update/disable、部门读取和人事字段读取;仍需补通讯录测试成员读取 `wecom_errcode_48009`、人事助手测试员工读取 `wecom_errcode_60021`、打卡同步、审批模板/实例、假期权限 `wecom_errcode_301062` 和回调配置。因此不得进入 `wecom_hr_master_sync_v1`,需先补配置并复跑 POC。
- 2026-05-18 WCPC 已建立 WCP1 配置收口合同,并完成未补配置前远端基线复跑:报告目录 `/tmp/wecom-capability-poc-wcpc-baseline`,结论仍为 `PAUSE_FOR_CONFIG`,阻断仍是 `contact.member_read=wecom_errcode_48009` 和 `hr.staff_read=wecom_errcode_60021`。当前改为使用已有在职测试号复跑,等待用户提供测试号 userid、测试审批模板 ID、审批单号 `sp_no`、打卡/审批/假期/回调权限后复跑完整 POC;本轮不部署、不改业务代码、不持久写服务器 `.env`。
- 2026-05-18 WCP1 已完成企业微信能力 POC:新增 QA-only 只读 runner `scripts/qa/check-wecom-capability-poc.mjs`,本地不开启 live read 时可解释为 `PAUSE_FOR_API_POC`,本地开启 live read 但无真实 env 时可解释为 `PAUSE_FOR_CONFIG`;部署服务器容器内 live 只读探测报告为远端 `/tmp/wecom-capability-poc-wcp1/summary.json`,历史结论为 `PAUSE_FOR_CONFIG`。该报告继续作为初始配置缺口证据保留,当前 HR 主数据镜像准入以 WCPC 复跑结论为准。
- 2026-05-18 WCPC 已完成 WCP1 配置收口复跑:先完成未补配置前远端基线复跑,报告目录 `/tmp/wecom-capability-poc-wcpc-baseline`,结论为 `PAUSE_FOR_CONFIG`;随后按用户要求自动查找并使用既有在职低风险测试号 `SMOKE002/测试员工`(报告只记录 `oa_smoke***`)复跑,只读报告 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json` 返回 `PASS / GO_TO_HR_MASTER_SYNC`,`nextStageAllowed=true`,`blockingCapabilities=[]`,状态计数为 `CAN_REUSE_NOW=15`、`NEEDS_CONFIG=3`、`NEEDS_API_POC=1`、`KEEP_OA_PRIMARY=1`。本轮不部署、不改业务代码、不持久写服务器 `.env`;下一步允许规划 `wecom_hr_master_sync_v1`,审批模板/实例、回调配置和 HR 写接口仍留后续合同。
## 关键证据索引
@@ -131,9 +131,9 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
| WFOC 企微优先 + OA 无痛接管需求重构 | 通过,无运行时变更 | Issue `issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv`;PRD、企业微信基础设施规约、统一审批规约、请假考勤规约、管理员手册、员工快速上手、文档索引和事实源矩阵已回写。结论只代表需求方向冻结,不代表企微审批镜像、OA 接管或恢复回写已实现。 |
| DBWFOC 企微能力参考 + OA 主办数据边界 | 通过,无运行时变更 | Issue `issues/2026-05-18_11-35-39-data-boundary-wfoc-revision.csv`;PRD、产品口径、企微基础设施规约、统一审批规约、请假考勤规约、采购/合同/报销/项目规约、管理员手册、员工快速上手、文档索引、事实源矩阵和项目 skill 已回写。结论固定:HR/考勤员工日常审批企微优先,OA 主办高敏业务不进企微原生审批或企微附件。 |
| WFDG 企微优先设计门禁 | 通过,无运行时变更 | Issue `issues/2026-05-18_12-21-01-wecom-first-design-gate.csv`;产品口径、PRD、产品设计规则、企业微信基础设施规约、统一审批规约、请假考勤规约、管理员手册、员工快速上手、文档索引、事实源矩阵和项目 skill 已回写。结论 `DONE_DESIGN_READY`,下一步进入 `WECOM-CAPABILITY-POC-V1`;不代表企微 HR/考勤镜像、OA 应急接管、恢复回写或 RuleOps 已实现。 |
| WDRG 企微优先开发路线图门禁 | 通过,无运行时变更 | Issue `issues/2026-05-18_12-44-10-wecom-development-roadmap-gate.csv`;新增 `docs/企微优先开发路线图.md`,并回写交付规约、产品口径、PRD、管理员手册、员工快速上手、文档索引、事实源矩阵和项目 skill。结论 `DONE_ROADMAP_READY`,下一步仍是 `WECOM-CAPABILITY-POC-V1`;不代表运行时迁移已完成。 |
| WCP1 企业微信能力 POC | 完成只读 POC,结论 `PAUSE_FOR_CONFIG` | Issue `issues/2026-05-18_13-30-07-wecom-capability-poc-v1.csv`;新增 `scripts/qa/check-wecom-capability-poc.mjs`。本地脚本门禁通过,远端容器内 live 只读报告为 `/tmp/wecom-capability-poc-wcp1/summary.json`:`CAN_REUSE_NOW=9`、`NEEDS_CONFIG=8`、`NEEDS_API_POC=1`、`KEEP_OA_PRIMARY=1`。阻断为 `contact.member_read=wecom_errcode_48009`、`hr.staff_read=wecom_errcode_60021`、打卡同步未开启、缺审批模板/实例、假期权限 `wecom_errcode_301062` 和回调配置;当前不得进入 HR 主数据镜像开发。 |
| WCPC 企业微信能力 POC 配置收口 | 当前暂停,等待企微后台配置 | Issue `issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv`;未补配置前远端基线复跑报告 `/tmp/wecom-capability-poc-wcpc-baseline`,结果仍为 `PASS / PAUSE_FOR_CONFIG`,`CAN_REUSE_NOW=9`、`NEEDS_CONFIG=8`、`NEEDS_API_POC=1`、`KEEP_OA_PRIMARY=1`。现改为使用已有在职测试号,需要测试号 userid、审批模板 ID、审批单号 `sp_no`、打卡/审批/假期/回调权限后复跑完整 POC。 |
| WDRG 企微优先开发路线图门禁 | 通过,无运行时变更 | Issue `issues/2026-05-18_12-44-10-wecom-development-roadmap-gate.csv`;新增 `docs/企微优先开发路线图.md`,并回写交付规约、产品口径、PRD、管理员手册、员工快速上手、文档索引、事实源矩阵和项目 skill。结论 `DONE_ROADMAP_READY`;其下一步 `WECOM-CAPABILITY-POC-V1` 已由 WCP1/WCPC 执行并收口,不代表运行时迁移已完成。 |
| WCP1 企业微信能力 POC | 完成只读 POC,历史结论 `PAUSE_FOR_CONFIG` | Issue `issues/2026-05-18_13-30-07-wecom-capability-poc-v1.csv`;新增 `scripts/qa/check-wecom-capability-poc.mjs`。本地脚本门禁通过,远端容器内 live 只读报告为 `/tmp/wecom-capability-poc-wcp1/summary.json`:`CAN_REUSE_NOW=9`、`NEEDS_CONFIG=8`、`NEEDS_API_POC=1`、`KEEP_OA_PRIMARY=1`。阻断为 `contact.member_read=wecom_errcode_48009`、`hr.staff_read=wecom_errcode_60021`、打卡同步未开启、缺审批模板/实例、假期权限 `wecom_errcode_301062` 和回调配置;该历史阻断已由 WCPC 复跑收口。 |
| WCPC 企业微信能力 POC 配置收口 | 通过,结论 `GO_TO_HR_MASTER_SYNC` | Issue `issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv`;未补配置前远端基线复跑报告 `/tmp/wecom-capability-poc-wcpc-baseline` 为 `PASS / PAUSE_FOR_CONFIG`;随后使用既有在职测试号 `SMOKE002/测试员工`(脱敏 `oa_smoke***`)完成只读复跑,报告 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`,`nextStageAllowed=true`,`blockingCapabilities=[]`,`CAN_REUSE_NOW=15`、`NEEDS_CONFIG=3`、`NEEDS_API_POC=1`、`KEEP_OA_PRIMARY=1`。下一步允许规划 `wecom_hr_master_sync_v1`;审批模板/实例、回调配置和 HR 写接口仍留后续合同。 |
## R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进
+7 -6
查看文件
@@ -41,15 +41,16 @@
- 路线图事实源为 [企微优先开发路线图](./企微优先开发路线图.md);该路线图不代表任何运行时迁移能力已完成。
### P0-6 WCP1 企业微信能力 POC 结论
- WCP1 已完成 QA-only 只读 POC,结论为 `PAUSE_FOR_CONFIG`,不是 `GO_TO_HR_MASTER_SYNC`。
- 已可复用:工作台应用 token、核心配置、HCLT 通讯录 create/update/disable 证据、通讯录部门读取、人事助手字段配置读取。
- 需配置后复跑:通讯录测试成员读取 `wecom_errcode_48009`、人事助手测试员工读取 `wecom_errcode_60021`、打卡同步开关、审批模板 ID、测试审批单号、假期权限 `wecom_errcode_301062`、回调 URL/Token/AESKey。
- 在 POC 复跑得出 `GO_TO_HR_MASTER_SYNC` 前,不得启动 `wecom_hr_master_sync_v1`、考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps 正式写入。
- WCP1 已完成 QA-only 只读 POC,历史结论为 `PAUSE_FOR_CONFIG`;该阻断已由 WCPC 复跑收口。
- 已可复用:工作台应用 token、核心配置、HCLT 通讯录 create/update/disable 证据、通讯录部门读取、人事助手字段配置读取;WCPC 又确认既有在职测试号的通讯录成员读取、人事助手花名册读取、打卡短窗口记录/规则读取和假期余额读取可用。
- WCP1 初始缺口已留痕:通讯录测试成员读取 `wecom_errcode_48009`、人事助手测试员工读取 `wecom_errcode_60021`、打卡同步开关、审批模板 ID、测试审批单号、假期权限 `wecom_errcode_301062`、回调 URL/Token/AESKey。当前仍未补齐的是审批模板 ID、测试审批单号、真实回调配置和 HR 写接口 POC。
- WCP1 报告继续作为初始配置缺口证据保留,当前 HR 主数据镜像准入以 WCPC 结论为准。
### P0-7 WCPC 配置复跑口径
- WCPC 只做企业微信后台配置收口和只读 POC 复跑,不改业务代码、不部署、不持久写服务器 `.env`。
- 复跑使用已有在职测试号和一条新建企微测试审批单;需要非敏感值:测试号 userid、审批模板 ID、审批单号 `sp_no`;不得使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试号。
- 当前未补配置前的远端基线仍为 `PAUSE_FOR_CONFIG`,不得进入 `wecom_hr_master_sync_v1`。
- 已按用户要求自动查找并使用既有在职低风险测试号 `SMOKE002/测试员工` 复跑;报告和文档只记录脱敏企业微信 userid 前缀 `oa_smoke***`,不得使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试号。
- 复跑报告为远端 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`,结论 `GO_TO_HR_MASTER_SYNC`,`nextStageAllowed=true`,`blockingCapabilities=[]`。
- 当前允许下一步规划 `wecom_hr_master_sync_v1`;审批模板 ID、审批单号 `sp_no`、真实回调配置和 HR 写接口仍需后续独立合同处理,不得直接跳到考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps。
---
+14 -11
查看文件
@@ -21,9 +21,9 @@
| --- | --- | --- |
| `DBWFOC` | 已完成 | 固定数据边界:HR/考勤员工日常审批企微优先,OA 主办高敏业务不进企微原生审批或企微附件。 |
| `WFDG` | 已完成 | 固定设计门禁:先判定主办方、数据边界、入口交互、隐私消息、同步审计、应急接管、恢复回写和 RuleOps 边界。 |
| `WDRG` | 已完成 | 固定开发路线图和节奏,下一步只允许进入 `WECOM-CAPABILITY-POC-V1`。 |
| `WCP1` | 当前暂停配置 | 已完成只读 POC runner 和远端只读探测,结论 `PAUSE_FOR_CONFIG`;不得进入 `wecom_hr_master_sync_v1`,需先补企微配置/权限后复跑 POC。 |
| `WCPC` | 当前等待外部配置 | 已建立配置收口合同并完成未补配置前基线复跑;等待已有在职测试号 userid、审批模板 ID、审批单号和企微后台权限后复跑完整 POC。 |
| `WDRG` | 已完成 | 固定开发路线图和节奏;其下一步 `WECOM-CAPABILITY-POC-V1` 已由 WCP1/WCPC 执行并收口。 |
| `WCP1` | 已完成 | 已完成只读 POC runner 和远端只读探测,历史结论为 `PAUSE_FOR_CONFIG`;后续由 WCPC 复跑收口。 |
| `WCPC` | 已完成 | 已使用既有在职低风险测试号 `SMOKE002/测试员工`(报告只记录 `oa_smoke***`)完成远端只读复跑,结论 `GO_TO_HR_MASTER_SYNC`;下一步允许规划 `wecom_hr_master_sync_v1`,不得直接跳到考勤/审批镜像、应急、回写或 RuleOps。 |
## 3. 阶段路线
@@ -89,23 +89,26 @@ POC 默认只读或低风险探测。任何生产写操作、企微规则写入
- `approval.vacation_quota`:假期余额读取返回 `wecom_errcode_301062`,缺假期权限。
- `callback.config`:回调 URL、Token、AESKey 未作为可读配置注入,本轮不能证明回调链路。
因此,当前下一步不是 `wecom_hr_master_sync_v1` 开发,而是补齐或确认上述配置后复跑 `WECOM-CAPABILITY-POC-V1`。只有 `contact.member_read` 与 `hr.staff_read` 至少对一个已有在职测试号通过,并且能力矩阵给出 `GO_TO_HR_MASTER_SYNC`,才允许进入 HR 主数据镜像合同。
上述 WCP1 阻断已由 WCPC 使用既有在职测试号完成复跑收口。WCP1 历史报告仍保留为配置缺口证据,但当前阶段准入以 WCPC 结论为准。
## 8. WCPC 配置收口状态
2026-05-18 已建立 `WCP1-CONFIG-CLOSEOUT-V1` 合同,目标是用已有在职测试号和一条新建企业微信测试审批单复跑完整 POC。本轮不开发业务功能、不部署、不持久修改服务器 `.env`,服务器复跑只使用临时环境变量。
2026-05-18 已建立并完成 `WCP1-CONFIG-CLOSEOUT-V1` 合同。用户要求改用已有账户后,已通过远端只读候选扫描选用 `SMOKE002/测试员工` 作为既有在职低风险测试号;报告、文档和 Issue 只记录脱敏企业微信 userid 前缀 `oa_smoke***`。本轮不开发业务功能、不部署、不持久修改服务器 `.env`,服务器复跑只使用临时环境变量和既有容器配置。
当前已完成:
- 建立 WCPC Issue CSV。
- 使用现有远端配置和历史 `HRWDTEST-20260517214548` 做基线复跑,报告目录为远端 `/tmp/wecom-capability-poc-wcpc-baseline`。
- 基线结论仍为 `PAUSE_FOR_CONFIG`,`contact.member_read=wecom_errcode_48009`,`hr.staff_read=wecom_errcode_60021`。
- 使用 `SMOKE002/测试员工` 复跑既有测试号只读 POC,报告为远端 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`。
- 复跑结果:`status=PASS`,`conclusion=GO_TO_HR_MASTER_SYNC`,`nextStageAllowed=true`,`blockingCapabilities=[]`,状态计数为 `CAN_REUSE_NOW=15`、`NEEDS_CONFIG=3`、`NEEDS_API_POC=1`、`KEEP_OA_PRIMARY=1`。
- HR 主数据镜像准入项已通过:`contact.member_read=CAN_REUSE_NOW`、`hr.staff_read=CAN_REUSE_NOW`;打卡记录/规则和假期余额只读能力也已返回可复用状态。
等待外部配置:
剩余非阻断配置项:
- 已有在职测试号 userid。
- 测试审批模板 ID。
- 测试审批单号 `sp_no`。
- 打卡 API、审批、假期余额和回调配置权限确认。
- `approval.template_detail=NEEDS_CONFIG`:缺少本轮可用审批模板 ID。
- `approval.instance_detail=NEEDS_CONFIG`:缺少本轮可用审批单号 `sp_no`。
- `callback.config=NEEDS_CONFIG`:本轮只读报告未证明真实回调配置存在。
- `hr.staff_update_classification=NEEDS_API_POC`:人事助手资料更新属于写接口,需单独批准后再做低风险 POC。
在这些配置完成并复跑前,`wecom_hr_master_sync_v1` 仍不得启动。
当前允许进入下一步 `wecom_hr_master_sync_v1` 的方案和 Issue CSV 规划;考勤/审批镜像仍需先补审批模板、审批单、回调配置并另建 `wecom_attendance_approval_mirror_v1` 合同,不得把 WCPC 误读为运行时迁移已完成。
+9 -9
查看文件
@@ -65,8 +65,8 @@
| `DBWFOC` | `issues/2026-05-18_11-35-39-data-boundary-wfoc-revision.csv` | `EVIDENCE` | 企微能力参考 + OA 主办数据边界修正已收口;HR/考勤员工日常审批企微优先,采购/合同/财务等 OA 主办高敏业务不进入企微原生审批或企微附件 |
| `WFDG` | `issues/2026-05-18_12-21-01-wecom-first-design-gate.csv` | `EVIDENCE` | 企微优先设计规约门禁已收口:固定主办方与数据边界矩阵、入口交互、隐私附件消息、同步审计失败处理、应急接管、恢复回写、RuleOps 和 `WECOM-CAPABILITY-POC-V1` 验收口径 |
| `WDRG` | `issues/2026-05-18_12-44-10-wecom-development-roadmap-gate.csv` | `EVIDENCE` | 企微优先开发路线图门禁已收口:固定路线图门禁、单功能 Issue CSV 节奏、阶段顺序、并行规则和下一轮 POC 合同口径 |
| `WCP1` | `issues/2026-05-18_13-30-07-wecom-capability-poc-v1.csv` | `EVIDENCE` | 企业微信能力 POC 已完成,结论 `PAUSE_FOR_CONFIG`;当前不得进入 HR 主数据镜像开发,需先补配置/权限并复跑 POC |
| `WCPC` | `issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv` | `CURRENT` | WCP1 配置收口当前等待外部企微配置;已完成未补配置前基线复跑,结论仍为 `PAUSE_FOR_CONFIG` |
| `WCP1` | `issues/2026-05-18_13-30-07-wecom-capability-poc-v1.csv` | `EVIDENCE` | 企业微信能力 POC 已完成,历史结论 `PAUSE_FOR_CONFIG`;初始配置缺口已由 WCPC 复跑收口 |
| `WCPC` | `issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv` | `CURRENT` | WCP1 配置收口已用既有在职测试号复跑通过,结论 `GO_TO_HR_MASTER_SYNC`,允许下一步规划 `wecom_hr_master_sync_v1` |
旧 Issue CSV 保留为历史审计证据:不删除、不批量回写、不移动到 `docs/archive/` 或其他归档目录。新连续合同如替代旧合同,只在新合同 `Notes` 或文档索引中说明 supersedes。
@@ -76,19 +76,19 @@
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `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` | `rg` | none | 2026-05-18 | `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` | `audit-docs` | none | 2026-05-18 | `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` | Issue CSV | `docs/requirements-specification.md` | 2026-05-18 | `rg` | high | WCPC 后定义当前仍等待企微配置复跑,尚不能进入 HR 主数据镜像;ERP 未来不接入 OA |
| `PRODUCT-SCOPE` | `docs/产品口径.md` | 需求事实源 | 产品边界事实源 | `CURRENT` | product | `REQ8,P2T,WFDG,WDRG,WCP1,WCPC` | `rg` | none | 2026-05-18 | `rg` | high | 记录已拍板产品边界、企微/OA 设计门禁、开发路线图和 WCPC 配置阻断 |
| `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WDRG,WCP1,WCPC` | Issue CSV | `docs/requirements-specification.md` | 2026-05-18 | `rg` | high | WCPC 后定义当前允许规划 HR 主数据镜像;ERP 未来不接入 OA |
| `PRODUCT-SCOPE` | `docs/产品口径.md` | 需求事实源 | 产品边界事实源 | `CURRENT` | product | `REQ8,P2T,WFDG,WDRG,WCP1,WCPC` | `rg` | none | 2026-05-18 | `rg` | high | 记录已拍板产品边界、企微/OA 设计门禁、开发路线图和 WCPC 准入结论 |
| `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` | Issue CSV | none | 2026-05-18 | `rg` | high | WCPC 后记录企微 HR/考勤路线阶段顺序和当前等待配置复跑 |
| `ROADMAP-WECOM` | `docs/企微优先开发路线图.md` | 开发治理 | 企微优先开发路线图事实源 | `CURRENT` | product/dev | `WDRG,WCP1,WCPC` | Issue CSV | none | 2026-05-18 | `rg` | high | WCPC 后记录企微 HR/考勤路线阶段顺序和当前允许规划 HR 主数据镜像 |
| `DELIVERY` | `docs/开发交付与变更管理规约.md` | 开发治理 | 开发交付事实源 | `CURRENT` | dev/qa | `GOV8,WDRG` | `rg` | none | 2026-05-18 | `rg` | high | Issue、review、commit、交付规则;WDRG 后采用路线图门禁 + 单功能 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` | quick_validate | none | 2026-05-18 | `quick_validate.py` | medium | 每轮交付操作入口;企微/OA 后续先读路线图和 WCPC 结论,当前不得直接开发 HR 主数据镜像 |
| `SKILL-HYB` | `.agents/skills/hyb-oa-delivery/SKILL.md` | Skill | 项目交付 Skill | `CURRENT` | dev | `GOV8,DG8,WFDG,WDRG,WCP1,WCPC` | quick_validate | none | 2026-05-18 | `quick_validate.py` | medium | 每轮交付操作入口;企微/OA 后续先读路线图和 WCPC 结论,当前可规划 HR 主数据镜像 |
| `REQ-WF` | `docs/需求-统一审批中心规约.md` | 需求事实源 | 审批模块规约 | `CURRENT` | product/backend | `AP6,WF8,WFOC,DBWFOC,WFDG` | workflow 回归 | none | 2026-05-18 | `rg` | high | OA 主办审批、企微镜像和 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 | 报销、发票、附件细则 |
| `REQ-WECOM` | `docs/需求-企业微信基础设施规约.md` | 需求事实源 | 企业微信边界规约 | `CURRENT` | product/backend | `R7E,ORG8,WF8,ATTV1,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WCP1,WCPC` | live smoke/真机反馈/Issue CSV | none | 2026-05-18 | `rg` | high | 企微优先承担 HR/考勤员工日常审批和人事/打卡能力;WCPC 记录配置复跑口径;采购、合同、项目、报销和财务继续 OA 主办 |
| `REQ-WECOM` | `docs/需求-企业微信基础设施规约.md` | 需求事实源 | 企业微信边界规约 | `CURRENT` | product/backend | `R7E,ORG8,WF8,ATTV1,HR-WECOM-DIRECTORY-V1,WFOC,DBWFOC,WFDG,WCP1,WCPC` | live smoke/真机反馈/Issue CSV | none | 2026-05-18 | `rg` | high | 企微优先承担 HR/考勤员工日常审批和人事/打卡能力;WCPC 记录 HR 主数据镜像准入通过;采购、合同、项目、报销和财务继续 OA 主办 |
| `RUNBOOK-TRIAL` | `docs/试运行与自动化验证手册.md` | 操作手册 | 试运行验证手册 | `CURRENT` | qa/ops | `R7E,QAOPS8` | live readiness | none | 2026-05-13 | `rg` | medium | 本地、公网、企业微信和真实 OCR 验证 |
| `MANUAL-ADMIN` | `docs/管理员手册.md` | 操作手册 | 管理员手册 | `CURRENT` | ops/admin | `ORG8,R7E,WFOC,DBWFOC,WFDG` | 人工验收 | none | 2026-05-18 | `rg` | medium | 管理员上线、企微优先边界、OA 主办数据边界、OA 应急接管、恢复回写和 POC 前置 |
| `MANUAL-EMPLOYEE` | `docs/员工快速上手.md` | 操作手册 | 员工手册 | `CURRENT` | product | `R7E,WFOC,DBWFOC,WFDG` | 人工验收 | none | 2026-05-18 | `rg` | low | 员工侧使用说明,HR/考勤优先企业微信,采购/合同/财务仍在 OA;区分企微镜像和 OA 应急接管 |
@@ -107,7 +107,7 @@
| `docs/文档事实源状态矩阵.md` | 当前事实源 | 文档分类和恢复规则 |
| `docs/海音达OA-MVP需求规格说明书.md` | 当前事实源 | PRD 主事实源 |
| `docs/产品设计规则.md` | 当前事实源 | PC、移动、企业微信设计规则;DG8 主 UI/布局参考层级 |
| `docs/企微优先开发路线图.md` | 当前事实源 | WDRG/WCP1/WCPC 后企微优先 HR/考勤改造阶段顺序、准入/退出门禁、禁止跳阶段和当前 POC 配置阻断 |
| `docs/企微优先开发路线图.md` | 当前事实源 | WDRG/WCP1/WCPC 后企微优先 HR/考勤改造阶段顺序、准入/退出门禁、禁止跳阶段和当前 HR 主数据镜像准入 |
| `docs/产品口径.md` | 当前事实源 | 产品边界和业务规则 |
| `docs/需求-统一审批中心规约.md` | 当前事实源 | 审批、催办、超时、效率摘要 |
| `docs/报销发票附件规则.md` | 当前事实源 | 报销、发票、附件细则 |
@@ -182,4 +182,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 路线图门禁均已完成,当前 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 已建立配置收口合同并完成未补配置前基线复跑,结论仍为 `PAUSE_FOR_CONFIG`。当前改为使用已有在职测试号,等待测试号 userid、审批模板 ID、测试审批单号、打卡/审批/假期/回调权限配置后复跑完整 POC,不使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试号。HR/考勤员工日常审批优先复用企业微信,OA 目标是按域镜像、人工接管、恢复回写和 RuleOps;采购、费用、合同、项目、报销、付款、AP、代账交接、审计和高敏附件继续 OA 主办。该方向尚未实现运行时迁移,当前不得进入 `wecom_hr_master_sync_v1`,需先完成 WCPC 并取得 `GO_TO_HR_MASTER_SYNC`,再按 [企微优先开发路线图](./企微优先开发路线图.md) 另拆 `wecom_hr_master_sync_v1`、`wecom_attendance_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1`、`wecom_ruleops_v1`;阶段未退出前不得跳阶段。HRWD 已完成 OA 驱动企业微信通讯录同步,并通过 `HRWDTEST-20260517214548` 真实公网 create/update/disable 验证;测试成员按审计要求保留离职/禁用状态。
- 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 配置复跑均已完成,当前 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=[]`。HR/考勤员工日常审批优先复用企业微信,OA 目标是按域镜像、人工接管、恢复回写和 RuleOps;采购、费用、合同、项目、报销、付款、AP、代账交接、审计和高敏附件继续 OA 主办。该方向尚未实现运行时迁移,当前允许进入 `wecom_hr_master_sync_v1` 方案和 Issue CSV 规划;审批模板 ID、审批单号 `sp_no`、真实回调配置和 HR 写接口仍需后续独立合同处理。后续仍须按 [企微优先开发路线图](./企微优先开发路线图.md) 另拆 `wecom_hr_master_sync_v1`、`wecom_attendance_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1`、`wecom_ruleops_v1`;阶段未退出前不得跳阶段。HRWD 已完成 OA 驱动企业微信通讯录同步,并通过 `HRWDTEST-20260517214548` 真实公网 create/update/disable 验证;测试成员按审计要求保留离职/禁用状态。
+6 -6
查看文件
@@ -58,9 +58,9 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
- WFOC 是企微优先 + OA 无痛接管需求重构合同:用户已确认优先复用企业微信成熟能力,OA 做镜像、人工接管、恢复回写、财务闭环和审计中台;其“HR/考勤/行政审批”和“完整镜像”宽口径已由 DBWFOC 修正为 HR/考勤员工日常审批和按域镜像。本轮只冻结需求和事实源,不改业务代码、不部署、不切换公网配置;后续实现需拆 `wecom_hr_master_sync_v1`、`wecom_native_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1`、`wecom_ruleops_v1`。
- DBWFOC 是 WFOC 后的数据边界修正合同:将“企微优先”收窄为 HR/考勤员工日常审批优先,采购、费用、合同、项目、报销、付款、AP、代账交接、审计和高敏附件继续 OA 主办;企业微信成熟功能可作为流程/字段/交互/规则参考,OA 主办审批只向企业微信发送脱敏提醒和 OA deeplink,不上传高敏附件到企微原生审批。
- WFDG 是 DBWFOC 后的设计规约门禁合同:固定后续开发前必须先判定主办方、主事实源、操作端、镜像方向、附件归属和审计责任;PC/移动页面需区分 `OA 主办`、`企微镜像` 和 `OA 应急接管`;下一轮进入 `WECOM-CAPABILITY-POC-V1`,输出 `CAN_REUSE_NOW`、`NEEDS_CONFIG`、`NEEDS_API_POC`、`KEEP_OA_PRIMARY`、`NOT_SUPPORTED_BY_API` 能力矩阵。本轮不改业务代码、不部署、不调用生产写接口。
- WDRG 是 WFDG 后的开发路线图门禁合同:新增 [企微优先开发路线图](./企微优先开发路线图.md),固定“路线图门禁 + 单功能 Issue CSV”的开发节奏和阶段顺序;下一步仍是 `WECOM-CAPABILITY-POC-V1`,不得跳过 POC 直接开发 HR 主数据镜像、考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps。本轮不改业务代码、不部署、不调用公网写接口。
- WCP1 是 WDRG 后的企业微信能力 POC 合同:新增 QA-only 只读 runner `scripts/qa/check-wecom-capability-poc.mjs`,对人事助手、通讯录、打卡、审批、假期余额、回调和权限配置输出脱敏能力矩阵。远端 live 只读结论为 `PAUSE_FOR_CONFIG`:工作台 token、HCLT 通讯录 create/update/disable、部门读取和人事字段读取可用;通讯录测试成员读取 `wecom_errcode_48009`、人事助手测试员工读取 `wecom_errcode_60021`、打卡同步、审批模板/实例、假期权限和回调配置仍需补齐。当前不得进入 `wecom_hr_master_sync_v1`。
- WCPC 是 WCP1 后的配置收口合同:已创建 Issue CSV,并完成未补配置前远端基线复跑,结论仍为 `PAUSE_FOR_CONFIG`。当前改为使用已有在职测试号,等待用户提供测试号 userid、审批模板 ID、测试审批单号、打卡/审批/假期/回调权限后复跑完整 POC;本轮不部署、不持久改 `.env`、不调用生产写接口。
- WDRG 是 WFDG 后的开发路线图门禁合同:新增 [企微优先开发路线图](./企微优先开发路线图.md),固定“路线图门禁 + 单功能 Issue CSV”的开发节奏和阶段顺序;其下一步 `WECOM-CAPABILITY-POC-V1` 已由 WCP1/WCPC 执行并收口,当前允许规划 HR 主数据镜像,不得跳过阶段直接开发考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps。本轮不改业务代码、不部署、不调用公网写接口。
- WCP1 是 WDRG 后的企业微信能力 POC 合同:新增 QA-only 只读 runner `scripts/qa/check-wecom-capability-poc.mjs`,对人事助手、通讯录、打卡、审批、假期余额、回调和权限配置输出脱敏能力矩阵。远端 live 只读历史结论为 `PAUSE_FOR_CONFIG`,作为初始配置缺口证据保留;当前 HR 主数据镜像准入以 WCPC 复跑结论为准。
- WCPC 是 WCP1 后的配置收口合同:已使用既有在职低风险测试号 `SMOKE002/测试员工`(报告只记录 `oa_smoke***`)完成远端只读复跑,报告 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`,结论 `GO_TO_HR_MASTER_SYNC`。下一步允许规划 `wecom_hr_master_sync_v1`;审批模板 ID、审批单号 `sp_no`、真实回调配置和 HR 写接口仍需后续独立合同处理。
## 当前活跃治理流
@@ -106,8 +106,8 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| `DBWFOC` | `issues/2026-05-18_11-35-39-data-boundary-wfoc-revision.csv` | 已收口:企微能力参考 + OA 主办数据边界修正 | HR/考勤员工日常审批企微优先;采购、费用、合同、项目、报销、付款、AP、代账交接和高敏附件继续 OA 主办;企业微信只做成熟能力参考、脱敏消息和 OA deeplink | 不改业务代码、不新增 API/schema/UI、不部署、不改公网配置;不把 OA 主办域全量镜像到企微 |
| `WFDG` | `issues/2026-05-18_12-21-01-wecom-first-design-gate.csv` | 已收口:企微优先设计规约门禁完成,结论 `DONE_DESIGN_READY` | 固定主办方/数据边界矩阵、入口与交互规约、隐私附件消息规约、同步审计失败处理、应急接管、恢复回写、RuleOps 和下一轮 POC 验收口径 | 不改业务代码、不新增 API/schema/UI、不部署、不改公网配置、不调用生产写接口;不代表运行时迁移已完成 |
| `WDRG` | `issues/2026-05-18_12-44-10-wecom-development-roadmap-gate.csv` | 已收口:企微优先开发路线图门禁 | 固定路线图门禁、阶段顺序、单功能 Issue CSV 节奏、并行规则和下一轮 POC 合同口径 | 不改业务代码、不新增 API/schema/UI、不部署、不改公网配置、不调用公网写接口;不代表任何运行时迁移已完成 |
| `WCP1` | `issues/2026-05-18_13-30-07-wecom-capability-poc-v1.csv` | 已收口:企业微信能力 POC 已完成,结论 `PAUSE_FOR_CONFIG` | QA-only 只读探测人事助手、通讯录、打卡、审批、假期余额、回调和权限配置;输出能力矩阵和配置阻断清单 | 不改业务代码、不新增 API/schema/UI、不部署、不调用生产写接口;未达到 HR 主数据镜像准入 |
| `WCPC` | `issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv` | 当前:等待外部企微配置 | 已有在职测试号、测试审批单、打卡/审批/假期/回调配置收口和 POC 复跑 | 不开发业务功能、不部署、不持久改服务器 env;缺外部配置时保持 `PAUSE_FOR_CONFIG` |
| `WCP1` | `issues/2026-05-18_13-30-07-wecom-capability-poc-v1.csv` | 已收口:企业微信能力 POC 已完成,历史结论 `PAUSE_FOR_CONFIG` | QA-only 只读探测人事助手、通讯录、打卡、审批、假期余额、回调和权限配置;输出能力矩阵和配置阻断清单 | 不改业务代码、不新增 API/schema/UI、不部署、不调用生产写接口;初始阻断已由 WCPC 复跑收口 |
| `WCPC` | `issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv` | 已收口:既有测试号 POC 复跑通过 | 使用 `SMOKE002/测试员工`(脱敏 `oa_smoke***`)完成远端只读复跑,结论 `GO_TO_HR_MASTER_SYNC`,允许下一步规划 `wecom_hr_master_sync_v1` | 不开发业务功能、不部署、不持久改服务器 env;考勤/审批镜像仍需后续补审批模板、审批单和回调配置 |
旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。
@@ -130,7 +130,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 后企微优先 HR/考勤改造的阶段顺序、准入/退出门禁、并行规则、禁止跳阶段和当前 POC 配置阻断事实源 |
| [企微优先开发路线图](./企微优先开发路线图.md) | WDRG/WCP1/WCPC 后企微优先 HR/考勤改造的阶段顺序、准入/退出门禁、并行规则、禁止跳阶段和当前 HR 主数据镜像准入事实源 |
| [产品口径](./产品口径.md) | 已拍板产品边界和业务规则 |
| [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) | OA 主办审批、企微主办 HR/考勤员工日常审批镜像、催办、超时提醒、审批效率 |
| [报销发票附件规则](./报销发票附件规则.md) | 报销、发票、OCR、附件细则 |
+8 -8
查看文件
@@ -27,7 +27,7 @@
### 1.1 背景
海音达需要一套适合 10 人以下科技公司的轻量 OA,用来把报销、采购、费用、合同、项目资料、财务闭环、审计和关键行政数据集中到一个可审计、可回归、可持续迭代的系统中。WFOC 起产品方向调整为“企微优先 + OA 无痛接管”;DBWFOC 进一步修正边界:能复用企业微信成熟功能的 HR/考勤员工日常场景优先使用企业微信,OA 做按域镜像、人工接管、恢复回写、财务闭环和审计中台;采购、合同、项目、财务和高敏附件仍由 OA 主办和存储。WFDG 固定后续开发前必须先过设计规约门禁和企微 API 能力 POC;WDRG 进一步固定后续采用“路线图门禁 + 单功能 Issue CSV”的开发节奏,不再直接进入大规模运行时改造。WCP1 已完成企业微信能力只读 POC,当前结论为 `PAUSE_FOR_CONFIG`,因此尚不能进入 HR 主数据镜像运行时开发。
海音达需要一套适合 10 人以下科技公司的轻量 OA,用来把报销、采购、费用、合同、项目资料、财务闭环、审计和关键行政数据集中到一个可审计、可回归、可持续迭代的系统中。WFOC 起产品方向调整为“企微优先 + OA 无痛接管”;DBWFOC 进一步修正边界:能复用企业微信成熟功能的 HR/考勤员工日常场景优先使用企业微信,OA 做按域镜像、人工接管、恢复回写、财务闭环和审计中台;采购、合同、项目、财务和高敏附件仍由 OA 主办和存储。WFDG 固定后续开发前必须先过设计规约门禁和企微 API 能力 POC;WDRG 进一步固定后续采用“路线图门禁 + 单功能 Issue CSV”的开发节奏,不再直接进入大规模运行时改造。WCP1 已完成企业微信能力只读 POC并暴露初始配置缺口;WCPC 已用既有在职测试号复跑通过,结论 `GO_TO_HR_MASTER_SYNC`,因此下一步允许进入 HR 主数据镜像方案和 Issue CSV 规划。
### 1.2 总目标
@@ -77,7 +77,7 @@ WFDG 将 DBWFOC 后的产品方向固化为开发前设计门禁。本节只代
| 报销、采购、合同、项目、付款、AP、代账 | OA | 主办提交、审批、附件、导出、付款批次、审计和代账资料 | 只发送脱敏消息和 OA deeplink | 采购单附件、合同正文、报价、供应商资料、发票、银行回单和代账资料不进入企微原生审批或企微附件 |
| RuleOps | OA + 企业微信 API | AI 草拟、差异报告、dry-run、人工确认、审计和回滚建议 | 接收经确认的审批模板、打卡规则、排班、假期余额或人事字段配置写入 | AI 不得直接改正式规则;每次写入保存前后快照、确认人、API `errcode` 和失败原因 |
下一轮必须先执行 `WECOM-CAPABILITY-POC-V1`,以 `CAN_REUSE_NOW`、`NEEDS_CONFIG`、`NEEDS_API_POC`、`KEEP_OA_PRIMARY`、`NOT_SUPPORTED_BY_API` 输出人事助手、通讯录、打卡、审批、假期余额、回调和权限配置能力矩阵。POC 默认只读或低风险探测;生产写接口必须单独批准。正式开发顺序为 `wecom_hr_master_sync_v1` -> `wecom_attendance_approval_mirror_v1`(承接旧口径 `wecom_native_approval_mirror_v1`)-> `oa_hr_emergency_mode_v1` -> `wecom_recovery_writeback_v1` -> `wecom_ruleops_v1`。
`WECOM-CAPABILITY-POC-V1` / WCPC 已按 `CAN_REUSE_NOW`、`NEEDS_CONFIG`、`NEEDS_API_POC`、`KEEP_OA_PRIMARY`、`NOT_SUPPORTED_BY_API` 输出人事助手、通讯录、打卡、审批、假期余额、回调和权限配置能力矩阵,并达到 HR 主数据镜像准入。生产写接口必须单独批准。正式开发顺序为 `wecom_hr_master_sync_v1` -> `wecom_attendance_approval_mirror_v1`(承接旧口径 `wecom_native_approval_mirror_v1`)-> `oa_hr_emergency_mode_v1` -> `wecom_recovery_writeback_v1` -> `wecom_ruleops_v1`。
### 1.7 WDRG 开发路线图门禁
@@ -101,17 +101,17 @@ WCP1 已按“Live 只读 + 测试员工优先”完成企业微信能力 POC。
| 能力域 | POC 状态 | 当前结论 |
| --- | --- | --- |
| 工作台和基础权限 | `CAN_REUSE_NOW` | 工作台应用 access token 可获取,核心 CorpID/Agent/Secret/OAuth 配置存在。 |
| 通讯录 | `PARTIAL_CAN_REUSE` | HCLT 已证明 `HRWDTEST-20260517214548` create/update/disable 成功,部门读取可用;测试成员读取当前返回 `wecom_errcode_48009`,需要补权限、可见范围或测试成员状态。 |
| 人事助手 | `PARTIAL_NEEDS_CONFIG` | 字段配置读取可用;测试员工花名册读取返回 `wecom_errcode_60021`,资料更新属于写接口,需后续单独批准 POC。 |
| 打卡 | `NEEDS_CONFIG` | 远端 `WECOM_CHECKIN_SYNC_ENABLED` 未开启,短窗口打卡记录和规则读取未达到镜像开发准入。 |
| 审批与假期余额 | `NEEDS_CONFIG` | 缺审批模板 ID、测试审批单号,假期余额返回 `wecom_errcode_301062`,回调配置尚未可读。 |
| 通讯录 | `CAN_REUSE_NOW` | HCLT 已证明 `HRWDTEST-20260517214548` create/update/disable 成功,部门读取可用;WCPC 对既有在职测试号的成员读取已通过。 |
| 人事助手 | `CAN_REUSE_NOW_FOR_READ` | 字段配置读取可用;WCPC 对既有在职测试号的花名册读取已通过;资料更新属于写接口,需后续单独批准 POC。 |
| 打卡 | `CAN_REUSE_NOW_FOR_READ` | WCPC 短窗口打卡记录和规则读取已通过;日报、月报、排班等细分能力留到考勤镜像合同继续验证。 |
| 审批与假期余额 | `PARTIAL_NEEDS_CONFIG` | 假期余额读取已通过;审批模板 ID、测试审批单号和回调配置仍需后续考勤/审批镜像前补齐。 |
| OA 主办高敏审批 | `KEEP_OA_PRIMARY` | 报销、采购、合同、项目、付款、AP 和代账继续 OA 主办,企微只做脱敏消息和 OA deeplink。 |
WCP1 最终结论为 `PAUSE_FOR_CONFIG`,不是 `GO_TO_HR_MASTER_SYNC`。后续需要先补充或确认通讯录成员读取、人事助手花名册读取、打卡同步、审批模板/实例、假期权限和回调配置,再复跑 `scripts/qa/check-wecom-capability-poc.mjs`。只有 POC 结论进入 `GO_TO_HR_MASTER_SYNC`,才允许另建 `wecom_hr_master_sync_v1` 实现合同。
WCP1 历史结论为 `PAUSE_FOR_CONFIG`,不是 `GO_TO_HR_MASTER_SYNC`;该阻断已由 WCPC 复跑收口。WCP1 报告继续作为初始配置缺口证据保留,当前 HR 主数据镜像准入以 WCPC 结论为准。
### 1.9 WCPC 配置收口
WCPC 是 WCP1 后的配置复跑合同,只处理企业微信后台配置和只读 POC 复跑,不开发运行时功能。当前已完成未补配置前的远端基线复跑,结论仍为 `PAUSE_FOR_CONFIG`。下一步改为使用已有在职测试号,需要用户提供测试号 userid、测试审批模板 ID、测试审批单号、打卡/审批/假期/回调权限后复跑;不得使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试号。复跑成功前,不得进入 `wecom_hr_master_sync_v1`。
WCPC 是 WCP1 后的配置复跑合同,只处理企业微信后台配置和只读 POC 复跑,不开发运行时功能。2026-05-18 已按用户要求自动查找并使用既有在职低风险测试号 `SMOKE002/测试员工` 复跑,报告只记录脱敏企业微信 userid 前缀 `oa_smoke***`;远端报告 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json` 的结论为 `GO_TO_HR_MASTER_SYNC`,`nextStageAllowed=true`,`blockingCapabilities=[]`。下一步允许规划 `wecom_hr_master_sync_v1`;审批模板 ID、审批单号 `sp_no`、真实回调配置和 HR 写接口仍需后续独立合同处理,不得直接跳到考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps。
---
+12 -12
查看文件
@@ -1,6 +1,6 @@
# hyb-oa 管理员手册(10 人以下团队版)
**当前状态(2026-05-18 / WCP1)**:R7E、PRELAUNCH、CASHIER-VOUCHER-V1、LAUNCH-DEPLOY-FINANCE、FIN-PROD-ENABLE、ACCOUNTING-HANDOFF-V1、ATTV1、HR-WECOM-DIRECTORY-V1、HRWD-CONTACT-LIVE-TEST、DBWFOC、WFDG 和 WDRG 均已收口;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。WCP1 已完成企业微信能力 QA-only 只读 POC,当前结论为 `PAUSE_FOR_CONFIG`,不是 `GO_TO_HR_MASTER_SYNC`。后续“路线图门禁 + 单功能 Issue CSV”的开发节奏保持不变:HR/考勤员工日常审批优先复用企业微信,OA 做按域镜像、人工接管、恢复回写、财务闭环和审计中台;采购、费用、合同、项目、报销、付款、AP、代账交接和高敏附件继续 OA 主办,企业微信只做脱敏提醒和 OA deeplink。本轮不代表运行时代码已完成迁移。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。
**当前状态(2026-05-18 / WCPC)**:R7E、PRELAUNCH、CASHIER-VOUCHER-V1、LAUNCH-DEPLOY-FINANCE、FIN-PROD-ENABLE、ACCOUNTING-HANDOFF-V1、ATTV1、HR-WECOM-DIRECTORY-V1、HRWD-CONTACT-LIVE-TEST、DBWFOC、WFDG、WDRG 和 WCPC 均已收口;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。WCP1 历史结论为 `PAUSE_FOR_CONFIG`,WCPC 已使用既有在职测试号 `SMOKE002/测试员工`(报告只记录 `oa_smoke***`)复跑通过,结论为 `GO_TO_HR_MASTER_SYNC`。后续“路线图门禁 + 单功能 Issue CSV”的开发节奏保持不变:下一步只允许规划 `wecom_hr_master_sync_v1`;HR/考勤员工日常审批优先复用企业微信,OA 做按域镜像、人工接管、恢复回写、财务闭环和审计中台;采购、费用、合同、项目、报销、付款、AP、代账交接和高敏附件继续 OA 主办,企业微信只做脱敏提醒和 OA deeplink。本轮不代表运行时代码已完成迁移。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。
## 1. 适用范围
- 适用于 `small_team_internal` 工作区模式。
@@ -190,22 +190,22 @@ RuleOps:
- 正式写入前必须人工确认;每次写入保存前后快照、确认人、API `errcode`、失败原因、回滚建议和审计记录。
- 不得在报告、日志或截图中暴露 Secret、access token、完整位置、人脸数据、身份证号、完整手机号或原始密钥材料。
WCP1 后续推进:
WCP1/WCPC 后续推进:
1. 继续先读取 [企微优先开发路线图](./企微优先开发路线图.md) 和 WCP1 报告,再判断能否进入下一阶段。
2. WCP1 当前结论为 `PAUSE_FOR_CONFIG`:工作台 token、核心配置、HCLT 通讯录 create/update/disable、部门读取和人事字段读取可用;通讯录测试成员读取 `wecom_errcode_48009`、人事助手测试员工读取 `wecom_errcode_60021`、打卡同步、审批模板/实例、假期权限 `wecom_errcode_301062` 和回调配置仍需补齐或确认。
3. 补配置后复跑 `scripts/qa/check-wecom-capability-poc.mjs`。只有结论变为 `GO_TO_HR_MASTER_SYNC`,才允许另建 `wecom_hr_master_sync_v1` 合同。
4. 正式开发仍按 `wecom_hr_master_sync_v1` -> `wecom_attendance_approval_mirror_v1` -> `oa_hr_emergency_mode_v1` -> `wecom_recovery_writeback_v1` -> `wecom_ruleops_v1` 分合同实施;阶段未退出前禁止跳阶段。
5. 任何生产写接口、企微规则写入、应急模式开启或恢复回写都必须有单独批准、dry-run 或可审计记录。
2. WCP1 历史结论为 `PAUSE_FOR_CONFIG`;WCPC 已用既有在职测试号完成远端只读复跑,报告 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`,结论 `GO_TO_HR_MASTER_SYNC`。
3. WCPC 已证明 HR 主数据镜像准入项可用:通讯录成员读取、人事助手花名册读取、打卡短窗口记录/规则读取和假期余额读取均达到可复用状态;审批模板、审批实例和回调配置仍是后续考勤/审批镜像前置项。
4. 允许下一步另建 `wecom_hr_master_sync_v1` 方案和 Issue CSV;不得直接开发考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps。
5. 正式开发仍按 `wecom_hr_master_sync_v1` -> `wecom_attendance_approval_mirror_v1` -> `oa_hr_emergency_mode_v1` -> `wecom_recovery_writeback_v1` -> `wecom_ruleops_v1` 分合同实施;阶段未退出前禁止跳阶段。
6. 任何生产写接口、企微规则写入、应急模式开启或恢复回写都必须有单独批准、dry-run 或可审计记录。
WCPC 配置复跑清单:
1. 指定一个已有在职测试号;不要继续使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试成员。
2. 将该测试号加入企业微信工作台应用可见范围、通讯录读取范围、人事助手可读范围、打卡规则范围、审批模板可见范围和假期权限范围。
3. 用该测试号提交一条新的请假或补卡测试审批,不上传采购、合同、报销、发票、银行回单或其他敏感附件。
4. 向执行人提供三个非敏感值:测试号 `userid`、审批模板 ID、审批单号 `sp_no`。Secret、Token、EncodingAESKey 不在聊天中明文发送。
5. 若需要验证 `callback.config=CAN_REUSE_NOW`,在企业微信后台配置回调 URL、Token、EncodingAESKey;本轮只验证配置存在,不验证真实事件投递。
6. 服务器复跑采用临时环境变量注入,不持久写入 `.env`,不重启服务;报告落到远端 `/tmp/wecom-capability-poc-wcpc/summary.json`。
1. 已完成:自动查找并指定已有在职测试号 `SMOKE002/测试员工`;未使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试成员。
2. 已完成:服务器复跑采用临时环境变量和既有容器配置,不持久写入 `.env`,不重启服务;报告落到远端 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`。
3. 已完成:复跑结论 `GO_TO_HR_MASTER_SYNC`,允许进入 `wecom_hr_master_sync_v1` 规划。
4. 后续考勤/审批镜像前仍需补齐:审批模板 ID、审批单号 `sp_no`、真实回调 URL/Token/EncodingAESKey 配置和 HR 写接口单独 POC。
5. 测试审批单不得上传采购、合同、报销、发票、银行回单或其他敏感附件;Secret、Token、EncodingAESKey 不在聊天中明文发送。
### 3.3 正式财务闭环与代账交接
+25 -22
查看文件
@@ -32,10 +32,10 @@
| 能力 | 企微能力 | OA 使用程度 | 当前状态 |
| --- | --- | --- | --- |
| 通讯录 | 成员创建、读取、更新、禁用或删除 | 近期已验证 OA 写企微;后续改为企微主源同步 OA,OA 保留修复和审计 | `PARTIAL_CAN_REUSE`:HCLT create/update/disable 和部门读取可用,测试成员读取待配置 |
| 人事助手 | 员工字段配置、花名册读取、花名册更新 | 作为员工主数据源,驱动 OA 员工、账号、角色、绑定和状态镜像 | `PARTIAL_NEEDS_CONFIG`:字段配置可读,测试员工花名册读取待配置,更新接口需单独写入 POC |
| 打卡 | 打卡记录、员工规则、日报、月报、排班、补卡、规则管理 | 企微主办规则和采集,OA 同步按域镜像和应急对账 | `NEEDS_CONFIG`:WCP1 远端只读 POC 显示当前未开启打卡同步配置 |
| 审批 | 模板详情、提交审批、审批状态回调、审批详情、模板创建/更新、假期余额 | HR/考勤员工日常审批企微主办,OA 同步镜像;OA 主办财务、采购、合同、项目和报销审批不迁移 | `NEEDS_CONFIG`:缺模板、测试审批单、假期权限和回调配置 |
| 通讯录 | 成员创建、读取、更新、禁用或删除 | 近期已验证 OA 写企微;后续改为企微主源同步 OA,OA 保留修复和审计 | `CAN_REUSE_NOW`:HCLT create/update/disable、部门读取和 WCPC 既有在职测试号 `contact.member_read` 均已通过 |
| 人事助手 | 员工字段配置、花名册读取、花名册更新 | 作为员工主数据源,驱动 OA 员工、账号、角色、绑定和状态镜像 | `CAN_REUSE_NOW_FOR_READ`:字段配置和既有在职测试号花名册读取已通过;资料更新写接口仍需单独 POC |
| 打卡 | 打卡记录、员工规则、日报、月报、排班、补卡、规则管理 | 企微主办规则和采集,OA 同步按域镜像和应急对账 | `CAN_REUSE_NOW_FOR_READ`:WCPC 短窗口打卡记录和规则读取通过;日报/月报/排班等细项留到考勤镜像合同继续验证 |
| 审批 | 模板详情、提交审批、审批状态回调、审批详情、模板创建/更新、假期余额 | HR/考勤员工日常审批企微主办,OA 同步镜像;OA 主办财务、采购、合同、项目和报销审批不迁移 | `PARTIAL_NEEDS_CONFIG`:假期余额读取通过;审批模板 ID、测试审批单号和回调配置仍需在考勤/审批镜像前补齐 |
| 工作台和消息 | 自建应用入口、应用消息、deeplink | 继续作为 OA 移动入口和通知渠道 | `CAN_REUSE_NOW` |
| 财务/报销 | 企微不提供本项目需要的 PDF OCR、付款批次、银行回单和代账闭环 | OA 主办 | `KEEP_OA_PRIMARY` |
| 真实支付、ERP、图片 OCR、银行流水导入 | 非本路线目标 | 不进入当前路线 | `NOT_IN_SCOPE` |
@@ -229,7 +229,7 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,企业微信打卡边界
## 7.9 WCP1 企业微信能力 POC 结果
2026-05-18 已完成 `WECOM-CAPABILITY-POC-V1`。本轮新增 QA-only 只读脚本 `scripts/qa/check-wecom-capability-poc.mjs`,默认不写生产数据、不改企微规则、不批量读取真实员工明细,只输出脱敏能力矩阵。部署服务器容器内 live 只读探测结论为 `PAUSE_FOR_CONFIG`,报告目录为远端 `/tmp/wecom-capability-poc-wcp1/summary.json`。
2026-05-18 已完成 `WECOM-CAPABILITY-POC-V1`。本轮新增 QA-only 只读脚本 `scripts/qa/check-wecom-capability-poc.mjs`,默认不写生产数据、不改企微规则、不批量读取真实员工明细,只输出脱敏能力矩阵。部署服务器容器内 live 只读初始探测结论为 `PAUSE_FOR_CONFIG`,报告目录为远端 `/tmp/wecom-capability-poc-wcp1/summary.json`;该历史阻断已由 WCPC 复跑收口。
WCP1 当前分类:
@@ -247,33 +247,36 @@ WCP1 当前分类:
| 回调配置 | `NEEDS_CONFIG` | 回调 URL、Token、AESKey 未作为可读配置注入,本轮不能证明回调链路。 |
| 采购/合同/报销/财务审批 | `KEEP_OA_PRIMARY` | 继续 OA 主办,企业微信只做脱敏消息和 OA deeplink。 |
WCP1 结论不是 `GO_TO_HR_MASTER_SYNC`。在 `contact.member_read` 和 `hr.staff_read` 至少对一个已有在职测试号通过、审批/打卡/回调关键配置有清晰处理方式,并复跑 POC 得到准入结论前,不得启动 `wecom_hr_master_sync_v1` 运行时开发。
WCP1 历史结论不是 `GO_TO_HR_MASTER_SYNC`,但该阻断已由 WCPC 复跑收口。WCP1 报告继续作为初始配置缺口证据保留,当前 HR 主数据镜像准入以 WCPC 结论为准。
## 7.10 WCPC 配置复跑口径
`WCP1-CONFIG-CLOSEOUT-V1` 是 WCP1 后的配置收口合同。其目标不是开发运行时功能,而是补齐企业微信后台配置后复跑只读 POC。
`WCP1-CONFIG-CLOSEOUT-V1` 是 WCP1 后的配置收口合同。其目标不是开发运行时功能,而是补齐或确认企业微信后台配置后复跑只读 POC。2026-05-18 已按用户要求改用既有账户并完成远端只读复跑。
配置复跑要求:
已完成结果:
- 使用已有在职测试号,不使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试对象。
- 已有测试号必须在工作台应用、通讯录读取范围、人事助手可读范围、打卡规则范围、审批模板可见范围和假期权限范围内。
- 用户需提供非敏感值:已有测试号 userid、审批模板 ID、测试审批单号 `sp_no`。
- Secret、access token、回调 Token 和 EncodingAESKey 不写入仓库、不打印到报告、不在聊天中明文传递。
- 使用已有在职低风险测试号 `SMOKE002/测试员工`,不使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试对象。
- 报告、Issue 和文档只记录脱敏企业微信 userid 前缀 `oa_smoke***`,不打印完整手机号、位置、token、Secret 或原始 payload。
- 远端报告为 `/tmp/wecom-capability-poc-wcpc-smoke002/summary.json`。
- 复跑结论为 `status=PASS`、`conclusion=GO_TO_HR_MASTER_SYNC`、`nextStageAllowed=true`、`blockingCapabilities=[]`。
- 状态计数为 `CAN_REUSE_NOW=15`、`NEEDS_CONFIG=3`、`NEEDS_API_POC=1`、`KEEP_OA_PRIMARY=1`、`NOT_SUPPORTED_BY_API=0`。
- Secret、access token、回调 Token 和 EncodingAESKey 未写入仓库、未打印到报告、未在聊天中明文传递。
- 服务器侧复跑只做临时环境变量注入,不持久修改 `.env`,不重启服务。
- 回调本轮只验证配置存在性;真实事件回调接收、解密、幂等和入库留到 `wecom_attendance_approval_mirror_v1`。
复跑准入:
复跑准入结果:
| 能力 | 期望 |
| 能力 | 结果 |
| --- | --- |
| `contact.member_read` | 已有在职测试号读取为 `CAN_REUSE_NOW`。 |
| `hr.staff_read` | 已有在职测试号花名册读取为 `CAN_REUSE_NOW`。 |
| `checkin.records_read` / `checkin.rules_read` | API 可读;无打卡数据可接受,但权限/配置失败不可伪造成通过。 |
| `approval.template_detail` / `approval.instance_detail` / `approval.vacation_quota` | 有唯一状态和原因;缺权限时仍为 `PAUSE_FOR_CONFIG`。 |
| `callback.config` | 本轮只要求配置存在,不代表回调运行时能力完成。 |
| `approval.oa_primary_sensitive_domains` | 继续 `KEEP_OA_PRIMARY`。 |
| `contact.member_read` | `CAN_REUSE_NOW`,既有在职测试号读取通过。 |
| `hr.staff_read` | `CAN_REUSE_NOW`,既有在职测试号花名册读取通过。 |
| `checkin.records_read` / `checkin.rules_read` | `CAN_REUSE_NOW`,短窗口记录和规则读取通过;细分日报、月报、排班留到考勤镜像合同。 |
| `approval.vacation_quota` | `CAN_REUSE_NOW`。 |
| `approval.template_detail` / `approval.instance_detail` | `NEEDS_CONFIG`,缺审批模板 ID 和测试审批单号 `sp_no`;不阻断 HR 主数据镜像,但阻断考勤/审批镜像。 |
| `callback.config` | `NEEDS_CONFIG`,本轮未证明真实事件回调配置存在;真实事件回调接收、解密、幂等和入库留到 `wecom_attendance_approval_mirror_v1`。 |
| `hr.staff_update_classification` | `NEEDS_API_POC`,资料更新属于写接口,需单独批准后再做低风险 POC。 |
| `approval.oa_primary_sensitive_domains` | `KEEP_OA_PRIMARY`,采购、合同、报销、财务等继续 OA 主办。 |
只有 WCPC 复跑结论为 `GO_TO_HR_MASTER_SYNC` 时,才允许进入 `wecom_hr_master_sync_v1` 方案和 Issue CSV。
WCPC 已达到 `GO_TO_HR_MASTER_SYNC`。下一步允许进入 `wecom_hr_master_sync_v1` 方案和 Issue CSV;不得直接开发考勤/审批镜像、OA 应急接管、恢复回写或 RuleOps。
---
@@ -1,10 +1,10 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WCPC-0","合同建档","建立 WCP1-CONFIG-CLOSEOUT-V1 合同,锁定本轮为企业微信能力 POC 配置收口与只读复跑;不改 OA API/schema/UI,不部署,不持久修改服务器 .env,不调用生产写接口。","1) CSV 校验通过;2) 范围限定为 Issue CSV、QA-only 脚本必要小修、事实源回写和只读 POC 复跑;3) 不打印 secret、access token、cookie、完整手机号、完整位置、原始 payload 或附件内容;4) 结论只允许 GO_TO_HR_MASTER_SYNC、PAUSE_FOR_CONFIG、PAUSE_FOR_API_POC、NO_GO_REVISE_ROADMAP。","受影响流程:WCP1 配置阻断 -> 企微后台补配置 -> 服务器容器只读复跑 -> HR 主数据镜像准入判断;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv。","python3|manual","DONE","DONE","DONE","issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv","[]","回滚路径:回退本 CSV、QA-only 脚本小修和文档/skill 回写;不涉及数据库、业务运行时、部署或公网持久配置。"
"WCPC-1","已有在职测试号指定","等待用户指定已有在职测试号,并确认该账号已加入工作台应用、通讯录、人事助手、打卡、审批和假期权限范围;不再要求新建企业微信成员。","1) 获取已有在职测试号 userid;2) 该账号为 active/in-service 且启用,不使用已离职/禁用的 HRWDTEST-20260517214548;3) 账号不承载真实高敏业务资料;4) POC 输出只显示脱敏 userid 前缀。","受影响流程:企微通讯录/人事助手 -> OA HR 主数据镜像准入;验证步骤:在复跑报告中检查 contact.member_read 和 hr.staff_read 对该测试号有状态和脱敏证据。","manual|node","TODO","TODO","TODO","external|scripts/qa/check-wecom-capability-poc.mjs","[""WCPC-0""]","BLOCKED_BY_USER_CONFIG:需要用户指定已有在职测试号,确认企微后台权限范围,并提供非敏感 userid。"
"WCPC-2","新建测试审批单","等待用户用已有在职测试号在企业微信提交一条请假或补卡测试审批,记录审批模板 ID 和审批单号 sp_no;测试单不上传敏感附件。","1) 获取 WECOM_APPROVAL_TEMPLATE_ID;2) 获取 WECOM_APPROVAL_SP_NO 或 WECOM_APPROVAL_INSTANCE_ID;3) 测试审批单属于已有测试号和测试模板;4) 不使用采购、合同、报销、发票、银行回单或代账资料。","受影响流程:企微审批模板/审批详情/假期余额 -> OA HR/考勤审批镜像准入;验证步骤:复跑报告中 approval.template_detail、approval.instance_detail、approval.vacation_quota 均有唯一状态和原因。","manual|node","TODO","TODO","TODO","external|scripts/qa/check-wecom-capability-poc.mjs","[""WCPC-1""]","BLOCKED_BY_USER_CONFIG:需要用户提供模板 ID 和测试审批单号;缺权限时记录 PAUSE_FOR_CONFIG。"
"WCPC-1","已有在职测试号指定","已按用户要求自动查找既有在职低风险测试号,选用 SMOKE002 / 测试员工作为主 POC 对象;企业微信 userid 只按 oa_smoke*** 脱敏记录,不再要求新建企业微信成员。","1) 已找到 active/in-service 且启用的既有测试号;2) 未使用已离职/禁用的 HRWDTEST-20260517214548;3) 账号不承载真实高敏业务资料;4) POC 输出只显示脱敏 userid 前缀。","受影响流程:企微通讯录/人事助手 -> OA HR 主数据镜像准入;验证步骤:远端只读候选扫描后执行复跑报告 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json,检查 contact.member_read 和 hr.staff_read 对 oa_smoke*** 均为 CAN_REUSE_NOW。","manual|node|ssh","DONE","DONE","DONE","external|scripts/qa/check-wecom-capability-poc.mjs","[""WCPC-0""]","已完成:选用 SMOKE002/测试员工;报告和文档只记录 oa_smoke***,不打印完整 userid、手机号、token 或原始 payload。"
"WCPC-2","审批测试单缺口分类","未创建新的企微测试审批单;复跑报告已把审批模板和审批实例读取分类为 NEEDS_CONFIG,把假期余额读取分类为 CAN_REUSE_NOW。该缺口不阻断 HR 主数据镜像准入,但会作为 wecom_attendance_approval_mirror_v1 前置配置项。","1) approval.template_detail 有唯一状态 NEEDS_CONFIG;2) approval.instance_detail 有唯一状态 NEEDS_CONFIG;3) approval.vacation_quota=CAN_REUSE_NOW;4) 未使用采购、合同、报销、发票、银行回单或代账资料。","受影响流程:企微审批模板/审批详情/假期余额 -> 后续 HR/考勤审批镜像准入;验证步骤:复跑报告 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json 中 approval.template_detail、approval.instance_detail、approval.vacation_quota 均有唯一状态和原因。","manual|node","DONE","DONE","DONE","external|scripts/qa/check-wecom-capability-poc.mjs","[""WCPC-1""]","审批模板 ID、测试审批单号 sp_no 和真实回调配置留到 wecom_attendance_approval_mirror_v1 前继续补齐;不影响本轮 GO_TO_HR_MASTER_SYNC。"
"WCPC-3","配置清单核对","核对通讯录读取、人事助手花名册读取、打卡 API、审批模板/详情、假期余额和回调配置所需权限;本轮不持久修改服务器 env。","1) 配置核对清单回写到事实源;2) 缺配置项均以 NEEDS_CONFIG 或 SKIP/BLOCKED_BY_EXTERNAL_CONFIG 记录;3) 不把缺配置伪造成 PASS;4) 回调本轮只验证配置存在性,不验证真实事件投递。","受影响流程:企微后台配置 -> POC runner 能力矩阵;验证步骤:rg -n 'WCPC|PAUSE_FOR_CONFIG|contact.member_read|hr.staff_read|WECOM_CHECKIN_SYNC_ENABLED|WECOM_APPROVAL_TEMPLATE_ID|WECOM_CALLBACK' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。","rg|manual","DONE","DONE","DONE","docs|issues|.agents/skills/hyb-oa-delivery/SKILL.md","[""WCPC-0""]","如果发现 OA 尚无审批回调接收端,不在本轮补业务接口,留到 wecom_attendance_approval_mirror_v1。"
"WCPC-4","服务器临时注入复跑","在部署服务器容器内临时传入已有测试号 userid、审批模板 ID、审批单号、打卡开关和回调配置,执行 check-wecom-capability-poc.mjs;不写 .env、不重启服务。","1) 报告输出到 /tmp/wecom-capability-poc-wcpc/summary.json;2) 只读 POC status=PASS;3) 敏感值不出现在命令输出、报告、Issue 或文档;4) 若缺外部配置,结论为 PAUSE_FOR_CONFIG。","受影响流程:服务器 env 临时注入 -> 企微 API 只读探测 -> 脱敏能力矩阵;验证步骤:ssh [email protected] 'cd /opt/hyb-oa-trialrun && docker-compose -f deploy/trialrun/docker-compose.yml exec -T server sh -lc ""WECOM_CAPABILITY_POC_LIVE_READ=1 WECOM_CAPABILITY_POC_JSON=1 WECOM_CAPABILITY_POC_TEST_USERID=<test-userid> WECOM_CAPABILITY_POC_DAYS=1 WECOM_APPROVAL_TEMPLATE_ID=<template-id> WECOM_APPROVAL_SP_NO=<sp-no> WECOM_CHECKIN_SYNC_ENABLED=1 node - --json --report-dir=/tmp/wecom-capability-poc-wcpc""' < scripts/qa/check-wecom-capability-poc.mjs。","ssh|docker-compose|node","TODO","TODO","TODO","scripts/qa/check-wecom-capability-poc.mjs|external","[""WCPC-3""]","敏感配置通过既有容器 env 或交互式方式注入;不得持久写入 deploy/trialrun/.env。"
"WCPC-5","能力矩阵判定","判定复跑结果:contact.member_read 与 hr.staff_read 必须通过;打卡、审批、假期、回调按唯一状态记录;hr.staff_update_classification 可保留 NEEDS_API_POC。","1) contact.member_read=CAN_REUSE_NOW;2) hr.staff_read=CAN_REUSE_NOW;3) checkin.records_read/checkin.rules_read 返回 API 可读或明确配置阻断;4) approval.template_detail/instance_detail/vacation_quota/callback.config 均有状态;5) approval.oa_primary_sensitive_domains=KEEP_OA_PRIMARY。","受影响流程:能力矩阵 -> GO_TO_HR_MASTER_SYNC 或暂停配置;验证步骤:rg -n 'GO_TO_HR_MASTER_SYNC|PAUSE_FOR_CONFIG|PAUSE_FOR_API_POC|NO_GO_REVISE_ROADMAP|contact.member_read|hr.staff_read|approval.vacation_quota|callback.config' docs issues artifacts scripts。","rg|node","TODO","TODO","TODO","docs|issues|scripts|artifacts/qa-flow/wecom-capability-poc-*","[""WCPC-4""]","只有 GO_TO_HR_MASTER_SYNC 才允许下一步规划 wecom_hr_master_sync_v1;即使通过也不直接开发镜像、应急、回写或 RuleOps。"
"WCPC-6","事实源回写","更新路线图、企业微信规约、PRD、文档索引、事实源矩阵、人工试运行报告和项目 skill,记录 WCPC 基线复跑结论和剩余配置项;完整复跑后继续回填最终结论。","1) 路线图当前阶段更新为 WCPC 基线复跑结果;2) 规约和 PRD 记录能力矩阵准入/阻断;3) 文档索引和事实源矩阵登记 WCPC;4) skill 明确后续依据 WCPC 结论推进;5) 文档审计、skill 校验和 git diff --check 通过。","受影响流程:后续 agent/人工读取事实源 -> 是否进入 wecom_hr_master_sync_v1;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check。","node|python3|git|rg","DONE","DONE","DONE","docs/企微优先开发路线图.md|docs/需求-企业微信基础设施规约.md|docs/海音达OA-MVP需求规格说明书.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WCPC-3""]","本轮只回写基线和等待配置状态,不部署;完整 POC 需在 WCPC-1/2/4/5 完成后再回填最终结论。"
"WCPC-7","阶段中文提交","基线复跑和事实源回写通过后提交中文 commit;完整 POC 仍等待外部配置后继续执行。","1) Issue CSV 状态按实际结果回填;2) 所有已执行 Test_Method 通过或记录可解释阻断;3) git status 干净;4) commit message 为中文并引用 WCPC。","受影响流程:配置收口证据 -> git 历史 -> 后续开发准入;验证步骤:git status --short;git log -1 --oneline。","git","DONE","DONE","DONE","N/A","[""WCPC-6""]","外部配置未完成,本提交为 PAUSE_FOR_CONFIG 阶段提交,不得标记 GO_TO_HR_MASTER_SYNC。"
"WCPC-8","已有测试号口径调整","根据用户确认,将 WCPC 复跑对象从新建测试成员调整为已有在职测试号;保留不使用已离职 HRWDTEST、不改业务代码、不部署、不持久写 env 的边界。","1) WCPC CSV、路线图、企微规约、管理员手册、人工试运行报告、PRD、产品口径、文档索引、事实源矩阵和项目 skill 已同步;2) 残留的新建成员要求已清理;3) validate_issues_csv、audit-docs、quick_validate、git diff --check 通过。","受影响流程:WCPC 配置收口 -> 已有测试号复跑 -> HR 主数据镜像准入判断;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv;node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check;rg -n '已有在职测试号|测试号 userid|HRWDTEST-20260517214548|GO_TO_HR_MASTER_SYNC' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。","python3|node|rg|git","DONE","DONE","DONE","issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv|docs|.agents/skills/hyb-oa-delivery/SKILL.md","[""WCPC-7""]","本次只修复口径和事实源;完整 POC 仍等待用户提供已有测试号 userid、模板 ID 和 sp_no。"
"WCPC-4","服务器临时注入复跑","已在部署服务器容器内使用既有在职测试号临时执行 check-wecom-capability-poc.mjs;不写 .env、不重启服务、不调用生产写接口。","1) 报告输出到 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json;2) 只读 POC status=PASS;3) 敏感值不出现在命令输出、报告、Issue 或文档;4) 结论为 GO_TO_HR_MASTER_SYNC。","受影响流程:服务器 env 临时注入 -> 企微 API 只读探测 -> 脱敏能力矩阵;验证步骤:ssh [email protected] 'cd /opt/hyb-oa-trialrun && docker-compose -f deploy/trialrun/docker-compose.yml exec -T server node -e <读取 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json 的 status/conclusion/statusCounts/blockingCapabilities>'。","ssh|docker-compose|node","DONE","DONE","DONE","scripts/qa/check-wecom-capability-poc.mjs|external","[""WCPC-3""]","复跑只读报告:status=PASS,conclusion=GO_TO_HR_MASTER_SYNC,nextStageAllowed=true;未持久写入 deploy/trialrun/.env。"
"WCPC-5","能力矩阵判定","已判定复跑结果:contact.member_read、hr.staff_read、checkin.records_read、checkin.rules_read 和 approval.vacation_quota 对既有在职测试号达到 HR 主数据镜像准入;审批模板/实例和 callback.config 保留后续配置缺口。","1) contact.member_read=CAN_REUSE_NOW;2) hr.staff_read=CAN_REUSE_NOW;3) checkin.records_read/checkin.rules_read=CAN_REUSE_NOW;4) approval.vacation_quota=CAN_REUSE_NOW;5) approval.template_detail/instance_detail/callback.config=NEEDS_CONFIG;6) approval.oa_primary_sensitive_domains=KEEP_OA_PRIMARY;7) 最终 conclusion=GO_TO_HR_MASTER_SYNC。","受影响流程:能力矩阵 -> HR 主数据镜像规划准入;验证步骤:rg -n 'GO_TO_HR_MASTER_SYNC|contact.member_read|hr.staff_read|approval.vacation_quota|callback.config|wecom-capability-poc-wcpc-smoke002' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。","rg|node","DONE","DONE","DONE","docs|issues|scripts|external","[""WCPC-4""]","GO_TO_HR_MASTER_SYNC 只允许下一步规划 wecom_hr_master_sync_v1;不直接开发考勤/审批镜像、应急、回写或 RuleOps。"
"WCPC-6","事实源回写","更新路线图、企业微信规约、PRD、文档索引、事实源矩阵、人工试运行报告和项目 skill,记录 WCPC 既有测试号复跑最终结论和剩余非阻断配置项。","1) 路线图当前阶段更新为 WCPC 复跑通过;2) 规约和 PRD 记录能力矩阵准入/剩余配置;3) 文档索引和事实源矩阵登记 WCPC;4) skill 明确后续可规划 wecom_hr_master_sync_v1;5) 文档审计、skill 校验和 git diff --check 通过。","受影响流程:后续 agent/人工读取事实源 -> 是否进入 wecom_hr_master_sync_v1;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check。","node|python3|git|rg","DONE","DONE","DONE","docs/企微优先开发路线图.md|docs/需求-企业微信基础设施规约.md|docs/海音达OA-MVP需求规格说明书.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WCPC-5""]","本轮只回写事实源,不部署;运行时迁移仍需另建 wecom_hr_master_sync_v1 合同。"
"WCPC-7","阶段中文提交","既有测试号复跑和事实源回写通过后提交中文 commit;下一步只允许规划 HR 主数据镜像,不直接实现后续阶段。","1) Issue CSV 状态按实际结果回填;2) 所有已执行 Test_Method 通过或记录可解释非阻断缺口;3) git status 干净;4) commit message 为中文并引用 WCPC。","受影响流程:配置收口证据 -> git 历史 -> 后续开发准入;验证步骤:git status --short;git log -1 --oneline。","git","DONE","DONE","DONE","N/A","[""WCPC-6""]","本次提交记录 GO_TO_HR_MASTER_SYNC;审批模板/实例、callback.config 和 HR 写接口仍需后续单独合同处理。"
"WCPC-8","已有测试号口径调整","根据用户确认,将 WCPC 复跑对象从新建测试成员调整为已有在职测试号,并已完成自动查找、只读复跑和事实源回填;保留不使用已离职 HRWDTEST、不改业务代码、不部署、不持久写 env 的边界。","1) WCPC CSV、路线图、企微规约、管理员手册、人工试运行报告、PRD、产品口径、文档索引、事实源矩阵和项目 skill 已同步;2) 残留的新建成员要求已清理;3) validate_issues_csv、audit-docs、quick_validate、git diff --check 通过。","受影响流程:WCPC 配置收口 -> 已有测试号复跑 -> HR 主数据镜像准入判断;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv;node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check;rg -n '已有在职测试号|oa_smoke|HRWDTEST-20260517214548|GO_TO_HR_MASTER_SYNC' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。","python3|node|rg|git","DONE","DONE","DONE","issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv|docs|.agents/skills/hyb-oa-delivery/SKILL.md","[""WCPC-7""]","完成结论:使用 SMOKE002/测试员工(脱敏 oa_smoke***)复跑通过,报告 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 WCPC-0 合同建档 建立 WCP1-CONFIG-CLOSEOUT-V1 合同,锁定本轮为企业微信能力 POC 配置收口与只读复跑;不改 OA API/schema/UI,不部署,不持久修改服务器 .env,不调用生产写接口。 1) CSV 校验通过;2) 范围限定为 Issue CSV、QA-only 脚本必要小修、事实源回写和只读 POC 复跑;3) 不打印 secret、access token、cookie、完整手机号、完整位置、原始 payload 或附件内容;4) 结论只允许 GO_TO_HR_MASTER_SYNC、PAUSE_FOR_CONFIG、PAUSE_FOR_API_POC、NO_GO_REVISE_ROADMAP。 受影响流程:WCP1 配置阻断 -> 企微后台补配置 -> 服务器容器只读复跑 -> HR 主数据镜像准入判断;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv。 python3|manual DONE DONE DONE issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv [] 回滚路径:回退本 CSV、QA-only 脚本小修和文档/skill 回写;不涉及数据库、业务运行时、部署或公网持久配置。
3 WCPC-1 已有在职测试号指定 等待用户指定已有在职测试号,并确认该账号已加入工作台应用、通讯录、人事助手、打卡、审批和假期权限范围;不再要求新建企业微信成员。 已按用户要求自动查找既有在职低风险测试号,选用 SMOKE002 / 测试员工作为主 POC 对象;企业微信 userid 只按 oa_smoke*** 脱敏记录,不再要求新建企业微信成员。 1) 获取已有在职测试号 userid;2) 该账号为 active/in-service 且启用,不使用已离职/禁用的 HRWDTEST-20260517214548;3) 账号不承载真实高敏业务资料;4) POC 输出只显示脱敏 userid 前缀。 1) 已找到 active/in-service 且启用的既有测试号;2) 未使用已离职/禁用的 HRWDTEST-20260517214548;3) 账号不承载真实高敏业务资料;4) POC 输出只显示脱敏 userid 前缀。 受影响流程:企微通讯录/人事助手 -> OA HR 主数据镜像准入;验证步骤:在复跑报告中检查 contact.member_read 和 hr.staff_read 对该测试号有状态和脱敏证据。 受影响流程:企微通讯录/人事助手 -> OA HR 主数据镜像准入;验证步骤:远端只读候选扫描后执行复跑报告 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json,检查 contact.member_read 和 hr.staff_read 对 oa_smoke*** 均为 CAN_REUSE_NOW。 manual|node manual|node|ssh TODO DONE TODO DONE TODO DONE external|scripts/qa/check-wecom-capability-poc.mjs ["WCPC-0"] BLOCKED_BY_USER_CONFIG:需要用户指定已有在职测试号,确认企微后台权限范围,并提供非敏感 userid。 已完成:选用 SMOKE002/测试员工;报告和文档只记录 oa_smoke***,不打印完整 userid、手机号、token 或原始 payload。
4 WCPC-2 新建测试审批单 审批测试单缺口分类 等待用户用已有在职测试号在企业微信提交一条请假或补卡测试审批,记录审批模板 ID 和审批单号 sp_no;测试单不上传敏感附件。 未创建新的企微测试审批单;复跑报告已把审批模板和审批实例读取分类为 NEEDS_CONFIG,把假期余额读取分类为 CAN_REUSE_NOW。该缺口不阻断 HR 主数据镜像准入,但会作为 wecom_attendance_approval_mirror_v1 前置配置项。 1) 获取 WECOM_APPROVAL_TEMPLATE_ID;2) 获取 WECOM_APPROVAL_SP_NO 或 WECOM_APPROVAL_INSTANCE_ID;3) 测试审批单属于已有测试号和测试模板;4) 不使用采购、合同、报销、发票、银行回单或代账资料。 1) approval.template_detail 有唯一状态 NEEDS_CONFIG;2) approval.instance_detail 有唯一状态 NEEDS_CONFIG;3) approval.vacation_quota=CAN_REUSE_NOW;4) 未使用采购、合同、报销、发票、银行回单或代账资料。 受影响流程:企微审批模板/审批详情/假期余额 -> OA HR/考勤审批镜像准入;验证步骤:复跑报告中 approval.template_detail、approval.instance_detail、approval.vacation_quota 均有唯一状态和原因。 受影响流程:企微审批模板/审批详情/假期余额 -> 后续 HR/考勤审批镜像准入;验证步骤:复跑报告 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json 中 approval.template_detail、approval.instance_detail、approval.vacation_quota 均有唯一状态和原因。 manual|node TODO DONE TODO DONE TODO DONE external|scripts/qa/check-wecom-capability-poc.mjs ["WCPC-1"] BLOCKED_BY_USER_CONFIG:需要用户提供模板 ID 和测试审批单号;缺权限时记录 PAUSE_FOR_CONFIG。 审批模板 ID、测试审批单号 sp_no 和真实回调配置留到 wecom_attendance_approval_mirror_v1 前继续补齐;不影响本轮 GO_TO_HR_MASTER_SYNC。
5 WCPC-3 配置清单核对 核对通讯录读取、人事助手花名册读取、打卡 API、审批模板/详情、假期余额和回调配置所需权限;本轮不持久修改服务器 env。 1) 配置核对清单回写到事实源;2) 缺配置项均以 NEEDS_CONFIG 或 SKIP/BLOCKED_BY_EXTERNAL_CONFIG 记录;3) 不把缺配置伪造成 PASS;4) 回调本轮只验证配置存在性,不验证真实事件投递。 受影响流程:企微后台配置 -> POC runner 能力矩阵;验证步骤:rg -n 'WCPC|PAUSE_FOR_CONFIG|contact.member_read|hr.staff_read|WECOM_CHECKIN_SYNC_ENABLED|WECOM_APPROVAL_TEMPLATE_ID|WECOM_CALLBACK' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。 rg|manual DONE DONE DONE docs|issues|.agents/skills/hyb-oa-delivery/SKILL.md ["WCPC-0"] 如果发现 OA 尚无审批回调接收端,不在本轮补业务接口,留到 wecom_attendance_approval_mirror_v1。
6 WCPC-4 服务器临时注入复跑 在部署服务器容器内临时传入已有测试号 userid、审批模板 ID、审批单号、打卡开关和回调配置,执行 check-wecom-capability-poc.mjs;不写 .env、不重启服务。 已在部署服务器容器内使用既有在职测试号临时执行 check-wecom-capability-poc.mjs;不写 .env、不重启服务、不调用生产写接口。 1) 报告输出到 /tmp/wecom-capability-poc-wcpc/summary.json;2) 只读 POC status=PASS;3) 敏感值不出现在命令输出、报告、Issue 或文档;4) 若缺外部配置,结论为 PAUSE_FOR_CONFIG。 1) 报告输出到 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json;2) 只读 POC status=PASS;3) 敏感值不出现在命令输出、报告、Issue 或文档;4) 结论为 GO_TO_HR_MASTER_SYNC。 受影响流程:服务器 env 临时注入 -> 企微 API 只读探测 -> 脱敏能力矩阵;验证步骤:ssh [email protected] 'cd /opt/hyb-oa-trialrun && docker-compose -f deploy/trialrun/docker-compose.yml exec -T server sh -lc "WECOM_CAPABILITY_POC_LIVE_READ=1 WECOM_CAPABILITY_POC_JSON=1 WECOM_CAPABILITY_POC_TEST_USERID=<test-userid> WECOM_CAPABILITY_POC_DAYS=1 WECOM_APPROVAL_TEMPLATE_ID=<template-id> WECOM_APPROVAL_SP_NO=<sp-no> WECOM_CHECKIN_SYNC_ENABLED=1 node - --json --report-dir=/tmp/wecom-capability-poc-wcpc"' < scripts/qa/check-wecom-capability-poc.mjs。 受影响流程:服务器 env 临时注入 -> 企微 API 只读探测 -> 脱敏能力矩阵;验证步骤:ssh [email protected] 'cd /opt/hyb-oa-trialrun && docker-compose -f deploy/trialrun/docker-compose.yml exec -T server node -e <读取 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json 的 status/conclusion/statusCounts/blockingCapabilities>'。 ssh|docker-compose|node TODO DONE TODO DONE TODO DONE scripts/qa/check-wecom-capability-poc.mjs|external ["WCPC-3"] 敏感配置通过既有容器 env 或交互式方式注入;不得持久写入 deploy/trialrun/.env。 复跑只读报告:status=PASS,conclusion=GO_TO_HR_MASTER_SYNC,nextStageAllowed=true;未持久写入 deploy/trialrun/.env。
7 WCPC-5 能力矩阵判定 判定复跑结果:contact.member_read 与 hr.staff_read 必须通过;打卡、审批、假期、回调按唯一状态记录;hr.staff_update_classification 可保留 NEEDS_API_POC。 已判定复跑结果:contact.member_read、hr.staff_read、checkin.records_read、checkin.rules_read 和 approval.vacation_quota 对既有在职测试号达到 HR 主数据镜像准入;审批模板/实例和 callback.config 保留后续配置缺口。 1) contact.member_read=CAN_REUSE_NOW;2) hr.staff_read=CAN_REUSE_NOW;3) checkin.records_read/checkin.rules_read 返回 API 可读或明确配置阻断;4) approval.template_detail/instance_detail/vacation_quota/callback.config 均有状态;5) approval.oa_primary_sensitive_domains=KEEP_OA_PRIMARY。 1) contact.member_read=CAN_REUSE_NOW;2) hr.staff_read=CAN_REUSE_NOW;3) checkin.records_read/checkin.rules_read=CAN_REUSE_NOW;4) approval.vacation_quota=CAN_REUSE_NOW;5) approval.template_detail/instance_detail/callback.config=NEEDS_CONFIG;6) approval.oa_primary_sensitive_domains=KEEP_OA_PRIMARY;7) 最终 conclusion=GO_TO_HR_MASTER_SYNC。 受影响流程:能力矩阵 -> GO_TO_HR_MASTER_SYNC 或暂停配置;验证步骤:rg -n 'GO_TO_HR_MASTER_SYNC|PAUSE_FOR_CONFIG|PAUSE_FOR_API_POC|NO_GO_REVISE_ROADMAP|contact.member_read|hr.staff_read|approval.vacation_quota|callback.config' docs issues artifacts scripts。 受影响流程:能力矩阵 -> HR 主数据镜像规划准入;验证步骤:rg -n 'GO_TO_HR_MASTER_SYNC|contact.member_read|hr.staff_read|approval.vacation_quota|callback.config|wecom-capability-poc-wcpc-smoke002' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。 rg|node TODO DONE TODO DONE TODO DONE docs|issues|scripts|artifacts/qa-flow/wecom-capability-poc-* docs|issues|scripts|external ["WCPC-4"] 只有 GO_TO_HR_MASTER_SYNC 才允许下一步规划 wecom_hr_master_sync_v1;即使通过也不直接开发镜像、应急、回写或 RuleOps。 GO_TO_HR_MASTER_SYNC 只允许下一步规划 wecom_hr_master_sync_v1;不直接开发考勤/审批镜像、应急、回写或 RuleOps。
8 WCPC-6 事实源回写 更新路线图、企业微信规约、PRD、文档索引、事实源矩阵、人工试运行报告和项目 skill,记录 WCPC 基线复跑结论和剩余配置项;完整复跑后继续回填最终结论。 更新路线图、企业微信规约、PRD、文档索引、事实源矩阵、人工试运行报告和项目 skill,记录 WCPC 既有测试号复跑最终结论和剩余非阻断配置项。 1) 路线图当前阶段更新为 WCPC 基线复跑结果;2) 规约和 PRD 记录能力矩阵准入/阻断;3) 文档索引和事实源矩阵登记 WCPC;4) skill 明确后续依据 WCPC 结论推进;5) 文档审计、skill 校验和 git diff --check 通过。 1) 路线图当前阶段更新为 WCPC 复跑通过;2) 规约和 PRD 记录能力矩阵准入/剩余配置;3) 文档索引和事实源矩阵登记 WCPC;4) skill 明确后续可规划 wecom_hr_master_sync_v1;5) 文档审计、skill 校验和 git diff --check 通过。 受影响流程:后续 agent/人工读取事实源 -> 是否进入 wecom_hr_master_sync_v1;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check。 node|python3|git|rg DONE DONE DONE docs/企微优先开发路线图.md|docs/需求-企业微信基础设施规约.md|docs/海音达OA-MVP需求规格说明书.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|.agents/skills/hyb-oa-delivery/SKILL.md ["WCPC-3"] ["WCPC-5"] 本轮只回写基线和等待配置状态,不部署;完整 POC 需在 WCPC-1/2/4/5 完成后再回填最终结论。 本轮只回写事实源,不部署;运行时迁移仍需另建 wecom_hr_master_sync_v1 合同。
9 WCPC-7 阶段中文提交 基线复跑和事实源回写通过后提交中文 commit;完整 POC 仍等待外部配置后继续执行。 既有测试号复跑和事实源回写通过后提交中文 commit;下一步只允许规划 HR 主数据镜像,不直接实现后续阶段。 1) Issue CSV 状态按实际结果回填;2) 所有已执行 Test_Method 通过或记录可解释阻断;3) git status 干净;4) commit message 为中文并引用 WCPC。 1) Issue CSV 状态按实际结果回填;2) 所有已执行 Test_Method 通过或记录可解释非阻断缺口;3) git status 干净;4) commit message 为中文并引用 WCPC。 受影响流程:配置收口证据 -> git 历史 -> 后续开发准入;验证步骤:git status --short;git log -1 --oneline。 git DONE DONE DONE N/A ["WCPC-6"] 外部配置未完成,本提交为 PAUSE_FOR_CONFIG 阶段提交,不得标记 GO_TO_HR_MASTER_SYNC。 本次提交记录 GO_TO_HR_MASTER_SYNC;审批模板/实例、callback.config 和 HR 写接口仍需后续单独合同处理。
10 WCPC-8 已有测试号口径调整 根据用户确认,将 WCPC 复跑对象从新建测试成员调整为已有在职测试号;保留不使用已离职 HRWDTEST、不改业务代码、不部署、不持久写 env 的边界。 根据用户确认,将 WCPC 复跑对象从新建测试成员调整为已有在职测试号,并已完成自动查找、只读复跑和事实源回填;保留不使用已离职 HRWDTEST、不改业务代码、不部署、不持久写 env 的边界。 1) WCPC CSV、路线图、企微规约、管理员手册、人工试运行报告、PRD、产品口径、文档索引、事实源矩阵和项目 skill 已同步;2) 残留的新建成员要求已清理;3) validate_issues_csv、audit-docs、quick_validate、git diff --check 通过。 受影响流程:WCPC 配置收口 -> 已有测试号复跑 -> HR 主数据镜像准入判断;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv;node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check;rg -n '已有在职测试号|测试号 userid|HRWDTEST-20260517214548|GO_TO_HR_MASTER_SYNC' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。 受影响流程:WCPC 配置收口 -> 已有测试号复跑 -> HR 主数据镜像准入判断;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv;node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check;rg -n '已有在职测试号|oa_smoke|HRWDTEST-20260517214548|GO_TO_HR_MASTER_SYNC' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。 python3|node|rg|git DONE DONE DONE issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv|docs|.agents/skills/hyb-oa-delivery/SKILL.md ["WCPC-7"] 本次只修复口径和事实源;完整 POC 仍等待用户提供已有测试号 userid、模板 ID 和 sp_no。 完成结论:使用 SMOKE002/测试员工(脱敏 oa_smoke***)复跑通过,报告 /tmp/wecom-capability-poc-wcpc-smoke002/summary.json。