What problem does it solve? TypeScript monorepos often leak internals: consumers deep-import files from inside other packages, making refactors risky and module boundaries meaningless. 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, and everything in subfolders stays private. ## Core Features & Use Cases - Boundary enforcement: Installs four dependency-cruiser rules (entry-point boundary from app code, entry-point boundary across packages, tests-through-entrypoints, no-circular) plus a tests-folder privacy rule, all at error severity. - Environment detection: Detects the package manager (pnpm, yarn, bun, npm), the packages root (src/packages or packages), and merges into any existing dependency-cruiser config instead of overwriting it. - Verified setup: Scaffolds an example package with a root entry point, hidden lib/ implementation, and tests, then proves the rules bite by observing a pass, a failure on a deliberate deep import, and a pass again. - Use Case: A team adopting a packages-based monorepo wants each package to expose small entry points (index.ts, client.ts) while hiding implementation in lib/. The Skill installs the config, adds a lint:boundaries script to the existing check command, and documents the convention in the packages README and agent-instructions file. ## Quick Start Ask the agent to set up deep-module boundaries with dependency-cruiser for the packages in this TypeScript repo.