Konfiguracja i inicjalizacja projektów
Jest poniedziałek rano. Twój product manager właśnie opisał nowy mikroserwis: “Potrzebujemy REST API, które obsługuje preferencje użytkowników, przechowuje je w PostgreSQL, z uwierzytelnianiem, rate limitingiem i strukturalnym logowaniem.” Tradycyjna odpowiedź to dzień okablowania boilerplate, zanim napiszesz linię logiki biznesowej. Z Claude Code opisujesz usługę, on buduje szkielet, a Ty spędzasz czas na weryfikacji zamiast na pisaniu.
Sztuczka nie polega na generowaniu — każde narzędzie potrafi wypluć drzewo katalogów. Sztuczka polega na poprowadzeniu pierwszego promptu tak, aby otrzymać szkielet produkcyjny, a następnie na prowadzeniu ścisłej pętli “buduj, zweryfikuj, że działa, koryguj kurs”, żeby wyłapać luki, zanim się skumulują.
Co Wyniesiesz z Tej Lekcji
Dział zatytułowany „Co Wyniesiesz z Tej Lekcji”- Powtarzalną pętlę bootstrapowania: opisz, wygeneruj, zweryfikuj, koryguj kurs
- Zwięzły
CLAUDE.md, który przetrwa kolejne sesje, nie będąc ignorowanym - Prompty copy-paste do API Node/Express, migracji na TypeScript i konfiguracji CI/CD
- Realny przepływ prototypowania z użyciem
--dangerously-skip-permissionszamiast wymyślonych “trybów”
Od pomysłu do działającego kodu
Dział zatytułowany „Od pomysłu do działającego kodu”Bootstrap, który działa, to nie “wpisz jedno życzenie i odejdź”. To cztery ruchy: opisz konkretnie, pozwól Claude zbudować szkielet, a następnie od razu każ mu udowodnić, że szkielet działa.
-
Stwórz katalog projektu i uruchom Claude Code
Okno terminala mkdir user-preferences-api && cd user-preferences-apigit initclaudegit initna początku ma znaczenie: Claude Code jest git-aware i commituje w logicznych punktach kontrolnych, więc możesz się cofnąć, jeśli krok scaffoldingu pójdzie nie tak. -
Opisz usługę z wystarczającą szczegółowością, aby uniknąć generycznego szablonu
-
Każ Claude udowodnić, że szkielet działa, zanim na nim zbudujesz
To jest krok, który odróżnia realny przepływ pracy od broszury. Nie ufaj zrzutowi drzewa — uruchom go.
Start Postgres with docker compose, run the migrations, then start thedev server and confirm /health returns 200. Run the linter and the testsuite. Paste any errors and fix them until everything is green.Claude jest najlepszy z prawdziwym błędem przed oczami. Gdy wersja zależności się kłóci albo migracja zawodzi, to właśnie faktyczny stderr pozwala mu skorygować kurs precyzyjnie, zamiast zgadywać.
-
Skoryguj kurs w jednej realnej luce
Wygenerowane szkielety prawie zawsze pomijają coś specyficznego dla tego, jak pracujesz. Nazwij to wprost, zamiast opisywać cały projekt od nowa:
The CRUD handlers call Drizzle directly. Extract a preferences servicelayer between the routes and the DB so business logic is testable inisolation, and move the Zod schemas into src/schemas/.
W ciągu kilku minut masz bazę kodu, którą faktycznie uruchomiłeś: warstwę serwisów, zwalidowane routy, migracje, które się zaaplikowały, przechodzący zestaw testów i konfigurację Docker, którą widziałeś jak startuje — a nie drzewo, o którym masz nadzieję, że się kompiluje.
Fundament: CLAUDE.md
Dział zatytułowany „Fundament: CLAUDE.md”Kontekst jest tym, co czyni Claude Code skutecznym między sesjami. CLAUDE.md to trwała pamięć Twojego projektu — przetrwa, gdy rozmowa już nie.
Wygeneruj go automatycznie, potem przytnij
Dział zatytułowany „Wygeneruj go automatycznie, potem przytnij”Uruchom /init wewnątrz Claude Code. Czyta Twój package.json, przechodzi przez strukturę katalogów, wykrywa framework testowy i pisze startowy CLAUDE.md. Output jest punktem wyjścia, a nie gotowym plikiem — najlepsze pliki CLAUDE.md są mocno przycięte i dopracowywane w czasie.
# User Preferences API
## Tech Stack- Node.js 22.x, Express, TypeScript strict- PostgreSQL 17 via Drizzle ORM- Redis for rate-limit counters
## Commands- npm run dev # start dev server on :3000- npm test # vitest- npm run migrate # drizzle migrations- docker compose up
## Conventions- Service layer between routes and DB; routes stay thin- Zod validates every request body; never trust client input- Named exports only; colocate Button.tsx / Button.test.tsx
## Gotchas- IMPORTANT: never commit .env. Use .env.example.- Migrations are append-only; use the generator, never hand-editProgresywna migracja, nie przepisanie
Dział zatytułowany „Progresywna migracja, nie przepisanie”Dziedziczysz legacy aplikację Express i potrzebujesz jej na TypeScript bez ryzykownego przepisania big-bang. Przepływ pracy to ta sama pętla opisz-wygeneruj-zweryfikuj, stosowana po jednej fazie naraz, tak aby aplikacja pozostawała wdrażalna na każdym kroku.
-
Zdobądź plan fazowy, a nie diff
Analyze this Express app and propose a phased migration to TypeScriptstrict that keeps the service deployable after each phase. Start withtsconfig + build wiring and the leaf modules with no internal imports. -
Wykonaj fazę pierwszą i potwierdź, że build nadal się wdraża
Implement phase 1: add the TypeScript config and convert the leafmodules. Then run the build and the existing test suite and confirmboth pass before we touch anything else. -
Iteruj, weryfikując każdą fazę
Tests pass. Convert the next layer (the route handlers), add types forthe external deps they use, and run the suite again. Stop if anythingbreaks.
Dyscyplina tkwi w kroku weryfikacji między fazami. Pominięcie go to sposób, w jaki “stopniowa” migracja po cichu zbiera setkę błędów typów, które odkrywasz wszystkie naraz.
Szybkie prototypowanie
Dział zatytułowany „Szybkie prototypowanie”Jesteś na hackathonie. Chcesz zwalidować pomysł w godziny, a prompty o uprawnienia przy każdym zapisie pliku Cię spowalniają. W Claude Code nie ma “trybu YOLO” — realnym mechanizmem jest flaga --dangerously-skip-permissions (lub tryb uprawnień bypassPermissions), która pomija prompty zatwierdzeń na czas sesji.
claude --dangerously-skip-permissionsNastępnie podaj mu prompt buildowy o ograniczonym zakresie:
Struktura projektu w różnych narzędziach
Dział zatytułowany „Struktura projektu w różnych narzędziach”Bootstrapowanie projektu to jeden z nielicznych przepływów pracy, które wyglądają znacząco inaczej w każdym narzędziu, więc sięgnij po to, które pasuje do tego, jak pracujesz.
Otwórz pusty folder, przełącz Agenta na mocny model (Claude Opus 4.8 do większości szkieletów; Claude Fable 5, gdy priorytetem jest budowanie od zera i budżet ma mniejsze znaczenie) i wklej ten sam prompt scaffoldingowy w trybie Agent. Cursor proponuje drzewo plików jako diff, który akceptujesz lub odrzucasz per plik, a jego checkpointy pozwalają cofnąć zły krok scaffoldingu z paska bocznego zamiast git reset.
Przepływ terminal-first opisany powyżej: git init, claude, wklej prompt scaffoldingowy, a następnie prowadź pętlę weryfikacji (“uruchom serwer deweloperski, uruchom testy, napraw błędy”) w tej samej sesji. /init generuje CLAUDE.md. Najlepsze, gdy chcesz mieć build i weryfikację w jednym, skryptowalnym miejscu.
Uruchom codex w pustym katalogu (GPT-5.5 domyślnie) i wklej prompt scaffoldingowy. Dla niezaufanego szkieletu zacznij w trybie read-only i zatwierdzaj zapisy w miarę ich pojawiania się: codex --ask-for-approval on-request. Użyj codex --full-auto, gdy zaufasz planowi. Codex potrafi też rozpocząć cały scaffolding z GitHub issue w chmurze, a następnie otworzyć PR, który przeglądasz.
Konfiguracja, która sama się waliduje
Dział zatytułowany „Konfiguracja, która sama się waliduje”Szkielet, który wypluwa pliki konfiguracyjne, nie jest gotowy — chcesz konfiguracji, która głośno zawodzi na złej wartości, i chcesz zobaczyć, jak zawodzi. Poproś o konfigurację świadomą środowiska z walidacją przy starcie, a potem przetestuj tę walidację, podsuwając jej coś zepsutego.
Połowa “then prove it” jest tu sednem. Walidacja konfiguracji, której nigdy nie widziałeś nic odrzucić, to walidacja konfiguracji, której faktycznie nie masz.
Przyspieszanie konfiguracji z MCP i Skills
Dział zatytułowany „Przyspieszanie konfiguracji z MCP i Skills”Dwa dodatki realnie skracają czas konfiguracji i oba działają w Cursor, Claude Code i Codex:
- Serwer Postgres MCP pozwala Claude introspekować Twój żywy schemat zamiast zgadywać nazwy kolumn, gdy pisze migracje i zapytania. Dodaj go w Claude Code za pomocą
claude mcp add --transport stdio postgres -- npx -y @modelcontextprotocol/server-postgres "$DATABASE_URL". Ta sama konfiguracja serwera wpada do Cursora i Codeksa. - Serwer GitHub MCP (
@modelcontextprotocol/server-github) pozwala tej samej sesji stworzyć repo, wypchnąć szkielet i otworzyć pierwszy PR bez wychodzenia z terminala. - Do jednorazowego rozszerzenia, a nie trwałego połączenia, Agent Skill jest lżejszą opcją. Przejrzyj skills.sh i zainstaluj za pomocą uniwersalnego CLI —
npx skills add <owner/repo>— które działa w Claude Code, Cursor i Codex. Sięgnij po skill, gdy chcesz pojedynczej, wielokrotnego użytku zdolności (przebieg code review, przepis na deploy); sięgnij po serwer MCP, gdy chcesz żywego, stanowego połączenia z narzędziem.
Kiedy To Się Psuje
Dział zatytułowany „Kiedy To Się Psuje”Claude wypluwa generyczny szablon zamiast tego, co opisałeś. Twój prompt był zbyt niejasny. Dodaj wersje frameworków, dokładny układ katalogów i swoje konwencje. Szczegółowość, którą wkładasz na początku, to korekta kursu, której unikasz później.
Wygenerowany projekt ma konflikty zależności. Claude czasami pobiera niezgodne wersje. To jest dokładnie powód, dla którego krok weryfikacji jest nienegocjowalny — “uruchom serwer deweloperski i napraw wszelkie błędy” stawia prawdziwy stderr przed Claude, a on dobrze rozwiązuje konflikty, gdy widzi faktyczną awarię.
/init pomija konwencje Twojego zespołu. Czyta strukturę kodu, a nie niepisane zasady. Zawsze uzupełniaj jego output o rzeczy, które żyją tylko w głowach ludzi: nazewnictwo branchy, proces PR, kroki wdrożenia. Następnie waliduj, zadając pytanie, na które tylko dobrze skonfigurowany CLAUDE.md mógłby odpowiedzieć (“Jak uruchomić tylko testy jednostkowe modułu auth?”).
Szkielet odchodzi od Twojego promptu w trakcie długiej sesji. Gdy kontekst się zapełnia, Claude może zapomnieć wczesną instrukcję (tylko named exports, bez default exports). Powtórz tę zasadę w CLAUDE.md, aby przetrwała, zamiast powtarzać ją w czacie za każdym razem.
CLAUDE.md jest ignorowany w późniejszych sesjach. Plik jest zbyt długi lub zbyt niejasny. Przytnij go poniżej ~50 linii i uczyń każdą linię konkretną i wykonalną. “Pisz czysty kod” nie wnosi nic; “Warstwa serwisów między routami a DB; routy pozostają cienkie” zarabia na swoje miejsce.
Co Dalej
Dział zatytułowany „Co Dalej”Możesz przejść od zera do usługi, którą faktycznie uruchomiłeś. Dalej naucz się, jak Claude Code nawiguje po kodzie, którego nie napisałeś.