Ekspert ds. bezpieczeństwa
„You are an expert security engineer. Review this code for XSS, CSRF, and SQL injection. List every issue with a concrete fix.”
Prosisz o „system uwierzytelniania użytkowników z weryfikacją e-mail”, a model wybiera strategię sesji, której nigdy byś nie wdrożył, na sztywno wpisuje mailer, którego nie używasz, i przez następne dwadzieścia minut odplątujesz decyzje, które podjął za ciebie, bo ty ich nie podjąłeś. Model się nie mylił — był niepokierowany. Przepaść między frustrującą sesją a świetną niemal nigdy nie leży w modelu. Leży w tym, jak formułujesz prośbę.
Oto wzorce promptowania, które konsekwentnie dają trafny, dobrze zaprojektowany kod w Cursorze, Claude Code i Codeksie.
Działa to, bo zmusza model do ujawnienia założeń, póki ich zmiana jest jeszcze tania. Stosuj ten sam wzorzec przez cały cykl życia:
Im więcej ograniczeń podasz, tym mniej model improwizuje. Ogólnikowe prośby dają generyczny kod; konkretne prośby dają kod, który da się wdrożyć.
pg. Ładuj connection string ze zmiennej DATABASE_URL. Dołącz logikę ponawiania prób z wykładniczym wycofywaniem i typowaną funkcję health-check.”Nazwanie biblioteki, zmiennej środowiskowej i zachowania przy błędach z góry kieruje model ku właściwej implementacji w jednym przebiegu, a nie w trzech.
W przypadku czegokolwiek większego niż jednolinijkowa zmiana zmuś model do myślenia, zanim zacznie kodować.
Najpierw poproś o plan — i zabroń kodu.
I need a feature that lets users upload a profile picture. First,produce a detailed, step-by-step plan: list the files you'll createor modify and the order of changes. Do NOT write any code yet.Przejrzyj i udoskonal plan. Model zwraca zarys („1. Dodaj /api/upload-avatar. 2. Dodaj pole pliku do ProfilePage…”). Popraw go, zanim powstanie jakikolwiek kod: „Użyj osobnego komponentu AvatarUpload zamiast edytować ProfilePage bezpośrednio.”
Wykonaj zatwierdzony plan.
The plan looks good. Implement step 1 only, then stop so I can reviewthe diff before we continue.Ta dwufazowa pętla wyłapuje błędy architektoniczne, gdy ich poprawienie kosztuje jedno zdanie, a nie diff na 30 plików. Po pełną dyscyplinę zajrzyj do PRD → plan → todo.
Żeby model dopasował się do konwencji twojej bazy kodu, pokaż mu istniejący plik, zamiast opisywać konwencję prozą.
PaymentService, która podąża dokładnie za wzorcem i strukturą pliku @/services/AuthService.ts.”Modele doskonale rozpoznają wzorce. Konkretny przykład to ciaśniejsza specyfikacja niż jakikolwiek opis.
Naładowanie modelu rolą — „jesteś starszym inżynierem ds. bezpieczeństwa” — jest powszechnie nauczane, ale bądź precyzyjny co do tego, co ci to daje. Kontrolowane badania (Mollick et al., Playing Pretend: Expert Personas Don’t Improve Factual Accuracy, 2026; oraz studium EMNLP 2024 „A Helpful Assistant” obejmujące cztery rodziny modeli i ponad 2400 pytań) wykazały, że eksperckie persony nie poprawiają niezawodnie poprawności — a niedopasowana persona może pogorszyć wyniki. To, co rola niezawodnie kształtuje, to ton, format i to, które kwestie model wysuwa na pierwszy plan. Używaj więc persony, by sterować tym, na co model patrzy, a właściwy ciężar przenieś na konkretne kryteria, nie na nazwę stanowiska:
Ekspert ds. bezpieczeństwa
„You are an expert security engineer. Review this code for XSS, CSRF, and SQL injection. List every issue with a concrete fix.”
Guru wydajności
„You are a senior performance engineer. Find bottlenecks in this function and suggest optimizations that reduce allocations and time complexity.”
Traktuj sesję jak dialog, a nie pojedynczy strzał. Pokieruj pierwszą próbą ku temu, czego naprawdę chcesz:
if-y na switch.”Kilka promptów zarabia na siebie niemal w każdym zadaniu. Trzymaj je pod ręką.
Gdy model miota się przy błędzie — edytuje linie, uruchamia ponownie, cofa zmiany — zatrzymaj go i wymuś przebieg zaczynający się od hipotezy, zamiast pozwalać mu zgadywać:
To najczęściej powtarzany prompt do debugowania wśród praktyków, i nie bez powodu: powstrzymuje model przed związaniem się z pierwszą wiarygodną przyczyną i zamienia pętlę zgadywania w pomiar.
Najtańszy krok weryfikacji to drugi przebieg po własnej pracy modelu, skonfrontowany z tym, o co naprawdę poprosiłeś:
Pierwsza implementacja to często eksploracja. Gdy już działa, model wie wystarczająco dużo, by napisać czystszą wersję:
Gdy jakość wyników spada, przyczyną niemal zawsze jest kontekst lub konfiguracja — nie model. Naprawy różnią się w zależności od narzędzia, więc tu trzy podejścia rozchodzą się najbardziej.
@-wskaż źródło — @auth.ts extend the login logic — żeby edytował, a nie wymyślał od nowa./init, aby wygenerować CLAUDE.md, a potem dopracowuj go w miarę rozwoju projektu./context przed dużym zadaniem; /clear między niepowiązanymi zadaniami i /compact <instructions>, by przyciąć szum w trakcie wątku./model lub /effort. ultrathink jest tylko wskazówką one-turn w kontekście; nie zmienia API effort ani nie rezerwuje stałego budżetu./init wewnątrz TUI, aby utworzyć szkielet AGENTS.md, i trzymaj osobne pliki AGENTS.md dla każdego pakietu w monorepo.--sandbox workspace-write -c approval_policy=on-request; approval_policy=never rezerwuj dla zaufanych przebiegów unattended z jawnym sandboxem. Następnie wybierz właściwy model: rodzina GPT-5.6 napędza Codeksa na wszystkich powierzchniach; użyj gpt-5.6-sol do przepływów uwierzytelnianych kluczem API.Skonfiguruj kontekst. Utrzymuj reguły projektu / CLAUDE.md / AGENTS.md; odświeżaj je w miarę zmian w bazie kodu.
Wykorzystaj właściwą możliwość. Wybierz topowy model; w Claude Code podnieś poziom wysiłku do pracy architektonicznej; w Cursorze włącz tryb MAX dla dużego kontekstu.
Bądź konkretny. Odwołuj się do konkretnych plików @-wskazaniami i pokazuj przykładowe wzorce.
Proś o doprecyzowanie. Kończ prompty pytaniem, czego model potrzebuje; używaj pętli PRD → plan → todo dla kontroli.
Skonfiguruj dostęp do dokumentacji. Dodaj Context7 MCP albo poleć wyszukanie aktualnej dokumentacji biblioteki w sieci.