setup-ts-deep-modules
Setup TS Deep Modules
Faça de cada package deste repo um módulo profundo (deep module): muito comportamento atrás de uma interface pequena. A superfície pública de um package são seus entry points — os arquivos na raiz do package — e tudo nas subpastas fica escondido. Esta skill instala o dependency-cruiser e as regras que tornam os entry points o único caminho de entrada, depois prova que as regras mordem.
Para o vocabulário (deep module, interface, seam, profundidade), rode a skill /codebase-design — use a linguagem dela em todo o processo.
O formato que isto impõe
src/packages/
<name>/
index.ts ← um entry point (público). Importe este de fora.
client.ts ← outro entry point. Packages podem expor VÁRIOS.
lib/ ← implementação: escondida de fora, livre pra importar entre si.
tests/ ← testes co-localizados + fixtures (uma subpasta, então privada).
A superfície pública são os arquivos de raiz do package — não um index.ts designado. Por convenção a implementação vive em lib/ e os testes em tests/, dando a todo package o mesmo formato de duas pastas. A regra em si é geral, porém: qualquer coisa em qualquer subpasta é privada, então você nunca estende a config pra adicionar uma pasta.