a lot of behaviour behind a small interface. A package's public surface is its
entry points
— the files at the package root — and everything in its subfolders is hidden. This skill installs
dependency-cruiser
and the rules that make the entry points the only way in, then proves the rules bite.
For the vocabulary (deep module, interface, seam, depth), run the
/codebase-design
skill — use its language throughout.
The shape this enforces
src/packages/
/
index.ts ← an entry point (public). Import this from outside.
client.ts ← another entry point. Packages may expose SEVERAL.
lib/ ← implementation: hidden from outside, free to import each other.
tests/ ← co-located tests + fixtures (a subfolder, so private).
The public surface is the package's
root files
— not one designated
index.ts
. By convention implementation lives in
lib/
and tests in
tests/
, giving every package the same two-folder shape. The rule itself is general, though:
anything
in
any
subfolder is private, so you never extend the config to add a folder.
Show more
Installs
1.1K
Repository
mattpocock/skills
GitHub Stars
163.5K
First Seen
Today
Security Audits
Gen Agent Trust Hub
Pass
Socket
Pass
Snyk
Pass