wode-emittery-pattern

Installation
SKILL.md

Wode Emittery Event-Driven Pattern

You are strictly required to follow this event-driven architecture when implementing inter-component communication or side-effect handling. This pattern decouples state management (Zustand) from side-effects (event handlers).

1. Core Rules (MUST FOLLOW)

  1. Event Types: MUST use as const objects named XxxEventType. NEVER use TypeScript enums.
  2. Event Naming: MUST use Module:Action format (e.g., FileSystem:Open, User:Login).
  3. Typed Emitter: MUST define type XxxEmitter = Emittery<XxxEventData> for full type safety.
  4. Sidecar Pattern: Side-effects (toast, confirm dialogs, network requests) MUST be handled in Sidecar components, NEVER inside Store actions.
  5. Store Decoupling: Store actions MUST only emit events. They MUST NOT care who handles them.

2. Event Type Definition

// MUST use as const, NEVER enum
export const FileSystemEventType = {
  Open: 'FileSystem:Open',
  Goto: 'FileSystem:Goto',
Related skills
Installs
23
Repository
wenerme/ai
GitHub Stars
4
First Seen
Feb 25, 2026