Przejdź do głównej zawartości

Zasady projektu

Zasady projektu to fundament skutecznego rozwoju wspomaganego przez AI. W tym 10-minutowym przewodniku nauczysz się tworzyć zasady które zapewniają spójne generowanie kodu zgodne ze standardami twojego zespołu.

.cursor/rules/
├── always/ # Stosowane do każdej interakcji AI
├── auto-attached/ # Stosowane na podstawie wzorców plików
├── agent-requested/ # AI decyduje kiedy stosować
└── manual/ # Tylko gdy wyraźnie się odwołujesz

Automatyczny kontekst

Zasady stają się częścią kontekstu AI automatycznie, jak posiadanie seniora zawsze przewodniczącego juniorowi

Kontrola wersji

Sprawdzaj zasady do Git żeby cały zespół korzystał ze wspólnej wiedzy i standardów

Hierarchiczne

Zasady kaskadują od katalogu głównego projektu do podkatalogów, z lokalnymi zasadami nadpisującymi globalne

Dynamiczne aktualizacje

Aktualizuj zasady w locie - AI natychmiast przyjmuje nowe wytyczne bez restartu

  1. Otwórz paletę komend: Cmd/Ctrl + Shift + P

  2. Uruchom komendę generowania: “Generate Cursor Rules”

  3. Przejrzyj wygenerowaną strukturę:

    .cursor/rules/
    ├── code-style.mdc
    ├── architecture.mdc
    ├── testing.mdc
    └── documentation.mdc
  4. Dostosuj wygenerowane zasady: edytuj każdy plik aby pasował do twoich standardów

Cursor analizuje twoją bazę kodu i tworzy zasady dla:

  • Stylu kodowania z istniejących wzorców
  • Architektury ze struktury projektu
  • Wzorców testowania z plików testowych
  • Dokumentacji z komentarzy/docs
  • Zależności z plików pakietów
  • Konwencji Git z historii commitów

Zasady zawsze stosowane

Zasady które stosują się do każdej interakcji AI. Używaj oszczędnie dla uniwersalnych standardów.

---
description: Podstawowe standardy kodowania
alwaysApply: true
---
# Uniwersalne standardy
- Nigdy nie commituj sekretów ani kluczy API
- Zawsze obsługuj błędy jawnie
- Używaj trybu strict TypeScript
- Podążaj za konfiguracją ESLint
- Dołączaj testy jednostkowe dla nowych funkcji
---
description: Standardy komponentów React
globs: ["src/components/**/*.tsx"]
---
# Zasady komponentów React
- Używaj tylko komponentów funkcyjnych
- Implementuj odpowiednie propsy TypeScript
- Dołączaj historie Storybook
- Używaj modułów CSS do stylowania
- Podążaj za zasadami atomic design
## Struktura komponentu
```typescript
interface ComponentProps {
// Udokumentowane propsy
}
export const Component: FC<ComponentProps> = (props) => {
// Implementacja
};
---
description: Wytyczne optymalizacji wydajności - AI używa przy optymalizacji kodu
alwaysApply: false
---
# Optymalizacja wydajności
Przy optymalizacji kodu:
- Profiluj przed optymalizacją
- Dokumentuj poprawy wydajności
- Rozważ kompromisy pamięć vs CPU
- Używaj cache strategicznie
- Implementuj lazy loading gdzie odpowiednie
---
description: Obsługa kodu legacy - użyj @legacy-rules
alwaysApply: false
---
# Wytyczne kodu legacy
Przy pracy z kodem legacy:
- Utrzymuj kompatybilność wsteczną
- Dodawaj ostrzeżenia deprecation
- Twórz przewodniki migracji
- Testuj dokładnie przed refaktoryzacją
  1. Bądź konkretny i wykonalny

    ❌ "Pisz dobry kod"
    ✅ "Używaj const dla wartości niemutowalnych, let dla mutowalnych"
  2. Dołączaj przykłady

    ## Wzorzec obsługi błędów
    ```typescript
    try {
    const result = await riskyOperation();
    return { success: true, data: result };
    } catch (error) {
    logger.error('Operacja zawiodła', { error, context });
    return { success: false, error: error.message };
    }
  3. Dostarczaj kontekst

    # Dlaczego ta zasada
    Używamy dependency injection aby poprawić testowalność
    i zmniejszyć sprzężenie między modułami.
  4. Trzymaj zasady skupione

    • Jeden temat na plik zasad
    • 50-200 linii optymalna długość
    • Jasne nagłówki sekcji
---
description: Najlepsze praktyki bezpieczeństwa
alwaysApply: true
---
# Standardy bezpieczeństwa
## Uwierzytelnianie
- Używaj tokenów JWT z krótkim wygaśnięciem
- Implementuj rotację refresh tokenów
- Przechowuj wrażliwe dane w zmiennych środowiskowych
- Hashuj hasła z bcrypt (min 10 rund)
## Walidacja input
- Sanityzuj wszystkie inputy użytkownika
- Używaj parametryzowanych zapytań
- Implementuj ograniczenia częstości
- Waliduj uploady plików
## NIGDY
- Nie loguj haseł ani tokenów
- Nie używaj eval() ani dynamicznego wykonania kodu
- Nie ufaj walidacji po stronie klienta
- Nie przechowuj sekretów w kodzie
  1. Podczas rozwoju:

    AI: "Użyję PostgreSQL dla tej funkcji"
    Ty: "# Zawsze używaj MySQL dla naszych projektów, nie PostgreSQL"
  2. Zasada zostaje dodana:

    # Wybór bazy danych
    Zawsze używaj MySQL dla naszych projektów, nie PostgreSQL
  3. Natychmiastowy efekt: następne żądanie użyje MySQL

Po produktywnej sesji:

  1. Uruchom /Generate Cursor Rules w czacie
  2. AI ekstraktuje wzorce i decyzje
  3. Tworzy zasady do przyszłego użycia
  4. Przejrzyj i commituj do Git
.cursor/rules/
├── features/
│ ├── authentication/
│ │ ├── jwt-tokens.mdc
│ │ └── oauth-flow.mdc
│ ├── payments/
│ │ ├── stripe-integration.mdc
│ │ └── invoice-generation.mdc
│ └── notifications/
│ ├── email-templates.mdc
│ └── push-notifications.mdc
.cursor/rules/
├── presentation/
│ ├── components.mdc
│ └── styles.mdc
├── business/
│ ├── services.mdc
│ └── validation.mdc
└── data/
├── repositories.mdc
└── migrations.mdc
.cursor/rules/
├── performance/
│ ├── caching.mdc
│ └── optimization.mdc
├── security/
│ ├── authentication.mdc
│ └── encryption.mdc
└── quality/
├── testing.mdc
└── code-review.mdc
---
description: Zasady specyficzne dla środowiska
globs: ["src/**/*.ts"]
---
# Zasady środowiska
## Development
Gdy NODE_ENV to development:
- Używaj verbose logging
- Włącz endpointy debug
- Pomiń wysyłanie email
## Production
Gdy NODE_ENV to production:
- Używaj strukturalnego logowania
- Wyłącz endpointy debug
- Implementuj ograniczenia częstości
---
description: Wzorce architektury
---
# Podążaj za naszą architekturą
Implementuj wzorce z:
@architecture/diagrams/system-design.png
@architecture/decisions/adr-001.md
Kluczowe zasady:
- Komunikacja sterowana zdarzeniami
- CQRS dla złożonych domen
- Wzorzec Repository dla dostępu do danych
---
description: Wytyczne refaktoryzacji
globs: ["src/legacy/**/*"]
---
# Refaktoryzacja kodu legacy
## Faza 1: Dodaj typy
- Dodaj typy TypeScript do interfejsów
- Dokumentuj istniejące zachowanie
- Nie zmieniaj funkcjonalności
## Faza 2: Wyodrębnij funkcje
- Rozbij duże funkcje < 50 linii
- Wyodrębnij narzędzia wielokrotnego użytku
- Dodaj testy jednostkowe
## Faza 3: Modernizuj
- Konwertuj na async/await
- Używaj nowoczesnych funkcji JS
- Aktualizuj zależności

Nadmierna specyfikacja

Nie twórz zasad dla każdego drobnego szczegółu - skup się na ważnych wzorcach

Sprzeczności

Upewnij się że zasady nie kolidują ze sobą lub istniejącymi narzędziami

Przestarzałe zasady

Przeglądaj i aktualizuj zasady kwartalnie gdy projekt ewoluuje

Niejasne instrukcje

Zastąp “pisz czysty kod” konkretnymi, mierzalnymi wytycznymi

  1. Utwórz scenariusz testowy:

    "Utwórz nowy endpoint API dla profili użytkownika"
  2. Zweryfikuj że AI podąża za zasadami:

    • Sprawdź zgodność stylu kodu
    • Zweryfikuj wzorce architektury
    • Potwierdź podejście testowe
  3. Iteruj jeśli potrzeba:

    • Wyjaśnij niejasne zasady
    • Dodaj brakujące przykłady
    • Usuń nieefektywne zasady
  1. Commituj do Git:

    Okno terminala
    git add .cursor/rules/
    git commit -m "Dodaj standardy kodowania projektu"
    git push
  2. Dokumentuj w README:

    ## Standardy kodowania AI
    Ten projekt używa zasad Cursor dla spójnej pomocy AI.
    Zasady są w `.cursor/rules/` i stosują się automatycznie.
    Aby aktualizować zasady:
    1. Edytuj odpowiednie pliki `.mdc`
    2. Testuj z AI
    3. Commituj zmiany
  3. Regularne przeglądy:

    • Miesięczne spotkania przeglądu zasad
    • Śledź skuteczność zasad
    • Aktualizuj na podstawie feedbacku zespołu

Kontynuuj do przepływu pracy PRD

Teraz opanujmy przepływ pracy PRD → Plan → Todo który transformuje sposób budowania funkcji.

Przepływ pracy PRD →

Czas: 15 minut