From 1ccd6757143d9badbdbaa65ffe5bf64b86ff5b3b Mon Sep 17 00:00:00 2001 From: shunli Date: Sun, 17 May 2026 22:19:59 +0800 Subject: [PATCH] =?UTF-8?q?HCLT=20=E5=90=8C=E6=AD=A5=E4=BC=81=E5=BE=AE?= =?UTF-8?q?=E9=80=9A=E8=AE=AF=E5=BD=95=E9=AA=8C=E8=AF=81=E5=8F=A3=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/hyb-oa-delivery/SKILL.md | 2 ++ docs/海音达OA-MVP需求规格说明书.md | 4 ++-- docs/管理员手册.md | 4 ++-- docs/需求-企业微信基础设施规约.md | 3 ++- issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv | 7 +++++++ 5 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv diff --git a/.agents/skills/hyb-oa-delivery/SKILL.md b/.agents/skills/hyb-oa-delivery/SKILL.md index 051ae0df..332eaf9b 100644 --- a/.agents/skills/hyb-oa-delivery/SKILL.md +++ b/.agents/skills/hyb-oa-delivery/SKILL.md @@ -15,6 +15,7 @@ Read only what is relevant: - After R5, first check the main R5/R6 contract status before planning trial-run or follow-up work; R5 must remain the completed gate and R6 must have its own Issue CSV before expanding scope. - 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 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`. @@ -103,6 +104,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 HRWD/HCLT, ERP is not a future OA integration target, Enterprise WeChat native approval is not the formal workflow, and 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. - 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/海音达OA-MVP需求规格说明书.md b/docs/海音达OA-MVP需求规格说明书.md index 6cd20302..a2555faa 100644 --- a/docs/海音达OA-MVP需求规格说明书.md +++ b/docs/海音达OA-MVP需求规格说明书.md @@ -91,7 +91,7 @@ P2T 只做排序和边界确认,不进入当前实现。候选项按 R7 真实 | 优先级 | 候选 | 当前边界 | | --- | --- | --- | -| P2-1 | 人事生命周期与账号主数据治理 | 优先覆盖入职、转正、调岗、离职、直属主管缺失、主管/审批人停用、admin-only 误用、财务/管理员角色混淆、OA 账号和企业微信通讯录/绑定闭环;不使用企业微信原生审批 | +| P2-1 | 人事生命周期与账号主数据治理 | 已覆盖入职、转正、调岗、离职、OA 账号和企业微信通讯录/绑定闭环;HCLT 已验证公网企微通讯录 create/update/disable 真实写入;不使用企业微信原生审批 | | P2-2 | 审批与通知扩展 | 转审扩展到请假/采购/差旅拆 `W2F`;邮件通道和三渠道完整验收另决策;不引入复杂 BPM | | P2-3 | OCR 与票据增强 | 当前试运行继续 PDF-only;图片 OCR、批量样票和异步体验需另补样票、隐私处理和 provider 回归 | | P2-4 | 费用/预算/项目轻量增强 | 可评估费用提示和项目关联增强;预算重型控制和正式成本核算继续冻结,ERP 不再作为后续接入项 | @@ -120,7 +120,7 @@ ERP 已从“冻结待办”调整为“未来不接入 OA”。其他冻结项 | --- | --- | --- | --- | --- | | P0 | 统一审批中心 | 所有正式审批在 OA 内处理 | PC 审批待办、移动审批 | 能提交、审批、驳回、退回、转审、留痕 | | P0 | 企业微信基础设施 | 手机入口、免登、通知、打卡原始采集 | 企业微信自建应用 `海音达工作台` | 手机进入 `/mobile`,通知 deeplink 回 OA | -| P0 | 人事生命周期 | 入职、转正、调岗、离职、OA 账号、权限和企业微信通讯录状态闭环 | 人员管理、员工档案 | OA 为员工主事实源,企微通讯录同步成功或可解释 SKIP/失败可重试 | +| P0 | 人事生命周期 | 入职、转正、调岗、离职、OA 账号、权限和企业微信通讯录状态闭环 | 人员管理、员工档案 | OA 为员工主事实源;HCLT 已验证公网企微通讯录真实写入,其他环境缺配置时同步可解释 SKIP/失败并可重试 | | P0 | 报销/发票/OCR | 员工自助报销,财务可查重和导出 | 报销、移动报销、票据中心 | 上传、OCR、查重、绑定、审批、付款闭环 | | P0 | 请假与考勤修正审批 | 请假、补卡、外出、加班等修正都在 OA 内审批 | 请假、移动审批、团队状态 | 审批后团队状态和考勤口径不破坏 | | P1 | 采购/费用审批 | 小团队采购和费用事项留痕 | 采购、审批待办 | 申请、附件、审批、状态更新可用 | diff --git a/docs/管理员手册.md b/docs/管理员手册.md index e7b9583a..9be4751d 100644 --- a/docs/管理员手册.md +++ b/docs/管理员手册.md @@ -1,6 +1,6 @@ # hyb-oa 管理员手册(10 人以下团队版) -**当前状态(2026-05-17 / HRWD)**:R7E、PRELAUNCH、CASHIER-VOUCHER-V1、LAUNCH-DEPLOY-FINANCE、FIN-PROD-ENABLE、ACCOUNTING-HANDOFF-V1、ATTV1 和 HR-WECOM-DIRECTORY-V1 均已收口;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。 +**当前状态(2026-05-17 / HCLT)**:R7E、PRELAUNCH、CASHIER-VOUCHER-V1、LAUNCH-DEPLOY-FINANCE、FIN-PROD-ENABLE、ACCOUNTING-HANDOFF-V1、ATTV1、HR-WECOM-DIRECTORY-V1 和 HRWD-CONTACT-LIVE-TEST 均已收口;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。企业微信通讯录同步已完成公网 create/update/disable 真实写入验证。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。 ## 1. 适用范围 - 适用于 `small_team_internal` 工作区模式。 @@ -242,7 +242,7 @@ ORDER BY e.employee_no; ### 4.1 入职 1. 在 `人员管理` 创建员工账号。 2. 打开员工详情页,补齐部门、职位、直属上级、试用期结束日、工作地点、紧急联系人。 -3. 若已开启 `hr_wecom_directory_sync_v1` 且企业微信通讯录配置完整,创建或发起入职时系统会尝试创建企业微信成员;缺 Secret、缺默认部门或无通讯录权限时记录 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`,OA 入职不回滚。 +3. 若已开启 `hr_wecom_directory_sync_v1` 且企业微信通讯录配置完整,创建或发起入职时系统会尝试创建企业微信成员;HCLT 已验证公网真实写入闭环,缺 Secret、缺默认部门或无通讯录权限时记录 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG`,OA 入职不回滚。 4. 发起 `入职`,系统会自动生成 checklist:账号初始化、资产发放、制度确认。 5. checklist 全部完成后,员工状态自动从 `onboarding` 进入 `probation`。 6. 人员列表或员工详情中的“企业微信通讯录”状态若为同步失败或配置缺失,管理员可在配置修复后执行“重试同步”。 diff --git a/docs/需求-企业微信基础设施规约.md b/docs/需求-企业微信基础设施规约.md index 32bb844e..ea432eac 100644 --- a/docs/需求-企业微信基础设施规约.md +++ b/docs/需求-企业微信基础设施规约.md @@ -142,6 +142,7 @@ deeplink 必须校验目标地址白名单,避免跳转到非 OA 域名或未 ## 6. 通讯录身份边界 - HRWD 起,OA 驱动企业微信通讯录成员创建、更新和禁用;OA 员工表仍是权限、审批、业务数据和审计的主事实源。 +- HCLT 已完成公网真实写入验证:测试员工 `HRWDTEST-20260517214548` 已完成企业微信通讯录 create/update/disable,三次同步均为 `wecom_contact_synced` 且 `errcode=0`。 - 新员工在 OA 创建账号和入职记录后,可在 `hr_wecom_directory_sync_v1` 开启且配置完整时同步创建企业微信成员,并写入 `wecom_identity_bindings.external_user_id`。 - OA 调岗、部门、职位、手机号、邮箱变化后,可触发企业微信成员更新;历史审批和历史业务单据不因调岗被改写。 - 离职完成后默认禁用企业微信成员,不删除成员;绑定关系和历史业务记录保留审计。 @@ -154,7 +155,7 @@ deeplink 必须校验目标地址白名单,避免跳转到非 OA 域名或未 | 项目 | 状态 | 当前口径 | | --- | --- | --- | | OA 员工生命周期 | `DONE` | 支持入职、转正、调岗、离职 checklist、账号禁用、会话失效和审计。 | -| OA 驱动企微通讯录创建/更新/禁用 | `DONE_WITH_EXTERNAL_SKIP` | 代码、同步记录、员工管理状态和重试入口已部署;公网端点检查在缺配置时返回 `SKIP wecom_contact_sync_disabled`,真实写入取决于通讯录 Secret、默认部门和企业微信通讯录 API 权限。 | +| OA 驱动企微通讯录创建/更新/禁用 | `DONE_LIVE_VERIFIED` | 代码、同步记录、员工管理状态和重试入口已部署;HCLT 公网真实写入闭环通过,`HRWDTEST-20260517214548` create/update/disable 均返回 `errcode=0`。其他环境缺 Secret、默认部门或通讯录 API 权限时仍按 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG` 或失败可重试处理。 | | 企业微信原生审批 | `FROZEN` | 不作为正式审批流,入离职、请假、补卡、外出、加班审批均在 OA 内留痕。 | --- diff --git a/issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv b/issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv new file mode 100644 index 00000000..48ec82a7 --- /dev/null +++ b/issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv @@ -0,0 +1,7 @@ +"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes" +"HDS-0","合同建档","建立 HCLT-DOC-SKILL-SYNC 合同,记录 HCLT 公网测试已证明 OA 驱动企业微信通讯录 create/update/disable 真实写入闭环通过;本轮只同步文档和项目 skill 口径。","1) Issue CSV 校验通过;2) 范围限定为规约、PRD、管理员手册和 hyb-oa-delivery skill;3) 明确不改业务代码、不改 API/schema/UI、不部署;4) 记录 HCLT 证据路径和测试 marker。","受影响流程:HCLT 证据 -> 文档/Skill 口径同步;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv。","python3|manual","DONE","DONE","DONE","issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv","[]","回滚路径:回退本 CSV 和文档/skill 口径同步;不涉及运行时。" +"HDS-1","企业微信规约同步","更新企业微信基础设施规约,将 OA 驱动企微通讯录创建/更新/禁用从仅实现且可能外部 SKIP 的口径调整为公网真实写入已验证,同时保留缺配置环境的 SKIP/BLOCKED 边界。","1) 完成度表状态调整为 DONE_LIVE_VERIFIED 或等价口径;2) 写明 HRWDTEST-20260517214548 create/update/disable 和 errcode=0;3) 保留缺 Secret、默认部门或权限时可解释 SKIP/失败;4) 不新增企业微信原生审批或删除成员承诺。","受影响流程:HR 人事生命周期 -> 企微通讯录同步 -> 后续验收判断;验证步骤:rg -n 'DONE_LIVE_VERIFIED|HRWDTEST-20260517214548|wecom_contact_synced|SKIP/BLOCKED_BY_EXTERNAL_CONFIG' docs/需求-企业微信基础设施规约.md。","rg|manual","DONE","DONE","DONE","docs/需求-企业微信基础设施规约.md","[""HDS-0""]","离职仍默认禁用成员,不删除;其他环境缺外部配置时仍不是业务代码失败。" +"HDS-2","PRD 和管理员手册同步","更新 PRD 和管理员手册,将人事生命周期/企业微信通讯录状态补充为公网真实写入已验证,避免继续误读为只具备配置或代码能力。","1) PRD 人事生命周期验收口径包含公网真实写入已验证;2) 管理员手册当前状态和入职说明包含 HCLT 事实;3) 不新增操作流程;4) ERP 继续写为未来不接入 OA。","受影响流程:产品事实源 -> 管理员上线/入职操作说明;验证步骤:rg -n 'HCLT|HRWDTEST-20260517214548|公网真实写入|ERP 未来不接入' docs/海音达OA-MVP需求规格说明书.md docs/管理员手册.md。","rg|manual","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/管理员手册.md","[""HDS-1""]","只修正状态事实,不改变员工入职操作步骤。" +"HDS-3","项目 Skill 同步","更新 .agents/skills/hyb-oa-delivery/SKILL.md,补充 HR/企业微信通讯录任务必读事实源和默认边界:ERP 未来不接入、企业微信原生审批不作为正式流、企微通讯录同步已 live verified。","1) skill 增加 HR/企微通讯录相关必读事实源;2) skill 增加 HCLT 后默认判断边界;3) quick_validate 通过;4) 不扩大 skill 职责或引入新流程机制。","受影响流程:后续 agent 处理 HR/企微通讯录任务 -> 读取正确事实源 -> 避免误判能力未完成;验证步骤:python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery。","python3|manual","DONE","DONE","DONE",".agents/skills/hyb-oa-delivery/SKILL.md","[""HDS-1""]","保持 skill 简洁,只增加必要事实源和边界。" +"HDS-4","内容与静态门禁","运行文档、Skill、CSV 和 diff 静态校验,确认没有新增业务承诺或格式问题。","1) validate_issues_csv 通过;2) quick_validate 通过;3) audit-docs errors=0,既有 unregistered docs warning 不作为本轮阻断;4) git diff --check 通过;5) rg 内容核对通过。","受影响流程:文档治理 -> 提交门禁;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;node scripts/qa/audit-docs.mjs --check-registry;git diff --check;rg -n 'HCLT|HRWDTEST-20260517214548|DONE_LIVE_VERIFIED|wecom_contact_synced|hr_wecom_directory_sync_v1|ERP 未来不接入' docs .agents/skills/hyb-oa-delivery/SKILL.md issues。","python3|node|rg|git","DONE","DONE","DONE","docs|.agents/skills/hyb-oa-delivery/SKILL.md|issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv","[""HDS-2"",""HDS-3""]","不修复既有 audit-docs warning;如需清理另建文档治理合同。" +"HDS-5","收口提交","回填 Issue 状态并提交中文 commit。","1) 本 CSV 全部状态按实测回填 DONE;2) git status 干净;3) 中文 commit 引用 HCLT/HDS;4) 最终说明不宣称已部署,因为本轮无需部署。","受影响流程:HCLT 口径同步 -> 审计提交;验证步骤:git status --short;git commit -m 'HCLT 同步企微通讯录验证口径'。","git","DONE","DONE","DONE","issues/2026-05-17_22-16-27-hclt-doc-skill-sync.csv|docs|.agents/skills/hyb-oa-delivery/SKILL.md","[""HDS-4""]","仅文档和 skill 提交;不部署。"