WPROC1 固化企微路线与开发流程门禁

这个提交包含在:
2026-05-19 11:05:31 +08:00
父节点 08987ba921
当前提交 bb5e204d95
共修改 15 个文件,包含 220 行新增和 74 行删除
@@ -0,0 +1,10 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WAPC2F-0","合同建档与边界冻结","建立 WAPC2F 企微审批 POC 样件自动生成合同;承接 WAPC2 当前缺模板 ID 和低风险 sp_no 的配置缺口,本轮目标是尽量自动创建专用测试模板和测试审批单。","1) CSV 校验通过;2) 范围限定 OA-POC 前缀请假/补卡测试模板和低风险测试审批单;3) 固定 WECOM_AGENT_SECRET;4) 默认 dry-run;5) 默认测试链为申请人 SMOKE002 -> 审批人 SMOKE101,禁止自审;6) 不修改正式模板、不接真实回调、不写 OA 业务数据、不进入 wecom_attendance_approval_mirror_v1。","受影响流程:WAPC2 缺配置 -> 自动生成 POC 样件 -> 复跑模板/审批详情只读 POC;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv。","python3|manual","TODO","TODO","TODO","issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv","[]","本合同允许规划自动写企微测试样件,但真实 live 写入仍需后续实施前确认;回滚路径:撤回本轮代码/文档,企微后台中 OA-POC 测试模板和测试单如已生成需人工隐藏/停用或保留审计。"
"WAPC2F-1","路线自动化优先修正","更新路线图和事实源,把 WAPC2 后续阶段调整为自动化优先:WAPC2F 自动生成样件 -> WAPC2 复跑 -> WCBK1 回调 POC -> WACP3 补偿拉取 POC -> WADM1 镜像数据模型 -> 镜像实现。","1) 文档明确后续能自动化的动作优先用 QA-only runner 执行;2) 人工只负责批准写入、配置不可自动化的后台项和确认风险;3) 不再默认要求手工创建模板或测试单;4) 不把自动生成 POC 样件误读为正式模板配置完成。","受影响流程:企微审批路线治理;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;rg -n 'WAPC2F|自动生成|OA-POC|WCBK1|WACP3|WADM1|wecom_attendance_approval_mirror_v1' docs .agents/skills/hyb-oa-delivery/SKILL.md。","node|rg","TODO","TODO","TODO","docs/企微优先开发路线图.md|docs/企微API能力目录.md|docs/需求-统一审批中心规约.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WAPC2F-0""]","文档只记录自动化策略和边界,不保存 Secret、Token、完整 template_id、完整 sp_no 或原始 payload。"
"WAPC2F-2","企微审批写接口调研与安全门禁","核对企业微信创建审批模板和提交审批申请官方 API 的实际字段、权限、可见范围、可信 IP、审批人规则和限制;固化 live 写入双重或三重确认。","1) create_template/applyevent 的方法、路径、Secret 和字段结构明确;2) 若官方接口不支持所需模板或测试单自动生成,改为 SKIP/BLOCKED_BY_EXTERNAL_CONFIG;3) live 写入必须同时指定 CLI 写入参数和 WECOM_APPROVAL_FIXTURE_WRITE=1;4) 不尝试其他 Secret。","受影响流程:自动样件生成前置安全审查;验证步骤:rg -n '创建审批模板|提交审批申请|applyevent|create_template|WECOM_APPROVAL_FIXTURE_WRITE' docs server/src/scripts server/tests。","rg|manual","TODO","TODO","TODO","docs/企微API能力目录.md|server/src/scripts/check-wecom-approval-fixtures.js|server/src/services/integrations/wecomApproval.js","[""WAPC2F-1""]","若官方文档或远端 API 返回能力不支持,后续只记录不可自动化项,不做绕路试错。"
"WAPC2F-3","QA-only 样件生成 runner","新增 QA-only runner check-wecom-approval-fixtures,用于 dry-run/live 创建 OA-POC 请假/补卡测试模板、提交低风险测试审批单,并输出脱敏 summary.json。","1) package.json 增加 check:wecom-approval-fixtures;2) 默认 dry-run 只构建脱敏 payload;3) live 写入必须显式 --live --create-templates --submit-test-approvals 且 WECOM_APPROVAL_FIXTURE_WRITE=1;4) 支持指定申请人/审批人员工号,默认申请人 SMOKE002、审批人 SMOKE101;5) 预检两者 active、已绑定企微、可见、不是同一 OA 员工且不是同一企微 userid;6) 命中自审时硬阻断;7) 报告不输出完整模板 ID、完整 sp_no、userid、手机号、邮箱、token、secret、表单值、附件、评论或原始 payload。","受影响流程:自动创建测试模板和测试审批单;验证步骤:cd server && node --check src/scripts/check-wecom-approval-fixtures.js;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js --reporter=verbose。","node|vitest","TODO","TODO","TODO","server/src/scripts/check-wecom-approval-fixtures.js|server/package.json","[""WAPC2F-2""]","runner 只用于 QA 样件生成;不新增公开业务 API,不改 Prisma schema,不改前端;如果 SMOKE101 不可用,不自动切换为 HYD000007 或其他审批人,返回配置缺口并问答确认。"
"WAPC2F-4","审批模板创建与测试审批提交集成","扩展企微审批集成服务,固定 WECOM_AGENT_SECRET 调用创建审批模板和提交审批申请接口,并复用 WAPC2 脱敏、错误分类和无 fallback 规则。","1) 创建模板只创建 OA-POC 前缀测试模板;2) 提交审批只提交低风险无附件测试单;3) 申请人/审批人命中同一 OA 员工或同一企微 userid 时返回自审阻断;4) API 错误、权限、可见范围、可信 IP 或模板能力限制均返回 BLOCKED_BY_EXTERNAL_CONFIG;5) 不修改或覆盖正式模板。","受影响流程:企微审批测试样件写入;验证步骤:cd server && node --check src/services/integrations/wecomApproval.js;focused vitest 覆盖固定 Secret、无 fallback、dry-run/live 分支、自审阻断和 API 错误分类。","node|vitest","TODO","TODO","TODO","server/src/services/integrations/wecomApproval.js","[""WAPC2F-3""]","真实写企微测试模板可能在企微后台留下记录,报告和最终说明必须提醒管理员后续隐藏/停用/保留审计。"
"WAPC2F-5","自动复跑 WAPC2 只读 POC","样件生成成功后,runner 自动把生成的模板 ID 和 sp_no 传给现有 check:wecom-approval-poc,验证 gettemplatedetail/getapprovaldetail 只读链路。","1) 样件生成成功后自动复用 WAPC2 runner 或等价内部函数复跑;2) 目标结论 PASS_APPROVAL_POC;3) 若只生成部分样件则返回 PARTIAL_APPROVAL_POC_NEEDS_CONFIG;4) 若企微阻断则返回 SKIP/BLOCKED_BY_EXTERNAL_CONFIG。","受影响流程:自动生成样件 -> 自动只读验证 -> 输出一份可审计结论;验证步骤:cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js tests/unit/scripts/check-wecom-approval-poc.test.js --reporter=verbose。","vitest|node","TODO","TODO","TODO","server/src/scripts/check-wecom-approval-fixtures.js|server/src/scripts/check-wecom-approval-poc.js","[""WAPC2F-4""]","自动复跑不得把生成的完整 ID 或 sp_no 写入报告;只允许脱敏前缀和计数。"
"WAPC2F-6","Focused 单测与隐私回归","新增 focused vitest 覆盖样件生成 runner、写入保护、无 Secret fallback、脱敏报告、自动复跑和阻断分类。","1) 覆盖 dry-run 默认不写;2) 覆盖缺 WECOM_APPROVAL_FIXTURE_WRITE 时 live 不写;3) 覆盖 WECOM_AGENT_SECRET 固定选择;4) 覆盖创建模板、提交测试单、自动复跑;5) 覆盖申请人/审批人相同时自审硬阻断;6) 覆盖 SMOKE101 不可用时不自动换人;7) 覆盖隐私字段不泄露。","受影响流程:WAPC2F 本地质量门禁;验证步骤:cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js tests/unit/scripts/check-wecom-approval-poc.test.js --reporter=verbose。","vitest","TODO","TODO","TODO","server/tests/unit/scripts/check-wecom-approval-fixtures.test.js|server/tests/unit/scripts/check-wecom-approval-poc.test.js","[""WAPC2F-5""]","单测使用 mock fetch,不访问公网,不写企微。"
"WAPC2F-7","本地门禁与公网受控验证","本地门禁通过后,以 SYNC_ENV=0 受控部署;远端先 dry-run,再在单次进程内设置 WECOM_APPROVAL_FIXTURE_WRITE=1 执行 live 样件生成和 WAPC2 自动复跑。","1) 本地 CSV、node --check、prisma validate、focused vitest、文档审计、skill 校验和 git diff --check 通过;2) SYNC_ENV=0 部署,不同步本地 env;3) live 写入只创建 OA-POC 测试样件,申请链固定 SMOKE002 -> SMOKE101;4) 公网 /ready 和 runtime smoke 通过;5) 报告结论真实记录 PASS/PARTIAL/SKIP。","受影响流程:公网自动化 POC 样件生成和只读验证;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv;cd server && npm run prisma:validate;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js tests/unit/scripts/check-wecom-approval-poc.test.js --reporter=verbose;node scripts/qa/audit-docs.mjs --check-registry;SYNC_ENV=0 bash deploy/trialrun/deploy.sh;远端 npm run check:wecom-approval-fixtures。","python3|node|npm|vitest|bash|ssh|curl","TODO","TODO","TODO","N/A","[""WAPC2F-6""]","公网 live 写入前最终说明必须再次提示会在企微后台留下 OA-POC 测试模板/审批记录;不得修改正式模板;若 SMOKE101 不可用,停止并问答确认,不自动换审批人。"
"WAPC2F-8","状态回填、中文提交与下一阶段问答","根据验证结果回填状态并中文提交;最终用问答方式让用户决定是否进入 WCBK1 回调只读 POC、WACP3 补偿拉取 POC 或暂停。","1) Issue 状态按 Test_Method 通过情况回填;2) 中文提交引用 WAPC2F;3) 最终说明包含当前状态、改了什么、测试了什么、结果是什么、剩余风险和下一步问答;4) 不直接进入回调或镜像实现。","受影响流程:WAPC2F 交付闭环和后续路线决策;验证步骤:git status --short;git log --oneline -1;最终问答列出 WCBK1/WACP3/WADM1 选择。","git|manual","TODO","TODO","TODO","issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv|N/A","[""WAPC2F-7""]","后续动作默认自动化优先;人工只处理写入批准、企微后台无法 API 化的配置和真机确认。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 WAPC2F-0 合同建档与边界冻结 建立 WAPC2F 企微审批 POC 样件自动生成合同;承接 WAPC2 当前缺模板 ID 和低风险 sp_no 的配置缺口,本轮目标是尽量自动创建专用测试模板和测试审批单。 1) CSV 校验通过;2) 范围限定 OA-POC 前缀请假/补卡测试模板和低风险测试审批单;3) 固定 WECOM_AGENT_SECRET;4) 默认 dry-run;5) 默认测试链为申请人 SMOKE002 -> 审批人 SMOKE101,禁止自审;6) 不修改正式模板、不接真实回调、不写 OA 业务数据、不进入 wecom_attendance_approval_mirror_v1。 受影响流程:WAPC2 缺配置 -> 自动生成 POC 样件 -> 复跑模板/审批详情只读 POC;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv。 python3|manual TODO TODO TODO issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv [] 本合同允许规划自动写企微测试样件,但真实 live 写入仍需后续实施前确认;回滚路径:撤回本轮代码/文档,企微后台中 OA-POC 测试模板和测试单如已生成需人工隐藏/停用或保留审计。
3 WAPC2F-1 路线自动化优先修正 更新路线图和事实源,把 WAPC2 后续阶段调整为自动化优先:WAPC2F 自动生成样件 -> WAPC2 复跑 -> WCBK1 回调 POC -> WACP3 补偿拉取 POC -> WADM1 镜像数据模型 -> 镜像实现。 1) 文档明确后续能自动化的动作优先用 QA-only runner 执行;2) 人工只负责批准写入、配置不可自动化的后台项和确认风险;3) 不再默认要求手工创建模板或测试单;4) 不把自动生成 POC 样件误读为正式模板配置完成。 受影响流程:企微审批路线治理;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;rg -n 'WAPC2F|自动生成|OA-POC|WCBK1|WACP3|WADM1|wecom_attendance_approval_mirror_v1' docs .agents/skills/hyb-oa-delivery/SKILL.md。 node|rg TODO TODO TODO docs/企微优先开发路线图.md|docs/企微API能力目录.md|docs/需求-统一审批中心规约.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md ["WAPC2F-0"] 文档只记录自动化策略和边界,不保存 Secret、Token、完整 template_id、完整 sp_no 或原始 payload。
4 WAPC2F-2 企微审批写接口调研与安全门禁 核对企业微信创建审批模板和提交审批申请官方 API 的实际字段、权限、可见范围、可信 IP、审批人规则和限制;固化 live 写入双重或三重确认。 1) create_template/applyevent 的方法、路径、Secret 和字段结构明确;2) 若官方接口不支持所需模板或测试单自动生成,改为 SKIP/BLOCKED_BY_EXTERNAL_CONFIG;3) live 写入必须同时指定 CLI 写入参数和 WECOM_APPROVAL_FIXTURE_WRITE=1;4) 不尝试其他 Secret。 受影响流程:自动样件生成前置安全审查;验证步骤:rg -n '创建审批模板|提交审批申请|applyevent|create_template|WECOM_APPROVAL_FIXTURE_WRITE' docs server/src/scripts server/tests。 rg|manual TODO TODO TODO docs/企微API能力目录.md|server/src/scripts/check-wecom-approval-fixtures.js|server/src/services/integrations/wecomApproval.js ["WAPC2F-1"] 若官方文档或远端 API 返回能力不支持,后续只记录不可自动化项,不做绕路试错。
5 WAPC2F-3 QA-only 样件生成 runner 新增 QA-only runner check-wecom-approval-fixtures,用于 dry-run/live 创建 OA-POC 请假/补卡测试模板、提交低风险测试审批单,并输出脱敏 summary.json。 1) package.json 增加 check:wecom-approval-fixtures;2) 默认 dry-run 只构建脱敏 payload;3) live 写入必须显式 --live --create-templates --submit-test-approvals 且 WECOM_APPROVAL_FIXTURE_WRITE=1;4) 支持指定申请人/审批人员工号,默认申请人 SMOKE002、审批人 SMOKE101;5) 预检两者 active、已绑定企微、可见、不是同一 OA 员工且不是同一企微 userid;6) 命中自审时硬阻断;7) 报告不输出完整模板 ID、完整 sp_no、userid、手机号、邮箱、token、secret、表单值、附件、评论或原始 payload。 受影响流程:自动创建测试模板和测试审批单;验证步骤:cd server && node --check src/scripts/check-wecom-approval-fixtures.js;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js --reporter=verbose。 node|vitest TODO TODO TODO server/src/scripts/check-wecom-approval-fixtures.js|server/package.json ["WAPC2F-2"] runner 只用于 QA 样件生成;不新增公开业务 API,不改 Prisma schema,不改前端;如果 SMOKE101 不可用,不自动切换为 HYD000007 或其他审批人,返回配置缺口并问答确认。
6 WAPC2F-4 审批模板创建与测试审批提交集成 扩展企微审批集成服务,固定 WECOM_AGENT_SECRET 调用创建审批模板和提交审批申请接口,并复用 WAPC2 脱敏、错误分类和无 fallback 规则。 1) 创建模板只创建 OA-POC 前缀测试模板;2) 提交审批只提交低风险无附件测试单;3) 申请人/审批人命中同一 OA 员工或同一企微 userid 时返回自审阻断;4) API 错误、权限、可见范围、可信 IP 或模板能力限制均返回 BLOCKED_BY_EXTERNAL_CONFIG;5) 不修改或覆盖正式模板。 受影响流程:企微审批测试样件写入;验证步骤:cd server && node --check src/services/integrations/wecomApproval.js;focused vitest 覆盖固定 Secret、无 fallback、dry-run/live 分支、自审阻断和 API 错误分类。 node|vitest TODO TODO TODO server/src/services/integrations/wecomApproval.js ["WAPC2F-3"] 真实写企微测试模板可能在企微后台留下记录,报告和最终说明必须提醒管理员后续隐藏/停用/保留审计。
7 WAPC2F-5 自动复跑 WAPC2 只读 POC 样件生成成功后,runner 自动把生成的模板 ID 和 sp_no 传给现有 check:wecom-approval-poc,验证 gettemplatedetail/getapprovaldetail 只读链路。 1) 样件生成成功后自动复用 WAPC2 runner 或等价内部函数复跑;2) 目标结论 PASS_APPROVAL_POC;3) 若只生成部分样件则返回 PARTIAL_APPROVAL_POC_NEEDS_CONFIG;4) 若企微阻断则返回 SKIP/BLOCKED_BY_EXTERNAL_CONFIG。 受影响流程:自动生成样件 -> 自动只读验证 -> 输出一份可审计结论;验证步骤:cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js tests/unit/scripts/check-wecom-approval-poc.test.js --reporter=verbose。 vitest|node TODO TODO TODO server/src/scripts/check-wecom-approval-fixtures.js|server/src/scripts/check-wecom-approval-poc.js ["WAPC2F-4"] 自动复跑不得把生成的完整 ID 或 sp_no 写入报告;只允许脱敏前缀和计数。
8 WAPC2F-6 Focused 单测与隐私回归 新增 focused vitest 覆盖样件生成 runner、写入保护、无 Secret fallback、脱敏报告、自动复跑和阻断分类。 1) 覆盖 dry-run 默认不写;2) 覆盖缺 WECOM_APPROVAL_FIXTURE_WRITE 时 live 不写;3) 覆盖 WECOM_AGENT_SECRET 固定选择;4) 覆盖创建模板、提交测试单、自动复跑;5) 覆盖申请人/审批人相同时自审硬阻断;6) 覆盖 SMOKE101 不可用时不自动换人;7) 覆盖隐私字段不泄露。 受影响流程:WAPC2F 本地质量门禁;验证步骤:cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js tests/unit/scripts/check-wecom-approval-poc.test.js --reporter=verbose。 vitest TODO TODO TODO server/tests/unit/scripts/check-wecom-approval-fixtures.test.js|server/tests/unit/scripts/check-wecom-approval-poc.test.js ["WAPC2F-5"] 单测使用 mock fetch,不访问公网,不写企微。
9 WAPC2F-7 本地门禁与公网受控验证 本地门禁通过后,以 SYNC_ENV=0 受控部署;远端先 dry-run,再在单次进程内设置 WECOM_APPROVAL_FIXTURE_WRITE=1 执行 live 样件生成和 WAPC2 自动复跑。 1) 本地 CSV、node --check、prisma validate、focused vitest、文档审计、skill 校验和 git diff --check 通过;2) SYNC_ENV=0 部署,不同步本地 env;3) live 写入只创建 OA-POC 测试样件,申请链固定 SMOKE002 -> SMOKE101;4) 公网 /ready 和 runtime smoke 通过;5) 报告结论真实记录 PASS/PARTIAL/SKIP。 受影响流程:公网自动化 POC 样件生成和只读验证;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv;cd server && npm run prisma:validate;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-fixtures.test.js tests/unit/scripts/check-wecom-approval-poc.test.js --reporter=verbose;node scripts/qa/audit-docs.mjs --check-registry;SYNC_ENV=0 bash deploy/trialrun/deploy.sh;远端 npm run check:wecom-approval-fixtures。 python3|node|npm|vitest|bash|ssh|curl TODO TODO TODO N/A ["WAPC2F-6"] 公网 live 写入前最终说明必须再次提示会在企微后台留下 OA-POC 测试模板/审批记录;不得修改正式模板;若 SMOKE101 不可用,停止并问答确认,不自动换审批人。
10 WAPC2F-8 状态回填、中文提交与下一阶段问答 根据验证结果回填状态并中文提交;最终用问答方式让用户决定是否进入 WCBK1 回调只读 POC、WACP3 补偿拉取 POC 或暂停。 1) Issue 状态按 Test_Method 通过情况回填;2) 中文提交引用 WAPC2F;3) 最终说明包含当前状态、改了什么、测试了什么、结果是什么、剩余风险和下一步问答;4) 不直接进入回调或镜像实现。 受影响流程:WAPC2F 交付闭环和后续路线决策;验证步骤:git status --short;git log --oneline -1;最终问答列出 WCBK1/WACP3/WADM1 选择。 git|manual TODO TODO TODO issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv|N/A ["WAPC2F-7"] 后续动作默认自动化优先;人工只处理写入批准、企微后台无法 API 化的配置和真机确认。
@@ -0,0 +1,8 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WPROC1-0","合同建档与边界冻结","建立 WPROC1 企微路线与开发流程工程化修正合同;本轮只做 docs-only/contract-only 治理,不写业务代码、不部署、不写 OA 或企微数据。","1) CSV 校验通过;2) 范围限定路线、流程、测试、API、审批规约、索引、矩阵和项目 skill;3) 不新增独立流程文档;4) 不进入 wecom_attendance_approval_mirror_v1。","受影响流程:企微后续路线治理;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-43-50-wecom-process-route-engineering-v1.csv。","python3|manual","DONE","DONE","DONE","issues/2026-05-19_10-43-50-wecom-process-route-engineering-v1.csv","[]","已验证 CSV;回滚路径:撤回本轮文档和合同变更;本轮无数据库、配置或企微写入。"
"WPROC1-1","修正 WAPC2F 非自审合同","修正 WAPC2F 自动生成 POC 样件合同,不再默认同一人申请和审批;固定低风险非本人链路 SMOKE002 -> SMOKE101,并加入自审硬阻断。","1) WAPC2F 不再出现默认 wangshunli 作为申请/审批默认人;2) 默认申请人为 SMOKE002、审批人为 SMOKE101;3) 预检两者 active、已绑定企微、可见、不是同一 OA 员工、不是同一企微 userid;4) SMOKE101 不可用时不自动换人,返回配置缺口并问答确认。","受影响流程:自动生成企微审批测试样件;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv;rg -n 'SMOKE002|SMOKE101|自审|默认 wangshunli' issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv。","python3|rg","DONE","DONE","DONE","issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv","[""WPROC1-0""]","已修正 WAPC2F 合同;不得自动替换为 HYD000007;如审批人不可用,后续必须问答确认新的非本人审批链。"
"WPROC1-2","收紧企微阶段路线","更新企微优先开发路线图和相关路线事实源,把 WAPC2 后续顺序固定为 WAPC2F 自动生成样件、WAPC2 自动复跑、WCBK1 回调 POC、WACP3 补偿拉取 POC、WADM1 镜像数据模型设计,再进入深度镜像。","1) 文档不再暗示 WAPC2 后可直接进入镜像;2) wecom_attendance_approval_mirror_v1 前必须完成回调 POC、补偿拉取 POC 和镜像数据模型设计;3) OA 主办域和企微主办域边界保持不变。","受影响流程:企微审批/考勤后续开发路线;验证步骤:rg -n 'WAPC2F|WCBK1|WACP3|WADM1|wecom_attendance_approval_mirror_v1' docs .agents/skills/hyb-oa-delivery/SKILL.md。","rg","DONE","DONE","DONE","docs/企微优先开发路线图.md|docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-请假考勤修正规约.md|docs/需求-统一审批中心规约.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WPROC1-1""]","已更新路线事实源;路线修正只控制顺序和门禁,不实现镜像、回调、补偿拉取或数据模型。"
"WPROC1-3","固化三层门禁和 DoR/DoD","在开发交付规约中固化路线门禁、能力门禁、实现门禁三层流程,并新增 Definition of Ready / Definition of Done 和自动化优先规则。","1) Definition of Ready 覆盖 Issue CSV、事实源、API/Secret、测试账号、申请人/审批人、自审校验、写入开关、回滚和脱敏边界;2) Definition of Done 覆盖 Test_Method、状态回填、事实源、本地门禁、公网验证和中文提交;3) 人工介入限制为批准、密钥/回调配置、企微后台不可 API 化配置、真机确认和风险拍板。","受影响流程:后续所有非微小企微开发;验证步骤:rg -n 'Definition of Ready|Definition of Done|自动化优先|路线门禁|能力门禁|实现门禁' docs/开发交付与变更管理规约.md docs/测试规约与回归门禁.md。","rg","DONE","DONE","DONE","docs/开发交付与变更管理规约.md|docs/测试规约与回归门禁.md","[""WPROC1-2""]","已固化三层门禁;不替代 AGENTS.md 的方案批准和 Issue CSV 约束。"
"WPROC1-4","同步 API 与审批规约","更新企微 API 能力目录和统一审批规约,固定不清楚的企微能力先查官方 API 和本地目录;高风险能力先 POC,缺配置必须 NEEDS_CONFIG 或 SKIP/BLOCKED_BY_EXTERNAL_CONFIG。","1) API 目录记录 WAPC2F/WCBK1/WACP3/WADM1 后续门禁;2) 审批规约明确非自审、回调验签解密幂等、补偿拉取和镜像模型设计前置;3) 不记录 Secret、Token、完整 userid、完整 sp_no 或原始 payload。","受影响流程:企微 API 使用和审批镜像前置设计;验证步骤:rg -n 'WPROC1|WAPC2F|WCBK1|WACP3|WADM1|BLOCKED_BY_EXTERNAL_CONFIG|SMOKE002|SMOKE101' docs/企微API能力目录.md docs/需求-统一审批中心规约.md。","rg","DONE","DONE","DONE","docs/企微API能力目录.md|docs/需求-统一审批中心规约.md","[""WPROC1-3""]","已同步 API 与审批规约;WAPC2F 若后续进入写入 POC,必须另行批准 live 写入,不在 WPROC1 执行。"
"WPROC1-5","回写索引矩阵和 skill","更新文档索引、事实源矩阵和 hyb-oa-delivery skill,登记 WPROC1、修正后续路线和自动化优先口径。","1) 文档索引和事实源矩阵出现 WPROC1;2) skill 提醒企微开发先读 API 目录和路线图,并遵守 WAPC2F 非自审链路;3) quick_validate 通过。","受影响流程:后续 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。","node|python3","DONE","DONE","DONE","docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WPROC1-4""]","已回写索引、矩阵和 skill;audit-docs errors=0,保留既有 unregistered docs files 警告。"
"WPROC1-6","门禁验证、状态回填和提交","执行 WPROC1 Test Plan,按真实结果回填 WPROC1 与 WAPC2F 状态,完成中文提交。","1) WPROC1 CSV 和 WAPC2F CSV 校验通过;2) 文档审计、skill 校验、关键词核验和 git diff --check 通过;3) Issue 状态回填真实;4) 中文 commit 引用 WPROC1。","受影响流程:WPROC1 交付闭环;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-43-50-wecom-process-route-engineering-v1.csv;python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-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。","python3|node|git|rg","DONE","DONE","DONE","N/A","[""WPROC1-5""]","本轮未部署;无业务代码、无公网变更、无 OA/企微数据写入;提交前已完成门禁复跑。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 WPROC1-0 合同建档与边界冻结 建立 WPROC1 企微路线与开发流程工程化修正合同;本轮只做 docs-only/contract-only 治理,不写业务代码、不部署、不写 OA 或企微数据。 1) CSV 校验通过;2) 范围限定路线、流程、测试、API、审批规约、索引、矩阵和项目 skill;3) 不新增独立流程文档;4) 不进入 wecom_attendance_approval_mirror_v1。 受影响流程:企微后续路线治理;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-43-50-wecom-process-route-engineering-v1.csv。 python3|manual DONE DONE DONE issues/2026-05-19_10-43-50-wecom-process-route-engineering-v1.csv [] 已验证 CSV;回滚路径:撤回本轮文档和合同变更;本轮无数据库、配置或企微写入。
3 WPROC1-1 修正 WAPC2F 非自审合同 修正 WAPC2F 自动生成 POC 样件合同,不再默认同一人申请和审批;固定低风险非本人链路 SMOKE002 -> SMOKE101,并加入自审硬阻断。 1) WAPC2F 不再出现默认 wangshunli 作为申请/审批默认人;2) 默认申请人为 SMOKE002、审批人为 SMOKE101;3) 预检两者 active、已绑定企微、可见、不是同一 OA 员工、不是同一企微 userid;4) SMOKE101 不可用时不自动换人,返回配置缺口并问答确认。 受影响流程:自动生成企微审批测试样件;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv;rg -n 'SMOKE002|SMOKE101|自审|默认 wangshunli' issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv。 python3|rg DONE DONE DONE issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-v1.csv ["WPROC1-0"] 已修正 WAPC2F 合同;不得自动替换为 HYD000007;如审批人不可用,后续必须问答确认新的非本人审批链。
4 WPROC1-2 收紧企微阶段路线 更新企微优先开发路线图和相关路线事实源,把 WAPC2 后续顺序固定为 WAPC2F 自动生成样件、WAPC2 自动复跑、WCBK1 回调 POC、WACP3 补偿拉取 POC、WADM1 镜像数据模型设计,再进入深度镜像。 1) 文档不再暗示 WAPC2 后可直接进入镜像;2) wecom_attendance_approval_mirror_v1 前必须完成回调 POC、补偿拉取 POC 和镜像数据模型设计;3) OA 主办域和企微主办域边界保持不变。 受影响流程:企微审批/考勤后续开发路线;验证步骤:rg -n 'WAPC2F|WCBK1|WACP3|WADM1|wecom_attendance_approval_mirror_v1' docs .agents/skills/hyb-oa-delivery/SKILL.md。 rg DONE DONE DONE docs/企微优先开发路线图.md|docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-请假考勤修正规约.md|docs/需求-统一审批中心规约.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md|.agents/skills/hyb-oa-delivery/SKILL.md ["WPROC1-1"] 已更新路线事实源;路线修正只控制顺序和门禁,不实现镜像、回调、补偿拉取或数据模型。
5 WPROC1-3 固化三层门禁和 DoR/DoD 在开发交付规约中固化路线门禁、能力门禁、实现门禁三层流程,并新增 Definition of Ready / Definition of Done 和自动化优先规则。 1) Definition of Ready 覆盖 Issue CSV、事实源、API/Secret、测试账号、申请人/审批人、自审校验、写入开关、回滚和脱敏边界;2) Definition of Done 覆盖 Test_Method、状态回填、事实源、本地门禁、公网验证和中文提交;3) 人工介入限制为批准、密钥/回调配置、企微后台不可 API 化配置、真机确认和风险拍板。 受影响流程:后续所有非微小企微开发;验证步骤:rg -n 'Definition of Ready|Definition of Done|自动化优先|路线门禁|能力门禁|实现门禁' docs/开发交付与变更管理规约.md docs/测试规约与回归门禁.md。 rg DONE DONE DONE docs/开发交付与变更管理规约.md|docs/测试规约与回归门禁.md ["WPROC1-2"] 已固化三层门禁;不替代 AGENTS.md 的方案批准和 Issue CSV 约束。
6 WPROC1-4 同步 API 与审批规约 更新企微 API 能力目录和统一审批规约,固定不清楚的企微能力先查官方 API 和本地目录;高风险能力先 POC,缺配置必须 NEEDS_CONFIG 或 SKIP/BLOCKED_BY_EXTERNAL_CONFIG。 1) API 目录记录 WAPC2F/WCBK1/WACP3/WADM1 后续门禁;2) 审批规约明确非自审、回调验签解密幂等、补偿拉取和镜像模型设计前置;3) 不记录 Secret、Token、完整 userid、完整 sp_no 或原始 payload。 受影响流程:企微 API 使用和审批镜像前置设计;验证步骤:rg -n 'WPROC1|WAPC2F|WCBK1|WACP3|WADM1|BLOCKED_BY_EXTERNAL_CONFIG|SMOKE002|SMOKE101' docs/企微API能力目录.md docs/需求-统一审批中心规约.md。 rg DONE DONE DONE docs/企微API能力目录.md|docs/需求-统一审批中心规约.md ["WPROC1-3"] 已同步 API 与审批规约;WAPC2F 若后续进入写入 POC,必须另行批准 live 写入,不在 WPROC1 执行。
7 WPROC1-5 回写索引矩阵和 skill 更新文档索引、事实源矩阵和 hyb-oa-delivery skill,登记 WPROC1、修正后续路线和自动化优先口径。 1) 文档索引和事实源矩阵出现 WPROC1;2) skill 提醒企微开发先读 API 目录和路线图,并遵守 WAPC2F 非自审链路;3) quick_validate 通过。 受影响流程:后续 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。 node|python3 DONE DONE DONE docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md ["WPROC1-4"] 已回写索引、矩阵和 skill;audit-docs errors=0,保留既有 unregistered docs files 警告。
8 WPROC1-6 门禁验证、状态回填和提交 执行 WPROC1 Test Plan,按真实结果回填 WPROC1 与 WAPC2F 状态,完成中文提交。 1) WPROC1 CSV 和 WAPC2F CSV 校验通过;2) 文档审计、skill 校验、关键词核验和 git diff --check 通过;3) Issue 状态回填真实;4) 中文 commit 引用 WPROC1。 受影响流程:WPROC1 交付闭环;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-43-50-wecom-process-route-engineering-v1.csv;python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_10-24-43-wecom-approval-fixture-auto-generate-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。 python3|node|git|rg DONE DONE DONE N/A ["WPROC1-5"] 本轮未部署;无业务代码、无公网变更、无 OA/企微数据写入;提交前已完成门禁复跑。