failproofai 0.0.3 → 0.0.4

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 (134) 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]__09icjsf._.js +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0bo8s~-._.js → [root-of-the-server]__0lty_fo._.js} +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__03kiqd5._.js → [root-of-the-server]__0v1egkj._.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/{03oepxbqx6o8~.js → 0b2_069x5qnxg.js} +2 -2
  70. package/.next/standalone/.next/static/chunks/{02t9.s735hqyq.js → 0de3q2juhg_dr.js} +1 -1
  71. package/.next/standalone/.next/static/chunks/{18cl6wups7ouq.js → 0p5sfob-upg0g.js} +1 -1
  72. package/.next/standalone/.next/static/chunks/{0h5kbvg~.xf.v.js → 0tw_xfxb1tto..js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{0od..umlku4bb.js → 0uxpbrcv44lga.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/0xjz3w.yw5tza.js +1 -0
  75. package/.next/standalone/.next/static/chunks/{0xbwzy4dl87-0.js → 0y-bi_mp2rv4l.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{0cwft44dh9bww.js → 11zlh73ggln0w.js} +1 -1
  77. package/.next/standalone/CHANGELOG.md +5 -0
  78. package/.next/standalone/dist/cli.mjs +4 -8
  79. package/.next/standalone/docs/ar/built-in-policies.mdx +100 -129
  80. package/.next/standalone/docs/ar/cli/install-policies.mdx +10 -11
  81. package/.next/standalone/docs/ar/cli/remove-policies.mdx +10 -12
  82. package/.next/standalone/docs/built-in-policies.mdx +3 -30
  83. package/.next/standalone/docs/cli/install-policies.mdx +0 -1
  84. package/.next/standalone/docs/cli/remove-policies.mdx +0 -1
  85. package/.next/standalone/docs/de/built-in-policies.mdx +65 -92
  86. package/.next/standalone/docs/de/cli/install-policies.mdx +3 -4
  87. package/.next/standalone/docs/de/cli/remove-policies.mdx +3 -4
  88. package/.next/standalone/docs/docs.json +5 -0
  89. package/.next/standalone/docs/es/built-in-policies.mdx +66 -93
  90. package/.next/standalone/docs/es/cli/install-policies.mdx +4 -5
  91. package/.next/standalone/docs/es/cli/remove-policies.mdx +4 -5
  92. package/.next/standalone/docs/fr/built-in-policies.mdx +83 -110
  93. package/.next/standalone/docs/fr/cli/install-policies.mdx +11 -12
  94. package/.next/standalone/docs/fr/cli/remove-policies.mdx +2 -3
  95. package/.next/standalone/docs/he/built-in-policies.mdx +131 -160
  96. package/.next/standalone/docs/he/cli/install-policies.mdx +14 -15
  97. package/.next/standalone/docs/he/cli/remove-policies.mdx +13 -14
  98. package/.next/standalone/docs/hi/built-in-policies.mdx +168 -197
  99. package/.next/standalone/docs/hi/cli/install-policies.mdx +10 -11
  100. package/.next/standalone/docs/hi/cli/remove-policies.mdx +13 -14
  101. package/.next/standalone/docs/it/built-in-policies.mdx +83 -110
  102. package/.next/standalone/docs/it/cli/install-policies.mdx +12 -13
  103. package/.next/standalone/docs/it/cli/remove-policies.mdx +5 -6
  104. package/.next/standalone/docs/ja/built-in-policies.mdx +119 -146
  105. package/.next/standalone/docs/ja/cli/install-policies.mdx +12 -13
  106. package/.next/standalone/docs/ja/cli/remove-policies.mdx +8 -9
  107. package/.next/standalone/docs/ko/built-in-policies.mdx +80 -107
  108. package/.next/standalone/docs/ko/cli/install-policies.mdx +10 -11
  109. package/.next/standalone/docs/ko/cli/remove-policies.mdx +2 -3
  110. package/.next/standalone/docs/pt-br/built-in-policies.mdx +46 -73
  111. package/.next/standalone/docs/pt-br/cli/install-policies.mdx +5 -6
  112. package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +11 -12
  113. package/.next/standalone/docs/ru/built-in-policies.mdx +107 -132
  114. package/.next/standalone/docs/ru/cli/install-policies.mdx +10 -10
  115. package/.next/standalone/docs/ru/cli/remove-policies.mdx +13 -14
  116. package/.next/standalone/docs/tr/built-in-policies.mdx +106 -131
  117. package/.next/standalone/docs/tr/cli/install-policies.mdx +14 -15
  118. package/.next/standalone/docs/tr/cli/remove-policies.mdx +7 -8
  119. package/.next/standalone/docs/vi/built-in-policies.mdx +73 -100
  120. package/.next/standalone/docs/vi/cli/install-policies.mdx +17 -18
  121. package/.next/standalone/docs/vi/cli/remove-policies.mdx +11 -12
  122. package/.next/standalone/docs/zh/built-in-policies.mdx +77 -104
  123. package/.next/standalone/docs/zh/cli/install-policies.mdx +4 -5
  124. package/.next/standalone/docs/zh/cli/remove-policies.mdx +8 -9
  125. package/.next/standalone/package.json +1 -1
  126. package/.next/standalone/server.js +1 -1
  127. package/.next/standalone/src/hooks/builtin-policies.ts +0 -4
  128. package/dist/cli.mjs +4 -8
  129. package/package.json +1 -1
  130. package/src/hooks/builtin-policies.ts +0 -4
  131. package/.next/standalone/.next/static/chunks/0e2uz2g026ckb.js +0 -1
  132. /package/.next/standalone/.next/static/{En9eEShUkUjgeYbY9v6Gy → LayjxQulxIcNH19Lqgjbf}/_buildManifest.js +0 -0
  133. /package/.next/standalone/.next/static/{En9eEShUkUjgeYbY9v6Gy → LayjxQulxIcNH19Lqgjbf}/_clientMiddlewareManifest.js +0 -0
  134. /package/.next/standalone/.next/static/{En9eEShUkUjgeYbY9v6Gy → LayjxQulxIcNH19Lqgjbf}/_ssgManifest.js +0 -0
@@ -1,59 +1,59 @@
1
1
  ---
2
- title: बिल्ट-इन पॉलिसीज़
3
- description: "30 बिल्ट-इन पॉलिसीज़ जो एजेंट की आम विफलताओं को पकड़ते हैं"
2
+ title: Built-in Policies
3
+ description: "सभी 30 built-in policies जो agent failure modes को catch करते हैं"
4
4
  icon: shield
5
5
  ---
6
6
 
7
- failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ आता है जो एजेंट की आम विफलताओं को पकड़ते हैं। प्रत्येक पॉलिसी एक विशिष्ट हुक इवेंट प्रकार और टूल नाम पर फायर होती है। नौ पॉलिसीज़ पैरामीटर स्वीकार करती हैं जो आपको बिना कोड लिखे उनके व्यवहार को ट्यून करने देते हैं। चार बीटा वर्कफ़्लो पॉलिसीज़ Claude के रुकने से पहले एक commit → push → PR → CI पाइपलाइन को लागू करती हैं।
7
+ failproofai 30 built-in policies के साथ आता है जो common agent failure modes को catch करते हैं। प्रत्येक policy एक specific hook event type और tool name पर fire होती है। नौ policies parameters स्वीकार करती हैं जो आपको code लिखे बिना उनके behavior को tune करने देती हैं। चार workflow policies एक commit → push → PR → CI pipeline को enforce करती हैं जिसे Claude को stop करने से पहले पूरा करना होता है।
8
8
 
9
9
  ---
10
10
 
11
- ## अवलोकन
11
+ ## Overview
12
12
 
13
- पॉलिसीज़ को श्रेणियों में समूहीकृत किया गया है:
13
+ Policies को categories में grouped किया गया है:
14
14
 
15
- | श्रेणी | पॉलिसीज़ | हुक प्रकार |
15
+ | Category | Policies | Hook type |
16
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 |
17
+ | [Dangerous commands](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
+ | [Secrets (sanitizers)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
+ | [Environment](#environment) | block-env-files, protect-env-vars | PreToolUse |
20
+ | [File access](#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
- | [डेटाबेस](#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-beta) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
22
+ | [Database](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
+ | [Warnings](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
+ | [Workflow](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
25
25
 
26
- - **`block-`** — एजेंट को आगे बढ़ने से रोकता है।
27
- - **`warn-`** — एजेंट को अतिरिक्त संदर्भ देता है ताकि वह आत्म-सुधार कर सके।
28
- - **`sanitize-`** — एजेंट को देखने से पहले टूल आउटपुट से संवेदनशील डेटा को हटाता है।
29
- - **`require-`** — स्टॉप इवेंट को तब तक ब्लॉक करता है जब तक शर्तें पूरी न हों।
26
+ - **`block-`** — agent को proceed करने से रोकता है।
27
+ - **`warn-`** — agent को additional context देता है ताकि वह self-correct कर सके।
28
+ - **`sanitize-`** — tool output से sensitive data को scrub करता है इससे पहले कि agent को दिया जाए।
29
+ - **`require-`** — Stop event को block करता है जब तक conditions पूरी न हो जाएं।
30
30
 
31
31
  ---
32
32
 
33
33
  <Tip>
34
- प्रत्येक पॉलिसी `policyParams` में एक वैकल्पिक `hint` फ़ील्ड का समर्थन करती है। हिंट को deny या instruct संदेश में जोड़ा जाता है जो Claude देखता है, जिससे पॉलिसी कोड को संशोधित किए बिना कार्रवाई योग्य मार्गदर्शन मिलता है। बिल्ट-इन, कस्टम और कन्वेंशन पॉलिसीज़ के साथ काम करता है। विवरण के लिए [कॉन्फ़िगरेशन → hint](/hi/configuration#hint-cross-cutting) देखें।
34
+ हर policy `policyParams` में एक optional `hint` field को support करती है। Hint को deny या instruct message में append किया जाता है जो Claude देखता है, actionable guidance देते हुए बिना policy code को modify किए। Built-in, custom, और convention policies के साथ काम करता है। विस्तार के लिए [Configuration → hint](/hi/configuration#hint-cross-cutting) देखें।
35
35
  </Tip>
36
36
 
37
37
  ---
38
38
 
39
- ## खतरनाक कमांड्स
39
+ ## Dangerous commands
40
40
 
41
- एजेंट्स को ऐसी संचालन से रोकें जो पूर्ववत करना मुश्किल है या जो होस्ट सिस्टम को नुकसान पहुंचा सकते हैं।
41
+ Agents को उन operations से रोकें जो undo करने में मुश्किल हैं या host system को damage कर सकते हैं।
42
42
 
43
43
  ### `block-sudo`
44
44
 
45
- **इवेंट:** PreToolUse (Bash)
46
- **डिफ़ॉल्ट:** किसी भी `sudo` कमांड को अस्वीकार करता है।
45
+ **Event:** PreToolUse (Bash)
46
+ **Default:** किसी भी `sudo` command को deny करता है।
47
47
 
48
- `sudo` कीवर्ड शामिल करने वाले आह्वानों को ब्लॉक करता है। पैटर्न मिलान raw स्ट्रिंग पर नहीं, बल्कि पार्स की गई कमांड टोकन पर किया जाता है, ताकि शेल ऑपरेटर इंजेक्शन के माध्यम से बाईपास को रोका जा सके।
48
+ Invocations को block करता है जिनमें `sudo` keyword शामिल होता है। Pattern matching को shell operator injection के through bypass को रोकने के लिए raw string पर नहीं, parsed command tokens पर किया जाता है।
49
49
 
50
- **पैरामीटर्स:**
50
+ **Parameters:**
51
51
 
52
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
52
+ | Param | Type | Default | Description |
53
53
  |-------|------|---------|-------------|
54
- | `allowPatterns` | `string[]` | `[]` | सटीक कमांड प्रीफ़िक्स जो अनुमत हैं। प्रत्येक प्रविष्टि को पार्स किए गए argv टोकन के विरुद्ध मिलाया जाता है। |
54
+ | `allowPatterns` | `string[]` | `[]` | Exact command prefixes जो permitted हैं। प्रत्येक entry को parsed argv tokens के against match किया जाता है। |
55
55
 
56
- **उदाहरण:**
56
+ **Example:**
57
57
 
58
58
  ```json
59
59
  {
@@ -65,26 +65,26 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
65
65
  }
66
66
  ```
67
67
 
68
- इस कॉन्फ़िगरेशन के साथ, `sudo systemctl status nginx` की अनुमति है, लेकिन `sudo rm /etc/hosts` अस्वीकार किया जाता है।
68
+ इस config के साथ, `sudo systemctl status nginx` को allow किया जाता है, लेकिन `sudo rm /etc/hosts` को deny किया जाता है।
69
69
 
70
70
  <Note>
71
- पैटर्न्स को raw कमांड स्ट्रिंग के विरुद्ध नहीं, बल्कि पार्स किए गए टोकन के विरुद्ध मिलाया जाता है। यह जोड़े गए शेल ऑपरेटर्स (जैसे `sudo systemctl status x; rm -rf /` से बाईपास को रोकता है जो `sudo systemctl status *` से मेल नहीं खाता)।
71
+ Patterns को raw command string पर नहीं, parsed tokens के against match किया जाता है। यह appended shell operators के through bypass को रोकता है (उदाहरण के लिए `sudo systemctl status x; rm -rf /` को `sudo systemctl status *` से match नहीं किया जाता)।
72
72
  </Note>
73
73
 
74
74
  ---
75
75
 
76
76
  ### `block-rm-rf`
77
77
 
78
- **इवेंट:** PreToolUse (Bash)
79
- **डिफ़ॉल्ट:** `rm -rf`, `rm -fr` और समान रिकर्सिव डिलीशन फॉर्म्स को अस्वीकार करता है।
78
+ **Event:** PreToolUse (Bash)
79
+ **Default:** `rm -rf`, `rm -fr`, और similar recursive deletion forms को deny करता है।
80
80
 
81
- **पैरामीटर्स:**
81
+ **Parameters:**
82
82
 
83
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
83
+ | Param | Type | Default | Description |
84
84
  |-------|------|---------|-------------|
85
- | `allowPaths` | `string[]` | `[]` | पाथ जो रिकर्सिवली डिलीट करने के लिए सुरक्षित हैं (जैसे `/tmp`)। |
85
+ | `allowPaths` | `string[]` | `[]` | Paths जो recursively delete करने के लिए safe हैं (जैसे `/tmp`)। |
86
86
 
87
- **उदाहरण:**
87
+ **Example:**
88
88
 
89
89
  ```json
90
90
  {
@@ -100,55 +100,55 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
100
100
 
101
101
  ### `block-curl-pipe-sh`
102
102
 
103
- **इवेंट:** PreToolUse (Bash)
104
- **डिफ़ॉल्ट:** `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` और समान पैटर्न्स को अस्वीकार करता है।
103
+ **Event:** PreToolUse (Bash)
104
+ **Default:** `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash`, और similar patterns को deny करता है।
105
105
 
106
- कोई पैरामीटर नहीं।
106
+ कोई parameters नहीं।
107
107
 
108
108
  ---
109
109
 
110
110
  ### `block-failproofai-commands`
111
111
 
112
- **इवेंट:** PreToolUse (Bash)
113
- **डिफ़ॉल्ट:** कमांड्स को अस्वीकार करता है जो failproofai को अनइंस्टॉल या डिसेबल कर सकते हैं (जैसे `npm uninstall failproofai`, `failproofai policies --uninstall`)।
112
+ **Event:** PreToolUse (Bash)
113
+ **Default:** उन commands को deny करता है जो failproofai को uninstall या disable करेंगे (जैसे `npm uninstall failproofai`, `failproofai policies --uninstall`)।
114
114
 
115
- कोई पैरामीटर नहीं।
115
+ कोई parameters नहीं।
116
116
 
117
117
  ---
118
118
 
119
- ## सीक्रेट्स (सैनिटाइज़र्स)
119
+ ## Secrets (sanitizers)
120
120
 
121
- एजेंट्स को क्रेडेंशियल्स को अपने कंटेक्स्ट या आउटपुट में लीक करने से रोकें। सैनिटाइज़र पॉलिसीज़ **PostToolUse** इवेंट्स पर फायर होती हैं। जब Claude एक Bash कमांड चलाता है, एक फ़ाइल पढ़ता है, या कोई भी टूल कॉल करता है, तो ये पॉलिसीज़ आउटपुट को Claude को वापस किए जाने से पहले निरीक्षण करती हैं। यदि एक सीक्रेट पैटर्न पाया जाता है, तो पॉलिसी एक deny निर्णय लौटाती है जो आउटपुट को वापस पास होने से रोकता है।
121
+ Agents को अपने context या output में credentials leak करने से रोकें। Sanitizer policies **PostToolUse** events पर fire होती हैं। जब Claude एक Bash command run करता है, एक file read करता है, या कोई भी tool call करता है, ये policies output को inspect करती हैं इससे पहले कि वह Claude को return किया जाए। अगर secret pattern detect होता है, तो policy एक deny decision return करती है जो output को pass back होने से रोकता है।
122
122
 
123
123
  ### `sanitize-jwt`
124
124
 
125
- **इवेंट:** PostToolUse (सभी टूल्स)
126
- **डिफ़ॉल्ट:** JWT टोकन्स को छिपाता है (`.` से अलग किए गए तीन base64url सेगमेंट्स)।
125
+ **Event:** PostToolUse (सभी tools)
126
+ **Default:** JWT tokens को redact करता है (तीन base64url segments को `.` से separated)।
127
127
 
128
- कोई पैरामीटर नहीं।
128
+ कोई parameters नहीं।
129
129
 
130
130
  ---
131
131
 
132
132
  ### `sanitize-api-keys`
133
133
 
134
- **इवेंट:** PostToolUse (सभी टूल्स)
135
- **डिफ़ॉल्ट:** सामान्य API कुंजी फॉर्मेट्स को छिपाता है: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS एक्सेस कुंजियाँ (`AKIA`), Stripe कुंजियाँ (`sk_live_`, `sk_test_`), और Google API कुंजियाँ (`AIza`)।
134
+ **Event:** PostToolUse (सभी tools)
135
+ **Default:** Common API key formats को redact करता है: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS access keys (`AKIA`), Stripe keys (`sk_live_`, `sk_test_`), और Google API keys (`AIza`)।
136
136
 
137
- **पैरामीटर्स:**
137
+ **Parameters:**
138
138
 
139
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
139
+ | Param | Type | Default | Description |
140
140
  |-------|------|---------|-------------|
141
- | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | सीक्रेट्स के रूप में व्यवहार करने के लिए अतिरिक्त regex पैटर्न्स। |
141
+ | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Additional regex patterns को secrets मानने के लिए। |
142
142
 
143
- **उदाहरण:**
143
+ **Example:**
144
144
 
145
145
  ```json
146
146
  {
147
147
  "policyParams": {
148
148
  "sanitize-api-keys": {
149
149
  "additionalPatterns": [
150
- { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo आंतरिक API कुंजी" },
151
- { "regex": "pat_[0-9a-f]{40}", "label": "आंतरिक PAT" }
150
+ { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo internal API key" },
151
+ { "regex": "pat_[0-9a-f]{40}", "label": "Internal PAT" }
152
152
  ]
153
153
  }
154
154
  }
@@ -159,71 +159,71 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
159
159
 
160
160
  ### `sanitize-connection-strings`
161
161
 
162
- **इवेंट:** PostToolUse (सभी टूल्स)
163
- **डिफ़ॉल्ट:** डेटाबेस कनेक्शन स्ट्रिंग्स को छिपाता है जिनमें एम्बेडेड क्रेडेंशियल्स होते हैं (जैसे `postgresql://user:password@host/db`)।
162
+ **Event:** PostToolUse (सभी tools)
163
+ **Default:** Database connection strings को redact करता है जिनमें embedded credentials होते हैं (जैसे `postgresql://user:password@host/db`)।
164
164
 
165
- कोई पैरामीटर नहीं।
165
+ कोई parameters नहीं।
166
166
 
167
167
  ---
168
168
 
169
169
  ### `sanitize-private-key-content`
170
170
 
171
- **इवेंट:** PostToolUse (सभी टूल्स)
172
- **डिफ़ॉल्ट:** PEM ब्लॉक्स को छिपाता है (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, आदि)।
171
+ **Event:** PostToolUse (सभी tools)
172
+ **Default:** PEM blocks को redact करता है (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, आदि)।
173
173
 
174
- कोई पैरामीटर नहीं।
174
+ कोई parameters नहीं।
175
175
 
176
176
  ---
177
177
 
178
178
  ### `sanitize-bearer-tokens`
179
179
 
180
- **इवेंट:** PostToolUse (सभी टूल्स)
181
- **डिफ़ॉल्ट:** `Authorization: Bearer <token>` हेडर्स को छिपाता है जहाँ टोकन 20 या अधिक वर्णों का है।
180
+ **Event:** PostToolUse (सभी tools)
181
+ **Default:** `Authorization: Bearer <token>` headers को redact करता है जहां token 20 या उससे ज्यादा characters है।
182
182
 
183
- कोई पैरामीटर नहीं।
183
+ कोई parameters नहीं।
184
184
 
185
185
  ---
186
186
 
187
- ## एनवायरनमेंट
187
+ ## Environment
188
188
 
189
- संवेदनशील एनवायरनमेंट कॉन्फ़िगरेशन को एजेंट्स द्वारा पढ़े या उजागर होने से रक्षा करें।
189
+ Agents द्वारा sensitive environment configuration को read या expose किए जाने से बचाएं।
190
190
 
191
191
  ### `block-env-files`
192
192
 
193
- **इवेंट:** PreToolUse (Bash, Read)
194
- **डिफ़ॉल्ट:** `.env` फ़ाइलों को `cat .env` के माध्यम से, फ़ाइल पाथ के रूप में `.env` के साथ Read टूल कॉल्स आदि को पढ़ने से अस्वीकार करता है।
193
+ **Event:** PreToolUse (Bash, Read)
194
+ **Default:** `.env` files को read करने को deny करता है जैसे `cat .env`, `.env` को file path के रूप में `Read` tool calls, आदि।
195
195
 
196
- `.envrc` या अन्य एनवायरनमेंट-सन्निहित फ़ाइलों को ब्लॉक नहीं करता - केवल `.env` नाम की फ़ाइलों को।
196
+ `.envrc` या अन्य environment-adjacent files को block नहीं करता केवल exactly `.env` नाम की files।
197
197
 
198
- कोई पैरामीटर नहीं।
198
+ कोई parameters नहीं।
199
199
 
200
200
  ---
201
201
 
202
202
  ### `protect-env-vars`
203
203
 
204
- **इवेंट:** PreToolUse (Bash)
205
- **डिफ़ॉल्ट:** एनवायरनमेंट वेरिएबल्स को प्रिंट करने वाली कमांड्स को अस्वीकार करता है: `printenv`, `env`, `echo $VAR`।
204
+ **Event:** PreToolUse (Bash)
205
+ **Default:** उन commands को deny करता है जो environment variables को print करते हैं: `printenv`, `env`, `echo $VAR`।
206
206
 
207
- कोई पैरामीटर नहीं।
207
+ कोई parameters नहीं।
208
208
 
209
209
  ---
210
210
 
211
- ## फ़ाइल एक्सेस
211
+ ## File access
212
212
 
213
- एजेंट्स को प्रोजेक्ट बाउंड्रीज़ के अंदर काम करते रहें और संवेदनशील फ़ाइलों से दूर रखें।
213
+ Agents को project boundaries के अंदर काम करने और sensitive files से दूर रहने के लिए रखें।
214
214
 
215
215
  ### `block-read-outside-cwd`
216
216
 
217
- **इवेंट:** PreToolUse (Read, Bash)
218
- **डिफ़ॉल्ट:** करंट वर्किंग डायरेक्टरी (प्रोजेक्ट रूट) के बाहर फ़ाइलों को पढ़ने से अस्वीकार करता है।
217
+ **Event:** PreToolUse (Read, Bash)
218
+ **Default:** Current working directory (project root) के बाहर files को read करने को deny करता है।
219
219
 
220
- **पैरामीटर्स:**
220
+ **Parameters:**
221
221
 
222
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
222
+ | Param | Type | Default | Description |
223
223
  |-------|------|---------|-------------|
224
- | `allowPaths` | `string[]` | `[]` | निरपेक्ष पाथ प्रीफ़िक्स जो अनुमत हैं भले ही cwd के बाहर हों। |
224
+ | `allowPaths` | `string[]` | `[]` | Absolute path prefixes जो permitted हैं भले ही cwd के बाहर हों। |
225
225
 
226
- **उदाहरण:**
226
+ **Example:**
227
227
 
228
228
  ```json
229
229
  {
@@ -239,16 +239,16 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
239
239
 
240
240
  ### `block-secrets-write`
241
241
 
242
- **इवेंट:** PreToolUse (Write, Edit)
243
- **डिफ़ॉल्ट:** प्राइवेट कुंजियों और सर्टिफिकेट्स के लिए आमतौर पर उपयोग की जाने वाली फ़ाइलों को लिखने से अस्वीकार करता है: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`।
242
+ **Event:** PreToolUse (Write, Edit)
243
+ **Default:** Private keys और certificates के लिए commonly used files में writes को deny करता है: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`।
244
244
 
245
- **पैरामीटर्स:**
245
+ **Parameters:**
246
246
 
247
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
247
+ | Param | Type | Default | Description |
248
248
  |-------|------|---------|-------------|
249
- | `additionalPatterns` | `string[]` | `[]` | अतिरिक्त फ़ाइलनाम पैटर्न्स (glob-style) को ब्लॉक करने के लिए। |
249
+ | `additionalPatterns` | `string[]` | `[]` | Additional filename patterns (glob-style) को block करने के लिए। |
250
250
 
251
- **उदाहरण:**
251
+ **Example:**
252
252
 
253
253
  ```json
254
254
  {
@@ -264,20 +264,20 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
264
264
 
265
265
  ## Git
266
266
 
267
- आकस्मिक पुश, फ़ोर्स-पुश और ब्रांच गलतियों को रोकें जो पूर्ववत करना मुश्किल है।
267
+ Accidental pushes, force-pushes, और branch mistakes को रोकें जो undo करने में मुश्किल हैं।
268
268
 
269
269
  ### `block-push-master`
270
270
 
271
- **इवेंट:** PreToolUse (Bash)
272
- **डिफ़ॉल्ट:** `git push origin main` और `git push origin master` को अस्वीकार करता है।
271
+ **Event:** PreToolUse (Bash)
272
+ **Default:** `git push origin main` और `git push origin master` को deny करता है।
273
273
 
274
- **पैरामीटर्स:**
274
+ **Parameters:**
275
275
 
276
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
276
+ | Param | Type | Default | Description |
277
277
  |-------|------|---------|-------------|
278
- | `protectedBranches` | `string[]` | `["main", "master"]` | ब्रांच नाम जो सीधे पुश नहीं किए जा सकते। |
278
+ | `protectedBranches` | `string[]` | `["main", "master"]` | Branch names जिन्हें directly push नहीं किया जा सकता। |
279
279
 
280
- **उदाहरण:**
280
+ **Example:**
281
281
 
282
282
  ```json
283
283
  {
@@ -290,36 +290,36 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
290
290
  ```
291
291
 
292
292
  <Tip>
293
- सभी ब्रांच्स को पुश करने की अनुमति देने के लिए (प्रभावी रूप से इस पॉलिसी को `enabledPolicies` से हटाए बिना अक्षम करें), `protectedBranches: []` सेट करें।
293
+ सभी branches में push करने की allow करने के लिए (effectively इस policy को `enabledPolicies` से remove किए बिना disable करने के लिए), `protectedBranches: []` set करें।
294
294
  </Tip>
295
295
 
296
296
  ---
297
297
 
298
298
  ### `block-work-on-main`
299
299
 
300
- **इवेंट:** PreToolUse (Bash)
301
- **डिफ़ॉल्ट:** `main` या `master` ब्रांच्स को सीधे चेक आउट करने से अस्वीकार करता है।
300
+ **Event:** PreToolUse (Bash)
301
+ **Default:** `main` या `master` branches को directly checkout करने को deny करता है।
302
302
 
303
- **पैरामीटर्स:**
303
+ **Parameters:**
304
304
 
305
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
305
+ | Param | Type | Default | Description |
306
306
  |-------|------|---------|-------------|
307
- | `protectedBranches` | `string[]` | `["main", "master"]` | ब्रांच नाम जो सीधे चेक आउट नहीं किए जा सकते। |
307
+ | `protectedBranches` | `string[]` | `["main", "master"]` | Branch names जिन्हें directly checkout नहीं किया जा सकता। |
308
308
 
309
309
  ---
310
310
 
311
311
  ### `block-force-push`
312
312
 
313
- **इवेंट:** PreToolUse (Bash)
314
- **डिफ़ॉल्ट:** `git push --force` और `git push -f` को अस्वीकार करता है।
313
+ **Event:** PreToolUse (Bash)
314
+ **Default:** `git push --force` और `git push -f` को deny करता है।
315
315
 
316
- कोई पॉलिसी-विशिष्ट पैरामीटर नहीं। क्रॉस-कटिंग [`hint`](/hi/configuration#hint-cross-cutting) का उपयोग करके विकल्प सुझाएँ:
316
+ कोई policy-specific parameters नहीं। Cross-cutting [`hint`](/hi/configuration#hint-cross-cutting) का उपयोग करके alternatives suggest करें:
317
317
 
318
318
  ```json
319
319
  {
320
320
  "policyParams": {
321
321
  "block-force-push": {
322
- "hint": "अपने वर्तमान HEAD से एक नई ब्रांच बनाएँ (जैसे `git checkout -b <new-branch>`) और उसके बजाय उसे पुश करें।"
322
+ "hint": "अपने current HEAD से एक नई branch बनाएं (जैसे `git checkout -b <new-branch>`) और इसके बजाय उसे push करें।"
323
323
  }
324
324
  }
325
325
  }
@@ -329,69 +329,69 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
329
329
 
330
330
  ### `warn-git-amend`
331
331
 
332
- **इवेंट:** PreToolUse (Bash)
333
- **डिफ़ॉल्ट:** Claude को `git commit --amend` चलाते समय सावधानी से आगे बढ़ने का निर्देश देता है। कमांड को ब्लॉक नहीं करता।
332
+ **Event:** PreToolUse (Bash)
333
+ **Default:** Claude को carefully proceed करने के लिए instruct करता है जब `git commit --amend` run करता है। Command को block नहीं करता।
334
334
 
335
- कोई पैरामीटर नहीं।
335
+ कोई parameters नहीं।
336
336
 
337
337
  ---
338
338
 
339
339
  ### `warn-git-stash-drop`
340
340
 
341
- **इवेंट:** PreToolUse (Bash)
342
- **डिफ़ॉल्ट:** Claude को `git stash drop` चलाने से पहले पुष्टि करने के लिए निर्देश देता है। कमांड को ब्लॉक नहीं करता।
341
+ **Event:** PreToolUse (Bash)
342
+ **Default:** Claude को confirm करने के लिए instruct करता है `git stash drop` run करने से पहले। Command को block नहीं करता।
343
343
 
344
- कोई पैरामीटर नहीं।
344
+ कोई parameters नहीं।
345
345
 
346
346
  ---
347
347
 
348
348
  ### `warn-all-files-staged`
349
349
 
350
- **इवेंट:** PreToolUse (Bash)
351
- **डिफ़ॉल्ट:** Claude को `git add -A` या `git add .` चलाते समय देखने के लिए क्या स्टेज कर रहा है इसकी समीक्षा करने का निर्देश देता है। कमांड को ब्लॉक नहीं करता।
350
+ **Event:** PreToolUse (Bash)
351
+ **Default:** Claude को review करने के लिए instruct करता है कि वह क्या stage कर रहा है जब `git add -A` या `git add .` run करता है। Command को block नहीं करता।
352
352
 
353
- कोई पैरामीटर नहीं।
353
+ कोई parameters नहीं।
354
354
 
355
355
  ---
356
356
 
357
- ## डेटाबेस
357
+ ## Database
358
358
 
359
- विनाशकारी SQL ऑपरेशन्स को आपके डेटाबेस के विरुद्ध निष्पादित होने से पहले पकड़ें।
359
+ Destructive SQL operations को execute होने से पहले catch करें आपके database के against।
360
360
 
361
361
  ### `warn-destructive-sql`
362
362
 
363
- **इवेंट:** PreToolUse (Bash)
364
- **डिफ़ॉल्ट:** Claude को `DROP TABLE`, `DROP DATABASE`, या `WHERE` क्लॉज के बिना `DELETE` युक्त SQL चलाने से पहले पुष्टि करने का निर्देश देता है।
363
+ **Event:** PreToolUse (Bash)
364
+ **Default:** Claude को confirm करने के लिए instruct करता है `DROP TABLE`, `DROP DATABASE`, या `DELETE` (बिना `WHERE` clause के) containing SQL run करने से पहले।
365
365
 
366
- कोई पैरामीटर नहीं।
366
+ कोई parameters नहीं।
367
367
 
368
368
  ---
369
369
 
370
370
  ### `warn-schema-alteration`
371
371
 
372
- **इवेंट:** PreToolUse (Bash)
373
- **डिफ़ॉल्ट:** Claude को `ALTER TABLE` स्टेटमेंट्स चलाने से पहले पुष्टि करने का निर्देश देता है।
372
+ **Event:** PreToolUse (Bash)
373
+ **Default:** Claude को confirm करने के लिए instruct करता है `ALTER TABLE` statements run करने से पहले।
374
374
 
375
- कोई पैरामीटर नहीं।
375
+ कोई parameters नहीं।
376
376
 
377
377
  ---
378
378
 
379
- ## चेतावनियाँ
379
+ ## Warnings
380
380
 
381
- एजेंट्स को संभावित रूप से जोखिम भरी लेकिन गैर-विनाशकारी ऑपरेशन्स से पहले अतिरिक्त संदर्भ दें।
381
+ Agents को potentially risky लेकिन non-destructive operations से पहले extra context दें।
382
382
 
383
383
  ### `warn-large-file-write`
384
384
 
385
- **इवेंट:** PreToolUse (Write)
386
- **डिफ़ॉल्ट:** Claude को 1024 KB से बड़ी फ़ाइलें लिखने से पहले पुष्टि करने का निर्देश देता है।
385
+ **Event:** PreToolUse (Write)
386
+ **Default:** Claude को confirm करने के लिए instruct करता है 1024 KB से बड़ी files write करने से पहले।
387
387
 
388
- **पैरामीटर्स:**
388
+ **Parameters:**
389
389
 
390
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
390
+ | Param | Type | Default | Description |
391
391
  |-------|------|---------|-------------|
392
- | `thresholdKb` | `number` | `1024` | फ़ाइल आकार थ्रेशोल्ड किलोबाइट्स में जिसके ऊपर चेतावनी जारी की जाती है। |
392
+ | `thresholdKb` | `number` | `1024` | File size threshold kilobytes में जिसके ऊपर warning issue की जाती है। |
393
393
 
394
- **उदाहरण:**
394
+ **Example:**
395
395
 
396
396
  ```json
397
397
  {
@@ -404,78 +404,78 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
404
404
  ```
405
405
 
406
406
  <Note>
407
- हुक हैंडलर पेलोड्स पर 1 MB stdin लिमिट लागू करता है। छोटी कंटेंट के साथ इस पॉलिसी को परीक्षण करने के लिए, `thresholdKb` को 1024 से अच्छी तरह नीचे एक मान पर सेट करें।
407
+ Hook handler payloads पर 1 MB stdin limit को enforce करता है। इस policy को small content के साथ test करने के लिए, `thresholdKb` को 1024 से well below value पर set करें।
408
408
  </Note>
409
409
 
410
410
  ---
411
411
 
412
412
  ### `warn-package-publish`
413
413
 
414
- **इवेंट:** PreToolUse (Bash)
415
- **डिफ़ॉल्ट:** Claude को `npm publish` चलाने से पहले पुष्टि करने का निर्देश देता है।
414
+ **Event:** PreToolUse (Bash)
415
+ **Default:** Claude को confirm करने के लिए instruct करता है `npm publish` run करने से पहले।
416
416
 
417
- कोई पैरामीटर नहीं।
417
+ कोई parameters नहीं।
418
418
 
419
419
  ---
420
420
 
421
421
  ### `warn-background-process`
422
422
 
423
- **इवेंट:** PreToolUse (Bash)
424
- **डिफ़ॉल्ट:** Claude को `nohup`, `&`, `disown`, या `screen` के माध्यम से बैकग्राउंड प्रक्रिया शुरू करते समय सावधान रहने का निर्देश देता है।
423
+ **Event:** PreToolUse (Bash)
424
+ **Default:** Claude को careful रहने के लिए instruct करता है जब `nohup`, `&`, `disown`, या `screen` के through background processes launch करते हैं।
425
425
 
426
- कोई पैरामीटर नहीं।
426
+ कोई parameters नहीं।
427
427
 
428
428
  ---
429
429
 
430
430
  ### `warn-global-package-install`
431
431
 
432
- **इवेंट:** PreToolUse (Bash)
433
- **डिफ़ॉल्ट:** Claude को `npm install -g`, `yarn global add`, या `pip install` (बिना वर्चुअल एनवायरनमेंट के) चलाने से पहले पुष्टि करने का निर्देश देता है।
432
+ **Event:** PreToolUse (Bash)
433
+ **Default:** Claude को confirm करने के लिए instruct करता है `npm install -g`, `yarn global add`, या `pip install` (virtual environment के बिना) run करने से पहले।
434
434
 
435
- कोई पैरामीटर नहीं।
435
+ कोई parameters नहीं।
436
436
 
437
437
  ---
438
438
 
439
- ## AI व्यवहार
439
+ ## AI behavior
440
440
 
441
- पता लगाएँ कि कब एजेंट्स फँस जाते हैं या अप्रत्याशित रूप से व्यवहार करते हैं।
441
+ Detect करें जब agents stuck हो जाएं या unexpectedly behave करें।
442
442
 
443
443
  ### `warn-repeated-tool-calls`
444
444
 
445
- **इवेंट:** PreToolUse (सभी टूल्स)
446
- **डिफ़ॉल्ट:** Claude को पुनः विचार करने का निर्देश देता है जब समान टूल को समान पैरामीटर्स के साथ 3+ बार कॉल किया जाता है - एक सामान्य संकेत जो एजेंट एक लूप में फँसा है।
445
+ **Event:** PreToolUse (सभी tools)
446
+ **Default:** Claude को reconsider करने के लिए instruct करता है जब same tool को 3+ times identical parameters के साथ call किया जाता है एक common sign कि agent loop में stuck है।
447
447
 
448
- कोई पैरामीटर नहीं।
448
+ कोई parameters नहीं।
449
449
 
450
450
  ---
451
451
 
452
- ## वर्कफ़्लो (बीटा)
452
+ ## Workflow
453
453
 
454
- एक अनुशासित सेशन-अंत वर्कफ़्लो को लागू करें। ये पॉलिसीज़ **Stop** इवेंट पर फायर होती हैं और Claude को तब तक रुकने से अस्वीकार करती हैं जब तक प्रत्येक शर्त पूरी न हो। वे एक प्राकृतिक निर्भरता श्रृंखला का पालन करते हैं: commit → push → PR → CI। यदि कोई पॉलिसी अस्वीकार करती है, तो श्रृंखला में बाद की पॉलिसीज़ छोड़ दी जाती हैं (deny शॉर्ट-सर्किट करता है)।
454
+ एक disciplined end-of-session workflow को enforce करें। ये policies **Stop** event पर fire होती हैं और Claude को stop करने को deny करती हैं जब तक कि प्रत्येक condition पूरी न हो जाए। वे एक natural dependency chain follow करते हैं: commit → push → PR → CI। अगर एक policy deny करती है, तो chain में later policies को skip किया जाता है (deny short-circuits)।
455
455
 
456
- सभी वर्कफ़्लो पॉलिसीज़ **fail-open** हैं: यदि आवश्यक टूल उपलब्ध नहीं है (जैसे `gh` इंस्टॉल नहीं है, कोई git रिमोट नहीं), तो पॉलिसी एक सूचनात्मक संदेश के साथ अनुमति देती है जो बताता है कि जाँच को क्यों छोड़ा गया।
456
+ सभी workflow policies **fail-open** हैं: अगर required tool available नहीं है (जैसे `gh` installed नहीं, no git remote), policy एक informational message के साथ allow करती है जो explain करता है कि check को क्यों skip किया गया।
457
457
 
458
458
  ### `require-commit-before-stop`
459
459
 
460
- **इवेंट:** Stop
461
- **डिफ़ॉल्ट:** असंबद्ध परिवर्तन (संशोधित, स्टेज किए गए, या ट्रैक न किए गए फ़ाइलें) होने पर रुकने से अस्वीकार करता है। वर्किंग डायरेक्टरी साफ होने पर एक सूचनात्मक संदेश लौटाता है।
460
+ **Event:** Stop
461
+ **Default:** Uncommitted changes (modified, staged, या untracked files) होने पर stopping को deny करता है। Working directory clean होने पर informational message return करता है।
462
462
 
463
- कोई पैरामीटर नहीं।
463
+ कोई parameters नहीं।
464
464
 
465
465
  ---
466
466
 
467
467
  ### `require-push-before-stop`
468
468
 
469
- **इवेंट:** Stop
470
- **डिफ़ॉल्ट:** अपुष्ट कमिट्स होने या करंट ब्रांच के पास कोई रिमोट ट्रैकिंग ब्रांच होने पर रुकने से अस्वीकार करता है। यदि आवश्यक हो तो ट्रैकिंग ब्रांच बनाने के लिए `git push -u` का सुझाव देता है। यदि कोई रिमोट कॉन्फ़िगर नहीं है तो fail open करता है।
469
+ **Event:** Stop
470
+ **Default:** Unpushed commits होने पर या जब current branch के पास no remote tracking branch हो तो stopping को deny करता है। अगर जरूरत पड़े तो tracking branch बनाने के लिए `git push -u` suggest करता है। अगर no remote configured है तो fail open होता है।
471
471
 
472
- **पैरामीटर्स:**
472
+ **Parameters:**
473
473
 
474
- | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
474
+ | Param | Type | Default | Description |
475
475
  |-------|------|---------|-------------|
476
- | `remote` | `string` | `"origin"` | पुश करने के लिए रिमोट नाम। |
476
+ | `remote` | `string` | `"origin"` | Remote name जिसे push करना है। |
477
477
 
478
- **उदाहरण:**
478
+ **Example:**
479
479
 
480
480
  ```json
481
481
  {
@@ -491,66 +491,37 @@ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ
491
491
 
492
492
  ### `require-pr-before-stop`
493
493
 
494
- **इवेंट:** Stop
495
- **डिफ़ॉल्ट:** करंट ब्रांच के लिए कोई pull request मौजूदहोने पर, या मौजूदा PR के बंद/मर्ज होने पर रुकने से अस्वीकार करता है। Claude को `gh pr create` के साथ PR बनाने का निर्देश देता है।
494
+ **Event:** Stop
495
+ **Default:** जब current branch के लिए कोई pull request existहो, या जब existing PR closed/merged हो तो stopping को deny करता है। Claude को `gh pr create` के साथ PR बनाने के लिए instruct करता है।
496
496
 
497
- कोई पैरामीटर नहीं।
497
+ कोई parameters नहीं।
498
498
 
499
499
  <Note>
500
- इस पॉलिसी के लिए [GitHub CLI](https://cli.github.com/) (`gh`) को इंस्टॉल और प्रमाणित किया जाना आवश्यक है।
501
- pull requests के लिए रीड एक्सेस के साथ `repo` स्कोप वाले व्यक्तिगत एक्सेस टोकन के साथ `gh auth login` चलाएँ।
502
- यदि `gh` इंस्टॉल नहीं है या प्रमाणित नहीं है, तो पॉलिसी fail open करती है और Claude को कारण की रिपोर्ट करती है।
500
+ इस policy को [GitHub CLI](https://cli.github.com/) (`gh`) को installed और authenticated होना आवश्यक है।
501
+ `gh auth login` को एक personal access token के साथ run करें जिसके पास `repo` scope हो pull requests के लिए read access के लिए। अगर `gh` installed नहीं है या authenticated नहीं है, तो policy fail open होती है और reason को Claude को report करती है।
503
502
  </Note>
504
503
 
505
504
  ---
506
505
 
507
506
  ### `require-ci-green-before-stop`
508
507
 
509
- **इवेंट:** Stop
510
- **डिफ़ॉल्ट:** CI चेक्स करंट ब्रांच पर विफल हो रहे हों या अभी भी चल रहे हों तो रुकने से अस्वीकार करता है। GitHub Actions वर्कफ़्लो रन्स और थर्ड-पार्टी बॉट चेक्स (जैसे CodeRabbit, SonarCloud, Codecov) दोनों को चेक करता है। `skipped` निष्कर्ष को सफलता के रूप में मानता है। जब सभी चेक्स पास हों तो एक सूचनात्मक संदेश लौटाता है।
508
+ **Event:** Stop
509
+ **Default:** जब CI checks current branch पर failing या still running हों तो stopping को deny करता है। GitHub Actions workflow runs और third-party bot checks (जैसे CodeRabbit, SonarCloud, Codecov) दोनों को check करता है। `skipped` conclusions को success मानता है। सभी checks pass होने पर informational message return करता है।
511
510
 
512
- कोई पैरामीटर नहीं।
511
+ कोई parameters नहीं।
513
512
 
514
513
  <Note>
515
- इस पॉलिसी के लिए [GitHub CLI](https://cli.github.com/) (`gh`) को इंस्टॉल और प्रमाणित किया जाना आवश्यक है।
516
- Actions वर्कफ़्लो रन्स और Checks API के लिए रीड एक्सेस के साथ `repo` स्कोप वाले व्यक्तिगत एक्सेस टोकन के साथ `gh auth login` चलाएँ।
517
- यदि `gh` इंस्टॉल नहीं है या प्रमाणित नहीं है, तो पॉलिसी fail open करती है और Claude को कारण की रिपोर्ट करती है।
514
+ इस policy को [GitHub CLI](https://cli.github.com/) (`gh`) को installed और authenticated होना आवश्यक है।
515
+ `gh auth login` को एक personal access token के साथ run करें जिसके पास `repo` scope हो Actions workflow runs और Checks API के लिए read access के लिए। अगर `gh` installed नहीं है या authenticated नहीं है, तो policy fail open होती है और reason को Claude को report करती है।
518
516
  </Note>
519
517
 
520
518
  ---
521
519
 
522
- ## बीटा पॉलिसीज़
523
-
524
- कुछ पॉलिसीज़ को `beta` के रूप में चिह्नित किया गया है और डिफ़ॉल्ट रूप से इंस्टॉल नहीं हैं। बीटा पॉलिसीज़ में मोटे किनारे या झूठे पॉज़िटिव हो सकते हैं। वे भविष्य की रिलीज़ में स्थिर में स्नातक होते हैं।
525
-
526
- **वर्तमान बीटा पॉलिसीज़:**
527
-
528
- - `require-commit-before-stop` — रुकने से पहले सभी परिवर्तन कमिट करें
529
- - `require-push-before-stop` — सभी कमिट्स को रिमोट में पुश करें
530
- - `require-pr-before-stop` — ब्रांच के लिए PR मौजूद होना सुनिश्चित करें
531
- - `require-ci-green-before-stop` — सभी CI चेक्स पास होने चाहिए
532
-
533
- साथ में, ये एक **commit → push → PR → CI** वर्कफ़्लो को लागू करते हैं।
534
-
535
- सभी बीटा पॉलिसीज़ इंस्टॉल करने के लिए:
536
-
537
- ```bash
538
- failproofai policies --install --beta
539
- ```
540
-
541
- या विशिष्ट वर्कफ़्लो पॉलिसीज़ इंस्टॉल करें:
542
-
543
- ```bash
544
- failproofai policies --install require-commit-before-stop require-push-before-stop require-pr-before-stop require-ci-green-before-stop
545
- ```
546
-
547
- कौन सी पॉलिसीज़ बीटा फ़्लैग ले जाती हैं यह देखने के लिए `failproofai policies` चलाएँ।
548
-
549
520
  ---
550
521
 
551
- ## व्यक्तिगत पॉलिसीज़ को अक्षम करना
522
+ ## Individual policies को disable करना
552
523
 
553
- अपने कॉन्फ़िगरेशन में `enabledPolicies` से एक विशिष्ट पॉलिसी को हटाएँ, या डैशबोर्ड के Policies टैब में इसे बंद करें।
524
+ अपने config में `enabledPolicies` से एक specific policy को remove करें, या dashboard के Policies tab में इसे toggle off करें।
554
525
 
555
526
  ```json
556
527
  {
@@ -561,4 +532,4 @@ failproofai policies --install require-commit-before-stop require-push-before-st
561
532
  }
562
533
  ```
563
534
 
564
- `enabledPolicies` में सूचीबद्ध नहीं की गई पॉलिसीज़ नहीं चलती हैं, भले ही उनके लिए `policyParams` प्रविष्टियाँ मौजूद हों।
535
+ Policies जो `enabledPolicies` में listed नहीं हैं, run नहीं होती हैं, भले ही उनके लिए `policyParams` entries exist करें।