同步遗留任务与运行手册状态(07-16-legacy-task-runbook-closeout)
这个提交包含在:
@@ -73,12 +73,12 @@
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] 业务列表页标题右上角符合“一主操作 + 最多一个更多”的规则。
|
||||
- [ ] `筛选`、`导出`、`刷新`、`显示测试数据` 不再作为标题右上角常驻按钮。
|
||||
- [ ] 采购、合同、项目、资产、付款、应付账款、票据至少完成首轮统一。
|
||||
- [ ] 规则写入前端设计规范,后续页面可复用。
|
||||
- [ ] 标题、筛选、列表列、空状态、详情/编辑操作区至少完成一致性审计,形成后续改造清单。
|
||||
- [ ] 前端 typecheck/build 通过。
|
||||
- [x] 业务列表页标题右上角符合“一主操作 + 最多一个更多”的规则。
|
||||
- [x] `筛选`、`导出`、`刷新`、`显示测试数据` 不再作为标题右上角常驻按钮。
|
||||
- [x] 采购、合同、项目、资产、付款、应付账款、票据至少完成首轮统一。
|
||||
- [x] 规则写入前端设计规范,后续页面可复用。
|
||||
- [x] 标题、筛选、列表列、空状态、详情/编辑操作区至少完成一致性审计,形成后续改造清单。
|
||||
- [x] 前端 typecheck/build 通过。
|
||||
- [ ] 聚焦 Playwright/视觉复检覆盖主要业务页。
|
||||
|
||||
## Test Plan
|
||||
@@ -97,3 +97,20 @@ node scripts/qa/check-trellis-governance.mjs
|
||||
- 设计裁决使用 `frontend-design` skill,并按成熟企业后台/Ant Design Pro 的页面区分:标题区负责页面级主操作,表格工具栏负责列表级工具。
|
||||
- 相关规范:`.trellis/spec/hyb-oa/frontend-react-vite-design.md`
|
||||
- 相关组件:`client/src/components/patterns/ListWorkspace.tsx`、`client/src/components/common/PageHeader.tsx`、`client/src/components/patterns/BusinessListTemplate.tsx`
|
||||
|
||||
## Closeout Verification (2026-07-16)
|
||||
|
||||
- 实现提交 `dcf34d7` 后,七个页面、`HeaderActionGroup` 和相关聚焦测试没有发生实现漂移。
|
||||
- `cd client && npm run typecheck` 通过;`cd client && npm run build` 通过,Vite 转换 2381 个模块,PWA 生成 102 个预缓存条目,仅有既有 Browserslist 数据陈旧提示。
|
||||
- 在 Vite dev 模式下运行 `r103-cross-page-ui-consistency.spec.ts` 为 3 passed;production preview 首次运行的 1 个失败是 PWA Service Worker 绕过 `page.route` mock 并回到登录页的验证环境问题,未作为产品 finding。
|
||||
- 当前标题动作迁移本身通过静态复核,但任务不能归档:聚焦视觉覆盖仍缺项目/资产列表,且一致性审计发现权限显隐和旧测试漂移。
|
||||
|
||||
### Follow-up Findings
|
||||
|
||||
- `PaymentBatchesPage` 对只有复核权限、没有付款创建权限的用户仍显示 `新建批次`,点击后才出现无权限面板。
|
||||
- `ContractsRegistryPage` 对只读合同用户仍显示新增、编辑、续约和归档入口,写接口最终会返回 403。
|
||||
- `InvoicePoolPage` 已计算上传权限,但标题区 `上传票据` 没有按该权限隐藏。
|
||||
- `assets-flow.spec.ts` 与 `manual/asset1d-public-trial.spec.ts` 仍把已迁入 `更多` 的 `资产分类` 当作直接按钮点击。
|
||||
- `HeaderActionGroup` 目前只统一布局,不约束动作数量;缺少七页面统一标题动作合同测试,现有截图缺项目和资产列表。
|
||||
|
||||
上述 finding 需要独立修复 task;在修复并补齐视觉/回归覆盖前,本任务保持 `in_progress`,不得虚报完成或归档。
|
||||
|
||||
@@ -21,6 +21,6 @@
|
||||
"children": [],
|
||||
"parent": null,
|
||||
"relatedFiles": [],
|
||||
"notes": "",
|
||||
"notes": "2026-07-16 收口验证:typecheck/build 和 r103 3/3 通过,标题迁移 6 项验收已证实;仍有权限显隐、资产旧测试和项目/资产视觉覆盖 finding,需独立修复 task 后才能归档。",
|
||||
"meta": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{"file":".trellis/spec/hyb-oa/project-governance.md","reason":"复核 Trellis-first、任务生命周期和归档语义。"}
|
||||
{"file":".trellis/spec/hyb-oa/docs-and-evidence.md","reason":"复核事实源、历史证据和文档登记一致性。"}
|
||||
{"file":".trellis/spec/hyb-oa/deployment-trialrun.md","reason":"复核本地、公网与试运行状态是否被正确区分。"}
|
||||
{"file":".trellis/tasks/07-16-legacy-task-runbook-closeout/research/closeout-status-audit.md","reason":"按原始审计证据核对收口结论和遗漏。"}
|
||||
@@ -0,0 +1,71 @@
|
||||
# 遗留任务与运行手册收口设计
|
||||
|
||||
## Safety Boundary
|
||||
|
||||
本任务只修正任务状态、验证证据和现行文档事实,不修改业务代码、数据库、权限、接口或页面设计。任何验证失败都作为后续 finding,不能通过扩大本任务范围来掩盖。
|
||||
|
||||
## Execution Order
|
||||
|
||||
### 1. 冻结基线
|
||||
|
||||
- 记录当前 `main`、工作树、活动任务和最后有证据的公网部署基线。
|
||||
- 确认本任务开始时没有未识别脏文件。
|
||||
- 不 fetch、push、部署或访问带凭据公网环境。
|
||||
|
||||
### 2. 收口已完成的业务编辑模板任务
|
||||
|
||||
- 核对 `1428cc4` 实现提交、`46fa609` 部署证据及 PRD 全部验收项。
|
||||
- 运行 task validate 和静态入口复核。
|
||||
- 补齐 task commit/notes 后归档,不重跑公网部署。
|
||||
|
||||
### 3. 验收页面右上角操作区任务
|
||||
|
||||
- 核对 `dcf34d7` 后相关实现是否发生变化。
|
||||
- 运行前端 typecheck/build、聚焦 `r103-cross-page-ui-consistency` Playwright、相关静态结构检查。
|
||||
- 复核采购、合同、项目、资产、付款、应付账款、票据标题区,至少确认“一主操作 + 最多一个更多”和列表级工具下沉。
|
||||
- 通过时回填 7 项验收、验证结果、实现提交和未部署事实并归档。
|
||||
- 失败时保留任务为未完成,记录页面、复现方式和影响,另建修复 task。
|
||||
|
||||
### 4. 关闭历史中断的 7 天试运行
|
||||
|
||||
- 在旧 PRD/implement/task notes 中增加 closeout 结论:仅 Day 1–Day 4,缺 Day 5–Day 7、人工闭环和 Go/No-Go。
|
||||
- 记录旧 readiness 假绿风险,禁止将旧 `findingCount=0` 当作最终启用证据。
|
||||
- 明确后续必须在当前可信基线部署后新建连续 7 天任务,从 Day 1 重启。
|
||||
- 再归档旧任务;归档状态只表示生命周期关闭。
|
||||
|
||||
### 5. 同步现行运行手册
|
||||
|
||||
- `docs/试运行与自动化验证手册.md`:入口改为 Trellis task,更新本地/公网/正式启用状态。
|
||||
- `docs/文档索引.md` 与 `docs/文档事实源状态矩阵.md`:登记 7 月 P0 本地可信基线、未部署事实和旧试运行关闭语义。
|
||||
- `docs/trialrun/发布试运行准备清单.md`:将历史 A1–R7E 内容降为背景,当前入口改为新发布/试运行流程。
|
||||
- `docs/trialrun/真机公网测试清单.md`:删除“R7 未启动”等过时现状声明,保留仍有效的真机验收步骤。
|
||||
- 不批量重写历史 Issue CSV、归档 task 或历史试运行报告。
|
||||
|
||||
### 6. 质量与复核
|
||||
|
||||
- 运行三个遗留任务和当前任务的 validate(归档后按实际路径检查)。
|
||||
- 运行 Trellis governance、process baseline、文档 registry/full audit 和 `git diff --check`。
|
||||
- 清理本轮构建/Playwright生成物,不删除既有历史 `output/` 或 `artifacts/`。
|
||||
- 启动独立只读 reviewer,检查状态语义、部署口径、历史证据边界和是否误报完成。
|
||||
|
||||
## Validation Matrix
|
||||
|
||||
| 条件 | 预期 |
|
||||
| --- | --- |
|
||||
| 业务编辑模板任务 | 已完成证据完整并归档 |
|
||||
| 页面操作区任务验证通过 | PRD 回填、注明未部署并归档 |
|
||||
| 页面操作区任务验证失败 | 不归档,保留 finding 并另建修复 task |
|
||||
| 旧 7 天任务 | 明确未完成和被替代后归档,不补造证据 |
|
||||
| 现行手册入口 | Trellis-first,不要求新任务读取最新 Issue CSV |
|
||||
| 部署状态 | 最后公网基线与 7 月本地未部署基线明确分离 |
|
||||
| 生成物 | 不进入 Git,不破坏既有历史证据目录 |
|
||||
|
||||
## Rollback
|
||||
|
||||
- 文档和任务正文修改可从本任务提交父提交恢复。
|
||||
- 归档移动可通过反向移动任务目录并恢复 `task.json` 原状态撤销,不涉及业务数据。
|
||||
- 本任务不产生生产配置、数据库或公网回滚需求。
|
||||
|
||||
## Follow-up Audit Contract
|
||||
|
||||
收口完成后创建独立多维系统审查 task。审查至少覆盖功能与业务闭环、页面信息架构、视觉/交互设计、PC/移动/企微一致性、权限/状态机/数据、安全/依赖、测试/性能/运维和文档培训;finding 统一记录严重级别、证据、复现、影响、建议和是否需要用户决策,审查阶段默认不改业务代码。
|
||||
@@ -0,0 +1,4 @@
|
||||
{"file":".trellis/spec/hyb-oa/project-governance.md","reason":"约束 Trellis-first、任务生命周期和中断任务归档语义。"}
|
||||
{"file":".trellis/spec/hyb-oa/docs-and-evidence.md","reason":"约束现行事实源、历史证据和文档登记边界。"}
|
||||
{"file":".trellis/spec/hyb-oa/deployment-trialrun.md","reason":"约束本地验证、公网部署与连续试运行状态口径。"}
|
||||
{"file":".trellis/tasks/07-16-legacy-task-runbook-closeout/research/closeout-status-audit.md","reason":"提供遗留任务状态、部署基线和手册漂移的审计证据。"}
|
||||
@@ -0,0 +1,145 @@
|
||||
# 收口遗留任务与运行手册状态
|
||||
|
||||
## Goal
|
||||
|
||||
在开展全系统功能、页面与设计审查前,先让 Trellis task、现行运行手册、部署事实和真实试运行状态一致,清除“已经完成但未归档”“已经实现但未验收”“历史运行中断却仍显示进行中”等状态债,避免后续审查基于错误口径。
|
||||
|
||||
## Scope
|
||||
|
||||
- 收口三个遗留 Trellis task 的真实生命周期和验证状态。
|
||||
- 更新现有文档索引、状态矩阵、试运行手册、发布准备清单和真机公网清单中的当前口径。
|
||||
- 只运行本地、无凭据验证;不修改业务实现,不执行公网或生产动作。
|
||||
- 为后续独立多维系统审查建立干净、可信的事实基线。
|
||||
|
||||
## What I Already Know
|
||||
|
||||
- 当前工作树干净,Trellis governance 与流程基线通过。
|
||||
- `05-31-business-edit-template-remove-ledger-tools-wave1` 的功能、验证、部署和公网复检均已有证据,只缺任务归档。
|
||||
- `05-31-unified-page-header-actions` 已有实现提交,相关实现文件后续未再改变,但 PRD 的 7 项验收均未回填,也没有正式验证结果。
|
||||
- `05-26-oa-seven-day-trial-live-ops` 只留下 Day 1–Day 4 证据,缺 Day 5–Day 7、现场人工业务闭环与 Day 7 Go/No-Go;旧 readiness 还曾错误地把部分 `SKIP` 汇总成 clean `PASS`。
|
||||
- 最后确认的公网部署基线是 `df26922`;当前 `main` 另有 14 个提交,其中包含 7 月本地 P0 可信度修复,尚无部署证据。
|
||||
- 现行试运行/发布手册仍混有 5 月旧状态和 Issue-first 入口,尚未吸收 Trellis-first 与“本地已修、尚未部署”事实。
|
||||
- 用户已确认:先完成收口,再单独从功能、页面、设计等多个角度审查已经完成的系统。
|
||||
|
||||
## Confirmed Scope
|
||||
|
||||
- 本任务只做状态和事实源治理,不修改业务代码、接口、数据库、权限或页面表现。
|
||||
- 用户于 2026-07-16 选择方案 1:旧 7 天任务明确记录“历史运行中断、原目标未完成、后续由新连续试运行替代”后归档。
|
||||
- 用户于 2026-07-16 明确批准本 PRD 与 `design.md` 的实施方案,可以进入本地收口;外部动作仍未授权。
|
||||
- 归档只表示任务生命周期关闭,不能表述为旧 7 天试运行目标已经实现。
|
||||
- 页面操作区任务只做当前代码基线验收;如发现失败或视觉问题,记录 finding 并另建修复 task,不在本任务顺手扩大范围。
|
||||
- 多维系统审查是本任务完成后的独立 Trellis task,其审查结论先分级,不自动实施所有修复。
|
||||
|
||||
## Open Questions
|
||||
|
||||
- 无。
|
||||
|
||||
## Requirements (Evolving)
|
||||
|
||||
- 复核并归档已经完整完成的业务编辑模板任务。
|
||||
- 对页面右上角操作区任务运行当前基线验证:前端 typecheck/build、聚焦 Playwright、关键页面视觉/结构复核、task/governance/diff 门禁。
|
||||
- 验证通过后回填该任务 PRD、提交引用和验证结果并归档;失败时只记录 finding,不虚报完成。
|
||||
- 对旧 7 天试运行保存真实事实:仅 Day 1–Day 4、目标未完成、不得补造 Day 5–Day 7 或 Go/No-Go。
|
||||
- 更新现有文档入口、状态矩阵和运行手册,使其采用 Trellis-first,并明确 7 月 P0 基线尚未 push/部署、正式启用仍需新连续试运行。
|
||||
- 不新建重复业务手册;只更新现有事实源和当前 Trellis task。
|
||||
- 收口完成后输出下一阶段多维系统审查的建议边界,但不在本任务执行审查或修复。
|
||||
|
||||
## Acceptance Criteria (Evolving)
|
||||
|
||||
- [x] 三个遗留 task 均有真实、可解释的最终状态,不补造历史证据。
|
||||
- [x] 已完成的业务编辑模板任务已归档。
|
||||
- [x] 页面操作区任务的 7 项验收有当前验证证据;通过则归档,失败则保留明确 finding。
|
||||
- [x] 旧 7 天任务明确记录中断、未完成和替代路线,不再被误读为仍可续跑的连续试运行。
|
||||
- [x] 当前文档入口、状态矩阵与试运行/发布手册不再把 Issue CSV 作为新任务执行入口。
|
||||
- [x] 文档明确区分本地 P0 基线、最后公网部署基线和未来新 7 天试运行。
|
||||
- [x] Trellis task validate、governance、文档审计与 `git diff --check` 通过;可解释的 registry/stale-term warning 单独登记。
|
||||
- [x] 工作树只包含本任务批准的 task、状态和现有文档更新,不含业务代码修改或验证生成物。
|
||||
|
||||
## Test Plan
|
||||
|
||||
```bash
|
||||
cd client && npm run typecheck
|
||||
cd client && npm run build
|
||||
cd client && E2E_BASE_URL=http://127.0.0.1:5173 npx playwright test tests/e2e/r103-cross-page-ui-consistency.spec.ts --workers=1 --reporter=list
|
||||
python3 ./.trellis/scripts/task.py validate .trellis/tasks/archive/2026-07/05-31-business-edit-template-remove-ledger-tools-wave1
|
||||
python3 ./.trellis/scripts/task.py validate 05-31-unified-page-header-actions
|
||||
python3 ./.trellis/scripts/task.py validate .trellis/tasks/archive/2026-07/05-26-oa-seven-day-trial-live-ops
|
||||
python3 ./.trellis/scripts/task.py validate 07-16-legacy-task-runbook-closeout
|
||||
node scripts/qa/check-process-contract.mjs --baseline --json
|
||||
node scripts/qa/audit-docs.mjs --check-registry
|
||||
node scripts/qa/audit-docs.mjs
|
||||
node scripts/qa/check-trellis-governance.mjs
|
||||
git diff --check
|
||||
```
|
||||
|
||||
- 聚焦 Playwright 只使用本地 mock,不访问公网或真实账号。
|
||||
- 若测试需要启动本地 Vite,由验证会话启动并在结束后关闭;不得连接生产数据库。
|
||||
- 视觉证据先复用/复核既有非敏感截图;如生成新文件,只处理本轮明确生成的路径,不删除既有 `output/` 或 `artifacts/`。
|
||||
|
||||
## Definition of Done
|
||||
|
||||
- 状态、提交、部署、试运行和文档事实相互一致。
|
||||
- 不把归档动作误写成业务目标完成,不把本地验证误写成公网已部署。
|
||||
- 所有修改形成中文本地提交计划并另行取得提交确认。
|
||||
- 不 push、不部署、不运行带凭据公网测试、不写真实数据。
|
||||
|
||||
## Verification Results
|
||||
|
||||
- 业务编辑模板任务:`task.py validate`、实现/部署提交复核和旧入口静态搜索通过,已按正常完成语义归档到 2026-07。
|
||||
- 旧 7 天试运行:确认只有 Day 1–Day 4,已写明原目标未完成、旧 runner 假绿风险和未来替代路线后归档;未补造任何日期或人工证据。
|
||||
- 页面操作区:相关实现自 `dcf34d7` 后未漂移;typecheck/build 通过,Vite 转换 2381 个模块,PWA 102 个预缓存条目;Vite dev 模式聚焦 Playwright 3 passed。
|
||||
- production preview 首跑 Playwright 的 1 个失败来自 PWA Service Worker 绕过 `page.route` mock 并回到登录页;切回该测试原本适用的 Vite dev 模式后 3/3 通过,因此归类为验证环境问题。
|
||||
- 页面操作区只读复核登记 5 类后续 finding:付款、合同、票据权限显隐,资产旧测试交互,以及七页面视觉/合同覆盖不足;该任务继续 `in_progress`,未虚报完成。
|
||||
- `docs/` 五份现行入口/手册已改为 Trellis-first,并区分 `df26922` 历史部署来源、7 月本地未部署基线、旧试运行中断和未来 Day 1 重启。
|
||||
- 最终 reviewer 指出的 3 组治理阻断已清除:现行手册不再要求创建修复/数据库治理 Issue,状态矩阵的 IDX/REG、OAOPS1/OALAUNCH1 与 2026-05 历史门禁语义已校正,当前 task 的两个归档任务引用和 validate 命令均使用 `archive/2026-07` 实际路径。
|
||||
- 当前 task 的 `implement.jsonl` / `check.jsonl` 已各登记 4 条真实 spec/research 上下文;四个相关 task validate 全部通过。
|
||||
- process baseline 与 Trellis governance 通过,无 warning/error;文档 registry 无 error,未登记文档由 24 降为 22。
|
||||
- 当前事实源敏感内容门禁扫描 30 个文件、0 finding;新增登记手册暴露出的一条历史个人工作区绝对路径已改为脱敏用户级引用。
|
||||
- 稳定治理经验已写入 `project-governance.md`:中断/被替代任务的 `completed` 只表示生命周期关闭,归档前必须记录未完成事实、缺口和替代路线,未满足验收不得勾选。
|
||||
- 文档 full audit 保留 19 个非阻断启发式 warning:22 个未登记文件汇总、5 份文档的历史/当前状态词复核,以及 13 个 QA 脚本敏感字面量风险提示;本轮不为清零数字批量改写历史证据或无关脚本。
|
||||
- 最终复跑 `git diff --check` 通过;上述流程、治理、文档和敏感内容门禁均为 2026-07-16 当前工作树结果。
|
||||
- 本轮生成的 `client/dist`、`client/test-results` 和 Playwright report 已清理;`output/playwright/r103` 的三份历史截图已在审查后原样恢复并核对哈希。
|
||||
- 未 fetch、push、部署、运行带凭据公网测试或执行任何业务/数据库/企业微信写入。
|
||||
|
||||
## Feasible Approaches
|
||||
|
||||
### 方案 1:显式关闭历史任务并建立新起点(推荐)
|
||||
|
||||
- 把旧 7 天任务写明为“历史运行中断、原目标未完成、后续由新连续试运行替代”,然后归档。
|
||||
- 优点:活动任务列表与真实状态一致,后续新任务从 Day 1 开始,证据链清晰。
|
||||
- 代价:Trellis 的归档状态是生命周期 `completed`,必须在 PRD/task notes 中明确这不代表原目标达成。
|
||||
|
||||
### 方案 2:保留旧任务为进行中
|
||||
|
||||
- 更新说明但不归档,等新试运行真正启动后再处理。
|
||||
- 优点:不会把归档状态误读为目标完成。
|
||||
- 缺点:继续保留已经过期的活动任务和状态债,后续审查仍需特殊解释。
|
||||
|
||||
### 方案 3:沿用旧任务续跑 Day 5–Day 7
|
||||
|
||||
- 不推荐。日期已经中断,且旧 runner 结论存在可信度缺陷,无法形成连续 7 天证据。
|
||||
|
||||
## Decision (ADR-lite)
|
||||
|
||||
**Context**:旧试运行已中断一个多月,缺少连续天数、人工闭环和 Go/No-Go;继续显示 `in_progress` 会污染后续系统审查,直接标为成功又会伪造证据。
|
||||
|
||||
**Decision**:采用方案 1。先在旧任务正文和 notes 中写明未完成事实与替代路线,再执行归档。Trellis 的 `completed` 只解释为生命周期关闭,不能解释为原试运行目标达成。
|
||||
|
||||
**Consequences**:活动任务列表恢复真实;未来正式试运行必须新建任务并从 Day 1 连续执行。代价是阅读归档元数据时必须结合 PRD 的 closeout 结论,不能只看状态字段。
|
||||
|
||||
## Out of Scope
|
||||
|
||||
- 业务功能、页面布局、交互或设计修复。
|
||||
- 新的连续 7 天真实试运行执行。
|
||||
- push、部署、公网检查、真实 OCR、真实业务写入、恢复演练或生产配置变更。
|
||||
- 删除历史 Issue CSV、归档 task、迁移或运行证据。
|
||||
- PWA、Postman、冻结模块、ERP 等第二批清理。
|
||||
|
||||
## Technical Notes
|
||||
|
||||
- 收口证据见 `research/closeout-status-audit.md`。
|
||||
- 项目治理:`.trellis/spec/hyb-oa/project-governance.md`。
|
||||
- 文档与证据:`.trellis/spec/hyb-oa/docs-and-evidence.md`。
|
||||
- 部署边界:`.trellis/spec/hyb-oa/deployment-trialrun.md`。
|
||||
- 当前现行入口:`docs/文档索引.md`、`docs/文档事实源状态矩阵.md`、`docs/试运行与自动化验证手册.md`。
|
||||
- 页面操作区后续修复必须在独立 task 中处理,不能在本收口任务修改业务代码。
|
||||
@@ -0,0 +1,49 @@
|
||||
# 遗留任务与运行手册状态审计
|
||||
|
||||
## Summary
|
||||
|
||||
当前主要问题不是缺少业务功能,而是任务生命周期、运行手册和部署事实未同步。三个活跃任务分别属于“已完成待归档”“已实现待验收”“历史运行中断”;7 月可信度修复只在本地,当前公网仍只能按最后有证据的 5 月部署基线解释。
|
||||
|
||||
## Active Task Classification
|
||||
|
||||
### 业务编辑模板与首批台账工具移除
|
||||
|
||||
- PRD 验收项全部完成。
|
||||
- 实现提交为 `1428cc4`,部署证据提交为 `46fa609`。
|
||||
- typecheck/build、静态检查、两组 Playwright、Trellis 门禁和公网定向复检均有记录。
|
||||
- 当前只缺生命周期归档,不需要重新开发或部署。
|
||||
|
||||
### 统一页面右上角操作区
|
||||
|
||||
- 实现提交为 `dcf34d7`,覆盖采购、合同、项目、资产、付款、应付账款、票据和共享操作组件。
|
||||
- 相关实现文件在该提交后没有继续改变。
|
||||
- PRD 7 项验收仍未勾选,也没有验证结果段;任务明确未包含公网部署。
|
||||
- 2026-07-16 当前基线 typecheck/build 通过,Vite dev 模式的 `r103-cross-page-ui-consistency` 为 3 passed。
|
||||
- 静态复核发现付款批次、合同和票据写动作存在权限显隐缺口,资产两处测试仍按旧直接按钮交互,且缺项目/资产列表视觉证据和七页面统一合同断言。
|
||||
- 因此只回填已证实的 6 项验收,保留视觉覆盖项未完成;任务继续 `in_progress`,后续另建修复 task。
|
||||
|
||||
### OA 7 天真实试运行
|
||||
|
||||
- 预计时间为 2026-05-26 至 2026-06-01,实际只有 Day 1–Day 4 证据。
|
||||
- 缺 Day 5–Day 7、人工真实业务闭环和最终 Go/No-Go。
|
||||
- 7 月可信度审计确认旧 readiness 会把部分 `SKIP` 聚合成 clean `PASS`,历史零 finding 不能用来补证最终启用。
|
||||
- 不可续写或补造历史日期;后续若需要正式启用证据,应在部署当前可信基线后新建连续试运行任务。
|
||||
|
||||
## Deployment And Documentation Facts
|
||||
|
||||
- 最后有证据的公网部署基线为 `df26922`。
|
||||
- 当前 `main` 比该基线多 14 个提交、涉及前端页面、Node/依赖、readiness、seed、防敏感和部署来源追溯;7 月任务明确未部署。
|
||||
- 当前本地 remote-tracking 视图显示 `main` 领先 `origin/main` 74 个提交;实际远端状态需在获批发布前刷新确认。
|
||||
- 文档审计无 error,但存在 24 个未登记文档及旧状态词 warning。
|
||||
- 当前试运行手册、发布准备清单和真机清单仍有 5 月旧状态或 Issue-first 入口,与 Trellis-first 和当前部署事实漂移。
|
||||
|
||||
## Safety Boundaries
|
||||
|
||||
- 归档历史中断任务前必须在任务正文和 notes 中明确“生命周期关闭不代表原目标完成”。
|
||||
- 收口任务不修改业务代码;验证失败只登记 finding。
|
||||
- 不执行 push、部署、带凭据公网检查、真实 OCR、真实数据写入、企业微信写入或恢复演练。
|
||||
- 历史 Issue CSV、归档任务、迁移和审计证据保持只读。
|
||||
|
||||
## Follow-up Audit Boundary
|
||||
|
||||
收口完成后另建多维系统审查任务,至少覆盖功能完整性与业务闭环、权限/状态机/数据一致性、页面信息架构、PC/移动/企微体验、视觉与交互设计、可访问性与响应式、测试/安全/性能/运维、文档与培训。审查阶段先输出 P0/P1/P2 finding、证据、复现方式和修复建议,不自动把全部 finding 混入一批实施。
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"id": "legacy-task-runbook-closeout",
|
||||
"name": "legacy-task-runbook-closeout",
|
||||
"title": "收口遗留任务与运行手册状态",
|
||||
"description": "在多维系统审查前,收口已完成、待验收和历史中断的遗留任务,并同步现行运行手册与部署事实。",
|
||||
"status": "in_progress",
|
||||
"dev_type": null,
|
||||
"scope": "governance/docs",
|
||||
"package": null,
|
||||
"priority": "P1",
|
||||
"creator": "shunli",
|
||||
"assignee": "shunli",
|
||||
"createdAt": "2026-07-16",
|
||||
"completedAt": null,
|
||||
"branch": null,
|
||||
"base_branch": "main",
|
||||
"worktree_path": null,
|
||||
"commit": null,
|
||||
"pr_url": null,
|
||||
"subtasks": [],
|
||||
"children": [],
|
||||
"parent": null,
|
||||
"relatedFiles": [
|
||||
".trellis/tasks/archive/2026-07/05-26-oa-seven-day-trial-live-ops",
|
||||
".trellis/tasks/archive/2026-07/05-31-business-edit-template-remove-ledger-tools-wave1",
|
||||
".trellis/tasks/05-31-unified-page-header-actions",
|
||||
".trellis/spec/hyb-oa/project-governance.md",
|
||||
"docs/文档索引.md",
|
||||
"docs/文档事实源状态矩阵.md",
|
||||
"docs/试运行与自动化验证手册.md",
|
||||
"docs/trialrun/发布试运行准备清单.md",
|
||||
"docs/trialrun/真机公网测试清单.md"
|
||||
],
|
||||
"notes": "用户批准方案 1;已归档正常完成的业务编辑任务和明确未完成的旧 7 天任务,页面操作区保留权限显隐/测试覆盖 finding,五份现行手册已同步 Trellis-first 与当前部署事实。未 push、部署或写真实数据。",
|
||||
"meta": {}
|
||||
}
|
||||
+27
-17
@@ -1,24 +1,25 @@
|
||||
# 发布试运行准备清单
|
||||
|
||||
**文档状态**:当前操作手册,用于首轮主线发布候选、live smoke 和小范围试运行准备。
|
||||
**适用范围**:`hyb-oa` MVP 首轮主线 A1-A8 之后,部署前和部署后试运行前。
|
||||
**文档状态**:当前操作手册,用于发布候选、live smoke 和连续试运行准备。
|
||||
**适用范围**:`hyb-oa` 当前发布候选的部署前、部署后和连续试运行前。
|
||||
|
||||
**当前状态(2026-05-14 / R7E)**:本清单保留 A1-A8、R5、R6 和 MIF7TD 的历史证据;当前事实已经推进到 R7E,`5491e92` 真机反馈修复已部署到试运行环境。R7E 浏览器业务线已通过,企业微信消息 deeplink、移动真机反馈和最终验收结论仍未关闭。
|
||||
**当前状态(2026-07-16)**:最后有部署和公网复检证据的来源基线为 `df26922`;7 月 P0 可信度修复只在本地 `main`,尚未 push、部署或完成公网复检。旧 7 天试运行只有 Day 1–Day 4 后中断,原目标未完成。新连续试运行必须等当前可信基线部署并完成公网来源/功能复核后,新建 Trellis task,从 Day 1 启动。
|
||||
|
||||
本文不替代 PRD、模块规约或 Issue CSV;它只回答“当前是否可以从本地可回归进入公网/企业微信/真实 OCR 验收”。
|
||||
本文不替代当前 Trellis task、PRD、模块规约或测试规约;旧 Issue CSV 只作历史审计。它只回答“当前是否可以从本地可回归进入公网/企业微信/真实 OCR 验收”。
|
||||
|
||||
## 1. 当前结论
|
||||
|
||||
- 首轮本地 release candidate:`537e608 A8 完成首轮主线总回归门禁`。
|
||||
- 当前公网 R5 运行代码:`b1ae41f W1-W3 实现企业微信个人应用消息通知`。
|
||||
- 2026-05 首轮本地 release candidate:`537e608 A8 完成首轮主线总回归门禁`。
|
||||
- 最后确认公网部署来源:`df26922`;未做当前公网只读检查时,不据此断言服务器此刻仍运行该提交。
|
||||
- 当前本地候选:含 7 月 P0 可信度修复的 `main`;发布前必须重跑 release gate,并核对 source/build SHA。
|
||||
- 主开发合同:`issues/2026-05-09_20-57-19-mvp-mainline-dev-kickoff.csv`,A1-A8 已全部 `DONE/DONE/DONE`。
|
||||
- 剩余主线批次合同:`issues/2026-05-10_10-48-03-mvp-remaining-mainline-closeout.csv`,B1-B5 已全部 `DONE/DONE/DONE`。
|
||||
- 当前状态:本地门禁已闭环;R4 部署预检、D3 受控同步、D4 只读复检、R5 公网 live smoke、真实 PDF OCR、PC/自动化审批链、企业微信真机入口、个人应用消息和 deeplink 均已完成。
|
||||
- 当前最大缺口:MIF7-7 已收口;若要启动 R7,必须另建 R7E 执行合同,固定试运行名单、时间窗口、回滚联系人和问题登记规则后再开始。
|
||||
- 历史状态:R4 部署预检、D3 受控同步、D4 只读复检、R5 公网 live smoke、真实 PDF OCR、PC/自动化审批链、企业微信真机入口、个人应用消息和 deeplink 均形成过证据。
|
||||
- 当前最大缺口:7 月本地可信基线尚未发布;旧 7 天任务中断。未来启动前必须新建 Trellis task,固定试运行名单、时间窗口、回滚联系人、问题负责人和暂停条件。
|
||||
|
||||
本清单中的 A1-A8/R5/R6/R7E 证据保留当时路线:OA 是首轮主业务系统和正式审批中心,企业微信只做入口、身份、通知、deeplink 和打卡原始采集边界。当前最新产品口径已由 WFOC/DBWFOC/WFDG/WDRG 覆盖:HR/考勤员工日常审批优先复用企业微信,OA 做按域镜像、人工接管、恢复回写、财务闭环和审计中台;财务、报销、采购、合同、项目、付款批次、AP、代账交接和高敏附件仍由 OA 主办。后续正式迁移前先读 [企微优先开发路线图](../企微优先开发路线图.md),再做 `WECOM-CAPABILITY-POC-V1`,不直接大规模开发。
|
||||
|
||||
## 2. 已完成证据
|
||||
## 2. 2026-05 历史已完成证据
|
||||
|
||||
| 范围 | 证据 | 结论 |
|
||||
| --- | --- | --- |
|
||||
@@ -76,7 +77,7 @@ node scripts/qa/check-live-smoke-env.mjs
|
||||
| 财务 | 报销复核、付款、导出、发票相关页面 | 管理员配置、员工敏感档案 | 财务能力可用,不越权到系统管理 |
|
||||
| 管理员 | 系统配置、权限、审计、企业微信配置 | 真实凭据和密钥明文 | 可配置系统,但接口不得返回 secret 明文 |
|
||||
|
||||
如发现服务端权限缺口,必须停止部署并拆独立修复 Issue;不得用前端隐藏临时绕过。
|
||||
如发现服务端权限缺口,必须停止部署并拆独立修复 Trellis task;不得用前端隐藏临时绕过。
|
||||
|
||||
R3 审计执行记录见 [`权限直连审计记录.md`](权限直连审计记录.md)。2026-05-10 本地自动化直连审计已通过,未发现权限泄漏;R4/D3/D4 旧部署预检长记录已在 DCL7 中从当前树移除,如需审计可从 `5da05eb` 的 git 历史恢复查看。
|
||||
|
||||
@@ -88,7 +89,7 @@ R3 审计执行记录见 [`权限直连审计记录.md`](权限直连审计记
|
||||
|
||||
- 当前生产 commit、部署目录和本地 release candidate 是否一致。
|
||||
- 生产 `.env` 必需项是否完整;检查时不得打印 secret。
|
||||
- 数据库迁移状态是否干净;若存在 drift,先备份并拆数据库治理 Issue。
|
||||
- 数据库迁移状态是否干净;若存在 drift,先备份并拆独立数据库治理 Trellis task。
|
||||
- 对象存储、附件目录、OCR provider、IM provider、企业微信回调域名是否与试运行目标一致。
|
||||
- Caddy/systemd 或既有部署脚本状态是否健康。
|
||||
- `/ready`、前端资源、企业微信 config 探活是否正常。
|
||||
@@ -128,7 +129,7 @@ LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readine
|
||||
2026-05-10 R5 credentialed 复查:
|
||||
|
||||
- 执行合同:`issues/2026-05-10_16-39-17-r5-credentialed-live-smoke.csv`。
|
||||
- `/home/shunli/.hyb-oa/live-smoke.env` 不存在,未执行 `source`。
|
||||
- 用户级 `~/.hyb-oa/live-smoke.env` 不存在,未执行 `source`。
|
||||
- `node scripts/qa/check-live-smoke-env.mjs`:`publicReady=true`,`wecom=ready`,`liveSmokeReady=false`,`liveOcrReady=false`。
|
||||
- `node scripts/qa/check-live-smoke-env.mjs --strict`:仍失败,缺公网 smoke 账号和 OCR live 文件或目录。
|
||||
- 结论:H3 公网自动化业务 smoke、H4 企业微信真机验收和 R6 小范围试运行仍不能开始。
|
||||
@@ -172,7 +173,16 @@ LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readine
|
||||
- `liveOcrReady=false` 时只能记录真实 OCR 条件缺失。
|
||||
- 手机企业微信入口必须用真实企业微信客户端补测;普通浏览器 UA 不等于真机通过。
|
||||
|
||||
## 7. 小范围试运行
|
||||
## 7. 连续试运行
|
||||
|
||||
当前规则:
|
||||
|
||||
- 旧 7 天任务不能从 Day 5 续跑,也不能补造缺失日期、人工闭环或 Go/No-Go。
|
||||
- 先部署并复核当前可信基线,再创建新的连续试运行 Trellis task。
|
||||
- 新任务必须固定参与人、连续窗口、回滚联系人、问题负责人、暂停条件和 Day 7 决策人,并从新的 Day 1 开始。
|
||||
- 每日 finding 回填当前 task;跨域或阻断问题另建最小修复 task,不在现场扩大范围。
|
||||
|
||||
以下为 2026-05 历史小范围试运行准备记录:
|
||||
|
||||
R5 已完成。R6 准备合同已创建:`issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv`。R6-2 已固定名单、窗口、回滚联系人和问题登记负责人;R6-3 自动检查已通过,且 WZ6 已创建真实财务候选账号 `wangzhiling`,只读核验为 `active`、角色 `employee,finance`。主 R6 仍保持 `TODO/TODO/TODO`,因为 R6-4 到 R6-6 的真实小范围流程、每日收口和结论尚未执行;不能直接把 R5/R6-3 通过解释为“自动进入正式试运行完成”。
|
||||
|
||||
@@ -185,15 +195,15 @@ R5 已完成。R6 准备合同已创建:`issues/2026-05-11_10-23-41-r6-small-t
|
||||
试运行规则:
|
||||
|
||||
- 每日固定收集问题,按阻断、重要、体验、后续需求分级。
|
||||
- 问题先登记到新 Issue CSV,不在试运行现场扩大范围。
|
||||
- 问题先登记到当前 Trellis task;跨域或阻断问题另建修复 task,不在试运行现场扩大范围。
|
||||
- P2 的预算、ERP、AI、完整差旅、复杂 BPM 继续不进入首轮试运行。
|
||||
- 出现权限泄漏、付款状态错乱、真实 OCR 大面积失败、企业微信入口无法进入时,应暂停试运行并回滚或修复。
|
||||
|
||||
## 8. QAOPS8 Go/No-Go 清单
|
||||
## 8. 2026-05 QAOPS8 历史 Go/No-Go 清单
|
||||
|
||||
本节是 `QAOPS8-17` 的上线和扩大试运行门禁。它只给当前时点结论,不替代 R7E 真实人工验收。
|
||||
本节是 `QAOPS8-17` 当时的上线和扩大试运行门禁,只保留历史结论,不替代未来新连续试运行的人工验收。
|
||||
|
||||
当前结论:`No-Go/Pause`。
|
||||
当时结论:`No-Go/Pause`。
|
||||
|
||||
| 门禁 | 当前状态 | 结论 |
|
||||
| --- | --- | --- |
|
||||
|
||||
+14
-3
@@ -2,7 +2,7 @@
|
||||
|
||||
**文档状态**:当前操作手册,用于真实手机、企业微信和移动浏览器人工验收。
|
||||
|
||||
**当前状态(2026-05-13 / MIF7TD)**:R6 已通过;`ME6-3` 代表性企业微信真机门禁已由 iPhone 12、iPhone 14、Redmi K60 企业微信主流程反馈关闭。MIF7/MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检。R7 未真实启动;R7 草案、OPS7 Runbook 和 DOC7 用户材料不代表已启动或已上线。
|
||||
**当前状态(2026-07-16)**:最后有部署和公网复检证据的来源基线为 `df26922`;7 月 P0 可信度修复只在本地 `main`,尚未 push、部署或完成公网复检。旧 7 天试运行只有 Day 1–Day 4 后中断。新连续试运行必须等当前可信基线部署并复核后,新建 Trellis task,从 Day 1 启动。下文 2026-05 的设备、账号和通过结果只对当时部署来源有效。
|
||||
|
||||
适用范围:使用真实手机访问 `https://oa.hyinda.com`,重点验证企业微信工作台、手机浏览器、PDF 发票上传、真实 OCR 状态反馈和移动核心流程。
|
||||
|
||||
@@ -10,7 +10,12 @@
|
||||
|
||||
- 测试日期:
|
||||
- 测试人:
|
||||
- 当前 Trellis task:
|
||||
- 公网地址:`https://oa.hyinda.com`
|
||||
- 预期部署来源 commit:
|
||||
- `/ready` observed build SHA:
|
||||
- 公网 bundle build marker:
|
||||
- 是否确认覆盖当前候选基线:是 / 否 / 阻塞
|
||||
- 验收状态:`TODO` / `PASS` / `FAIL` / `BLOCKED` / `PAUSED`
|
||||
- 账号角色:专用测试员工 / 测试主管 / 测试负责人 / 测试财务 / 测试财务主管 / 测试管理员
|
||||
- 设备:iPhone / Android
|
||||
@@ -20,6 +25,8 @@
|
||||
- 网络:公司 Wi-Fi / 4G / 5G / 其他
|
||||
- 测试发票样本:PDF
|
||||
|
||||
执行前置:必须核对实际部署来源。若公网仍只能证明 `df26922`,本轮结论只能覆盖该历史部署基线,不能宣称已验证 7 月 P0 修复;新连续试运行不得借用旧真机结论补作新的 Day 1–Day 7 证据。
|
||||
|
||||
## 企业微信入口
|
||||
|
||||
- 从企业微信工作台点击海音达工作台应用。
|
||||
@@ -81,7 +88,9 @@
|
||||
- 企业微信真机验收只覆盖工作台入口、绑定/免登录、移动布局、待办、详情、PDF 上传入口和通知 deeplink;当前 `oa_smoke_01 -> SMOKE002` 与 `oa_smoke_02 -> SMOKE101` 足够覆盖“提交人 + 审批人”的核心移动体验。
|
||||
- 负责人、财务、财务主管深层链路需改用当前 active 角色账号或新建带企微绑定的测试账号;旧 `SMOKE201/301/302` 只保留为 2026-05-10 自动化历史证据,不再作为当前验收入口。
|
||||
|
||||
### PC/自动化审批链验收矩阵
|
||||
以下账号、角色和结果为 2026-05 历史基线。新一轮必须按当前 Trellis task 重新核验账号 active、角色、绑定和可见范围,不直接复用“当前账号”结论。
|
||||
|
||||
### 2026-05 PC/自动化审批链历史验收矩阵
|
||||
|
||||
| 验收项 | 验收方式 | 账号角色 | 提交或处理 | 期望结果 | 结果 | 证据位置 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
@@ -92,7 +101,7 @@
|
||||
| 系统管理员无业务审批权 | PC/自动化 | 当前 active admin | 尝试审批测试单据 | 不允许仅凭 `admin` 审批 | 需按 WOUA-FIX 后账号重跑 | 后续新证据 |
|
||||
| 财务复核与付款/导出 | PC/自动化 | 当前 active 财务角色账号 | 处理已批准测试单据 | 按财务与财务主管权限处理 | 需按 WOUA-FIX 后账号重跑 | 后续新证据 |
|
||||
|
||||
### 企业微信/移动体验验收矩阵
|
||||
### 2026-05 企业微信/移动体验历史验收矩阵
|
||||
|
||||
| 验收项 | 企业微信测试成员 | OA 账号 | 期望结果 | 当前结果 | 截图或录屏位置 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
@@ -135,6 +144,7 @@
|
||||
- 记录失败时间、账号角色、设备、企业微信版本、页面 URL、操作步骤。
|
||||
- 对 OCR 问题记录发票文件名、文件类型、上传时间、终态、耗时。
|
||||
- 对企业微信入口问题记录是否从工作台进入、是否已绑定、回跳 URL。
|
||||
- 记录预期来源 commit、`/ready` observed build SHA 和公网 bundle marker;通过结论只对实际核对的来源基线有效。
|
||||
|
||||
## 通过标准
|
||||
|
||||
@@ -143,3 +153,4 @@
|
||||
- 报销、票据、审批、我的、通知主流程可完成。
|
||||
- PDF 发票上传和真实 OCR 有明确状态变化和终态反馈。
|
||||
- 已知问题文案和原始码值不再出现。
|
||||
- 来源 commit、`/ready` build SHA 和公网 bundle marker 一致;缺失或不一致时不得给出当前候选通过结论。
|
||||
|
||||
+27
-14
文件差异因一行或多行过长而隐藏
+15
-8
@@ -2,9 +2,9 @@
|
||||
|
||||
**文档状态**:当前唯一文档入口。
|
||||
**分类**:入口索引。
|
||||
**适用时间**:DCL7 之后。
|
||||
**关联 Issue**:`GOV8`。
|
||||
**最近审计**:2026-05-18。
|
||||
**适用时间**:TRELLIS2 及 2026-07-16 状态收口之后。
|
||||
**关联治理**:当前 Trellis task;`GOV8` 只作历史治理来源。
|
||||
**最近审计**:2026-07-16。
|
||||
**不得误读**:本文只指示当前事实源和读取顺序;历史 Issue CSV 只能用于追溯,不直接生成新开发任务。
|
||||
**治理口径**:中文优先,物理精简,优先复用已有文档。已确认不用的历史文档不放 `docs/archive/`,直接从当前工作树移除;需要时从 git 历史恢复。
|
||||
|
||||
@@ -18,7 +18,14 @@
|
||||
- 新需求或试运行反馈:优先创建或更新当前同类型 Trellis task;只有跨业务域、跨风险等级或阶段收口后,才新建下一版 task。
|
||||
- 新增说明、方案、审计或证据:优先补充现有事实源、模块规约、操作手册、证据文档或当前 Trellis task;只有现有文档无法承载、需要独立审计证据或用户明确要求时,才新建文档并登记本索引和事实源矩阵。
|
||||
|
||||
## 最近事实源链
|
||||
## 当前可信基线(2026-07-16)
|
||||
|
||||
- 最后有部署和公网复检证据的来源基线为 `df26922`;这是一条历史部署来源证据,未做当前公网只读检查时,不据此断言服务器此刻仍运行该提交。
|
||||
- 当前本地 `main` 包含 7 月 P0 可信度修复和后续本地收口,尚未 push、部署或完成公网复检,不能视为线上已生效。
|
||||
- 旧 OAOPS1 7 天真实试运行只有 Day 1–Day 4,后续中断,缺 Day 5–Day 7、现场人工业务闭环和 Day 7 Go/No-Go;归档只表示生命周期关闭,不代表目标完成。
|
||||
- 下一轮真实连续试运行必须等待当前可信基线部署并完成公网复核,再新建 Trellis task,从新的 Day 1 连续启动。
|
||||
|
||||
## 历史事实源链(截至 2026-05)
|
||||
|
||||
R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8 -> DG9 -> R7E -> FBA -> QAOPS9/P2D -> P2-ORG -> P2-FIN-DECISION -> P2-FIN-V1 -> P2-OCR-SAMPLE -> P2Q -> P2AUTO -> P2AF -> P2-FIN-LIVE-DECISION -> P2-FIN-LIVE -> PRELAUNCH -> CASHIER-VOUCHER-V1 -> LAUNCH-DEPLOY-FINANCE -> FIN-PROD-ENABLE -> ACCOUNTING-HANDOFF-V1 -> SYSTEM-COMPLETE-GATE -> LAUNCH-OPS-V1 -> REQ-COMPLETE-AUDIT -> ATTV1 -> LAUNCH-AUTO-OPS-V1 -> AUTO-REMAINING-CLOSEOUT -> HR-WECOM-DIRECTORY-V1 -> HRWD-CONTACT-LIVE-TEST -> WCFB -> WFOC -> DBWFOC -> WFDG -> WDRG -> WCP1 -> WCPC -> WHMS -> WHMSLIVE -> WOUA -> WAPI -> WRRA -> WOUA-FIX -> WRV1 -> WRA1 -> WMSG1 -> WAPC1 -> WAPC2 -> WPROC1 -> WPROC2 -> WAPC2F dry-run -> WAPC2FLIVE -> WCBK1 -> WEGOV1 -> WACP3/WACP3R -> WREAD1 自动汇总 -> WREAD1F 新样例 -> WREAD1 真机确认 -> WADM1 自建留存模型设计 -> WARCH1 最小审批历史留存 -> WARCH2 正式只读历史查询 -> WROAD2+OPS 受控上线与每日巡检 -> WARCH3 归档稳定化自动巡检 -> WCHECK1 打卡摘要留存 -> WEXT1 外出/加班 dry-run -> WOPS1 巡检告警降噪 -> WROAD2-CLOSEOUT 三天验收 -> WROAD2-BIZ1 三天业务冒烟 -> WAPPR1 审批规则规范化 -> WRULE1 审批链校验器 POC -> WAUTO1 自动证据汇总 -> WEXT1LD live 前 dry-run -> WFULLSMOKE1 三天全域最终目标测试 -> WROUTE2 测试号收口到最小镜像路线锁定 -> WTCLOSE1 小团队自动审批规则与测试号全域收口 dry-run -> WTCLOSE2 测试号最终收口与证据复核 -> WTCLOSE2F 远端可信 IP 执行口径修正 -> WREMOTE1 远端可信 IP 收口 -> WFULLSMOKE2 全域 smoke -> WEXT1-FORMAL/WEXT1F 正式模板外出/加班测试 -> OAOPS1 小团队全员真实使用稳定化 -> ASSET1 电子资产与固定资产统一台账 -> OSMOKE1 OA-only smoke 账号治理与公网自动化恢复 -> OALAUNCH1 最终启用前收口与 Go/No-Go 门禁 -> OMAT1 成熟度缺口审查 -> OPOLICY1 制度与 OA 对齐 -> OAFRONT6 前端成熟化小步收口(标题/资产/移动/合同/长编号已部署并公网复测通过)-> OAKISS1 全业务流程 KISS 审查 -> PCDESIGN1 PC 全页面设计审查 -> TRELLIS1 Trellis 主导开发流程迁移 -> TRELLIS2 官方 Trellis task 执行合同 -> 后续再按需问答 WREAL1/最小镜像。
|
||||
|
||||
@@ -81,7 +88,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
|
||||
- WARCH2 是 WARCH1 后的正式只读历史查询合同:新增只读 OA DB 查询 API 和 PC/移动历史页,只覆盖请假/补卡已归档历史;页面不提供审批动作,不进入待办语境;已完成 `SYNC_ENV=0` 公网部署、`/ready`、未登录 401 和远端离线归档复跑。
|
||||
- WROAD2+OPS 是 WARCH2 后的受控上线与每日巡检合同:范围固定测试账号 `SMOKE002 -> SMOKE101`,管理员观察和告警员工号使用 `HYD000006`(`wangshunli` 的员工号),3 天每日触发脚本;巡检可用 `WECOM_ARCHIVE_WRITE=1` 写 OA 自建留存库,不写企业微信、不创建模板或审批单。Day 0 公网报告 `/app/artifacts/qa-flow/wroad2-ops-20260520-041941/summary.json` 为 `PASS_WITH_FINDINGS`,主链路通过并保留可解释 finding。后续优先 WOPS1 告警降噪、WROAD2-CLOSEOUT 三天验收;验收后先问答是否进入 WEXT1-FORMAL 正式模板外出/加班测试,再由四类测试号证据决定是否询问真实小范围试用。
|
||||
|
||||
## 当前活跃治理流
|
||||
## 治理流台账(历史 Issue 只作追溯)
|
||||
|
||||
后续不再为每次聊天、小反馈或单点修正单独创建 Issue CSV。同类型、同目标、同风险域的任务优先进入同一个 Trellis task 或子任务,直到该治理流完成明确阶段。
|
||||
|
||||
@@ -168,10 +175,10 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
|
||||
| `WTCLOSE2F` | `issues/2026-05-22_11-10-06-wecom-test-account-closeout-remote-only-v1.csv` | 当前 WTCLOSE2 远端可信 IP 执行口径修正 | WTCLOSE2 真实运行命令改为 `bash scripts/qa/run-wecom-test-account-final-closeout.sh --remote`,由部署服务器 server 容器执行;本地直接执行默认拒绝跑企微链路 | 本地只做合同、语法、文档和静态门禁;此前本地缺 env/DB 的 WTCLOSE2 输出不作为企微业务阻断证据 |
|
||||
| `WREMOTE1` | `issues/2026-05-22_12-34-41-wecom-remote-closeout-and-full-smoke-v1.csv` | 当前远端收口、全域 smoke 和正式模板外出/加班测试路线 | WFULLSMOKE2 必须使用 `--remote` 在部署服务器执行;外出/加班使用正式模板由 `SMOKE002` 人工提交、`SMOKE101` 审批,系统只读补偿、归档和 WRULE1 | 允许 OA `TEST-SMOKE-WFULL` 测试数据;不写企业微信、不自动创建外出/加班模板或审批单;真实员工信息只通过 `/tmp/hyb-oa-wreal1.env` 临时文件 |
|
||||
| `WEXT1F` | `issues/2026-05-22_14-23-19-wecom-formal-outing-overtime-evidence-v1.csv` | 当前正式模板外出/加班证据脚本:人工提交后从部署服务器只读收证据 | 新增 `WEXT1F_MANUAL_CONFIRMATION=SMOKE002_SUBMITTED_SMOKE101_REVIEWED bash scripts/qa/run-wecom-formal-outing-overtime-evidence.sh --remote`;显式拉取 `outing/overtime` 且按 `creator=SMOKE002` 过滤,写 OA 留存仅限 `WECOM_ARCHIVE_WRITE=1` + `--persist-to-db`;随后做离线归档读取和 WRULE1 | 不创建模板、不自动提交审批、不写企业微信、不启用真实员工;未有人工作业或缺确认标记时只可得到人工缺口结论 |
|
||||
| `OAOPS1` | `issues/2026-05-22_20-09-22-oa-real-use-stabilization-v1.csv` | 当前 OA 主办域真实使用稳定化:7 天小团队全员边用边修 | 新增 `scripts/qa/run-oa-real-use-daily.sh`,每日只读核验公网 ready、live smoke、feature flag、报销/PDF OCR、审批、采购/费用、合同台账、项目、付款批次、AP、移动/企微入口和隐私边界 | 允许真实业务数据进入公网 OA 并按审计保留;真实写入由人工完成;涉密合同正文、敏感报价、成本细节、银行流水原件、未脱敏票面不进仓库/聊天/报告;图片 OCR、复杂 BPM、预算、ERP、银行流水导入、真实支付直连、企微 HR 深镜像、应急接管、恢复回写、RuleOps 继续冻结 |
|
||||
| `OAOPS1` | `issues/2026-05-22_20-09-22-oa-real-use-stabilization-v1.csv` | 历史运行中断:计划 7 天,实际只有 Day 1–Day 4,缺人工业务闭环和 Day 7 Go/No-Go;任务归档只表示生命周期关闭,不代表目标完成 | `scripts/qa/run-oa-real-use-daily.sh` 及 Day 1–Day 4 记录保留为历史证据;旧 runner 曾存在 `SKIP` 假绿风险,不能据此补证最终启用 | 未来由新的 Trellis task 在当前可信基线部署并复核后从 Day 1 连续重启;不得补造 Day 5–Day 7;冻结项继续冻结 |
|
||||
| `ASSET1` | `issues/2026-05-22_21-18-33-oa-asset-governance-v1.csv` | 当前统一资产台账 V1:电子资产 + 固定资产共用现有资产模块 | 扩展 `AssetCard` 为 `FA/EA-DOC/EA-SYS/EA-REPO/EA-BKP`,新增资产大类、敏感级别、负责人/保管人、归档位置、外部引用、hash、历史验证编号、最近验证时间和脱敏索引 dry-run;前端资产页支持类型/敏感级别/编号搜索 | 代码仓库仍由 Git 管理;`EA-ACC` 暂缓;不保存密码、token、Secret、源码包、完整配置、涉密正文、真实完整路径、敏感报价、银行流水原件或未脱敏票面 |
|
||||
| `OSMOKE1` | `issues/2026-05-23_13-59-52-oa-only-smoke-account-governance-v1.csv` | 当前 OA-only smoke 账号治理:恢复公网 OA 自动化高权限测试账号,不再额外申请企微账号 | 新增 OA-only smoke 修复脚本、企微/OA 一致性审计豁免 `oaOnlySmokeExempted`、公网角色 readiness 检查,并接入 OAOPS1 每日巡检 | 只处理私有 env、显式员工号 allowlist 或 `SMOKE*`/`smoke-*`/测试命名命中的 smoke 标识;默认 dry-run,apply 必须 `OA_ONLY_SMOKE_REPAIR_APPLY=1`;不写企业微信、不重置密码、不影响真实员工、不执行 EA-DOC live 导入 |
|
||||
| `OALAUNCH1` | `issues/2026-05-23_16-49-39-oa-final-launch-readiness-v1.csv` | 当前最终启用前收口与 Go/No-Go 门禁:在 OAOPS1/ASSET1D 之上增加业务闭环、权限、备份恢复、数据治理、培训和 Day 7 决策 | 新增 `scripts/qa/run-oa-final-launch-readiness.sh`,默认只读聚合 OAOPS1、ASSET1D、权限矩阵、备份恢复演练和人工 Go/No-Go 证据,输出 `PASS_OA_LAUNCH_READY` / `PASS_WITH_FINDINGS` / `PAUSED_MANUAL_CONFIRMATION` / `SKIP/BLOCKED_BY_EXTERNAL_CONFIG` | 不创建业务数据、不执行付款、不写企业微信、不恢复数据库;未达到 `PASS_OA_LAUNCH_READY` 前不得宣布最终正式启用完成 |
|
||||
| `OALAUNCH1` | `issues/2026-05-23_16-49-39-oa-final-launch-readiness-v1.csv` | 历史最终启用门禁来源:业务闭环、权限、备份恢复、数据治理、培训和 Day 7 决策要求仍可复用;未来实际执行由新 Trellis task 承接 | `scripts/qa/run-oa-final-launch-readiness.sh` 默认只读聚合相关证据,输出 `PASS_OA_LAUNCH_READY` / `PASS_WITH_FINDINGS` / `PAUSED_MANUAL_CONFIRMATION` / `SKIP/BLOCKED_BY_EXTERNAL_CONFIG` | 不创建业务数据、不执行付款、不写企业微信、不恢复数据库;未取得新任务完整证据前不得宣布最终正式启用完成 |
|
||||
| `OMAT1` | `issues/2026-05-23_17-20-00-oa-maturity-gap-review-v1.csv` | 当前成熟度缺口审查台账:按 MAGI 审视/执行/提升轮次,对标国内主流 OA、协同、低代码、财务和资产系统,记录每个问题或建议供用户逐项采纳、暂缓或否决 | 已登记最终启用、真实业务闭环、权限、备份恢复、运营支持、流程配置、报表、财务月结、合同、采购、资产、HR 镜像、移动体验、数据治理、SLO、集成、知识档案、主数据、UX、AI 边界、国内对标来源、小团队取舍原则、用户决策回填、成熟度证据视图和最低非功能基线等候选项 | 本台账只做审查和决策,不直接触发业务代码实现;采纳项必须另建或延续对应 Trellis task,并满足 OALAUNCH1 门禁 |
|
||||
| `OPOLICY1` | `issues/2026-05-24_01-20-52-oa-policy-system-alignment-v1.csv` | 当前制度与 OA 对齐合同:先把外部制度包裁剪为小团队 V1,再回写 OA 事实源和启用门禁 | 已固化制度参数、资料留存、用印台账、审批异常 SOP、制度签收和 P2 冻结边界;预算硬控、复杂招采、电子签章、完整电子档案系统、ERP/银行深集成和 AI 自动改规则不作为正式启用前置条件 | 本合同优先制度和事实源调整;现有合同台账/资产台账/公告能力可承载 V1,不立即做 schema 或业务代码改造 |
|
||||
| `OAFRONT6` | `issues/2026-05-25_12-29-03-oa-frontend-maturity-small-step-v1.csv` | 当前前端成熟化小步收口:承接 OAFRONT5 部署后 PC 硬问题清零和设计审计;审批规则路由标题、资产台账详情分区、移动视觉矩阵稳定等待、合同台账表单分组和长编号压缩均已实施部署,公网 PC 只读视觉矩阵复测 `PASS_PC_READONLY_VISUAL_READY` 且 `findingCount=0`;Portal 继续后置观察 | 页面改动使用 `frontend-design` 做视觉裁决,并读取 `docs/产品设计规则.md` 的产品体验事实和 OALAUNCH1 启用门禁;后续 Portal 仍需按真实使用反馈推进 | 不写公网业务数据;不替代真实业务闭环、备份恢复、7 天稳定化或 Day 7 Go/No-Go |
|
||||
@@ -236,7 +243,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
|
||||
|
||||
| 文档 | 边界 |
|
||||
| --- | --- |
|
||||
| [R7 扩大试运行草案](./trialrun/R7扩大试运行草案.md) | 只做 R7 准备草案;真实执行看 R7E 连续合同 |
|
||||
| [R7 扩大试运行草案](./trialrun/R7扩大试运行草案.md) | 只作历史准备材料;R7E 也已是历史证据,未来真实连续试运行由新 Trellis task 从 Day 1 承接 |
|
||||
| [OPS7 运维交接 Runbook](./trialrun/OPS7运维交接Runbook.md) | 不代表已执行生产配置变更、恢复演练或回滚 |
|
||||
| [R7 用户手册与 FAQ](./trialrun/R7用户手册与FAQ.md) | 只描述已实现能力,不承诺预算、ERP、AI、完整差旅或复杂 BPM |
|
||||
|
||||
|
||||
+23
-14
@@ -2,7 +2,7 @@
|
||||
|
||||
**文档状态**:当前操作手册,用于本地、公网、企业微信和真实 OCR 试运行验证。
|
||||
|
||||
**当前状态(2026-05-17 / SYSTEM-COMPLETE-GATE)**:R7E、PRELAUNCH、FIN-PROD-ENABLE、ACCOUNTING-HANDOFF-V1、SYSTEM-COMPLETE-GATE 和 LAUNCH-OPS-V1 均已收口;公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。当前正式能力保持 PDF-only OCR,不接真实支付、不接 ERP、不开放图片 OCR、不导入银行流水。后续新增移动或企业微信门禁仍必须保留真机证据,自动化、公网视觉矩阵和 live smoke 不能替代未来新增真机验收。
|
||||
**当前状态(2026-07-16)**:最后有部署和公网复检证据的来源基线为 `df26922`;未做当前公网只读检查时,不据此断言服务器此刻仍运行该提交。7 月 P0 可信度修复只在本地 `main`,尚未 push、部署或完成公网复检。旧 7 天试运行只有 Day 1–Day 4 后中断,缺人工业务闭环和 Day 7 Go/No-Go;下一轮必须待当前可信基线部署并复核后,新建 Trellis task,从 Day 1 连续启动。正式能力继续保持 PDF-only OCR,不接真实支付、不接 ERP、不开放图片 OCR、不导入银行流水。
|
||||
|
||||
本文用于 hyb-oa 本地、企业微信和公网试运行。默认策略是:能自动化的先自动化,自动化无法覆盖的才请求人工配合。
|
||||
|
||||
@@ -10,13 +10,14 @@
|
||||
|
||||
## 入口顺序
|
||||
|
||||
1. 读取 `AGENTS.md`。
|
||||
2. 读取最新 `issues/*.csv`。
|
||||
3. 按任务读取事实源:
|
||||
1. 读取 `.trellis/workflow.md` 和当前 Trellis task 的 PRD/设计。
|
||||
2. 读取 `.trellis/spec/hyb-oa/` 与任务对应的业务事实源。
|
||||
3. 读取 `AGENTS.md` 并检查 `git status --short`,保护已有改动。
|
||||
4. 按任务读取事实源:
|
||||
- 页面体验事实:`docs/产品设计规则.md`;视觉与交互裁决使用 `frontend-design`
|
||||
- 报销发票:`docs/报销发票附件规则.md`
|
||||
- Agent 交付:`docs/Agent开发交付实践.md`
|
||||
4. 检查 `git status --short`,保护用户已有改动。
|
||||
5. 旧 `issues/*.csv` 只在需要历史追溯或外部导出时读取,不作为新任务执行合同。
|
||||
|
||||
## 本地验证
|
||||
|
||||
@@ -58,7 +59,7 @@ cd client && npm run build
|
||||
- PC viewport: 1440x960。
|
||||
- mobile viewport: 基础 390x844;涉及移动布局、企业微信或 R6 移动反馈时必须扩展到 320x568、360x740、375x667、390x844、393x873、414x896、430x932。
|
||||
- 企业微信 UA 使用 iPhone + `wxwork` 标识。
|
||||
- 截图放在 `output/playwright/<issue-id>/`。
|
||||
- 截图放在 `output/playwright/<trellis-task-id>/`。
|
||||
|
||||
移动端必须检查:
|
||||
|
||||
@@ -93,7 +94,7 @@ node scripts/qa/create-real-device-report.mjs
|
||||
- `PASS`:代表性真机和必要人工确认均通过。
|
||||
- `FAIL`:真机复现阻断或严重问题,必须登记设备、账号、URL、步骤和证据位置。
|
||||
- `BLOCKED`:缺少测试账号、企业微信后台配置、样票或网络等前置条件。
|
||||
- `PAUSED`:用户或现场条件暂停验证;自动化通过也不能据此关闭真机门禁或把相关 Issue 标为完成。
|
||||
- `PAUSED`:用户或现场条件暂停验证;自动化通过也不能据此关闭真机门禁或把当前 task 验收标为完成。
|
||||
|
||||
### WF8 通知渠道验收矩阵
|
||||
|
||||
@@ -103,7 +104,7 @@ WF8 阶段采用“两渠道验收 + 邮件冻结说明”:站内通知和企
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 站内通知 | 测试用户、审批或业务事件、OA 登录态 | 触发待办或状态变化;目标用户进入 OA 通知或目标业务页;核对未读、标题、目标类型和目标 ID | 通知存在,deeplink 指向具体 OA 目标,权限拦截正确,非目标用户不可见 | 只跑后端单测不能替代 PC 或移动页面可达性 |
|
||||
| 企业微信个人应用消息 | `IM_NOTIFIER_ENABLED=true`、个人应用消息渠道启用、员工已绑定企业微信 userId、应用可见范围正确、公网域名可访问 | 触发待办;管理员检查 delivery;审批人在手机企业微信收到消息并点击回 OA | delivery 成功且无 `invaliduser`、`unlicenseduser`、可见范围错误;手机端能进入 OA 移动审批或业务详情 | 企业微信 UA 自动化不能替代代表性真机消息接收和点击回流 |
|
||||
| 邮件通道 | 用户确认邮件为正式通道、SMTP provider 和发件域确定、密钥存放和退信处理方案批准 | 当前 WF8 不执行;Issue 和规约记录冻结原因及解锁条件 | 当前结论为冻结或 SKIP,不参与 Go/No-Go PASS 统计 | 站内或企业微信成功不能证明邮件通道成功 |
|
||||
| 邮件通道 | 用户确认邮件为正式通道、SMTP provider 和发件域确定、密钥存放和退信处理方案批准 | 当前 WF8 不执行;当前或独立 Trellis task 及对应规约记录冻结原因和解锁条件 | 当前结论为冻结或 SKIP,不参与 Go/No-Go PASS 统计 | 站内或企业微信成功不能证明邮件通道成功 |
|
||||
| 失败追溯 | 通知 provider 可模拟失败或测试渠道返回失败 | 模拟发送失败;检查 `notificationDelivery` 摘要、错误类型、重试次数和管理员可见性;确认主业务不回滚 | 失败可追溯、敏感字段不外泄、业务状态保持正确 | 日志片段不能替代投递记录或管理员查询证据 |
|
||||
|
||||
验收结论必须区分四类环境:
|
||||
@@ -120,7 +121,13 @@ node scripts/qa/check-live-smoke-env.mjs
|
||||
LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh
|
||||
```
|
||||
|
||||
### SYSTEM-COMPLETE-GATE 完成门禁
|
||||
### 当前可信度判定
|
||||
|
||||
- 聚合状态为 `PASS` 时仍必须检查必要子项和 `findingCount`;必要 live smoke、真实 OCR、权限、来源校验出现 `SKIP`、`PARTIAL`、`MISSING` 或 SHA 不匹配时,不得给出最终 clean PASS。
|
||||
- 本地 runner 通过只证明当前代码;必须核对部署来源 commit、`/ready` observed build SHA 和公网 bundle marker,才能证明公网使用了同一基线。
|
||||
- 新连续试运行前必须确认部署 runner 已包含 7 月 P0 修复;旧 Day 1–Day 4 报告不得补证新的正式启用结论。
|
||||
|
||||
### 2026-05 SYSTEM-COMPLETE-GATE 历史完成门禁
|
||||
|
||||
系统开发完成收口采用以下最小门禁:
|
||||
|
||||
@@ -133,7 +140,7 @@ cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg
|
||||
|
||||
完成门禁只核验系统可正式使用,不扩展功能边界。`payment_batch_v1` 应保持 `force_on`,`erp_sync` 应保持 `force_off`。图片发票 OCR、真实支付接口、ERP 实时凭证、银行流水导入、复杂 BPM、审批设计器和重预算控制继续冻结。
|
||||
|
||||
### LAUNCH-OPS-V1 首周运营检查
|
||||
### 2026-05 LAUNCH-OPS-V1 历史首周运营检查
|
||||
|
||||
正式使用首周每日检查:
|
||||
|
||||
@@ -143,7 +150,7 @@ cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg
|
||||
- 出纳上传银行回单后再执行 OA 已付款标记;银行流水和回单原件由出纳从银行侧导出给代账,不导入 OA。
|
||||
- 当天问题按时间、角色、页面、步骤、影响等级和处理结论登记。
|
||||
|
||||
无法登录、无法审批、无法提交核心单据、付款状态错误、权限越权、`/ready` 异常或冻结项被误开启时,结论应为 Pause,并另建最小修复 Issue;不得用重置数据库或生产恢复临时绕过。
|
||||
无法登录、无法审批、无法提交核心单据、付款状态错误、权限越权、`/ready` 异常或冻结项被误开启时,结论应为 Pause,并另建或更新最小修复 Trellis task;不得用重置数据库或生产恢复临时绕过。
|
||||
|
||||
发布候选进入公网或小范围试运行前,先按 [`docs/trialrun/发布试运行准备清单.md`](trialrun/发布试运行准备清单.md) 完成证据整理、权限直连审计、部署预检、live smoke 和试运行分级。
|
||||
|
||||
@@ -275,8 +282,10 @@ PROJECT_CLOSURE_CHECKLIST_ENABLED=true
|
||||
|
||||
每轮交付收口至少包含:
|
||||
|
||||
- Issue CSV 状态真实。
|
||||
- 自动化命令和结果记录在最终回复。
|
||||
- 视觉截图路径记录。
|
||||
- 当前 Trellis task 的 PRD、验收、状态和提交引用真实。
|
||||
- 明确区分本地 commit、部署来源 commit 和公网复检结果。
|
||||
- 自动化命令、结果和必要视觉证据路径记录完整。
|
||||
- 已知阻塞明确归类为代码、测试、环境、数据或人工配置。
|
||||
- task validate、Trellis governance 和任务要求的必要门禁通过。
|
||||
- 历史 Issue CSV 保持审计可追溯,但不要求作为当前状态合同。
|
||||
- 中文分批 commit。
|
||||
|
||||
在新工单中引用
屏蔽一个用户