نظرة عامة
يتم تجميع السياسات في فئات:| الفئة | السياسات | نوع Hook |
|---|---|---|
| الأوامر الخطرة | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
| الأسرار (معقمات) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
| البيئة | block-env-files, protect-env-vars | PreToolUse |
| الوصول إلى الملفات | block-read-outside-cwd, block-secrets-write | PreToolUse |
| Git | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
| قاعدة البيانات | warn-destructive-sql, warn-schema-alteration | PreToolUse |
| التحذيرات | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
| سير العمل | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
block-— إيقاف الوكيل من المتابعة.warn-— إعطاء الوكيل سياق إضافي حتى يتمكن من التصحيح الذاتي.sanitize-— مسح البيانات الحساسة من مخرجات الأداة قبل أن يراها الوكيل.require-— حجب حدث Stop حتى تستوفى الشروط.
الأوامر الخطرة
منع الوكلاء من تشغيل العمليات التي يصعب التراجع عنها أو التي قد تضر بنظام المضيف.block-sudo
الحدث: PreToolUse (Bash)الافتراضي: يرفض أي أمر
sudo.
يحجب الاستدعاءات التي تتضمن كلمة المفتاح sudo. يتم تطابق النمط على رموز الأوامر المحللة، وليس السلسلة الخام، لمنع التجاوز عبر حقن عامل shell.
المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
allowPatterns | string[] | [] | بادئات الأوامر الدقيقة المسموحة. يتم مطابقة كل إدخال مقابل رموز argv المحللة. |
sudo systemctl status nginx، لكن sudo rm /etc/hosts مرفوض.
يتم مطابقة الأنماط مقابل الرموز المحللة، وليس سلسلة الأمر الخام. يمنع التجاوز عبر عوامل shell المدرجة (على سبيل المثال،
sudo systemctl status x; rm -rf / لا يطابق sudo systemctl status *).block-rm-rf
الحدث: PreToolUse (Bash)الافتراضي: يرفض
rm -rf, rm -fr، والأشكال الأخرى المشابهة لحذف العودة.
المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
allowPaths | string[] | [] | المسارات الآمنة للحذف العودي (على سبيل المثال /tmp). |
block-curl-pipe-sh
الحدث: PreToolUse (Bash)الافتراضي: يرفض
curl <url> | bash، curl <url> | sh، wget <url> | bash، والأنماط المشابهة.
بدون معاملات.
block-failproofai-commands
الحدث: PreToolUse (Bash)الافتراضي: يرفض الأوامر التي ستقوم بإلغاء تثبيت أو تعطيل failproofai نفسه (على سبيل المثال
npm uninstall failproofai، failproofai policies --uninstall).
بدون معاملات.
الأسرار (معقمات)
منع الوكلاء من تسرب بيانات اعتماد إلى سياقهم أو مخرجاتهم. تنشط سياسات المعقم على أحداث PostToolUse. عندما يقوم Claude بتشغيل أمر Bash أو قراءة ملف أو استدعاء أي أداة، تفحص هذه السياسات المخرجات قبل إرجاعها إلى Claude. إذا تم الكشف عن نمط سري، تُرجع السياسة قرار رفض يمنع إرجاع المخرجات.sanitize-jwt
الحدث: PostToolUse (جميع الأدوات)الافتراضي: يحذف رموز JWT (ثلاث مقاطع base64url مفصولة بـ
.).
بدون معاملات.
sanitize-api-keys
الحدث: PostToolUse (جميع الأدوات)الافتراضي: يحذف تنسيقات مفاتيح API الشائعة: Anthropic (
sk-ant-)، OpenAI (sk-)، GitHub PATs (ghp_)، مفاتيح الوصول AWS (AKIA)، مفاتيح Stripe (sk_live_, sk_test_)، ومفاتيح Google API (AIza).
المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
additionalPatterns | { regex: string; label: string }[] | [] | أنماط regex إضافية يتم التعامل معها كأسرار. |
sanitize-connection-strings
الحدث: PostToolUse (جميع الأدوات)الافتراضي: يحذف سلاسل اتصال قاعدة البيانات التي تحتوي على بيانات اعتماد مضمنة (على سبيل المثال
postgresql://user:password@host/db).
بدون معاملات.
sanitize-private-key-content
الحدث: PostToolUse (جميع الأدوات)الافتراضي: يحذف كتل PEM (
-----BEGIN PRIVATE KEY-----، -----BEGIN RSA PRIVATE KEY-----، إلخ).
بدون معاملات.
sanitize-bearer-tokens
الحدث: PostToolUse (جميع الأدوات)الافتراضي: يحذف رؤوس
Authorization: Bearer <token> حيث يكون الرمز 20 حرفًا أو أكثر.
بدون معاملات.
البيئة
حماية تكوين البيئة الحساسة من قراءتها أو تعريضها من قبل الوكلاء.block-env-files
الحدث: PreToolUse (Bash, Read)الافتراضي: يرفض قراءة ملفات
.env عبر cat .env، استدعاءات أداة Read مع .env كمسار الملف، إلخ.
لا يحجب .envrc أو ملفات أخرى مجاورة للبيئة - فقط الملفات المسماة بالضبط .env.
بدون معاملات.
protect-env-vars
الحدث: PreToolUse (Bash)الافتراضي: يرفض الأوامر التي تطبع متغيرات البيئة:
printenv، env، echo $VAR.
بدون معاملات.
الوصول إلى الملفات
إبقاء الوكلاء يعملون داخل حدود المشروع بعيدًا عن الملفات الحساسة.block-read-outside-cwd
الحدث: PreToolUse (Read, Bash)الافتراضي: يرفض قراءة الملفات خارج دليل العمل الحالي (جذر المشروع). المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
allowPaths | string[] | [] | بادئات المسار المطلق المسموحة حتى لو كانت خارج cwd. |
block-secrets-write
الحدث: PreToolUse (Write, Edit)الافتراضي: يرفض الكتابة إلى الملفات المستخدمة بشكل شائع للمفاتيح الخاصة والشهادات:
id_rsa، id_ed25519، *.key، *.pem، *.p12، *.pfx.
المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
additionalPatterns | string[] | [] | أنماط اسم ملف إضافية (على نمط glob) للحجب. |
Git
منع الدفع العرضي والدفع القسري والأخطاء في الفروع التي يصعب التراجع عنها.block-push-master
الحدث: PreToolUse (Bash)الافتراضي: يرفض
git push origin main و git push origin master.
المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | أسماء الفروع التي لا يمكن الدفع إليها مباشرة. |
block-work-on-main
الحدث: PreToolUse (Bash)الافتراضي: يرفض الانتقال إلى فروع
main أو master مباشرة.
المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | أسماء الفروع التي لا يمكن الانتقال إليها مباشرة. |
block-force-push
الحدث: PreToolUse (Bash)الافتراضي: يرفض
git push --force و git push -f.
بدون معاملات خاصة بالسياسة. استخدم التقاطع hint لاقتراح بدائل:
warn-git-amend
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude للمتابعة بحذر عند تشغيل
git commit --amend. لا يحجب الأمر.
بدون معاملات.
warn-git-stash-drop
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude لتأكيد قبل تشغيل
git stash drop. لا يحجب الأمر.
بدون معاملات.
warn-all-files-staged
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude لمراجعة ما يختزنه عند تشغيل
git add -A أو git add .. لا يحجب الأمر.
بدون معاملات.
قاعدة البيانات
اكتش العمليات SQL المدمرة قبل تنفيذها ضد قاعدة البيانات الخاصة بك.warn-destructive-sql
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude للتأكيد قبل تشغيل SQL التي تحتوي على
DROP TABLE، DROP DATABASE، أو DELETE بدون بند WHERE.
بدون معاملات.
warn-schema-alteration
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude للتأكيد قبل تشغيل عبارات
ALTER TABLE.
بدون معاملات.
التحذيرات
إعطاء الوكلاء سياق إضافي قبل العمليات المحتملة الخطورة ولكن غير المدمرة.warn-large-file-write
الحدث: PreToolUse (Write)الافتراضي: يرشد Claude للتأكيد قبل كتابة الملفات الأكبر من 1024 كيلوبايت. المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
thresholdKb | number | 1024 | عتبة حجم الملف بالكيلوبايت التي يتم فوقها إصدار تحذير. |
يفرض معالج hook حد أقصى 1 ميجابايت stdin على الحمولات. لاختبار هذه السياسة بمحتوى صغير، اضبط
thresholdKb على قيمة أقل بكثير من 1024.warn-package-publish
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude للتأكيد قبل تشغيل
npm publish.
بدون معاملات.
warn-background-process
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude ليكون حذرًا عند إطلاق العمليات في الخلفية عبر
nohup، &، disown، أو screen.
بدون معاملات.
warn-global-package-install
الحدث: PreToolUse (Bash)الافتراضي: يرشد Claude للتأكيد قبل تشغيل
npm install -g، yarn global add، أو pip install دون بيئة افتراضية.
بدون معاملات.
سلوك الذكاء الاصطناعي
اكتشف عندما يعلق الوكلاء أو يتصرفون بشكل غير متوقع.warn-repeated-tool-calls
الحدث: PreToolUse (جميع الأدوات)الافتراضي: يرشد Claude لإعادة النظر عند استدعاء نفس الأداة 3 مرات أو أكثر مع معاملات متطابقة - علامة شائعة على أن الوكيل عالق في حلقة. بدون معاملات.
سير العمل
فرض سير عمل منضبط لنهاية الجلسة. تنشط هذه السياسات على حدث Stop وترفض Claude من التوقف حتى تستوفى كل شرط. يتبعون سلسلة اعتماد طبيعية: commit → push → PR → CI. إذا رفضت سياسة، يتم تجاوز السياسات اللاحقة في السلسلة (الرفض يقصر الدارة). جميع سياسات سير العمل fail-open: إذا كانت الأداة المطلوبة غير متاحة (على سبيل المثالgh غير مثبت، لا يوجد git remote)، تسمح السياسة برسالة معلوماتية تشرح سبب تخطي الفحص.
require-commit-before-stop
الحدث: Stopالافتراضي: يرفض التوقف عند وجود تغييرات غير مطبقة (ملفات معدلة أو مرحلة أو غير متتبعة). يرجع رسالة معلوماتية عند نظافة دليل العمل. بدون معاملات.
require-push-before-stop
الحدث: Stopالافتراضي: يرفض التوقف عند وجود commits غير مدفوعة أو عندما لا يكون للفرع الحالي فرع تتبع بعيد. يقترح
git push -u لإنشاء فرع تتبع إذا لزم الأمر. يفشل مفتوح إذا لم يتم تكوين أي بعيد.
المعاملات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
remote | string | "origin" | اسم البعيد للدفع إليه. |
require-pr-before-stop
الحدث: Stopالافتراضي: يرفض التوقف عند عدم وجود pull request للفرع الحالي، أو عندما يكون PR الموجود مغلقًا/مدمجًا. يرشد Claude لإنشاء PR باستخدام
gh pr create.
بدون معاملات.
تتطلب هذه السياسة تثبيت GitHub CLI (
gh) والمصادقة عليه.
قم بتشغيل gh auth login برمز وصول شخصي يتمتع بنطاق repo للقراءة
pull requests. إذا لم يتم تثبيت gh أو لم يتم المصادقة عليه، تفشل السياسة مفتوحة وتبلغ السبب إلى Claude.require-ci-green-before-stop
الحدث: Stopالافتراضي: يرفض التوقف عند فشل فحوصات CI أو لا تزال تعمل على الفرع الحالي. يتحقق من سير عمل GitHub Actions وفحوصات bot جهات خارجية (على سبيل المثال CodeRabbit, SonarCloud, Codecov). يتعامل مع استنتاجات
skipped كنجاح. يرجع رسالة معلوماتية عند نجاح جميع الفحوصات.
بدون معاملات.
تتطلب هذه السياسة تثبيت GitHub CLI (
gh) والمصادقة عليه.
قم بتشغيل gh auth login برمز وصول شخصي يتمتع بنطاق repo للقراءة
Actions workflow runs و Checks API. إذا لم يتم تثبيت gh أو لم يتم المصادقة عليه، تفشل السياسة مفتوحة وتبلغ السبب إلى Claude.تعطيل السياسات الفردية
أزل سياسة معينة منenabledPolicies في تكوينك، أو أوقفها في علامة التبويب Policies في لوحة البيانات.
enabledPolicies، حتى لو كانت هناك إدخالات policyParams لها.
