name: 状态图生成 description: 从行为描述创建状态机图。用于生命周期和工作流建模。 allowed-tools: 读取, 全局, 搜索, 写入, 技能, 任务 argument-hint: <行为描述> [–format <plantuml|mermaid|xstate>] [–implementation <csharp|typescript|none>]
/状态图生成 命令
从行为描述创建状态机图,可选择实现代码。
使用
/状态图生成 "订单生命周期从创建到交付"
/状态图生成 "用户账户状态" format=mermaid
/状态图生成 "支付处理工作流" implementation=csharp
/状态图生成 "文档审批过程" format=xstate implementation=typescript
工作流
步骤 1: 分析行为描述
解析描述以识别:
- 正在建模的实体(订单、用户、文档)
- 生命周期阶段或条件
- 导致状态变化的触发器
- 业务规则和约束
步骤 2: 调用状态机技能
加载 state-machine-design 技能用于:
- 状态机模式和实践
- 所选格式的表示语法
- 实现模式
步骤 3: 识别状态
从描述中提取状态:
- 初始状态(起点)
- 正常状态(中间条件)
- 最终状态(终止状态)
- 复合状态(如果嵌套行为)
步骤 4: 定义转换
映射状态变化:
- 事件/触发器导致转换
- 守卫(必须为真的条件)
- 动作(转换时的副作用)
- 状态的入口/出口动作
步骤 5: 生成图
以所选格式创建状态机图:
- PlantUML 用于详细文档
- Mermaid 用于内联 Markdown
- XState 用于可执行 TypeScript
步骤 6: 生成实现(可选)
如果请求实现:
- C# 使用 Stateless 库模式
- TypeScript 使用 XState 机器
- 转换表方法
步骤 7: 输出结果
交付:
- 状态机图
- 状态/事件/转换表
- 实现代码(如果请求)
- 使用说明和边缘情况
格式特定输出
PlantUML
@startuml
title Entity State Machine
[*] --> Initial : Create
state Initial {
Initial : entry / initialize
}
Initial --> Active : Activate [isValid]
Active --> Completed : Complete
Completed --> [*]
@enduml
Mermaid
stateDiagram-v2
[*] --> Initial : Create
Initial --> Active : Activate
Active --> Completed : Complete
Completed --> [*]
XState (TypeScript)
import { createMachine } from 'xstate';
const machine = createMachine({
id: 'entity',
initial: 'initial',
states: {
initial: {
on: { ACTIVATE: 'active' }
},
active: {
on: { COMPLETE: 'completed' }
},
completed: {
type: 'final'
}
}
});
示例
订单生命周期
/状态图生成 "电商订单从草稿到交付或取消" implementation=csharp
输出:
- PlantUML 图,包含所有订单状态
- C# 实现使用 Stateless 库
- 转换表带有守卫
文档审批
/状态图生成 "文档审批包括审查、修订和批准阶段" format=mermaid
输出:
- Mermaid 状态图
- 状态:草稿、提交、审查中、需要修订、批准、拒绝
- 如果适用,并行审查轨道
用户账户
/状态图生成 "用户账户生命周期包括验证和暂停" format=xstate implementation=typescript
输出:
- XState 机器定义
- 状态:未验证、激活、暂停、停用
- 状态转换的守卫
- 通知的动作
状态机元素
状态
| 类型 | 描述 |
|---|---|
| 初始 | 起点(实心圆) |
| 正常 | 常规状态 |
| 最终 | 终点(圆圈点) |
| 复合 | 包含子状态 |
| 历史 | 记住最后子状态 |
转换
| 元素 | 描述 |
|---|---|
| 事件 | 转换的触发器 |
| 守卫 | 条件 [isValid] |
| 动作 | 副作用 / notify |
集成
该命令集成于:
- uml-modeling:UML 状态图
- openapi-design:API 状态文档
- requirements-elicitation:行为需求
- test-strategy:状态转换测试