Skip to main content

O desafio

Em um monorepo, pacotes diferentes têm padrões diferentes. Seu frontend em React se preocupa com padrões de componentes, seu backend em NestJS se preocupa com injeção de dependência, e suas libs compartilhadas se preocupam com estabilidade de API. Uma revisão única para todos não funciona.

Visão geral da estratégia

O Kodus suporta três níveis de configuração que se mapeiam naturalmente para um monorepo:

Passo 1 — Mapeie seus pacotes

Identifique as áreas distintas no seu monorepo e suas necessidades de revisão:

Passo 2 — Crie configs em nível de diretório

Vá para Configurações de Code ReviewRepositório → clique em um diretório para configurá-lo. Cada diretório pode ter seus próprios:
  • Kody Rules (em nível de arquivo e de PR)
  • Opções de revisão (quais tipos de análise habilitar)
  • Controle de sugestões (filtros de severidade, máximo de sugestões)
  • Caminhos ignorados

Passo 3 — Escreva regras direcionadas

Regras de frontend (escopo: apps/web/)

Regras de backend (escopo: apps/api/)

Regras de biblioteca compartilhada (escopo: libs/shared/)

Passo 4 — Use Memories para convenções transversais

Algumas convenções se aplicam em todo lugar. Ensine-as como Memories:

Passo 5 — Configure o controle de sugestões por diretório

Pacotes de alto tráfego podem precisar de limites mais rígidos:
  • apps/web/ — máximo 5 sugestões, filtro de severidade média (frontend evolui rápido)
  • libs/shared/ — máximo 15 sugestões, filtro de severidade baixa (estabilidade importa)
  • infra/ — máximo 3 sugestões, filtro de severidade alta (menos, mas críticas)

Passo 6 — Ignore caminhos gerados

Adicione ignores específicos do monorepo para evitar ruído:

Dicas

  • Comece com 2-3 regras por diretório e expanda com base no que seu time realmente sinaliza nas revisões
  • Use herança de regras — regras em nível de organização cobrem segurança, nível de repositório cobre convenções, nível de diretório cobre arquitetura
  • Se uma regra disparar com muita frequência em um pacote, mas for válida nos demais, exclua esse diretório da regra em vez de enfraquecê-la
Para mais informações sobre configurações de diretório, consulte Configuração em Nível de Diretório. Para herança de regras, consulte Herança de Regras.