failproofai 0.0.6-beta.2 → 0.0.6-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  13. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  20. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  21. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  22. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  25. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/index.html +1 -1
  27. package/.next/standalone/.next/server/app/index.rsc +15 -15
  28. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  30. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  31. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  32. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  33. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  34. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  37. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  47. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  50. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  52. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05akje6._.js → [root-of-the-server]__096k.db._.js} +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i5kvry._.js → [root-of-the-server]__0kyh86x._.js} +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  64. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  65. package/.next/standalone/.next/server/pages/404.html +2 -2
  66. package/.next/standalone/.next/server/pages/500.html +1 -1
  67. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  69. package/.next/standalone/.next/static/chunks/{1052sguyd-.ka.js → 0-dm_9a6nsc2l.js} +1 -1
  70. package/.next/standalone/.next/static/chunks/{05j1px0r8yzh6.js → 01pmw1-asbek~.js} +2 -2
  71. package/.next/standalone/.next/static/chunks/{14cl9poem30dq.js → 051m32nx~n5yr.js} +1 -1
  72. package/.next/standalone/.next/static/chunks/{0badv41uxa56..js → 0a-yctdwn368y.js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{0xpl.oscrakvx.js → 0l-mu4okl-cj1.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{00j0rr7rh8ef8.js → 0mazj-p-~2kc6.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
  76. package/.next/standalone/.next/static/chunks/{0npb~873.wvg3.js → 156zca6aewyr-.js} +1 -1
  77. package/.next/standalone/CHANGELOG.md +7 -0
  78. package/.next/standalone/bin/failproofai.mjs +91 -4
  79. package/.next/standalone/dist/cli.mjs +1155 -54
  80. package/.next/standalone/docs/ar/built-in-policies.mdx +118 -118
  81. package/.next/standalone/docs/built-in-policies.mdx +2 -2
  82. package/.next/standalone/docs/de/built-in-policies.mdx +48 -48
  83. package/.next/standalone/docs/es/built-in-policies.mdx +82 -82
  84. package/.next/standalone/docs/fr/built-in-policies.mdx +72 -72
  85. package/.next/standalone/docs/he/built-in-policies.mdx +129 -128
  86. package/.next/standalone/docs/hi/built-in-policies.mdx +178 -182
  87. package/.next/standalone/docs/it/built-in-policies.mdx +64 -64
  88. package/.next/standalone/docs/ja/built-in-policies.mdx +128 -128
  89. package/.next/standalone/docs/ko/built-in-policies.mdx +111 -111
  90. package/.next/standalone/docs/pt-br/built-in-policies.mdx +65 -65
  91. package/.next/standalone/docs/ru/built-in-policies.mdx +72 -72
  92. package/.next/standalone/docs/tr/built-in-policies.mdx +99 -99
  93. package/.next/standalone/docs/vi/built-in-policies.mdx +69 -72
  94. package/.next/standalone/docs/zh/built-in-policies.mdx +76 -78
  95. package/.next/standalone/package.json +1 -1
  96. package/.next/standalone/server.js +1 -1
  97. package/.next/standalone/src/auth/login.ts +104 -0
  98. package/.next/standalone/src/auth/logout.ts +50 -0
  99. package/.next/standalone/src/auth/token-store.ts +64 -0
  100. package/.next/standalone/src/hooks/builtin-policies.ts +22 -20
  101. package/.next/standalone/src/hooks/handler.ts +35 -15
  102. package/.next/standalone/src/relay/daemon.ts +362 -0
  103. package/.next/standalone/src/relay/pid.ts +76 -0
  104. package/.next/standalone/src/relay/queue.ts +225 -0
  105. package/bin/failproofai.mjs +91 -4
  106. package/dist/cli.mjs +1155 -54
  107. package/package.json +1 -1
  108. package/src/auth/login.ts +104 -0
  109. package/src/auth/logout.ts +50 -0
  110. package/src/auth/token-store.ts +64 -0
  111. package/src/hooks/builtin-policies.ts +22 -20
  112. package/src/hooks/handler.ts +35 -15
  113. package/src/relay/daemon.ts +362 -0
  114. package/src/relay/pid.ts +76 -0
  115. package/src/relay/queue.ts +225 -0
  116. package/.next/standalone/.next/static/chunks/0ijk_kek9_wyx.js +0 -6
  117. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
  118. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
  119. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  title: السياسات المدمجة
3
- description: "جميع السياسات المدمجة الـ 30 التي تكتشف أنماط الفشل الشائعة للوكلاء"
3
+ description: "جميع 30 سياسة مدمجة تلتقط أنماط فشل الوكيل الشائعة"
4
4
  icon: shield
5
5
  ---
6
6
 
7
- يأتي failproofai مع 30 سياسة مدمجة تكتشف أنماط الفشل الشائعة للوكلاء. تُطلق كل سياسة على نوع حدث hook محدد واسم أداة معينة. تقبل تسع سياسات معاملات تتيح لك ضبط سلوكها دون كتابة أي كود. تفرض أربع سياسات سير عمل خط أنابيب commit → push → PR → CI قبل توقف Claude.
7
+ يأتي failproofai مع 30 سياسة مدمجة تلتقط أنماط فشل الوكيل الشائعة. تعمل كل سياسة على حدث خطاف معين واسم أداة محدد. تقبل تسع سياسات معاملات تسمح لك بضبط سلوكها دون كتابة أي كود. تفرض أربع سياسات سير عمل خط أنابيب commit → push → PR → CI قبل أن يتوقف Claude.
8
8
 
9
9
  ---
10
10
 
@@ -12,47 +12,47 @@ icon: shield
12
12
 
13
13
  يتم تجميع السياسات في فئات:
14
14
 
15
- | الفئة | السياسات | نوع Hook |
16
- |-------|---------|----------|
17
- | [الأوامر الخطيرة](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
- | [الأسرار (المنظفات)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
- | [البيئة](#environment) | block-env-files, protect-env-vars | PreToolUse |
20
- | [الوصول للملفات](#file-access) | block-read-outside-cwd, block-secrets-write | PreToolUse |
15
+ | الفئة | السياسات | نوع الخطاف |
16
+ |-------|----------|-----------|
17
+ | [الأوامر الخطرة](#الأوامر-الخطرة) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
+ | [الأسرار (مُنظفات)](#الأسرار-مُنظفات) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
+ | [البيئة](#البيئة) | block-env-files, protect-env-vars | PreToolUse |
20
+ | [الوصول إلى الملفات](#الوصول-إلى-الملفات) | block-read-outside-cwd, block-secrets-write | PreToolUse |
21
21
  | [Git](#git) | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
22
- | [قاعدة البيانات](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
- | [التحذيرات](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
- | [مديرو الحزم](#package-managers) | prefer-package-manager | PreToolUse |
25
- | [سير العمل](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
22
+ | [قاعدة البيانات](#قاعدة-البيانات) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
+ | [تحذيرات](#تحذيرات) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
+ | [مديرو الحزم](#مديرو-الحزم) | prefer-package-manager | PreToolUse |
25
+ | [سير العمل](#سير-العمل) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
26
26
 
27
27
  - **`block-`** — إيقاف الوكيل عن المتابعة.
28
28
  - **`warn-`** — إعطاء الوكيل سياق إضافي حتى يتمكن من تصحيح نفسه.
29
- - **`sanitize-`** — حذف البيانات الحساسة من مخرجات الأداة قبل أن يراها Claude.
29
+ - **`sanitize-`** — حذف البيانات الحساسة من إخراج الأداة قبل أن يراها الوكيل.
30
30
  - **`require-`** — حظر حدث Stop حتى يتم استيفاء الشروط.
31
31
 
32
32
  ---
33
33
 
34
34
  <Tip>
35
- كل سياسة تدعم حقل `hint` اختياري في `policyParams`. يتم إلحاق التلميح برسالة الرفض أو التعليمات التي يراها Claude، مما يوفر إرشادات عملية دون تعديل كود السياسة. يعمل مع السياسات المدمجة والمخصصة وسياسات الاتفاقية. انظر [التكوين → hint](/ar/configuration#hint-cross-cutting) للتفاصيل.
35
+ تدعم كل سياسة حقل اختياري `hint` في `policyParams`. يتم إلحاق التلميح برسالة deny أو instruct التي يراها Claude، مما يوفر إرشادات قابلة للتنفيذ دون تعديل كود السياسة. يعمل مع السياسات المدمجة والمخصصة وسياسات الاتفاقية. انظر [التكوين → hint](/ar/configuration#hint-cross-cutting) للتفاصيل.
36
36
  </Tip>
37
37
 
38
38
  ---
39
39
 
40
- ## الأوامر الخطيرة
40
+ ## الأوامر الخطرة
41
41
 
42
- منع الوكلاء من تشغيل العمليات التي يصعب التراجع عنها أو التي قد تلحق الضرر بنظام المضيف.
42
+ منع الوكلاء من تشغيل العمليات التي يصعب التراجع عنها أو التي قد تضر بنظام الاستضافة.
43
43
 
44
44
  ### `block-sudo`
45
45
 
46
46
  **الحدث:** PreToolUse (Bash)
47
- **الإعداد الافتراضي:** رفض أي أمر `sudo`.
47
+ **الافتراضي:** ينكر أي أمر `sudo`.
48
48
 
49
- يحظر الاستدعاءات التي تتضمن كلمة `sudo`. يتم مطابقة النمط على رموز الأوامر المحللة، وليس السلسلة الخام، لمنع الالتفاف عبر حقن مشغل shell.
49
+ يحظر الاستدعاءات التي تتضمن كلمة `sudo`. يتم مطابقة النمط على رموز الأوامر التي تم تحليلها، وليس السلسلة الخام، لمنع الالتفاف عن طريق حقن عامل قشرة.
50
50
 
51
51
  **المعاملات:**
52
52
 
53
53
  | المعامل | النوع | الافتراضي | الوصف |
54
- |--------|-------|---------|-------|
55
- | `allowPatterns` | `string[]` | `[]` | بادئات الأوامر الدقيقة المسموح بها. يتم مطابقة كل إدخال مقابل رموز argv المحللة. |
54
+ |--------|-------|----------|-------|
55
+ | `allowPatterns` | `string[]` | `[]` | بادئات الأوامر الدقيقة المسموح بها. يتم مطابقة كل إدخال مقابل رموز argv التي تم تحليلها. |
56
56
 
57
57
  **مثال:**
58
58
 
@@ -66,10 +66,10 @@ icon: shield
66
66
  }
67
67
  ```
68
68
 
69
- مع هذا الإعداد، `sudo systemctl status nginx` مسموح به، لكن `sudo rm /etc/hosts` مرفوض.
69
+ مع هذا التكوين، يُسمح بـ `sudo systemctl status nginx لكن `sudo rm /etc/hosts` مرفوض.
70
70
 
71
71
  <Note>
72
- يتم مطابقة الأنماط مقابل الرموز المحللة، وليس السلسلة الخام للأمر. يمنع هذا الالتفاف عبر مشغلات shell المرفقة (مثلاً `sudo systemctl status x; rm -rf /` لا يطابق `sudo systemctl status *`).
72
+ يتم مطابقة الأنماط مقابل الرموز التي تم تحليلها، وليس سلسلة الأوامر الخام. هذا يمنع الالتفاف عن طريق عوامل قشرة ملحقة (على سبيل المثال، `sudo systemctl status x; rm -rf /` لا يطابق `sudo systemctl status *`).
73
73
  </Note>
74
74
 
75
75
  ---
@@ -77,13 +77,13 @@ icon: shield
77
77
  ### `block-rm-rf`
78
78
 
79
79
  **الحدث:** PreToolUse (Bash)
80
- **الإعداد الافتراضي:** رفض `rm -rf`، `rm -fr`، والأشكال التكرارية المماثلة للحذف.
80
+ **الافتراضي:** ينكر `rm -rf`، `rm -fr`، وأشكال الحذف العودية المماثلة.
81
81
 
82
82
  **المعاملات:**
83
83
 
84
84
  | المعامل | النوع | الافتراضي | الوصف |
85
- |--------|-------|---------|-------|
86
- | `allowPaths` | `string[]` | `[]` | المسارات الآمنة للحذف التكراري (مثلاً `/tmp`). |
85
+ |--------|-------|----------|-------|
86
+ | `allowPaths` | `string[]` | `[]` | المسارات الآمنة للحذف العودي (على سبيل المثال، `/tmp`). |
87
87
 
88
88
  **مثال:**
89
89
 
@@ -102,43 +102,43 @@ icon: shield
102
102
  ### `block-curl-pipe-sh`
103
103
 
104
104
  **الحدث:** PreToolUse (Bash)
105
- **الإعداد الافتراضي:** رفض `curl <url> | bash`، `curl <url> | sh`، `wget <url> | bash`، والأنماط المماثلة.
105
+ **الافتراضي:** ينكر `curl <url> | bash`، `curl <url> | sh`، `wget <url> | bash`، وأنماط مماثلة.
106
106
 
107
- بدون معاملات.
107
+ لا توجد معاملات.
108
108
 
109
109
  ---
110
110
 
111
111
  ### `block-failproofai-commands`
112
112
 
113
113
  **الحدث:** PreToolUse (Bash)
114
- **الإعداد الافتراضي:** رفض الأوامر التي ستلغي أو تعطل failproofai نفسه (مثلاً `npm uninstall failproofai`، `failproofai policies --uninstall`).
114
+ **الافتراضي:** ينكر الأوامر التي ستلغي أو تعطل failproofai نفسه (على سبيل المثال، `npm uninstall failproofai`، `failproofai policies --uninstall`).
115
115
 
116
- بدون معاملات.
116
+ لا توجد معاملات.
117
117
 
118
118
  ---
119
119
 
120
- ## الأسرار (المنظفات)
120
+ ## الأسرار (مُنظفات)
121
121
 
122
- منع الوكلاء من تسريب بيانات الاعتماد إلى سياقهم أو مخرجاتهم. تطلق سياسات المنظفة على أحداث **PostToolUse**. عندما يشغل Claude أمر Bash، أو يقرأ ملف، أو يستدعي أي أداة، تفتش هذه السياسات المخرجات قبل إرجاعها إلى Claude. إذا تم كشف نمط سري، ترجع السياسة قرار رفض يمنع إرجاع المخرجات.
122
+ منع الوكلاء من تسرب بيانات الاعتماد إلى السياق أو الإخراج. تعمل سياسات المُنظف على أحداث **PostToolUse**. عندما يقوم Claude بتشغيل أمر Bash أو قراءة ملف أو استدعاء أي أداة، تفحص هذه السياسات الإخراج قبل إرجاعه إلى Claude. إذا تم اكتشاف نمط سري، ترجع السياسة قرار إنكار يمنع تمرير الإخراج.
123
123
 
124
124
  ### `sanitize-jwt`
125
125
 
126
126
  **الحدث:** PostToolUse (جميع الأدوات)
127
- **الإعداد الافتراضي:** حذف رموز JWT (ثلاث مقاطع base64url مفصولة بـ `.`).
127
+ **الافتراضي:** تحرير رموز JWT (ثلاث مقاطع base64url مفصولة بـ `.`).
128
128
 
129
- بدون معاملات.
129
+ لا توجد معاملات.
130
130
 
131
131
  ---
132
132
 
133
133
  ### `sanitize-api-keys`
134
134
 
135
135
  **الحدث:** PostToolUse (جميع الأدوات)
136
- **الإعداد الافتراضي:** حذف تنسيقات مفاتيح API الشائعة: Anthropic (`sk-ant-`)، OpenAI (`sk-`)، GitHub PATs (`ghp_`)، مفاتيح الوصول AWS (`AKIA`)، مفاتيح Stripe (`sk_live_`, `sk_test_`)، ومفاتيح Google API (`AIza`).
136
+ **الافتراضي:** تحرير صيغ مفاتيح API الشائعة: Anthropic (`sk-ant-`)، OpenAI (`sk-`)، GitHub PATs (`ghp_`)، مفاتيح الوصول AWS (`AKIA`)، مفاتيح Stripe (`sk_live_ `sk_test_`)، ومفاتيح Google API (`AIza`).
137
137
 
138
138
  **المعاملات:**
139
139
 
140
140
  | المعامل | النوع | الافتراضي | الوصف |
141
- |--------|-------|---------|-------|
141
+ |--------|-------|----------|-------|
142
142
  | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | أنماط regex إضافية يتم التعامل معها كأسرار. |
143
143
 
144
144
  **مثال:**
@@ -161,67 +161,67 @@ icon: shield
161
161
  ### `sanitize-connection-strings`
162
162
 
163
163
  **الحدث:** PostToolUse (جميع الأدوات)
164
- **الإعداد الافتراضي:** حذف سلاسل اتصال قاعدة البيانات التي تحتوي على بيانات اعتماد مضمنة (مثلاً `postgresql://user:password@host/db`).
164
+ **الافتراضي:** تحرير سلاسل اتصال قاعدة البيانات التي تحتوي على بيانات اعتماد مضمنة (على سبيل المثال، `postgresql://user:password@host/db`).
165
165
 
166
- بدون معاملات.
166
+ لا توجد معاملات.
167
167
 
168
168
  ---
169
169
 
170
170
  ### `sanitize-private-key-content`
171
171
 
172
172
  **الحدث:** PostToolUse (جميع الأدوات)
173
- **الإعداد الافتراضي:** حذف كتل PEM (`-----BEGIN PRIVATE KEY-----`، `-----BEGIN RSA PRIVATE KEY-----`، إلخ).
173
+ **الافتراضي:** تحرير كتل PEM (`-----BEGIN PRIVATE KEY-----`، `-----BEGIN RSA PRIVATE KEY-----`، إلخ).
174
174
 
175
- بدون معاملات.
175
+ لا توجد معاملات.
176
176
 
177
177
  ---
178
178
 
179
179
  ### `sanitize-bearer-tokens`
180
180
 
181
181
  **الحدث:** PostToolUse (جميع الأدوات)
182
- **الإعداد الافتراضي:** حذف رؤوس `Authorization: Bearer <token>` حيث يكون الرمز 20 أو أكثر من الأحرف.
182
+ **الافتراضي:** تحرير رؤوس `Authorization: Bearer <token>` حيث يكون الرمز 20 حرفًا أو أكثر.
183
183
 
184
- بدون معاملات.
184
+ لا توجد معاملات.
185
185
 
186
186
  ---
187
187
 
188
188
  ## البيئة
189
189
 
190
- حماية إعدادات البيئة الحساسة من القراءة أو الكشف عنها من قبل الوكلاء.
190
+ حماية تكوين البيئة الحساسة من أن يتم قراءتها أو كشفها من قبل الوكلاء.
191
191
 
192
192
  ### `block-env-files`
193
193
 
194
- **الحدث:** PreToolUse (Bash، Read)
195
- **الإعداد الافتراضي:** رفض قراءة ملفات `.env` عبر `cat .env استدعاءات أداة Read مع `.env` كمسار الملف، إلخ.
194
+ **الحدث:** PreToolUse (Bash, Read)
195
+ **الافتراضي:** ينكر قراءة ملفات `.env` عبر `cat .env` أو استدعاءات `Read` الأداة مع `.env` كمسار الملف، إلخ.
196
196
 
197
- لا يحظر `.envrc` أو ملفات أخرى ذات صلة بالبيئة - فقط الملفات المسماة `.env` بالضبط.
197
+ لا يحظر `.envrc` أو ملفات أخرى مرتبطة بالبيئة - فقط الملفات المسماة بـ `.env` بالضبط.
198
198
 
199
- بدون معاملات.
199
+ لا توجد معاملات.
200
200
 
201
201
  ---
202
202
 
203
203
  ### `protect-env-vars`
204
204
 
205
205
  **الحدث:** PreToolUse (Bash)
206
- **الإعداد الافتراضي:** رفض الأوامر التي تطبع متغيرات البيئة: `printenv`، `env`، `echo $VAR`.
206
+ **الافتراضي:** ينكر الأوامر التي تطبع متغيرات البيئة: `printenv`، `env`، `echo $VAR`.
207
207
 
208
- بدون معاملات.
208
+ لا توجد معاملات.
209
209
 
210
210
  ---
211
211
 
212
- ## الوصول للملفات
212
+ ## الوصول إلى الملفات
213
213
 
214
- الحفاظ على عمل الوكلاء داخل حدود المشروع بعيداً عن الملفات الحساسة.
214
+ الحفاظ على عمل الوكلاء داخل حدود المشروع بعيدًا عن الملفات الحساسة.
215
215
 
216
216
  ### `block-read-outside-cwd`
217
217
 
218
- **الحدث:** PreToolUse (Read، Bash)
219
- **الإعداد الافتراضي:** رفض قراءة الملفات خارج دليل العمل الحالي (جذر المشروع).
218
+ **الحدث:** PreToolUse (Read, Bash)
219
+ **الافتراضي:** ينكر قراءة الملفات خارج دليل العمل الحالي (جذر المشروع).
220
220
 
221
221
  **المعاملات:**
222
222
 
223
223
  | المعامل | النوع | الافتراضي | الوصف |
224
- |--------|-------|---------|-------|
224
+ |--------|-------|----------|-------|
225
225
  | `allowPaths` | `string[]` | `[]` | بادئات المسار المطلق المسموح بها حتى لو كانت خارج cwd. |
226
226
 
227
227
  **مثال:**
@@ -240,14 +240,14 @@ icon: shield
240
240
 
241
241
  ### `block-secrets-write`
242
242
 
243
- **الحدث:** PreToolUse (Write، Edit)
244
- **الإعداد الافتراضي:** رفض الكتابة إلى الملفات المستخدمة بشكل شائع للمفاتيح الخاصة والشهادات: `id_rsa`، `id_ed25519`، `*.key`، `*.pem`، `*.p12`، `*.pfx`.
243
+ **الحدث:** PreToolUse (Write, Edit)
244
+ **الافتراضي:** ينكر الكتابة إلى الملفات المستخدمة بشكل شائع للمفاتيح الخاصة والشهادات: `id_rsa`، `id_ed25519`، `*.key`، `*.pem`، `*.p12`، `*.pfx`.
245
245
 
246
246
  **المعاملات:**
247
247
 
248
248
  | المعامل | النوع | الافتراضي | الوصف |
249
- |--------|-------|---------|-------|
250
- | `additionalPatterns` | `string[]` | `[]` | أنماط أسماء ملفات إضافية (نمط glob) للحظر. |
249
+ |--------|-------|----------|-------|
250
+ | `additionalPatterns` | `string[]` | `[]` | أنماط اسم ملف إضافية (على غرار glob) للحظر. |
251
251
 
252
252
  **مثال:**
253
253
 
@@ -265,17 +265,17 @@ icon: shield
265
265
 
266
266
  ## Git
267
267
 
268
- منع الدفع العرضي والدفع القسري وأخطاء الفروع التي يصعب التراجع عنها.
268
+ منع الدفع العرضي والدفع القسري والأخطاء في الفروع التي يصعب التراجع عنها.
269
269
 
270
270
  ### `block-push-master`
271
271
 
272
272
  **الحدث:** PreToolUse (Bash)
273
- **الإعداد الافتراضي:** رفض `git push origin main` و `git push origin master`.
273
+ **الافتراضي:** ينكر `git push origin main` و `git push origin master`.
274
274
 
275
275
  **المعاملات:**
276
276
 
277
277
  | المعامل | النوع | الافتراضي | الوصف |
278
- |--------|-------|---------|-------|
278
+ |--------|-------|----------|-------|
279
279
  | `protectedBranches` | `string[]` | `["main", "master"]` | أسماء الفروع التي لا يمكن الدفع إليها مباشرة. |
280
280
 
281
281
  **مثال:**
@@ -291,7 +291,7 @@ icon: shield
291
291
  ```
292
292
 
293
293
  <Tip>
294
- للسماح بالدفع إلى جميع الفروع (تعطيل هذه السياسة بشكل فعلي دون إزالتها من `enabledPolicies`)، اضبط `protectedBranches: []`.
294
+ للسماح بالدفع إلى جميع الفروع (بفعالية تعطيل هذه السياسة دون إزالتها من `enabledPolicies`)، اضبط `protectedBranches: []`.
295
295
  </Tip>
296
296
 
297
297
  ---
@@ -299,22 +299,22 @@ icon: shield
299
299
  ### `block-work-on-main`
300
300
 
301
301
  **الحدث:** PreToolUse (Bash)
302
- **الإعداد الافتراضي:** رفض التبديل إلى فروع `main` أو `master` مباشرة.
302
+ **الافتراضي:** ينكر الخروج من فروع `main` أو `master` مباشرة.
303
303
 
304
304
  **المعاملات:**
305
305
 
306
306
  | المعامل | النوع | الافتراضي | الوصف |
307
- |--------|-------|---------|-------|
308
- | `protectedBranches` | `string[]` | `["main", "master"]` | أسماء الفروع التي لا يمكن التبديل إليها مباشرة. |
307
+ |--------|-------|----------|-------|
308
+ | `protectedBranches` | `string[]` | `["main", "master"]` | أسماء الفروع التي لا يمكن الخروج منها مباشرة. |
309
309
 
310
310
  ---
311
311
 
312
312
  ### `block-force-push`
313
313
 
314
314
  **الحدث:** PreToolUse (Bash)
315
- **الإعداد الافتراضي:** رفض `git push --force` و `git push -f`.
315
+ **الافتراضي:** ينكر `git push --force` و `git push -f`.
316
316
 
317
- بدون معاملات خاصة بالسياسة. استخدم [`hint`](/ar/configuration#hint-cross-cutting) الشامل لاقتراح بدائل:
317
+ لا توجد معاملات خاصة بالسياسة. استخدم [hint](/ar/configuration#hint-cross-cutting) المتقاطع لاقتراح بدائل:
318
318
 
319
319
  ```json
320
320
  {
@@ -331,66 +331,66 @@ icon: shield
331
331
  ### `warn-git-amend`
332
332
 
333
333
  **الحدث:** PreToolUse (Bash)
334
- **الإعداد الافتراضي:** تعليمات Claude للمتابعة بحذر عند تشغيل `git commit --amend`. لا يحظر الأمر.
334
+ **الافتراضي:** يرشد Claude للمتابعة بحذر عند تشغيل `git commit --amend`. لا يحظر الأمر.
335
335
 
336
- بدون معاملات.
336
+ لا توجد معاملات.
337
337
 
338
338
  ---
339
339
 
340
340
  ### `warn-git-stash-drop`
341
341
 
342
342
  **الحدث:** PreToolUse (Bash)
343
- **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل تشغيل `git stash drop`. لا يحظر الأمر.
343
+ **الافتراضي:** يرشد Claude للتأكيد قبل تشغيل `git stash drop`. لا يحظر الأمر.
344
344
 
345
- بدون معاملات.
345
+ لا توجد معاملات.
346
346
 
347
347
  ---
348
348
 
349
349
  ### `warn-all-files-staged`
350
350
 
351
351
  **الحدث:** PreToolUse (Bash)
352
- **الإعداد الافتراضي:** تعليمات Claude لمراجعة ما ينص عليه عند تشغيل `git add -A` أو `git add .`. لا يحظر الأمر.
352
+ **الافتراضي:** يرشد Claude لمراجعة ما يقوم بتخزينه عند تشغيل `git add -A` أو `git add .`. لا يحظر الأمر.
353
353
 
354
- بدون معاملات.
354
+ لا توجد معاملات.
355
355
 
356
356
  ---
357
357
 
358
358
  ## قاعدة البيانات
359
359
 
360
- اكتشف العمليات التي تدمر SQL قبل تنفيذها ضد قاعدة البيانات الخاصة بك.
360
+ اكتشف العمليات SQL المدمرة قبل تنفيذها ضد قاعدة البيانات الخاصة بك.
361
361
 
362
362
  ### `warn-destructive-sql`
363
363
 
364
364
  **الحدث:** PreToolUse (Bash)
365
- **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل تشغيل SQL يحتوي على `DROP TABLE `DROP DATABASE أو `DELETE` بدون جملة `WHERE`.
365
+ **الافتراضي:** يرشد Claude للتأكيد قبل تشغيل SQL يحتوي على `DROP TABLE` أو `DROP DATABASE` أو `DELETE` بدون جملة `WHERE`.
366
366
 
367
- بدون معاملات.
367
+ لا توجد معاملات.
368
368
 
369
369
  ---
370
370
 
371
371
  ### `warn-schema-alteration`
372
372
 
373
373
  **الحدث:** PreToolUse (Bash)
374
- **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل تشغيل بيانات `ALTER TABLE`.
374
+ **الافتراضي:** يرشد Claude للتأكيد قبل تشغيل عبارات `ALTER TABLE`.
375
375
 
376
- بدون معاملات.
376
+ لا توجد معاملات.
377
377
 
378
378
  ---
379
379
 
380
- ## التحذيرات
380
+ ## تحذيرات
381
381
 
382
- إعطاء الوكلاء سياق إضافي قبل العمليات المحتملة ولكن غير المدمرة.
382
+ إعطاء الوكلاء سياق إضافي قبل العمليات المحتملة الخطورة ولكن غير المدمرة.
383
383
 
384
384
  ### `warn-large-file-write`
385
385
 
386
386
  **الحدث:** PreToolUse (Write)
387
- **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل كتابة ملفات أكبر من 1024 كيلوبايت.
387
+ **الافتراضي:** يرشد Claude للتأكيد قبل كتابة ملفات أكبر من 1024 KB.
388
388
 
389
389
  **المعاملات:**
390
390
 
391
391
  | المعامل | النوع | الافتراضي | الوصف |
392
- |--------|-------|---------|-------|
393
- | `thresholdKb` | `number` | `1024` | عتبة حجم الملف بالكيلوبايت التي يتم فوقها إصدار تحذير. |
392
+ |--------|-------|----------|-------|
393
+ | `thresholdKb` | `number` | `1024` | عتبة حجم الملف بالكيلوبايت التي يتم إصدار تحذير فوقها. |
394
394
 
395
395
  **مثال:**
396
396
 
@@ -405,7 +405,7 @@ icon: shield
405
405
  ```
406
406
 
407
407
  <Note>
408
- يفرض معالج hook حد 1 ميجابايت لـ stdin على الحمول الثقيلة. لاختبار هذه السياسة بمحتوى صغير، اضبط `thresholdKb` على قيمة أقل بكثير من 1024.
408
+ يفرض معالج الخطاف حد stdin بحجم 1 ميجابايت على الحمولات. لاختبار هذه السياسة بمحتوى صغير، اضبط `thresholdKb` على قيمة أقل بكثير من 1024.
409
409
  </Note>
410
410
 
411
411
  ---
@@ -413,49 +413,49 @@ icon: shield
413
413
  ### `warn-package-publish`
414
414
 
415
415
  **الحدث:** PreToolUse (Bash)
416
- **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل تشغيل `npm publish`.
416
+ **الافتراضي:** يرشد Claude للتأكيد قبل تشغيل `npm publish`.
417
417
 
418
- بدون معاملات.
418
+ لا توجد معاملات.
419
419
 
420
420
  ---
421
421
 
422
422
  ### `warn-background-process`
423
423
 
424
424
  **الحدث:** PreToolUse (Bash)
425
- **الإعداد الافتراضي:** تعليمات Claude بالحذر عند إطلاق العمليات في الخلفية عبر `nohup `&`، `disown أو `screen`.
425
+ **الافتراضي:** يرشد Claude ليكون حذرًا عند إطلاق العمليات الخلفية عبر `nohup` أو `&` أو `disown` أو `screen`.
426
426
 
427
- بدون معاملات.
427
+ لا توجد معاملات.
428
428
 
429
429
  ---
430
430
 
431
431
  ### `warn-global-package-install`
432
432
 
433
433
  **الحدث:** PreToolUse (Bash)
434
- **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل تشغيل `npm install -g `yarn global add أو `pip install` بدون بيئة افتراضية.
434
+ **الافتراضي:** يرشد Claude للتأكيد قبل تشغيل `npm install -g` أو `yarn global add` أو `pip install` بدون بيئة افتراضية.
435
435
 
436
- بدون معاملات.
436
+ لا توجد معاملات.
437
437
 
438
438
  ---
439
439
 
440
440
  ## مديرو الحزم
441
441
 
442
- فرض مديري الحزم المسموح بهم على الوكيل.
442
+ فرض أي مديري حزم يُسمح للوكيل باستخدامهم.
443
443
 
444
444
  ### `prefer-package-manager`
445
445
 
446
446
  **الحدث:** PreToolUse (Bash)
447
- **الإعداد الافتراضي:** معطل. عند التفعيل، يحظر أي أمر مدير حزم غير موجود في قائمة `allowed` ويخبر Claude بإعادة كتابة الأمر باستخدام مدير مسموح به.
447
+ **الافتراضي:** معطل. عند التفعيل، يحظر أي أمر مدير حزم ليس في قائمة `allowed` ويخبر Claude بإعادة كتابة الأمر باستخدام مدير مسموح به.
448
448
 
449
449
  يكتشف: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
450
450
 
451
451
  | المعامل | النوع | الافتراضي | الوصف |
452
- |--------|-------|---------|-------|
453
- | `allowed` | string[] | `[]` | أسماء مديري الحزم المسموح بها. يتم حظر أي مدير مكتشف غير موجود في هذه القائمة. عند كونها فارغة، السياسة غير فعالة. |
454
- | `blocked` | string[] | `[]` | أسماء مديري إضافية للحظر بما يتجاوز القائمة المدمجة (مثلاً `['pdm', 'pipx']`). |
452
+ |--------|-------|----------|-------|
453
+ | `allowed` | string[] | `[]` | أسماء مديري الحزم المسموح بها. يتم حظر أي مدير مكتشف ليس في هذه القائمة. عند ترك القائمة فارغة، السياسة بدون تأثير. |
454
+ | `blocked` | string[] | `[]` | أسماء مديري حزم إضافية للحظر بما يتجاوز قائمة الحظر المدمجة (على سبيل المثال، `['pdm', 'pipx']`). |
455
455
 
456
- تغطي قائمة الحظر المدمجة: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. استخدم `blocked` لإضافة مديري غير موجودين في هذه القائمة.
456
+ تغطي قائمة الحظر المدمجة: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. استخدم `blocked` لإضافة مديري حزم ليسوا في هذه القائمة.
457
457
 
458
- **مثال التكوين:**
458
+ **تكوين مثال:**
459
459
 
460
460
  ```json
461
461
  {
@@ -469,47 +469,47 @@ icon: shield
469
469
  }
470
470
  ```
471
471
 
472
- مع هذا الإعداد، `pip install flask` و `pdm install flask` كلاهما مرفوض برسالة تخبر Claude بالاستخدام `uv` أو `bun` بدلاً من ذلك. أوامر مثل `uv pip install flask` مسموح بها لأن `uv` موجود في قائمة المسموحين ويتم فحصه أولاً.
472
+ مع هذا التكوين، يتم رفض كل من `pip install flask` و `pdm install flask` برسالة تخبر Claude باستخدام `uv` أو `bun` بدلاً من ذلك. الأوامر مثل `uv pip install flask` مسموح بها لأن `uv` موجود في قائمة السماح ويتم التحقق منها أولاً.
473
473
 
474
474
  ---
475
475
 
476
476
  ## سلوك الذكاء الاصطناعي
477
477
 
478
- كشف عندما يعلق الوكلاء أو يتصرفون بشكل غير متوقع.
478
+ اكتشف عندما يعلق الوكلاء أو يتصرفون بشكل غير متوقع.
479
479
 
480
480
  ### `warn-repeated-tool-calls`
481
481
 
482
482
  **الحدث:** PreToolUse (جميع الأدوات)
483
- **الإعداد الافتراضي:** تعليمات Claude لإعادة التفكير عند استدعاء نفس الأداة 3 مرات أو أكثر بنفس المعاملات - وهي علامة شائعة على أن الوكيل عالق في حلقة.
483
+ **الافتراضي:** يرشد Claude للتفكير مرة أخرى عندما يتم استدعاء نفس الأداة 3 مرات أو أكثر بمعاملات متطابقة - علامة شائعة على أن الوكيل عالق في حلقة.
484
484
 
485
- بدون معاملات.
485
+ لا توجد معاملات.
486
486
 
487
487
  ---
488
488
 
489
489
  ## سير العمل
490
490
 
491
- فرض سير عمل منضبط لنهاية الجلسة. تطلق هذه السياسات على حدث **Stop** وترفض Claude من التوقف حتى يتم استيفاء كل شرط. تتبع سلسلة اعتماد طبيعية: commit → push → PR → CI. إذا رفضت سياسة، يتم تخطي السياسات اللاحقة في السلسلة (الرفض يختصر).
491
+ فرض سير عمل منضبط لنهاية الجلسة. تعمل هذه السياسات على حدث **Stop** وتنكر على Claude التوقف حتى يتم استيفاء كل شرط. تتبع سلسلة اعتماد طبيعية: commit → push → PR → CI. إذا رفضت سياسة، يتم تخطي السياسات اللاحقة في السلسلة (الإنكار يختصر).
492
492
 
493
- جميع سياسات سير العمل **fail-open**: إذا لم تكن الأداة المطلوبة متاحة (مثلاً `gh` غير مثبتة، لا يوجد remote git)، تسمح السياسة برسالة إعلامية توضح سبب تخطي الفحص.
493
+ جميع سياسات سير العمل هي **fail-open**: إذا لم تكن الأداة المطلوبة متاحة (على سبيل المثال، `gh` غير مثبتة، لا يوجد remote git)، السياسة تسمح برسالة إعلامية توضح سبب تجاهل الفحص.
494
494
 
495
495
  ### `require-commit-before-stop`
496
496
 
497
497
  **الحدث:** Stop
498
- **الإعداد الافتراضي:** رفض التوقف عندما توجد تغييرات غير مرتكبة (ملفات معدلة أو منصة أو غير متتبعة). إرجاع رسالة إعلامية عندما يكون دليل العمل نظيفاً.
498
+ **الافتراضي:** ينكر التوقف عند وجود تغييرات غير مؤكدة (ملفات معدلة أو مرحلة أو غير مرقبة). يرجع رسالة إعلامية عند نظافة دليل العمل.
499
499
 
500
- بدون معاملات.
500
+ لا توجد معاملات.
501
501
 
502
502
  ---
503
503
 
504
504
  ### `require-push-before-stop`
505
505
 
506
506
  **الحدث:** Stop
507
- **الإعداد الافتراضي:** رفض التوقف عندما توجد التزامات غير مدفوعة أو عندما لا يكون للفرع الحالي فرع تتبع بعيد. يقترح `git push -u` لإنشاء فرع تتبع إذا لزم الأمر. يفشل بشكل مفتوح إذا لم يتم تكوين remote.
507
+ **الافتراضي:** ينكر التوقف عند وجود commits غير مدفوعة أو عند عدم وجود فرع تتبع remote للفرع الحالي. يقترح `git push -u` لإنشاء فرع تتبع إذا لزم الأمر. يفشل open إذا لم يتم تكوين أي remote.
508
508
 
509
509
  **المعاملات:**
510
510
 
511
511
  | المعامل | النوع | الافتراضي | الوصف |
512
- |--------|-------|---------|-------|
512
+ |--------|-------|----------|-------|
513
513
  | `remote` | `string` | `"origin"` | اسم remote للدفع إليه. |
514
514
 
515
515
  **مثال:**
@@ -529,14 +529,14 @@ icon: shield
529
529
  ### `require-pr-before-stop`
530
530
 
531
531
  **الحدث:** Stop
532
- **الإعداد الافتراضي:** رفض التوقف عندما لا يوجد طلب دمج للفرع الحالي، أو عندما يكون الطلب الموجود مغلقاً/مدمجاً. تعليمات Claude لإنشاء طلب دمج مع `gh pr create`.
532
+ **الافتراضي:** ينكر التوقف عند عدم وجود طلب سحب للفرع الحالي، أو عند إغلاق أو دمج طلب السحب الموجود. يرشد Claude لإنشاء PR باستخدام `gh pr create`.
533
533
 
534
- بدون معاملات.
534
+ لا توجد معاملات.
535
535
 
536
536
  <Note>
537
- تتطلب هذه السياسة تثبيت [GitHub CLI](https://cli.github.com/) (`gh`) والتحقق منها.
538
- قم بتشغيل `gh auth login` بـ personal access token يملك نطاق `repo` للوصول للقراءة إلى
539
- طلبات الدمج. إذا لم يتم تثبيت `gh` أو لم يتم التحقق منها، تفشل السياسة بشكل مفتوح وتبلغ السبب إلى Claude.
537
+ تتطلب هذه السياسة [GitHub CLI](https://cli.github.com/) (`gh`) أن تكون مثبتة ومصرح بها.
538
+ قم بتشغيل `gh auth login` برمز وصول شخصي يتمتع بنطاق `repo` لقراءة طلبات السحب.
539
+ إذا لم تكن `gh` مثبتة أو غير مصرح بها، تفشل السياسة open وتبلغ السبب إلى Claude.
540
540
  </Note>
541
541
 
542
542
  ---
@@ -544,14 +544,14 @@ icon: shield
544
544
  ### `require-ci-green-before-stop`
545
545
 
546
546
  **الحدث:** Stop
547
- **الإعداد الافتراضي:** رفض التوقف عندما تكون فحوصات CI فاشلة أو لا تزال قيد التشغيل على الفرع الحالي. يفحص كل من مسارات عمل GitHub Actions والفحوصات من جهات خارجية (مثلاً CodeRabbit, SonarCloud, Codecov). يتعامل مع الاستنتاجات `skipped` كنجاح. إرجاع رسالة إعلامية عندما تمر جميع الفحوصات.
547
+ **الافتراضي:** ينكر التوقف عند فشل فحوصات CI أو استمرار تشغيلها على الفرع الحالي. يتحقق من كل من تشغيل مسار GitHub Actions والفحوصات من طرف ثالث (على سبيل المثال، CodeRabbit, SonarCloud, Codecov). يعامل `skipped` و `cancelled` على أنها نجاح. يرجع رسالة إعلامية عند نجاح جميع الفحوصات.
548
548
 
549
- بدون معاملات.
549
+ لا توجد معاملات.
550
550
 
551
551
  <Note>
552
- تتطلب هذه السياسة تثبيت [GitHub CLI](https://cli.github.com/) (`gh`) والتحقق منها.
553
- قم بتشغيل `gh auth login` بـ personal access token يملك نطاق `repo` للوصول للقراءة إلى
554
- مسارات عمل Actions والـ Checks API. إذا لم يتم تثبيت `gh` أو لم يتم التحقق منها، تفشل السياسة بشكل مفتوح وتبلغ السبب إلى Claude.
552
+ تتطلب هذه السياسة [GitHub CLI](https://cli.github.com/) (`gh`) أن تكون مثبتة ومصرح بها.
553
+ قم بتشغيل `gh auth login` برمز وصول شخصي يتمتع بنطاق `repo` لقراءة تشغيل مسارات Actions و Checks API.
554
+ إذا لم تكن `gh` مثبتة أو غير مصرح بها، تفشل السياسة open وتبلغ السبب إلى Claude.
555
555
  </Note>
556
556
 
557
557
  ---
@@ -560,7 +560,7 @@ icon: shield
560
560
 
561
561
  ## تعطيل السياسات الفردية
562
562
 
563
- أزل سياسة محددة من `enabledPolicies` في إعدادك، أو قم بإيقافها في علامة Policies بلوحة التحكم.
563
+ أزل سياسة محددة من `enabledPolicies` في تكوينك، أو قم بتبديلها في علامة التبويب Policies بلوحة المعلومات.
564
564
 
565
565
  ```json
566
566
  {
@@ -571,4 +571,4 @@ icon: shield
571
571
  }
572
572
  ```
573
573
 
574
- السياسات غير المدرجة في `enabledPolicies` لا تعمل، حتى إذا كانت هناك إدخالات `policyParams` لها.
574
+ السياسات غير المدرجة في `enabledPolicies` لا تعمل، حتى إذا كانت إدخالات `policyParams` موجودة لها.
@@ -216,13 +216,13 @@ Keep agents working inside project boundaries and away from sensitive files.
216
216
  ### `block-read-outside-cwd`
217
217
 
218
218
  **Event:** PreToolUse (Read, Bash)
219
- **Default:** Denies reading files outside the current working directory (the project root).
219
+ **Default:** Denies reading files outside the project root. The boundary is `CLAUDE_PROJECT_DIR` (set once per session by Claude Code), with a fallback to the session's current working directory when that variable is unset. Using the project root rather than the live `cwd` means the boundary stays stable even after Claude `cd`s into a subdirectory.
220
220
 
221
221
  **Parameters:**
222
222
 
223
223
  | Param | Type | Default | Description |
224
224
  |-------|------|---------|-------------|
225
- | `allowPaths` | `string[]` | `[]` | Absolute path prefixes that are permitted even if outside cwd. |
225
+ | `allowPaths` | `string[]` | `[]` | Absolute path prefixes that are permitted even if outside the project root. |
226
226
 
227
227
  **Example:**
228
228