Kural kataloğu
İki kural her zaman yüklenir. Diğerleri agent eşleşen dosyalarda çalışırken yüklenir.
Kurallar nasıl yüklenir
corevearchitectureher zaman yüklenir.- Diğerleri dosya desenleri taşır: Claude Code’da
paths, Cursor’daglobs. Agent eşleşen bir dosyayı okuduğunda veya düzenlediğinde araç kuralı yükler. - Diğer agent’lar
AGENTS.mdharitasını izler. Harita her kural için “Use when” satırını verir.
Katalog
| Kural | Kapsam | Yüklendiği dosyalar |
|---|---|---|
core | Çalışma şekli: değiştirmeden önce okuma, küçük değişiklik, isimlendirme, named export, hata yönetimi, yorumlar. | Her zaman |
architecture | Stack tablosu, klasör ağacı, kodun yeri, feature sınırları ve import kuralları (../ import yok). | Her zaman |
react | React 19 bileşenleri ve hook’lar: state kopyalamak yerine türetme, effect sadece dış sistemler için, React Compiler, prop olarak ref. | src/**/*.tsxsrc/hooks/**/*.tssrc/features/**/hooks/**/*.ts |
typescript | Strict TypeScript ve Zod 4: önce şema, discriminated union, any, as ve non-null assertion yok. | src/**/*.{ts,tsx} |
ui | Base UI veya Radix üzerinde shadcn/ui, Tailwind CSS 4 token’ları, yükleniyor, boş ve hata durumları, erişilebilirlik. | src/components/**/*.tsxsrc/features/**/components/**/*.tsx |
forms | zodResolver ile React Hook Form, schemas/ içinde şemalar, tipli defaultValues, setError ile sunucu hataları. | src/features/**/components/*Form*.tsxsrc/features/**/schemas/**/*.tssrc/schemas/**/*.ts |
api | features/*/api içinde src/lib/api.ts üzerinden HTTP çağrıları, Zod ile doğrulanan cevaplar, ApiError, sayfalı listeler. | src/lib/api.tssrc/features/**/api/**/*.ts |
server-state | TanStack Query 5: key factory, sorgu başına tek queryOptions, ince hook’lar, invalidation, optimistic update. | src/features/**/api/**/*.tssrc/features/**/hooks/**/*.tssrc/hooks/**/*.tssrc/lib/query-client.tssrc/providers/**/*.{ts,tsx} |
client-state | Selector ve useShallow ile Zustand 5 store’ları, nuqs ile URL state, SSR uyumlu persist. | src/stores/**/*.tssrc/features/**/stores/**/*.ts |
i18n | messages/ içinde mesajlar, sabit metin yok, tipli anahtarlar; next-intl ve Paraglide ayrıntıları.Sadece next-intl veya Paraglide kuruluysa | messages/**/*.jsonsrc/i18n/**/*.tsproject.inlang/settings.jsonsrc/components/**/*.tsxsrc/features/**/components/**/*.tsx |
performance | LCP, INP ve CLS bütçeleri, optimizasyondan önce ölçüm, görseller, fontlar ve script’ler. | src/app/**/*.tsxsrc/routes/**/*.tsxsrc/components/**/*.tsxsrc/features/**/components/**/*.tsx |
testing | Vitest, Testing Library ve MSW: uygulama detayı yerine davranış, role sorguları, MSW ile HTTP mock’u. | src/**/*.test.{ts,tsx}src/test/**/*.{ts,tsx}vitest.config.ts |
nextjs | App Router: Server Components, async params, Server Actions, "use cache", proxy.ts, next/image ve next/font.Sadece Next.js projeleri | src/app/**/*.{ts,tsx}src/proxy.tsnext.config.ts |
tanstack-start | Dosya route’ları, ensureQueryData ile loader’lar, createServerFn ile server function’lar, middleware, head().Sadece TanStack Start projeleri | src/routes/**/*.{ts,tsx}src/router.tsxsrc/start.ts |
Projeye göre değişenler
nextjssadece Next.js projelerine,tanstack-startsadece TanStack Start projelerine kurulur.i18nsadecenext-intlveya@inlang/paraglide-jsbağımlılıksa kurulur. Kütüphaneyi sonradan eklersenizinitkomutunu tekrar çalıştırın.- İki framework’ün ortak kuralları sadece sizinkine ait satırları tutar. Örneğin
server-stateiçindekiQueryProviderkurulumu. - Kurallardaki komutlar (
lint,typecheck,test,shadcn add) sizin paket yöneticinizi kullanır.
