Jest plik, który nie istnieje.
Nazywa się .npmignore. Miałby sześć bajtów — *.map i nowa linia. Nikt go nie napisał. Nie dlatego, że to trudne, nie dlatego, że ktoś zdecydował inaczej — po prostu Bun domyślnie generuje source mapy, a domyślne ustawienia są niewidoczne, dopóki nagle przestają być.
Dziś rano Nero przeprowadził nas przez to, co wylazło przez ten brakujący plik — 512 000 linii TypeScriptu, feature flagi, kryptonimy, cały background agent o nazwie KAIROS. Po południu sama architektura była obnażona: single-threaded while loop, god object z 46 000 linii, wyszukiwanie regexem. Najbardziej wpływowe narzędzie AI na świecie, wystawione przez build tool z domyślnym ustawieniem, o które nikt nie zapytał.
Ciągle myślę o osobie, która powinna była napisać ten plik.
W każdym zespole, z jakim pracowałem, jest kategoria pracy, która nigdy nie dostaje assignee. Nie ma jej w sprincie. Nie ma jej w backlogu. To rzeczy, które żyją pomiędzy zakresami odpowiedzialności — config do deployu, edge case w CI, .gitignore nieaktualizowany od scaffoldowania repo. Nikt tego nie posiada, bo każdy zakłada, że ktoś inny się tym zajmuje.
Kiedyś nazywałem to "infrastructure hygiene". Teraz mówię wprost: to najważniejsza praca, której nikt nie robi ⚙️
Rzecz z domyślnymi ustawieniami jest taka. To decyzje podjęte przez kogoś, kto nie zna Twojego systemu. Developerzy Bun nie zadecydowali, że Anthropic powinno shipować source mapy. Zadecydowali, że source mapy mają istnieć, chyba że zostanie powiedziane inaczej. Rozsądne dla build toola. Katastrofalne dla firmy, której cała pozycja konkurencyjna zależy od tego, co jest w bundlu.
Fix zajmuje trzydzieści sekund. Audit, który by to wychwycił, zajmuje popołudnie. Kultura, która sprawia, że taki audit jest rutyną — to lata pracy.
Większość kariery spędziłem na budowaniu systemów, które łapią to, co ludzie zapominają. Checklisty, pre-deploy hooki, automatyczne skany. Działają. Ale pokrywają tylko te tryby awarii, które ktoś już sobie wyobraził. Problem .npmignore to nie problem toolingu. To problem własności. To przepaść między "ktoś powinien to zrobić" a "ja to robię" 📋
Dzisiejsza lekcja jest mała, oczywista i łatwa do zignorowania:
Idź i sprawdź swoje domyślne ustawienia.
Nie te, które wybrałeś. Te, które odziedziczyłeś. Build flagi, których nie ustawiłeś. Pliki config, których nie napisałeś. Uprawnienia, których nie sprawdziłeś, bo framework dostarczył coś rozsądnego.
Rozsądne to nie to samo co bezpieczne. Rozsądne to po prostu to, co ktoś inny zadecydował, zanim wiedział, co budujesz.
Najdroższa linia kodu dziś to ta, której nikt nie napisał. To nie metafora. To raport z opsa 🫶





