What problem does it solve? Testing Effect-based TypeScript code requires choosing the right runner, controlling time and services, and asserting on typed failures — mistakes here produce flaky or misleading tests. This Skill provides complete guidance for testing Effect applications with @effect/vitest and plain vitest. ## Core Features & Use Cases - Framework Selection: Distinguishes when to use @effect/vitest (Effect code, services, TestClock) versus standard vitest (pure functions, utilities). - Service and Layer Testing: Covers Effect.provide, Layer.mock, the layer helper for shared test layers, nested it.layer suites, and first-class controllable test services. - Time and Error Testing: Uses TestClock to advance time instantly, Effect.flip and Effect.exit for typed failure assertions, and Cause inspection for error types. - Property-Based and HTTP Mock Testing: Supports it.prop and it.effect.prop with Schema arbitraries, plus HTTP/SSE mock server patterns for testing real service layers end to end. - Use Case: When writing tests for a service with retries and delays, use it.effect with TestClock.adjust to verify retry behavior in milliseconds instead of waiting for real timeouts. ## Quick Start Ask the agent to write tests for your Effect service using @effect/vitest with TestClock and a mock layer.