Kural yazma
Asistanın uyması gereken bir kısıtı doğru kapsam ve öncelikle ifade etmek, böylece bağlam penceresini boğmadan yerine ulaşmasını sağlamak.
Bu sayfada
Kural, asistanın belirli bir kapsam içinde uyması gereken bir kısıttır. Kurallar Pathrule'daki en güçlü içerik türüdür: arka plan bilgisi olarak değil, gereklilik olarak gelirler. Onaylanmış çalıştırılabilir bir kısıt taşıyan bir kural ise eşleşen bir değişikliği daha uygulanmadan durdurabilir.
Bu sayfada ne zaman kural yazmanız gerektiğini, kapsam ve önceliği nasıl seçeceğinizi, otomatik denetimin ne anlama geldiğini ve kaçınmanız gereken kalıpları bulacaksınız.
Ne zaman kural yazmalı
Kod tabanının belirli bir bölümünde asistanın asla yapmaması ya da her zaman yapması gereken bir şey varsa kurala başvurun.
- "Tarayıcı kodunda service role anahtarını asla kullanma."
- "Tüm para değerleri kuruş cinsinden tamsayı olarak saklanır. Asla float kullanma."
- "Migration'lar ilgili kod değişikliğinden önce çalışmalıdır. İstisna yok."
- "
apps/webiçindeki JSX dosyaları yalnızca Tailwind sınıfları kullanır. CSS modülü yok, inline stil yok."
Cevap "duruma göre değişir, asistan bunu düşünmeli" ise bu bir kural değil, bir hafıza kaydıdır. Kurallar pazarlığa açık olmayan şeyler içindir.
Kapsam türleri
Her kuralın, hangi yollara veya dosyalara uygulanacağını belirleyen bir kapsam türü vardır.
folder. Bir dizin alt ağacına uygulanır. Belirli bir alana özgü kurallar için en uygunudur:apps/api/authaltındaki her şey,services/billingaltındaki her şey gibi.file_type.*.tsxveya**/*.test.tsgibi bir glob ile eşleşen dosyalara uygulanır. Bir dizine değil, bir dosya türüne bağlı, birden çok alanı kesen konular için en uygunudur.project. Çalışma alanının her yerinde geçerlidir. İdareli kullanın. Bir project kuralı her prompt'a eşlik eder.
Asistanın ne göreceğini, kapsam ile kuralın bağlı olduğu düğüm yolu birlikte belirler. /apps/web yoluna bağlanmış bir folder kuralı, apps/web altındaki her şeyi kapsar.
Öncelik düzeyleri
Öncelik, kuralın ne kadar ısrarlı biçimde öne çıkacağını belirler. Eşleşen bir kapsamda önce yüksek öncelikli kurallar değerlendirilir.
high. İhlal edildiğinde hataya, güvenlik gerilemesine veya uyumluluk sorunlarına yol açan şeyler için.medium. Varsayılan düzey. "Neredeyse her zaman geçerli ama kritik olmayan" şeyler için kullanın.low. Üslupla ilgili. Yer olduğunda ve konu tam isabetli olduğunda öne çıkar. Zevk ve gelenek meseleleri için kullanın.
Yüksek öncelik sınırlı bir bütçedir. Kurallarınızın yarısı yüksek öncelikliyse hiçbiri gerçekten yüksek öncelikli değildir. Gerçekten ihlal edilemeyecek olanları seçin.
Otomatik denetim: advisory ve strict
Otomatik denetim, öncelikten ayrı bir ayardır. Öncelik bir kuralın ne kadar güçlü öne çıkacağını belirler; otomatik denetim ise ihlal durumunda ne olacağına karar verir.
advisory. Kural bağlam olarak kalır. Asistan kuralı tartar ve nasıl uygulayacağına kendisi karar verir. CLI'dan veya VS Code'dan yazdığınız kurallar ve bir asistanın yazdığı kurallar advisory'dir.strict. Bir kural, bir kişinin onayladığı çalıştırılabilir bir kısıt taşıdığında strict hale gelir: bir import, bir tanımlayıcı veya bir konum gibi yasaklanan biçimin tam kendisi. Bu durumda araç öncesi hook, onunla eşleşen bir dosya düzenlemesini veya yazma işlemini değişiklik uygulanmadan önce engelleyebilir ve gerekçe olarak kuralı ve çözüm yolunu döndürür. Bir asistan, kural yazarken veya güncellerken (pathrule_write_rule,pathrule_update_rule) önerilen bir kısıt ekleyebilir; ancak öneri yalnızca öneri olarak saklanır ve bir kişi onaylayana kadar hiçbir şeyi engellemez. Bir asistan kendi önerisini asla onaylayamaz. Ayrıntılar için Güvenlik bariyeri olarak kurallar sayfasına bakın.
Kuralı yeniden yazmak otomatik denetimi dürüst tutar. Onaylanmış bir kısıt, kuralın kendisine karşı doğrulandığı cümlesine bağlıdır. Kuralı yeniden yazdığınızda o cümle ortadan kalkarsa kısıt kendiliğinden devre dışı kalır; böylece bir kural artık belirtmediği bir gerekçeyle engellemeye devam etmez. Kuralın diğer kısımlarını düzenlemek veya yeni bir paragraf eklemek, dokunulmamış bir kısıtı etkin bırakır.
Engelleme istemciye bağlıdır. Pathrule CLI, Claude Code, Codex, Cursor ve GitHub Copilot için araç hook'ları kurar; engelleme, istemcinin araç öncesi hook'unun bu karara uyduğu yerlerde geçerli olur. Windsurf'ün hook'u yoktur, Remote MCP de hook kurmaz; bu yüzden orada kurallar yalnızca bağlam olarak gelir. Kuralın iletilmesi tek başına hiçbir şeyi denetlemez.
Yapı
Bir kuralın adı ve gövdesi vardır. Gövdeyi emir kipinde ve kısa tutun.
Name: No service role key in browser code
Body:
- Never import SUPABASE_SERVICE_ROLE_KEY in any file under apps/web.
- Use the anon key plus row level security.
- If you need server only access, do it from apps/api or a server action.
Terminalde aynı kural tek bir komuttur. --body verilmezse CLI, gövdeyi yazmanız için editörünüzü açar.
pathrule rule add --path /apps/web --name "No service role key in browser code" --priority high --scope folder
VS Code'da New Rule… seçeneğini kullanın; bir asistan ise kuralları pathrule_write_rule ile yazar.
Pratikte en iyi işleyen biçim, her kurala tek bir kısıt ve kısa, maddeli bir gövdedir. Uzun düzyazı kurallar hem insanlar hem de asistanlar tarafından üstünkörü okunur.
Kopyalanmaz, yeniden kullanılır
Bir kural tek bir yolda durur ve altındaki her şeyi kapsar; dolayısıyla bir alt ağacın tamamı için tek bir kural yeterlidir. Aynı kısıt birbirinden uzak iki klasör için geçerliyse metni kopyalayıp iki ayrı kurala yapıştırmak yerine kuralı bu klasörlerin en yakın ortak yoluna koyun ya da glob ile bir file_type kapsamı kullanın. Tek kural, kısıt değiştiğinde tek düzenleme demektir.
Pathrule burada size yardımcı olur: adı çalışma alanındaki mevcut bir kuralla eşleşen yeni bir kural varsayılan olarak reddedilir ve yazma işlemi size hangi kuralın zaten var olduğunu söyler. Mevcut kuralı kontrol ettikten sonra bunu bilinçli olarak geçersiz kılabilirsiniz (MCP üzerinden allow_duplicate ile). Bir kuralın yerini değiştirmek için onu farklı bir yola taşıyın (VS Code'da Move… ya da move_to_path ile pathrule_update_rule).
Sürümleme ve eşzamanlı düzenlemeler
Kurallar da hafıza kayıtları gibi bir sürüm token'ı taşır. Aynı kuralı aynı anda düzenleyen iki ekip arkadaşı birbirinin değişikliğinin üzerine yazmaz, bunun yerine düzgün bir çakışma oluşur. VS Code'da çakışma, hafıza kaydındakiyle aynı seçenekleri sunar: Reload, Copy My Version & Reload veya Keep Mine (Overwrite).
Kurallar asistana nasıl gelir
- Eşleşen kapsamdaki kurallar önceliklerine ve göreve ne kadar ilgili olduklarına göre önceliklendirilir. En ilgili olanlar tam metinleriyle gelir; geri kalanların yalnızca adı verilir, böylece asistan onların varlığından haberdar olur ve herhangi birini
pathrule_read_ruleile tam olarak okuyabilir. - Strict bir kural, geçerli olduğu yerde her zaman tam metniyle gelir, çünkü yalnızca ad bir engellemeyi açıklayamaz.
- Kurallar ayrıca istemcilerinizin okuduğu talimat dosyalarına da derlenir (örneğin Claude Code için CLAUDE.md, Codex için AGENTS.md); böylece prompt hook'u olmayan bir istemci de işe bu kurallarla başlar.
Bir kuralın asistanı yalnızca bilgilendirmek yerine bir değişikliği engelleyip engelleyemeyeceğini önceliği değil, otomatik denetim modu (advisory veya strict) belirler.
Kaçınılması gereken kalıplar
- Her şeye yüksek öncelik vermek. Gerçekten önemli olan kuralları seçin. Geri kalanlar medium olmalı.
- Hafıza kaydı gibi okunan kurallar. "Genelde X'i tercih ederiz" bir hafıza kaydıdır. "Asla Y yapma" bir kuraldır.
- Birbiriyle örtüşen kurallar. Birbiriyle çelişen ifadeler içeren iki yüksek öncelikli kural, tek bir net kuraldan daha kötüdür.
- Varsayılan olarak project kapsamı kullanmak. Çoğu kural bir klasörün altına aittir. Bir kuralı yalnızca gerçekten her yerde geçerliyse
projectdüzeyine çıkarın.
Yerel modda ve Cloud'da içerik oluşturma
Bu sayfadaki terminal add örnekleri bir Cloud çalışma alanı içindir. Yerel modda kayıtları Local Console, VS Code veya yerel MCP üzerinden oluşturup düzenleyin; CLI'ın bilgi komutları bu kayıtları listeler, okur ve içlerinde arama yapar.
Sırada ne okumalı
- Kısıt niteliği taşımayan bilgiler ve kararlar için Hafıza kayıtları yazma.
- Asistanın çağırabileceği yeniden kullanılabilir prosedürler için Beceri yazma.
- Çalışma zamanının hangi kuralları öne çıkaracağına nasıl karar verdiği için Hook'lar nasıl çalışır.