文件
hyb-oa/issues/2026-05-18_21-46-41-wecom-api-capability-catalog-runtime-first.csv
T

11 行
9.8 KiB
CSV

ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WAPI-0","合同建档与边界冻结","建立 WAPI 企微 API 本地能力目录与运行优先纠偏合同,锁定本轮只调研官方文档、固化 Secret/API 口径、纠正只读读取策略并复跑 WOUA,不执行真实员工批量 apply、不打开 wecom_hr_master_sync_v1、不修改 OA 或企微用户数据。","1) CSV 校验通过;2) 范围覆盖 API 能力目录、Secret 矩阵、WHMS/WOUA 只读读取纠偏、文档/skill 回写和公网只读复跑;3) 不新增公开 API、Prisma schema、前端 UI 或 feature flag;4) 记录现有 WOUA/WHMS 口径被本轮 supersede 的范围。","受影响流程:企微开发需求 -> Issue 合同 -> API 调研和读取纠偏 -> 后续功能派工;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_21-46-41-wecom-api-capability-catalog-runtime-first.csv。","python3|manual","DONE","DONE","DONE","issues/2026-05-18_21-46-41-wecom-api-capability-catalog-runtime-first.csv","[]","回滚路径:删除本 CSV 和本轮文档/代码回写;本轮不涉及数据库迁移或生产数据写入。"
"WAPI-1","企微官方 API 能力目录","调研本项目会用到的企业微信官方开发者文档,新增 docs/企微API能力目录.md,按能力记录官方链接、接口路径、方法、Secret 来源、权限/可见范围、可信 IP、回调/模板要求、读写边界、项目状态和适用业务。","1) 覆盖基础认证、工作台/OAuth、应用消息、通讯录、人事助手、打卡、审批、回调与安全;2) 区分产品 UI 支持和开放 API 支持;3) 不复制官方文档全文,只沉淀本项目摘要和决策;4) 不包含 Secret、token、完整 userid、手机号、邮箱或原始 payload。","受影响流程:企微能力不清楚 -> 先读本地 API 目录 -> 再拆实现合同;验证步骤:rg -n 'WECOM_CONTACT_SECRET|WECOM_AGENT_SECRET|list_id|get_staff_info|update_staff_info|产品 UI|API 支持|BLOCKED_BY_EXTERNAL_CONFIG' docs/企微API能力目录.md。","curl|rg|manual","DONE","DONE","DONE","docs/企微API能力目录.md","[""WAPI-0""]","回滚路径:删除新增目录文档和索引登记;官方文档以企业微信开发者中心为准,每条能力记录最后核对日期。"
"WAPI-2","Secret 矩阵固化","将企微 Secret 使用规则固化为通讯录专用 WECOM_CONTACT_SECRET、工作台/多数开放 API 使用 WECOM_AGENT_SECRET、WECOM_CHECKIN_SECRET 仅作显式打卡 override、WECOM_HR_ASSISTANT_SECRET 当前不作为标准配置。","1) 文档、skill 和代码口径一致;2) 运行时代码不再用多个 Secret 试错;3) 缺权限或缺配置输出 SKIP/BLOCKED_BY_EXTERNAL_CONFIG;4) 保留历史兼容项时必须标记 deprecated 且不参与默认读取。","受影响流程:企微配置维护 -> 后端读取能力 -> 错误归因和后续排障;验证步骤:rg -n 'WECOM_CONTACT_SECRET|WECOM_AGENT_SECRET|WECOM_CHECKIN_SECRET|WECOM_HR_ASSISTANT_SECRET|deprecated|不得.*试错|BLOCKED_BY_EXTERNAL_CONFIG' docs .agents/skills/hyb-oa-delivery/SKILL.md server/src/services/integrations/wecomHrMaster.js。","rg|node","DONE","DONE","DONE","docs|.agents/skills/hyb-oa-delivery/SKILL.md|server/src/services/integrations/wecomHrMaster.js","[""WAPI-1""]","回滚路径:回退 Secret 矩阵文档和读取服务改动;不修改远端 env。"
"WAPI-3","WHMS 读取策略纠偏","纠正 wecomHrMaster 只读读取策略:通讯录全量使用 POST /cgi-bin/user/list_id 加可选成员详情富化,通讯录 token 固定 WECOM_CONTACT_SECRET;人事助手读取固定 WECOM_AGENT_SECRET;移除运行时 fallback 试错语义。","1) 全量候选 userid 来自 user/list_id;2) 指定 userids 时按可选成员详情和花名册详情读取;3) tokenSource 不再出现 WECOM_AGENT_SECRET_FALLBACK 作为默认路径;4) 错误摘要脱敏且不含 Secret/token/完整手机号/邮箱。","受影响流程:WHMS/WOUA 读取企微通讯录和人事助手 -> 生成同步或审计候选;验证步骤:cd server && node --check src/services/integrations/wecomHrMaster.js;cd server && npx vitest run tests/unit/wecomHrMaster.service.test.js --reporter=verbose。","node|vitest","DONE","DONE","DONE","server/src/services/integrations/wecomHrMaster.js|server/tests/unit/wecomHrMaster.service.test.js","[""WAPI-2""]","回滚路径:回退读取服务和 focused 单测;不回退既有通讯录写入服务。"
"WAPI-4","WOUA 对账复跑纠偏","让 OA/企微用户一致性只读对账复用 WAPI 后的固定读取策略,保持 BEGIN READ ONLY、脱敏报告和不调用 WHMS dry-run/apply API 的边界。","1) WOUA 不写 OA/企微用户数据;2) 本地脱敏单测仍通过;3) live 缺配置时只输出 SKIP/BLOCKED_BY_EXTERNAL_CONFIG;4) 若读取成功,报告分类仍保持 matchedActive、missing、mismatch 和 conflict 口径。","受影响流程:OA active 员工 -> 企微通讯录 userid 清单 + 人事助手花名册 -> 脱敏一致性报告;验证步骤:cd server && node --check src/scripts/audit-wecom-oa-user-consistency.js;cd server && npx vitest run tests/unit/scripts/audit-wecom-oa-user-consistency.test.js --reporter=verbose。","node|vitest|pg|wecom","DONE","DONE","DONE","server/src/scripts/audit-wecom-oa-user-consistency.js|server/tests/unit/scripts/audit-wecom-oa-user-consistency.test.js","[""WAPI-3""]","回滚路径:回退 WOUA runner 相关改动;报告不得输出 Secret、token、完整 userid、手机号、邮箱或原始 payload。"
"WAPI-5","运行优先路线回写","更新企微优先开发路线图、企业微信基础设施规约、产品口径和管理员手册,将下一步从深度镜像/功能对齐调整为优先用入口、免登/绑定、脱敏消息、deeplink、通讯录 userid 清单、人事助手读取和打卡读取。","1) 明确 wecom_attendance_approval_mirror_v1、应急接管、恢复回写、RuleOps 暂缓;2) 明确 WOUA 复跑和审批/回调配置是后续前置;3) 不宣称企业微信产品 UI 功能都有开放 API;4) 保留 OA 主办高敏业务边界。","受影响流程:项目路线判断 -> 后续企微 Issue 拆分 -> 首批系统运行;验证步骤:rg -n '运行优先|暂缓|企微API能力目录|wecom_attendance_approval_mirror_v1|产品 UI|开放 API|OA 主办' docs/企微优先开发路线图.md docs/需求-企业微信基础设施规约.md docs/产品口径.md docs/管理员手册.md。","rg|manual","DONE","DONE","DONE","docs/企微优先开发路线图.md|docs/需求-企业微信基础设施规约.md|docs/产品口径.md|docs/管理员手册.md","[""WAPI-2""]","回滚路径:回退路线口径文档;不改变运行时配置或业务数据。"
"WAPI-6","索引矩阵与 Skill 回写","登记 docs/企微API能力目录.md 到文档索引和事实源矩阵,并更新 hyb-oa-delivery skill,要求企微开发先读 API 目录和 Secret 矩阵。","1) 文档索引可从当前事实源入口找到 API 能力目录;2) 事实源矩阵新增 WAPI/API-CATALOG 记录;3) skill quick_validate 通过;4) 未来企微任务不会只读路线图而跳过 API 目录。","受影响流程:后续 agent 处理企微任务 -> 先读本地 API 目录 -> 避免重复调研或 Secret 试错;验证步骤: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。","node|python3|rg","DONE","DONE","DONE","docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WAPI-5""]","回滚路径:回退索引、矩阵和 skill 改动;新增事实源不替代官方文档。"
"WAPI-7","公网只读复跑","本地门禁通过后,以 SYNC_ENV=0 受控部署 QA-only 变更,在远端 server 容器执行 OA/企微用户一致性只读复跑,验证 WAPI 固化后的通讯录和人事助手读取路径。","1) 部署不覆盖远端 env;2) 不打开 wecom_hr_master_sync_v1;3) 不执行真实员工批量 apply;4) 报告结论只能为 PASS_NO_DRIFT、PASS_WITH_FINDINGS 或真实 SKIP/BLOCKED_BY_EXTERNAL_CONFIG。","受影响流程:公网 OA 员工和企业微信可见成员 -> 只读一致性审计 -> 后续修复或运行路线决策;验证步骤:SYNC_ENV=0 bash deploy/trialrun/deploy.sh;ssh 远端在 server 容器内执行 npm run audit:wecom-oa-users -- --live --format=json 并核对脱敏报告。","bash|ssh|node","DONE","DONE","DONE","external|artifacts/qa-flow/wecom-oa-user-consistency-*","[""WAPI-4"",""WAPI-6""]","公网复跑报告 /app/artifacts/qa-flow/wecom-oa-user-consistency-20260518T142544Z/summary.json,结论 PASS_WITH_FINDINGS;远端 wecom_hr_master_sync_v1=force_off;回滚路径:部署回滚按既有部署流程;本 Issue 不写生产用户数据。"
"WAPI-8","状态回填与中文提交","完成 WAPI 状态回填、本地门禁、公网只读报告核对和中文提交。","1) WAPI-0..7 按实测回填;2) validate_issues_csv、文档审计、skill 校验、node --check、focused vitest、prisma validate、git diff --check 均通过或记录明确阻断;3) 中文 commit 引用 WAPI;4) 最终说明是否已部署和用户是否可测。","受影响流程:Issue 合同 -> 验证证据 -> 中文提交 -> 后续企微开发依据;验证步骤:git status --short;git log -1 --oneline。","git|manual","DONE","DONE","DONE","issues/2026-05-18_21-46-41-wecom-api-capability-catalog-runtime-first.csv|docs|server/src/services/integrations/wecomHrMaster.js|server/tests/unit/wecomHrMaster.service.test.js|server/src/scripts/audit-wecom-oa-user-consistency.js|server/tests/unit/scripts/audit-wecom-oa-user-consistency.test.js|.agents/skills/hyb-oa-delivery/SKILL.md","[""WAPI-7""]","本地门禁通过,公网 WOUA 复跑 PASS_WITH_FINDINGS;提交前确认 diff 不包含 Secret、token、手机号、邮箱、完整 userid 或企微原始 payload。"