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