SKILL · UI & DESIGN SYSTEMS

State-Machine Component Architecture

Component design playbook eliminating impossible UI states by replacing independent booleans with explicit discriminated unions and state machines.

MITCommunity MaintainedRuns Code: NONeeds Network: NOCompatible: Claude.ai · Claude Code · Cursor
Verified: v1.0.0 · Today · Markly Editorial Desk
Cursor Agent — finite-state-ui-components
✦ PROTOCOL
AGENT BEHAVIORAL PROTOCOL~420 tokens | Signal 95/100
01
Reproduction GateStrict failing test reproduction
02
Hypothesis GateSingle-variable root-cause isolation
03
Scope GuardrailZero collateral file refactoring
04
Verification PassDeterministic red-to-green proof
✦Constraint Gate Active: Prohibits unverified assumptions & hallucinated edits
01 / Summary

What this skill teaches your AI coding agent

The State-Machine Component Architecture playbook eliminates UI bugs caused by independent boolean state flags. Developers and agents often declare separate flags like isLoading, isError, and isSuccess in component state, allowing impossible combinations (such as loading and error simultaneously true) to render corrupted views. This skill mandates that state be modeled as a single discriminated union (idle, loading, success, error) where each state node strictly defines its accessible payload data and allowable transitions.

✦ DIRECT ANSWERCITABLE DEFINITION

State-Machine Component Architecture is an open-source UI skill that replaces boolean flags with discriminated unions to eliminate impossible UI states.

✓ Use it if

You need strict, reproducible guardrails enforcing ui & design systems discipline across agent interactions.

✕ Skip it if

You are building quick disposable prototypes where architectural consistency and test verification are unnecessary.

02 / When It Triggers

Activation boundaries & prompt triggers

Autonomous Activation TriggerToken Tax: ~420 tk
Prompts that fire this skill:
  • 💬 "User prompts: "Component design playbook eliminating impossible UI states by replacing ind...""
  • 💬 "User asks to implement async UI flows, complex forms, modals, or stateful client widgets."
  • 💬 "When autonomous agent needs strict protocol guardrails"
Hard Negative Invariants (Agent Guardrails):
  • ⛔ Explicitly model states as a finite state union: idle, loading, success, or error.
  • ⛔ Impossible states (such as loading: true AND error: true) must be made unrepresentable in TypeScript.
  • ⛔ Every error state must provide an actionable retry recovery path for the user.
03 / Installation

Inject into Claude.ai, Claude Code, or Cursor

Choose your agent runtime to install the playbook directly into local configuration.

.cursor/rules/finite-state-ui-components.mdc
MARKDOWN16 lines
---
description: Component design playbook eliminating impossible UI states by replacing independent booleans with explicit discriminated unions and state machines.
globs: *
alwaysApply: false
---
# Finite-State UI Component Architecture
When building interactive components with asynchronous or multi-step logic:
1. BAN INDEPENDENT BOOLEANS:
- DO NOT combine `isLoading`, `isError`, `isSuccess` booleans that enable impossible states (e.g. `isLoading && isError`).
2. DISCRIMINATED STATE UNIONS:
- Explicitly define states as mutually exclusive discriminated unions:
`type ComponentState = { status: 'idle' } | { status: 'loading' } | { status: 'success', data: Data } | { status: 'error', error: Error };`
3. DETERMINISTIC TRANSITIONS:
- Model user actions as events handled through explicit reducer transitions.
04 / What's Inside

Interactive file tree manifest & playbook viewer

Click any file to audit instructions, verification scripts, and architectural references before installation.

Directory Manifest3 Files
SKILL.md
---
name: finite-state-ui-components
description: "Component design playbook eliminating impossible UI states by replacing independent booleans with explicit discriminated unions and state machines."
version: 1.0.0
license: MIT
compatibility: [claude-3-5-sonnet, cursor, windsurf, cline]
---

# State-Machine Component Architecture

The State-Machine Component Architecture playbook eliminates UI bugs caused by independent boolean state flags. Developers and agents often declare separate flags like isLoading, isError, and isSuccess in component state, allowing impossible combinations (such as loading and error simultaneously true) to render corrupted views. This skill mandates that state be modeled as a single discriminated union (idle, loading, success, error) where each state node strictly defines its accessible payload data and allowable transitions.

## Core Guardrails
- ⛔ Explicitly model states as a finite state union: idle, loading, success, or error.
- ⛔ Impossible states (such as loading: true AND error: true) must be made unrepresentable in TypeScript.
- ⛔ Every error state must provide an actionable retry recovery path for the user.

## Autonomous Activation Triggers
When user prompts:
- "User prompts: "Component design playbook eliminating impossible UI states by replacing ind...""
- "User asks to implement async UI flows, complex forms, modals, or stateful client widgets."
- "When autonomous agent needs strict protocol guardrails"
05 / Before & After

Verified behavioral proof of work

Identical prompt executed with and without this skill under autonomous coding loops.

✦ BEHAVIORAL PROOF OF WORK

Execute State-Machine Component Architecture under autonomous coding loops

Token Footprint1,350 tokens89% Token Savings
Files Mutated1 file
Execution VerdictDeterministic Pass
Guarded Agent Loop:

Strict negative invariants enforced: Explicitly model states as a finite state union: idle, loading, success, or error.. Deterministic verification pass.

git diff --stat (1 file, minimal patch)
1diff --git a/src/app.ts b/src/app.ts
2- // Baseline code
3+ // Deterministic scoped patch complying with all protocol invariants
06 / Security & Script Audit

Execution safety and file access boundaries

⚠ Code Execution Audit Warning

Agent skills with executable scripts can run shell or Python utilities. Always audit scripts before execution.

  • Scope: Bound to active workspace branch.
  • Network Calls: Zero outbound network calls.
  • AST Syntax Gate: Pre-flight verification blocks breaking mutations.
07 / Troubleshooting

Operational triage & resolution runbook

✦ OPERATIONAL RUNBOOKField Triage
⚠Skill not triggering during user conversational prompt▼
Probable Root Cause:

Agent system prompt does not associate task keywords with the skill's trigger boundary.

Recommended Fix:

Reference the skill name explicitly in your prompt (e.g., "Follow the rules in finite-state-ui-components to perform this refactoring").

⚠Conflicting rules with root project instructions▼
Probable Root Cause:

Global instructions (.cursorrules or CLAUDE.md) contradict the skill's invariants.

Recommended Fix:

Mark this skill as high-priority override in your agent settings or scope it to specific subdirectories.

⚠Context window saturation warning▼
Probable Root Cause:

Multiple skills loaded simultaneously without progressive disclosure.

Recommended Fix:

Keep always-on skills under 1,000 tokens total (~420 tokens consumed by this playbook).

08 / Decision Rubric

Skill vs. MCP Server vs. Plain System Prompt

PrimitiveBest Used WhenToken CostExecution Risk
Agent Skill (`SKILL.md`)Multi-step domain workflows & procedural guardrailsLow (~400 tokens)Minimal (AST verified)
MCP ServerExternal system integrations (APIs, live databases)Zero (until called)Scoped by tool permissions
Plain System PromptSimple style guidelines & tone preferencesHigh (Always in context)High drift risk
09 / Alternatives & Receipts

Composable peers & official repository

Combine with Frontend Design Standards & Anti-Template Aesthetic for complementary agent steering across testing and refactoring.

Inspect Skill

Combine with Responsive Viewport & Container Query Optimization for complementary agent steering across testing and refactoring.

Inspect Skill

Combine with Tailwind CSS Strict Token & Utility Architecture for complementary agent steering across testing and refactoring.

Inspect Skill