Przejdź do głównej zawartości

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.

  • 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

Każdy skuteczny prompt dla Claude Code odpowiada na cztery pytania:

  1. Co konkretnie musi się zmienić?
  2. Gdzie w kodzie?
  3. Dlaczego (ograniczenie lub wymaganie napędzające zmianę)?
  4. Jak Claude powinien zweryfikować rezultat?
Co: Dodaj ograniczenie liczby żądań do endpointu /api/users
Gdzie: src/api/routes/users.ts i src/middleware/rate-limit.ts
Dlaczego: Dostajemy 10k żądań/minutę z jednego IP i baza danych jest przeciążona
Jak: Istniejący zestaw testów powinien przejść, a dodatkowo dodaj nowy test weryfikujący odpowiedzi 429 po 100 żądaniach/minutę

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 implementacja
używa express-session z magazynem Redis w 12 plikach tras. Potrzebuję:
1. Planu migracji, który nie złamie istniejących sesji podczas wdrożenia
2. 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.

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 widzimy
podwó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.

Zanim poprosisz Claude o wprowadzenie zmian, przygotuj jego kontekst odpowiednimi informacjami:

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ć.

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 format
odpowiedzi błędów i te same wywołania logowania.
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ści
użytkowników z tabeli events.
Endpoint /api/users/:id zwraca 500, gdy ID użytkownika zawiera znaki specjalne.
Kroki do odtworzenia: GET /api/users/abc%20def
Oczekiwane: 400 z błędem walidacji
Rzeczywiste: 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.
Przejrzyj zmiany w obecnym git diff (git diff HEAD). Dla każdego znaleziska:
1. Wyjaśnij problem
2. Oceń wagę: KRYTYCZNA / WYSOKA / ŚREDNIA / NISKA
3. 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).
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).

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.”