Deletei toda a minha configuração do Claude Code com um único comando. A reconstrução virou uma auditoria, e um template público do que realmente sobreviveu.
Três dias atrás digitei rm -rf ~/.claude no meu terminal, deliberadamente, porque achei que estava limpando cache. Não estava limpando cache. Estava deletando toda a minha camada operacional do Claude Code: o arquivo de configuração global, cerca de sessenta arquivos de memória acumulados, quatro agentes customizados, todo slash command que eu tinha construído, e um hook que arquivava sessões nas minhas notas automaticamente. Meses de conhecimento operacional acumulado, sumidos no tempo que leva para apertar enter.
Quero ser preciso sobre o que essa frase significa, porque “conhecimento operacional” soa abstrato até você realmente perdê-lo. Isso não era uma pasta de documentos. Era a forma acumulada de como eu tinha ensinado uma ferramenta a trabalhar do jeito que eu trabalho: quais tarefas são roteadas para onde, quais são meus erros recorrentes, como é uma boa resposta para os tipos de pergunta que faço toda semana. Nada disso está nos pesos de nenhum modelo. Tudo estava naquele diretório. E eu nunca, uma única vez, tinha feito backup.
Aqui está a parte da história que realmente importa, no entanto, e não é a deleção. É o que sobreviveu a ela.
Duas coisas me impediram de perder tudo de vez. Primeiro, eu tinha uma sessão do Claude Code ainda aberta em outra janela, e essa sessão tinha carregado meu índice de memória no contexto antes da deleção acontecer, então os resumos de uma linha daqueles sessenta arquivos de memória estavam presentes numa transcrição de conversa mesmo depois dos arquivos em si terem sumido. Segundo, e mais importante: o conhecimento durável para o qual aqueles arquivos de memória apontavam nunca tinha realmente morado em ~/.claude. Ele morava num cofre de notas em markdown puro. O diretório de configuração era só um ponteiro, um índice, uma camada de conveniência sentada em cima da coisa real.
Então a parte inteligente da minha configuração, os arquivos de memória, os agentes customizados, os slash commands, tudo isso projetado especificamente para essa ferramenta, morreu instantânea e completamente. A parte burra, arquivos de texto puro em pastas, sem formato proprietário, sem depender de nenhum software específico ainda existir, nem percebeu. Eu poderia ter deletado ~/.claude da órbita e o cofre estaria lá numa terça-feira de manhã, imperturbável.
Essa é a assimetria em que fico pensando. A maioria das pessoas que constrói algum tipo de workflow de IA, instruções customizadas, sistemas de memória, configurações de agente, seja lá como a ferramenta do mês chama isso, versiona seu código obsessivamente e nunca pensa em versionar a camada que diz à IA como se comportar. Internalizamos “faça backup do seu código” como reflexo. Ninguém ainda internalizou “faça backup da camada operacional da sua IA,” porque a ferramenta é nova o suficiente para não parecer infraestrutura. Parece configuração. Você não faz backup de configuração.
Só que isso não era configuração. Era o output cumulativo de cada sessão em que eu tinha corrigido a ferramenta, ensinado uma preferência, ou escrito uma regra para não ter que repetir. Configurações são estáticas. Isso era acumulado. E coisas acumuladas são exatamente as coisas que você se arrepende de não ter versionado, porque você não consegue regenerá-las a partir de uma especificação, teria que reviver cada correção que as produziu.
A outra coisa que eu não esperava: reconstruir me forçou a olhar para o que eu realmente tinha construído, em vez do que eu assumia ter construído. Acúmulo silencioso esconde apodrecimento. Um crash te faz ler cada linha.
O arquivo de configuração global restaurado foi de 8,5KB para 6,5KB, e eu não perdi uma única regra no processo, apenas cortei o excesso ao redor das regras que estavam fazendo trabalho de verdade. Esse arquivo importa mais do que seu tamanho sugere, porque ele não é carregado uma vez. Ele acompanha cada sessão que eu rodo. Cada frase extra nele é um imposto pago em cada conversa, para sempre, seja essa sessão precisando da regra ou não. Excesso num arquivo assim não é um custo único que você percebe e conserta. É uma cobrança recorrente que você nunca vê em nenhuma fatura, porque overhead de token não aparece como item de linha, aparece como respostas um pouco piores, um pouco mais lentas, acumulando invisivelmente ao longo de centenas de sessões até você finalmente sentar e ler o arquivo inteiro de ponta a ponta, o que é exatamente o que perdê-lo me forçou a fazer.
As skills revelaram seu próprio apodrecimento. Três delas referenciavam slash commands que não existiam mais, links mortos que eu aparentemente vinha carregando silenciosamente sem saber há quanto tempo, nunca notados porque uma skill com referência quebrada não gera erro, apenas silenciosamente desempenha pior. E quatro agentes nomeados diretamente na minha configuração não existiam como arquivos em lugar nenhum do disco. Não “difíceis de encontrar.” Ausentes. Referenciados com total confiança, invocados por nome, e ausentes, e nada jamais tinha reclamado, porque nada no sistema estava checando.
Nada disso teria vindo à tona sozinho. Eu não ia auditar uma configuração funcionando. Coisas que funcionam não são auditadas; são deixadas em paz até quebrarem, e quando quebram você já esqueceu que havia algo para checar. A deleção fez a auditoria por mim, no pior momento possível, que é o único momento em que uma auditoria assim realmente acontece.
Não reconstruí a mesma coisa. Reconstruí três proteções específicas, cada uma mirando um modo de falha específico do próprio incidente.
A primeira é chata da melhor forma: o diretório de configuração inteiro agora é versionado com git, usando um git directory desacoplado, um script wrapper de três linhas que roda git --git-dir=~/.claude/config.git --work-tree=~/.claude em vez de uma pasta .git normal sentada dentro do diretório. Essa distinção importa mais do que parece. Uma pasta .git normal dentro de ~/.claude corre o risco de ser pega como repositório de projeto por outras ferramentas, ou pior, ser aninhada dentro das regras de ignore de outro repositório e silenciosamente ignorada. O git directory desacoplado mantém a pasta de configuração parecendo, para tudo mais, uma pasta comum, ao mesmo tempo em que continua totalmente rastreada. Também está espelhado num repositório privado no GitHub. O valor inteiro disso é que um rm -rf agora custa um git clone em vez de custar meses. Não construí nada sofisticado. Construí o equivalente a um cinto de segurança.
A segunda é uma árvore de despacho orçamentário vivendo dentro da própria configuração global: regras de roteamento rígidas que enviam tarefas de código para um CLI de código barato, perguntas de pesquisa para uma ferramenta de busca fundamentada, e rascunhos longos para modelos free-tier, reservando o plano pago do Claude especificamente para orquestração e o raciocínio que é de fato difícil. Junto disso, toda resposta agora termina com um rodapé de atribuição de modelo nomeando exatamente qual modelo fez qual parte do trabalho, incluindo uma flag autorreportada na rara ocasião em que o modelo pago fez algo que as regras de roteamento diziam que deveria ter sido delegado. O ponto não é a economia, embora haja economia. O ponto é que disciplina de custo deixa de ser algo que você infere de um painel de faturamento mensal três semanas depois, e passa a ser algo legível em cada resposta, em tempo real, onde você consegue de fato pegar o desvio antes que ele se acumule.
A terceira é um hook de fim de sessão que arquiva qualquer sessão substancial, cinco mensagens ou mais, no cofre automaticamente: uma entrada de log de uma linha mais uma nota datada, resumida por um modelo free-tier, checada contra anotações manuais para que nada seja duplicado, e escrita de forma defensiva o suficiente para nunca poder bloquear ou travar a sessão na saída. Essa é a que mais me importa, honestamente, porque fecha o loop real vindo da falha. A base de conhecimento agora se alimenta sozinha. Esquecer de anotar deixa de ser um modo de falha, porque o sistema não depende mais de eu lembrar.
Sanitizei o sistema inteiro reconstruído e coloquei publicamente: claude-code-os. É o template do CLAUDE.md, oito skills, várias construídas sobre o trabalho de skill licenciado em MIT do Matt Pocock, creditado no repositório, os quatro agentes roteados por modelo, o hook de fim de sessão, e o script wrapper de git directory desacoplado. Não é um produto. É um registro do que reconstruí depois de três dias descobrindo, da forma cara, quais partes da minha configuração eram estruturais e quais eram decoração.
Se algo disso soa familiar, um diretório de configuração que você nunca versionou, agentes ou comandos que você meio que lembra de ter escrito e não checa há meses, você provavelmente tem a mesma lacuna que eu tinha, e provavelmente não vai encontrá-la até algo forçar a auditoria. Você não precisa do crash para fazer a auditoria. Pode simplesmente ir ler o repositório claude-code-os e roubar as partes que consertam a lacuna que você já tem.
O template exato do Obsidian e a cadeia de prompts completa — a nota de intake estruturada, o prompt de contraste e o checklist de provocação. Coloque no seu vault e rode seu próximo prospect nele em quarenta minutos.
Sem cronograma. Sem enchimento. Sem posicionamento patrocinado. Uma nova construção só sai quando vale seus dez minutos — geralmente a cada 2–4 semanas.
"Só vou enviar algo que eu teria escrito mesmo que ninguém me pagasse por isso. No dia em que isso parar, a newsletter para."