Files
pi-skill/skills/references/type-state.md
2026-05-25 16:41:08 +07:00

1.1 KiB
Raw Blame History

State Machine

Best for: finite state logic — order status, auth state, connection lifecycle, form wizard, job queue status.

Layout conventions

  • States are rounded rectangles (rx=8), labeled in Geist.
  • Start: filled ink dot (r=6). End: ringed dot (outer r=8 outline, inner filled r=5).
  • Transitions: curved arrows labeled in Geist Mono as event [guard] / action (omit sections you don't need).
  • Self-loops curve above the state.
  • Orient along the dominant flow direction (left→right or top→down); rearrange before crossing transitions.
  • Coral on the state the reader should notice — typically the error state, or "happy completion".

Anti-patterns

  • More transitions than states × 2 → likely two state machines.
  • "From any state" transitions drawn from every state — use a single annotation (* → Error on timeout) instead.
  • Unlabeled transitions (the whole point is what triggers this).

Examples

  • assets/example-state.html — minimal light
  • assets/example-state-dark.html — minimal dark
  • assets/example-state-full.html — full editorial