问题与使用场景
TrackerItemStatus 六个状态的全部合法迁移,由 TrackerItemTransitionRules 编码。
在新增工作项命令、状态迁移或界面操作之前,使用这张状态机。
这张图适合用于方案评审、故障定位、代码走查与新人导览。它刻意省略与当前问题无关的类和项目,因此应与源码入口和相关专题文档一起使用。
本页范围只覆盖图中命名的职责和关系;未出现的能力需要回到对应模块文档继续确认。
读图路径
- 第 1 步:先沿主路径从 Open 读到 Closed。
- 第 2 步:再看三处取消出口,以及回到 Open 的重新打开(manage 门控)路径。
- 第 3 步:每条箭头只表示允许迁移,执行时仍必须经 TrackerItemTransitionRules 校验。
读图时不要跳过箭头方向、编号和分组标题;它们分别表达依赖或时间方向、执行次序与职责边界。如果图与源码不一致,以当前源码和已接受的架构决策为准,并立即更新生成目录。
图例与表达约定
| 视觉元素 | 含义 | 不能据此推断 |
|---|---|---|
| 珊瑚色焦点 | 当前图要强调的决策点或主路径 | 该元素一定更重要或拥有更多权限 |
| 蓝色边界 | 外部系统、协议边缘或显式边界 | 一定是独立部署服务 |
| 灰色连接 | 依赖、调用、迁移或数据流,具体语义由箭头标签决定 | 一定同步、同事务或严格一次 |
| 分组框 | 职责、层或生命周期阶段 | 组织团队或物理机器边界 |
本图类型为 状态机。先依据该类型理解布局,再用下文的源码事实校正直觉。
关键关系与设计含义
关系 1
源码事实:TrackerItemStatus 共六个状态,主路径为 Open → InProgress → InReview → Resolved → Closed。
架构含义:主路径为界面与命令提供描述工作项正常进展的共同词汇。
核对动作:端点暴露的每个来源状态都允许该命令吗?
关系 2
源码事实:所有进行中状态都可以落入 Cancelled;规则对 Resolved 与 Cancelled 强制填写解决结论(RequiresResolution)。
架构含义:打回与重新打开都是显式迁移而非状态覆盖,因此生命周期历史与规则仍然可观察。
核对动作:哪个不变量会拒绝图中未列出的迁移?
关系 3
源码事实:Closed 与 Cancelled 都可以回流 Open;是否要求 manage 权限在 Application 层裁决,规则文件不做权限判断。
架构含义:终态不是死路:Closed 与 Cancelled 都能回到 Open,纠正动作留痕而无需重建事项。
核对动作:打回与重新打开是否保留历史与并发预期?
设计评审问题
在评审或实现相关变更时,逐项回答下面的问题。无法从代码、测试或 ADR 得到答案时,不应仅凭图示作出结论。
- 端点暴露的每个来源状态都允许该命令吗?
- 哪个不变量会拒绝图中未列出的迁移?
- 打回与重新打开是否保留历史与并发预期?
如何使用答案
- 先确定能力或规则的唯一归属方。
- 再确认依赖、调用或事件方向没有反转所有权。
- 最后用自动化测试或可重复命令固定结论。
边界与易错点
边界 1
每次迁移都经过 Tracker.Contracts/Kernel 的静态 TrackerItemTransitionRules.Validate(from, to);非法迁移以 TrackerErrors.ItemInvalidTransition 失败。
- 不要推断:图中出现连接,不等于所有实现都同步调用、共享事务或共享数据所有权。
- 评审要求:哪个不变量会拒绝图中未列出的迁移?
边界 2
Assigned、Reopened、Released 都不是状态:分派看经办人,重开看计数,发版只写版本锁。
- 不要推断:图中出现连接,不等于所有实现都同步调用、共享事务或共享数据所有权。
- 评审要求:打回与重新打开是否保留历史与并发预期?
边界 3
为保持 URL 兼容仍保留旧 slug;图中表达的是 Tracker 工作项聚合,而不是订单聚合。
- 不要推断:图中出现连接,不等于所有实现都同步调用、共享事务或共享数据所有权。
- 评审要求:端点暴露的每个来源状态都允许该命令吗?
源码核对与再生成
本图的首要核对入口是 src/Platform/Tracker/BitzOrcas.Platform.Tracker.Contracts/Kernel/TrackerItemTransitionRules.cs。先检查该入口及其直接引用,再重新生成图表资产和说明页。
# 重新生成中英文 SVG、独立 HTML 与说明页npm run diagrams
# 检查双语配对、引用、安全属性、可访问性与画布边界npm run verify:diagrams# 确认生成结果只包含预期图表与页面变化git diff -- scripts/diagrams diagram-sources public/diagrams src/content/docs
# 验证站内链接、MDX 结构与专业深度门禁npm run verify:docsnpm run audit:docs-depth变更完成清单
- 图中的职责、顺序、状态或关系与当前源码一致。
- 新增元素确实有助于回答本页问题,没有把项目清单全部塞进图中。
- 箭头有明确方向与关系语义,没有暗示不存在的同步或事务保证。
- 中英文标题、标签、事实与边界保持语义对等。
- 窄屏、全屏和缩放模式下均可读,没有文字重叠或越界。
- 相关架构测试、集成测试或验证命令已经执行。
- 若改变了长期约束,已经同步 ADR 或架构说明。