AIDive

Zamieniłem każdy nawyk w Claude Code w komendę

AIDive · Opublikowano

Agenty do kodowaniaAutomatyzacja i workflow

Pięć nawyków, pięć komend

Każda lista nawyków z Claude Code mówi ci, co robić. Ta zamienia każdy nawyk w komendę, którą uruchamia Claude Code, więc nawyk działa niezależnie od tego, czy model go przeczyta. Przetestowaliśmy wszystkie pięć na prawdziwym repo, ledgerly, małym API do faktur w Node 20 i TypeScript, z Claude Code 2.1.294.

Powód leży w best practices Anthropic: linia w stylu "Always typecheck before you finish" w twoim CLAUDE.md "works most of the time, not every time". Pięć komend poniżej to /goal, hook PreToolUse, /context z /clear, /skill-doctor oraz subagent recenzent tylko do odczytu.

Dlaczego zapisany nawyk się wymyka

CLAUDE.md to plik z instrukcjami, który Claude czyta na początku każdej sesji, readme napisane dla nowego członka zespołu: komendy, konwencje i reguły. Tam trafia większość nawyków, często te najważniejsze wielkimi literami, jak "NEVER edit src/store/migrations.ts".

Dokumentacja pamięci Anthropic jasno mówi, czym jest ten plik: Claude czyta go jako kontekst, a nie jako wymuszoną konfigurację. Każda linia to rada ważona względem zadania, które ma przed sobą. To różnica między checklistą code review na stronie wiki a kontrolą w twoim pipeline CI: pierwsza zależy od tego, czy ktoś ją przeczyta, druga i tak się uruchomi.

Ćwiczenie: otwórz swój CLAUDE.md i zaznacz każdą linię, która musi działać za każdym razem. Resztę zostaw tam, gdzie jest, bo ten plik nadal jest dobrym miejscem na to, czego Claude nie wywnioskuje z twojego kodu, a dokumentacja zaleca poniżej 200 linii na plik.

Nawyk pierwszy: powiedz, jak wygląda "gotowe"

Claude kończy, gdy praca wygląda na skończoną. Jeśli nic nie mówi mu, czy naprawdę jest skończona, jak zauważają best practices Anthropic, to ty stajesz się zestawem testów.

/goal ustawia metę raz. Po każdej turze mały, szybki model czyta rozmowę i odpowiada: spełnione, jeszcze nie spełnione albo niemożliwe. Nie potrafi uruchamiać komend ani czytać plików, więc zapisz warunek tak, żeby mógł go pokazać sam output Claude, na przykład pełny wynik testów.

Przebieg na ledgerly Co zobaczyliśmy
Zwykła sesja, ta sama prośba o funkcję Testy poszły w zwiniętym wywołaniu narzędzia; odpowiedź mówiła "pnpm test passes (37/37)"
Z /goal i warunkiem "full pnpm test output printed" Odpowiedź wypisała cały przebieg, "Tests 44 passed (44)", potem "Goal achieved (45s · 1 turn · 5.1k tokens)"

Wpisz samo /goal, żeby zobaczyć status, a /goal clear, żeby go usunąć. Do jednolinijkowej poprawki nie jest potrzebny; według dokumentacji liczy się najbardziej przy długich przebiegach, gdzie Claude czasem kończy turę z otwartymi punktami.

Nawyk drugi: reguła, której nie da się złamać

Reguła wielkimi literami jest przestrzegana przez większość czasu i właśnie to jest problemem. Hook to mały skrypt, który Claude Code uruchamia sam w ustalonym momencie; hook PreToolUse działa przed każdym wywołaniem narzędzia. Nasz czyta ścieżkę pliku i gdy jest to src/store/migrations.ts, wypisuje "migrations.ts is append-only: add a new migration file instead" i kończy się kodem 2. Przewodnik po hookach mówi, że kod wyjścia 2 blokuje wywołanie i odsyła komunikat do Claude, a blokada działa nawet przy wyłączonych pytaniach o uprawnienia.

W naszych przebiegach: z regułą w CLAUDE.md Claude sam odmówił edycji. Po usunięciu reguły Claude dwa razy sięgnął po plik migracji, a hook zablokował obie edycje; Claude zedytował resztę i zgłosił "A project hook blocked both of my edits to that file." W dwóch późniejszych przebiegach najpierw przeczytał skrypt hooka i w ogóle nie próbował tego pliku.

Hook blokuje tylko to, co potrafi dopasować, ścieżkę lub komendę. Reguły oparte na osądzie, jak "pisz czysty kod", zostają w CLAUDE.md, a wąskie dopasowanie sprawia, że hook nie blokuje twojej własnej pracy.

Nawyk trzeci: jedno zadanie, jeden kontekst

Kontekst to wszystko, co model widzi w każdej turze: twoje instrukcje, przeczytane pliki i cała rozmowa. /context pokazuje go jako siatkę; /clear opróżnia rozmowę, a pliki i ustawienia zostają.

/context na ledgerly Razem Wiadomości
Po skończonym zadaniu 57.5k z 1m tokenów 26.4k tokenów
Po /clear 31.1k z 1m tokenów 130 tokenów

Dokumentacja: /clear między niepowiązanymi zadaniami nic nie kosztuje, a po dwóch nieudanych poprawkach czyścisz kontekst i piszesz lepszy prompt. W środku zadania użyj zamiast tego /compact z fokusem.

Nawyk czwarty: ładuj tylko to, czego używasz

Skill to spakowana instrukcja, którą Claude ładuje, gdy zadanie do niej pasuje. Pełny skill ładuje się tylko wtedy, gdy działa, ale jego jednolinijkowy wpis jest w prompcie w każdej turze, a budżet na te wpisy to około 1% okna kontekstu, więc najrzadziej używane skille tracą opisy jako pierwsze.

/skill-doctor wypisuje każdy skill z jego kosztem kontekstu i tym, jak często go używałeś. Na naszej maszynie zgłosił:

Rodzaj Załadowane, ale nigdy nie wywołane
Skille osobiste 13
Zsynchronizowane z claude.ai 14
Skille z pluginów 25

Wymienił też 4 pluginy nieużywane od jakiegoś czasu. Wyłącz skill w /skills; zsynchronizowane skille wracają, jeśli je usuniesz, więc wyłącz je na claude.ai; skille z pluginów idą przez menedżera pluginów. Jeden wpis na liście jest mały, więc to usuwa szum, a nie zwalnia połowy twojego kontekstu.

Nawyk piąty: świeże oczy na diffie

Subagent to druga sesja Claude uruchomiona do jednego zadania, z własnym pustym kontekstem, która oddaje streszczenie. Dokumentacja Anthropic mówi to wprost: oddanie tego samego zadania subagentowi nie poprawia odpowiedzi, ale świeży recenzent pomaga, bo nie widział twojego rozumowania.

Nasz recenzent mieszka w .claude/agents/reviewer.md z narzędziami tylko do odczytu: Read, Grep, Glob, Bash(git diff:*) i Bash(git status:*). Na diffie z zaległymi fakturami własna recenzja sesji autora znalazła prawdziwy błąd: faktury z tą samą datą płatności były sortowane po id jako tekst. Recenzent znalazł ten sam błąd i brakujący test w 28 sekund, a potem sprawdził po kolei każdą konwencję z README. Twierdził też, że sprawdzenie typów przeszło czysto, czego jego narzędzia nie mogły uruchomić, a główna sesja oznaczyła to jako niezweryfikowane. Wołaj go raz na funkcję, przed merge'em.

Który nawyk ustawić najpierw

Zacznij od hooka, na regule, która w twoim repo została już złamana więcej niż raz. /clear i /skill-doctor nic nie kosztują. /goal zachowaj na długie przebiegi, a recenzenta na merge. Zasada do zapamiętania: jeśli nawyk ma działać za każdym razem, zrób z niego coś, co Claude Code uruchamia, a nie coś, co Claude czyta.

Darmowe zasoby

Źródła

Najczęstsze pytania

Dlaczego Claude Code ignoruje reguły w CLAUDE.md?
Claude czyta CLAUDE.md jako kontekst, a nie wymuszoną konfigurację, więc reguła tam działa przez większość czasu, nie za każdym razem. Dla reguły, która musi działać zawsze, użyj hooka.
Jak powstrzymać Claude Code przed edycją konkretnego pliku?
Dodaj w .claude/settings.json hook PreToolUse na Edit i Write, którego skrypt kończy się kodem 2, gdy ścieżka pasuje. Wywołanie zostaje zablokowane, a komunikat wraca do Claude.
Co robi komenda /goal w Claude Code?
Ustawia warunek ukończenia; po każdej turze mały model czyta rozmowę i mówi, czy jest spełniony. Zapisz warunek jako coś, co Claude musi pokazać, na przykład pełny wynik testów.
Czym jest /skill-doctor w Claude Code?
Komendą, która wypisuje każdy załadowany skill z kosztem kontekstu i użyciem oraz oznacza te nigdy niewywołane, żebyś mógł je wyłączyć.
Czy subagent recenzent jest lepszy niż pozwolenie Claude, by sam sprawdził swój kod?
Świeży recenzent pomaga, bo nie widział rozumowania twojej sesji. Daj mu narzędzia tylko do odczytu, wołaj go raz na funkcję i nadal sam uruchamiaj kontrole.

Powiązane filmy