What problem does it solve? In a monorepo, developers constantly face the temptation to move code from apps/<app>/ into a new packages/<name>/ workspace, but roughly 80% of these extractions are premature and create coupling, boundary thrashing, and build complexity without real reuse. This Skill provides a strict decision gate so you only extract when the trade-off is genuinely justified. ## Core Features & Use Cases - 3-Question Decision Gate: Extract only if there are at least 2 distinct consumers right now, inlining would cost more than 30 minutes of duplication discipline per change, and the code owns a concept rather than a scattered helper function. - Explicit Anti-Patterns: Lists concrete cases where extraction is wrong, such as single-app helpers, thin library wrappers, one-app React components, and types-only sharing. - Reverse Extraction Guidance: Recommends inlining a package back into its consumer app when it has had only one consumer for 6+ months. - Use Case: You notice the same validation logic in apps/web and apps/mobile and consider creating @repo/validation. Run the gate: if the copies keep diverging or the code is a 5-line helper, keep it inline; if it is a stable shared concept, proceed to the creation workflow. ## Quick Start Ask the agent to evaluate whether the duplicated logic in apps/web and apps/mobile should be extracted into a new packages/ workspace using the 3-question gate.