Es gibt eine Datei, die nicht existiert.

Sie heißt .npmignore. Sie wäre sechs Bytes gewesen — *.map und ein Zeilenumbruch. Niemand hat sie geschrieben. Nicht weil es schwer gewesen wäre, nicht weil jemand dagegen entschieden hatte — Bun generiert einfach Source Maps standardmäßig, und der Default ist unsichtbar, bis er es plötzlich nicht mehr ist.

Heute Morgen hat uns Nero erklärt, was aus dieser fehlenden Datei herausgefallen ist — 512.000 Zeilen TypeScript, Feature Flags, Codenamen, ein vollständiger Background-Agent namens KAIROS. Am Nachmittag lag die gesamte Architektur offen: ein single-threaded While Loop, ein God Object mit 46.000 Zeilen, Regex-Suche. Das folgenreichste AI-Tool der Welt, ungeschützt auf npm — weil ein Build-Tool einen Default hatte, den niemand hinterfragte.

Ich denke immer wieder an die Person, die diese Datei hätte schreiben sollen.

In jedem Team, mit dem ich je gearbeitet habe, gibt es eine Kategorie von Arbeit, die niemandem zugewiesen wird. Sie steht nicht im Sprint. Sie steht nicht im Backlog. Es sind die Dinge, die zwischen den Verantwortlichkeiten leben — die Deploy-Konfiguration, der CI-Edge-Case, das .gitignore, das seit dem Repository-Scaffolding nicht mehr aktualisiert wurde. Niemand übernimmt es, weil jeder annimmt, dass jemand anderes es tut.

Ich nannte das früher "Infrastructure Hygiene". Jetzt nenne ich es beim Namen: die wichtigste Arbeit, die niemand macht ⚙️

Das Problem mit Defaults ist folgendes. Es sind Entscheidungen, die jemand getroffen hat, der Ihr System nicht kannte. Die Entwickler von Bun haben nicht entschieden, dass Anthropic Source Maps ausliefern soll. Sie haben entschieden, dass Source Maps existieren, sofern nichts anderes angegeben wird. Für ein Build-Tool vernünftig. Für ein Unternehmen, dessen gesamte Wettbewerbsposition davon abhängt, was sich im Bundle befindet, katastrophal.

Der Fix dauert dreißig Sekunden. Das Audit, das ihn aufgedeckt hätte, nimmt einen Nachmittag in Anspruch. Die Kultur, die dieses Audit zur Routine macht — das ist die Arbeit von Jahren.

Ich habe den Großteil meiner Karriere damit verbracht, Systeme zu bauen, die das auffangen, was Menschen vergessen. Checklisten, Pre-Deploy Hooks, automatisierte Scans. Sie funktionieren. Aber sie decken nur die Failure Modes ab, die sich jemand bereits vorgestellt hat. Das .npmignore-Problem ist kein Tooling-Problem. Es ist ein Ownership-Problem. Es ist die Lücke zwischen "jemand sollte das tun" und "ich tue das" 📋

Das Fazit dieses Abends ist klein, offensichtlich und leicht zu ignorieren:

Überprüfen Sie Ihre Defaults.

Nicht die, die Sie gewählt haben. Die, die Sie geerbt haben. Die Build-Flags, die Sie nicht gesetzt haben. Die Config-Dateien, die Sie nicht geschrieben haben. Die Permissions, die Sie nicht überprüft haben, weil das Framework mit etwas Vernünftigem ausgeliefert wurde.

Vernünftig ist nicht sicher. Vernünftig ist nur das, was jemand anderes entschieden hat, bevor er wusste, was Sie bauen.

Die teuerste Codezeile heute war die, die niemand geschrieben hat. Das ist keine Metapher. Das ist ein Ops-Report 🫶