9.2 KiB
9.2 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | OSMOKE1-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|manual | DONE | DONE | DONE | issues/2026-05-23_13-59-52-oa-only-smoke-account-governance-v1.csv | [] | 本合同不打印、不提交、不复述密码、token、Secret、完整本地路径或真实员工信息。 |
| 3 | OSMOKE1-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。 | node | DONE | DONE | DONE | server/src/scripts/repair-oa-only-smoke-accounts.js|server/package.json | ["OSMOKE1-0"] | 回滚路径:如误恢复,仅对本脚本报告中的 smoke 员工按员工管理流程归档;不得批量影响真实员工。 |
| 4 | OSMOKE1-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。 | node | DONE | DONE | DONE | server/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-*/测试命名。 |
| 5 | OSMOKE1-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|bash | DONE | DONE | DONE | scripts/qa/check-oa-only-smoke-readiness.mjs|scripts/qa/run-oa-real-use-daily.sh | ["OSMOKE1-1"] | readiness 可作为 finding,不代表自动修复已执行。 |
| 6 | OSMOKE1-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|python3 | DONE | DONE | DONE | docs/管理员手册.md|docs/trialrun/人工试运行报告.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|.agents/skills/hyb-oa-delivery/SKILL.md | ["OSMOKE1-1","OSMOKE1-2","OSMOKE1-3"] | 优先更新现有事实源,不新建孤立文档。 |
| 7 | OSMOKE1-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|git | DONE | DONE | DONE | server/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 脚本变更,生成报告只保留脱敏摘要且不影响公网数据。 |
| 8 | OSMOKE1-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|node | DONE | DONE | DONE | deploy/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 暂停自动化。 |
| 9 | OSMOKE1-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|manual | DONE | DONE | DONE | external|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 脚本/节流优化项,不阻断账号恢复。 |
| 10 | OSMOKE1-8 | reviewer/QA 收口与提交 | 账号状态、权限和生命周期清理属于高风险域,实施后启动只读 reviewer subagent;汇总验证结果并中文提交。 | reviewer 不改代码,只输出意见;QA 结果回填 CSV;提交信息引用 OSMOKE1;若未获得 apply 确认,OSMOKE1-7 保持 TODO/PAUSED。 | 受影响流程:高风险修复 -> 只读评审 -> 回归证据 -> 提交;验证步骤:reviewer subagent 检查 diff/报告;git status;git diff --check;git commit。 | manual|git|subagent | DONE | DONE | DONE | issues/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 脚本节流/参数优化反馈池。 |