What problem does it solve? JavaScript and TypeScript codebases often accumulate bugs from mutable state, hidden side effects, and imperative control flow that is hard to test and review. This Skill provides a concrete set of functional programming principles so code is written and reviewed with immutability, pure functions, and composition in mind. ## Core Features & Use Cases - Immutability guidance: Enforces non-mutating updates using spread syntax, as const, readonly modifiers, and Immer for deeply nested structures. - Pure function and side-effect boundaries: Shows how to isolate side effects into thin wrapper functions while keeping core computation pure and testable. - Declarative transformations: Replaces imperative loops, switch statements, and if/else assignments with array method chains, lookup tables, ternaries, and guard clauses. - Use Case: When reviewing a pull request that mutates shared objects inside a data pipeline, apply these principles to rewrite the transformations as pure, chained array operations with explicit side-effect boundaries. ## Quick Start Review this TypeScript data transformation module and rewrite it following functional programming principles with immutable updates and pure functions.