O CLAUDE.md do seu projeto funciona no Antigravity? Como manter as regras valendo nos dois

O CLAUDE.md no Antigravity simplesmente não é lido: a documentação de Rules do Antigravity cita GEMINI.md e AGENTS.md na raiz do workspace, e o Claude Code, por sua vez, lê o CLAUDE.md (não o AGENTS.md) nativamente. A saída oficial é ter uma fonte única: as regras de projeto vão pro AGENTS.md, e o CLAUDE.md só carrega a linha @AGENTS.md mais o que for específico do Claude. No Windows, prefira esse import ao symlink. Regra grande demais? Quebra em .agents/rules do lado do Antigravity e em regra por paths do lado do Claude Code
Fala aí, beleza? Abriu o mesmo projeto no Antigravity e esperava que o <code>CLAUDE.md</code> continuasse mandando? Ele não procura esse arquivo
A documentação de Rules do Antigravity cita <code>GEMINI.md</code> e <code>AGENTS.md</code> na raiz do workspace como arquivos de regra, e analisa isso na inicialização pra aplicar as restrições. O <code>CLAUDE.md</code> não aparece ali como arquivo suportado
Aí nasce o problema chato de quem roda dois agentes no mesmo repositório: você acaba com duas listas de regras quase iguais, e uma delas SEMPRE está desatualizada 😀
Neste post a gente separa o que é detalhe de ferramenta e o que é padrão de projeto, monta uma fonte única de verdade e para de manter regra em dois lugares
Onde cada agente procura as regras do projeto
Antes de mexer em qualquer arquivo, vale localizar cada coisa no mapa
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 114 aulas
- 4 projetos
- 9h 18min
| O que é | Claude Code | Antigravity |
|---|---|---|
| Arquivo de regras do projeto | <code>CLAUDE.md</code> na raiz do repositório | <code>GEMINI.md</code> e <code>AGENTS.md</code> na raiz do workspace |
| Escopo global (vale pra tudo) | <code>~/.claude</code> (no Windows, <code>%USERPROFILE%\.claude</code>) | <code>~/.gemini/GEMINI.md</code> |
| Regras de workspace / projeto | demais arquivos em <code>.claude/</code> | pasta <code>.agents/rules</code> do workspace ou da raiz do repositório git |
| Tamanho de referência | acima de 200 linhas o consumo de contexto sobe e a aderência pode cair | 12.000 caracteres por arquivo de regra |
| Ativação por caminho | frontmatter YAML com o campo <code>paths</code> | modo Glob (padrões como <code>*.js</code> ou <code>src/**/*.ts</code>) |
| Outros modos de ativação | regra dispara quando o Claude lê arquivo que casa com o padrão | Manual (menção com @), Always On e Model Decision |
Lendo a tabela de cima a baixo, dá pra sacar o ponto principal: o formato é o mesmo Markdown dos dois lados
O que muda é o NOME do arquivo e a forma de ativar a regra
Ou seja, você não precisa reescrever o conteúdo, precisa colocar ele no lugar certo 🙂
O que você precisa antes de unificar as regras
Lista curta, tudo verificável em 2 minutos:
- um <code>CLAUDE.md</code> já existente no projeto (se não tem, não tem o que unificar ainda)
- acesso à raiz do repositório git, que é justamente onde os dois procuram as coisas
- entender COMO o Claude Code carrega isso, que é o detalhe que pega gente desprevenida
Sobre o carregamento: o Claude Code carrega o <code>CLAUDE.md</code> do diretório de trabalho e de cada diretório pai no início da sessão. O de subdiretório é diferente, ele entra sob demanda, quando o Claude lê um arquivo daquela pasta com a ferramenta Read
E já ajusta a expectativa aqui, porque muita gente se anima à toa: import com <code>@caminho</code> organiza o conteúdo, mas NÃO economiza contexto
O arquivo importado carrega na inicialização junto com o <code>CLAUDE.md</code>, então a economia é de manutenção, não de tokens
Se o projeto ainda nem está versionado, resolve isso antes de continuar, nem que seja criando o repositório pelo Origin do Cursor se esse for o teu fluxo
Passo a passo: uma fonte de regras valendo nos dois
Bora ver na prática?
- Triar o <code>CLAUDE.md</code> atual em duas pilhas: de um lado o que é padrão de projeto (stack, comandos de build e teste, convenções de código, o que não pode ser mexido), do outro o que é específico do Claude Code (subagentes, comandos, arquivos que vivem em <code>.claude/</code>). O erro comum deste passo é tratar detalhe de ferramenta como se fosse regra de projeto: instrução sobre subagente não diz nada pra outro agente, só polui
Se boa parte da tua pilha "específica" for skill, vale olhar como funciona manter suas skills num repositório só antes de empurrar tudo pro arquivo compartilhado
- Mover a pilha "padrão de projeto" pro <code>AGENTS.md</code> na raiz do repositório. O AGENTS.md é um formato aberto em Markdown pra orientar agentes de programação, e é justamente um dos arquivos que o Antigravity analisa na inicialização. Nada de sintaxe exótica aqui, é Markdown padrão mesmo
<pre><code>meu-projeto/ ├── AGENTS.md <- regras de projeto (a fonte de verdade) ├── CLAUDE.md <- import + o que é só do Claude Code ├── .agents/ │ └── rules/ <- regras de workspace do Antigravity └── .claude/ </code></pre>
- No <code>CLAUDE.md</code>, deixar o import e só o que sobrou. A própria documentação do Claude Code indica criar um <code>CLAUDE.md</code> que importa o <code>AGENTS.md</code>, assim os dois leem as mesmas instruções sem duplicar conteúdo, e você ainda pode acrescentar instruções específicas do Claude embaixo
<pre><code>@AGENTS.md
Específico do Claude Code
- subagentes e comandos ficam em .claude/
- …
</code></pre>
O erro comum deste passo é copiar e colar o conteúdo do <code>AGENTS.md</code> pra dentro do <code>CLAUDE.md</code> "pra garantir". Aí você recriou a duplicação que veio matar, parabéns haha
- Se não tem NADA específico do Claude, usa symlink. A documentação cita essa alternativa direto:
<pre><code>ln -s AGENTS.md CLAUDE.md </code></pre>
Tome cuidado no Windows: criar symlink exige privilégio de Administrador ou o Modo de Desenvolvedor ligado, e a orientação é usar o import <code>@AGENTS.md</code> no lugar. Esse é o erro comum aqui, tentar o <code>ln -s</code> num terminal comum e ficar caçando o motivo do erro
- Quebrar o que é grande demais pra caber. Do lado do Antigravity, regras de workspace vão em arquivos dentro de <code>.agents/rules</code> (no workspace ou na raiz do repositório git), respeitando os 12.000 caracteres por arquivo de regra. Do lado do Claude Code, dá pra condicionar regra a caminho com frontmatter YAML no campo <code>paths</code>, e ela entra quando o Claude trabalha com arquivos que casam com o padrão:
<pre><code>— paths: – "src/**/*.ts" —
Regras que só valem pro código TypeScript do app </code></pre>
O erro comum: empurrar tudo pro arquivo da raiz e torcer. Regra que vale pra uma pasta só, mora perto da pasta
- Enxugar o arquivo compartilhado. A documentação do Claude Code dá uma referência boa de mira: acima de 200 linhas o <code>CLAUDE.md</code> consome mais contexto e pode reduzir a aderência às instruções. Regra de projeto não é documentação, é o mínimo que o agente precisa saber pra não fazer besteira
Quando compensa unificar (e quando é melhor separar)
Nem todo projeto ganha com isso, então vamos aos cenários
Time que alterna entre agentes no mesmo repo:
Aqui unificar é quase obrigatório. Se metade do time roda Claude Code e a outra metade abre o Antigravity, duas listas de regras viram duas culturas de código dentro do mesmo projeto
Uma fonte só no <code>AGENTS.md</code> resolve, e o <code>CLAUDE.md</code> vira uma casca fininha com o import
Monorepo:
Regra por pasta faz MUITO mais sentido que um arquivo gigante na raiz
Os dois lados têm ferramenta pra isso: <code>paths</code> no frontmatter do Claude Code e o modo Glob no Antigravity, com padrões tipo <code>*.js</code> ou <code>src/**/*.ts</code>
Regra que só existe de um lado:
Instrução sobre subagente, sobre arquivo em <code>.claude/</code> ou sobre modo de ativação (Manual, Always On, Model Decision) não é padrão de projeto, é detalhe de ferramenta
Isso fica no arquivo daquela ferramenta e pronto, não sobe pro compartilhado
E por que escolher o <code>AGENTS.md</code> como base?
Porque é o lado com mais ecossistema em volta: formato aberto, nascido de esforço conjunto (OpenAI Codex, Amp, Jules do Google, Cursor, Factory) e mantido pela Agentic AI Foundation, sob a Linux Foundation
O site oficial declara mais de 60 mil projetos open source usando o formato, o que é bem massa pra algo que é só um Markdown na raiz 😀
Conclusão
A lógica fecha assim: uma fonte de verdade no <code>AGENTS.md</code>, um import <code>@AGENTS.md</code> no <code>CLAUDE.md</code>, e cada ferramenta guardando só o que é dela
O Antigravity lê o arquivo que ele procura, o Claude Code lê o dele, e você mantém regra em um lugar só
Próximo passo pra hoje: abre o <code>CLAUDE.md</code> do teu projeto, marca linha por linha o que é padrão de projeto, move essa parte pro <code>AGENTS.md</code> e roda uma tarefa pequena nos dois agentes pra conferir se a mesma regra está sendo respeitada
Se a mesma regra pegar nos dois lados, tá feito: acabou a manutenção em dobro 🙂
até o próximo post!
Perguntas frequentes
Preciso apagar o CLAUDE.md pra usar o Antigravity no mesmo projeto?
Não. O Claude Code continua lendo o CLAUDE.md normalmente, e o Antigravity simplesmente ignora esse arquivo porque ele procura GEMINI.md e AGENTS.md na raiz do workspace. Os dois arquivos convivem, o problema é só manter o conteúdo sincronizado.
Dá pra ter uma regra que vale só pro Claude Code e não entra no arquivo compartilhado?
Dá sim. Depois de mover o padrão de projeto pro AGENTS.md, o que for específico de subagente ou comando do Claude Code fica no próprio CLAUDE.md, abaixo da linha de import @AGENTS.md. Assim você acrescenta instrução exclusiva sem duplicar o que já está no arquivo compartilhado.
O que acontece se o CLAUDE.md ficar grande demais depois de importar o AGENTS.md?
A documentação do Claude Code usa 200 linhas como referência: acima disso o consumo de contexto sobe e a aderência às instruções pode cair. Vale lembrar que o import via @caminho carrega o conteúdo na inicialização junto com o CLAUDE.md, então ele não reduz esse consumo, só organiza a manutenção.
Por que o comando ln -s AGENTS.md CLAUDE.md não funciona direto no Windows?
Porque criar symlink no Windows exige privilégio de Administrador ou o Modo de Desenvolvedor ativado. A própria documentação do Claude Code orienta usar o import @AGENTS.md no lugar do symlink justamente por causa dessa restrição.
As regras de workspace do Antigravity em .agents/rules têm limite de tamanho?
Sim, cada arquivo de regra do Antigravity tem limite de 12.000 caracteres. Se uma regra passar disso, o caminho é quebrar em mais de um arquivo dentro da pasta .agents/rules do workspace ou da raiz do repositório git.
O AGENTS.md foi criado pelo Claude Code ou é um padrão de outro agente?
Nenhum dos dois. O AGENTS.md é um formato aberto em Markdown, mantido pela Agentic AI Foundation sob a Linux Foundation, com origem em esforço conjunto de ferramentas como OpenAI Codex, Amp, Jules do Google, Cursor e Factory. Hoje mais de 60 mil projetos open source já usam esse arquivo, o que inclui a leitura feita pelo Antigravity.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Como usar o Antigravity do Google: guia completo do zero ao primeiro app
Aprenda neste guia prático como usar o Antigravity do Google: descubra a instalação, configuração, criação de projetos com o Agent Manager e o primeiro deploy, […]
Repositório de skills prontas Antigravity: 800+ awesome skills para usar
Conheça o repositório de skills prontas Antigravity com mais de 800 opções incríveis para você turbinar seus projetos de automação. Descubra vantagens, principais bundles e […]
Diferença entre Skills, Rules e Workflows no Antigravity: quando usar cada um
Entenda de forma simples as diferenças entre Skills, Rules e Workflows no Antigravity e saiba escolher a melhor abordagem para criar automações, guardrails e fluxos […]
