WREAD1 记录企微审批真机可读性结论

这个提交包含在:
2026-05-19 21:53:01 +08:00
父节点 8d64ca0f85
当前提交 bc5a3ccd0a
共修改 14 个文件,包含 43 行新增和 42 行删除
@@ -1,7 +1,7 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WREAD1-0","门禁合同与边界冻结","建立 WREAD1 合同;范围锁定请假+补卡,优先使用现有 OA-POC 样例,不新建企微模板或审批单;本轮不写 OA/企微业务数据,不接新回调,不进入 wecom_attendance_approval_mirror_v1。","1) CSV 校验通过;2) 明确 WACP3R 后下一阶段为可读性与误审批防护门禁;3) 结论按模板输出;4) 缺现有样例时记录 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE 并回问;5) 不保存完整 template_id、sp_no、userid、表单值、附件、评论或原始 payload。","受影响流程:WACP3R -> WREAD1 可读性门禁 -> WADM1 准入;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv;node scripts/qa/check-process-contract.mjs --baseline --json。","python3|node|manual","DONE","DONE","DONE","issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv","[]","固定边界:只读汇总和人工确认,不写 OA/企微数据,不创建模板/审批单。validate_issues_csv 与 process baseline 已通过;回滚/清理:删除本合同和事实源回写;无数据库迁移、无远端 env 修改、无 OA/企微写入。"
"WREAD1-0","门禁合同与边界冻结","建立 WREAD1 合同;范围锁定请假+补卡,优先使用现有 OA-POC 样例,不新建企微模板或审批单;本轮不写 OA/企微业务数据,不接新回调,不进入 wecom_attendance_approval_mirror_v1。","1) CSV 校验通过;2) 明确 WACP3R 后下一阶段为可读性与误审批防护门禁;3) 结论按模板输出;4) 缺现有样例时记录 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE 并回问;5) 不保存完整 template_id、sp_no、userid、表单值、附件、评论或原始 payload。","受影响流程:WACP3R -> WREAD1 可读性门禁 -> WADM1 准入;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv;node scripts/qa/check-process-contract.mjs --baseline --json。","python3|node|manual","DONE","DONE","DONE","issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv","[]","固定边界:只读汇总和人工确认,不写 OA/企微数据,不创建模板/审批单。上游企微审批读取固定 WECOM_AGENT_SECRET,WREAD1 自身只读 artifacts,不尝试其他 Secret、无 fallback、不得靠多个 Secret;缺样例、权限、配置时记录 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE、NEEDS_CONFIG 或 SKIP/BLOCKED_BY_EXTERNAL_CONFIG,不伪造成通过。validate_issues_csv 与 process baseline 已通过;回滚/清理:删除本合同和事实源回写;无数据库迁移、无远端 env 修改、无 OA/企微写入。"
"WREAD1-1","只读证据汇总 runner","新增 QA-only runner check-wecom-approval-readability-gate,汇总 WAPC2FLIVE、WCBK1、WACP3R 脱敏证据,输出请假/补卡真机确认清单和可选人工结果。","1) 新增 npm script check:wecom-approval-readability-gate;2) 默认只读已有 artifacts,不访问企微写接口,不获取写入 token;3) 支持 --manual-result=leave:<status> 和 --manual-result=missed_punch:<status>;4) 无人工结果时输出 PAUSED_MANUAL_CONFIRMATION;5) 现有样例证据不足时输出 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE。","受影响流程:自动证据汇总 -> 真机人工确认;验证步骤:cd server && node --check src/scripts/check-wecom-approval-readability-gate.js;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-readability-gate.test.js --reporter=verbose。","node|vitest","DONE","DONE","DONE","server/src/scripts/check-wecom-approval-readability-gate.js|server/package.json|server/tests/unit/scripts/check-wecom-approval-readability-gate.test.js","[""WREAD1-0""]","已新增 runner、npm script 和 focused 单测;测试覆盖历史 fixture artifact 不持久化但 WACP3R 详情证据可用时仍进入 PAUSED_MANUAL_CONFIRMATION。报告隐私边界不输出手机号、邮箱、token、secret、完整 userid、完整 template_id、完整 sp_no、表单值、附件、评论或原始 payload。回滚/清理:移除 runner、package script 和单测。"
"WREAD1-2","本地门禁","执行合同、process gate、语法、Prisma、focused 单测、文档审计、skill 校验和 diff 门禁。","1) validate_issues_csv 通过;2) process baseline 通过;3) node --check 通过;4) Prisma validate 通过;5) focused vitest 通过;6) 文档审计、skill 校验、git diff --check 通过。","受影响流程:WREAD1 本地质量门禁;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv;node scripts/qa/check-process-contract.mjs --baseline --json;cd server && node --check src/scripts/check-wecom-approval-readability-gate.js;cd server && npm run prisma:validate;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-readability-gate.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。","python3|node|npm|vitest","DONE","DONE","DONE","N/A","[""WREAD1-1""]","本地门禁均通过;audit-docs 仅保留既有 unregistered docs files warning。额外通过 bash scripts/check-minimal.sh。回滚/清理:撤回本轮代码和文档改动。"
"WREAD1-3","公网只读汇总","本地门禁通过后,以 SYNC_ENV=0 部署,不同步本地 env;远端执行 check:wecom-approval-readability-gate -- --format=json,汇总现有样例证据并生成手工确认清单。","1) SYNC_ENV=0 部署通过;2) /ready 正常;3) 远端 runner 生成 summary.json;4) 若现有样例证据完整,结论为 PAUSED_MANUAL_CONFIRMATION;5) 若样例不可用,结论为 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE 并暂停问答。","受影响流程:公网证据汇总 -> 真机确认;验证步骤:SYNC_ENV=0 bash deploy/trialrun/deploy.sh;远端 npm run check:wecom-approval-readability-gate -- --format=json;curl -fsS https://oa.hyinda.com/ready。","bash|ssh|curl|npm","DONE","DONE","DONE","external","[""WREAD1-2""]","SYNC_ENV=0 部署通过,/ready 返回 ok=true。部署后容器 artifacts 重建,先只读复跑 WACP3R 生成 /app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T125515Z/summary.json,再执行 WREAD1 生成 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T125532Z/summary.json,结论 PAUSED_MANUAL_CONFIRMATION。只读执行,不调用企微写接口,不写 OA 数据。"
"WREAD1-4","事实源回写与人工问答","回写路线图、统一审批规约、请假考勤规约、试运行报告、文档索引、事实源矩阵和项目 skill;在最终答复中按当前状态、改了什么、测试结果和需要你确认什么提问。","1) 文档记录 WREAD1 自动汇总结论和报告路径;2) 未经人工真机确认不得写 PASS_READABLE;3) 若进入 PAUSED_MANUAL_CONFIRMATION,明确等待你反馈请假/补卡卡片、列表、详情和快捷按钮风险;4) 文档审计和 skill 校验通过。","受影响流程:WREAD1 事实源和人工验收;验证步骤: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;rg -n ""WREAD1|PAUSED_MANUAL_CONFIRMATION|PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE|PASS_READABLE|误审批|可读性"" docs .agents/skills/hyb-oa-delivery/SKILL.md。","node|python3|rg|manual","DONE","DONE","DONE","docs|.agents/skills/hyb-oa-delivery/SKILL.md","[""WREAD1-3""]","事实源已记录 WREAD1 自动汇总 PAUSED_MANUAL_CONFIRMATION 和报告路径;最终答复继续按问答方式等待人工真机确认。回滚/清理:git revert 本轮提交;无数据清理。"
"WREAD1-5","提交与后续准入","提交 WREAD1 自动门禁;若人工确认尚未完成,则提交记录为自动汇总和 PAUSED 状态,待你反馈后再回填最终模板级结论。","1) git diff --check 通过;2) 中文提交完成;3) 工作区干净;4) 最终答复明确 WADM1 只能在 WREAD1 模板级结论明确后进入。","受影响流程:WREAD1 -> WADM1 准入;验证步骤:git status --short;git commit -m 'WREAD1 准备企微审批可读性门禁'。","git","DONE","DONE","DONE","N/A","[""WREAD1-4""]","本提交只代表自动汇总部分和公网 PAUSED 状态;待用户真机反馈后再回填最终模板级结论。回滚/清理:git revert 本提交。"
"WREAD1-4","事实源回写与人工问答","回写路线图、统一审批规约、请假考勤规约、试运行报告、文档索引、事实源矩阵和项目 skill;在最终答复中按当前状态、改了什么、测试结果和需要你确认什么提问。","1) 文档记录 WREAD1 自动汇总结论和报告路径;2) 未经人工真机确认不得写 PASS_READABLE;3) 若进入 PAUSED_MANUAL_CONFIRMATION,明确等待你反馈请假/补卡卡片、列表、详情和快捷按钮风险;4) 文档审计和 skill 校验通过。","受影响流程:WREAD1 事实源和人工验收;验证步骤: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;rg -n ""WREAD1|PAUSED_MANUAL_CONFIRMATION|PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE|PASS_READABLE|误审批|可读性"" docs .agents/skills/hyb-oa-delivery/SKILL.md。","node|python3|rg|manual","DONE","DONE","DONE","docs|.agents/skills/hyb-oa-delivery/SKILL.md","[""WREAD1-3""]","人工真机确认已完成:请假和补卡消息卡片、列表、详情页均可看清;驳回有二次确认,同意为单击即通过;用户暂无新增字段建议。远端人工结果报告 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T133628Z/summary.json 为 PASS_READABLE,下一阶段允许进入 WADM1 设计,但同意单击风险需在后续模板提示、审计留存或操作规程中处理。回滚/清理:git revert 本轮事实源回写;无数据清理。"
"WREAD1-5","提交与后续准入","提交 WREAD1 自动门禁;若人工确认尚未完成,则提交记录为自动汇总和 PAUSED 状态,待你反馈后再回填最终模板级结论。","1) git diff --check 通过;2) 中文提交完成;3) 工作区干净;4) 最终答复明确 WADM1 只能在 WREAD1 模板级结论明确后进入。","受影响流程:WREAD1 -> WADM1 准入;验证步骤:git status --short;git commit -m 'WREAD1 准备企微审批可读性门禁'。","git","DONE","DONE","DONE","N/A","[""WREAD1-4""]","WREAD1 人工模板级结论已补充为 PASS_READABLE;请假/补卡可进入 WADM1 自建留存/镜像数据模型设计前置,不直接进入深度镜像。回滚/清理:git revert 本次事实源回写提交。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 WREAD1-0 门禁合同与边界冻结 建立 WREAD1 合同;范围锁定请假+补卡,优先使用现有 OA-POC 样例,不新建企微模板或审批单;本轮不写 OA/企微业务数据,不接新回调,不进入 wecom_attendance_approval_mirror_v1。 1) CSV 校验通过;2) 明确 WACP3R 后下一阶段为可读性与误审批防护门禁;3) 结论按模板输出;4) 缺现有样例时记录 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE 并回问;5) 不保存完整 template_id、sp_no、userid、表单值、附件、评论或原始 payload。 受影响流程:WACP3R -> WREAD1 可读性门禁 -> WADM1 准入;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv;node scripts/qa/check-process-contract.mjs --baseline --json。 python3|node|manual DONE DONE DONE issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv [] 固定边界:只读汇总和人工确认,不写 OA/企微数据,不创建模板/审批单。validate_issues_csv 与 process baseline 已通过;回滚/清理:删除本合同和事实源回写;无数据库迁移、无远端 env 修改、无 OA/企微写入。 固定边界:只读汇总和人工确认,不写 OA/企微数据,不创建模板/审批单。上游企微审批读取固定 WECOM_AGENT_SECRET,WREAD1 自身只读 artifacts,不尝试其他 Secret、无 fallback、不得靠多个 Secret;缺样例、权限、配置时记录 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE、NEEDS_CONFIG 或 SKIP/BLOCKED_BY_EXTERNAL_CONFIG,不伪造成通过。validate_issues_csv 与 process baseline 已通过;回滚/清理:删除本合同和事实源回写;无数据库迁移、无远端 env 修改、无 OA/企微写入。
3 WREAD1-1 只读证据汇总 runner 新增 QA-only runner check-wecom-approval-readability-gate,汇总 WAPC2FLIVE、WCBK1、WACP3R 脱敏证据,输出请假/补卡真机确认清单和可选人工结果。 1) 新增 npm script check:wecom-approval-readability-gate;2) 默认只读已有 artifacts,不访问企微写接口,不获取写入 token;3) 支持 --manual-result=leave:<status> 和 --manual-result=missed_punch:<status>;4) 无人工结果时输出 PAUSED_MANUAL_CONFIRMATION;5) 现有样例证据不足时输出 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE。 受影响流程:自动证据汇总 -> 真机人工确认;验证步骤:cd server && node --check src/scripts/check-wecom-approval-readability-gate.js;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-readability-gate.test.js --reporter=verbose。 node|vitest DONE DONE DONE server/src/scripts/check-wecom-approval-readability-gate.js|server/package.json|server/tests/unit/scripts/check-wecom-approval-readability-gate.test.js ["WREAD1-0"] 已新增 runner、npm script 和 focused 单测;测试覆盖历史 fixture artifact 不持久化但 WACP3R 详情证据可用时仍进入 PAUSED_MANUAL_CONFIRMATION。报告隐私边界不输出手机号、邮箱、token、secret、完整 userid、完整 template_id、完整 sp_no、表单值、附件、评论或原始 payload。回滚/清理:移除 runner、package script 和单测。
4 WREAD1-2 本地门禁 执行合同、process gate、语法、Prisma、focused 单测、文档审计、skill 校验和 diff 门禁。 1) validate_issues_csv 通过;2) process baseline 通过;3) node --check 通过;4) Prisma validate 通过;5) focused vitest 通过;6) 文档审计、skill 校验、git diff --check 通过。 受影响流程:WREAD1 本地质量门禁;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-19_20-39-40-wecom-approval-readability-gate-v1.csv;node scripts/qa/check-process-contract.mjs --baseline --json;cd server && node --check src/scripts/check-wecom-approval-readability-gate.js;cd server && npm run prisma:validate;cd server && npx vitest run tests/unit/scripts/check-wecom-approval-readability-gate.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。 python3|node|npm|vitest DONE DONE DONE N/A ["WREAD1-1"] 本地门禁均通过;audit-docs 仅保留既有 unregistered docs files warning。额外通过 bash scripts/check-minimal.sh。回滚/清理:撤回本轮代码和文档改动。
5 WREAD1-3 公网只读汇总 本地门禁通过后,以 SYNC_ENV=0 部署,不同步本地 env;远端执行 check:wecom-approval-readability-gate -- --format=json,汇总现有样例证据并生成手工确认清单。 1) SYNC_ENV=0 部署通过;2) /ready 正常;3) 远端 runner 生成 summary.json;4) 若现有样例证据完整,结论为 PAUSED_MANUAL_CONFIRMATION;5) 若样例不可用,结论为 PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE 并暂停问答。 受影响流程:公网证据汇总 -> 真机确认;验证步骤:SYNC_ENV=0 bash deploy/trialrun/deploy.sh;远端 npm run check:wecom-approval-readability-gate -- --format=json;curl -fsS https://oa.hyinda.com/ready。 bash|ssh|curl|npm DONE DONE DONE external ["WREAD1-2"] SYNC_ENV=0 部署通过,/ready 返回 ok=true。部署后容器 artifacts 重建,先只读复跑 WACP3R 生成 /app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T125515Z/summary.json,再执行 WREAD1 生成 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T125532Z/summary.json,结论 PAUSED_MANUAL_CONFIRMATION。只读执行,不调用企微写接口,不写 OA 数据。
6 WREAD1-4 事实源回写与人工问答 回写路线图、统一审批规约、请假考勤规约、试运行报告、文档索引、事实源矩阵和项目 skill;在最终答复中按当前状态、改了什么、测试结果和需要你确认什么提问。 1) 文档记录 WREAD1 自动汇总结论和报告路径;2) 未经人工真机确认不得写 PASS_READABLE;3) 若进入 PAUSED_MANUAL_CONFIRMATION,明确等待你反馈请假/补卡卡片、列表、详情和快捷按钮风险;4) 文档审计和 skill 校验通过。 受影响流程:WREAD1 事实源和人工验收;验证步骤: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;rg -n "WREAD1|PAUSED_MANUAL_CONFIRMATION|PARTIAL_READABILITY_NEEDS_FRESH_FIXTURE|PASS_READABLE|误审批|可读性" docs .agents/skills/hyb-oa-delivery/SKILL.md。 node|python3|rg|manual DONE DONE DONE docs|.agents/skills/hyb-oa-delivery/SKILL.md ["WREAD1-3"] 事实源已记录 WREAD1 自动汇总 PAUSED_MANUAL_CONFIRMATION 和报告路径;最终答复继续按问答方式等待人工真机确认。回滚/清理:git revert 本轮提交;无数据清理。 人工真机确认已完成:请假和补卡消息卡片、列表、详情页均可看清;驳回有二次确认,同意为单击即通过;用户暂无新增字段建议。远端人工结果报告 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T133628Z/summary.json 为 PASS_READABLE,下一阶段允许进入 WADM1 设计,但同意单击风险需在后续模板提示、审计留存或操作规程中处理。回滚/清理:git revert 本轮事实源回写;无数据清理。
7 WREAD1-5 提交与后续准入 提交 WREAD1 自动门禁;若人工确认尚未完成,则提交记录为自动汇总和 PAUSED 状态,待你反馈后再回填最终模板级结论。 1) git diff --check 通过;2) 中文提交完成;3) 工作区干净;4) 最终答复明确 WADM1 只能在 WREAD1 模板级结论明确后进入。 受影响流程:WREAD1 -> WADM1 准入;验证步骤:git status --short;git commit -m 'WREAD1 准备企微审批可读性门禁'。 git DONE DONE DONE N/A ["WREAD1-4"] 本提交只代表自动汇总部分和公网 PAUSED 状态;待用户真机反馈后再回填最终模板级结论。回滚/清理:git revert 本提交。 WREAD1 人工模板级结论已补充为 PASS_READABLE;请假/补卡可进入 WADM1 自建留存/镜像数据模型设计前置,不直接进入深度镜像。回滚/清理:git revert 本次事实源回写提交。
@@ -3,4 +3,4 @@ ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regr
"WREAD1F-1","远端 dry-run 复核","复用已部署 check:wecom-approval-fixtures runner,先远端 dry-run 复核申请人、审批人、Secret、非自审和 payload。","1) 远端 dry-run 结论为 PASS_FIXTURE_DRY_RUN_READY;2) actor precheck 为 OK;3) 未设置 WECOM_APPROVAL_FIXTURE_WRITE=1 时不写企微;4) 若 SMOKE101 不可用,不自动换人,回问。","受影响流程:新样例 live 前预检;验证步骤:ssh 远端容器执行 npm run check:wecom-approval-fixtures -- --format=json,核对 status、checks.actors.status、checks.liveWrite.guard。","ssh|npm","DONE","DONE","DONE","external|artifacts/qa-flow/wecom-approval-fixtures-*","[""WREAD1F-0""]","远端 dry-run 报告 /app/artifacts/qa-flow/wecom-approval-fixtures-20260519T131947Z/summary.json 为 PASS_FIXTURE_DRY_RUN_READY,actor precheck OK,未写企微。"
"WREAD1F-2","单次 live 创建新样例","按用户已选择 2 执行一次 live 写入:创建 OA-POC 请假/补卡测试模板并提交两条低风险审批单给 SMOKE101。","1) 命令同时带 --live --create-templates --submit-test-approvals;2) 仅单次进程设置 WECOM_APPROVAL_FIXTURE_WRITE=1;3) live 结论为 PASS_FIXTURE_CREATED 或真实 BLOCKED;4) 只记录脱敏 template_id/sp_no 前缀;5) 不写 OA 业务表。","受影响流程:企微新待办消息 -> WREAD1 真机确认;验证步骤:远端容器执行 WECOM_APPROVAL_FIXTURE_WRITE=1 npm run check:wecom-approval-fixtures -- --format=json --live --create-templates --submit-test-approvals;核对 status、checks.liveWrite、checks.autoRerun;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 tests/unit/scripts/check-wecom-approval-readability-gate.test.js --reporter=verbose。","ssh|npm|node|vitest","DONE","DONE","DONE","server/src/scripts/check-wecom-approval-fixtures.js|server/tests/unit/scripts/check-wecom-approval-fixtures.test.js|external|artifacts/qa-flow/wecom-approval-fixtures-*","[""WREAD1F-1""]","首次 live 返回 BLOCKED_BY_EXTERNAL_CONFIG:企微模板名按日期重复,未创建模板/审批单。已修正模板命名为时间戳唯一值,本地 node --check 和 focused vitest 17 tests passed,SYNC_ENV=0 部署后 live 成功,报告 /app/artifacts/qa-flow/wecom-approval-fixtures-20260519T131958Z/summary.json 为 PASS_FIXTURE_CREATED,autoRerun 为 PASS_APPROVAL_POC。新建测试模板和测试审批记录保留审计,不自动删除。"
"WREAD1F-3","WREAD1 自动汇总复跑","live 创建后复跑 WACP3R 只读补偿拉取和 WREAD1 可读性汇总,生成新的人工确认清单。","1) WACP3R 只读复跑可拉到请假/补卡详情;2) WREAD1 结论为 PAUSED_MANUAL_CONFIRMATION;3) 公网 /ready 正常;4) 报告不泄露隐私字段。","受影响流程:新样例证据 -> WREAD1 人工确认;验证步骤:远端 npm run check:wecom-approval-compensation-poc -- --live --format=json --discover-template-ids --start-time=2026-05-19T00:00:00+08:00;远端 npm run check:wecom-approval-readability-gate -- --format=json;curl -fsS https://oa.hyinda.com/ready。","ssh|npm|curl","DONE","DONE","DONE","external|artifacts/qa-flow/wecom-approval-compensation-poc-*|artifacts/qa-flow/wecom-approval-readability-gate-*","[""WREAD1F-2""]","/ready 返回 ok=true。WACP3R 复跑报告 /app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T132031Z/summary.json 为 PASS_WITH_FINDINGS,发现 4 条 OA-POC 详情;WREAD1 报告 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T132054Z/summary.json 为 PAUSED_MANUAL_CONFIRMATION。回滚/清理:本行只读复跑和公网健康检查不写 OA/企微数据;新样例清理沿用 WREAD1F-2,由管理员后续在企微后台人工处理。"
"WREAD1F-4","事实源回写、提交与问答","记录新样例 live 结果和 WREAD1 等待人工确认状态;提交后用问答方式让用户检查手机企业微信。","1) 试运行报告和必要事实源记录新报告路径;2) Issue 状态按实测回填;3) git diff --check 通过;4) 中文提交完成;5) 最终说明当前状态、改了什么、测试结果和需要人工确认什么。","受影响流程:新样例创建证据 -> 真机验收;验证步骤: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;git commit -m 'WREAD1F 生成企微审批可读性新样例'。","node|python3|git|manual","DONE","DONE","DONE","docs/trialrun/人工试运行报告.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WREAD1F-3""]","事实源已回写新样例 live、WACP3R 复跑和 WREAD1 等待人工确认状态。validate_issues_csv、process gate、audit-docs、quick_validate、node --check、focused vitest、git diff --check 均通过;中文提交由本行变更一并完成。WADM1 仍需等 WREAD1 模板级人工结论后再开始。"
"WREAD1F-4","事实源回写、提交与问答","记录新样例 live 结果和 WREAD1 等待人工确认状态;提交后用问答方式让用户检查手机企业微信。","1) 试运行报告和必要事实源记录新报告路径;2) Issue 状态按实测回填;3) git diff --check 通过;4) 中文提交完成;5) 最终说明当前状态、改了什么、测试结果和需要人工确认什么。","受影响流程:新样例创建证据 -> 真机验收;验证步骤: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;git commit -m 'WREAD1F 生成企微审批可读性新样例'。","node|python3|git|manual","DONE","DONE","DONE","docs/trialrun/人工试运行报告.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WREAD1F-3""]","事实源已回写新样例 live、WACP3R 复跑和 WREAD1 等待人工确认状态。validate_issues_csv、process gate、audit-docs、quick_validate、node --check、focused vitest、git diff --check 均通过;中文提交由本行变更一并完成。用户随后确认请假和补卡都可以看清,驳回有二次确认,同意单击即通过,暂无字段补充建议;远端 WREAD1 人工结果报告 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T133628Z/summary.json 为 PASS_READABLE。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
3 WREAD1F-1 远端 dry-run 复核 复用已部署 check:wecom-approval-fixtures runner,先远端 dry-run 复核申请人、审批人、Secret、非自审和 payload。 1) 远端 dry-run 结论为 PASS_FIXTURE_DRY_RUN_READY;2) actor precheck 为 OK;3) 未设置 WECOM_APPROVAL_FIXTURE_WRITE=1 时不写企微;4) 若 SMOKE101 不可用,不自动换人,回问。 受影响流程:新样例 live 前预检;验证步骤:ssh 远端容器执行 npm run check:wecom-approval-fixtures -- --format=json,核对 status、checks.actors.status、checks.liveWrite.guard。 ssh|npm DONE DONE DONE external|artifacts/qa-flow/wecom-approval-fixtures-* ["WREAD1F-0"] 远端 dry-run 报告 /app/artifacts/qa-flow/wecom-approval-fixtures-20260519T131947Z/summary.json 为 PASS_FIXTURE_DRY_RUN_READY,actor precheck OK,未写企微。
4 WREAD1F-2 单次 live 创建新样例 按用户已选择 2 执行一次 live 写入:创建 OA-POC 请假/补卡测试模板并提交两条低风险审批单给 SMOKE101。 1) 命令同时带 --live --create-templates --submit-test-approvals;2) 仅单次进程设置 WECOM_APPROVAL_FIXTURE_WRITE=1;3) live 结论为 PASS_FIXTURE_CREATED 或真实 BLOCKED;4) 只记录脱敏 template_id/sp_no 前缀;5) 不写 OA 业务表。 受影响流程:企微新待办消息 -> WREAD1 真机确认;验证步骤:远端容器执行 WECOM_APPROVAL_FIXTURE_WRITE=1 npm run check:wecom-approval-fixtures -- --format=json --live --create-templates --submit-test-approvals;核对 status、checks.liveWrite、checks.autoRerun;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 tests/unit/scripts/check-wecom-approval-readability-gate.test.js --reporter=verbose。 ssh|npm|node|vitest DONE DONE DONE server/src/scripts/check-wecom-approval-fixtures.js|server/tests/unit/scripts/check-wecom-approval-fixtures.test.js|external|artifacts/qa-flow/wecom-approval-fixtures-* ["WREAD1F-1"] 首次 live 返回 BLOCKED_BY_EXTERNAL_CONFIG:企微模板名按日期重复,未创建模板/审批单。已修正模板命名为时间戳唯一值,本地 node --check 和 focused vitest 17 tests passed,SYNC_ENV=0 部署后 live 成功,报告 /app/artifacts/qa-flow/wecom-approval-fixtures-20260519T131958Z/summary.json 为 PASS_FIXTURE_CREATED,autoRerun 为 PASS_APPROVAL_POC。新建测试模板和测试审批记录保留审计,不自动删除。
5 WREAD1F-3 WREAD1 自动汇总复跑 live 创建后复跑 WACP3R 只读补偿拉取和 WREAD1 可读性汇总,生成新的人工确认清单。 1) WACP3R 只读复跑可拉到请假/补卡详情;2) WREAD1 结论为 PAUSED_MANUAL_CONFIRMATION;3) 公网 /ready 正常;4) 报告不泄露隐私字段。 受影响流程:新样例证据 -> WREAD1 人工确认;验证步骤:远端 npm run check:wecom-approval-compensation-poc -- --live --format=json --discover-template-ids --start-time=2026-05-19T00:00:00+08:00;远端 npm run check:wecom-approval-readability-gate -- --format=json;curl -fsS https://oa.hyinda.com/ready。 ssh|npm|curl DONE DONE DONE external|artifacts/qa-flow/wecom-approval-compensation-poc-*|artifacts/qa-flow/wecom-approval-readability-gate-* ["WREAD1F-2"] /ready 返回 ok=true。WACP3R 复跑报告 /app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T132031Z/summary.json 为 PASS_WITH_FINDINGS,发现 4 条 OA-POC 详情;WREAD1 报告 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T132054Z/summary.json 为 PAUSED_MANUAL_CONFIRMATION。回滚/清理:本行只读复跑和公网健康检查不写 OA/企微数据;新样例清理沿用 WREAD1F-2,由管理员后续在企微后台人工处理。
6 WREAD1F-4 事实源回写、提交与问答 记录新样例 live 结果和 WREAD1 等待人工确认状态;提交后用问答方式让用户检查手机企业微信。 1) 试运行报告和必要事实源记录新报告路径;2) Issue 状态按实测回填;3) git diff --check 通过;4) 中文提交完成;5) 最终说明当前状态、改了什么、测试结果和需要人工确认什么。 受影响流程:新样例创建证据 -> 真机验收;验证步骤: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;git commit -m 'WREAD1F 生成企微审批可读性新样例'。 node|python3|git|manual DONE DONE DONE docs/trialrun/人工试运行报告.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md ["WREAD1F-3"] 事实源已回写新样例 live、WACP3R 复跑和 WREAD1 等待人工确认状态。validate_issues_csv、process gate、audit-docs、quick_validate、node --check、focused vitest、git diff --check 均通过;中文提交由本行变更一并完成。WADM1 仍需等 WREAD1 模板级人工结论后再开始。 事实源已回写新样例 live、WACP3R 复跑和 WREAD1 等待人工确认状态。validate_issues_csv、process gate、audit-docs、quick_validate、node --check、focused vitest、git diff --check 均通过;中文提交由本行变更一并完成。用户随后确认请假和补卡都可以看清,驳回有二次确认,同意单击即通过,暂无字段补充建议;远端 WREAD1 人工结果报告 /app/artifacts/qa-flow/wecom-approval-readability-gate-20260519T133628Z/summary.json 为 PASS_READABLE。