这是一项状态机与状态图设计技能,用于对实体生命周期、工作流和系统行为进行建模,适合在规划或设计阶段获取状态机设计方法,或希望遵循既有模式与标准时使用。
核心概念包括:状态(系统可能处于的条件,如 Draft、Submitted、Paid)、转换(状态间变化)、事件(触发转换)、守卫(转换必须满足的条件)、动作(转换时的副作用)、进入动作与退出动作。状态类型涵盖初始、普通、终止、复合、并行、历史与选择。
主要能力:以 PlantUML 和 Mermaid 语法绘制状态机图,并提供 C# 简单状态机、State 模式、Stateless 库以及 XState(TypeScript)等实现模式示例。
使用方式:技能要求文档优先;设计前先调用文档管理技能获取状态机模式,并通过 MCP 服务器(如 context7 for XState)核实实现模式,所有指导应基于 Harel 状态图语义。设计流程建议依次为:识别实体、列出状态、定义事件、映射转换(状态+事件→新状态)、添加守卫、定义动作、绘制图示、实现。
最佳实践:状态名用条件式(Submitted 而非 Submit),事件名用命令式(Submit 而非 Submitted),用守卫处理条件转换,保持状态单一职责,记录进入/退出动作,考虑终止状态。
限制:资料未提供安装命令、收费或平台信息;具体工具支持范围以实际环境为准。