eser-rules-manager ve eser/rules
Uzun süredir büyük codebase'lere ait projelerin agentic araçlarla düzgün çalışması için kafa yoruyorum. Benim için .cursorrules ile başlayan süreç önce CLAUDE.md'ye, daha sonra Claude Skills tanıtıldıktan sonra Skills'le devam eden bir keşif ve kullanım deneyimi oldu.
Bu süreçte fark ettiğim şey şuydu: her yeni projede aynı talimatları sıfırdan yazıyordum:
- "Commit mesajlarını şu formatta yaz"
- "hata yönetimini şu pattern'le yap"
- "test yazarken şu convention'a uy"...
Bunlar projeden projeye değişmeyen, ama her seferinde tekrar anlatmak zorunda kaldığım şeylerdi.
eser/rules, bu çalışmalarda biriktirdiğim, neredeyse her codebase'e "indir kullan" seviyesinde rafine ettiğim kurallar bütününü içeriyor.
Bu çalışmamı GitHub'da eser/rules repository'sinde bulabilirsiniz.
Direkt Claude Code gibi bir agentic araçla kullanmak için iste, kurulum tek komutla mümkün:
npx degit eser/rules/.claude/skills .claude/skills
Claude Code ve GitHub Copilot .claude/skills/ dizinini native olarak tanıdığı için ek bir konfigürasyona gerek yok. Cursor kullanıyorsanız .cursorrules dosyanıza tek satırlık bir yönlendirme eklemeniz yeterli. Yani araç ne olursa olsun — Claude Code, Copilot, Cursor, başka bir agent — aynı kurallar her yerde çalışıyor.
eser-rules-manager
Ancak yukarıda da ifade ettiğim gibi, bu kural kümesini projeden projeye taşıdıkça bir şeyin eksik olduğunu hissettim.
Her projenin kendine ait bir doğası var. Go projesiyle TypeScript projesinin ihtiyaçları farklı, monorepo'yla tek modüllük bir servisin beklentileri farklı.
Haliyle benim için genelleştirilmiş kuralları taşımanın ötesinde; projenin kendi kurallarını da agentic modellere kabul ettirmek bir gereksinim haline geldi.
Bu noktada "kuralları tanımlayan bir kural" olarak, benim meta-skill ismini verdiğim eser-rules-manager'ı oluşturdum. Bu skill bir orkestra şefi gibi çalışıyor: mevcut kuralları organize ediyor, convention'lar değiştiğinde güncelleme öneriyor ve yeni kuralların doğru yere yerleşmesini sağlıyor.
Böylece eser/rules direkt bir "temel" sağlarken, agentic loop içinde proje geliştirmeye devam ederken aşağıdaki gibi bir komutla yeni kurallar tanımlayabilmek mümkün hale geldi:
/eser-rules-manager go projelerinde hiçbir zaman `interface{}` kullanma, yerine `any` kullan
Bu skill, halihazırda go-practices skill'i olduğu için onu editleyecek ve projenize özel bu kuralı ekleyecek. Eğer go-practices olmasaydı, bunu otomatik olarak oluşturacaktı.
Ekipler için de güçlü bir tarafı var: repo'ya eklenen bu kurallar sayesinde projeye katkıda bulunan herkes — ister insan ister AI — aynı playbook'tan çalışıyor. Pull request'lerde, code review'larda, refactor'larda tutarlılık otomatik olarak sağlanıyor.
Proje Apache 2.0 lisansıyla açık kaynak ve katkıya açık. Daha iyi bir pattern bulduysanız, bir tutarsızlık fark ettiyseniz veya yeni bir skill eklemek istiyorsanız PR'larınızı beklerim.