What problem does it solve? Inconsistent error handling leads to unclear APIs, swallowed exceptions, and fragile code. This Skill provides a decision framework for classifying errors by recoverability and applying Either/Result types for recoverable errors while reserving exceptions for unrecoverable failures. ## Core Features & Use Cases - Recoverability-Based Classification: Distinguishes recoverable errors (business rule violations, external system failures) from unrecoverable ones (invalid arguments, inconsistent state, unreachable code). - Multi-Language Implementation Patterns: Provides concrete code examples for TypeScript (neverthrow, fp-ts), Rust (std Result + thiserror), Go (standard errors, samber/mo), Scala (Either), Java (vavr), and Python (returns, result). - Error Type Design: Covers union types, enums, and sealed classes/interfaces for modeling domain errors. - Use Case: When refactoring a service layer, use this Skill to convert thrown exceptions into typed Result returns so callers can see all failure modes directly in the function signature. ## Quick Start Ask the AI to review your function's error handling and redesign it using Result types based on whether each error is recoverable.