文件
hyb-oa/issues/2026-05-23_13-59-52-oa-only-smoke-account-governance-v1.csv

9.2 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2OSMOKE1-0建立 OA-only smoke 账号治理合同承接 ASSET1D/OAOPS1 阻断,固定企微测试账号与 OA 全域回归账号解耦口径。Issue CSV 通过校验;范围固定为恢复 OA-only smoke 自动化能力,不新增企微账号、不写企业微信、不执行资产 EA-DOC live 导入。受影响流程:公网 OA 自动化 -> 高权限 smoke 登录 -> 资产/财务/权限回归;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-23_13-59-52-oa-only-smoke-account-governance-v1.csv。python3|manualDONEDONEDONEissues/2026-05-23_13-59-52-oa-only-smoke-account-governance-v1.csv[]本合同不打印、不提交、不复述密码、token、Secret、完整本地路径或真实员工信息。
3OSMOKE1-1实现 OA-only smoke 修复脚本新增 QA/Ops 脚本,按本地私有 live smoke env 中的标识定位 OA-only smoke 账号,默认 dry-run,apply 必须双开关。脚本默认只报告计划;真实修复必须 --apply 且 OA_ONLY_SMOKE_REPAIR_APPLY=1;只恢复 active 状态、清登录锁、补齐角色,不重置密码、不影响真实员工。受影响流程:管理员准备公网自动化账号 -> dry-run 查看计划 -> 人工确认 -> apply 修复;验证步骤:cd server && node --check src/scripts/repair-oa-only-smoke-accounts.js。nodeDONEDONEDONEserver/src/scripts/repair-oa-only-smoke-accounts.js|server/package.json["OSMOKE1-0"]回滚路径:如误恢复,仅对本脚本报告中的 smoke 员工按员工管理流程归档;不得批量影响真实员工。
4OSMOKE1-2调整企微/OA 一致性审计与 resolver 豁免将 OA-only smoke 账号从 oaActiveMissingInWecom finding 中移出,历史报告进入 resolver 时也支持员工号豁免。审计报告新增 oaOnlySmokeExempted 分类且不计入阻断 finding;resolver 报告不对豁免员工计划 archive_oa_test_employee。受影响流程:企微/OA 用户一致性审计 -> 差异修复计划 -> 防止 OA-only smoke 被再次归档;验证步骤:cd server && node --check src/scripts/audit-wecom-oa-user-consistency.js && node --check src/scripts/resolve-wecom-oa-user-consistency.js。nodeDONEDONEDONEserver/src/scripts/audit-wecom-oa-user-consistency.js|server/src/scripts/resolve-wecom-oa-user-consistency.js["OSMOKE1-1"]不改变真实员工一致性规则;OA-only smoke 仅来自私有 env 标识、显式员工号 allowlist 或 SMOKE*/smoke-*/测试命名。
5OSMOKE1-3新增 OA-only smoke readiness 检查并接入 OAOPS1新增公网只读 readiness 检查 admin/employee/manager/finance/finance_mgr/hr/ceo 角色登录与入口可用性,并接入每日巡检。报告只显示角色、脱敏状态和入口结果;不输出账号密码;run-oa-real-use-daily 先执行账号 readiness,再继续资产/财务/移动入口巡检。受影响流程:OAOPS1 每日巡检 -> 角色账号可用性 -> 资产/财务自动化前置;验证步骤:node --check scripts/qa/check-oa-only-smoke-readiness.mjs && bash -n scripts/qa/run-oa-real-use-daily.sh。node|bashDONEDONEDONEscripts/qa/check-oa-only-smoke-readiness.mjs|scripts/qa/run-oa-real-use-daily.sh["OSMOKE1-1"]readiness 可作为 finding,不代表自动修复已执行。
6OSMOKE1-4回写事实源和操作口径更新现有管理员手册、试运行报告、文档索引、事实源矩阵和项目 skill,固化 OA-only smoke 与企微测试账号分离。后来者能从事实源看到:不再为 OA 测试申请更多企微账号;OA-only smoke 可不绑定企微;修复账号必须 dry-run + 人工确认 + 双开关 apply。受影响流程:交付人员读取文档 -> 判断当前阻断 -> 执行正确账号治理;验证步骤:rg -n "OSMOKE1|OA-only smoke|oaOnlySmokeExempted|OA_ONLY_SMOKE_REPAIR_APPLY" docs .agents/skills/hyb-oa-delivery/SKILL.md。rg|node|python3DONEDONEDONEdocs/管理员手册.md|docs/trialrun/人工试运行报告.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md["OSMOKE1-1","OSMOKE1-2","OSMOKE1-3"]优先更新现有事实源,不新建孤立文档。
7OSMOKE1-5本地静态与最小门禁执行合同校验、process gate、Prisma validate、脚本语法、文档审计、skill 校验、diff 和最小回归。本地门禁通过;若存在既有文档 warning,记录但不伪造成业务失败。受影响流程:开发候选 -> 可部署候选;验证步骤:validate_issues_csv;node scripts/qa/check-process-contract.mjs --baseline --json;cd server && npm run prisma:validate;node --check affected scripts;bash -n scripts/qa/run-oa-real-use-daily.sh;node scripts/qa/audit-docs.mjs --check-registry;quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check;bash scripts/check-minimal.sh。python3|node|npm|bash|gitDONEDONEDONEserver/src/scripts/*|scripts/qa/*|docs|issues/2026-05-23_13-59-52-oa-only-smoke-account-governance-v1.csv["OSMOKE1-4"]本地门禁通过:validate/process gate/prisma/node check/bash -n/audit-docs/quick_validate/git diff/check-minimal 均通过;focused vitest 3 files 21 tests passed;audit-docs 保留既有 unregistered docs files 24 warning。回滚/清理路径为删除本轮未提交代码与 QA-only 脚本变更,生成报告只保留脱敏摘要且不影响公网数据。
8OSMOKE1-6部署公网并生成远端 dry-run部署 OSMOKE1 到公网 OA,远端只执行 OA-only smoke 修复 dry-run 和 readiness 检查,不 apply。部署成功;/ready 正常;dry-run 报告显示会恢复哪些 OA-only smoke 角色或显示无待修复;未执行真实账号修复。受影响流程:本地代码 -> 公网部署 -> 远端 dry-run -> 人工确认 gate;验证步骤:SYNC_ENV=0 bash deploy/trialrun/deploy.sh;远端执行 npm run repair:oa-only-smoke -- --format=json;公网 readiness 只读检查。bash|ssh|nodeDONEDONEDONEdeploy/trialrun/deploy.sh|server/src/scripts/repair-oa-only-smoke-accounts.js|scripts/qa/check-oa-only-smoke-readiness.mjs["OSMOKE1-5"]公网部署完成;/ready ok,public bundle findings=0;远端 dry-run 报告 /app/artifacts/qa-flow/oa-only-smoke-repair-20260523-osmoke1-dryrun/summary.json 已复制到宿主机 /opt/hyb-oa-trialrun/artifacts/qa-flow/oa-only-smoke-repair-20260523-osmoke1-dryrun/summary.json,结论 PASS_WITH_REPAIR_PLAN:7 targets,plannedRepairs=5,readyTargets=2,blockedTargets=0,未 apply;公网 readiness 显示 employee/manager PASS,admin/ceo/finance/finance_mgr/hr 因 archived 返回 AUTH_003。部署回滚按 trialrun runbook 回退到上一提交;dry-run 无数据库写入;apply 前必须回到用户问答:A 恢复现有 OA-only smoke;B 新建新账号;C 暂停自动化。
9OSMOKE1-7人工确认后远端 apply 与复测仅在用户确认 A 后,使用 --apply + OA_ONLY_SMOKE_REPAIR_APPLY=1 远端恢复现有 OA-only smoke 账号,然后复跑 OAOPS1 和 ASSET1D UI 自动化。修复报告状态为 APPLIED;高权限 smoke 账号登录恢复;OAOPS1 账号 readiness 通过或仅剩可解释 finding;ASSET1D-4 可继续 UI 试录。受影响流程:账号恢复 -> 角色入口 -> 资产台账/财务/AP/权限公网复测;验证步骤:远端 apply 后执行 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-oa-real-use-daily.sh;启动只读 QA subagent/Playwright 复测资产 UI。ssh|node|bash|playwright|manualDONEDONEDONEexternal|artifacts/qa-flow["OSMOKE1-6"]用户确认 A 后已执行远端 apply;宿主机报告 /opt/hyb-oa-trialrun/artifacts/qa-flow/oa-only-smoke-repair-20260523-osmoke1-apply/summary.json 为 APPLIED_OA_ONLY_SMOKE_REPAIR:7 targets,plannedRepairs=5,appliedRepairs=5,blockedTargets=0,wecomWrites=0,passwordReset=false,realEmployees=not_targeted。公网 OA-only smoke readiness /tmp/osmoke1-readiness-after-apply/summary.json 为 PASS_OA_ONLY_SMOKE_READY,7 个角色登录、角色和入口均 PASS。OAOPS1 日报 /tmp/oaops1-daily-after-osmoke1-apply/summary.json 为 PASS_WITH_FINDINGS:账号 readiness/live smoke/移动矩阵通过;剩余 findings 为连续登录触发 429、合同台账探针参数 400 和 wecom-entry 登录阶段失败,作为 QA 脚本/节流优化项,不阻断账号恢复。
10OSMOKE1-8reviewer/QA 收口与提交账号状态、权限和生命周期清理属于高风险域,实施后启动只读 reviewer subagent;汇总验证结果并中文提交。reviewer 不改代码,只输出意见;QA 结果回填 CSV;提交信息引用 OSMOKE1;若未获得 apply 确认,OSMOKE1-7 保持 TODO/PAUSED。受影响流程:高风险修复 -> 只读评审 -> 回归证据 -> 提交;验证步骤:reviewer subagent 检查 diff/报告;git status;git diff --check;git commit。manual|git|subagentDONEDONEDONEissues/2026-05-23_13-59-52-oa-only-smoke-account-governance-v1.csv["OSMOKE1-5"]提交前只读 reviewer 复核无 blocker;用户确认 A 后已执行 OSMOKE1-7 apply,apply 后 reviewer 复核无 blocker,确认可标 DONE。未执行 EA-DOC live 导入;OAOPS1 剩余 findings 进入 QA 脚本节流/参数优化反馈池。