state-machine

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

State Machine Skill

State Machine Skill

Document the state machine for UI components, comparing current behavior to expected behavior and mapping all state transitions.
记录UI组件的状态机,对比当前行为与预期行为,并映射所有状态转换。

When to Use

适用场景

  • During Ask mode CONVERGE loop for stateful components
  • When refactoring existing components with complex state
  • Before implementing new interactive UI components
  • 在Ask模式的CONVERGE循环中处理有状态组件时
  • 重构具有复杂状态的现有组件时
  • 实现新的交互式UI组件之前

Instructions

操作步骤

Phase 1: Identify States

阶段1:识别状态

List all possible states for the component:
StateCurrent BehaviorExpected Behavior
Initial[What happens now][What should happen]
Loading[Current loading UX][Expected loading UX]
Success[Current success display][Expected success display]
Error[Current error handling][Expected error handling]
Empty[Current empty state][Expected empty state]
Common States to Consider:
State TypeExamples
Data statesInitial, Loading, Success, Error, Empty, Stale
Interaction statesIdle, Hover, Focus, Active, Disabled
Visibility statesHidden, Visible, Collapsed, Expanded
Selection statesUnselected, Selected, Partially selected
Validation statesValid, Invalid, Pending validation
列出组件的所有可能状态:
状态当前行为预期行为
初始状态[当前实际情况][预期情况]
加载中[当前加载体验][预期加载体验]
成功[当前成功展示效果][预期成功展示效果]
错误[当前错误处理方式][预期错误处理方式]
空状态[当前空状态表现][预期空状态表现]
需考虑的常见状态类型:
状态类型示例
数据状态初始、加载中、成功、错误、空状态、过期
交互状态闲置、悬停、聚焦、激活、禁用
可见性状态隐藏、可见、折叠、展开
选择状态未选中、选中、部分选中
验证状态有效、无效、验证中

Phase 2: Map Transitions

阶段2:映射状态转换

Define what triggers each state change:
FromToTriggerSide Effects
InitialLoadingUser action / MountStart fetch
LoadingSuccessData receivedPopulate UI
LoadingErrorRequest failedShow error message
LoadingEmptyEmpty responseShow empty state
ErrorLoadingRetry clickedRestart fetch
SuccessLoadingRefresh clickedRefetch data
定义触发每个状态变化的条件:
原状态目标状态触发条件副作用
初始状态加载中用户操作 / 组件挂载开始获取数据
加载中成功接收数据填充UI
加载中错误请求失败显示错误信息
加载中空状态响应为空显示空状态
错误加载中点击重试重新发起数据请求
成功加载中点击刷新重新获取数据

Phase 3: State Diagram

阶段3:状态图

Create a Mermaid state diagram:
mermaid
stateDiagram-v2
    [*] --> Initial
    Initial --> Loading : fetch
    Loading --> Success : data received
    Loading --> Error : request failed
    Loading --> Empty : no data
    Error --> Loading : retry
    Success --> Loading : refresh
    Empty --> Loading : refresh
    Success --> [*] : unmount
创建Mermaid状态图:
mermaid
stateDiagram-v2
    [*] --> Initial
    Initial --> Loading : fetch
    Loading --> Success : data received
    Loading --> Error : request failed
    Loading --> Empty : no data
    Error --> Loading : retry
    Success --> Loading : refresh
    Empty --> Loading : refresh
    Success --> [*] : unmount

Phase 4: Data Requirements

阶段4:数据要求

For each state, define what data is needed:
StateRequired DataUI Elements
InitialNonePlaceholder or skeleton
LoadingNoneSpinner, skeleton, progress
Success[List required fields]Full component
ErrorError message, retry actionError banner, retry button
EmptyEmpty message, CTAEmpty illustration, CTA button
为每个状态定义所需数据:
状态所需数据UI元素
初始状态占位符或骨架屏
加载中加载动画、骨架屏、进度条
成功[列出所需字段]完整组件
错误错误信息、重试操作错误提示栏、重试按钮
空状态空状态提示语、行动召唤(CTA)空状态插图、CTA按钮

Phase 5: Edge Cases

阶段5:边缘情况

Identify edge cases and how to handle:
Edge CaseCurrentExpected
Network timeout[Current]Show timeout message, retry option
Partial data[Current]Graceful degradation, show available
Stale data[Current]Show stale indicator, background refresh
Concurrent updates[Current]Optimistic update, rollback on conflict
Auth expired[Current]Redirect to login, preserve state
识别边缘情况及处理方式:
边缘情况当前处理方式预期处理方式
网络超时[当前处理]显示超时提示,提供重试选项
部分数据返回[当前处理]优雅降级,展示可用数据
数据过期[当前处理]显示过期标识,后台刷新数据
并发更新[当前处理]乐观更新,冲突时回滚
授权过期[当前处理]重定向至登录页,保留当前状态

Output Format

输出格式

markdown
undefined
markdown
undefined

State Machine: [Component Name]

State Machine: [组件名称]

State Table

状态表

StateCurrentExpectedData Required
Initial[Behavior][Behavior][Data]
Loading[Behavior][Behavior][Data]
Success[Behavior][Behavior][Data]
Error[Behavior][Behavior][Data]
Empty[Behavior][Behavior][Data]
状态当前行为预期行为所需数据
初始状态[行为描述][行为描述][数据说明]
加载中[行为描述][行为描述][数据说明]
成功[行为描述][行为描述][数据说明]
错误[行为描述][行为描述][数据说明]
空状态[行为描述][行为描述][数据说明]

Transition Diagram

转换图

[Mermaid stateDiagram]
[Mermaid stateDiagram]

Edge Cases

边缘情况

CaseHandling
[Case][How to handle]
情况处理方式
[情况描述][处理说明]

Summary

总结

  • States: [N] identified
  • Transitions: [N] mapped
  • Edge cases: [N] documented
undefined
  • 状态数量:已识别[N]个
  • 转换数量:已映射[N]个
  • 边缘情况:已记录[N]个
undefined

Invocation

调用方式

Invoke manually with "use state-machine skill" or follow Ask mode CONVERGE loop which references this skill.
手动调用时使用指令"use state-machine skill",或遵循引用此技能的Ask模式CONVERGE循环。

Related Skills

相关技能

  • qa-planning
    - Uses states to define test coverage
  • design-context
    - Check existing component states in Storybook
  • qa-planning
    - 利用状态定义测试覆盖范围
  • design-context
    - 在Storybook中查看现有组件状态