What problem does it solve? TypeScript monorepos often leak internal implementation details across packages, making refactors risky and coupling code that should stay independent. This Skill wires dependency-cruiser into a repo so every package becomes a deep module: only its root entry-point files are importable from outside, while everything in subfolders stays private. ## 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 fail the build on deep imports. - Automated setup workflow: Detects the package manager and packages root, installs dependency-cruiser, writes .dependency-cruiser.cjs, adds a lint:boundaries script, and folds it into the repo's existing check command. - Proof the rules bite: Scaffolds an example package, then deliberately adds and reverts a violating deep import to confirm the config fails and passes as expected. - Use Case: A team adopting a src/packages/<name>/ layout wants to stop other packages from importing lib/ internals directly; this Skill sets up the lint rule, documents the convention in a packages README, and links it from CLAUDE.md or AGENTS.md. ## Quick Start Ask the agent to set up deep-module boundaries with dependency-cruiser for the packages in this TypeScript repo.