failproofai 0.0.6-beta.0 → 0.0.6-beta.2

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 (191) hide show
  1. package/.next/standalone/.failproofai/policies/review-policies.mjs +113 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +5 -5
  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/build-manifest.json +2 -2
  7. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  18. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  22. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  24. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  25. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  28. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/index.html +1 -1
  30. package/.next/standalone/.next/server/app/index.rsc +15 -15
  31. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  32. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  33. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  34. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  35. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  37. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  38. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +2 -2
  41. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  42. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +2 -2
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  50. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  51. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  54. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  55. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  58. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a.nuas._.js → [root-of-the-server]__05akje6._.js} +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.~fd7s._.js → [root-of-the-server]__0i5kvry._.js} +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +6 -6
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  71. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  72. package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
  73. package/.next/standalone/.next/server/pages/404.html +2 -2
  74. package/.next/standalone/.next/server/pages/500.html +1 -1
  75. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  77. package/.next/standalone/.next/static/chunks/{0teq8wdh3po1n.js → 00j0rr7rh8ef8.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0maq.q1t.ri85.js → 05j1px0r8yzh6.js} +2 -2
  79. package/.next/standalone/.next/static/chunks/0badv41uxa56..js +4 -0
  80. package/.next/standalone/.next/static/chunks/{0hplx-8c-4vpv.js → 0ijk_kek9_wyx.js} +1 -1
  81. package/.next/standalone/.next/static/chunks/{0uc0um_uz51m_.js → 0npb~873.wvg3.js} +1 -1
  82. package/.next/standalone/.next/static/chunks/{0hctoh28rg838.js → 0xpl.oscrakvx.js} +1 -1
  83. package/.next/standalone/.next/static/chunks/{0.z51twd.0l5z.js → 1052sguyd-.ka.js} +1 -1
  84. package/.next/standalone/.next/static/chunks/{09e7drilkf1sn.js → 12simlrcfk3g2.js} +1 -1
  85. package/.next/standalone/.next/static/chunks/{0ul6fk-z.6k-0.js → 14cl9poem30dq.js} +1 -1
  86. package/.next/standalone/.next/static/chunks/{turbopack-0r26pc8h0y_-e.js → turbopack-0o7k.hakttp4k.js} +1 -1
  87. package/.next/standalone/CHANGELOG.md +19 -0
  88. package/.next/standalone/README.md +2 -2
  89. package/.next/standalone/bun.lock +43 -85
  90. package/.next/standalone/dist/cli.mjs +91 -4
  91. package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
  92. package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
  93. package/.next/standalone/docs/ar/examples.mdx +86 -33
  94. package/.next/standalone/docs/ar/getting-started.mdx +82 -29
  95. package/.next/standalone/docs/built-in-policies.mdx +38 -1
  96. package/.next/standalone/docs/custom-policies.mdx +1 -1
  97. package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
  98. package/.next/standalone/docs/de/custom-policies.mdx +56 -56
  99. package/.next/standalone/docs/de/examples.mdx +72 -18
  100. package/.next/standalone/docs/de/getting-started.mdx +72 -20
  101. package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
  102. package/.next/standalone/docs/es/custom-policies.mdx +55 -55
  103. package/.next/standalone/docs/es/examples.mdx +73 -19
  104. package/.next/standalone/docs/es/getting-started.mdx +72 -20
  105. package/.next/standalone/docs/examples.mdx +54 -0
  106. package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
  107. package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
  108. package/.next/standalone/docs/fr/examples.mdx +78 -24
  109. package/.next/standalone/docs/fr/getting-started.mdx +65 -13
  110. package/.next/standalone/docs/getting-started.mdx +52 -0
  111. package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
  112. package/.next/standalone/docs/he/custom-policies.mdx +75 -75
  113. package/.next/standalone/docs/he/examples.mdx +87 -33
  114. package/.next/standalone/docs/he/getting-started.mdx +84 -33
  115. package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
  116. package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
  117. package/.next/standalone/docs/hi/examples.mdx +90 -36
  118. package/.next/standalone/docs/hi/getting-started.mdx +80 -27
  119. package/.next/standalone/docs/i18n/README.ar.md +69 -69
  120. package/.next/standalone/docs/i18n/README.de.md +46 -46
  121. package/.next/standalone/docs/i18n/README.es.md +42 -42
  122. package/.next/standalone/docs/i18n/README.fr.md +39 -39
  123. package/.next/standalone/docs/i18n/README.he.md +83 -83
  124. package/.next/standalone/docs/i18n/README.hi.md +69 -69
  125. package/.next/standalone/docs/i18n/README.it.md +72 -72
  126. package/.next/standalone/docs/i18n/README.ja.md +71 -71
  127. package/.next/standalone/docs/i18n/README.ko.md +52 -52
  128. package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
  129. package/.next/standalone/docs/i18n/README.ru.md +66 -66
  130. package/.next/standalone/docs/i18n/README.tr.md +82 -83
  131. package/.next/standalone/docs/i18n/README.vi.md +70 -71
  132. package/.next/standalone/docs/i18n/README.zh.md +51 -51
  133. package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
  134. package/.next/standalone/docs/it/custom-policies.mdx +69 -69
  135. package/.next/standalone/docs/it/examples.mdx +93 -39
  136. package/.next/standalone/docs/it/getting-started.mdx +73 -21
  137. package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
  138. package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
  139. package/.next/standalone/docs/ja/examples.mdx +76 -22
  140. package/.next/standalone/docs/ja/getting-started.mdx +65 -13
  141. package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
  142. package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
  143. package/.next/standalone/docs/ko/examples.mdx +87 -33
  144. package/.next/standalone/docs/ko/getting-started.mdx +61 -9
  145. package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
  146. package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
  147. package/.next/standalone/docs/pt-br/examples.mdx +78 -24
  148. package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
  149. package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
  150. package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
  151. package/.next/standalone/docs/ru/examples.mdx +77 -22
  152. package/.next/standalone/docs/ru/getting-started.mdx +74 -22
  153. package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
  154. package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
  155. package/.next/standalone/docs/tr/examples.mdx +97 -42
  156. package/.next/standalone/docs/tr/getting-started.mdx +75 -23
  157. package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
  158. package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
  159. package/.next/standalone/docs/vi/examples.mdx +93 -38
  160. package/.next/standalone/docs/vi/getting-started.mdx +74 -22
  161. package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
  162. package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
  163. package/.next/standalone/docs/zh/examples.mdx +90 -36
  164. package/.next/standalone/docs/zh/getting-started.mdx +73 -21
  165. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  166. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  167. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
  168. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  169. package/.next/standalone/node_modules/next/dist/server/config-schema.js +10 -2
  170. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  171. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  172. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  173. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  174. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  175. package/.next/standalone/node_modules/next/dist/server/render.js +27 -20
  176. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  177. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  178. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  179. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  180. package/.next/standalone/node_modules/next/package.json +15 -15
  181. package/.next/standalone/package.json +2 -2
  182. package/.next/standalone/server.js +1 -1
  183. package/.next/standalone/src/hooks/builtin-policies.ts +106 -1
  184. package/README.md +2 -2
  185. package/dist/cli.mjs +91 -4
  186. package/package.json +2 -2
  187. package/src/hooks/builtin-policies.ts +106 -1
  188. package/.next/standalone/.next/static/chunks/0w9lwqy0-v1dk.js +0 -4
  189. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
  190. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
  191. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_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 سياسة مدمجة تكتشف أنماط الفشل الشائعة للوكلاء. تُطلق كل سياسة على نوع حدث hook محدد واسم أداة معينة. تقبل تسع سياسات معاملات تتيح لك ضبط سلوكها دون كتابة أي كود. تفرض أربع سياسات سير عمل خط أنابيب commit → push → PR → CI قبل توقف Claude.
8
8
 
9
9
  ---
10
10
 
@@ -13,45 +13,46 @@ icon: shield
13
13
  يتم تجميع السياسات في فئات:
14
14
 
15
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 |
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
19
  | [البيئة](#environment) | block-env-files, protect-env-vars | PreToolUse |
20
- | [الوصول إلى الملفات](#file-access) | block-read-outside-cwd, block-secrets-write | PreToolUse |
20
+ | [الوصول للملفات](#file-access) | 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
22
  | [قاعدة البيانات](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
23
  | [التحذيرات](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
+ | [مديرو الحزم](#package-managers) | prefer-package-manager | PreToolUse |
24
25
  | [سير العمل](#workflow) | 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-`** — حذف البيانات الحساسة من مخرجات الأداة قبل أن يراها Claude.
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`. يتم إلحاق التلميح برسالة الرفض أو التعليمات التي يراها 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`. يتم مطابقة النمط على رموز الأوامر المحللة، وليس السلسلة الخام، لمنع الالتفاف عبر حقن مشغل shell.
49
50
 
50
51
  **المعاملات:**
51
52
 
52
53
  | المعامل | النوع | الافتراضي | الوصف |
53
- |-------|------|---------|-------------|
54
- | `allowPatterns` | `string[]` | `[]` | بادئات الأوامر الدقيقة المسموحة. يتم مطابقة كل إدخال مقابل رموز argv المحللة. |
54
+ |--------|-------|---------|-------|
55
+ | `allowPatterns` | `string[]` | `[]` | بادئات الأوامر الدقيقة المسموح بها. يتم مطابقة كل إدخال مقابل رموز argv المحللة. |
55
56
 
56
57
  **مثال:**
57
58
 
@@ -65,10 +66,10 @@ icon: shield
65
66
  }
66
67
  ```
67
68
 
68
- مع هذا التكوين، يُسمح بـ `sudo systemctl status nginx لكن `sudo rm /etc/hosts` مرفوض.
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
+ يتم مطابقة الأنماط مقابل الرموز المحللة، وليس السلسلة الخام للأمر. يمنع هذا الالتفاف عبر مشغلات shell المرفقة (مثلاً `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,7 +102,7 @@ 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
 
@@ -110,20 +111,20 @@ icon: shield
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
 
@@ -132,12 +133,12 @@ icon: shield
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,7 +161,7 @@ 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
 
@@ -169,7 +170,7 @@ icon: shield
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
 
@@ -178,7 +179,7 @@ icon: shield
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
 
@@ -186,14 +187,14 @@ icon: shield
186
187
 
187
188
  ## البيئة
188
189
 
189
- حماية تكوين البيئة الحساسة من قراءتها أو تعريضها من قبل الوكلاء.
190
+ حماية إعدادات البيئة الحساسة من القراءة أو الكشف عنها من قبل الوكلاء.
190
191
 
191
192
  ### `block-env-files`
192
193
 
193
- **الحدث:** PreToolUse (Bash, Read)
194
- **الافتراضي:** يرفض قراءة ملفات `.env` عبر `cat .env`، استدعاءات أداة Read مع `.env` كمسار الملف، إلخ.
194
+ **الحدث:** PreToolUse (Bash، Read)
195
+ **الإعداد الافتراضي:** رفض قراءة ملفات `.env` عبر `cat .env`، استدعاءات أداة Read مع `.env` كمسار الملف، إلخ.
195
196
 
196
- لا يحجب `.envrc` أو ملفات أخرى مجاورة للبيئة - فقط الملفات المسماة بالضبط `.env`.
197
+ لا يحظر `.envrc` أو ملفات أخرى ذات صلة بالبيئة - فقط الملفات المسماة `.env` بالضبط.
197
198
 
198
199
  بدون معاملات.
199
200
 
@@ -202,26 +203,26 @@ icon: shield
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
- **الحدث:** PreToolUse (Read, Bash)
218
- **الافتراضي:** يرفض قراءة الملفات خارج دليل العمل الحالي (جذر المشروع).
218
+ **الحدث:** PreToolUse (Read، Bash)
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
 
@@ -239,14 +240,14 @@ icon: shield
239
240
 
240
241
  ### `block-secrets-write`
241
242
 
242
- **الحدث:** PreToolUse (Write, Edit)
243
- **الافتراضي:** يرفض الكتابة إلى الملفات المستخدمة بشكل شائع للمفاتيح الخاصة والشهادات: `id_rsa`، `id_ed25519`، `*.key`، `*.pem`، `*.p12`، `*.pfx`.
243
+ **الحدث:** PreToolUse (Write، Edit)
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
 
@@ -264,17 +265,17 @@ icon: shield
264
265
 
265
266
  ## Git
266
267
 
267
- منع الدفع العرضي والدفع القسري والأخطاء في الفروع التي يصعب التراجع عنها.
268
+ منع الدفع العرضي والدفع القسري وأخطاء الفروع التي يصعب التراجع عنها.
268
269
 
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,7 +331,7 @@ 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
 
@@ -339,7 +340,7 @@ icon: shield
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
 
@@ -348,7 +349,7 @@ icon: shield
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
 
@@ -356,12 +357,12 @@ icon: shield
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
 
@@ -370,7 +371,7 @@ icon: shield
370
371
  ### `warn-schema-alteration`
371
372
 
372
373
  **الحدث:** PreToolUse (Bash)
373
- **الافتراضي:** يرشد Claude للتأكيد قبل تشغيل عبارات `ALTER TABLE`.
374
+ **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل تشغيل بيانات `ALTER TABLE`.
374
375
 
375
376
  بدون معاملات.
376
377
 
@@ -378,17 +379,17 @@ icon: shield
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 كيلوبايت.
387
388
 
388
389
  **المعاملات:**
389
390
 
390
391
  | المعامل | النوع | الافتراضي | الوصف |
391
- |-------|------|---------|-------------|
392
+ |--------|-------|---------|-------|
392
393
  | `thresholdKb` | `number` | `1024` | عتبة حجم الملف بالكيلوبايت التي يتم فوقها إصدار تحذير. |
393
394
 
394
395
  **مثال:**
@@ -404,7 +405,7 @@ icon: shield
404
405
  ```
405
406
 
406
407
  <Note>
407
- يفرض معالج hook حد أقصى 1 ميجابايت stdin على الحمولات. لاختبار هذه السياسة بمحتوى صغير، اضبط `thresholdKb` على قيمة أقل بكثير من 1024.
408
+ يفرض معالج hook حد 1 ميجابايت لـ stdin على الحمول الثقيلة. لاختبار هذه السياسة بمحتوى صغير، اضبط `thresholdKb` على قيمة أقل بكثير من 1024.
408
409
  </Note>
409
410
 
410
411
  ---
@@ -412,7 +413,7 @@ icon: shield
412
413
  ### `warn-package-publish`
413
414
 
414
415
  **الحدث:** PreToolUse (Bash)
415
- **الافتراضي:** يرشد Claude للتأكيد قبل تشغيل `npm publish`.
416
+ **الإعداد الافتراضي:** تعليمات Claude بالتأكيد قبل تشغيل `npm publish`.
416
417
 
417
418
  بدون معاملات.
418
419
 
@@ -421,7 +422,7 @@ icon: shield
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
 
@@ -430,20 +431,56 @@ icon: shield
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
  بدون معاملات.
436
437
 
437
438
  ---
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` موجود في قائمة المسموحين ويتم فحصه أولاً.
473
+
474
+ ---
475
+
439
476
  ## سلوك الذكاء الاصطناعي
440
477
 
441
- اكتشف عندما يعلق الوكلاء أو يتصرفون بشكل غير متوقع.
478
+ كشف عندما يعلق الوكلاء أو يتصرفون بشكل غير متوقع.
442
479
 
443
480
  ### `warn-repeated-tool-calls`
444
481
 
445
482
  **الحدث:** PreToolUse (جميع الأدوات)
446
- **الافتراضي:** يرشد Claude لإعادة النظر عند استدعاء نفس الأداة 3 مرات أو أكثر مع معاملات متطابقة - علامة شائعة على أن الوكيل عالق في حلقة.
483
+ **الإعداد الافتراضي:** تعليمات Claude لإعادة التفكير عند استدعاء نفس الأداة 3 مرات أو أكثر بنفس المعاملات - وهي علامة شائعة على أن الوكيل عالق في حلقة.
447
484
 
448
485
  بدون معاملات.
449
486
 
@@ -451,14 +488,14 @@ icon: shield
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
 
@@ -467,13 +504,13 @@ icon: shield
467
504
  ### `require-push-before-stop`
468
505
 
469
506
  **الحدث:** Stop
470
- **الافتراضي:** يرفض التوقف عند وجود commits غير مدفوعة أو عندما لا يكون للفرع الحالي فرع تتبع بعيد. يقترح `git push -u` لإنشاء فرع تتبع إذا لزم الأمر. يفشل مفتوح إذا لم يتم تكوين أي بعيد.
507
+ **الإعداد الافتراضي:** رفض التوقف عندما توجد التزامات غير مدفوعة أو عندما لا يكون للفرع الحالي فرع تتبع بعيد. يقترح `git push -u` لإنشاء فرع تتبع إذا لزم الأمر. يفشل بشكل مفتوح إذا لم يتم تكوين 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 لإنشاء طلب دمج مع `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` بـ personal access token يملك نطاق `repo` للوصول للقراءة إلى
539
+ طلبات الدمج. إذا لم يتم تثبيت `gh` أو لم يتم التحقق منها، تفشل السياسة بشكل مفتوح وتبلغ السبب إلى 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` كنجاح. إرجاع رسالة إعلامية عندما تمر جميع الفحوصات.
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` بـ personal access token يملك نطاق `repo` للوصول للقراءة إلى
554
+ مسارات عمل Actions والـ Checks API. إذا لم يتم تثبيت `gh` أو لم يتم التحقق منها، تفشل السياسة بشكل مفتوح وتبلغ السبب إلى 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` لها.