Skip to content
cccskills
FreePublished on GitHub

state-machine

Describe complex interface behavior with state machines: explicit states and rules for moving between them. Map events, conditions, and actions for forms, authentication, and data loading to expose edge cases and prevent contradictory states.

OriginalShow the original description

Model component behaviour as explicit states, events, and transitions. Use when a component has many interacting states that must be exhaustive. For the feel and feedback of a single interaction, use `micro-interaction-spec`.

Run score Not tested

See how to install

Good for

  • Defining form validation and submission behavior
  • Mapping data loading, errors, and retries
  • Documenting login and logout transitions
  • Specifying steps in a multi-step setup flow

Files included (1)

  • SKILL.md1.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

State Machine

You are an expert in modeling complex UI behavior as finite state machines.

What You Do

You model UI components and flows as state machines to eliminate impossible states and make behavior predictable.

State Machine Components

  • States: Distinct modes the UI can be in (idle, loading, success, error)
  • Events: Things that cause transitions (click, submit, timeout, response)
  • Transitions: Rules for moving between states (on event X in state A, go to state B)
  • Actions: Side effects during transitions (fetch data, show toast, log event)
  • Guards: Conditions that must be true for a transition (isValid, hasPermission)

Common UI State Machines

Form

idle -> editing -> validating -> submitting -> success/error -> idle

Data Fetching

idle -> loading -> success/error, error -> retrying -> success/error

Authentication

logged-out -> authenticating -> logged-in -> logging-out -> logged-out

Multi-Step Wizard

step1 -> step2 -> step3 -> review -> submitting -> complete

Modeling Approach

  1. List all possible states
  2. List all events/triggers
  3. Define valid transitions
  4. Identify impossible states to prevent
  5. Add guards for conditional transitions
  6. Define entry/exit actions per state

Benefits

  • Eliminates impossible states (no loading + error simultaneously)
  • Makes edge cases visible
  • Shared language between design and engineering
  • Testable behavior specification

Best Practices

  • Start with the happy path, then add error states
  • Every state should have a way out (no dead ends)
  • Keep state machines focused (one per concern)
  • Document with visual diagrams
  • Map each state to a UI representation

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

a-b-test-design

FreeSummary

Plan A/B experiments to measure the effect of a design change. Define a hypothesis, control and treatment versions, success metrics, sample size, and duration, with supporting measures to detect unintended consequences.

  • Planning a comparison between current and proposed designs
  • Defining success metrics for a change
  • Estimating sample size and test duration
Owl-Listener/designer-skills3KUpdated Sep 6, 2026

Assess an existing interface against WCAG 2.2 accessibility guidelines. Identify barriers in content and interactions, rate their severity and user impact, and document affected locations, remediation steps, and code examples to guide improvements.

  • Reviewing accessibility in an existing design or build
  • Checking keyboard access and assistive technology compatibility
  • Prioritizing fixes by severity and user impact
Owl-Listener/designer-skills3KUpdated Sep 6, 2026

Plan accessibility testing with people who use assistive technologies, such as screen readers and voice control. Define participant criteria, test environments, session procedures, coverage of WCAG accessibility guidelines, and a consistent format for reporting issues.

  • Planning test sessions with assistive technology users
  • Defining participant recruitment criteria
  • Mapping key user flows to test environments
Owl-Listener/designer-skills3KUpdated Sep 6, 2026

Review visual consistency to understand how an interface shapes trust and perceived ease of use. Examine spacing, alignment, typography, and overlooked screen states to guide visual improvements alongside usability testing.

  • Investigating poor feedback on a functional interface
  • Checking visual consistency before launch
  • Reviewing error, empty, and loading states
Owl-Listener/designer-skills3KUpdated Sep 6, 2026

affinity-diagram

FreeSummary

Turn interview notes, observations, and survey responses into themes and actionable research insights. Group related evidence without preset categories, retain participant references, and prioritize findings by their impact on design decisions while noting patterns found in only one interview.

  • Synthesize findings across multiple interviews
  • Organize observation notes and survey responses
  • Prioritize research insights for design decisions
Owl-Listener/designer-skills3KUpdated Sep 6, 2026

Refine a specific interface animation by choosing easing, meaning changes in speed, along with duration and movement order. Use it to tune buttons, modals, transitions, or loading indicators so motion guides attention and communicates changes.

  • Tune how a modal enters and exits
  • Adjust button and toggle animations
  • Coordinate the order of related movements
Owl-Listener/designer-skills3KUpdated Sep 6, 2026

See all skills by Owl-Listener

Report a problem with this skill