From b6b7b77c41539ef4599b110f70c91c2dadadd089 Mon Sep 17 00:00:00 2001 From: shunli Date: Tue, 12 May 2026 17:58:49 +0800 Subject: [PATCH] =?UTF-8?q?R7P=20=E5=87=86=E5=A4=87=E6=89=A9=E5=A4=A7?= =?UTF-8?q?=E8=AF=95=E8=BF=90=E8=A1=8C=E8=8D=89=E6=A1=88=E4=B8=8E=E8=BF=90?= =?UTF-8?q?=E7=BB=B4=E5=9F=B9=E8=AE=AD=E6=9D=90=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/hyb-oa-delivery/SKILL.md | 2 +- docs/agent-development-practices.md | 2 +- docs/trialrun/manual-trialrun-report.md | 6 +- docs/trialrun/ops7-runbook.md | 136 ++++++++++++++++++ docs/trialrun/r7-expanded-trialrun-prep.md | 128 +++++++++++++++++ docs/trialrun/r7-user-guide-and-faq.md | 123 ++++++++++++++++ docs/文档索引.md | 3 + ...panded-trialrun-prep-ops-doc-materials.csv | 10 ++ 8 files changed, 406 insertions(+), 4 deletions(-) create mode 100644 docs/trialrun/ops7-runbook.md create mode 100644 docs/trialrun/r7-expanded-trialrun-prep.md create mode 100644 docs/trialrun/r7-user-guide-and-faq.md create mode 100644 issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv diff --git a/.agents/skills/hyb-oa-delivery/SKILL.md b/.agents/skills/hyb-oa-delivery/SKILL.md index 95bc82e1..f61696b9 100644 --- a/.agents/skills/hyb-oa-delivery/SKILL.md +++ b/.agents/skills/hyb-oa-delivery/SKILL.md @@ -107,4 +107,4 @@ Final responses should include: - Role-specific pages should use one shared OA/mobile framework and tailor summaries, entries, actions, and sensitive fields by role. Do not create unrelated UI systems for employee, approver, finance, admin, or CEO views. - After MUD6, `R6-ISSUE-001` is treated as resolved based on representative real-device confirmation; future mobile regressions should be recorded as new Issues rather than reopening the old WCM6/MME6 gate unless the same production behavior returns. - After AP6, approval reminder, overdue reminder, and workflow productivity summary are current product facts, not open planning items. Reuse `POST /api/workflow/tasks/:taskId/remind`, `GET /api/workflow/tasks/summary`, `job:workflow-overdue-reminders`, existing workflow history, audit logs, notifications, and WeCom personal app delivery semantics. Do not add a parallel reminder channel, change approval status from reminders, or expand into complex BPM/SLA escalation without a new Issue. -- After RI6 and LP6, the default next implementation batch is ME6 mobile second-pass experience, then QG6 QA governance, then a new R7 expanded-trialrun preparation contract. Keep existing ME6/QG6 CSV contracts instead of creating duplicate roadmap contracts. If ME6 automation/deployment is done but representative real-device testing is paused, keep `ME6-3` open and allow only non-business QG6 governance, documentation, and R7 draft preparation; do not treat QG6 as a real-device substitute and do not start real R7 without a dedicated Issue CSV plus user-confirmed participants, roles, window, rollback contact, and daily closeout. +- After RI6, LP6, ME6 automation, QG6, and R7/OPS7/DOC7 draft materials, keep `ME6-3` open until representative real-device testing passes or the user explicitly accepts that risk. R7 draft rows may be `DONE`, but `R7E-*` true execution rows must stay `TODO` until the user confirms participants, roles, window, rollback contact, issue owner, and daily closeout. Do not treat QG6 or public mobile visual automation as a real-device substitute, and do not start real R7 from documentation alone. diff --git a/docs/agent-development-practices.md b/docs/agent-development-practices.md index 00c0e28f..712dfaba 100644 --- a/docs/agent-development-practices.md +++ b/docs/agent-development-practices.md @@ -90,7 +90,7 @@ AGENTS.md 只放硬约束和入口,不复制长规则。 - 角色差异采用“同框架、按角色裁剪内容和动作”:员工、审批人、财务、管理员、负责人看到不同入口和动作,但不创建互不一致的角色专属移动 UI。 - 真机验证暂停时记录为 `PAUSED`;自动化通过不能替代代表性真机确认,也不能关闭仍待人工确认的移动阻断。 -截至 ND9,RI6 报销票据体验、LP6 请假采购体验和 ME6 自动化/部署收口均已完成;`ME6-3` 代表性企业微信真机抽查因设备不便继续待确认。后续默认路线为 `QG6 QA 治理升级 -> R7 扩大试运行草案 -> OPS7/DOC7 运维和培训材料`。真机暂缓期间可继续做 QG6、文档和草案类非业务治理,但不得关闭 `ME6-3`,不得把 QG6 当成真机替代,也不得真实启动 R7;R7 必须另建合同固定人员、角色、窗口、回滚联系人和每日收口节奏,不能直接等同全面正式上线。 +截至 R7P,RI6 报销票据体验、LP6 请假采购体验、ME6 自动化/部署收口、QG6 QA 治理以及 R7/OPS7/DOC7 草案材料均已完成;`ME6-3` 代表性企业微信真机抽查因设备不便继续待确认。后续默认进入等待门禁状态:不得关闭 `ME6-3`,不得把 QG6 或公网移动视觉矩阵当成真机替代,也不得从文档草案直接启动真实 R7。R7 真实执行必须保持 `R7E-*` 为 TODO,直到用户确认最终人员、角色、窗口、回滚联系人、问题登记负责人和每日收口节奏,并补足真机门禁或明确接受风险。 ### 7. 提交要小批次、中文、可回滚 diff --git a/docs/trialrun/manual-trialrun-report.md b/docs/trialrun/manual-trialrun-report.md index 179c8124..29c9583c 100644 --- a/docs/trialrun/manual-trialrun-report.md +++ b/docs/trialrun/manual-trialrun-report.md @@ -15,7 +15,7 @@ | --- | --- | | 公网地址 | `https://oa.hyinda.com` | | 当前门禁 | R5 已 `DONE/DONE/DONE`;R6 首轮小范围试运行已完成;R6-ISSUE-003 采购提交阻断已热修、部署并复跑通过;PC6/PA6/FL6/AP6/RI6/LP6 后续优化已完成;ME6 自动化、部署和公网视觉复检已完成,`ME6-3` 代表性企业微信真机抽查因设备不便暂缓;QG6 非业务 QA 治理已完成但不替代真机 | -| 当前代码基线 | QG6 QA 治理升级已部署到 `https://oa.hyinda.com`,并完成 `/ready`、public bundle、live smoke readiness、公网移动视觉矩阵复检;真机抽查待用户确认 | +| 当前代码基线 | QG6 QA 治理升级已部署到 `https://oa.hyinda.com`,并完成 `/ready`、public bundle、live smoke readiness、公网移动视觉矩阵复检;R7/OPS7/DOC7 草案材料已准备;真机抽查待用户确认 | | 试运行窗口 | `2026-05-12 14:00-17:00 Asia/Shanghai`;若现场无法执行,顺延到 `2026-05-13 14:00-17:00 Asia/Shanghai` | | 回滚联系人 | `wangshunli` | | 问题登记负责人 | `wangshunli` | @@ -96,12 +96,14 @@ LP6 收口(2026-05-12):请假采购体验完善已完成并部署。请假 LP6 本地验证:`leave-flow.spec.ts`、`leave-team-calendar.spec.ts`、`procurement-flow.spec.ts`、`workflow-quick-approve.spec.ts` 共 8 passed;`permission-direct-access.spec.ts -g "PA6 请假和采购自审"` 1 passed,确认请假/采购自审和 admin-only 业务审批仍由服务端拒绝;`BUSINESS_FLOW_GROUPS=leave,procurement bash scripts/qa/run-business-flow-gates.sh local` 在临时库通过,报告 `artifacts/qa-flow/business-flow-20260512-124643`;`server prisma:validate`、`node --check src/routes/leave.js`、`node --check src/routes/purchaseRequests.js`、`client typecheck/build`、`check-ui-design-rules --strict`、`git diff --check` 均通过。视觉证据输出到 `output/playwright/lp6-leave-procurement-polish/`,覆盖 PC 1440x960 请假/采购/审批与移动 390x844 请假/审批,均无横向溢出、无可见原生文件控件、无 `Choose File` 文案、无 console error。已部署到 `https://oa.hyinda.com`,公网 `/ready` 正常,public bundle `findings=0`,live smoke readiness 通过,报告 `artifacts/qa-flow/live-smoke-readiness-20260512-125740`;本地未提供完整 live smoke 凭据和真实 OCR 样票,脚本按规则跳过网页 live smoke 与真实 OCR,不影响 LP6 请假采购体验验收。下一批默认进入 ME6 移动二轮体验;R7 仍需在 LP6/ME6 至少完成一轮后另建合同。 -ME6 自动化与部署收口(2026-05-12):移动二轮体验小修已完成。修复点限定在专用 `/mobile` 路由体验稳定性:移动首页对 AP6 审批效率摘要响应增加缺省容错,请假记录对旧数据缺少 `approvalHistory` 时不再渲染崩溃;历史移动视觉专项补齐 `/api/workflow/tasks/summary` mock,并将统一移动矩阵截图目录支持切换到 `output/playwright/r6-mobile-experience-second-pass/`。本地 `client typecheck`、`client build`、`check-ui-design-rules --strict` 通过;ME6 移动矩阵 7 passed,覆盖 320/360/375/390/393/414/430px、企业微信 iOS UA、企业微信 Android UA 和普通移动 UA;R5 真机反馈移动专项 2 passed,RS6 移动响应式专项 7 passed,WCM6 企业微信多手机专项 8 passed,R124 移动入口矩阵 1 passed。已部署到 `https://oa.hyinda.com`,公网 `/ready` 正常,public bundle `findings=0`,live smoke readiness PASS,报告 `artifacts/qa-flow/live-smoke-readiness-20260512-135035`;缺少完整 live smoke 凭据和真实 OCR 样票时,脚本按规则跳过网页 live smoke 与真实 OCR。公网 ME6 移动视觉矩阵 7 passed,截图输出到 `output/playwright/r6-mobile-experience-second-pass-live/`。ME6-3 真机抽查仍待用户确认:iPhone 12 iOS14 企业微信、iPhone 14 iOS16.2 企业微信、Redmi K60 企业微信的首页、审批、报销详情、我的、通知和请假;敏感截图不提交仓库。真机通过后再进入 QG6,不直接启动 R7。 +ME6 自动化与部署收口(2026-05-12):移动二轮体验小修已完成。修复点限定在专用 `/mobile` 路由体验稳定性:移动首页对 AP6 审批效率摘要响应增加缺省容错,请假记录对旧数据缺少 `approvalHistory` 时不再渲染崩溃;历史移动视觉专项补齐 `/api/workflow/tasks/summary` mock,并将统一移动矩阵截图目录支持切换到 `output/playwright/r6-mobile-experience-second-pass/`。本地 `client typecheck`、`client build`、`check-ui-design-rules --strict` 通过;ME6 移动矩阵 7 passed,覆盖 320/360/375/390/393/414/430px、企业微信 iOS UA、企业微信 Android UA 和普通移动 UA;R5 真机反馈移动专项 2 passed,RS6 移动响应式专项 7 passed,WCM6 企业微信多手机专项 8 passed,R124 移动入口矩阵 1 passed。已部署到 `https://oa.hyinda.com`,公网 `/ready` 正常,public bundle `findings=0`,live smoke readiness PASS,报告 `artifacts/qa-flow/live-smoke-readiness-20260512-135035`;缺少完整 live smoke 凭据和真实 OCR 样票时,脚本按规则跳过网页 live smoke 与真实 OCR。公网 ME6 移动视觉矩阵 7 passed,截图输出到 `output/playwright/r6-mobile-experience-second-pass-live/`。ME6-3 真机抽查仍待用户确认:iPhone 12 iOS14 企业微信、iPhone 14 iOS16.2 企业微信、Redmi K60 企业微信的首页、审批、报销详情、我的、通知和请假;敏感截图不提交仓库。ND9 之后允许先做 QG6 非业务治理和 R7 草案材料,但不能把这些工作当成真机替代,也不能直接启动真实 R7。 ND9 非真机延续(2026-05-12):用户反馈当前不方便做代表性企业微信真机抽查,因此 `ME6-3` 继续保持 `TODO`,不得伪造完成或用自动化替代。后续可先执行 QG6 QA 治理、R7 草案、运维交接和培训材料等不依赖真机的工作;这些工作不得改变业务规则、审批链、PDF-only、企业微信通知通道或财务规则。R7 真实扩大试运行仍需用户确认最终人员、窗口,并补足 ME6 真机门禁或明确接受该风险。 QG6 QA 治理收口(2026-05-12):非真机阶段 QA 治理升级已完成并部署。`check-ui-design-rules.mjs` 已增强 UUID 主展示、内部术语、英文上传、移动桌面表格和 PC 壳扫描,新增 `--self-test` 和白名单说明;PC 审批详情不再展示任务 UUID 或 workflow instance UUID。新增 `scripts/qa/run-visual-matrix.sh` 固定视觉矩阵,项目级视觉报告支持 issue-id、baseURL、commit 和状态字段;`run-business-flow-gates.sh` 与 `run-live-smoke-readiness.sh` 输出统一 `summary.json`。本地 `client typecheck/build`、`server prisma:validate`、`check-ui-design-rules --self-test/--strict` 通过;QG6 本地视觉矩阵 8 passed,报告 `artifacts/qa-flow/qg6-qa-governance-upgrade-visual-matrix-20260512-172418`,业务流 `reimbursement,leave,procurement` 全部通过,报告 `artifacts/qa-flow/business-flow-20260512-172944`。已部署到 `https://oa.hyinda.com`,公网 `/ready` 正常,public bundle `findings=0`,live smoke readiness PASS,报告 `artifacts/qa-flow/live-smoke-readiness-20260512-174055`;公网移动视觉矩阵 7 passed,报告 `artifacts/qa-flow/qg6-qa-governance-upgrade-visual-matrix-20260512-174055`。`ME6-3` 代表性企业微信真机抽查仍为 TODO,QG6 不替代真机验收;下一步只允许 R7 草案、OPS7/DOC7 材料等非真机准备,真实 R7 仍需用户确认人员、窗口和风险接受。 +R7/OPS7/DOC7 非真机准备(2026-05-12):已创建 `issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv`。R7 草案见 `docs/trialrun/r7-expanded-trialrun-prep.md`,只固定范围、角色占位、门禁、问题分级、每日收口和退出标准;`R7E-1..R7E-3` 继续保持 `TODO`,真实 R7 未启动。OPS7 运维交接 Runbook 见 `docs/trialrun/ops7-runbook.md`,只记录部署、回滚、备份恢复、账号交接、live readiness 和企业微信通知检查清单,不执行生产配置变更或数据库恢复。DOC7 用户手册与 FAQ 见 `docs/trialrun/r7-user-guide-and-faq.md`,只描述当前已实现的报销、请假、采购、审批、企业微信入口和财务台账能力,不承诺预算、ERP、AI、完整差旅、复杂 BPM 或审批设计器。`ME6-3` 真机门禁仍未关闭;R7 真实启动仍需用户确认最终人员、窗口,并补足真机门禁或明确接受风险。 + ## 结论 R70 初次试运行暂停项已在 2026-04-28 的 R71 定向修复后关闭。基于本地环境复测,经理团队日历与员工报销缺票提示/发票上传绑定提交链路均已通过,可恢复下一轮本地人工试运行。 diff --git a/docs/trialrun/ops7-runbook.md b/docs/trialrun/ops7-runbook.md new file mode 100644 index 00000000..e901f590 --- /dev/null +++ b/docs/trialrun/ops7-runbook.md @@ -0,0 +1,136 @@ +# OPS7 运维交接 Runbook + +**文档状态**:草案。用于 R7 前运维交接和上线前检查;不代表已执行回滚、恢复或生产配置变更。 + +## 1. 原则 + +- 所有生产或试运行配置变更必须先确认窗口、负责人和回滚路径。 +- 不得记录密码、不得记录 token、不得打印 secret、不得提交真实票据或导出文件。 +- 备份恢复、Caddy/systemd 调整、数据库写操作都必须单独确认,不在本 Runbook 中直接执行。 +- 企业微信只承担入口、免登/绑定、个人应用消息和 deeplink;正式审批仍以 OA 审批历史和审计日志为准。 + +## 2. 发布前检查 + +```bash +git status --short +python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/.csv +node scripts/qa/check-ui-design-rules.mjs --strict +cd client && npm run typecheck && npm run build +cd server && npm run prisma:validate +``` + +公网检查: + +```bash +curl -fsS https://oa.hyinda.com/ready +PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs +LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh +``` + +若缺少 live smoke 凭据或真实 OCR 样票,脚本应记录 `SKIP`,不得把 `SKIP` 写成真实业务通过。 + +## 3. 部署 + +标准部署命令: + +```bash +bash deploy/trialrun/deploy.sh +``` + +默认不覆盖远端 `.env`。只有确认本地 `deploy/trialrun/.env` 可直接上服务器时,才允许在单独确认后使用: + +```bash +SYNC_ENV=1 bash deploy/trialrun/deploy.sh +``` + +部署完成后必须记录: + +- 本地提交 hash。 +- 公网 `/ready` 结果。 +- public bundle 扫描结果。 +- live readiness 报告目录。 +- 如执行视觉矩阵,记录 `output/playwright//` 和 `artifacts/qa-flow//`。 + +## 4. 回滚 + +回滚前先判断问题级别: + +- 阻断:主链路无法提交、审批、查看状态或权限泄露。 +- 严重:影响多人使用或财务/审批可信度,但存在临时绕行。 +- 一般:不阻断主链路的文案、视觉或效率问题。 + +回滚需要人工确认: + +1. 确认回滚联系人和执行窗口。 +2. 确认目标版本或上一个部署包。 +3. 确认数据库是否需要回滚。多数前端/脚本问题不应回滚数据库。 +4. 执行回滚后重新检查 `/ready`、public bundle、live readiness。 + +不得在未确认时执行: + +- 删除数据库。 +- 手工修改生产表结构。 +- 覆盖生产 `.env`。 +- 清理真实票据、附件或审计记录。 + +## 5. 备份与恢复 + +上线或 R7 前至少确认备份策略: + +- 数据库备份文件位置、时间、负责人。 +- 附件或对象存储备份位置、时间、负责人。 +- 恢复演练负责人和预估耗时。 +- 恢复后检查命令:`/ready`、登录、报销详情、附件下载、财务台账。 + +恢复演练只在独立窗口执行。演练记录只写备份文件名、恢复环境、恢复耗时和检查结果,不记录真实文件内容。 + +## 6. 账号交接 + +R7 前账号交接只记录角色和交付状态: + +| 账号/角色 | 检查项 | +| --- | --- | +| 员工 | active、employee、直属主管正确、可登录 | +| 审批人 | active、正式审批角色、不是 admin-only 代批 | +| 财务 `wangzhiling` | active、employee + finance、不授予管理员 | +| 管理员 `wangshunli` | 系统管理、回滚联系人、问题登记负责人 | + +一次性密码只能通过仓库外安全渠道交付,不写入 Issue、文档、截图或聊天摘要。 + +## 7. 企业微信通知检查 + +执行前只读确认: + +```bash +curl -fsS https://oa.hyinda.com/api/auth/wecom/config +``` + +检查点: + +- `status=ready`。 +- 工作台入口指向 OA 移动入口。 +- 个人应用消息通道启用。 +- 回调和可信域名与公网域名一致。 +- 配置接口不返回 secret。 + +人工检查点: + +- 企业微信工作台能看到海音达工作台。 +- 已绑定用户从手机企业微信进入后不反复要求登录。 +- 收到审批消息后能 deeplink 回 OA 移动审批或详情。 + +## 8. 问题登记模板 + +每个问题至少记录: + +- 编号: +- 等级:阻断 / 严重 / 一般 / 体验建议 +- 角色与账号: +- 设备与入口: +- URL 或页面: +- 操作步骤: +- 期望结果: +- 实际结果: +- 证据位置: +- 负责人: +- 当日处理结论:修复 / 降级 / 回滚 / 后续 Issue diff --git a/docs/trialrun/r7-expanded-trialrun-prep.md b/docs/trialrun/r7-expanded-trialrun-prep.md new file mode 100644 index 00000000..42238d44 --- /dev/null +++ b/docs/trialrun/r7-expanded-trialrun-prep.md @@ -0,0 +1,128 @@ +# R7 扩大试运行草案 + +**文档状态**:草案。当前只用于准备 R7,不代表 R7 已启动。 +**当前前提**:R6、PC6、PA6、FL6、AP6、RI6、LP6、ME6 自动化、QG6 已完成;`ME6-3` 代表性企业微信真机抽查仍待确认。 + +## 1. 启动边界 + +R7 是受控扩大试运行,不是全面正式上线。真实启动前必须同时满足: + +- 用户确认最终参与名单、角色、时间窗口、回滚联系人和问题登记负责人。 +- `ME6-3` 真机门禁通过,或用户明确接受“真机未补测”的风险。 +- 公网 `/ready`、public bundle、live readiness、核心业务流和账号角色只读核验通过。 +- 阻断问题为 0;严重问题已有当天修复、降级或回滚判断。 + +真机不方便期间,只能做草案、运维材料和培训材料,不启动真实 R7。 + +## 2. 试运行范围 + +R7 只覆盖当前已完成并部署的主链路: + +- 报销:提交、PDF 发票或附件、审批、付款状态、财务台账/导出。 +- 请假:提交、审批、状态查看、退回/驳回说明。 +- 采购:提交、审批、历史查看、附件说明。 +- 审批中心:待办、已办、详情、催办、超时/效率摘要只读展示。 +- 企业微信:工作台入口、免登或账号密码回退、个人应用消息、deeplink 回 OA。 +- 财务:`wangzhiling` 查看台账、导出或付款状态,按权限边界执行。 + +不进入 R7 的范围: + +- 预算扩展、ERP 实时集成、AI、完整差旅、复杂 BPM、审批设计器。 +- 企业微信原生审批。 +- 现场临时扩大的新功能开发。 +- 真实票据、隐私截图或导出文件提交到仓库。 + +## 3. 参与角色占位 + +最终名单由用户确认。草案默认配置: + +| 角色 | 人数/账号 | 职责 | +| --- | --- | --- | +| 员工 | 3-5 人,待用户确认 | 提交报销、请假、采购;使用企业微信移动入口查看通知和详情 | +| 审批人 | 1-2 人,待用户确认 | 处理报销、请假、采购待办;覆盖通过,必要时覆盖退回/驳回 | +| 财务 | `wangzhiling` | 查看财务台账、导出或付款状态;不授予管理员能力 | +| 管理员/拍板人 | `wangshunli` | 决定暂停、继续、降级或回滚 | +| 回滚联系人 | 默认 `wangshunli` | 维护回滚窗口和执行授权 | +| 问题登记负责人 | 默认 `wangshunli` | 每日收口、分级、追踪后续 Issue | + +## 4. 执行前检查 + +执行前先完成以下自动和只读检查: + +```bash +curl -fsS https://oa.hyinda.com/ready +PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs +QA_ISSUE_ID=r7-expanded-trialrun LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh +QA_ISSUE_ID=r7-expanded-trialrun E2E_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-visual-matrix.sh live +``` + +如本地需要复核业务流: + +```bash +QA_ISSUE_ID=r7-expanded-trialrun BUSINESS_FLOW_GROUPS=reimbursement,leave,procurement bash scripts/qa/run-business-flow-gates.sh local +``` + +账号和角色只读核验: + +- 员工账号均为 `active`,有 `employee` 角色。 +- 审批人账号均为 `active`,有正式业务审批角色,不依赖 admin-only。 +- `wangzhiling` 为 `active + employee,finance`,不授予管理员能力。 +- `wangshunli` 作为管理员/拍板人,不默认获得业务审批权。 + +企业微信前置: + +- `/api/auth/wecom/config` 为 ready,且不返回 secret。 +- 企业微信自建应用可见范围覆盖参与者。 +- 个人应用消息通道启用,通知失败只登记,不改变业务状态。 + +## 5. 执行路径 + +每名员工至少覆盖: + +1. 登录 PC 或企业微信移动入口。 +2. 提交 1 条报销,包含 PDF 发票或附件。 +3. 提交 1 条请假。 +4. 提交 1 条采购。 +5. 查看通知、我的申请和状态变化。 + +审批人至少覆盖: + +1. PC 审批中心筛选报销、请假、采购。 +2. 处理待办,至少覆盖通过。 +3. 如时间允许,覆盖退回或驳回说明。 +4. 点击企业微信消息 deeplink 回到 OA 移动审批或详情。 + +财务至少覆盖: + +1. 查看财务台账。 +2. 验证待付款、已付款或导出入口。 +3. 检查普通员工无法直连财务数据。 + +## 6. 问题分级 + +| 等级 | 定义 | 处理 | +| --- | --- | --- | +| 阻断 | 主链路无法提交、审批、查看状态或权限泄露 | 立即暂停 R7,决定修复、降级或回滚 | +| 严重 | 影响多人操作或财务/审批可信度,但有临时绕行 | 当天判断修复、降级或回滚 | +| 一般 | 单页文案、视觉、效率或非主链路问题 | 登记后排后续 Issue | +| 体验建议 | 不影响完成任务的优化建议 | 进入后续产品优化池 | + +所有问题必须记录:账号角色、设备、浏览器/企业微信、路径、操作步骤、期望、实际、证据位置和负责人。 + +## 7. 每日收口 + +每日收口只回答四个问题: + +1. 今天是否出现阻断或严重问题。 +2. 哪些问题需要当天修复、降级或回滚。 +3. 哪些一般问题进入后续 Issue。 +4. 明天是否继续、缩小范围或暂停。 + +结论只能是: + +- 继续试运行。 +- 修复后继续。 +- 暂停并回滚。 +- 进入下一批优化。 + +R7 通过后也不直接宣布全面正式上线;正式上线前还需要 OPS7 运维确认、最终培训、备份恢复演练和上线窗口确认。 diff --git a/docs/trialrun/r7-user-guide-and-faq.md b/docs/trialrun/r7-user-guide-and-faq.md new file mode 100644 index 00000000..0e182673 --- /dev/null +++ b/docs/trialrun/r7-user-guide-and-faq.md @@ -0,0 +1,123 @@ +# R7 试运行用户手册与 FAQ + +**文档状态**:草案。用于 R7 扩大试运行前培训,不承诺未实现功能。 + +## 1. 适用范围 + +本手册只覆盖当前已实现并部署的能力: + +- 报销、PDF 发票或附件、审批、付款状态。 +- 请假提交、审批、退回/驳回说明和状态查看。 +- 采购提交、附件说明、审批和历史查看。 +- 企业微信工作台入口、个人应用消息和 deeplink 回 OA。 +- 财务台账、导出或付款状态查看。 + +不承诺预算扩展、ERP 实时集成、AI、完整差旅、复杂 BPM、审批设计器或企业微信原生审批。 + +## 2. 员工操作 + +### 2.1 登录 + +- PC:打开 `https://oa.hyinda.com`,使用账号密码登录。 +- 手机:从企业微信打开 `海音达工作台`,进入移动工作台。 +- 如果企业微信免登失败,先用账号密码登录,再到 `个人设置 -> 企业微信绑定` 检查绑定状态。 + +### 2.2 提交报销 + +1. 进入 `报销`。 +2. 新建或继续草稿。 +3. 填写报销说明和明细。 +4. 在报销详情添加 PDF 发票或附件。 +5. 确认发票状态和附件后提交审批。 +6. 提交后在详情页查看审批流、催办入口、付款状态和历史记录。 + +发票状态说明: + +- `识别中`:系统正在处理,稍后刷新。 +- `识别失败`:查看提示后重新上传清晰 PDF 或联系负责人。 +- `可添加`:可以添加到当前报销。 +- `已添加`:已加入当前报销。 +- `重复票据`:系统发现相同票据,按提示处理,不要重复提交。 +- `已归档/已报销`:票据已进入其他记录或历史归档,不能重复使用。 + +### 2.3 提交请假 + +1. 进入 `请假`。 +2. 选择假别、开始日期、结束日期和上午/下午。 +3. 填写原因。 +4. 保存草稿或提交审批。 +5. 退回或驳回时查看审批意见后再处理。 + +### 2.4 提交采购 + +1. 进入 `采购申请`。 +2. 填写标题、供应商、金额、分类、原因和附件。 +3. 缺预算池提示只说明当前预算配置不完整;试运行规则允许时仍会继续提交,不能继续时会给出业务提示。 +4. 提交后查看审批历史和状态。 + +## 3. 审批人操作 + +1. PC 进入 `审批中心`,或从企业微信消息打开移动审批。 +2. 用业务类型筛选报销、请假或采购。 +3. 先查看详情,再执行通过、退回或驳回。 +4. 退回或驳回必须填写可理解说明。 +5. 不处理自己提交的单据;系统会阻断自审。 +6. 管理员账号不等于业务审批人,除非同时具备正式业务审批角色且不是自审。 + +## 4. 财务操作 + +1. 使用财务账号进入财务页面。 +2. 查看财务台账,按状态筛选待复核、待付款或已付款。 +3. 需要时执行导出或查看付款状态。 +4. 普通员工不能访问全量财务台账;如看到权限异常,立即登记问题。 +5. 不在仓库、截图或聊天中保存真实导出文件。 + +## 5. 企业微信使用 + +- 企业微信只做入口、提醒和 deeplink,不作为正式审批系统。 +- 收到审批消息后,点击进入 OA 页面处理。 +- 如果打开后仍要求登录,先检查是否已绑定企业微信。 +- 如果页面显示异常,记录设备、系统版本、企业微信版本、路径和截图位置;敏感截图不提交仓库。 + +## 6. FAQ + +### 企业微信进不去怎么办? + +先用 PC 或普通浏览器确认账号密码能登录。再检查 `个人设置 -> 企业微信绑定`。如果仍失败,记录设备、企业微信版本、入口路径和错误提示。 + +### 收不到企业微信消息怎么办? + +先确认站内通知是否存在。若站内通知存在但企业微信没有消息,登记为通知投递问题;不要重复提交业务单据。 + +### 发票提示重复怎么办? + +重复票据说明系统发现相同发票已被使用或已归档。先查看提示中的原因,再联系问题登记负责人判断是否需要财务或管理员处理。 + +### 审批人看不到待办怎么办? + +确认该单据是否已提交、是否分配给当前审批人、审批人账号是否有正式业务审批角色。管理员单角色不自动拥有业务审批权。 + +### 付款状态是什么意思? + +- 待复核:审批已通过,等待财务处理。 +- 待付款:财务已进入付款处理阶段。 +- 已付款:财务已完成付款标记或相关状态更新。 +- 已导出:已生成财务核对或处理用导出记录。 + +### 可以在现场要求加新功能吗? + +R7 期间不现场扩大功能。新需求先登记为体验建议或后续 Issue,再由负责人排期。 + +## 7. 反馈模板 + +请按以下格式反馈: + +- 角色: +- 账号: +- 设备和入口: +- 页面: +- 操作步骤: +- 期望结果: +- 实际结果: +- 问题等级建议: +- 证据位置: diff --git a/docs/文档索引.md b/docs/文档索引.md index 9d223856..e2cefa1f 100644 --- a/docs/文档索引.md +++ b/docs/文档索引.md @@ -48,6 +48,9 @@ | [发布试运行准备清单](./trialrun/release-readiness-checklist.md) | 发布候选证据、权限直连审计、部署预检、live smoke 和小范围试运行顺序 | 从本地可回归进入公网/真机验收前必须看 | | [公网 live smoke 与真实 OCR 准备清单](./trialrun/live-smoke-readiness.md) | 公网、真实 OCR、企业微信入口复核准备 | 只有部署后才能给出真机验收结论 | | [真机公网测试清单](./trialrun/real-device-public-checklist.md) | 手机、企业微信、PDF 发票上传人工验证 | 用于上线前人工验收 | +| [R7 扩大试运行草案](./trialrun/r7-expanded-trialrun-prep.md) | R7 参与角色、范围、门禁、问题分级、每日收口和退出标准草案 | 仅为草案;真实 R7 仍需用户确认人员、窗口和 ME6-3 真机门禁或风险接受 | +| [OPS7 运维交接 Runbook](./trialrun/ops7-runbook.md) | 部署、回滚、备份恢复、账号交接、live readiness 和企业微信通知检查清单 | 不代表已执行生产配置变更、恢复演练或回滚 | +| [DOC7 试运行用户手册与 FAQ](./trialrun/r7-user-guide-and-faq.md) | 员工、审批人、财务在 R7 中使用报销、请假、采购、审批、企业微信和财务台账的说明 | 只描述当前已实现能力,不承诺预算、ERP、AI、完整差旅、复杂 BPM 或审批设计器 | ## 实现状态与证据 diff --git a/issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv b/issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv new file mode 100644 index 00000000..701b8661 --- /dev/null +++ b/issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv @@ -0,0 +1,10 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R7P-1,R7 非真机准备合同建档,建立 R7 扩大试运行草案与 OPS7/DOC7 材料合同,明确当前不启动真实 R7。,"1) 本 CSV 校验通过;2) ME6-3 仍保持 TODO;3) R7 真实执行行保持 TODO;4) 不新增业务范围。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv;rg -n 'ME6-3|不启动真实 R7|TODO' issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv。",python3|rg,DONE,DONE,DONE,issues/2026-05-12_17-49-03-r7-expanded-trialrun-prep-ops-doc-materials.csv,[],草案合同;不部署;回滚路径:删除本 CSV 和对应草案文档。 +R7P-2,R7 扩大试运行草案,编写 R7 参与角色、范围、门禁、问题分级、每日收口和退出标准草案。,"1) 文档说明 R7 仍需用户确认人员和窗口;2) 参与名单使用占位,wangzhiling/wangshunli 只按既定角色出现;3) 范围限定报销、请假、采购、审批、企微消息/deeplink、财务台账/导出;4) 不扩预算、ERP、AI、完整差旅、复杂 BPM、审批设计器。","流程级验证:rg -n '草案|员工 3-5|审批人 1-2|wangzhiling|wangshunli|不启动|预算|ERP|AI|复杂 BPM' docs/trialrun/r7-expanded-trialrun-prep.md。",rg,DONE,DONE,DONE,docs/trialrun/r7-expanded-trialrun-prep.md,["R7P-1"],R7 真正启动前必须另由用户确认最终名单、窗口和风险接受。 +R7P-3,R7 执行前检查清单,在 R7 草案中固定执行前自动检查、账号角色只读核验、真机门禁和风险接受条件。,"1) 检查项包含 /ready、public bundle、live readiness、账号 active/role、企业微信配置;2) 明确 ME6-3 真机未过时只能草案或风险接受;3) 不要求用户现在做真机。","流程级验证:rg -n '/ready|public bundle|live readiness|active|role|ME6-3|风险接受|企业微信' docs/trialrun/r7-expanded-trialrun-prep.md。",rg,DONE,DONE,DONE,docs/trialrun/r7-expanded-trialrun-prep.md,["R7P-2"],只读核验,不打印密码、token、真实票据或隐私截图。 +OPS7-1,运维交接 Runbook 草案,编写部署、回滚、备份恢复、账号交接、live readiness 和企业微信通知检查的管理员清单。,"1) 文档只给可复用检查命令和人工确认项;2) 不改生产配置;3) 不执行数据库恢复;4) 不包含密钥或密码。","流程级验证:rg -n '部署|回滚|备份|恢复|账号交接|live readiness|企业微信|不得记录密码|不得记录 token' docs/trialrun/ops7-runbook.md。",rg,DONE,DONE,DONE,docs/trialrun/ops7-runbook.md,["R7P-1"],真实回滚或恢复演练必须另行确认窗口和备份。 +DOC7-1,试运行用户手册与 FAQ 草案,编写员工、审批人、财务的 R7 试运行使用说明和常见问题。,"1) 覆盖报销、请假、采购、审批、财务台账/导出、企业微信入口;2) FAQ 覆盖进不去、收不到消息、发票重复、看不到审批、付款状态;3) 不承诺未实现功能。","流程级验证:rg -n '员工|审批人|财务|报销|请假|采购|企业微信|发票重复|付款状态|不承诺' docs/trialrun/r7-user-guide-and-faq.md。",rg,DONE,DONE,DONE,docs/trialrun/r7-user-guide-and-faq.md,["R7P-1"],仅描述当前已实现能力。 +R7P-4,文档索引与报告同步,把 R7 草案、OPS7 Runbook 和 DOC7 手册加入当前操作手册索引,并在人工报告中记录非真机阶段准备完成。,"1) docs/文档索引.md 包含三份新文档;2) manual report 说明 R7 未启动;3) 不关闭 ME6-3。","流程级验证:rg -n 'R7 扩大试运行草案|OPS7|DOC7|ME6-3|未启动' docs/文档索引.md docs/trialrun/manual-trialrun-report.md。",rg,DONE,DONE,DONE,docs/文档索引.md|docs/trialrun/manual-trialrun-report.md,"[""R7P-2"",""OPS7-1"",""DOC7-1""]",事实源同步,不部署。 +R7E-1,R7 真实启动门禁,用户确认最终参与名单、窗口、回滚联系人和问题登记负责人,并补足 ME6-3 真机门禁或明确风险接受。,"1) 最终名单和窗口已确认;2) ME6-3 已 PASS 或用户明确接受风险;3) 自动前检查通过;4) 阻断问题为 0。","流程级验证:按 docs/trialrun/r7-expanded-trialrun-prep.md 的执行前检查完成;所有结果写入 manual trialrun report。",manual,TODO,TODO,TODO,external,["R7P-4"],真实 R7 未启动;等待用户确认。 +R7E-2,R7 扩大试运行执行,按确认名单完成报销、请假、采购、审批、企业微信消息/deeplink 和财务台账/导出真实流程。,"1) 员工提交真实试运行单据;2) 审批人处理待办;3) 财务查看台账/导出或付款状态;4) 企业微信消息能回流 OA。","流程级验证:真实参与者按 R7 草案路径执行;问题按阻断、严重、一般、体验建议登记。",manual,TODO,TODO,TODO,external,["R7E-1"],不得现场扩展预算、ERP、AI、完整差旅、复杂 BPM 或审批设计器。 +R7E-3,R7 每日收口与结论,完成每日问题分级、修复/降级/回滚判断和 R7 结论。,"1) 每日收口记录完整;2) 阻断问题已暂停或解决;3) 输出继续试运行/修复后继续/暂停回滚/进入下一批优化结论;4) 不直接宣布全面上线。","流程级验证:manual trialrun report 记录每日收口和最终结论;相关 Issue CSV 状态真实回填。",manual,TODO,TODO,TODO,docs/trialrun/manual-trialrun-report.md,["R7E-2"],R7 通过后再规划正式上线前准备。