Głębokie rozumowanie dla projektowania funkcji
Twój PM właśnie zrzucił jednoliniową prośbę o funkcję na Slacku: “Potrzebujemy wsparcia dla multi-tenant.” Żadnego PRD. Żadnej specyfikacji technicznej. Żadnej dyskusji o tym, co “multi-tenant” oznacza w kontekście istniejącej architektury twojej aplikacji. Możesz spędzić tydzień zadając pytania wyjaśniające i pisząc dokumenty projektowe. Albo możesz użyć możliwości planowania Claude Code, aby zamienić ten jednolinijkowiec w szczegółowy plan implementacji w niecałą godzinę.
Programiści, którzy czerpią najwięcej wartości z Claude Code, nie przeskakują od razu do implementacji. Używają Plan Mode i extended thinking do eksploracji przestrzeni problemu, identyfikacji przypadków brzegowych i projektowania rozwiązań zanim jakikolwiek plik zostanie zmodyfikowany. Ta lekcja opisuje ten przepływ pracy planowania.
Co wynosisz z tej lekcji
Dział zatytułowany „Co wynosisz z tej lekcji”- Przepływ pracy Plan Mode do projektowania funkcji bez modyfikowania kodu
- Prompty używające extended thinking dla złożonych decyzji architektonicznych
- Technika “interview”, gdzie Claude zadaje ci pytania, o które zapomniałeś zapytać samego siebie
- Powtarzalny proces przejścia od niejasnego wymagania do szczegółowej specyfikacji implementacji
Plan Mode: pomyśl zanim zakodujesz
Dział zatytułowany „Plan Mode: pomyśl zanim zakodujesz”Plan Mode to najbardziej niedoceniana funkcja w Claude Code. Kiedy jest aktywny, Claude może czytać całą twoją bazę kodu, ale nie może modyfikować żadnych plików. To ograniczenie jest w rzeczywistości supermocą — zmusza Claude’a do skupienia się całkowicie na analizie i planowaniu.
Włączanie Plan Mode
Dział zatytułowany „Włączanie Plan Mode”Masz trzy opcje:
# Rozpocznij nową sesję w Plan Modeclaude --permission-mode plan
# Przełączaj podczas sesji: naciśnij Shift+Tab dwa razy# Pierwsze Shift+Tab = Auto-Accept Mode# Drugie Shift+Tab = Plan Mode
# Uruchom jednorazowe zapytanie planistyczne w trybie headlessclaude --permission-mode plan -p "Analyze our auth system and propose improvements"Przepływ pracy planowania
Dział zatytułowany „Przepływ pracy planowania”-
Zbadaj obecny stan
Przed planowaniem jakichkolwiek zmian, pozwól Claude’owi zrozumieć, co istnieje. To jest miejsce, gdzie Plan Mode błyszczy — Claude czyta obszernie bez żadnego ryzyka.
I need to add multi-tenant support to this application.Before we plan anything, analyze the current architecture:1. How is user data currently organized?2. What database tables would need tenant isolation?3. Where are the main data access patterns?4. What external services do we integrate with?5. Are there any existing concepts of "organization" or "team"? -
Pozwól Claude’owi przeprowadzić z tobą wywiad
To jedna z najpotężniejszych technik w planowaniu funkcji. Zamiast próbować wymyślić każde wymaganie samodzielnie, poproś Claude’a, aby zadał ci trudne pytania.
Claude zada pytania takie jak:
- “Should tenants share a database with row-level isolation, or does each tenant need its own schema?”
- “How should we handle users who belong to multiple tenants? Can they switch between tenants, or does each tenant have separate credentials?”
- “What happens to existing data? Do all current users belong to a default tenant, or do we need a migration that assigns them based on some criteria?”
To są pytania, które, jeśli pozostaną bez odpowiedzi, stają się bugami na produkcji.
-
Wygeneruj plan implementacji
Po wywiadzie poproś Claude’a, aby zsyntetyzował wszystko w ustrukturyzowany plan.
Based on our discussion, create a detailed implementation plan.For each phase, include:- What changes are needed (specific files and modules)- Database migrations required- Tests that need to be written- Risks and mitigation strategies- Estimated complexity (small/medium/large)Order the phases so each one is independently deployable.I want to ship incrementally, not in one big bang. -
Przejrzyj plan w swoim edytorze
Naciśnij
Ctrl+G, aby otworzyć plan w swoim domyślnym edytorze tekstowym. Edytuj go bezpośrednio — dodaj notatki, zmień kolejność faz, usuń zakres, który chcesz odłożyć. Gdy zapiszesz i zamkniesz edytor, Claude przejmie twoje zmiany. -
Zapisz plan jako artefakt projektu
Write this plan to docs/plans/multi-tenant.md with checkboxesfor each task. I'll use this as a working checklist across sessions.
Extended thinking dla decyzji architektonicznych
Dział zatytułowany „Extended thinking dla decyzji architektonicznych”Niektóre zadania planistyczne wymagają głębszego rozumowania niż pozwala standardowy prompt. Extended thinking daje Claude’owi przestrzeń do przepracowania złożonych problemów krok po kroku przed odpowiedzią.
Extended thinking jest włączony domyślnie z Claude Opus 4.6, który używa adaptacyjnego rozumowania — model dynamicznie alokuje głębokość myślenia na podstawie ustawionego poziomu wysiłku.
Kiedy używać extended thinking
Dział zatytułowany „Kiedy używać extended thinking”- Decyzje architektoniczne z wieloma poprawnymi podejściami i nieoczywistymi kompromisami
- Planowanie migracji, gdzie kolejność operacji ma znaczenie, a błędy są kosztowne
- Projektowanie wydajności, gdzie musisz rozumować o przepływie danych, cachowaniu i skalowaniu
- Projektowanie bezpieczeństwa, gdzie pominięcie przypadku brzegowego oznacza lukę w zabezpieczeniach
Dostosowanie poziomu wysiłku
Dział zatytułowany „Dostosowanie poziomu wysiłku”Użyj menu /model, aby dostosować poziom wysiłku (low, medium, high). Wysoki wysiłek oznacza, że Claude alokuje więcej tokenów myślenia, aby przemyśleć twój problem przed odpowiedzią.
/model# Select effort level: highNastępnie zadaj swoje pytanie:
We need to decide between three approaches for tenant isolation:1. Shared database with tenant_id column on every table2. Schema-per-tenant in a shared database3. Database-per-tenant
Our constraints: 500 tenants expected in year one, growing to 5,000.Average tenant has 10,000 rows in the largest table. Some tenantsare "enterprise" with 10M+ rows. We run on managed PostgreSQL.
Analyze each approach against: query performance, operational complexity,cost, data isolation guarantees, and migration difficulty from ourcurrent single-tenant schema. Recommend one.Z wysokim wysiłkiem i extended thinking, Claude będzie systematycznie rozumował przez każde podejście przed daniem ci rekomendacji. Przełącz tryb verbose za pomocą Ctrl+O, aby obserwować proces rozumowania.
Wzorzec: dokument specyfikacji
Dział zatytułowany „Wzorzec: dokument specyfikacji”Dla złożonych funkcji, pozwól Claude’owi stworzyć formalną specyfikację, która stanie się źródłem prawdy dla implementacji.
Planowanie w wielu sesjach
Dział zatytułowany „Planowanie w wielu sesjach”Złożone funkcje często wymagają wielu sesji planistycznych. Zarządzanie sesjami Claude Code czyni to naturalnym.
# Nazwij swoją sesję planistyczną# (wewnątrz Claude Code, użyj /rename)/rename multi-tenant-planning
# Później, wznów sesjęclaude --resume multi-tenant-planningJeśli sesja stanie się zbyt ciężka przez kontekst z eksploracji, rozpocznij świeżą sesję i wskaż jej twoje zapisane artefakty:
Read docs/specs/multi-tenant-spec.md and docs/plans/multi-tenant.md.These are the spec and implementation plan from our planning sessions.I'm ready to start implementation. Which phase should we tackle first?Używanie sub-agentów do research
Dział zatytułowany „Używanie sub-agentów do research”Kiedy planowanie wymaga zrozumienia wielu części bazy kodu, deleguj research do sub-agentów, aby twój główny kontekst planistyczny pozostał skupiony.
Before we finalize the plan, use sub-agents to research:
1. Check every database query in the codebase that would need a tenant_id filter. List them by file and line number.
2. Find all API endpoints that return data which would need tenant scoping. Group by router/controller.
3. Identify all background jobs and cron tasks that would need tenant awareness.
Report the findings so we can update the implementation planwith accurate scope.Kiedy to nie działa
Dział zatytułowany „Kiedy to nie działa”Plan Claude’a jest zbyt ogólny, aby był wykonalny. Naciskaj na konkretność: “For each task in the plan, name the exact files that need to change and describe the change in one sentence.” Jeśli Claude nie może nazwać konkretnych plików, nie zbadał bazy kodu wystarczająco głęboko — wyślij go z powrotem do zbadania.
Wywiad chodzi w kółko. Claude czasami zadaje redundantne pytania. Jeśli to się dzieje, powiedz: “You’ve already asked about X. Move on to areas we haven’t covered: [list specific areas].”
Extended thinking produkuje przemyślane odpowiedzi. Dla prostszych zadań planistycznych, wysoki wysiłek jest przesadą. Obniż do średniego wysiłku dla prostych dodatków funkcji. Zarezerwuj wysoki wysiłek dla naprawdę złożonych decyzji architektonicznych.
Plan nie uwzględnia istniejących wzorców kodu. Wyraźnie powiedz Claude’owi: “This plan must follow the existing patterns in the codebase. Don’t introduce new frameworks or patterns. Look at how we implemented [similar feature] and follow that approach.”
Kontekst sesji wypełnia się podczas planowania. Uruchom /compact Focus on the implementation plan and key decisions, aby zwolnić kontekst zachowując ważne części. Lub zapisz plan do pliku i rozpocznij świeżą sesję.
Co dalej
Dział zatytułowany „Co dalej”Masz szczegółowy plan. Teraz czas zamienić go w działający kod.