allow, deny, instruct kararlarını kullanırlar.
Hızlı örnek
Ö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.
- 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
--customve yerleşik ilkelerle birlikte çalışır
Seçenek 2: Açık dosya yolu
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ı:
- Açık
customPoliciesPathdosyası (yapılandırılmışsa) - Proje kural tabanlı dosyaları (
{cwd}/.failproofai/policies/, alfabetik) - 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.
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:- Yerleşik ilkeler (tanım sırasında)
customPoliciesPathdan gelen açık özel ilkeler (.add()sırasında)- Proje
.failproofai/policies/den gelen kural tabanlı ilkeler (dosyalar alfabetik, içinde.add()sırasında) - 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: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çinmatch.events kullanın:
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.Tam örnek: birden fazla ilke
Örnekler
examples/ dizini hemen çalıştırılabilir ilke dosyaları içerir:

