Skip to main content
Özel ilkeler, herhangi bir ajan davranışı için kurallar yazmanızı sağlar: proje kurallarını uygulayın, sapmaları önleyin, yıkıcı işlemleri engelleyin, takılı kalan ajanları algılayın 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

Kurun:

Özel ilkeleri yüklemenin iki yolu

Seçenek 1: Kural tabanlı (önerilen)

*policies.{js,mjs,ts} dosyalarını .failproofai/policies/ dizinine koyun ve otomatik olarak yüklenir — herhangi bir bayrak veya yapılandırma değişikliğine gerek yoktur. Bu git hook’lar gibi çalışır: dosya koyun, işte olur.
Nasıl çalışır:
  • Hem proje hem de kullanıcı dizinleri taranır (birleşim — ilk-başarı-kazanır değil)
  • Dosyalar her dizin içinde alfabetik sırayla yüklenir. Sırayı kontrol etmek için 01-, 02- ön ekini 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)
  • Açık --custom ve yerleşik ilkelerle birlikte çalışır
Kural tabanlı ilkeler, kuruluşunuz için bir kalite standardı oluşturmanın en kolay yoludur. .failproofai/policies/ dizinini git’e gönderün ve her ekip üyesi otomatik olarak aynı kurallara sahip olur — geliştirici başına kurulum gerekmez. Ekibiniz yeni hata modlarını keşfettikçe, bir ilke ekleyin ve gönderin. Zamanla bunlar, her katkıyla iyileşmeye devam eden canlı bir kalite standardı haline gelir.

Seçenek 2: Açık dosya yolu

Çözülmüş mutlak yol, customPoliciesPath olarak policies-config.json içinde depolanır. Dosya her hook olayında yeni yüklenir - olaylar arasında önbellekleme yoktur.

Her ikisini birlikte kullanma

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

API

İçeri Aktarma

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:" önekiyle gösterilir. Tek bir deny, tüm daha sonraki değerlendirmeleri kısa devre yapar. instruct(message) - mesaj, geçerli araç çağrısı için Claude’un bağlamına eklenir. Tüm instruct mesajları biriktirilir ve birlikte teslim edilir.
Kod değişikliği yapılmadan herhangi bir deny veya instruct mesajına policyParams içinde bir hint alanı ekleyerek ek rehberlik ekleyebilirsiniz — bu özel (custom/), proje kural tabanlı (.failproofai-project/), ve kullanıcı kural tabanlı (.failproofai-user/) ilkeler için 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 bir bilgilendirici mesaj geri gönderir. Mesaj, hook işleyicisinin stdout yanıtında additionalContext olarak teslim edilir — instruct ile aynı mekanizma kullanılır, ancak anlamsal olarak farklıdır: uyarı değil, bir durum güncellemesidir. Kullanım örnekleri:
  • Durum onayları: allow("All CI checks passed.") — Claude’a her şeyin yeşil olduğunu söyler
  • Açık başarısızlık açıklamaları: allow("GitHub CLI not installed, skipping CI check.") — Claude’a kontrolün neden atlandığını söyler böylece tam bağlama sahip olur
  • Birden fazla mesaj birikiyor: birkaç ilke her biri allow(message) döndürürse, tüm mesajlar yeni satırlarla birleştirilir ve birlikte teslim edilir

PolicyContext alanları

SessionMetadata alanları

Olay türleri


Değerlendirme sırası

İlkeler bu sırayla değerlendirilir:
  1. Yerleşik ilkeler (tanım sırasında)
  2. customPoliciesPath dan gelen açık özel ilkeler (.add() sırasında)
  3. Proje .failproofai/policies/ den gelen kural tabanlı ilkeler (dosyalar alfabetik, içinde .add() sırasında)
  4. Kullanıcı ~/.failproofai/policies/ den gelen kural tabanlı ilkeler (dosyalar alfabetik, içinde .add() sırasında)
İlk deny tüm sonraki ilkeleri kısa devre yapar. Tüm instruct mesajları biriktirilir ve birlikte teslim edilir.

Geçişli içeri aktarmalar

Özel ilke dosyaları bağıl yollar kullanarak yerel modülleri içeri aktarabilir:
Giriş dosyasından ulaşılabilen tüm bağıl içeri aktarmalar çözülür. Bu, from "failproofai" içeri 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 çalışacağını sınırlamak için match.events kullanın:
Her olay türünde çalışması için match tamamen çıkarın.

Hata işleme ve başarısızlık modları

Özel ilkeler açık başarısızlık: hatalar asla yerleşik ilkeleri engellemeyen veya hook işleyiciyi kıramaz.
Özel ilke hatalarını hata ayıklamak için günlük dosyasını izleyin:

Tam örnek: birden fazla ilke


Örnekler

examples/ dizini hemen çalıştırılabilir ilke dosyaları içerir:

Açık dosya örneklerini kullanma

Kural tabanlı örnekleri kullanma

Kurulum komutu gerekmez — dosyalar sonraki hook olayında otomatik olarak alınır.