文件
hyb-oa/.trellis/tasks/08-05-product-interaction-consistency/prd.md
T

8.5 KiB
原始文件 Blame 文件历史

产品交互与页面操作一致性治理

Goal

以小团队中文工作台为目标,把用户跨页面反复使用的“进入详情、新建、返回、审批、错误恢复和移动主动作”收敛为可预测的操作模型,减少同一动作在不同模块中位置、文案、反馈和导航行为不一致造成的学习与误操作成本。

Background

  • 当前产品事实源已固定六类页面模板、台账首屏纯列表、详情证据结构、状态矩阵动作语义和移动端底部主动作等边界。
  • 当前实现仍并存 ListWorkspace、BusinessListTemplate、PageHeader 等页面骨架,并存在独立路由、查询参数主从、列表内联编辑和 Dialog 等多种相互竞争的操作方式。
  • 2026-08-05 的产品/人机交互审查提出三类工作:先治理低风险、跨页复用的操作规则;再迁移已有详情态的同构台账;合同详情作为新增能力独立规划。
  • 当前仍有 58 个前端文件在普通用户路径拼接 CODE: 中文消息,共享 resolveErrorMessage 也保留该前缀;低风险子任务必须统一收敛。
  • 历史已确认付款批次保持列表内显式选择后的详情形态,不新增独立详情路由;本任务不得推翻该业务决定。

Scope

  • 父任务管理三个产品交付子任务及必要的质量支撑子任务,维护边界、顺序、验收和最终集成复核;质量支撑任务不扩张产品范围。
  • 低风险子任务负责跨页面文案、错误反馈、状态兜底、首页优先级、移动动作容器和差旅自动选中缺陷。
  • 采购/资产子任务负责两个已有详情态台账的独立路由迁移与旧链接兼容。
  • 合同子任务负责从零合同详情工作区、terminated 状态和事务审计设计/实施。
  • 08-07-interaction-pattern-browser-regression 已补齐本地 Chromium/UA 模拟证据;08-07-e2e-fixture-repair 负责关闭补跑时暴露的 committed 测试红灯,二者均为质量支撑子任务。
  • 付款批次、请假和完整差旅不做详情路由化;非涉密合同附件能力按后续规约任务处理。

Requirements

  • R1:本父任务作为需求源和跨子任务验收入口,不直接承接大批量业务页面实现。
  • R2:子任务 08-05-interaction-pattern-unification 处理不改变业务 URL、数据库、API、权限模型和状态机的低风险一致性问题。
  • R3:子任务 08-05-business-detail-routing 只处理采购、资产两个已有详情态台账的列表/详情路由边界、深链、返回和未保存保护。
  • R4:子任务 08-05-contract-detail-workspace 独立定义合同详情的信息结构、权限与高风险动作归位,不与采购/资产的路由搬迁混做。
  • R5:视觉与交互分析优先遵循项目指定的 frontend-design;本会话该 skill 不可用时,只以 ui-ux-pro-max、现有共享组件和产品事实源做保守补充,不创建新的视觉体系。
  • R6:不得借一致性治理扩张业务模块、重做既有状态机、改变企业微信/OA 边界、放宽权限或触碰真实数据。
  • R7:完整差旅属于冻结模块,不做详情路由化;仅在低风险子任务中删除自动选择第一条记录的缺陷,不恢复或扩展差旅能力。
  • R8:三个产品交付子任务独立实施与批准;低风险统一先行,浏览器证据和 E2E fixture 红灯清零后再做采购/资产路由化,合同详情在其独立规划获批后最后实施。
  • R9:每个子任务独立完成本地验证、可访问性/交互回归和 Trellis 门禁;只有部署与公网关键路径检查通过后,才能告知用户线上可测。
  • R10:浏览器补跑与 E2E fixture 修复只维护验证可信度和 committed 测试绿色,不新增页面、权限、API、状态机或数据库能力。

Acceptance Criteria

  • 三个产品交付子任务均具有独立、可观察且不互相重复的验收标准,质量支撑子任务不扩张产品范围。
  • 低风险统一先于详情路由化完成,路由化复用已经收敛的文案、反馈和动作组件。
  • 浏览器补跑与 committed E2E fixture 修复在采购/资产路由化开工前完成,没有把当时已知的 R6/R111 红灯带入后续子任务。
  • 当时范围内的问题已按完整搜索口径治理;错误码前缀未因错误的窄模式搜索被误判为已修复。
  • 付款批次继续使用现有显式选择详情形态,没有新增独立详情路由。
  • 完整差旅继续冻结;只删除首屏自动选中第一条记录的缺陷。
  • 合同详情的信息结构和高风险动作边界在独立子任务中裁决,没有作为采购/资产迁移的附带工作。
  • 除合同子任务独立批准的详情 API、terminated 状态和增量 schema 外,没有扩张其他 API、数据库、权限模型、审批/付款状态机、生产配置或真实业务数据。
  • 各子任务要求的 typecheck/build、聚焦测试与治理门禁均完成;另有 8 条会话回落失败仍未定性、未宣称通过,并在父任务遗留清单中单独登记。
  • 每个子任务完成后均有独立提交和回滚点,父任务已完成跨子任务集成复核。

Out of Scope

  • 模块冻结清单、一级导航产品组合和功能下线。
  • 全站视觉换肤、品牌重做、暗色模式或新设计系统。
  • 除合同子任务明确批准的详情 API、terminated 状态与增量 schema 外,不修改其他后端业务规则、权限、状态机、数据库 schema 或生产数据。
  • 付款批次独立详情路由。
  • 公网部署、生产配置或真实数据写入;如后续需要,必须另行获批。

Test Plan

  • 每个子任务先运行自身聚焦测试、typecheck/build 和任务 validate,再运行父任务集成门禁。
  • 父任务最终运行 node scripts/qa/check-process-contract.mjs --baseline --json、node scripts/qa/audit-docs.mjs --check-registry、node scripts/qa/check-trellis-governance.mjs 和 git diff --check。
  • 路由子任务覆盖采购/资产深链、旧 ?id= 兼容、返回与未保存保护;合同子任务额外覆盖 Prisma 校验、迁移状态、状态不变量、事务审计失败回滚和只读 reviewer。
  • E2E fixture 修复直接运行 R6 七视口 spec 与 R111 双端 spec,不使用临时副本冒充 committed suite 通过。

Open Questions

  • 无;三个产品交付子任务的边界和合同终止持久化方案均已确认。未完成事项按下方遗留清单管理,不视为本父任务的开放范围问题。

Integration Closeout(2026-08-08)

  • 父任务登记的 6 个子任务均已完成并归档;本地数据库迁移基线由独立前置任务 08-07-local-database-migration-readiness 恢复并校验,不计入产品交付范围。
  • 集成复核确认:低风险交互模式已收敛;采购/资产详情路由和资产创建后跳转已关闭回归;合同详情、terminated 三字段、专用终止接口和 required audit 已通过只读 reviewer。
  • 差旅没有恢复冻结能力,付款/请假没有被路由化,非涉密合同附件没有提前实现。
  • 生产部署、公网检查和企业微信真机仍为 PAUSED;父任务归档不代表线上可测。

Residual Register

  1. OPEN · 8 条会话回落失败,未定性且无执行 task
    • client/tests/e2e/r103-cross-page-ui-consistency.spec.ts 仍有 7 条、client/tests/e2e/global-search.spec.ts 仍有 1 条失败,统一症状为多上下文或二次返回后落到登录页。
    • 当前证据只能证明数据库基线恢复且 /api/me 已返回 200,不能证明根因一定是测试夹具,也不能排除真实会话续期行为。
    • 本父任务不修改这些用例或登录实现。后续处理前必须另建 Trellis task,先在同一 runner 下稳定复现并定性“fixture/session mock”或“真实会话行为”;不得以删除断言作为默认修法。父任务归档不代表这 8 条通过。
  2. DEFERRED · 同步导航放行语义注释
    • runWithNextNavigationAllowed 依赖同步执行导航,并用 queueMicrotask 恢复 guard;未来维护应补注释说明该边界,避免误改成扩大放行窗口的 setTimeout。当前失败方向仍是安全地重新触发 guard,不构成功能缺陷。
  3. DEFERRED · R6 fixture 的 hr 角色用途注释
    • r6-mobile-responsive-system-hotfix.spec.ts 中的 hr 角色仅用于通过真实角色解析链获得 leave.manage,因为当前没有更窄的非通配角色。后续维护应补注释,避免把该 fixture 误解为业务上的完整 HR 管理员画像;当前 committed spec 已通过。