Skip to main content
Özel ilkeler, herhangi bir aracı davranışı için kurallar yazmanızı sağlar: proje kurallarını uygulayın, kaymaları engelleyin, yıkıcı işlemleri kısıtlayın, takılı aracıları tespit edin veya Slack, onay iş akışları ve daha fazlasıyla entegre olun. Yerleşik ilkelerle aynı hook olay sistemini ve allow, deny, instruct kararlarını kullanırlar.

Hızlı örnek

Yükleyin:

Özel ilkeleri yüklemenin iki yolu

Seçenek 1: Kurala Dayalı (önerilen)

*policies.{js,mjs,ts} dosyalarını .failproofai/policies/ dizinine koyun ve bunlar otomatik olarak yüklenecektir — hiç bayrak veya yapılandırma değişikliği gerekmez. Bu, git hook’ları gibi çalışır: bir dosya koyun, işe başlar.
Nasıl çalışır:
  • Hem proje hem de kullanıcı dizinleri taranır (birleşim — ilk kapsam kazanmaz)
  • Dosyalar her dizin içinde alfabetik olarak yüklenir. Sırayı kontrol etmek için 01-, 02- ön eki kullanın
  • Yalnızca *policies.{js,mjs,ts} ile eşleşen dosyalar yüklenir; diğer dosyalar yoksayılır
  • Her dosya bağımsız olarak yüklenir (dosya başına açık başarısız olur)
  • Açık --custom ve yerleşik ilkelerle birlikte çalışır
Kurala dayalı ilkeler, kuruluşunuz için bir kalite standardı oluşturmanın en kolay yoludur. .failproofai/policies/ öğesini git’e işleyin ve her takım üyesi aynı kuralları otomatik olarak alır — geliştirici başına kurulum gerekmez. Takımınız yeni arıza modlarını keşfettikçe, bir ilke ekleyin ve gönderin. Zamanla bunlar, her katkıyla gelişen ve iyileşen canlı bir kalite standardı haline gelir.

Seçenek 2: Açık dosya yolu

Çözümlenen mutlak yol, policies-config.json içinde customPoliciesPath olarak depolanır. Dosya her hook olayında taze yüklenir - olaylar arasında önbelleğe alma yoktur.

Her ikisini birlikte kullanma

Kurala dayalı ilkeler ve açık --custom dosyası bir arada bulunabilir. Yükleme sırası:
  1. Açık customPoliciesPath dosyası (yapılandırılmışsa)
  2. Proje kurala dayalı dosyalar ({cwd}/.failproofai/policies/, alfabetik)
  3. Kullanıcı kurala dayalı dosyalar (~/.failproofai/policies/, alfabetik)

API

İçe Aktar

customPolicies.add(hook)

Bir ilkeyi kaydeder. Aynı dosyada birden fazla ilke için gerektiği kadar çağırın.

Karar Yardımcıları

deny(message) - mesaj Claude’a "Blocked by failproofai:" ön ekiyle görünür. Tek bir deny tüm diğer değerlendirmeleri kısaltır. instruct(message) - mesaj Claude’un mevcut araç çağrısı için bağlamına eklenir. Tüm instruct mesajları birikimlenir ve birlikte teslim edilir.
Herhangi bir deny veya instruct mesajına ekstra rehberlik ekleyebilirsiniz, policyParams içinde bir hint alanı ekleyerek — kod değişikliği gerekmez. Bu, özel (custom/), proje kurala dayalı (.failproofai-project/) ve kullanıcı kurala dayalı (.failproofai-user/) ilkelerle de çalışır. Ayrıntılar için Yapılandırma → hint bölümüne bakın.

Bilgilendirici izin mesajları

allow(message) işleme izin verir ve Claude’a geri bilgilendirici bir mesaj gönderir. Mesaj, hook işleyicisinin stdout yanıtında additionalContext olarak teslim edilir — instruct tarafından kullanılan aynı mekanizma, ancak anlamsal olarak farklı: bir uyarı değil, bir durum güncellemesidir. Kullanım durumları:
  • Durum onayları: allow("All CI checks passed.") — Claude’a her şeyin yeşil olduğunu söyler
  • Açık başarısız açıklamalar: allow("GitHub CLI not installed, skipping CI check.") — Claude’a bir kontrolün neden atlandığını söyler, böylece tam bağlamı vardır
  • Birden fazla mesaj birikmesi: birkaç ilke her biri allow(message) döndürürse, tüm mesajlar satır sonlarıyla birleştirilir ve birlikte teslim edilir

PolicyContext alanları

SessionMetadata alanları

Olay türleri


Değerlendirme sırası

İlkeler şu sırayla değerlendirilir:
  1. Yerleşik ilkeler (tanım sırasında)
  2. customPoliciesPath öğesinden açık özel ilkeler (.add() sırasında)
  3. Proje .failproofai/policies/ öğesinden kurala dayalı ilkeler (dosyalar alfabetik, içinde .add() sırası)
  4. Kullanıcı ~/.failproofai/policies/ öğesinden kurala dayalı ilkeler (dosyalar alfabetik, içinde .add() sırası)
İlk deny tüm sonraki ilkeleri kısaltır. Tüm instruct mesajları birikimlenir ve birlikte teslim edilir.

Geçişken içe aktarmalar

Özel ilke dosyaları göreceli yollar kullanarak yerel modülleri içe aktarabilir:
Giriş dosyasından ulaşılabilir tüm göreceli içe aktarmalar çözümlenir. Bu, from "failproofai" içe aktarmalarını gerçek dist yoluna yeniden yazarak ve ESM uyumluluğunu sağlamak için geçici .mjs dosyaları oluşturarak uygulanır.

Olay türü filtrelemesi

Bir ilkenin ne zaman başlatılacağını sınırlamak için match.events kullanın:
match öğesini tamamen atlayarak her olay türünde başlatılmasını sağlayın.

Hata yönetimi ve arıza modları

Özel ilkeler açık başarısız olur: hatalar hiçbir zaman yerleşik ilkeleri engelleme veya hook işleyiciyi çökmez.
Özel ilke hatalarını hata ayıklamak için günlük dosyasını izleyin:

Tam örnek: birden fazla ilke


Örnekler

examples/ dizini çalışmaya hazır ilke dosyalarını içerir:

Açık dosya örneklerini kullanma

Kurala dayalı örnekleri kullanma

Yükleme komutu gerekmez — dosyalar bir sonraki hook olayında otomatik olarak alınır.