What problem does it solve? TypeScript code often accumulates unnecessary generic type parameters that appear only once in a signature, creating a false sense of type safety and degrading type inference. This Skill helps you identify and remove these superfluous generics so your types actually relate values to each other. ## Core Features & Use Cases - Golden Rule Detection: Applies the rule that type parameters must appear twice or more to establish a relationship, flagging single-use generics like return-only parseYAML<T>(input: string): T. - Simplification Guidance: Shows how to replace unnecessary generics with unknown, concrete types, or explicit type assertions while preserving real type relationships like getProperty<T, K extends keyof T>(obj: T, key: K): T[K]. - Class Generic Review: Identifies class-level type parameters used in only one method and recommends moving them to the method or using concrete types. - Use Case: While reviewing a utility library, you find function third<A, B, C>(a: A, b: B, c: C): C. The Skill flags A and B as single-use and guides you to rewrite it as function third<C>(a: unknown, b: unknown, c: C): C. ## Quick Start Review this TypeScript function signature and tell me whether its type parameters are necessary, then simplify any generics that appear only once.