Workflow debugowania
Twój endpoint API zwraca błąd 500, ale tylko dla niektórych użytkowników. Wklejasz błąd do trybu Agent Cursora i mówisz “napraw to”. Agent zmienia trzy pliki, błąd znika dla twojego przypadku testowego, ale teraz inna grupa użytkowników dostaje błąd 403. Mówisz agentowi, żeby naprawił i to. Dwie kolejne zmiany plików. Teraz oryginalny błąd 500 wrócił. Od 20 minut kręcisz się w kółko i jesteś dalej od naprawy niż na początku.
Problem nie leży w Cursorze. Problem polega na traktowaniu debugowania jako “powiedz AI, żeby naprawiło i miej nadzieję”. Skuteczne debugowanie wspomagane AI to ustrukturyzowany proces: najpierw zbadaj, zrozum przyczynę źródłową, a potem zastosuj celowaną poprawkę.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- Systematyczny workflow debugowania z użyciem trybów Ask, Debug i Agent w sekwencji
- Gotowe prompty do skopiowania na każdy etap procesu debugowania
- Techniki wykorzystywania logów, śladów błędów i danych runtime z AI
- Wzorce zapobiegające pętli “napraw-zepsuj-napraw”
Trzyfazowy workflow debugowania
Dział zatytułowany „Trzyfazowy workflow debugowania”Faza 1: Zbadaj (tryb Ask)
Dział zatytułowany „Faza 1: Zbadaj (tryb Ask)”Zanim dotkniesz jakiegokolwiek kodu, zrozum co się dzieje:
To daje ci model mentalny problemu, zanim zaczniesz cokolwiek zmieniać.
Faza 2: Zbierz dowody (tryb Debug lub ręczne logowanie)
Dział zatytułowany „Faza 2: Zbierz dowody (tryb Debug lub ręczne logowanie)”Gdy masz hipotezy, zbierz dowody z runtime, aby je potwierdzić lub wykluczyć.
Opcja A: Użyj trybu Debug
Przełącz na tryb Debug i opisz błąd. Agent:
- Wygeneruje hipotezy o przyczynach źródłowych
- Doda strategiczne instrukcje logowania do kodu
- Poprosi cię o odtworzenie błędu
- Przeanalizuje przechwycone logi
- Zidentyfikuje przyczynę źródłową na podstawie dowodów
Opcja B: Ręczne logowanie i analiza
Jeśli tryb Debug nie jest dostępny lub wolisz ręczną kontrolę:
Po odtworzeniu błędu wklej logi z powrotem do Cursora:
Faza 3: Celowana poprawka (tryb Agent)
Dział zatytułowany „Faza 3: Celowana poprawka (tryb Agent)”Dopiero po zrozumieniu przyczyny źródłowej przełącz się na tryb Agent, aby naprawić:
Wzorzec napraw-potem-zweryfikuj
Dział zatytułowany „Wzorzec napraw-potem-zweryfikuj”Po każdej poprawce zweryfikuj, że faktycznie działa, dodając test, który wyłapałby ten błąd:
Add a regression test for the bug we just fixed.
The test should:1. Set up the exact conditions that caused the failure (user with [specific condition])2. Call the endpoint with the same request that was failing3. Assert that it succeeds with the correct response4. Also test the edge case where [related condition]
Put the test in @src/routes/__tests__/orders.test.ts following existing patterns.Run the test to confirm it passes.Jeśli test nie przechodzi, wiesz, że poprawka jest niekompletna. Jeśli przechodzi, masz test regresji, który zapobiega powrotowi tego błędu.
Typowe wzorce debugowania
Dział zatytułowany „Typowe wzorce debugowania”Wzorzec: Badanie błędu typów
Dział zatytułowany „Wzorzec: Badanie błędu typów”TypeScript reports this error at build time:
[PASTE TSC ERROR]
Trace the types involved. Show me:1. Where the type is defined2. How it flows through the code to this point3. Why the types are incompatible4. The minimal fix that maintains type safety
Do not use `any` or type assertions to fix this. Find the real type issue.Wzorzec: Analiza warunków wyścigu
Dział zatytułowany „Wzorzec: Analiza warunków wyścigu”This code has a race condition -- when two requests arrive simultaneouslyfor the same user, the second request overwrites the first one's data.
Relevant code: @src/services/user-service.ts
Analyze the concurrent execution paths and identify:1. Which operation is not atomic2. Where the race window exists3. The best fix (optimistic locking, database transaction, or mutex)
Show me the fix with before/after code comparison.Wzorzec: Kaskada błędów budowania
Dział zatytułowany „Wzorzec: Kaskada błędów budowania”Gdy masz wiele błędów budowania, nie naprawiaj ich po jednym:
To workflow w stylu TDD, który spopularyzował Steve Sewell z Builder.io: pozwól agentowi uruchomić budowanie, zobaczyć błędy, naprawić je i iterować, aż wszystko przejdzie — wszystko automatycznie, gdy auto-run jest włączony.
Kiedy coś nie działa
Dział zatytułowany „Kiedy coś nie działa”Pętla “napraw-zepsuj-napraw”. Pomijasz fazę 1 (badanie). Wróć do trybu Ask, zrozum system, a potem dokonaj jednej celowanej zmiany.
Agent “naprawia” test zamiast kodu. Wyraźnie powiedz: “The test is correct. The implementation is wrong. Fix the implementation to make the test pass.”
Logi trybu Debug nie wyłapują problemu. Błąd może być w innej części łańcucha wywołań niż oczekiwano. Poproś agenta o dodanie logowania szerzej lub odtwórz błąd wielokrotnie, aby wyłapać przerywane zachowanie.
Zbyt wiele błędów do naprawienia naraz. Triażuj: najpierw napraw błędy kompilacji (blokują wszystko inne), potem błędy runtime, a na koniec błędy logiki. Użyj wzorca kaskady błędów budowania opisanego powyżej.
Co dalej
Dział zatytułowany „Co dalej”- Wzorce testowania — Pisanie testów zapobiegających nawrotom błędów
- Strategie refaktoryzacji — Porządkowanie kodu po naprawach błędów
- Workflow recenzji — Wyłapywanie błędów zanim dotrą na produkcję