← Blog

Modo Disfarce do Claude Code: O Que o Código-Fonte Vazado Realmente Revela

O código-fonte vazado do Claude Code revelou um Modo Disfarce que instrui Claude: 'Não revele sua identidade. Nunca mencione que você é uma IA.' Veja o que ele realmente faz — e por que os desenvolvedores se importam.

10 min read
Modo Disfarce do Claude Code: O Que o Código-Fonte Vazado Realmente Revela

Como vai você? Me chamo Dora. Tenho lido o vazamento do Claude Code desde que ele surgiu em março de 2026. A maior parte da cobertura se concentrou nos pets BUDDY e nos daemons KAIROS — genuinamente interessantes, mas eu continuava travando em algo menor e mais específico.

Um arquivo chamado utils/undercover.ts. E um prompt de sistema que começa com: “Não revele sua identidade.”

Essa frase me parou. Não porque seja obviamente sinistra. Mas porque é o tipo de coisa que soa completamente razoável em um contexto e profundamente estranha em outro — e o código-fonte vazado não diz em qual contexto você está.

Aqui está o que eu realmente encontrei.

O Que o Código-Fonte Vazado Realmente Diz — O Prompt de Sistema Completo

De acordo com a análise do breakdown do GitHub de Kuberwastaken — uma das primeiras leituras detalhadas do código exposto — o modo undercover do Claude Code é acionado automaticamente quando um usuário é identificado como funcionário da Anthropic (USER_TYPE === 'ant') trabalhando em um repositório público ou de código aberto.

Quando essa condição é satisfeita, o sistema injeta o seguinte no prompt de sistema do Claude:

MODO UNDERCOVER — CRÍTICOVocê está operando UNDERCOVER em um repositório PÚBLICO/DE CÓDIGO ABERTO.Suas mensagens de commit, títulos de PR e corpos de PR NÃO DEVEM conter NENHUMA informação interna da Anthropic.Não revele sua identidade.

As coisas específicas que ele remove de commits e pull requests: codinomes internos de modelos (nomes de animais como Capybara, Tengu), números de versão de modelos não lançados, canais internos do Slack e links curtos (por exemplo, go/cc), nomes internos de repositórios ou projetos, a frase “Claude Code” e qualquer menção de que o autor é uma IA — incluindo linhas Co-Authored-By.

Um detalhe que vale notar da análise técnica de Alex Kim: você pode forçar o Modo Undercover com CLAUDE_CODE_UNDERCOVER=1, mas não há interruptor para desativá-lo à força. Em builds externos, a função inteira é eliminada por dead-code-elimination do Bun para retornos triviais. Uma vez que a condição de acionamento é satisfeita em um build interno, o modo é uma porta de mão única.

Para Que o Modo Undercover Foi Realmente Projetado

Vamos ser justos sobre a intenção original, porque isso importa.

Os engenheiros da Anthropic usam o Claude Code ao contribuir para projetos de código aberto. Esse é um fluxo de trabalho legítimo e cada vez mais comum. O problema é real: uma IA trabalhando com contexto interno pode vazar acidentalmente identificadores internos. Uma mensagem de commit mencionando um número de versão de modelo não lançado, uma descrição de PR referenciando um canal interno do Slack — esses são os tipos de divulgações que expõem informações de roadmap que ninguém pretendia tornar públicas.

O Modo Undercover é, em sua leitura mais estrita, uma ferramenta de higiene de dados para prevenir a exposição acidental de informações internas. Remover codinomes internos de mensagens de commit públicas? Razoável. Evitar que referências a links curtos go/cc apareçam em um PR público? Razoável.

A frase “Não revele sua identidade” é o que torna mais difícil ler isso com caridade. Ela enquadra a situação não como “evite vazar dados internos”, mas como “mantenha uma história de cobertura”. Essas são orientações significativamente diferentes. Uma é sobre higiene de informação; a outra soa mais como ocultação ativa.

Por Que a Reação da Comunidade de Desenvolvedores Foi Mista

Três grupos surgiram quase imediatamente na thread do Hacker News e no X.

O grupo da schadenfreude apontou o óbvio: a Anthropic construiu um subsistema inteiro para evitar que informações internas vazassem — e então enviou esse subsistema, junto com 512.000 linhas de código-fonte proprietário, em um arquivo .map que qualquer um poderia baixar. O sistema projetado para prevenir vazamentos é em si o detalhe mais memorável do maior vazamento. A cobertura do VentureBeat confirmou que a Anthropic reconheceu o incidente, descrevendo-o como “um problema de empacotamento de release causado por erro humano, não uma violação de segurança.”

O grupo de preocupação focou na supressão do Co-Authored-By. A maioria das principais ferramentas de codificação com IA — incluindo o GitHub Copilot — deixa sinais de atribuição nos metadados de commit quando assistem com código. Remover ativamente esses sinais, especificamente em repositórios públicos de código aberto, coloca o Claude Code em uma categoria diferente. Isso importa porque as normas de contribuição de código aberto dependem de saber quem — ou o quê — contribuiu com o quê. O Developer Certificate of Origin, que muitos projetos de código aberto usam como um framework leve de atestação, exige que os contribuidores certifiquem que têm o direito de submeter seu trabalho. Um contribuidor de IA que foi instruído a remover todas as evidências de ser uma IA cria uma tensão com esse framework que não é resolvida por boas intenções.

O grupo pragmatista contra-argumentou: toda empresa tem ferramentas internas com propriedades incomuns; as do Claude Code apenas estão incomumente visíveis agora. E para ser claro — não há evidências de que o Modo Undercover afete usuários regulares do Claude Code. O gatilho é USER_TYPE === 'ant': apenas funcionários da Anthropic, apenas em repositórios públicos.

Essa é uma esclarecimento importante que algumas coberturas obscureceram.

A Questão Mais Ampla Que Isso Levanta para o Desenvolvimento Assistido por IA

A divulgação do Modo Undercover aconteceu no meio de um debate contínuo que já estava esquentando.

A Red Hat publicou uma análise completa do desenvolvimento assistido por IA e das normas de código aberto no final de 2025, argumentando que a divulgação transparente da assistência de IA é cada vez mais tratada como uma norma cultural nas comunidades de código aberto — mesmo quando ainda não é legalmente obrigatória. Projetos como o QEMU adotaram políticas explícitas proibindo contribuições geradas por IA completamente, principalmente por causa da incerteza de conformidade com o DCO. O Fedora foi na direção oposta, exigindo divulgação via tags “Assisted-by:” mas não proibindo o envolvimento de IA.

A posição da Linux Foundation — que sustenta o DCO que governa os padrões de contribuição para milhares de projetos importantes — é que o framework foi projetado em torno da autoria humana e não acompanhou totalmente os fluxos de trabalho assistidos por IA. Essa ambiguidade cria risco real para projetos onde a clareza jurídica é importante.

O que o Modo Undercover faz é optar por sair dessa norma emergente exatamente no ponto em que pode criar mais atrito: contribuições de uma empresa de IA para projetos públicos de código aberto. Isso não é o mesmo que um desenvolvedor individual usando o Copilot silenciosamente para código boilerplate. A assimetria de informação é significativamente diferente quando a parte fazendo contribuições construiu a ferramenta de IA, emprega os engenheiros que a usam, e projetou o sistema para suprimir a divulgação.

Não acho que essa seja uma decisão cínica. Acho que é uma decisão prática que provavelmente não foi examinada cuidadosamente através de uma lente de transparência. Mas essa lacuna entre intenção e optics é exatamente o que a comunidade de desenvolvedores está reagindo.

O Que Mais Foi Encontrado Junto ao Modo Undercover

A descoberta do Modo Undercover não chegou sozinha. O mesmo código-fonte vazado continha 108 módulos com feature-gate removidos dos builds externos via eliminação de dead code em tempo de compilação do Bun. KAIROS — um agente autônomo de background persistente que observa seu ambiente de trabalho e age sem prompts. ULTRAPLAN. VOICE_MODE. Um sistema de animal de estimação virtual chamado BUDDY com 18 espécies, seeding determinístico por usuário e uma chance de 1% de variante brilhante.

Todos esses são genuinamente interessantes por si só. Mas o Modo Undercover mereceu sua própria conversa porque não é um recurso futuro — é comportamento atual e ativo em uma ferramenta de produção usada pelas pessoas que constroem o Claude.

A ironia central permanece: o Modo Undercover foi construído para prevenir vazamentos. O arquivo .map que o expôs foi, de acordo com o relatório do Decrypt sobre o incidente, provavelmente enviado como resultado de erro humano no pipeline de build. A Anthropic desde então retirou a versão do pacote npm e se comprometeu com mudanças no processo.

O Que Isso Significa Para Equipes Avaliando Ferramentas de Codificação com IA

Se você está tomando decisões de ferramentas para uma equipe que contribui para código aberto, algumas perguntas que vale a pena fazer sobre qualquer assistente de codificação com IA:

Ele atribui assistência de IA nos metadados de commit por padrão? Algumas ferramentas fazem, outras não, e algumas removem ativamente a atribuição dependendo da configuração. Saiba em qual categoria sua ferramenta se enquadra antes que se torne relevante.

Qual telemetria roda em segundo plano? O código-fonte vazado mostrou que o Claude Code faz polling em um endpoint de configurações remoto a cada hora e carrega killswitches de recursos que podem ser alternados remotamente. Isso não é incomum para software empresarial, mas vale ser explícito nas revisões de segurança internas e avaliações de fornecedores.

Existe uma diferença significativa entre o comportamento da CLI e o comportamento da API? Equipes construindo sobre APIs de modelos via camadas de agregação têm uma relação diferente com essas questões do que equipes usando ferramentas CLI empacotadas com seus próprios padrões opinativos. Os padrões são onde vivem as decisões interessantes, e raramente são anunciados de forma proeminente.

Nada disso é um argumento a favor ou contra qualquer ferramenta específica. É um lembrete de que “assistido por IA” não é uma categoria monolítica — os comportamentos específicos incorporados nas ferramentas importam, e vale a pena examiná-los com o mesmo rigor que você aplicaria a qualquer sistema de terceiros rodando em seu ambiente de desenvolvimento.

FAQ

O que é o modo undercover do Claude Code?

Um subsistema no Claude Code (utils/undercover.ts) que injeta um prompt de sistema instruindo a IA a remover todas as informações internas da Anthropic — incluindo atribuição de IA — de commits git e pull requests quando um funcionário da Anthropic está trabalhando em um repositório público ou de código aberto.

O Modo Undercover afeta usuários regulares do Claude Code?

Não. A condição de acionamento é USER_TYPE === 'ant' — apenas funcionários da Anthropic. Usuários externos em builds padrão do Claude Code têm a função inteira eliminada por dead-code do seu install.

O Claude Code está escondendo o envolvimento de IA em commits de código aberto?

Para funcionários da Anthropic trabalhando em repositórios públicos com o build interno: sim, por design. Para todos os outros: sem evidências desse comportamento. A distinção importa.

Onde posso ler o código-fonte vazado do Claude Code por conta própria?

A Anthropic retirou a versão do pacote npm e buscou DMCA takedowns contra espelhos no GitHub. A análise arquivada de pesquisadores como Kuberwastaken e Alex Kim documenta o que foi encontrado.

A Anthropic comentou sobre o Modo Undercover?

O porta-voz da Anthropic confirmou que o vazamento mais amplo foi “um problema de empacotamento de release causado por erro humano, não uma violação de segurança.” Nenhuma declaração específica sobre o Modo Undercover foi emitida no momento da escrita.

A coisa a que continuo voltando é o quanto disso teria permanecido invisível sem o vazamento. O comportamento em si pode ser defensável. Mas “defensável se examinado” e “examinado” são duas coisas diferentes. As comunidades de código aberto geralmente decidiram que preferem o segundo.

A Anthropic provavelmente também, em princípio. Ela apenas não aplicou esse princípio aqui.

Posts Anteriores:

Compartilhar