What problem does it solve? Setting up AI language model providers in Effect applications involves juggling client layers, API key configuration, HTTP clients, and multi-provider fallback logic. This Skill provides the correct patterns for wiring Anthropic, OpenAI, OpenAI-compatible, and OpenRouter providers into Effect services without runtime misconfiguration. ## Core Features & Use Cases - Provider Layer Setup: Construct client and language model layers for Anthropic, OpenAI, OpenAI-compatible APIs, and OpenRouter with Config.redacted secrets and FetchHttpClient wiring. - ExecutionPlan Fallback: Define multi-provider retry and fallback strategies, capturing requirements and applying plans per-effect. - Stateful Chat & Streaming: Maintain conversation history with Chat.fromPrompt, export/restore sessions as JSON, and stream text deltas through Stream pipelines. - Use Case: Build an AiWriter service that drafts announcements using a cheap OpenAI model first, falls back to Claude on failure, keeps a chat session with history, and wraps AiError into a domain-specific TaggedError. ## Quick Start Set up an Anthropic language model layer with a redacted API key and use it to generate text from a prompt in an Effect program.