Kontekst chirurgiczny
Precyzyjny, skupiony kontekst dla konkretnych zadań
Kontekst to sekretny składnik rozwoju wspomaganego przez AI. Opanuj te wzorce, aby przekształcić mgliste odpowiedzi AI w precyzyjny, gotowy do produkcji kod. Naucz się dostarczać właśnie tyle kontekstu - nie za mało, nie za dużo.
Jakość kontekstu | Odpowiedź AI | Czas developera |
---|---|---|
Za mało | Ogólna, błędne założenia | Dużo przeróbek |
Dokładnie tyle ile trzeba | Precyzyjna, dopasowana do kodu | Minimalne edycje |
Za dużo | Zdezorientowana, wolna, droga | Debugowanie AI |
Kontekst chirurgiczny
Precyzyjny, skupiony kontekst dla konkretnych zadań
Kontekst warstwowy
Buduj kontekst stopniowo dla złożonych zadań
Kontekst semantyczny
Użyj AI do automatycznego znajdowania odpowiedniego kontekstu
Kontekst skompresowany
Zmniejsz użycie tokenów zachowując znaczenie
# Źle: Podejście "wszystko naraz"@folder src/ # 50,000 linii dołączonychNapraw błąd logowania
# Dobrze: Precyzja chirurgiczna@file src/auth/login.ts@file src/auth/validation.ts@code validateEmail # konkretna funkcjaNapraw walidację email odrzucającą prawidłowe adresy ze znakiem +
// Kontekst: Tylko te konkretne elementy@file utils/validation.js@code EMAIL_REGEX@code validateEmail
// PromptZaktualizuj walidację email, aby akceptowała plus addressing (user+tag@domain.com)Zachowaj istniejącą walidację dla innych reguł
# Kontekst: Skoncentrowany na problemie@file validators/email.py@code EmailValidator.__init__@code EmailValidator.validate
# PromptDodaj obsługę subadresowania (+ tags) w walidacji emailZachowaj zgodność z RFC 5322
Zacznij wąsko, rozszerzaj w miarę potrzeb:
## Warstwa 1: Skupienie podstawowe@file models/Order.ts@file models/Payment.ts
Zadanie: Dodaj przetwarzanie płatności do zamówień
## Warstwa 2: Dodaj kontekst integracyjny@file services/PaymentService.ts@file api/payments/webhook.ts
## Warstwa 3: Dodaj kontekst systemowy@folder lib/payments/@code PaymentProvider interface
## Warstwa 4: Dodaj kontekst domenowy@file docs/payment-requirements.md@docs Przewodnik integracji Stripe
Pozwól AI pomóc ci znaleźć odpowiedni kontekst:
# Krok 1: Poproś AI o znalezienie kontekstu"Jakie pliki i funkcje obsługują uwierzytelnianie użytkowników w tej bazie kodu?"
# Krok 2: Przejrzyj ustalenia AI# AI odpowiada z: auth/, middleware/auth.ts, utils/jwt.ts
# Krok 3: Użyj ustaleń jako kontekst@file auth/login.ts@file middleware/auth.ts@code generateJWT
"Dodaj dwuetapowe uwierzytelnianie do procesu logowania"
Typ zapytania | Przykład | Przypadek użycia |
---|---|---|
Architektura | ”Pokaż mi wszystkie akcje Redux” | Zrozumienie wzorców |
Zależności | ”Co wywołuje UserService?” | Analiza wpływu |
Podobny kod | ”Znajdź implementacje paginacji” | Spójność |
Wzorce błędów | ”Gdzie obsługujemy błędy API?” | Obsługa błędów |
## Przegląd systemu uwierzytelniania- Uwierzytelnianie oparte na JWT z tokenami odświeżania- Role: admin, user, guest- Timeout sesji: 24h- Wymagania hasła: 8+ znaków, 1 specjalny
Kluczowe pliki:- auth/login.ts - Główny przepływ logowania- auth/jwt.ts - Generowanie tokenów- middleware/auth.ts - Ochrona tras
// Zamiast dołączania całych plików implementacji@file types/auth.d.ts // Tylko interfejsy@file api/auth/routes.ts // Tylko definicje tras
# Dołącz tylko publiczne metody@code "class UserService" "public"@code "export function" auth/utils.ts
# Praca z wieloma repozytoriami@folder ../shared-components/Button@file ../api-server/src/endpoints/user.ts@web https://api-docs.company.com/users
Upewnij się, że komponent Button pasuje do struktury odpowiedzi API
# Dołącz odpowiednią historię@git PR #1234 # Poprzednia implementacja@git commit abc123 # Kiedy funkcja została dodana@docs decisions/adr-auth.md # Decyzja architekturalna
Refaktoryzuj auth, aby rozwiązać problemy z PR #1234
# Kontekst zmieniający się w zależności od zadania{{if FEATURE_FLAGS}} @file config/features.ts @code getFeatureFlag{{/if}}
{{if DATABASE_CHANGE}} @file prisma/schema.prisma @folder migrations/{{/if}}
Metryka | Dobry kontekst | Słaby kontekst |
---|---|---|
Użycie tokenów | 5-15k tokenów | 50k+ tokenów |
Czas odpowiedzi | 2-5 sekund | 20+ sekund |
Dokładność | 90%+ poprawne | poniżej 70% poprawne |
Potrzeba iteracji | 1-2 | 5+ |
# Minimalny kontekst dla nowego komponentu@file components/ui/Button.tsx # Wzorzec referencyjny@file styles/theme.ts # System projektowy@code useTheme hook # Integracja z tematami
Utwórz komponent Card zgodnie ze wzorcami Button
# Wzorzec kontekstu Redux/Zustand@folder store/slices/ # Zobacz wzorce@file store/types.ts # Definicje typów@code specific slice only
# Kontekst endpointu RESTful@file routes/users.js # Wzorzec referencyjny@file middleware/auth.js # Wzorzec auth@file validators/user.js # Walidacja@code specific route only
Dodaj endpoint DELETE /users/:id
# Minimalny kontekst DB@file models/User.js # Tylko schemat@code specific query functions@file db/migrations/latest.sql
# Kontekst klasy Python@file models/base.py # Wzorce bazowe@code AbstractModel class@file models/user.py # Przykład
Utwórz model Product zgodnie ze wzorcami
# Wzorzec kontekstu testów@file tests/test_user.py # Wzorce testów@file src/user.py # Implementacja@code specific test class
1. Zacznij od kontekstu błędu @error "TypeError: Cannot read property 'name'" @file src/components/UserCard.tsx
2. Rozszerz na przepływ danych @code getUserData @file api/users.ts
3. Dodaj kontekst typów w razie potrzeby @file types/User.ts
1. Kontekst wymagań @file specs/feature-x.md @figma design-link
2. Kontekst wzorców @file similar-feature.ts @folder patterns/
3. Kontekst integracji @file routes/index.ts @file types/index.ts
1. Aktualna implementacja @file old-service.ts @code specific methods
2. Docelowy wzorzec @file patterns/service-template.ts @docs architecture/services.md
3. Kontekst testów @file tests/old-service.test.ts
Buduj szablony kontekstu
.cursor/contexts/
Używaj aliasów kontekstu
# Zdefiniuj raz, używaj wielokrotnieAUTH_CONTEXT = @file auth/* @code JWT*
Używając AUTH_CONTEXT, dodaj rotację tokenów odświeżania
Progresywne wzbogacanie
Komentarze kontekstu
@file api/user.ts # Aktualna implementacja@file api/user.v2.ts # Docelowy wzorzec@docs api-standards.md # Musi przestrzegać tych
Opanuj te wzorce kontekstu, aby:
Kontynuuj z:
Pamiętaj: Kontekst to sygnał, nie szum. Każdy element kontekstu powinien zasłużyć na swoje miejsce, bezpośrednio przyczyniając się do lepszego zrozumienia AI.