raphaelmans/agent-skills/xstate

Claude Code and agent skill by raphaelmans/agent-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Helps create XState v5 state machines in TypeScript and React. Use when building state machines, actors, statecharts, finite state logic, actor systems, or integrating XState with React/Vue/Svelte components.

Install

npx vskill@latest install raphaelmans/agent-skills/xstate

SKILL.md

XState v5 Skill

CRITICAL: This skill covers XState v5 ONLY. Do not use v4 patterns, APIs, or documentation. XState v5 requires TypeScript 5.0+.

When to Use

  • State machine and statechart design
  • Actor system implementation
  • XState v5 API usage (setup, createMachine, createActor)
  • Framework integration (React, Vue, Svelte)
  • Complex async flow orchestration

Key Concepts

Actors are independent entities that communicate by sending messages. XState v5 supports:

Actor TypeCreatorUse Case
State MachinecreateMachine()Complex state logic with transitions
PromisefromPromise()Async operations (fetch, timers)
CallbackfromCallback()Bidirectional streams (WebSocket, EventSource)
ObservablefromObservable()RxJS streams
TransitionfromTransition()Reducer-like state updates

Quick Start

typescript
import { setup, assign, createActor } from 'xstate';
const machine = setup({
types: {
context: {} as { count: number },
events: {} as { type: 'increment' } | { type: 'decrement' },
},
actions: {
increment: assign({ count: ({ context }) => context.count + 1 }),
decrement: assign({ count: ({ context }) => context.count - 1 }),
},
}).createMachine({
id: 'counter',
initial: 'active',
context: { count: 0 },
states: {
active: {
on: {
increment: { actions: 'increment' },
decrement: { actions: 'decrement' },
},
},
},
});
// Create and start actor
const actor = createActor(machine);
actor.subscribe((snapshot) => console.log(snapshot.context.count));
actor.start();
actor.send({ type: 'increment' });

v5 API Changes (NEVER use v4 patterns)

v4 (WRONG)v5 (CORRECT)
createMachine() alonesetup().createMachine()
interpret()createActor()
service.start()actor.start()
state.matches()snapshot.matches()
services: {}actors: {}
state.contextsnapshot.context

Invoke vs Spawn

  • invoke: Actor lifecycle tied to state (created on entry, stopped on exit)
  • spawn: Dynamic actors independent of state transitions

Inspection API (Debugging)

typescript
const actor = createActor(machine, {
inspect: (event) => {
if (event.type === '@xstate.snapshot') {
console.log(event.snapshot);
}
},
});

Event types: @xstate.actor, @xstate.event, @xstate.snapshot, @xstate.microstep

File Organization

feature/
├── feature.machine.ts # Machine definition
├── feature.types.ts # Shared types (optional)
├── feature.tsx # React component
└── feature.test.ts # Machine tests

Learning Path

LevelFocus
BeginnerCounter, toggle machines; setup() pattern
IntermediateGuards, actions, hierarchical states, fromPromise()
AdvancedObservable actors, spawning, actor orchestration

Supporting Documentation

  • PATTERNS.md - Guards, actions, actors, hierarchical/parallel states
  • REACT.md - React hooks (useMachine, useActor, useSelector)
  • EXAMPLES.md - Complete working examples

Resources

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/raphaelmans/agent-skills/xstate/badge)](https://verified-skill.com/skills/raphaelmans/agent-skills/xstate)

Something wrong with this skill or its page? Tell us.