Skasowane, zmierzone, jedna zasada się złamała
Skasowanie CLAUDE.md oznacza usunięcie pliku instrukcji, który Claude Code czyta na początku każdej rozmowy. Boris Cherny, twórca Claude Code, powiedział na scenie, żeby kasować go co pół roku. Dwadzieścia dwa filmy powtórzyły to w siedem tygodni. Żaden nie otworzył repozytorium.
Ten artykuł robi to, czego nie zrobiły te filmy: bierze jedną prawdziwą aplikację ze 177-liniowym CLAUDE.md, trzema skillami, czterema komendami i jednym hookiem, uruchamia pięć codziennych zadań z plikiem i bez niego, i liczy. Po czterdziestu czterech przebiegach popsuła się dokładnie jedna zasada. Plik kosztował tokeny przy każdym zadaniu, nigdy tyle samo, a jedna z jego linii — nikt nie mógł jej przestrzegać.
Klip, słowo w słowo, i dwa zdania, które nie są jego
Klip pochodzi z wystąpienia Borisa Cherny'ego na YC Startup School, nagranego dzień po premierze Opusa 5. Jego słowa: co pół roku kasuj CLAUDE.md, kasuj skille, kasuj hooki. Zobacz, co zrobi model, może cię zaskoczyć. Dla Opusa 5, mówi, Anthropic naprawdę zaleca to wypróbować: model może już nie potrzebować wszystkich tych instrukcji.
Trzydzieści sekund wcześniej pada zastrzeżenie, którego nikt nie cytuje. Anthropic nie kasuje całej bazy kodu. Kasuje dużo i nazywa to ablacją. Pisemny transkrypt dziś w pełni zawiera tę linię. Osiemdziesiąt procent systemowego promptu Claude Code powstało w ten sposób: skasuj wszystko, przywracaj linia po linii, mierz każdą linię.
Dwa zdania, które filmy reakcyjne włożyły mu w usta, nie padają w tym wystąpieniu. "Kontekst, cele i definicja ukończenia" nie pojawia się nigdzie; najbliżej temu jest task, guardrails, exit criteria. "Sześćdziesiąt cztery agentów przepisujących Buna" też nie jest jego liczbą: to liczba Jarreda Sumnera z wpisu o Bunie. Cherny mówi o jedenastu dniach, a zapytany o liczbę, zgaduje tysiące.
Dwadzieścia dwa filmy w siedem tygodni zacytowało ten klip. Żaden nie przeprowadził testu. Więc ten robi to, co Cherny naprawdę opisał: skasuj, przywracaj po jednym elemencie, mierz.
Narzędzie: ablacja, nie kasowanie
Ablacja usuwa jeden element konfiguracji na raz i mierzy efekt, zamiast kasować wszystko i zgadywać. CLAUDE.md jest odczytywany na początku każdej rozmowy i ponownie przy każdej turze; skille ładują się tylko wtedy, gdy są wywołane. Ta różnica została zmierzona.
Anthropic dostarcza przełącznik do kasowania: goła flaga, ta sama zmienna, którą Cherny wymienia ze sceny. Repozytorium to moja prawdziwa aplikacja: 177 linii instrukcji, trzy skille, cztery komendy i jeden hook, który uruchamia się przy każdym wyszukiwaniu.
| Wymiar | Wartość |
|---|---|
| Codzienne zadania | 5 (nowy komponent, edycja, refaktoryzacja, zmiana store'a, pytanie architektoniczne) |
| Konfiguracje | 5 (pełna, bez pliku, bez skilli, bez hooka, nic) |
| Model | jeden, przypięty |
| Środowisko | pusty katalog konfiguracyjny, świeży klon przed każdym przebiegiem |
| Przebiegi | 44 |
| Koszt | $39 |
Każdy przebieg był oceniany tak samo, na tym samym klonie, przez skrypt, a nie ręcznie. Za popsute uznaje się złamanie własnych zasad repozytorium (importy, typy, design tokens, tłumaczenia) oraz błędy typecheck i lint.
Jedyne narzędzie zbudowane do tego typu ablacji, Caliper, ablatuje skille i serwery MCP, ale nigdy nie dotyka pliku; wymianę CLAUDE.md wykonano ręcznie. Ograniczenia, podane raz: jedno repozytorium, jeden model, dwa przebiegi na komórkę, bez transkryptu. Pierwszy wynik nadał ton: zadanie refaktoryzacji wypadło identycznie, sześćdziesiąt cztery centy z plikiem i sześćdziesiąt trzy bez.
Co się popsuło: jedna zasada, na nowych plikach
Zasada, która się złamała, to zasada internacjonalizacji, w słowach samego pliku: zawsze dodawaj wersję angielską i francuską, nigdy nie zaszywaj na sztywno tekstu widocznego dla użytkownika. Przy zadaniu nowego komponentu, z plikiem, wszystkie cztery przebiegi napisały plik tłumaczeń. Bez niego trzy z czterech przebiegów zaszyły nagłówek na sztywno. To samo zadanie, to samo repozytorium, ten sam model, ten sam prompt.
| Nowy komponent | Napisał plik tłumaczeń |
|---|---|
| Z CLAUDE.md | 4 z 4 |
| Bez CLAUDE.md | 1 z 4 |
Zadanie edycji pokazuje drugą połowę historii. Każda konfiguracja, nawet bez niczego, zrobiła to dobrze, bo uczą sąsiedzi: każdy komponent obok edytowanego ma już plik tłumaczeń. Wszystko inne utrzymało się we wszystkich czterdziestu czterech przebiegach: alias importu, type zamiast interface, design tokens, wzorzec store'a. Kod to pokazuje; plik to powtarza.
Praca badawcza z ETH Zurich zmierzyła to samo na 138 realnych issue. Jej wniosek: pliki kontekstowe nie poprawiają skuteczności i kosztują około dwudziestu procent więcej, a model faktycznie stosuje się do instrukcji. Jedno zastrzeżenie: jeden przebieg bez pliku i tak napisał plik tłumaczeń. Ta zasada nie jest niemożliwa bez pliku, jest niepewna. Popsuła się jedna zasada, ta, której nie mógł nauczyć kod. A przebieg, który pominął tę pracę, był też najtańszy.
Ile kosztował plik, zadanie po zadaniu
Koszt tokenów CLAUDE.md to różnica liczby odczytanych tokenów między przebiegiem z plikiem a tym samym przebiegiem bez niego.
| Zadanie | Mniej odczytanych tokenów bez pliku |
|---|---|
| Nowy komponent | 61% |
| Edycja | 15% |
| Refaktoryzacja | 5% |
| Zmiana store'a | 4% |
| Pytanie architektoniczne | 14% |
| Na dziesięciu przebiegach | 32% tokenów, 22% pieniędzy |
Trzydzieści dwa procent to liczba, którą każdy film wziąłby na nagłówek, i to ta zła. Największa oszczędność pochodzi z przebiegu, który nie napisał pliku tłumaczeń: tańszy, bo zrobił mniej. Tam, gdzie wynik był identyczny, plik kosztował od czterech do czternastu procent. To jego prawdziwa cena, a dwadzieścia procent z pracy badawczej mieści się dokładnie między tymi dwiema liczbami.
Mechanizm to około 1800 tokenów, odczytywanych ponownie przy każdej turze. Skille, hook i graf wiedzy nie dały niczego mierzalnego, obecne czy nieobecne. Szum jest większy niż większość z tego: to samo zadanie z tym samym plikiem kosztowało 2,11 dolara w jednym przebiegu i 1,33 dolara w drugim. Dwa przebiegi trafiły w limit tury, jeden z plikiem i jeden bez. Plik kosztuje więc trochę wszędzie i zarabia na siebie raz, chyba że też kłamie.
Linijki, które kłamały
Kłamiąca linia to instrukcja, której model nie może przestrzegać albo która niczego nie zmienia. Linia zapowiedziana na początku: importuj motyw z aliasu design-tokens. Alias nie istnieje: konfiguracja TypeScript mapuje jeden prefiks, a folder tokens nie ma pliku motywu. Każdy przebieg, z plikiem czy bez, robił to, co sąsiedzi — tę samą linię importu, czterdzieści cztery razy.
Plik zawiera osiemdziesiąt dwie linie przeglądu architektury. To samo pytanie, sześć odpowiedzi: wszystkie sześć znalazło te same dziewięć plików, od backendu po ekran, w tej samej kolejności, z przeglądem i bez niego. Jeden blok wskazuje na graf wiedzy, którego klon nie ma; gdy graf był obecny, pytanie kosztowało tyle samo.
| Miara | Wartość |
|---|---|
| Zasada rozmiaru Anthropic | poniżej 200 linii |
| Ten plik | 177 linii |
| Mediana pliku w zbiorze danych reporails (30 tys. repo) | 50 elementów, 12 dyrektyw |
| Linie dyrektyw w tym pliku | 24 z 177 |
Pozycja decyduje, która z dwóch sprzecznych zasad wygrywa, a model nigdy tego nie mówi — około dziewięćdziesięciu punktów w teście jednego dostawcy. Przegląd mógłby pomóc w zadaniu, którego tu nie uruchomiono: jedna próba, jedna odpowiedź. Trzy rodzaje linii, zatem: ta, która zasłużyła na swoje miejsce, te, których uczy kod, i te, które kłamią.
Zachowaj, przenieś, skasuj: krótka lista
Trzy stosy, a za każdym z nich pomiar.
| Stos | Co tam trafia | Pomiar |
|---|---|---|
| Zachowaj | Zasada, której nie pokaże kod | 6 linii, które uratowały 4 przebiegi |
| Przenieś | Przegląd architektury i komendy | 107 linii bez zmierzonego zysku |
| Skasuj | Linie, które kłamią, i linie, które już pokazuje drzewo plików | 44 identyczne przebiegi |
Zachowaj to, co model dwukrotnie zrobił źle: to własne kryterium Anthropic dla tego pliku. Przenieś przegląd i komendy do drzewa plików ładowanych w razie potrzeby; lipcowy wpis Anthropic nazywa centralne repozytorium mitem. Hooki zostają: bramka nie wygasa, gdy model się poprawia. Wytnij prozę, z której wyrósł, zachowaj bramkę.
Plik po zmianach: około siedemdziesiąt linii plus sześć, które sobie zasłużyły. To metoda Cherny'ego, odczytana w całości: skasuj, przywracaj linia po linii, mierz. Jedno repozytorium, jeden model, dwa przebiegi na komórkę; twoje stosy będą inne, metoda nie. Skasowanie kosztowało jedną zasadę i niewiele zaoszczędziło. Wygraną było znalezienie linii, które kłamią.
AIDive