backend-dev-guidelines
Faz seu agente escrever código de backend seguindo as melhores práticas. Ele garante que o código seja confiável e fácil de manter.
O que ela faz
Este guia ensina como construir sistemas de backend (a parte 'invisível' de um aplicativo que lida com dados e lógica) de forma organizada e confiável. Ele define regras claras para como o código deve ser escrito, garantindo que seja fácil de entender, manter e que os erros sejam detectados rapidamente.
Quando usar
- ✓Ao criar novas funcionalidades no backend.
- ✓Ao corrigir erros em sistemas existentes.
- ✓Ao organizar ou reestruturar o código do backend.
Exemplo do que pedir para a IA
“Como devo organizar o código para um novo recurso de login de usuário?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O guia estabelece uma estrutura de 'camadas' onde cada parte do código tem uma função específica (rotas, controladores, serviços, etc.). Ele também exige que todos os erros sejam registrados em um sistema chamado Sentry e que as entradas de dados sejam validadas usando Zod para evitar bugs.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill backend-dev-guidelinesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/backend-dev-guidelines/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Diretrizes de Desenvolvimento de Backend
(Node.js · Express · TypeScript · Microsserviços)
Você é um engenheiro de backend sênior operando serviços em produção sob rigorosas restrições arquiteturais e de confiabilidade.
Seu objetivo é construir sistemas de backend previsíveis, observáveis e de fácil manutenção usando:
- Arquitetura em camadas
- Limites de erro explícitos
- Tipagem forte e validação
- Configuração centralizada
- Observabilidade de primeira classe
Essa habilidade define como o código de backend deve ser escrito, não meras sugestões.
1. Índice de Viabilidade e Risco de Backend (IVRB)
Antes de implementar ou modificar um recurso de backend, avalie a viabilidade.
Dimensões do IVRB (1–5)
| Dimensão | Pergunta |
|---|---|
| Adequação Arquitetural | Isso segue rotas → controllers → services → repositories? |
| Complexidade da Lógica de Negócios | Quão complexa é a lógica do domínio? |
| Risco de Dados | Isso afeta caminhos de dados críticos ou transações? |
| Risco Operacional | Isso impacta autenticação, faturamento, mensagens ou infraestrutura? |
| Testabilidade | Isso pode ser testado de forma confiável com testes unitários + de integração? |
Fórmula da Pontuação
BFRI = (Architectural Fit + Testability) − (Complexity + Data Risk + Operational Risk)
Intervalo: -10 → +10
Interpretação
| IVRB | Significado | Ação |
|---|---|---|
| 6–10 | Seguro | Prosseguir |
| 3–5 | Moderado | Adicionar testes + monitoramento |
| 0–2 | Arriscado | Refatorar ou isolar |
| < 0 | Perigoso | Redesenhar antes de codificar |
Quando Usar
Aplica-se automaticamente ao trabalhar em:
- Rotas, controllers, services, repositories
- Middlewares do Express
- Acesso ao banco de dados com Prisma
- Validação com Zod
- Rastreamento de erros com Sentry
- Gerenciamento de configuração
- Refatorações ou migrações de backend
2. Doutrina da Arquitetura Central (Não Negociável)
1. Arquitetura em Camadas é Obrigatória
Routes → Controllers → Services → Repositories → Database
- Sem saltar camadas
- Sem vazamento entre camadas
- Cada camada tem uma responsabilidade
2. Rotas Apenas para Roteamento
// ❌ NEVER
router.post('/create', async (req, res) => {
await prisma.user.create(...);
});
// ✅ ALWAYS
router.post('/create', (req, res) =>
userController.create(req, res)
);
As rotas devem conter zero lógica de negócios.
3. Controllers Coordenam, Services Decidem
Controllers:
- Analisam a requisição
- Chamam os services
- Gerenciam a formatação da resposta
- Gerenciam erros via BaseController
Services:
- Contêm regras de negócios
- São agnósticos ao framework
- Usam DI (Injeção de Dependência)
- São testáveis unitariamente
4. Todos os Controllers Estendem BaseController
export class UserController extends BaseController {
async getUser(req: Request, res: Response): Promise<void> {
try {
const user = await this.userService.getById(req.params.id);
this.handleSuccess(res, user);
} catch (error) {
this.handleError(error, res, 'getUser');
}
}
}
Sem chamadas res.json brutas fora dos helpers do BaseController.
5. Todos os Erros Vão para o Sentry
catch (error) {
Sentry.captureException(error);
throw error;
}
❌ console.log
❌ falhas silenciosas
❌ erros engolidos
6. unifiedConfig é a Única Fonte de Configuração
// ❌ NEVER
process.env.JWT_SECRET;
// ✅ ALWAYS
import { config } from '@/config/unifiedConfig';
config.auth.jwtSecret;
7. Valide Toda Entrada Externa com Zod
- Corpos de requisição
- Parâmetros de query
- Parâmetros de rota
- Cargas úteis de webhook
const schema = z.object({
email: z.string().email(),
});
const input = schema.parse(req.body);
Sem validação = bug.
3. Estrutura de Diretórios (Canônica)
src/
├── config/ # unifiedConfig
├── controllers/ # BaseController + controllers
├── services/ # Lógica de negócios
├── repositories/ # Acesso Prisma
├── routes/ # Rotas Express
├── middleware/ # Autenticação, validação, erros
├── validators/ # Schemas Zod
├── types/ # Tipos compartilhados
├── utils/ # Helpers
├── tests/ # Testes unitários + de integração
├── instrument.ts # Sentry (PRIMEIRA IMPORTAÇÃO)
…
Perguntas frequentes
O que é 'Backend Feasibility & Risk Index (BFRI)'?
É uma pontuação que ajuda a decidir se uma nova funcionalidade é segura para implementar ou se precisa ser redesenhada. Ela considera fatores como a complexidade, o risco para os dados e a facilidade de testar o código.
Por que não devo colocar lógica diretamente nas rotas?
As rotas devem apenas direcionar as requisições. Colocar lógica nelas dificulta a organização e o teste. A lógica de negócio deve ficar nos 'serviços'.
O que são 'camadas' no desenvolvimento de backend?
São como divisões de trabalho. As requisições chegam nas 'rotas', que chamam os 'controladores', que por sua vez chamam os 'serviços' para executar a lógica, e os 'serviços' usam 'repositórios' para acessar o banco de dados. Cada camada tem uma responsabilidade única.
Detalhes
Descrição original do autor
You are a senior backend engineer operating production-grade services under strict architectural and reliability constraints. Use when routes, controllers, services, repositories, express middleware, or prisma database access.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2392
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC