Inżynieria promptów dla Claude Code
„Napraw błąd” daje zupełnie inne rezultaty niż „Ponowne łączenie WebSocket w src/realtime/socket.ts zawodzi po trzeciej próbie, ponieważ timer backoff resetuje się przy częściowych połączeniach. Napraw logikę ponownych prób, aby używała wykładniczego backoff z jitterem, i dodaj test, który symuluje trzy nieudane próby ponownego połączenia.”
Różnica nie polega na gadatliwości. Chodzi o podanie Claude odpowiednich ograniczeń, kontekstu i kryteriów weryfikacji, aby uzyskać dokładnie to, czego potrzebujesz, za pierwszym razem.
Co z tego wyniesiesz
Dział zatytułowany „Co z tego wyniesiesz”- Strukturalne ramy promptu, które działają dla każdego zadania
- Tryb planowania i słowa kluczowe myślenia dla złożonych zmian w wielu plikach
- Techniki przygotowania kontekstu, które redukują halucynacje
- Prompty dla dziesięciu najczęstszych zadań programistycznych
Ramy promptu
Dział zatytułowany „Ramy promptu”Każdy skuteczny prompt dla Claude Code odpowiada na cztery pytania:
- Co konkretnie musi się zmienić?
- Gdzie w kodzie?
- Dlaczego (ograniczenie lub wymaganie napędzające zmianę)?
- Jak Claude powinien zweryfikować rezultat?
Co: Dodaj ograniczenie liczby żądań do endpointu /api/usersGdzie: src/api/routes/users.ts i src/middleware/rate-limit.tsDlaczego: Dostajemy 10k żądań/minutę z jednego IP i baza danych jest przeciążonaJak: Istniejący zestaw testów powinien przejść, a dodatkowo dodaj nowy test weryfikujący odpowiedzi 429 po 100 żądaniach/minutęTryb planowania
Dział zatytułowany „Tryb planowania”Naciśnij Shift+Tab, aby przełączyć tryb planowania. W trybie planowania Claude analizuje kod i tworzy plan przed wprowadzeniem jakichkolwiek zmian. Jest to niezbędne dla:
- Zmian obejmujących więcej niż trzy pliki
- Refaktoryzacji, gdzie kolejność zmian ma znaczenie
- Zadań, gdzie nie jesteś pewien podejścia
[Shift+Tab aby włączyć tryb planowania]
Zrefaktoryzuj system uwierzytelniania z opartego na sesjach na JWT. Obecna implementacjaużywa express-session z magazynem Redis w 12 plikach tras. Potrzebuję:
1. Planu migracji, który nie złamie istniejących sesji podczas wdrożenia2. Zgodności wstecznej dla aplikacji mobilnej (wersja 2.3 i wcześniejsze używają ciasteczek sesji)3. Logiki odświeżania tokenów, która obsługuje współbieżne żądania
Przeczytaj najpierw obecną implementację auth w src/auth/, potem utwórz plan.Nie zaczynaj implementacji, dopóki nie zatwierdzę planu.Słowa kluczowe myślenia
Dział zatytułowany „Słowa kluczowe myślenia”Claude Code wspiera rozszerzone myślenie, gdy użyjesz konkretnych słów kluczowych. Wyzwalają one głębsze rozumowanie dla złożonych problemów:
- “think” — Standardowe rozszerzone myślenie
- “think hard” — Większy budżet rozszerzonego myślenia
- “think harder” — Jeszcze większy budżet myślenia
- “ultrathink” — Maksymalny budżet myślenia
ultrathink o warunku wyścigu w naszym pipeline'ie przetwarzania płatności. Trzy usługi(OrderService, PaymentService, InventoryService) komunikują się przez Redis pub/sub i widzimypodwójne obciążenia, gdy dwa potwierdzenia płatności przychodzą w ciągu 50ms od siebie.Przeanalizuj diagram czasowy i zaproponuj rozwiązanie używające rozproszonych blokad.Używaj słów kluczowych myślenia, gdy problem wymaga wieloetapowego rozumowania, gdy widzisz niepoprawną lub płytką analizę, lub gdy zadanie obejmuje systemy współbieżne, analizę bezpieczeństwa lub decyzje architektoniczne.
Przygotowanie kontekstu
Dział zatytułowany „Przygotowanie kontekstu”Zanim poprosisz Claude o wprowadzenie zmian, przygotuj jego kontekst odpowiednimi informacjami:
Wzorzec czytaj-potem-działaj
Dział zatytułowany „Wzorzec czytaj-potem-działaj”Przeczytaj src/auth/middleware.ts, src/auth/jwt.ts i src/auth/session.ts.Potem przeczytaj pliki testowe dla każdego z nich.Teraz powiedz mi: co się zepsuje, jeśli zmienię wygaśnięcie tokenu z 1 godziny na 15 minut?To jest bardziej skuteczne niż zadawanie pytania bezpośrednio, ponieważ Claude ma rzeczywisty kod w kontekście, a nie swoje założenia o tym, jak kod mógłby wyglądać.
Wzorzec pokaż-na-przykładzie
Dział zatytułowany „Wzorzec pokaż-na-przykładzie”Zobacz, jak działa obsługa błędów w src/api/routes/orders.ts.Teraz zastosuj ten sam wzorzec obsługi błędów do src/api/routes/products.ts.Każdy endpoint powinien mieć tę samą strukturę try/catch, ten sam formatodpowiedzi błędów i te same wywołania logowania.Wzorzec ograniczenia-najpierw
Dział zatytułowany „Wzorzec ograniczenia-najpierw”OGRANICZENIA:- Nie modyfikuj żadnego pliku w src/core/ (są generowane)- Zachowaj zgodność wsteczną z API v1- Cały nowy kod musi mieć pokrycie testami 80%+- Używaj istniejącego Logger, nie console.log
ZADANIE: Dodaj nowy endpoint /api/v2/analytics, który agreguje dane aktywnościużytkowników z tabeli events.Prompty dla typowych zadań
Dział zatytułowany „Prompty dla typowych zadań”Naprawa błędu
Dział zatytułowany „Naprawa błędu”Endpoint /api/users/:id zwraca 500, gdy ID użytkownika zawiera znaki specjalne.Kroki do odtworzenia: GET /api/users/abc%20defOczekiwane: 400 z błędem walidacjiRzeczywiste: 500 z nieobsłużonym błędem Prisma
Napraw walidację wejścia w src/api/routes/users.ts i dodaj test case dla znaków specjalnych w ID.Przegląd kodu
Dział zatytułowany „Przegląd kodu”Przejrzyj zmiany w obecnym git diff (git diff HEAD). Dla każdego znaleziska:1. Wyjaśnij problem2. Oceń wagę: KRYTYCZNA / WYSOKA / ŚREDNIA / NISKA3. Zasugeruj konkretną poprawkę z kodem
Skup się na: obsłudze błędów, bezpieczeństwie typów i wydajności.Pomiń: kwestie stylu (nasz formatter się tym zajmuje).Generowanie testów
Dział zatytułowany „Generowanie testów”Przeczytaj src/services/payment.service.ts i wygeneruj kompleksowy plik testowy.Podążaj za wzorcami w src/services/__tests__/order.service.test.ts dla:- Struktury testów (bloki describe/it)- Podejścia do mockowania (jest.mock dla zewnętrznych serwisów)- Stylu asercji (expect().toEqual dla obiektów, toBe dla prymitywów)
Pokryj: ścieżkę szczęśliwą, błędy walidacji, awarie zewnętrznych serwisów i przypadki brzegowe(puste tablice, wartości null, maksymalne limity).Gdy to nie działa
Dział zatytułowany „Gdy to nie działa”Claude ignoruje ograniczenia: Umieść ograniczenia na początku promptu, nie na końcu. Gdy kontekst staje się długi, koniec promptu otrzymuje mniej uwagi. Rozważ również dodanie krytycznych ograniczeń do pliku CLAUDE.md.
Tryb planowania nadal wprowadza zmiany: Upewnij się, że przełączyłeś tryb planowania za pomocą Shift+Tab (nie tylko poprosiłeś Claude o planowanie). Sprawdź wskaźnik statusu w REPL, aby potwierdzić, że tryb planowania jest aktywny.
Rozszerzone myślenie nie poprawia wyników: Nie każdy problem korzysta z rozszerzonego myślenia. Proste edycje plików, zmiany formatowania i proste naprawy błędów nie potrzebują ultrathink. Zarezerwuj to dla problemów z wieloma współdziałającymi komponentami lub subtelnymi wymaganiami poprawności.
Claude źle rozumie kod: Przygotuj kontekst, kazując Claude najpierw przeczytać odpowiednie pliki. Jeśli źle rozumie, popraw to słowami „Nie, spójrz na linię 45 src/auth.ts — token jest przechowywany w Redis, nie w sesji.”
Co dalej
Dział zatytułowany „Co dalej”- Operacje wsadowe — Zastosuj swoje umiejętności promptowania do zmian na dużą skalę
- Przepływy debugowania — Prompty zaprojektowane specjalnie do znajdowania przyczyn źródłowych
- Optymalizacja CLAUDE.md — Zakoduj swoje wzorce promptowania w trwałej pamięci