What problem does it solve? Defining RPC contracts that both client and server packages can share is error-prone: payload, success, error, and defect schemas drift apart, streaming semantics are misunderstood, and middleware types get misdeclared. This Skill provides verified, source-checked guidance for declaring RPC contracts with effect/unstable/rpc in Effect v4, so contract changes surface as compile errors in every handler and client. ## Core Features & Use Cases - RPC Definition: Declare procedures with Rpc.make covering payload, success, error, defect schemas, primaryKey for idempotent payloads, and per-rpc combinators like prefix, annotate, and middleware. - Streaming Contracts: Model streaming endpoints with stream: true and RpcSchema.Stream, including correct element/error schema interpretation and ClientAbort cancellation semantics. - Group Composition & Middleware: Compose contracts with RpcGroup (add/merge/omit/prefix), define RpcMiddleware.Service with provides/requires/clientError, and build client layers via RpcMiddleware.layerClient. - Use Case: You are building a shared contract package for a users service. Use this Skill to define GetUser, CreateUser, and a streaming WatchUsers rpc, attach an AuthMiddleware with a UserNotFound/Unauthorized error union, and version the API with prefix + merge. ## Quick Start Ask the AI to define a shared Effect v4 RPC contract with a streaming endpoint and auth middleware using Rpc.make, RpcGroup, and RpcMiddleware from effect/unstable/rpc.