What problem does it solve? Callback-based event systems in TypeScript lack type safety, leak resources, and require manual subscription bookkeeping. This Skill provides patterns for building typed publish/subscribe event buses with Effect v4's PubSub and Stream modules, where subscriptions are scoped and cleaned up automatically. ## Core Features & Use Cases - Typed Event Bus Service: Define events as Schema.TaggedClass discriminated unions and expose publish/subscribe through a Context.Service with a Layer. - Scoped Subscriptions: Use Stream.fromPubSub with Effect.forkScoped so subscriber fibers are tied to the layer scope and cleaned up automatically. - Per-Type Channels & Shutdown Events: Maintain a Map of per-type PubSub channels for high-throughput systems and publish a final disposal event before shutdown. - Testing Choreography: Fork consumers, use a registration barrier, publish events, and gate assertions on a Deferred. - Use Case: A file-watcher service publishes FileChanged events; multiple downstream services subscribe with filtered streams and react without any manual unsubscribe logic. ## Quick Start Ask the AI to build a typed event bus service with Effect PubSub that publishes FileChanged events and lets subscribers consume them as scoped streams.