Skip to main content
कस्टम पॉलिसीज आपको किसी भी एजेंट व्यवहार के लिए नियम लिखने देती हैं: प्रोजेक्ट सम्मेलनों को लागू करें, ड्रिफ्ट को रोकें, विनाशकारी संचालन को गेट करें, फंसे हुए एजेंटों का पता लगाएं, या Slack, अनुमोदन वर्कफ़्लो और बहुत कुछ के साथ इंटीग्रेट करें। ये बिल्ट-इन पॉलिसीज के समान हुक ईवेंट सिस्टम और allow, deny, instruct निर्णयों का उपयोग करते हैं।

त्वरित उदाहरण

इसे इंस्टॉल करें:

कस्टम पॉलिसीज लोड करने के दो तरीके

विकल्प 1: सम्मेलन-आधारित (अनुशंसित)

.failproofai/policies/ में *policies.{js,mjs,ts} फाइलें डालें और वे स्वचालित रूप से लोड हो जाती हैं — कोई फ्लैग या कॉन्फ़िग परिवर्तन की आवश्यकता नहीं। यह git हुक्स की तरह काम करता है: एक फाइल डालें, यह बस काम करता है।
यह कैसे काम करता है:
  • दोनों प्रोजेक्ट और यूजर डायरेक्ट्रीज को स्कैन किया जाता है (यूनियन — पहली-स्कोप-जीत नहीं)
  • फाइलें प्रत्येक डायरेक्ट्री में वर्णानुक्रम में लोड होती हैं। ऑर्डर को नियंत्रित करने के लिए 01-, 02- के साथ प्रीफिक्स करें
  • केवल *policies.{js,mjs,ts} से मेल खाने वाली फाइलें लोड होती हैं; अन्य फाइलें अनदेखी की जाती हैं
  • प्रत्येक फाइल स्वतंत्र रूप से लोड होती है (फाइल प्रति फेल-ओपन)
  • स्पष्ट --custom और बिल्ट-इन पॉलिसीज के साथ काम करता है
सम्मेलन पॉलिसीज आपके संगठन के लिए गुणवत्ता मानक बनाने का सबसे आसान तरीका है। .failproofai/policies/ को git में कमिट करें और प्रत्येक टीम सदस्य को स्वचालित रूप से समान नियम मिलते हैं — कोई प्रति-डेवलपर सेटअप आवश्यक नहीं है। जब आपकी टीम नई विफलता मोड की खोज करे, एक पॉलिसी जोड़ें और पुश करें। समय के साथ ये एक जीवंत गुणवत्ता मानक बन जाता है जो हर योगदान के साथ बेहतर होता रहता है।

विकल्प 2: स्पष्ट फाइल पाथ

समाधान किया गया निरपेक्ष पाथ policies-config.json में customPoliciesPath के रूप में संग्रहीत होता है। फाइल हर हुक ईवेंट पर ताजा लोड होती है - ईवेंट्स के बीच कोई कैशिंग नहीं होती है।

दोनों को एक साथ उपयोग करना

सम्मेलन पॉलिसीज और स्पष्ट --custom फाइल सह-अस्तित्व में रह सकते हैं। लोड क्रम:
  1. स्पष्ट customPoliciesPath फाइल (यदि कॉन्फ़िगर की गई हो)
  2. प्रोजेक्ट सम्मेलन फाइलें ({cwd}/.failproofai/policies/, वर्णानुक्रम)
  3. यूजर सम्मेलन फाइलें (~/.failproofai/policies/, वर्णानुक्रम)

API

आयात

customPolicies.add(hook)

एक पॉलिसी को रजिस्टर करता है। एक ही फाइल में कई पॉलिसीज के लिए जितनी बार चाहें इसे कॉल करें।

निर्णय सहायक

deny(message) - संदेश Claude को "Blocked by failproofai:" प्रीफिक्स के साथ प्रकट होता है। एक एकल deny सभी आगे के मूल्यांकन को शॉर्ट-सर्किट करता है। instruct(message) - संदेश वर्तमान टूल कॉल के लिए Claude के संदर्भ में जोड़ा जाता है। सभी instruct संदेश जमा किए जाते हैं और एक साथ दिए जाते हैं।
आप policyParams में एक hint फील्ड जोड़कर किसी भी deny या instruct संदेश को अतिरिक्त मार्गदर्शन जोड़ सकते हैं — कोई कोड परिवर्तन आवश्यक नहीं है। यह कस्टम (custom/), प्रोजेक्ट सम्मेलन (.failproofai-project/), और यूजर सम्मेलन (.failproofai-user/) पॉलिसीज के लिए भी काम करता है। विवरण के लिए कॉन्फ़िगरेशन → hint देखें।

सूचनात्मक allow संदेश

allow(message) संचालन की अनुमति देता है और Claude को एक सूचनात्मक संदेश वापस भेजता है। संदेश हुक हैंडलर के stdout प्रतिक्रिया में additionalContext के रूप में दिया जाता है — instruct द्वारा उपयोग की जाने वाली समान तंत्र, लेकिन शब्दार्थ में भिन्न: यह एक चेतावनी नहीं, बल्कि एक स्थिति अपडेट है। उपयोग के मामले:
  • स्थिति पुष्टिकरण: allow("All CI checks passed.") — Claude को बताता है कि सब कुछ हरा है
  • फेल-ओपन स्पष्टीकरण: allow("GitHub CLI not installed, skipping CI check.") — Claude को बताता है कि एक जांच क्यों छोड़ी गई ताकि इसे पूरा संदर्भ हो
  • कई संदेश जमा होते हैं: यदि कई पॉलिसीज प्रत्येक allow(message) लौटाती हैं, सभी संदेश नई लाइनों के साथ जुड़ते हैं और एक साथ दिए जाते हैं

PolicyContext फील्ड्स

SessionMetadata फील्ड्स

ईवेंट प्रकार


मूल्यांकन क्रम

पॉलिसीज को इस क्रम में मूल्यांकन किया जाता है:
  1. बिल्ट-इन पॉलिसीज (परिभाषा क्रम में)
  2. customPoliciesPath से स्पष्ट कस्टम पॉलिसीज (.add() क्रम में)
  3. प्रोजेक्ट .failproofai/policies/ से सम्मेलन पॉलिसीज (फाइलें वर्णानुक्रम में, .add() क्रम में)
  4. यूजर ~/.failproofai/policies/ से सम्मेलन पॉलिसीज (फाइलें वर्णानुक्रम में, .add() क्रम में)
पहला deny सभी बाद की पॉलिसीज को शॉर्ट-सर्किट करता है। सभी instruct संदेश जमा किए जाते हैं और एक साथ दिए जाते हैं।

ट्रांजिटिव आयात

कस्टम पॉलिसी फाइलें सापेक्ष पाथों का उपयोग करके स्थानीय मॉड्यूल को आयात कर सकती हैं:
प्रविष्टि फाइल से पहुंचने योग्य सभी सापेक्ष आयात समाधान किए जाते हैं। यह failproofai आयातों को वास्तविक dist पाथ में फिर से लिखकर और ESM संगतता सुनिश्चित करने के लिए अस्थायी .mjs फाइलें बनाकर लागू किया जाता है।

ईवेंट प्रकार फ़िल्टरिंग

यह सीमित करने के लिए match.events का उपयोग करें कि पॉलिसी कब फायर होती है:
सभी ईवेंट प्रकारों पर फायर करने के लिए match को पूरी तरह छोड़ दें।

त्रुटि हैंडलिंग और विफलता मोड

कस्टम पॉलिसीज फेल-ओपन हैं: त्रुटियां कभी भी बिल्ट-इन पॉलिसीज को ब्लॉक नहीं करती या हुक हैंडलर को क्रैश नहीं करती हैं।
कस्टम पॉलिसी त्रुटियों को डीबग करने के लिए, लॉग फाइल को देखें:

पूर्ण उदाहरण: कई पॉलिसीज


उदाहरण

examples/ डायरेक्ट्री में तैयार-से-चलाने योग्य पॉलिसी फाइलें हैं:

स्पष्ट फाइल उदाहरणों का उपयोग

सम्मेलन-आधारित उदाहरणों का उपयोग

कोई इंस्टॉल कमांड आवश्यक नहीं है — फाइलें अगले हुक ईवेंट पर स्वचालित रूप से उठाई जाती हैं।