8 行
7.4 KiB
CSV
8 行
7.4 KiB
CSV
"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes"
|
|
"WEXT1-0","外出加班 dry-run 合同与边界","建立 WEXT1 外出/加班低风险 POC dry-run 合同;承接 WROAD2/WARCH3/WCHECK1,当前只证明 payload 可构建、非自审和脱敏报告,不 live 创建模板或审批单。","1) 范围仅 outing 外出、overtime 加班;2) 默认 dry-run,不写企业微信、不创建模板、不提交审批单;3) 申请人/审批人固定 SMOKE002 -> SMOKE101,禁止自审;4) Secret 来源固定 WECOM_AGENT_SECRET,不尝试其他 Secret、无 fallback、不允许运行时猜 Secret;5) 缺用户、绑定、权限、可信 IP、可见范围或配置时记录 NEEDS_CONFIG 或 SKIP/BLOCKED_BY_EXTERNAL_CONFIG;6) live 创建必须另起问答和新合同。","受影响流程:外出/加班 POC 准备 -> dry-run payload -> 后续是否 live 创建由人工决定;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-20_12-48-04-wecom-outing-overtime-fixture-dryrun-v1.csv;node scripts/qa/check-process-contract.mjs --issue issues/2026-05-20_12-48-04-wecom-outing-overtime-fixture-dryrun-v1.csv --profile wecom --json。","python3|node","DONE","DONE","DONE","issues/2026-05-20_12-48-04-wecom-outing-overtime-fixture-dryrun-v1.csv","[]","回滚/清理:本行仅合同;dry-run 不创建企微记录,无需企微清理。"
|
|
"WEXT1-1","扩展审批样件 runner 目标","扩展现有 check-wecom-approval-fixtures runner,支持 --target=outing、--target=overtime 或 --targets=outing,overtime 的 dry-run payload 构建。","1) 默认仍为 leave/missed_punch,避免破坏 WAPC2F/WAPC2FLIVE;2) WEXT1 使用 --target=outing --target=overtime,且不传 --live、--create-templates 或 --submit-test-approvals;3) 外出/加班模板使用低风险 Text/Date/Textarea 等最小通用控件;4) live 写入路径对 outing/overtime 继续受 --live --create-templates --submit-test-approvals + WECOM_APPROVAL_FIXTURE_WRITE=1 双开关保护,但本轮不执行 live。","受影响流程:样件 runner -> 外出/加班 payload dry-run -> 后续 live 问答;验证步骤: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","DONE","DONE","DONE","server/src/scripts/check-wecom-approval-fixtures.js|server/tests/unit/scripts/check-wecom-approval-fixtures.test.js","[""WEXT1-0""]","回滚/清理:恢复 runner 和测试即可;本轮不写企微,无企微记录清理。"
|
|
"WEXT1-2","外出加班 dry-run 本地验证","执行 WEXT1 本地 dry-run,确认非自审、Secret 固定、payload 摘要和脱敏报告。","1) actor precheck 通过或真实 NEEDS_CONFIG;2) payload summary 包含 outing/overtime 且不含完整 userid、template_id、sp_no、表单值或原始 payload;3) live 缺双开关时不写;4) 不调用企微写接口;5) 结论为 PASS_FIXTURE_DRY_RUN_READY 或真实 PARTIAL/SKIP。","受影响流程:SMOKE002 -> SMOKE101 预检 -> 外出/加班 payload -> dry-run 报告;验证步骤:cd server && npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime;检查 artifacts/qa-flow/wecom-approval-fixtures-*/summary.json。","npm|node","DONE","DONE","DONE","server/src/scripts/check-wecom-approval-fixtures.js","[""WEXT1-1""]","回滚/清理:dry-run 只写本地 artifacts,保留审计或后续清理;不写企微。"
|
|
"WEXT1-3","本地门禁与文档回写","执行 WEXT1 合同、流程、runner 单测、文档和最小门禁,并更新路线事实源。","1) CSV 与 process gate 通过;2) runner 语法和 focused vitest 通过;3) 文档明确外出/加班只完成 dry-run,live 创建前必须再次问答批准;4) git diff --check 和 scripts/check-minimal.sh 通过。","受影响流程:WEXT1 dry-run 实施候选 -> 本地 QA -> 后续 live 决策;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-20_12-48-04-wecom-outing-overtime-fixture-dryrun-v1.csv;node scripts/qa/check-process-contract.mjs --baseline --json;node scripts/qa/check-process-contract.mjs --issue issues/2026-05-20_12-48-04-wecom-outing-overtime-fixture-dryrun-v1.csv --profile wecom --json;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 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;bash scripts/check-minimal.sh。","python3|node|vitest|bash|git","DONE","DONE","DONE","issues/2026-05-20_12-48-04-wecom-outing-overtime-fixture-dryrun-v1.csv|server/src/scripts/check-wecom-approval-fixtures.js|server/tests/unit/scripts/check-wecom-approval-fixtures.test.js|docs/*|.agents/skills/hyb-oa-delivery/SKILL.md","[""WEXT1-2""]","回滚/清理:本地门禁失败不部署;修复后重跑。"
|
|
"WEXT1-4","公网 dry-run 验证","以 SYNC_ENV=0 部署后,在远端执行外出/加班 dry-run,不设置 WECOM_APPROVAL_FIXTURE_WRITE=1。","1) /ready 正常;2) 远端 dry-run 结论 PASS_FIXTURE_DRY_RUN_READY 或真实 PARTIAL/SKIP;3) 不创建模板、不提交审批单、不写企业微信;4) 报告不泄露完整外部键或敏感值;5) live 创建留到下一轮问答。","受影响流程:部署 -> 远端 WEXT1 dry-run -> 后续人工决定是否 live;验证步骤:SYNC_ENV=0 bash deploy/trialrun/deploy.sh;curl -fsS https://oa.hyinda.com/ready;远端执行 npm run check:wecom-approval-fixtures -- --format=json --target=outing --target=overtime。","bash|ssh|curl|npm","DONE","DONE","DONE","deploy/trialrun/deploy.sh|server/src/scripts/check-wecom-approval-fixtures.js","[""WEXT1-3""]","回滚/清理:远端 dry-run 只生成报告,不写企微;如部署异常按既有 trialrun 回滚。;实际结果:SYNC_ENV=0 部署通过,/ready 正常;远端 dry-run 报告 /app/artifacts/qa-flow/wecom-approval-fixtures-20260520T054940Z/summary.json 为 PASS_FIXTURE_DRY_RUN_READY;未设置 WECOM_APPROVAL_FIXTURE_WRITE,未创建模板或审批单。"
|
|
"WEXT1-5","状态回填与中文提交","完成 WEXT1 状态回填、本地与公网证据登记和中文提交。","1) Test_Method 全部真实通过或真实 SKIP;2) Issue 状态回填;3) 公网 dry-run 报告路径写入 Notes;4) git diff --check 通过;5) 中文提交完成;6) 最终用问答方式询问是否批准单次 live 创建 OA-POC 外出/加班测试样件。","受影响流程:WEXT1 dry-run -> 证据回写 -> 人工 live 决策;验证步骤:git status --short;git diff --check;git log -1 --oneline;确认提交信息包含 WEXT1。","git|manual","DONE","DONE","DONE","issues/2026-05-20_12-48-04-wecom-outing-overtime-fixture-dryrun-v1.csv|server/src/scripts/check-wecom-approval-fixtures.js|server/tests/unit/scripts/check-wecom-approval-fixtures.test.js|docs/*|.agents/skills/hyb-oa-delivery/SKILL.md","[""WEXT1-4""]","提交建议:WEXT1 增加外出加班样件 dry-run。后续 live 创建必须另起 Issue CSV,并由用户明确批准。;实际结果:WEXT1 本地门禁、公网 dry-run 和事实源回写已完成;live 创建外出/加班样件仍需下一轮问答和独立 Issue CSV。"
|