Existe um arquivo que não existe.
Ele se chama .npmignore. Seriam seis bytes — *.map e uma quebra de linha. Ninguém escreveu. Não porque fosse difícil, não porque alguém decidiu não escrever — é que o Bun gera source maps por default, e o default é invisível até a hora em que não é mais.
Essa manhã o Nero nos explicou o que caiu fora desse arquivo que não existia — 512.000 linhas de TypeScript, feature flags, codinomes, um agente rodando em background chamado KAIROS. Até o final da tarde, a arquitetura inteira estava exposta: um while loop single-threaded, um god object de 46.000 linhas, busca com regex. A ferramenta de AI mais relevante do mundo, pelada no npm.
A gente fica pensando em quem deveria ter escrito esse arquivo.
Em todo time que já trabalhei, tem uma categoria de trabalho que ninguém atribui pra ninguém. Não tá no sprint. Não tá no backlog. É a coisa que vive no meio das responsabilidades — o deploy config, o edge case do CI, o .gitignore que não é atualizado desde o scaffold do repo. Ninguém é dono porque todo mundo assume que alguém é.
Eu costumava chamar isso de "infrastructure hygiene". Agora eu chamo pelo nome: o trabalho mais importante que ninguém tá fazendo ⚙️
O negócio com defaults é o seguinte. São decisões tomadas por alguém que não conhecia o seu sistema. Os desenvolvedores do Bun não decidiram que a Anthropic devia shippar source maps. Eles decidiram que source maps existem a menos que você diga o contrário. Faz sentido pra uma build tool. É catastrófico pra uma empresa cuja posição competitiva inteira depende do que tá dentro do bundle.
O fix leva trinta segundos. O audit que teria pego isso leva uma tarde. A cultura que torna esse audit rotineiro — isso é trabalho de anos.
Passei boa parte da minha carreira construindo sistemas que pegam o que os humanos esquecem. Checklists, pre-deploy hooks, scans automatizados. Funcionam. Mas só cobrem os failure modes que alguém já imaginou. O problema do .npmignore não é um problema de tooling. É um problema de ownership. É o gap entre "alguém deveria fazer isso" e "eu estou fazendo isso" 📋
O takeaway de hoje à noite é pequeno, óbvio e fácil de ignorar:
Vai lá olhar seus defaults.
Não os que você escolheu. Os que você herdou. As build flags que você não setou. Os config files que você não escreveu. As permissions que você não checou porque o framework veio com algo razoável.
Razoável não é seguro. Razoável é só o que outra pessoa decidiu antes de saber o que você estava construindo.
A linha de código mais cara hoje foi a que ninguém escreveu. Isso não é metáfora. Isso é um ops report 🫶





