What problem does it solve? TypeScript monorepos often suffer from leaky package boundaries where code imports deep into other packages' internals, making refactoring risky and coupling modules together. This Skill wires dependency-cruiser into a repo so each package is a deep module: implementation hidden in subfolders and reachable only through its root entry-point files. ## Core Features & Use Cases - Entry-point boundary enforcement: Installs four dependency-cruiser rules (entry-point boundary, intra-package freedom, tests-through-entrypoints, no cycles) that make a package's root files its only public surface. - Environment detection: Detects the package manager (pnpm, yarn, bun, npm), the packages root (src/packages or packages), and merges rules into any existing dependency-cruiser config without overwriting it. - Proof the rules bite: Scaffolds an example package, then verifies the lint passes, fails on a deliberately added deep import, and passes again after revert. - Use Case: A team adopting a packages-based monorepo wants to stop cross-package deep imports; the Skill installs the config, adds a lint:boundaries script to the CI check command, and documents the convention in the packages README and CLAUDE.md/AGENTS.md. ## Quick Start Ask the agent to set up deep module boundaries with dependency-cruiser for the packages in this TypeScript repository.