文件
hyb-oa/issues/2026-05-20_21-10-00-wecom-test-account-closeout-auto-dryrun-v1.csv
T

11 行
8.9 KiB
CSV

ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WTCLOSE1-0","执行合同建档","建立 WTCLOSE1 合同,承接用户已批准的后续路线:公司不到 10 人,HR/考勤审批采用一层主管或指定审批角色 + 管理员兜底,WAPPR1 四类模板目标均为 A;本轮自动做到 WAUTO1/WFULLSMOKE1 汇总和外出/加班 live 前 dry-run,不写企业微信。","1) 新合同使用 WTCLOSE1-0..WTCLOSE1-8;2) 明确不创建企微外出/加班模板或审批单;3) 明确不启用真实员工;4) 明确公网 OA 测试数据只能带 TEST/SMOKE/WFULL 标记;5) 后续 live 和真实试用仍需问答。","受影响流程:路线合同 -> 自动证据汇总 -> 全域 smoke -> 外出/加班 dry-run -> 人工门禁;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-20_21-10-00-wecom-test-account-closeout-auto-dryrun-v1.csv。","python3","DONE","DONE","DONE","issues/2026-05-20_21-10-00-wecom-test-account-closeout-auto-dryrun-v1.csv","[]","回滚/清理:删除本 CSV 或恢复事实源;本合同不授权企微写入。"
"WTCLOSE1-1","小团队审批规则 A 目标固化","将公司不到 10 人的小团队规则写入事实源和 QA 人工清单:请假、补卡、外出、加班正式模板按直属主管或指定审批角色自动带出审批人;缺主管、审批人不可用、不可见或自审时由管理员兜底或阻断;申请人不能任意选择审批人。","1) WAPPR1 四类模板目标均为 A;2) 记录一层主管/指定角色 + 管理员兜底;3) admin 权限不等于普通业务审批权;4) B/C/D 均为 blocking finding;5) 不保存 Secret、token、完整 userid、完整 sp_no、完整 template_id 或表单值。","受影响流程:企微请假/补卡/外出/加班模板配置确认 -> WAPPR1 人工门禁 -> WEXT1-LIVE/WREAL1 准入;验证步骤:rg -n ""不到 10 人|一层主管|管理员兜底|WTCLOSE1|目标 A|申请人不能任意选择"" docs .agents/skills/hyb-oa-delivery/SKILL.md scripts/qa。","rg","DONE","DONE","DONE","docs/企微优先开发路线图.md|docs/管理员手册.md|docs/需求-统一审批中心规约.md|docs/trialrun/人工试运行报告.md|scripts/qa/*.sh|.agents/skills/hyb-oa-delivery/SKILL.md","[""WTCLOSE1-0""]","回滚/清理:恢复文档和脚本清单文案;不影响运行时业务逻辑。"
"WTCLOSE1-2","WAUTO1 自动证据汇总复跑","执行受控试用证据自动汇总,复检公网 /ready、WARCH3 summary、审批补偿只读、审批归档离线、打卡摘要 offline、外出/加班 dry-run 和隐私扫描。","1) 生成 artifacts/qa-flow/wecom-controlled-trial-evidence-*/summary.json;2) 不设置 WECOM_ARCHIVE_WRITE、WECOM_CHECKIN_ARCHIVE_WRITE 或 WECOM_APPROVAL_FIXTURE_WRITE;3) 不写 OA DB、不写企业微信;4) 结论真实记录 PASS/PASS_WITH_FINDINGS/PAUSED/SKIP。","受影响流程:公网运行状态 -> 企微审批补偿只读 -> OA 归档离线读取 -> 打卡摘要离线读取 -> 外出/加班 dry-run;验证步骤:bash scripts/qa/collect-wecom-controlled-trial-evidence.sh。","bash|node|npm","DONE","DONE","DONE","scripts/qa/collect-wecom-controlled-trial-evidence.sh|artifacts/qa-flow","[""WTCLOSE1-1""]","回滚/清理:报告保留审计;脚本默认只读,不写企微。"
"WTCLOSE1-3","WFULLSMOKE1 全域主路径 smoke 复跑","执行三天全域最终目标 smoke,聚合企微 HR/考勤、OA 报销、采购、合同/项目、付款批次、移动/企微入口和运维巡检证据;如凭据可用,允许创建带 TEST/SMOKE/WFULL 标记的 OA 测试业务数据。","1) 生成 artifacts/qa-flow/three-day-full-goal-smoke-*/summary.json;2) 不写企业微信;3) 不创建外出/加班企微样件;4) 不启用真实员工;5) 不真实付款、不接真实支付、不写 ERP、不导入银行流水。","受影响流程:公网 ready/feature flags -> 企微归档/打卡摘要 -> OA 报销/采购/合同项目/付款批次测试 -> 移动和企微入口;验证步骤:bash scripts/qa/run-three-day-full-goal-smoke.sh。","bash|node|npm|playwright","DONE","DONE","DONE","scripts/qa/run-three-day-full-goal-smoke.sh|artifacts/qa-flow","[""WTCLOSE1-2""]","回滚/清理:公网 OA TEST/SMOKE/WFULL 测试数据保留审计;本脚本不写企微。"
"WTCLOSE1-4","外出加班 live 前 dry-run 复跑","复跑外出/加班 live 前 dry-run,只验证 payload、测试链、非自审、固定 Secret 和脱敏报告;不设置写入开关,不带 live 写入参数。","1) 执行 npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime;2) 不设置 WECOM_APPROVAL_FIXTURE_WRITE=1;3) 不带 --live、--create-templates 或 --submit-test-approvals;4) 报告不泄露完整外部键或隐私字段。","受影响流程:外出/加班 OA-POC payload dry-run -> WEXT1-LIVE 问答准入;验证步骤:cd server && npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime。","npm","DONE","DONE","DONE","server/src/scripts/check-wecom-approval-fixtures.js|artifacts/qa-flow","[""WTCLOSE1-2""]","回滚/清理:报告保留审计;dry-run 不创建企微模板或审批单。"
"WTCLOSE1-5","事实源和项目 skill 回写","回写路线图、管理员手册、统一审批规约、试运行报告、文档索引、事实源矩阵和项目 skill,保证后续读取到 WTCLOSE1 小团队规则与自动 dry-run 边界。","1) 事实源包含 WTCLOSE1;2) 明确小团队一层审批 + 管理员兜底;3) 明确 WAPPR1 目标 A;4) 明确本轮只到自动汇总和 dry-run;5) 文档审计和 skill 校验通过。","受影响流程:后续任务读取事实源 -> 人工门禁问答 -> WEXT1-LIVE/WREAL1 准入;验证步骤: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|docs/需求-统一审批中心规约.md|docs/trialrun/人工试运行报告.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WTCLOSE1-1""]","回滚/清理:恢复本轮文档和 skill 改动;不修改历史 Issue 快照。"
"WTCLOSE1-6","隐私和写入边界核对","核对自动报告、脚本和事实源均不泄露完整 sp_no、template_id、userid、手机号、邮箱、token、Secret、EncodingAESKey、表单值、附件、评论或原始 payload;确认本轮无企微写入。","1) WAUTO1/WFULLSMOKE1/WEXT1 dry-run 报告隐私扫描通过或 finding 可解释;2) 未设置企微写入环境变量;3) 未执行 live 创建命令;4) 未启用真实员工。","受影响流程:报告生成 -> 隐私扫描 -> 后续人工问答;验证步骤:rg -n ""WECOM_APPROVAL_FIXTURE_WRITE=1|--live --create-templates|submit-test-approvals"" artifacts/qa-flow scripts/qa docs || true;检查本轮实际命令记录。","rg|manual","DONE","DONE","DONE","artifacts/qa-flow|scripts/qa|docs","[""WTCLOSE1-2"",""WTCLOSE1-3"",""WTCLOSE1-4""]","回滚/清理:如发现泄露,先暂停并清理报告,不进入提交。"
"WTCLOSE1-7","后续人工问答门禁输出","输出后续人工问答:WAPPR1 四类模板 A/B/C/D;WEXT1-LIVE 是否批准一次 live 创建外出+加班样件;WREAL1 是否启动 1 名真实员工 + 1 名审批人/管理员观察。","1) final 中列出人工门禁;2) 不把本轮 dry-run 当作 live 授权;3) B/C/D 均阻断 WEXT1-LIVE 和 WREAL1;4) WREAL1 不在本轮启动。","受影响流程:WAPPR1 人工确认 -> WEXT1-LIVE 问答 -> WREAL1 问答;验证步骤:人工核对 final 输出。","manual","DONE","DONE","DONE","N/A","[""WTCLOSE1-5"",""WTCLOSE1-6""]","回滚/清理:无运行时变更;若用户选择暂停,后续不进入 live 或真实试用。"
"WTCLOSE1-8","门禁状态回填和中文提交","完成合同校验、process gate、脚本语法、自动验证、文档审计、skill 校验、diff 检查、最小门禁、状态回填和中文提交。","1) validate_issues_csv 通过;2) process gate 通过;3) bash -n 通过;4) 自动验证已运行并记录报告;5) audit-docs、quick_validate、git diff --check、scripts/check-minimal.sh 通过;6) 中文提交包含 WTCLOSE1。","受影响流程:合同 -> 实施 -> 验证 -> 提交 -> 后续问答;验证步骤:node scripts/qa/check-process-contract.mjs --baseline --json;node scripts/qa/check-process-contract.mjs --issue issues/2026-05-20_21-10-00-wecom-test-account-closeout-auto-dryrun-v1.csv --profile general --json;bash scripts/check-minimal.sh;git log -1 --oneline。","python3|node|bash|git","DONE","DONE","DONE","issues/2026-05-20_21-10-00-wecom-test-account-closeout-auto-dryrun-v1.csv|docs/*|scripts/qa/*.sh|.agents/skills/hyb-oa-delivery/SKILL.md","[""WTCLOSE1-7""]","提交建议:WTCLOSE1 收口测试号全域证据 dry-run。"