Kurallar
Kurallar, Agent için sistem düzeyinde talimatlar sağlar. İstemleri, betikleri ve daha fazlasını bir araya getirerek iş akışlarını ekibiniz genelinde yönetmeyi ve paylaşmayı kolaylaştırır.
Cursor dört tür kuralı destekler:
Proje Kuralları
.cursor/rules içinde saklanır, sürüm kontrolündedir ve kod tabanınıza özgüdür.
Kullanıcı Kuralları
Cursor ortamınızın tamamında geçerlidir. Agent (Chat) tarafından kullanılır.
Ekip Kuralları
Kontrol panelinden yönetilen, ekip genelinde geçerli kurallardır. ekip ve Kurumsal planlarında kullanılabilir.
AGENTS.md
Markdown biçimindeki Agent talimatları.
.cursor/rules için basit bir alternatiftir.
Kurallar nasıl çalışır
Büyük dil modelleri, tamamlamalar arasında belleği korumaz. Kurallar, istem düzeyinde kalıcı ve yeniden kullanılabilir bağlam sağlar.
Uygulandığında, kural içerikleri model bağlamının başına eklenir. Bu sayede yapay zekâ, kod oluşturma, düzenlemeleri yorumlama veya iş akışlarında yardımcı olma konusunda tutarlı yönlendirmeler alır.
Proje kuralları
Proje kuralları, .cursor/rules dizininde .mdc dosyaları olarak yer alır ve sürüm kontrolü altında tutulur. Yol örüntüleriyle kapsamları belirlenebilir, manuel olarak çağrılabilir veya uygunluğa göre dahil edilebilir.
Proje kurallarını şunlar için kullanın:
- Kod tabanınıza özgü alan bilgilerini tanımlamak
- Projeye özgü iş akışlarını veya şablonları otomatikleştirmek
- Stil veya mimari kararları standartlaştırmak
Kural dosyası yapısı
Her kural, istediğiniz gibi adlandırabileceğiniz bir .mdc dosyasıdır. Proje kurallarında .mdc uzantısı kullanılmalıdır. .cursor/rules içindeki düz .md dosyaları, description, globs ve alwaysApply belirtmek için frontmatter içermediğinden kurallar sistemi tarafından yoksayılır. Düz markdown kullanmayı tercih ediyorsanız AGENTS.md kullanın.
.cursor/rules/ react-patterns.mdc # Proje kuralı olarak tanınır api-guidelines.md # Yoksayılır (yanlış uzantı) frontend/ # Kuralları klasörler içinde düzenleyin components.mdcKural yapısı
Her kural, frontmatter meta verileri ve içerikten oluşan bir markdown dosyasıdır. description, globs ve alwaysApply özelliklerini değiştiren tür açılır menüsünden kuralların nasıl uygulanacağını belirleyin.
| Kural Türü | Açıklama |
|---|---|
Always Apply | Her chat oturumunda uygulanır |
Apply Intelligently | Agent, açıklamaya göre ilgili olduğuna karar verdiğinde |
Apply to Specific Files | Dosya, belirtilen bir desenle eşleştiğinde |
Apply Manually | Chat'te @ ile bahsedildiğinde (ör. @my-rule) |
Arka planda, üç frontmatter alanı bir kuralın ne zaman içerileceğini belirlemek için birlikte çalışır:
alwaysApply | description | globs | Davranış |
|---|---|---|---|
true | — | — | Her zaman içerilir. Glob'lar ve açıklama yoksayılır. |
false | — | sağlandı | Eşleşen bir dosya bağlamdayken otomatik olarak eklenir. |
false | sağlandı | atlandı | Agent açıklamayı okur ve ilgili olduğunda kuralı ekler. |
false | atlandı | atlandı | Yalnızca chat'te kuraldan @ ile bahsettiğinizde içerilir. |
---alwaysApply: true---- All source files must include the company copyright header- When you are unsure about implementation details, read the relevant source files before proposing changes- Never modify generated files in the `dist/` or `build/` directories---globs: src/components/**/*.tsxalwaysApply: false---- Use named exports, not default exports- Co-locate styles in a module CSS file next to the component- Keep components under 200 lines. Extract subcomponents into the same directory when a file grows beyond that- Prefer composition over prop drilling. Pass children or render props instead of threading data through multiple layers---description: RPC service conventions and patterns for the backendalwaysApply: false---- Define each service in its own file under `src/services/`- Always validate inputs at the service boundary before passing data to internal functions- Return structured error objects with a `code` and `message` field, never throw raw strings- Add a `@service-template.ts` reference file when creating a new service for the standard boilerplate---alwaysApply: false---- Every database migration must have both `up` and `down` functions so it can be fully reversed- Never alter a column type in-place. Add a new column, backfill, then drop the old one in a separate migration- Reference the template for the expected file structure@migration-template.sqldesen örnekleri
Bir kuralı belirli dosya veya dizinlerle sınırlamak için globs kullanın. Birden fazla kalıbı virgülle ayırın.
| Kalıp | Eşleşmeler |
|---|---|
* | Tek bir dosya adı bölümü |
** | İstenilen sayıda dizin (özyinelemeli) |
*.ts | Kökteki tüm .ts dosyaları |
**/*.ts | Herhangi bir dizindeki tüm .ts dosyaları |
src/** | src/ altındaki tüm dosyalar |
src/**/*.tsx | src/ altındaki tüm .tsx dosyaları |
docs/**/*.md, docs/**/*.mdx | docs/ altındaki .md ve .mdx dosyaları (virgülle ayrılmış) |
tailwind.config.* | Herhangi bir uzantıya sahip tailwind.config |
Kural oluşturma
Kural oluşturmanın iki yolu vardır:
- Sohbette
/create-rule: Agent'ta/create-ruleyazın ve istediğinizi açıklayın. Agent, uygun frontmatter ile kural dosyasını oluşturur ve.cursor/rulesdizinine kaydeder. - özelleştir'den: Kenar çubuğunda özelleştir'ı açın, kural'a gidin ve Add Rule'a tıklayın. Bu işlem
.cursor/rulesdizininde yeni bir kural dosyası oluşturur. özelleştir'den tüm kuralları ve durumlarını görebilirsiniz.
En İyi Uygulamalar
İyi kurallar odaklı, uygulanabilir ve kapsamı nettir.
- Kuralları 500 satırın altında tutun
- Büyük kuralları birden fazla, birleştirilebilir kurala bölün
- Somut örnekler veya başvurulan dosyalar sunun
- Belirsiz yönlendirmelerden kaçının. Kuralları açık ve net iç dokümanlar gibi yazın
- Sohbette istemleri tekrarlarken kuralları yeniden kullanın
- İçeriklerini kopyalamak yerine dosyalara başvurun—bu, kuralları kısa tutar ve kod değiştikçe güncelliğini yitirmelerini önler
Kurallarda kaçınılması gerekenler
- Tüm stil kılavuzlarını kopyalamak: Bunun yerine bir linter kullanın. Agent yaygın stil kurallarını zaten bilir.
- Olası tüm komutları belgelemek: Agent npm, git ve pytest gibi yaygın araçları bilir.
- Nadiren geçerli olan uç durumlar için talimat eklemek: Kuralları sık kullandığınız kalıplara odaklayın.
- Kod tabanınızda zaten bulunanları tekrarlamak: Kodu kopyalamak yerine asıl örneklere yönlendirin.
Basit başlayın. Yalnızca Agent'ın aynı hatayı tekrar tekrar yaptığını fark ettiğinizde kural ekleyin. Kalıplarınızı anlamadan aşırı optimizasyon yapmayın.
Tüm ekibinizin yararlanması için kurallarınızı git'e ekleyin. Agent'ın bir hata yaptığını gördüğünüzde kuralı güncelleyin. Hatta Agent'ın kuralı sizin için güncellemesi için bir GitHub issue veya PR'da @cursor etiketini kullanabilirsiniz.
Kural dosyası biçimi
Her kural, frontmatter meta verileri ve içerikten oluşan bir markdown dosyasıdır. Frontmatter meta verileri, kuralın nasıl uygulanacağını belirlemek için kullanılır. İçerik, kuralın kendisidir.
---description: "This rule provides standards for frontend components and API validation"alwaysApply: false---...rest of the rule contentalwaysApply true ise kural her chat session'a uygulanır. Aksi takdirde, uygulanıp uygulanmayacağına karar vermesi için kuralın açıklaması Cursor Agent'a sunulur.
Örnekler
Bu kural, ön uç bileşenleri için standartlar belirler:
Bileşenler dizininde çalışırken:
- Stil için her zaman Tailwind kullanın
- Animasyonlar için Framer Motion kullanın
- Bileşen adlandırma kurallarına uyun
Bu kural, API uç noktaları için doğrulama zorunluluğu getirir:
API dizininde:
- Tüm doğrulamalar için zod kullanın
- Dönüş türlerini zod şemalarıyla tanımlayın
- Şemalardan oluşturulan türleri dışa aktarın
Bu kural, Express hizmetleri için bir şablon sunar:
Express hizmeti oluştururken bu şablonu kullanın:
- RESTful ilkelerine uyun
- Hata işleme ara yazılımı ekleyin
- Uygun günlük kaydını ayarlayın
@express-service-template.ts
Bu kural, React bileşenlerinin yapısını tanımlar:
React bileşenleri şu düzeni izlemelidir:
- Props arayüzü en üstte
- Bileşen adlandırılmış dışa aktarma olarak
- Stiller en altta
@component-template.tsx
Bu kural, uygulama analizini otomatikleştirir:
Uygulamayı analiz etmeniz istendiğinde:
npm run devile geliştirme sunucusunu çalıştırın- Konsoldan günlükleri alın
- Performans iyileştirmeleri önerin
Bu kural, dokümantasyon oluşturmaya yardımcı olur:
Dokümantasyon taslağı hazırlamaya şu yollarla yardımcı olun:
- Kod yorumlarını çıkarın
- README.md'yi analiz edin
- Markdown dokümantasyonu oluşturun
Önce @reactiveStorageTypes.ts içinde açıp kapatılacak bir özellik oluşturun.
@reactiveStorageService.tsx içindeki INIT_APPLICATION_USER_PERSISTENT_STORAGE'ye varsayılan bir değer ekleyin.
Beta özellikleri için açıp kapatma denetimini @settingsBetaTab.tsx içinde, diğerleri için ise @settingsGeneralTab.tsx içinde ekleyin. Genel onay kutuları için açıp kapatma denetimleri <SettingsSubSection> olarak eklenebilir. Örnekler için dosyanın geri kalanına bakın.
<SettingsSubSection label="Your feature name" description="Your feature description" value={ vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty ?? false } => { vsContext.reactiveStorageService.setApplicationUserPersistentStorage( "myNewProperty", newVal, ); }}/>Uygulamada kullanmak için reactiveStorageService'i içe aktarın ve bu özelliği kullanın:
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty;Örnekleri sağlayıcılarda ve çerçevelerde bulabilirsiniz. Topluluğun katkıda bulunduğu kurallar, çevrimiçi kitle kaynaklı koleksiyonlarda ve depolarda yer alır.
Ekip Kuralları
Ekip ve Kurumsal planları, Cursor kontrol paneli üzerinden kuruluş genelinde kural oluşturabilir ve uygulayabilir. Yöneticiler, her kuralın ekip üyeleri için zorunlu olup olmayacağını yapılandırabilir.
Ekip Kuralları, diğer kural türleriyle birlikte çalışır ve kuruluş standartlarının tüm projelerde korunmasını sağlamak için önceliklidir. Bireysel kurulum veya yapılandırma gerektirmeden, ekibiniz genelinde tutarlı kodlama standartları, uygulamaları ve iş akışları sağlamanın güçlü bir yolunu sunar.
Ekip Kurallarını Yönetme
Ekip yöneticileri, Cursor kontrol panelinden doğrudan kurallar oluşturup yönetebilir:
Ekip kuralları oluşturulduktan sonra tüm ekip üyelerine otomatik olarak uygulanır ve kontrol panelinde görünür:
Etkinleştirme ve zorunlu uygulama
- Bu kuralı hemen etkinleştir: İşaretlendiğinde, kural oluşturulur oluşturulmaz etkinleşir. İşaretlenmediğinde, kural taslak olarak kaydedilir ve daha sonra etkinleştirilene kadar uygulanmaz.
- Bu kuralı zorunlu uygula: Etkinleştirildiğinde, kural tüm ekip üyeleri için zorunlu olur ve özelleştir bölümünde devre dışı bırakılamaz. Zorunlu uygulanmadığında, ekip üyeleri özelleştir'deki Ekip Kuralları altında kuralı kapatabilir.
Varsayılan olarak, zorunlu uygulanmayan Ekip Kuralları kullanıcılar tarafından devre dışı bırakılabilir. Bunu önlemek için Bu kuralı zorunlu uygula seçeneğini kullanın.
Biçim ve Ekip Kurallarının uygulanışı
- İçerik: Ekip Kuralları serbest biçimli metinlerdir. Proje Kurallarındaki klasör yapısını kullanmazlar.
- Glob desenleri: Ekip Kuralları, dosya kapsamına göre uygulama için glob desenlerini destekler. Bir glob deseni ayarlandığında (ör.
**/*.py), kural yalnızca eşleşen dosyalar bağlamda olduğunda uygulanır. Glob deseni olmayan kurallar her konuşmaya uygulanır. - Uygulama kapsamı: Bir Ekip Kuralı etkinleştirildiğinde (zorunlu değilse ve kullanıcı tarafından devre dışı bırakılmadıysa), ilgili ekibin tüm repo ve projelerinde Agent (Chat) için model bağlamına eklenir.
- Öncelik: Kurallar şu sırayla uygulanır: Ekip Kuralları → Proje Kuralları → Kullanıcı Kuralları. Geçerli tüm kurallar birleştirilir; yönergeler çakıştığında önce gelen kaynaklar önceliklidir.
Bazı ekipler, iç uyumluluk iş akışlarının bir parçası olarak zorunlu kurallar kullanır. Bu desteklense de yapay zekâ yönergeleri tek güvenlik denetiminiz olmamalıdır.
Kuralları İçe Aktarma
Mevcut yapılandırmaları yeniden kullanmak veya diğer araçlardaki kuralları içe aktarmak için harici kaynaklardan kural içe aktarabilirsiniz.
Uzak kurallar (GitHub üzerinden)
Erişiminiz olan, herkese açık veya özel herhangi bir GitHub deposundan kuralları doğrudan içe aktarın.
- Kenar çubuğunda özelleştir'ı açın
- kural bölümüne gidip Add Rule'a tıklayın
- Remote Rule (Github) seçeneğini belirleyin
- Kuralları içeren GitHub depo URL'sini yapıştırın. Cursor, repodaki tüm
.mdcdosyalarını tarar. - Cursor, kuralları projenize çeker ve senkronize eder
Kurallar .cursor/rules/imported/<repoName> konumuna yerleştirilir. Kurallar göreli yollarını da korur; bu nedenle dir/rule.mdc, .cursor/rule/imported/<repoName>/dir/rule.mdc olarak içe aktarılır.
AGENTS.md
AGENTS.md, agent talimatlarını tanımlamak için kullanılan basit bir markdown dosyasıdır. Basit kullanım senaryolarında .cursor/rules yerine proje kök dizininize yerleştirin.
Proje Kurallarından farklı olarak AGENTS.md, meta veri veya karmaşık yapılandırmalar içermeyen düz bir markdown dosyasıdır. Yapılandırılmış kuralların ek yükü olmadan basit ve okunabilir talimatlara ihtiyaç duyan projeler için idealdir.
Cursor, proje kök dizinindeki ve alt dizinlerdeki AGENTS.md dosyalarını destekler.
# Proje Talimatları## Kod Stili- Tüm yeni dosyalarda TypeScript kullanın- React'te işlevsel bileşenleri tercih edin- Veritabanı sütunlarında snake_case kullanın## Mimari- Depo desenini izleyin- İş mantığını hizmet katmanlarında tutunİyileştirmeler
Alt dizinlerde iç içe AGENTS.md desteği artık kullanılabilir. Projenizin herhangi bir alt dizinine AGENTS.md dosyaları ekleyebilirsiniz; bu dosyalar, ilgili dizindeki veya alt dizinlerindeki dosyalarla çalışırken otomatik olarak uygulanır.
Bu sayede, üzerinde çalıştığınız kod tabanı alanına göre agent talimatlarını daha ayrıntılı biçimde denetleyebilirsiniz:
project/ AGENTS.md # Genel talimatlar frontend/ AGENTS.md # Ön uca özel talimatlar components/ AGENTS.md # Bileşene özel talimatlar backend/ AGENTS.md # Arka uca özel talimatlarİç içe AGENTS.md dosyalarındaki talimatlar, üst dizinlerdeki talimatlarla birleştirilir; daha spesifik talimatlar önceliklidir.
Kullanıcı Kuralları
Kullanıcı Kuralları, özelleştir → Kurallar bölümünde tanımlanan ve tüm projelerde geçerli olan genel tercihlerdir. Agent (Chat) tarafından kullanılır; tercih edilen iletişim tarzını veya kodlama kurallarını belirlemek için idealdir:
Lütfen kısa ve öz yanıt verin. Gereksiz tekrarlardan ve dolgu ifadelerden kaçının.SSS
Kural türünü kontrol edin. Apply Intelligently için bir açıklama tanımlandığından emin olun. Apply to Specific Files için dosya deseninin referans verilen dosyalarla eşleştiğinden emin olun.
Evet. Kuralınızın bağlamına dosya eklemek için @filename.ts kullanın. Kuralları manuel olarak uygulamak için sohbette kurallardan @bahsedebilirsiniz.
Evet, Agent'tan sizin için yeni bir kural oluşturmasını isteyebilirsiniz.
Hayır. Kurallar Cursor Tab'i veya diğer yapay zekâ özelliklerini etkilemez.
Hayır. Kullanıcı Kuralları Inline Edit'e (Cmd/Ctrl+K) uygulanmaz. Yalnızca Agent (Chat) tarafından kullanılır.