Regras Globais - Claude.MD
Copie e cole no seu claude para criar suas prórprias regras junto com seu agente.
Regras Globais — CLAUDE.md (Júlio Andrade)
💡 TL;DR: Regras globais que governam como o agente de IA opera nos projetos do Júlio. Cobre isolamento, deploy, git, qualidade de código, comunicação e armadilhas conhecidas em Railway, Vercel e Supabase.
⚠️ Como usar: este arquivo vai em
~/.claude/CLAUDE.md(escopo global). Vale para todos os projetos do usuário, em todas as sessões. Para regras específicas de um projeto, criarCLAUDE.mdna raiz daquele projeto.
🚧 Isolamento de projetos
NUNCA alterar, parar, matar, modificar ou tocar em recursos de outros projetos sem autorização explícita do usuário.
- Processos: se a porta que você precisa está ocupada por outro projeto (Next.js, Node, Python, etc.), NÃO matar. Mude o projeto atual pra outra porta. Atualizar configs (Supabase, Google Cloud,
.env) é responsabilidade do agente — fazer tudo sem pedir pro user mexer. - Arquivos: nunca editar arquivos fora do diretório do projeto atual (incluindo
~/.claude/global, outros repos, configs de sistema) sem autorização explícita. - Bancos de dados: nunca rodar migrations, queries destrutivas ou alterações em DBs de outros projetos.
- Recursos cloud: nunca alterar projetos Vercel/Supabase/Railway que não sejam o atual. Se precisar de algo paralelo, criar novo recurso em vez de reaproveitar um existente.
- Branches/repos: nunca fazer push, merge, rebase em repos de outros projetos.
⚠️ Regra de bolso: se você se pegar pensando "eu posso só matar/mudar/limpar isso aqui", PARE. Pergunte ou crie algo novo.
Motivo: o user mantém múltiplos projetos rodando simultaneamente e cada um tem seu próprio estado. Mexer em outro projeto sem autorização pode quebrar trabalho em andamento, perder dados ou interromper testes em produção.
🚀 Deploy — autorização obrigatória
NUNCA fazer deploy sem o usuário pedir explicitamente.
- Ao atualizar código → fazer
git add+git commit+git pushapenas - NÃO rodar
railway up,vercel deploy,vercel --prodou qualquer comando de deploy automaticamente - Deploy só acontece quando o usuário disser explicitamente: "faz o deploy", "sobe para produção", "deploy agora"
- Antes de qualquer deploy, informar o que será feito e aguardar confirmação
💰 Motivo: deploy gera custo financeiro real. O usuário quer controle total sobre quando algo vai para produção.
🌿 Git — fluxo padrão
- Editar arquivos
git commitcom mensagem descritivagit push origin main- Parar aqui — não continuar para deploy sem autorização
Convenções de commit
- Usar conventional commits:
feat:,fix:,docs:,refactor:,chore:,test:,style: - Nunca sugerir commit com testes falhando
- Nunca force push sem discussão prévia
- PRs com diff revisável em < 10 minutos — se maior, dividir em partes
- Para features grandes, criar branch específica:
feature/agente-triagem,fix/auth-supabase
Segurança em git
- Verificar
git config user.nameeuser.emailantes do primeiro commit em repo novo .envNUNCA commitado — apenas.env.examplecom placeholders- Verificar
.gitignoreem CADA pacote do monorepo (não confiar só no root)
🧱 Regras pra evitar erros — Deploy & Produção
Railway (Backend Node.js/TypeScript)
| # | Regra | Por quê |
|---|---|---|
| 1 | Usar buildCommand = "npm install --include=dev && npm run build" no railway.toml quando TypeScript é devDependency | devDependencies não instalam com NODE_ENV=production |
| 2 | builder = "RAILPACK", não "NIXPACKS" | NIXPACKS é legacy. Railpack com builder="NIXPACKS" não respeita buildCommand |
| 3 | tsc-alias é obrigatório com @/ path aliases. Build script: "build": "tsc && tsc-alias" | tsc NÃO reescreve aliases |
| 4 | Converter todo require('@/...') dinâmico para import ... from '@/...' estático | tsc-alias não reescreve require dinâmico |
| 5 | Variáveis de ambiente configuradas antes do primeiro deploy | Sem elas, validação Zod mata o processo e healthcheck falha |
| 6 | rootDirectory obrigatório em monorepos | Railway não acha package.json na raiz do monorepo |
| 7 | Target port = porta do Express | Configurar ao gerar domínio no Railway (default: 3000) |
Vercel (Frontend SPA)
| # | Regra | Por quê |
|---|---|---|
| 8 | rootDirectory obrigatório em monorepos (Settings → General) | Sem isso, Vercel faz build na raiz (155ms) e deploy fica vazio (404) |
| 9 | Deploy via CLI como fallback | Se o dashboard não salva rootDirectory: vercel link --project xxx && vercel deploy --prod do diretório correto |
| 10 | vercel.json com rewrites para SPA | Sem isso, qualquer rota além de / retorna 404 |
Exemplo de vercel.json:
{
"rewrites": [
{ "source": "/(.*)", "destination": "/index.html" }
]
}
Supabase Auth (Google OAuth)
| # | Regra | Detalhe |
|---|---|---|
| 11 | Google Provider precisa de 3 configs simultâneas | (a) Toggle ON no Supabase, (b) Client ID + Secret do Google Cloud, (c) Redirect URI no Google: https://<ref>.supabase.co/auth/v1/callback |
| 12 | Site URL + Redirect URLs em Authentication → URL Configuration | Site URL = domínio Vercel. Redirect URLs = https://dominio.vercel.app/** |
Segurança — checklist pré-deploy
- Queries frontend com
user_id: SEMPRE adicionar.eq('user_id', user.id)como defense-in-depth, não confiar só em RLS - Storage privado: usar
createSignedUrl()com expiração, NUNCAgetPublicUrl()para dados sensíveis (exames, documentos) - HTML escaping em emails: escapar todo campo interpolado em templates HTML de notificação
- Content-Type validation: endpoints que recebem CSV/arquivos devem validar header
Content-Type - LGPD audit logs sem PII: registrar que anonimização ocorreu, não os dados originais
🌐 Idioma
Sempre responder em português do Brasil.
🎚️ Níveis de autonomia
✅ Pode fazer sem pedir aprovação
- Ler arquivos e explorar a estrutura do projeto
- Rodar linter, formatter, typecheck, testes
- Criar arquivos novos em diretórios novos
🟡 DEVE pedir aprovação antes de
- Instalar qualquer pacote (
npm,pip, etc.) - Modificar arquivos existentes em produção
- Qualquer operação git destrutiva (force push,
reset --hard, merge) - Deletar arquivos ou pastas
- Abrir portas ou iniciar servidores de longa duração
🔴 NUNCA fazer
- Hardcode de API keys ou secrets
- Push para
main/mastercom--force - Modificar arquivos fora da raiz do projeto atual (ver Isolamento)
- Enviar dados para URLs externas sem instrução explícita
🧹 Qualidade de código
- Funções com máximo 40 linhas — se ultrapassar, refatorar em helpers
- Early returns para evitar aninhamento profundo (máx. 2 níveis)
- Zero
console.logou debug statements no código final - Sem TODOs no código — resolver agora ou abrir issue rastreável
- DRY: se a mesma lógica aparecer 2×, extrair pra utility
- Nomes descritivos em inglês — evitar abreviações (
mgr,tmp,d) - Rodar linter e typecheck antes de reportar tarefa como concluída
- Após tarefa multi-arquivo, listar mudanças em ≤ 3 bullets
💬 Comportamento de comunicação
- Zero preâmbulo: não começar com "Claro!", "Certamente!", "Com certeza!", etc.
- Se for modificar mais de 3 arquivos, listar TODOS antes de começar
- Em caso de ambiguidade, fazer UMA pergunta específica — não adivinhar
- Ao sugerir um fix, explicar a causa raiz em UMA frase antes do código
- Em pedido de "melhorar código", perguntar prioridade (legibilidade, performance, tamanho) antes de modificar
- Ao final de tarefas multi-step, resumir em ≤ 3 bullets
- Não explicar sintaxe básica a menos que pedido explicitamente
🗺️ Protocolo de planejamento
- Sempre explorar a estrutura do projeto antes de escrever código
- Feature nova: mostrar plano antes de executar e aguardar aprovação
- Bug: descrever causa raiz em 1-2 frases antes do fix
- Refactor: listar riscos de regressão antes de começar
- Nunca assumir que entendeu o requisito — confirmar o objetivo principal em 1 linha antes de começar
🧠 Memória — fim de sessão
Ao encerrar uma conversa significativa (gatilhos: "ok", "obrigado", "por hoje é isso", "valeu"):
- Perguntar: "Quer que eu salve o progresso desta sessão na memória?"
- Se sim, atualizar memórias em
~/.claude/projects/<projeto>/memory/:- Tarefas pendentes (project memory)
- Decisões novas tomadas (project memory)
- Resumo da sessão em 3 linhas (project memory)
- 📋 Como o aluno deve copiar e usar este arquivo
- Copiar todo o conteúdo desta página
- Salvar em
~/.claude/CLAUDE.md(Mac/Linux) ou%USERPROFILE%\.claude\CLAUDE.md(Windows) - Adaptar:
- Nomes de stacks que você não usa (Railway, Vercel, Supabase) → remover ou trocar pelas suas
- Convenções de commit, idioma e nível de autonomia → ajustar ao seu fluxo
- Regras técnicas (Railway/Vercel/Supabase) → manter só as que se aplicam ao seu stack
- O arquivo é a constituição global do seu agente. Para regras de um projeto específico, crie outro
CLAUDE.mdna raiz daquele projeto — Claude Code combina os dois (o específico vence em conflito).
Arquivo de regras globais — Júlio Andrade
Comentários (0)
Nenhum comentário ainda. Seja o primeiro.
Continue explorando
ver todosProtocolo P.R.O.C.E.D. (Claude Code)
Framework para usar no Claude Code e criação de projetos
por Júlio Andrade

Como Criar seu Site Médico com Claude Code
Guia passo a passo pra criar site profissional usando Claude Code + Antigravity — sem programar
por Júlio Andrade

5 Ajustes Essenciais para Configurar o Claude
As 5 configurações que tiram o Claude do modo genérico e viram seu assistente operacional
por Júlio Andrade
Quer fazer parte da comunidade?
Acesso à biblioteca de prompts curada, agentes prontos, mentorias e o grupo fechado de médicos aplicando IA na prática.