What problem does it solve? Teams accumulate parallel components, hooks, forms, and data-access code that look similar but have drifted in naming, lifecycle, and behavior. This Skill determines whether such duplicates should be merged, share a core, align only their contracts, or remain intentionally separate—without creating a fragile god abstraction. ## Core Features & Use Cases - AST-based candidate scanner: A bundled Node.js script parses TypeScript/TSX files with the TypeScript compiler API and ranks structurally similar components, hooks, reducers, schemas, and types. - Five-way decision framework: Classifies each candidate as unify-now, shared-core, standardize-contract, intentional-duplicate, or false-positive using an evidence rubric and hard stops for lifecycle, accessibility, and ownership conflicts. - Structured report contract: Produces a report with source anchors, usage evidence, shared invariants, migration plans, and validation commands; optionally applies the refactor in apply mode. - Use Case: Ask whether two search hooks in a React app should share a core; the Skill scans the repo, compares cache and cancellation semantics, and recommends a typed shared query core with thin wrappers—or explains why they must stay separate. ## Quick Start Ask the agent to analyze whether the similar hooks and components in this TypeScript/React repository should be unified, and report findings without editing code.