codebase-design
Vocabulário compartilhado para projetar deep modules.
Skill by matheusdmlopes
Chalk Labs
Need help deploying codebase-design?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/matheusdmlopes-codebase-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/codebase-design
What's inside
- Skill name
codebase-design- Description
- Vocabulário compartilhado para projetar deep modules. Use quando o usuário quiser projetar ou melhorar a interface de um módulo, encontrar oportunidades de aprofundamento, decidir onde uma costura deve ficar, tornar o código mais testável ou navegável por IA, ou quando outra skill precisar do vocabulário de deep modules.
- License
- MIT
- Instructions
- 111 lines in SKILL.md · view on GitHub
Files (4)
- DEEPENING.md
- DESIGN-IT-TWICE.md
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# Codebase Design
Projete **deep modules**: muito comportamento atrás de uma interface pequena, posicionada em uma costura limpa, testável por meio dessa interface. Use esta linguagem e estes princípios onde quer que o código esteja sendo projetado ou reestruturado. O objetivo é alavancagem para os chamadores, localidade para os mantenedores e testabilidade para todos.
## Glossário
Use estes termos com exatidão — não substitua por "componente", "serviço", "API" ou "divisa". Linguagem consistente é todo o propósito.
**Módulo (Module)** — qualquer coisa com uma interface e uma implementação. Deliberadamente agnóstico de escala: uma função, classe, pacote ou fatia transversal a camadas. _Evitar_: unidade, componente, serviço.
**Interface** — tudo o que um chamador precisa saber para usar o módulo corretamente: a assinatura de tipos, mas também invariantes, restrições de ordenação, modos de erro, configuração necessária e características de desempenho. _Evitar_: API, assinatura (muito estreitas — referem-se apenas à superfície no nível de tipos).
**Implementação (Implementation)** — o que está dentro de um módulo, seu corpo de código. Distinto de **Adaptador**: algo pode ser um adaptador pequeno com uma implementação grande (um repositório Postgres) ou um adaptador grande com uma implementação pequena (um fake em memória). Use "adaptador" quando a costura for o assunto; "implementação" caso contrário.
**Profundidade (Depth)** — alavancagem na interface: a quantidade de comportamento que um chamador (ou teste) pode exercitar por unidade de interface que precisa aprender. Um módulo é **deep** quando uma grande quantidade de comportamento reside atrás de uma interface pequena, **raso (shallow)** quando a interface é quase tão complexa quanto a implementação.
**Costura (Seam)** _(Michael Feathers)_ — um lugar onde você pode alterar o comportamento sem editar nesse lugar; o *local* no qual a interface de um módulo reside. Onde colocar a costura é uma decisão de design própria, distinta do que fica atrás dela. _Evitar_: divisa (sobrecarregado com bounded context do DDD).
**Adaptador (Adapter)** — uma coisa concreta que satisfaz uma interface em uma costura. Descreve o *papel* (qual slot preenche), não a substância (o que está dentro).
**Alavancagem (Leverage)** — o que os chamadores obtêm da profundidade: mais capacidade por unidade de interface que aprendem. Uma implementação se paga ao longo de N pontos de chamada e M testes.
**Localidade (Locality)** — o que os mantenedores obtêm da profundidade: alterações, bugs, conhecimento e verificação se concentram em um único lugar em vez de se espalharem pelos chamadores. Corrija uma vez, corrigido em todo lugar.
## Deep vs shallow
**Deep module** = interface pequena + muita implementação:
```
┌─────────────────────┐
│ Small Interface │ ← Poucos métodos, parâmetros simples
├─────────────────────┤
│ │
│ Deep Implementation│ ← Lógica complexa oculta
│ │
└─────────────────────┘
```
**Módulo raso (shallow)** = interface grande + pouca implementação (evite):
```
┌─────────────────────────────────┐
│ Large Interface │ ← Muitos métodos, parâmetros complexos
├─────────────────────────────────┤
│ Thin Implementation │ ← Apenas repassa chamadas
└─────────────────────────────────┘
```
Ao projetar uma interface, pergunte-se:
- Posso reduzir o número de métodos?
- Posso simplificar os parâmetros?
- Posso ocultar mais complexidade no interior?
## Princípios
- **A profundidade é uma propriedade da interface, não da implementação.** Um deep module pode ser composto internamente de partes pequenas, mockáveis e substituíveis — elas apenas não fazem parte da interface. Um módulo pode ter **costuras internas** (privadas à sua implementação, usadas por seus próprios testes), bem como a **costura externa** em sua interface.
- **O teste de deleção.** Imagine deletar o módulo. Se a complexidade desaparecer, ele era apenas um repassador. Se a complexidade reaparecer espalhada por N chamadores, ele estava justificando sua existência.
- **A interface é a superfície de teste.** Chamadores e testes cruzam a mesma costura. Se você quiser testar *além* da interface, o módulo provavelmente está com o formato errado.
- **Um adaptador significa uma costura hipotética. Dois adaptadores significam uma costura real.** Não introduza uma costura a menos que algo realmente varie através dela.
## Projetando para testabilidade
Boas interfaces tornam os testes naturais:
1. **Aceite dependências, não as crie.**
```typescript
// Testable
function processOrder(order, paymentGateway) {}
// Hard to test
function processOrder(order) {
const gateway = new StripeGateway();
}
```
2. **Retorne resultados, não produza efeitos colaterais.**
```typescript
// Testable
function calculateDiscount(cart): Discount {}
// Hard to test
function applyDiscount(cart): void {
cart.total -= discount;
}
```
3. **Superfície pequena.** Menos métodos = menos testes necessários. Menos parâmetros = configuração de teste mais simples.
## Relações
- Um **Módulo** tem exatamente uma **Interface** (a superfície que ele apresenta a chamadores e testes).
- **Profundidade** é uma propriedade de um **Módulo**, medida em relação à sua **Interface**.
- Uma **Costura** é onde a **Interface** de um **Módulo** reside.
- Um **Adaptador** fica em uma **Costura** e satisfaz a **Interface**.
- **Profundidade** produz **Alavancagem** para chamadores e **Localidade** para mantenedores.
## Enquadramentos rejeitados
- **Profundidade como proporção entre linhas de implementação e linhas de interface** (Ousterhout): recompensa inflar a implementação. Em vez disso, usamos profundidade-como-alavancagem.
- **"Interface" como a palavra-chave `interface` do TypeScript ou os métodos públicos de uma classe**: muito estreito — interface aqui inclui todo fato que um chamador precisa saber.
- **"Boundary"**: sobrecarregado com bounded context do DDD. Diga **costura** ou **interface**.
## Indo mais a fundo
- **Aprofundando um cluster dadas as suas dependências** — veja [DEEPENING.md](DEEPENING.md): categorias de dependência, disciplina de costuras e testes no estilo substituir-não-acumular em camadas (replace-don't-layer).
- **Explorando interfaces alternativas** — veja [DESIGN-IT-TWICE.md](DESIGN-IT-TWICE.md): inicialize subagentes paralelos para projetar a interface de várias maneiras radicalmente diferentes e, em seguida, compare quanto a profundidade, localidade e posicionamento da costura.From matheusdmlopes/skills-ptbr, MIT.
More from matheusdmlopes/skills-ptbr
- 0.526score
diagnosing-bugs
matheusdmlopes
Ciclo de diagnóstico para bugs difíceis e regressões de desempenho.
SkillBFreshness: BClaude Code +9 - 0.524score
code-review
matheusdmlopes
Revise as alterações desde um ponto fixo (commit, branch, tag ou merge-base) ao longo de dois eixos — Padrões (o código segue os padrões de código…
SkillBFreshness: BClaude Code +9 - 0.524score
wizard
matheusdmlopes
Gere um assistente interativo em bash que guia um humano pelas etapas que apenas ele pode executar.
SkillBFreshness: BClaude Code +9 - 0.521score
improve-codebase-architecture
matheusdmlopes
Varra uma base de código em busca de oportunidades de aprofundamento, apresente-as como um relatório HTML visual e sabatine qualquer uma que você escolher.
SkillBFreshness: BClaude Code +9 - 0.521score
prototype
matheusdmlopes
Construa um protótipo descartável para responder a uma dúvida de design.
SkillBFreshness: BClaude Code +9 - 0.521score
triage
matheusdmlopes
Mova issues e PRs externos por uma máquina de estados de papéis de triagem — categorizar, verificar, sabatinar se necessário e escrever briefs prontos para…
SkillBFreshness: BClaude Code +9 - 0.521score
to-tickets
matheusdmlopes
Divida um plano, spec ou a conversa atual em um conjunto de tickets de bala traçante, cada um declarando suas arestas de bloqueio, publicados no tracker…
SkillBFreshness: BClaude Code +9 - 0.521score
setup-matt-pocock-skills
matheusdmlopes
Configure este repositório para as engineering skills — defina seu issue tracker, o vocabulário de labels de triagem e a estrutura de documentos de domínio.
SkillBFreshness: BClaude Code +9 - 0.521score
to-spec
matheusdmlopes
Transforme a conversa atual em uma spec e publique-a no issue tracker do projeto — sem entrevista, apenas a síntese do que já foi discutido.
SkillBFreshness: BClaude Code +9 - 0.521score
tdd
matheusdmlopes
Desenvolvimento orientado a testes (TDD).
SkillBFreshness: BClaude Code +9 - 0.521score
domain-modeling
matheusdmlopes
Construa e refine o modelo de domínio de um projeto.
SkillBFreshness: BClaude Code +9 - 0.521score
wayfinder
matheusdmlopes
Planeje uma grande fatia de trabalho — mais do que uma sessão de agente comporta — como um mapa compartilhado de decision tickets no seu issue tracker, e…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Aug 15, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/matheusdmlopes/skills-ptbr
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from matheusdmlopes
- 0.526score
diagnosing-bugs
matheusdmlopes
Ciclo de diagnóstico para bugs difíceis e regressões de desempenho.
SkillBFreshness: BClaude Code +9 - 0.524score
wizard
matheusdmlopes
Gere um assistente interativo em bash que guia um humano pelas etapas que apenas ele pode executar.
SkillBFreshness: BClaude Code +9 - 0.524score
code-review
matheusdmlopes
Revise as alterações desde um ponto fixo (commit, branch, tag ou merge-base) ao longo de dois eixos — Padrões (o código segue os padrões de código…
SkillBFreshness: BClaude Code +9 - 0.521score
improve-codebase-architecture
matheusdmlopes
Varra uma base de código em busca de oportunidades de aprofundamento, apresente-as como um relatório HTML visual e sabatine qualquer uma que você escolher.
SkillBFreshness: BClaude Code +9 - 0.521score
domain-modeling
matheusdmlopes
Construa e refine o modelo de domínio de um projeto.
SkillBFreshness: BClaude Code +9 - 0.521score
prototype
matheusdmlopes
Construa um protótipo descartável para responder a uma dúvida de design.
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get codebase-design running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
codebase-design skill. Agent Mart. https://agentmart.dev/skills/matheusdmlopes-codebase-design (last updated 2026-10-24)