From a5f49cec3b78ef6d2acf570e568b724710dcc9e2 Mon Sep 17 00:00:00 2001 From: shunli Date: Mon, 18 May 2026 16:59:05 +0800 Subject: [PATCH] =?UTF-8?q?WCPC=20=E8=B0=83=E6=95=B4=E4=B8=BA=E5=B7=B2?= =?UTF-8?q?=E6=9C=89=E6=B5=8B=E8=AF=95=E5=8F=B7=E5=A4=8D=E8=B7=91=E4=BC=81?= =?UTF-8?q?=E5=BE=AEPOC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/hyb-oa-delivery/SKILL.md | 2 +- docs/trialrun/人工试运行报告.md | 4 ++-- docs/产品口径.md | 2 +- docs/企微优先开发路线图.md | 8 ++++---- docs/文档事实源状态矩阵.md | 2 +- docs/文档索引.md | 4 ++-- docs/海音达OA-MVP需求规格说明书.md | 2 +- docs/管理员手册.md | 8 ++++---- docs/需求-企业微信基础设施规约.md | 12 ++++++------ ...01-23-wecom-capability-poc-config-closeout-v1.csv | 7 ++++--- 10 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.agents/skills/hyb-oa-delivery/SKILL.md b/.agents/skills/hyb-oa-delivery/SKILL.md index f1cfda56..982af430 100644 --- a/.agents/skills/hyb-oa-delivery/SKILL.md +++ b/.agents/skills/hyb-oa-delivery/SKILL.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: create or designate a new active test member, provide test userid, approval template ID, and `sp_no`, and confirm check-in/approval/vacation/callback permissions; 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 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`. - 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. diff --git a/docs/trialrun/人工试运行报告.md b/docs/trialrun/人工试运行报告.md index 62297c49..b0ba0063 100644 --- a/docs/trialrun/人工试运行报告.md +++ b/docs/trialrun/人工试运行报告.md @@ -45,7 +45,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 - 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`。当前等待用户在企业微信后台准备新的在职测试成员、测试审批模板 ID、审批单号 `sp_no`、打卡/审批/假期/回调权限后复跑完整 POC;本轮不部署、不改业务代码、不持久写服务器 `.env`。 +- 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`。 ## 关键证据索引 @@ -133,7 +133,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开 | 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。 | +| 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。 | ## R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进 diff --git a/docs/产品口径.md b/docs/产品口径.md index 2b357d40..24e16a2c 100644 --- a/docs/产品口径.md +++ b/docs/产品口径.md @@ -48,7 +48,7 @@ ### P0-7 WCPC 配置复跑口径 - WCPC 只做企业微信后台配置收口和只读 POC 复跑,不改业务代码、不部署、不持久写服务器 `.env`。 -- 复跑使用新的在职测试成员和一条新建企微测试审批单;需要非敏感值:测试成员 userid、审批模板 ID、审批单号 `sp_no`。 +- 复跑使用已有在职测试号和一条新建企微测试审批单;需要非敏感值:测试号 userid、审批模板 ID、审批单号 `sp_no`;不得使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试号。 - 当前未补配置前的远端基线仍为 `PAUSE_FOR_CONFIG`,不得进入 `wecom_hr_master_sync_v1`。 --- diff --git a/docs/企微优先开发路线图.md b/docs/企微优先开发路线图.md index 2e24b38c..3ad46e33 100644 --- a/docs/企微优先开发路线图.md +++ b/docs/企微优先开发路线图.md @@ -23,7 +23,7 @@ | `WFDG` | 已完成 | 固定设计门禁:先判定主办方、数据边界、入口交互、隐私消息、同步审计、应急接管、恢复回写和 RuleOps 边界。 | | `WDRG` | 已完成 | 固定开发路线图和节奏,下一步只允许进入 `WECOM-CAPABILITY-POC-V1`。 | | `WCP1` | 当前暂停配置 | 已完成只读 POC runner 和远端只读探测,结论 `PAUSE_FOR_CONFIG`;不得进入 `wecom_hr_master_sync_v1`,需先补企微配置/权限后复跑 POC。 | -| `WCPC` | 当前等待外部配置 | 已建立配置收口合同并完成未补配置前基线复跑;等待新在职测试成员、审批模板 ID、审批单号和企微后台权限后复跑完整 POC。 | +| `WCPC` | 当前等待外部配置 | 已建立配置收口合同并完成未补配置前基线复跑;等待已有在职测试号 userid、审批模板 ID、审批单号和企微后台权限后复跑完整 POC。 | ## 3. 阶段路线 @@ -89,11 +89,11 @@ 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 主数据镜像合同。 +因此,当前下一步不是 `wecom_hr_master_sync_v1` 开发,而是补齐或确认上述配置后复跑 `WECOM-CAPABILITY-POC-V1`。只有 `contact.member_read` 与 `hr.staff_read` 至少对一个已有在职测试号通过,并且能力矩阵给出 `GO_TO_HR_MASTER_SYNC`,才允许进入 HR 主数据镜像合同。 ## 8. WCPC 配置收口状态 -2026-05-18 已建立 `WCP1-CONFIG-CLOSEOUT-V1` 合同,目标是用新的在职测试成员和一条新建企业微信测试审批单复跑完整 POC。本轮不开发业务功能、不部署、不持久修改服务器 `.env`,服务器复跑只使用临时环境变量。 +2026-05-18 已建立 `WCP1-CONFIG-CLOSEOUT-V1` 合同,目标是用已有在职测试号和一条新建企业微信测试审批单复跑完整 POC。本轮不开发业务功能、不部署、不持久修改服务器 `.env`,服务器复跑只使用临时环境变量。 当前已完成: @@ -103,7 +103,7 @@ POC 默认只读或低风险探测。任何生产写操作、企微规则写入 等待外部配置: -- 新在职测试成员 userid。 +- 已有在职测试号 userid。 - 测试审批模板 ID。 - 测试审批单号 `sp_no`。 - 打卡 API、审批、假期余额和回调配置权限确认。 diff --git a/docs/文档事实源状态矩阵.md b/docs/文档事实源状态矩阵.md index 64138ccd..1dd9f64b 100644 --- a/docs/文档事实源状态矩阵.md +++ b/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。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 路线图门禁均已完成,当前 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 验证;测试成员按审计要求保留离职/禁用状态。 diff --git a/docs/文档索引.md b/docs/文档索引.md index 9ec21afb..c5ca2f69 100644 --- a/docs/文档索引.md +++ b/docs/文档索引.md @@ -60,7 +60,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M - 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`。当前等待用户在企业微信后台准备新在职测试成员、审批模板 ID、测试审批单号、打卡/审批/假期/回调权限后复跑完整 POC;本轮不部署、不持久改 `.env`、不调用生产写接口。 +- WCPC 是 WCP1 后的配置收口合同:已创建 Issue CSV,并完成未补配置前远端基线复跑,结论仍为 `PAUSE_FOR_CONFIG`。当前改为使用已有在职测试号,等待用户提供测试号 userid、审批模板 ID、测试审批单号、打卡/审批/假期/回调权限后复跑完整 POC;本轮不部署、不持久改 `.env`、不调用生产写接口。 ## 当前活跃治理流 @@ -107,7 +107,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M | `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` | +| `WCPC` | `issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv` | 当前:等待外部企微配置 | 已有在职测试号、测试审批单、打卡/审批/假期/回调配置收口和 POC 复跑 | 不开发业务功能、不部署、不持久改服务器 env;缺外部配置时保持 `PAUSE_FOR_CONFIG` | 旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。 diff --git a/docs/海音达OA-MVP需求规格说明书.md b/docs/海音达OA-MVP需求规格说明书.md index e4365fce..4486a8e9 100644 --- a/docs/海音达OA-MVP需求规格说明书.md +++ b/docs/海音达OA-MVP需求规格说明书.md @@ -111,7 +111,7 @@ WCP1 最终结论为 `PAUSE_FOR_CONFIG`,不是 `GO_TO_HR_MASTER_SYNC`。后续 ### 1.9 WCPC 配置收口 -WCPC 是 WCP1 后的配置复跑合同,只处理企业微信后台配置和只读 POC 复跑,不开发运行时功能。当前已完成未补配置前的远端基线复跑,结论仍为 `PAUSE_FOR_CONFIG`。下一步需要用户在企业微信后台准备新的在职测试成员、测试审批模板 ID、测试审批单号、打卡/审批/假期/回调权限后复跑。复跑成功前,不得进入 `wecom_hr_master_sync_v1`。 +WCPC 是 WCP1 后的配置复跑合同,只处理企业微信后台配置和只读 POC 复跑,不开发运行时功能。当前已完成未补配置前的远端基线复跑,结论仍为 `PAUSE_FOR_CONFIG`。下一步改为使用已有在职测试号,需要用户提供测试号 userid、测试审批模板 ID、测试审批单号、打卡/审批/假期/回调权限后复跑;不得使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试号。复跑成功前,不得进入 `wecom_hr_master_sync_v1`。 --- diff --git a/docs/管理员手册.md b/docs/管理员手册.md index 19a51046..cc97cdf5 100644 --- a/docs/管理员手册.md +++ b/docs/管理员手册.md @@ -200,10 +200,10 @@ WCP1 后续推进: WCPC 配置复跑清单: -1. 新建或指定一个在职测试成员,建议命名为 `WCP1TEST-<时间戳>`;不要继续使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试成员。 -2. 将该测试成员加入企业微信工作台应用可见范围、通讯录读取范围、人事助手可读范围、打卡规则范围和审批模板可见范围。 -3. 用该测试成员提交一条请假或补卡测试审批,不上传采购、合同、报销、发票、银行回单或其他敏感附件。 -4. 向执行人提供三个非敏感值:测试成员 `userid`、审批模板 ID、审批单号 `sp_no`。Secret、Token、EncodingAESKey 不在聊天中明文发送。 +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`。 diff --git a/docs/需求-企业微信基础设施规约.md b/docs/需求-企业微信基础设施规约.md index a11b429f..9940238b 100644 --- a/docs/需求-企业微信基础设施规约.md +++ b/docs/需求-企业微信基础设施规约.md @@ -247,7 +247,7 @@ 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`。在 `contact.member_read` 和 `hr.staff_read` 至少对一个已有在职测试号通过、审批/打卡/回调关键配置有清晰处理方式,并复跑 POC 得到准入结论前,不得启动 `wecom_hr_master_sync_v1` 运行时开发。 ## 7.10 WCPC 配置复跑口径 @@ -255,9 +255,9 @@ WCP1 结论不是 `GO_TO_HR_MASTER_SYNC`。在 `contact.member_read` 和 `hr.sta 配置复跑要求: -- 使用新的在职测试成员,不使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试对象。 -- 新测试成员必须在工作台应用、通讯录读取范围、人事助手可读范围、打卡规则范围和审批模板可见范围内。 -- 用户需提供非敏感值:测试成员 userid、审批模板 ID、测试审批单号 `sp_no`。 +- 使用已有在职测试号,不使用已离职/禁用的 `HRWDTEST-20260517214548` 作为主测试对象。 +- 已有测试号必须在工作台应用、通讯录读取范围、人事助手可读范围、打卡规则范围、审批模板可见范围和假期权限范围内。 +- 用户需提供非敏感值:已有测试号 userid、审批模板 ID、测试审批单号 `sp_no`。 - Secret、access token、回调 Token 和 EncodingAESKey 不写入仓库、不打印到报告、不在聊天中明文传递。 - 服务器侧复跑只做临时环境变量注入,不持久修改 `.env`,不重启服务。 - 回调本轮只验证配置存在性;真实事件回调接收、解密、幂等和入库留到 `wecom_attendance_approval_mirror_v1`。 @@ -266,8 +266,8 @@ WCP1 结论不是 `GO_TO_HR_MASTER_SYNC`。在 `contact.member_read` 和 `hr.sta | 能力 | 期望 | | --- | --- | -| `contact.member_read` | 新在职测试成员读取为 `CAN_REUSE_NOW`。 | -| `hr.staff_read` | 新在职测试成员花名册读取为 `CAN_REUSE_NOW`。 | +| `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` | 本轮只要求配置存在,不代表回调运行时能力完成。 | diff --git a/issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv b/issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv index dc0e0dc5..b982e417 100644 --- a/issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv +++ b/issues/2026-05-18_15-01-23-wecom-capability-poc-config-closeout-v1.csv @@ -1,9 +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","新在职测试成员准备","等待用户在企业微信后台创建或指定新的在职测试成员 WCP1TEST-,并加入工作台应用、通讯录、人事助手、打卡、审批可见/权限范围。","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","已有在职测试号指定","等待用户指定已有在职测试号,并确认该账号已加入工作台应用、通讯录、人事助手、打卡、审批和假期权限范围;不再要求新建企业微信成员。","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-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 deploy@118.89.77.218 '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= WECOM_CAPABILITY_POC_DAYS=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-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 deploy@118.89.77.218 '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= WECOM_CAPABILITY_POC_DAYS=1 WECOM_APPROVAL_TEMPLATE_ID= WECOM_APPROVAL_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。"