10 行
7.9 KiB
CSV
10 行
7.9 KiB
CSV
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
|
"WHMS-0","合同建档","建立 WECOM-HR-MASTER-SYNC-V1 执行合同,锁定本轮为企业微信/人事助手只读主数据同步到 OA;不做考勤/审批镜像、审批回调、恢复回写、RuleOps、HR 写企微接口、采购/合同/财务迁移。","1) CSV 校验通过;2) 范围限定为 HR 主数据读取、dry-run、apply、同步记录、管理入口、QA runner、文档和 skill 回写;3) 新增 feature flag 默认 force_off;4) 结论不得误写为考勤/审批镜像已完成。","受影响流程:WCPC GO_TO_HR_MASTER_SYNC -> WHMS 合同 -> 后端/前端/QA/文档实现;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_18-43-19-wecom-hr-master-sync-v1.csv。","python3|manual","DONE","DONE","DONE","issues/2026-05-18_18-43-19-wecom-hr-master-sync-v1.csv","[]","回滚路径:删除本 CSV 或回退 WHMS 相关提交;不涉及生产配置或部署。"
|
|
"WHMS-1","企微主数据读取服务","新增企微 HR 主数据读取服务,使用通讯录成员列表和人事助手 hr/get_staff_info 读取花名册详情,并做字段归一化和脱敏。","1) 能按 userids 或 limit 拉取候选员工;2) 支持 WECOM_HR_ASSISTANT_SECRET,必要时记录 WECOM_AGENT_SECRET fallback token source;3) 不打印完整手机号、邮箱、userid、token、secret 或原始 payload;4) 缺配置返回 SKIP/BLOCKED_BY_EXTERNAL_CONFIG 类状态。","受影响流程:企微通讯录/人事助手 -> OA HR 主数据同步;验证步骤:cd server && node --check src/services/integrations/wecomHrMaster.js;后端 focused 测试覆盖字段归一化、脱敏和缺配置。","node|vitest","DONE","DONE","DONE","server/src/services/integrations/wecomHrMaster.js|server/src/config.js","[""WHMS-0""]","回滚路径:回退新增服务和配置读取;不删除既有企微目录同步能力。"
|
|
"WHMS-2","同步 dry-run","新增 dry-run 批次能力,生成将创建、更新、绑定、跳过和冲突的员工/部门差异报告,不写 OA 员工主数据。","1) dry-run 不创建或更新 Employee/User/Department/Binding;2) 差异报告记录脱敏 externalUserId、动作、字段差异、跳过原因;3) 缺 OA 必填字段默认 SKIP missing_required_field;4) 企微不在职状态记录 needs_offboarding_confirmation,不自动禁用 OA 账号。","受影响流程:管理员发起 dry-run -> 系统读取企微主数据 -> 输出差异 -> 不写库;验证步骤:后端 focused 测试执行 dry-run 后比对员工、账号、部门、绑定数量不变;cd server && npm run prisma:validate。","node|vitest|prisma","DONE","DONE","DONE","server/prisma/schema.prisma|server/src/services/integrations/wecomHrMaster.js","[""WHMS-1""]","涉及 Prisma 迁移;回滚路径:回退迁移和新增模型,或在部署前不执行迁移。"
|
|
"WHMS-3","同步 apply","新增 apply 批次能力,管理员确认后写入 OA 员工档案、部门、主管、职位、手机号、邮箱、默认角色和企业微信绑定。","1) apply 幂等;2) 匹配优先级为 WecomIdentityBinding.external_user_id -> 企微 userid -> 手机号 -> 邮箱;3) 新建账号默认 employee 角色、随机不可见密码、must_change_password=true;4) 只更新安全主数据字段,不覆盖银行账户、身份证、工资、合同附件或历史审批。","受影响流程:管理员确认 apply -> 创建/更新员工与账号 -> 绑定企微 userid -> 审计留痕;验证步骤:后端 focused 测试覆盖新建、更新、绑定、幂等、冲突检测和不在职确认项。","node|vitest|prisma","DONE","DONE","DONE","server/src/services/integrations/wecomHrMaster.js|server/src/routes/employees.js|server/prisma/schema.prisma","[""WHMS-2""]","生产真实员工批量 apply 需单独确认;本轮实现能力但不部署、不做生产批量写入。"
|
|
"WHMS-4","同步记录与审计","新增同步批次和逐员工结果模型/API 输出,记录统计、状态、操作人、失败原因、重试次数、字段差异和审计事件。","1) WecomHrMasterSyncRun 和 WecomHrMasterSyncItem 可记录 dry-run/apply 结果;2) 管理员可查询最近批次和批次详情;3) 审计覆盖 dry_run、apply、create、update、bind、skip、conflict;4) 普通员工不可访问同步状态和触发同步。","受影响流程:同步执行 -> 批次结果查询 -> 审计追踪;验证步骤:权限负例返回 403;GET runs 和 GET runs/:id 返回脱敏数据;审计日志不含 secret/token/full userid/full phone/email。","node|vitest|prisma","DONE","DONE","DONE","server/prisma/schema.prisma|server/src/routes/employees.js|server/src/services/integrations/wecomHrMaster.js","[""WHMS-3""]","涉及权限模型和审计;回滚路径:回退新增路由、服务和迁移。"
|
|
"WHMS-5","管理端入口","在 People/人员管理页增加企微 HR 主数据同步卡片,支持管理员/HR 执行 dry-run、apply、查看最近同步和失败项;普通员工不可见。","1) 管理员/HR 可看到同步卡片、执行 dry-run、查看最近批次与失败项;2) apply 按显式确认触发;3) 普通员工不可见入口;4) 页面明确展示企微镜像、OA 主办和待确认状态,不误导为考勤/审批镜像已完成。","受影响流程:管理员打开人员管理 -> 执行 dry-run -> 查看差异 -> 执行 apply -> 查看批次;验证步骤:cd client && npm run typecheck && npm run build;必要时 Playwright/手工说明覆盖 People 页面同步卡片。","npm|react|playwright","DONE","DONE","DONE","client/src/**","[""WHMS-4""]","前端只调用本轮新增管理 API,不新增独立页面体系。"
|
|
"WHMS-6","QA-only runner 与测试","新增 QA-only runner,支持 live 只读、dry-run、测试 userid apply 验证、权限负例和脱敏 JSON 报告。","1) runner 默认不做公网写入;2) apply 只允许显式 userids 和显式批准参数;3) 报告只输出脱敏 userid 前缀、统计、状态和错误码;4) 不输出 secret、token、完整手机号、邮箱或原始 payload。","受影响流程:QA runner -> 企微只读读取 -> OA dry-run/apply 测试账号 -> 报告生成;验证步骤:node --check scripts/qa/check-wecom-hr-master-sync.mjs;本地无 live env 时输出可解释 SKIP,不伪造成 PASS。","node|qa-only","DONE","DONE","DONE","scripts/qa/check-wecom-hr-master-sync.mjs|server/test/**","[""WHMS-5""]","生产写入、真实员工批量 apply、部署均不在本 Issue 自动执行。"
|
|
"WHMS-7","文档与 skill 回写","更新 PRD、企业微信规约、管理员手册、路线图、文档索引、事实源矩阵、人工试运行报告和项目 skill,记录 WHMS 能力边界、测试证据和下一阶段限制。","1) 事实源记录 wecom_hr_master_sync_v1 已实现或阶段结论;2) 明确考勤/审批镜像仍未完成,下一阶段才是 wecom_attendance_approval_mirror_v1;3) 文档索引和事实源矩阵指向本合同;4) audit-docs、quick_validate 和 git diff --check 通过。","受影响流程:后续 agent/人工读取事实源 -> 判断当前能力和下一步;验证步骤: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 'WHMS|wecom_hr_master_sync_v1|企微 HR 主数据|GO_TO_ATTENDANCE_APPROVAL_MIRROR|needs_offboarding_confirmation' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。","node|python3|git|rg","DONE","DONE","DONE","docs/企微优先开发路线图.md|docs/需求-企业微信基础设施规约.md|docs/海音达OA-MVP需求规格说明书.md|docs/管理员手册.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WHMS-6""]","本轮不部署;若后续部署和公网 apply 测试,另建上线/复检合同。"
|