# 设计说明 ## 1. 任务树与边界 父任务只维护共同目标、子任务边界、顺序和最终集成验收,不直接修改业务代码。 | 子任务 | 交付物 | 主要风险 | | --- | --- | --- | | `08-05-interaction-pattern-unification` | 错误/状态/文案/反馈/移动动作一致性,删除差旅自动选中 | 跨页面文案回归、共享组件影响 | | `08-05-business-detail-routing` | 采购、资产已有详情态迁到独立路由 | URL 兼容、返回、dirty guard | | `08-05-contract-detail-workspace` | 新建合同详情、终止状态、迁移和事务审计 | 状态机、权限、迁移、审计 | ## 2. 执行顺序 1. 先实施低风险统一,形成后续页面可复用的错误消息、状态兜底和移动动作模式。 2. 再迁移采购/资产路由;该子任务只消费共享模式,不修改合同、差旅、付款或请假。 3. 合同详情作为独立能力最后实施,必须单独批准其 schema、状态机与迁移计划。 父子关系不隐含自动授权。每个子任务都要独立执行 `task.py start`、验证、提交与归档。 ## 3. 共同设计合同 - 页面职责以 `docs/产品设计规则.md` 为准,视觉细节在 `frontend-design` 不可用时保守复用现有组件。 - 普通用户文案使用自然中文;技术 code、原始 payload、完整路径和敏感资料不进入普通页面。 - 列表负责查找,详情负责处理;差旅、付款和请假按已确认例外保持现有业务边界。 - 高风险动作必须有对象摘要、后果、理由和审计;服务端权限与状态校验始终为最终边界。 - 所有面向用户可测改动只有在另行批准部署并通过公网检查后才能宣布线上可测。 ## 4. 集成与回滚 - 三个子任务独立提交;任何后续任务失败时可回滚该子任务,不回滚已经验收的前序任务。 - 路由兼容保留旧链接过渡,避免低风险任务和路由任务必须同时上线。 - 合同 migration 与前端详情同批兼容发布;生产应用、迁移和数据写入另需授权。 - 最终集成复核只检查跨任务一致性、链接、共享组件和文档事实,不重做每个子任务的全部测试。 ## 5. 共同验证 - `cd client && npm run typecheck && npm run build` - 相关聚焦 Playwright 与后端 Vitest - `python3 ./.trellis/scripts/task.py 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`