failproofai 0.0.6-beta.1 → 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 (160) 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]__0~kmh8w._.js → [root-of-the-server]__05akje6._.js} +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.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]__0i5kvry._.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/{08t08igdql9yt.js → 00j0rr7rh8ef8.js} +1 -1
  71. package/.next/standalone/.next/static/chunks/{12~yi9oj8av8p.js → 05j1px0r8yzh6.js} +2 -2
  72. package/.next/standalone/.next/static/chunks/{09_k80d~cq2wg.js → 0badv41uxa56..js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{0wlyoif4_kj_t.js → 0ijk_kek9_wyx.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{0bvhsa6zva2o..js → 0ksdlt_1hucdm.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{03rz6ykw-a2xi.js → 0npb~873.wvg3.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{01b~z8f1ws0rk.js → 0xpl.oscrakvx.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{0gbf4cphy8ksq.js → 1052sguyd-.ka.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0v.yd0kg_ld3r.js → 14cl9poem30dq.js} +1 -1
  79. package/.next/standalone/CHANGELOG.md +11 -0
  80. package/.next/standalone/dist/cli.mjs +3 -3
  81. package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
  82. package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
  83. package/.next/standalone/docs/ar/examples.mdx +86 -33
  84. package/.next/standalone/docs/ar/getting-started.mdx +82 -29
  85. package/.next/standalone/docs/built-in-policies.mdx +1 -1
  86. package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
  87. package/.next/standalone/docs/de/custom-policies.mdx +56 -56
  88. package/.next/standalone/docs/de/examples.mdx +72 -18
  89. package/.next/standalone/docs/de/getting-started.mdx +72 -20
  90. package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
  91. package/.next/standalone/docs/es/custom-policies.mdx +55 -55
  92. package/.next/standalone/docs/es/examples.mdx +73 -19
  93. package/.next/standalone/docs/es/getting-started.mdx +72 -20
  94. package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
  95. package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
  96. package/.next/standalone/docs/fr/examples.mdx +78 -24
  97. package/.next/standalone/docs/fr/getting-started.mdx +65 -13
  98. package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
  99. package/.next/standalone/docs/he/custom-policies.mdx +75 -75
  100. package/.next/standalone/docs/he/examples.mdx +87 -33
  101. package/.next/standalone/docs/he/getting-started.mdx +84 -33
  102. package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
  103. package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
  104. package/.next/standalone/docs/hi/examples.mdx +90 -36
  105. package/.next/standalone/docs/hi/getting-started.mdx +80 -27
  106. package/.next/standalone/docs/i18n/README.ar.md +69 -69
  107. package/.next/standalone/docs/i18n/README.de.md +46 -46
  108. package/.next/standalone/docs/i18n/README.es.md +42 -42
  109. package/.next/standalone/docs/i18n/README.fr.md +39 -39
  110. package/.next/standalone/docs/i18n/README.he.md +83 -83
  111. package/.next/standalone/docs/i18n/README.hi.md +69 -69
  112. package/.next/standalone/docs/i18n/README.it.md +72 -72
  113. package/.next/standalone/docs/i18n/README.ja.md +71 -71
  114. package/.next/standalone/docs/i18n/README.ko.md +52 -52
  115. package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
  116. package/.next/standalone/docs/i18n/README.ru.md +66 -66
  117. package/.next/standalone/docs/i18n/README.tr.md +82 -83
  118. package/.next/standalone/docs/i18n/README.vi.md +70 -71
  119. package/.next/standalone/docs/i18n/README.zh.md +51 -51
  120. package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
  121. package/.next/standalone/docs/it/custom-policies.mdx +69 -69
  122. package/.next/standalone/docs/it/examples.mdx +93 -39
  123. package/.next/standalone/docs/it/getting-started.mdx +73 -21
  124. package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
  125. package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
  126. package/.next/standalone/docs/ja/examples.mdx +76 -22
  127. package/.next/standalone/docs/ja/getting-started.mdx +65 -13
  128. package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
  129. package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
  130. package/.next/standalone/docs/ko/examples.mdx +87 -33
  131. package/.next/standalone/docs/ko/getting-started.mdx +61 -9
  132. package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
  133. package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
  134. package/.next/standalone/docs/pt-br/examples.mdx +78 -24
  135. package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
  136. package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
  137. package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
  138. package/.next/standalone/docs/ru/examples.mdx +77 -22
  139. package/.next/standalone/docs/ru/getting-started.mdx +74 -22
  140. package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
  141. package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
  142. package/.next/standalone/docs/tr/examples.mdx +97 -42
  143. package/.next/standalone/docs/tr/getting-started.mdx +75 -23
  144. package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
  145. package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
  146. package/.next/standalone/docs/vi/examples.mdx +93 -38
  147. package/.next/standalone/docs/vi/getting-started.mdx +74 -22
  148. package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
  149. package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
  150. package/.next/standalone/docs/zh/examples.mdx +90 -36
  151. package/.next/standalone/docs/zh/getting-started.mdx +73 -21
  152. package/.next/standalone/package.json +1 -1
  153. package/.next/standalone/server.js +1 -1
  154. package/.next/standalone/src/hooks/builtin-policies.ts +5 -1
  155. package/dist/cli.mjs +3 -3
  156. package/package.json +1 -1
  157. package/src/hooks/builtin-policies.ts +5 -1
  158. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
  159. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
  160. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_ssgManifest.js +0 -0
@@ -4,7 +4,7 @@ description: "Les 30 politiques intégrées qui détectent les modes de défaill
4
4
  icon: shield
5
5
  ---
6
6
 
7
- failproofai est livré avec 30 politiques intégrées qui détectent les modes de défaillance courants des agents. Chaque politique se déclenche sur un type d'événement de hook et un nom d'outil spécifiques. Neuf politiques acceptent des paramètres permettant d'ajuster leur comportement sans écrire de code. Quatre politiques de workflow imposent un pipeline commit → push → PR → CI avant que Claude ne s'arrête.
7
+ failproofai est livré avec 30 politiques intégrées qui détectent les modes de défaillance courants des agents. Chaque politique se déclenche sur un type d'événement hook spécifique et un nom d'outil. Neuf politiques acceptent des paramètres permettant d'ajuster leur comportement sans écrire de code. Quatre politiques de workflow imposent un pipeline commit → push → PR → CI avant que Claude ne s'arrête.
8
8
 
9
9
  ---
10
10
 
@@ -15,23 +15,24 @@ Les politiques sont regroupées par catégories :
15
15
  | Catégorie | Politiques | Type de hook |
16
16
  |----------|----------|-----------|
17
17
  | [Commandes dangereuses](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
- | [Secrets (nettoyeurs)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
18
+ | [Secrets (sanitizers)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
19
  | [Environnement](#environment) | block-env-files, protect-env-vars | PreToolUse |
20
20
  | [Accès aux fichiers](#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
  | [Base de données](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
23
  | [Avertissements](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
+ | [Gestionnaires de paquets](#package-managers) | prefer-package-manager | PreToolUse |
24
25
  | [Workflow](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
25
26
 
26
27
  - **`block-`** — empêche l'agent de continuer.
27
28
  - **`warn-`** — fournit à l'agent un contexte supplémentaire pour qu'il puisse se corriger.
28
- - **`sanitize-`** — supprime les données sensibles de la sortie d'outil avant que l'agent ne les consulte.
29
+ - **`sanitize-`** — nettoie les données sensibles dans la sortie d'un outil avant que l'agent ne les voie.
29
30
  - **`require-`** — bloque l'événement Stop jusqu'à ce que les conditions soient remplies.
30
31
 
31
32
  ---
32
33
 
33
34
  <Tip>
34
- Toutes les politiques prennent en charge un champ optionnel `hint` dans `policyParams`. Ce hint est ajouté au message deny ou instruct que Claude reçoit, offrant des conseils concrets sans modifier le code de la politique. Compatible avec les politiques intégrées, personnalisées et de convention. Voir [Configuration → hint](/fr/configuration#hint-cross-cutting) pour plus de détails.
35
+ Toutes les politiques supportent un champ `hint` optionnel dans `policyParams`. Ce hint est ajouté au message deny ou instruct que Claude reçoit, fournissant des conseils concrets sans modifier le code de la politique. Fonctionne avec les politiques intégrées, personnalisées et de convention. Voir [Configuration → hint](/fr/configuration#hint-cross-cutting) pour plus de détails.
35
36
  </Tip>
36
37
 
37
38
  ---
@@ -45,11 +46,11 @@ Empêche les agents d'exécuter des opérations difficiles à annuler ou suscept
45
46
  **Événement :** PreToolUse (Bash)
46
47
  **Par défaut :** Refuse toute commande `sudo`.
47
48
 
48
- Bloque les invocations qui contiennent le mot-clé `sudo`. La correspondance de motifs est effectuée sur les tokens de commande analysés, et non sur la chaîne brute, afin d'éviter les contournements via l'injection d'opérateurs shell.
49
+ Bloque les invocations contenant le mot-clé `sudo`. La correspondance de motifs est effectuée sur les tokens de commande analysés, et non sur la chaîne brute, afin d'empêcher les contournements par injection d'opérateurs shell.
49
50
 
50
51
  **Paramètres :**
51
52
 
52
- | Param | Type | Par défaut | Description |
53
+ | Paramètre | Type | Par défaut | Description |
53
54
  |-------|------|---------|-------------|
54
55
  | `allowPatterns` | `string[]` | `[]` | Préfixes de commandes exacts autorisés. Chaque entrée est comparée aux tokens argv analysés. |
55
56
 
@@ -68,7 +69,7 @@ Bloque les invocations qui contiennent le mot-clé `sudo`. La correspondance de
68
69
  Avec cette configuration, `sudo systemctl status nginx` est autorisé, mais `sudo rm /etc/hosts` est refusé.
69
70
 
70
71
  <Note>
71
- Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande brute. Cela empêche les contournements via des opérateurs shell ajoutés en fin de commande (par ex. `sudo systemctl status x; rm -rf /` ne correspond pas à `sudo systemctl status *`).
72
+ Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande brute. Cela empêche les contournements via des opérateurs shell ajoutés (ex. : `sudo systemctl status x; rm -rf /` ne correspond pas à `sudo systemctl status *`).
72
73
  </Note>
73
74
 
74
75
  ---
@@ -76,13 +77,13 @@ Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande
76
77
  ### `block-rm-rf`
77
78
 
78
79
  **Événement :** PreToolUse (Bash)
79
- **Par défaut :** Refuse `rm -rf`, `rm -fr` et les formes de suppression récursive similaires.
80
+ **Par défaut :** Refuse `rm -rf`, `rm -fr` et autres formes similaires de suppression récursive.
80
81
 
81
82
  **Paramètres :**
82
83
 
83
- | Param | Type | Par défaut | Description |
84
+ | Paramètre | Type | Par défaut | Description |
84
85
  |-------|------|---------|-------------|
85
- | `allowPaths` | `string[]` | `[]` | Chemins dont la suppression récursive est autorisée (ex. `/tmp`). |
86
+ | `allowPaths` | `string[]` | `[]` | Chemins dont la suppression récursive est autorisée (ex. : `/tmp`). |
86
87
 
87
88
  **Exemple :**
88
89
 
@@ -101,7 +102,7 @@ Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande
101
102
  ### `block-curl-pipe-sh`
102
103
 
103
104
  **Événement :** PreToolUse (Bash)
104
- **Par défaut :** Refuse `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` et les motifs similaires.
105
+ **Par défaut :** Refuse `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` et motifs similaires.
105
106
 
106
107
  Aucun paramètre.
107
108
 
@@ -110,15 +111,15 @@ Aucun paramètre.
110
111
  ### `block-failproofai-commands`
111
112
 
112
113
  **Événement :** PreToolUse (Bash)
113
- **Par défaut :** Refuse les commandes qui désinstalleraient ou désactiveraient failproofai lui-même (ex. `npm uninstall failproofai`, `failproofai policies --uninstall`).
114
+ **Par défaut :** Refuse les commandes qui désinstalleraient ou désactiveraient failproofai lui-même (ex. : `npm uninstall failproofai`, `failproofai policies --uninstall`).
114
115
 
115
116
  Aucun paramètre.
116
117
 
117
118
  ---
118
119
 
119
- ## Secrets (nettoyeurs)
120
+ ## Secrets (sanitizers)
120
121
 
121
- Empêche les agents de faire fuiter des identifiants dans leur contexte ou leurs sorties. Les politiques de nettoyage se déclenchent sur les événements **PostToolUse**. Lorsque Claude exécute une commande Bash, lit un fichier ou appelle un outil quelconque, ces politiques inspectent la sortie avant qu'elle ne soit renvoyée à Claude. Si un motif de secret est détecté, la politique retourne une décision de refus qui empêche la sortie d'être transmise.
122
+ Empêche les agents de faire fuiter des identifiants dans leur contexte ou leur sortie. Les politiques sanitizer se déclenchent sur les événements **PostToolUse**. Lorsque Claude exécute une commande Bash, lit un fichier ou appelle un outil quelconque, ces politiques inspectent la sortie avant qu'elle ne soit renvoyée à Claude. Si un motif secret est détecté, la politique retourne une décision deny qui empêche la sortie d'être transmise.
122
123
 
123
124
  ### `sanitize-jwt`
124
125
 
@@ -132,11 +133,11 @@ Aucun paramètre.
132
133
  ### `sanitize-api-keys`
133
134
 
134
135
  **Événement :** PostToolUse (tous les outils)
135
- **Par défaut :** Masque les formats courants de clés API : Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), clés d'accès AWS (`AKIA`), clés Stripe (`sk_live_`, `sk_test_`) et clés Google API (`AIza`).
136
+ **Par défaut :** Masque les formats de clés API courants : Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), clés d'accès AWS (`AKIA`), clés Stripe (`sk_live_`, `sk_test_`) et clés Google API (`AIza`).
136
137
 
137
138
  **Paramètres :**
138
139
 
139
- | Param | Type | Par défaut | Description |
140
+ | Paramètre | Type | Par défaut | Description |
140
141
  |-------|------|---------|-------------|
141
142
  | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Motifs regex supplémentaires à traiter comme des secrets. |
142
143
 
@@ -160,7 +161,7 @@ Aucun paramètre.
160
161
  ### `sanitize-connection-strings`
161
162
 
162
163
  **Événement :** PostToolUse (tous les outils)
163
- **Par défaut :** Masque les chaînes de connexion à des bases de données contenant des identifiants intégrés (ex. `postgresql://user:password@host/db`).
164
+ **Par défaut :** Masque les chaînes de connexion de base de données contenant des identifiants intégrés (ex. : `postgresql://user:password@host/db`).
164
165
 
165
166
  Aucun paramètre.
166
167
 
@@ -186,7 +187,7 @@ Aucun paramètre.
186
187
 
187
188
  ## Environnement
188
189
 
189
- Protège la configuration d'environnement sensible contre la lecture ou l'exposition par les agents.
190
+ Protège la configuration d'environnement sensible contre la lecture ou l'exposition par des agents.
190
191
 
191
192
  ### `block-env-files`
192
193
 
@@ -215,11 +216,11 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
215
216
  ### `block-read-outside-cwd`
216
217
 
217
218
  **Événement :** PreToolUse (Read, Bash)
218
- **Par défaut :** Refuse la lecture des fichiers situés en dehors du répertoire de travail courant (la racine du projet).
219
+ **Par défaut :** Refuse la lecture de fichiers en dehors du répertoire de travail courant (la racine du projet).
219
220
 
220
221
  **Paramètres :**
221
222
 
222
- | Param | Type | Par défaut | Description |
223
+ | Paramètre | Type | Par défaut | Description |
223
224
  |-------|------|---------|-------------|
224
225
  | `allowPaths` | `string[]` | `[]` | Préfixes de chemins absolus autorisés même s'ils sont en dehors du répertoire courant. |
225
226
 
@@ -240,11 +241,11 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
240
241
  ### `block-secrets-write`
241
242
 
242
243
  **Événement :** PreToolUse (Write, Edit)
243
- **Par défaut :** Refuse l'écriture dans les fichiers couramment utilisés pour les clés privées et les certificats : `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
244
+ **Par défaut :** Refuse les écritures dans les fichiers couramment utilisés pour les clés privées et les certificats : `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
244
245
 
245
246
  **Paramètres :**
246
247
 
247
- | Param | Type | Par défaut | Description |
248
+ | Paramètre | Type | Par défaut | Description |
248
249
  |-------|------|---------|-------------|
249
250
  | `additionalPatterns` | `string[]` | `[]` | Motifs de noms de fichiers supplémentaires (style glob) à bloquer. |
250
251
 
@@ -264,7 +265,7 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
264
265
 
265
266
  ## Git
266
267
 
267
- Évite les pushs accidentels, les force-pushs et les erreurs de branche difficiles à annuler.
268
+ Prévient les pushs accidentels, les force-pushs et les erreurs de branches difficiles à annuler.
268
269
 
269
270
  ### `block-push-master`
270
271
 
@@ -273,9 +274,9 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
273
274
 
274
275
  **Paramètres :**
275
276
 
276
- | Param | Type | Par défaut | Description |
277
+ | Paramètre | Type | Par défaut | Description |
277
278
  |-------|------|---------|-------------|
278
- | `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches qui ne peuvent pas recevoir de push direct. |
279
+ | `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches sur lesquelles il est impossible de pousser directement. |
279
280
 
280
281
  **Exemple :**
281
282
 
@@ -290,7 +291,7 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
290
291
  ```
291
292
 
292
293
  <Tip>
293
- Pour autoriser le push vers toutes les branches (ce qui désactive effectivement cette politique sans la retirer de `enabledPolicies`), définissez `protectedBranches: []`.
294
+ Pour autoriser le push sur toutes les branches (désactivant ainsi cette politique sans la retirer de `enabledPolicies`), définissez `protectedBranches: []`.
294
295
  </Tip>
295
296
 
296
297
  ---
@@ -302,9 +303,9 @@ Pour autoriser le push vers toutes les branches (ce qui désactive effectivement
302
303
 
303
304
  **Paramètres :**
304
305
 
305
- | Param | Type | Par défaut | Description |
306
+ | Paramètre | Type | Par défaut | Description |
306
307
  |-------|------|---------|-------------|
307
- | `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches qui ne peuvent pas être checkoutées directement. |
308
+ | `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches sur lesquelles il est impossible de basculer directement. |
308
309
 
309
310
  ---
310
311
 
@@ -313,7 +314,7 @@ Pour autoriser le push vers toutes les branches (ce qui désactive effectivement
313
314
  **Événement :** PreToolUse (Bash)
314
315
  **Par défaut :** Refuse `git push --force` et `git push -f`.
315
316
 
316
- Aucun paramètre spécifique à la politique. Utilisez le champ transversal [`hint`](/fr/configuration#hint-cross-cutting) pour suggérer des alternatives :
317
+ Aucun paramètre spécifique à cette politique. Utilisez le champ transversal [`hint`](/fr/configuration#hint-cross-cutting) pour suggérer des alternatives :
317
318
 
318
319
  ```json
319
320
  {
@@ -330,7 +331,7 @@ Aucun paramètre spécifique à la politique. Utilisez le champ transversal [`hi
330
331
  ### `warn-git-amend`
331
332
 
332
333
  **Événement :** PreToolUse (Bash)
333
- **Par défaut :** Demande à Claude de procéder avec prudence lors de l'exécution de `git commit --amend`. Ne bloque pas la commande.
334
+ **Par défaut :** Demande à Claude de procéder avec précaution lors de l'exécution de `git commit --amend`. Ne bloque pas la commande.
334
335
 
335
336
  Aucun paramètre.
336
337
 
@@ -356,7 +357,7 @@ Aucun paramètre.
356
357
 
357
358
  ## Base de données
358
359
 
359
- Détecte les opérations SQL destructrices avant leur exécution sur votre base de données.
360
+ Intercepte les opérations SQL destructrices avant qu'elles ne s'exécutent sur votre base de données.
360
361
 
361
362
  ### `warn-destructive-sql`
362
363
 
@@ -387,7 +388,7 @@ Fournit aux agents un contexte supplémentaire avant des opérations potentielle
387
388
 
388
389
  **Paramètres :**
389
390
 
390
- | Param | Type | Par défaut | Description |
391
+ | Paramètre | Type | Par défaut | Description |
391
392
  |-------|------|---------|-------------|
392
393
  | `thresholdKb` | `number` | `1024` | Seuil de taille de fichier en kilo-octets au-delà duquel un avertissement est émis. |
393
394
 
@@ -404,7 +405,7 @@ Fournit aux agents un contexte supplémentaire avant des opérations potentielle
404
405
  ```
405
406
 
406
407
  <Note>
407
- Le gestionnaire de hook impose une limite de 1 Mo sur les payloads stdin. Pour tester cette politique avec un contenu de petite taille, définissez `thresholdKb` à une valeur bien inférieure à 1024.
408
+ Le gestionnaire de hook impose une limite de 1 Mo sur stdin pour les payloads. Pour tester cette politique avec du contenu de petite taille, définissez `thresholdKb` à une valeur bien inférieure à 1024.
408
409
  </Note>
409
410
 
410
411
  ---
@@ -436,14 +437,50 @@ Aucun paramètre.
436
437
 
437
438
  ---
438
439
 
440
+ ## Gestionnaires de paquets
441
+
442
+ Impose les gestionnaires de paquets que l'agent est autorisé à utiliser.
443
+
444
+ ### `prefer-package-manager`
445
+
446
+ **Événement :** PreToolUse (Bash)
447
+ **Par défaut :** Désactivé. Lorsqu'il est activé, bloque toute commande de gestionnaire de paquets absent de la liste `allowed` et demande à Claude de réécrire la commande en utilisant un gestionnaire autorisé.
448
+
449
+ Détecte : pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
450
+
451
+ | Paramètre | Type | Par défaut | Description |
452
+ |-----------|------|---------|-------------|
453
+ | `allowed` | string[] | `[]` | Noms de gestionnaires de paquets autorisés. Tout gestionnaire détecté absent de cette liste est bloqué. Lorsque la liste est vide, la politique est sans effet. |
454
+ | `blocked` | string[] | `[]` | Noms de gestionnaires supplémentaires à bloquer au-delà de la liste intégrée (ex. : `['pdm', 'pipx']`). |
455
+
456
+ La liste de blocage intégrée couvre : pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Utilisez `blocked` pour ajouter des gestionnaires absents de cette liste.
457
+
458
+ **Exemple de configuration :**
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
+ Avec cette configuration, `pip install flask` et `pdm install flask` sont tous deux refusés avec un message demandant à Claude d'utiliser `uv` ou `bun` à la place. Les commandes comme `uv pip install flask` sont autorisées car `uv` figure dans la liste d'autorisation et est vérifié en premier.
473
+
474
+ ---
475
+
439
476
  ## Comportement de l'IA
440
477
 
441
- Détecte les situations où les agents se retrouvent bloqués ou se comportent de manière inattendue.
478
+ Détecte quand les agents sont bloqués ou se comportent de manière inattendue.
442
479
 
443
480
  ### `warn-repeated-tool-calls`
444
481
 
445
482
  **Événement :** PreToolUse (tous les outils)
446
- **Par défaut :** Demande à Claude de reconsidérer sa démarche lorsque le même outil est appelé 3 fois ou plus avec des paramètres identiques — signe courant que l'agent est bloqué dans une boucle.
483
+ **Par défaut :** Demande à Claude de reconsidérer son action lorsque le même outil est appelé 3 fois ou plus avec des paramètres identiques — signe courant que l'agent est bloqué dans une boucle.
447
484
 
448
485
  Aucun paramètre.
449
486
 
@@ -451,14 +488,14 @@ Aucun paramètre.
451
488
 
452
489
  ## Workflow
453
490
 
454
- Impose un workflow rigoureux en fin de session. Ces politiques se déclenchent sur l'événement **Stop** et empêchent Claude de s'arrêter tant que chaque condition n'est pas remplie. Elles suivent une chaîne de dépendances naturelle : commit → push → PR → CI. Si une politique refuse, les politiques suivantes dans la chaîne sont ignorées (court-circuit sur refus).
491
+ Impose un workflow de fin de session rigoureux. Ces politiques se déclenchent sur l'événement **Stop** et empêchent Claude de s'arrêter tant que chaque condition n'est pas remplie. Elles suivent une chaîne de dépendances naturelle : commit → push → PR → CI. Si une politique refuse, les politiques suivantes dans la chaîne sont ignorées (court-circuit sur deny).
455
492
 
456
- Toutes les politiques de workflow sont **fail-open** : si l'outil requis n'est pas disponible (ex. `gh` non installé, pas de remote git), la politique autorise avec un message informatif expliquant pourquoi la vérification a été ignorée.
493
+ Toutes les politiques de workflow sont **fail-open** : si l'outil requis n'est pas disponible (ex. : `gh` non installé, pas de remote git), la politique autorise l'arrêt avec un message d'information expliquant pourquoi la vérification a été ignorée.
457
494
 
458
495
  ### `require-commit-before-stop`
459
496
 
460
497
  **Événement :** Stop
461
- **Par défaut :** Refuse l'arrêt lorsqu'il existe des modifications non commitées (fichiers modifiés, indexés ou non suivis). Retourne un message informatif quand le répertoire de travail est propre.
498
+ **Par défaut :** Refuse l'arrêt lorsqu'il existe des modifications non commitées (fichiers modifiés, indexés ou non suivis). Retourne un message d'information lorsque le répertoire de travail est propre.
462
499
 
463
500
  Aucun paramètre.
464
501
 
@@ -471,7 +508,7 @@ Aucun paramètre.
471
508
 
472
509
  **Paramètres :**
473
510
 
474
- | Param | Type | Par défaut | Description |
511
+ | Paramètre | Type | Par défaut | Description |
475
512
  |-------|------|---------|-------------|
476
513
  | `remote` | `string` | `"origin"` | Nom du remote vers lequel pousser. |
477
514
 
@@ -492,14 +529,14 @@ Aucun paramètre.
492
529
  ### `require-pr-before-stop`
493
530
 
494
531
  **Événement :** Stop
495
- **Par défaut :** Refuse l'arrêt lorsqu'aucune pull request n'existe pour la branche courante, ou lorsque la PR existante est fermée ou mergée. Demande à Claude de créer une PR avec `gh pr create`.
532
+ **Par défaut :** Refuse l'arrêt lorsqu'aucune pull request n'existe pour la branche courante, ou lorsque la PR existante est fermée ou fusionnée. Demande à Claude de créer une PR avec `gh pr create`.
496
533
 
497
534
  Aucun paramètre.
498
535
 
499
536
  <Note>
500
- Cette politique nécessite que [GitHub CLI](https://cli.github.com/) (`gh`) soit installé et authentifié.
537
+ Cette politique requiert que [GitHub CLI](https://cli.github.com/) (`gh`) soit installé et authentifié.
501
538
  Exécutez `gh auth login` avec un personal access token disposant du scope `repo` pour l'accès en lecture aux
502
- pull requests. Si `gh` n'est pas installé ou pas authentifié, la politique est fail-open et signale la raison à Claude.
539
+ pull requests. Si `gh` n'est pas installé ou non authentifié, la politique est fail-open et rapporte la raison à Claude.
503
540
  </Note>
504
541
 
505
542
  ---
@@ -507,21 +544,21 @@ pull requests. Si `gh` n'est pas installé ou pas authentifié, la politique est
507
544
  ### `require-ci-green-before-stop`
508
545
 
509
546
  **Événement :** Stop
510
- **Par défaut :** Refuse l'arrêt lorsque les vérifications CI échouent ou sont encore en cours sur la branche courante. Vérifie à la fois les exécutions de workflows GitHub Actions et les vérifications de bots tiers (ex. CodeRabbit, SonarCloud, Codecov). Traite les conclusions `skipped` comme un succès. Retourne un message informatif lorsque toutes les vérifications sont réussies.
547
+ **Par défaut :** Refuse l'arrêt lorsque les vérifications CI sont en échec ou encore en cours sur la branche courante. Vérifie à la fois les workflows GitHub Actions et les vérifications de bots tiers (ex. : CodeRabbit, SonarCloud, Codecov). Traite les conclusions `skipped` comme un succès. Retourne un message d'information lorsque toutes les vérifications sont réussies.
511
548
 
512
549
  Aucun paramètre.
513
550
 
514
551
  <Note>
515
- Cette politique nécessite que [GitHub CLI](https://cli.github.com/) (`gh`) soit installé et authentifié.
552
+ Cette politique requiert que [GitHub CLI](https://cli.github.com/) (`gh`) soit installé et authentifié.
516
553
  Exécutez `gh auth login` avec un personal access token disposant du scope `repo` pour l'accès en lecture aux
517
- exécutions de workflows Actions et à l'API Checks. Si `gh` n'est pas installé ou pas authentifié, la politique est fail-open et signale la raison à Claude.
554
+ workflows GitHub Actions et à l'API Checks. Si `gh` n'est pas installé ou non authentifié, la politique est fail-open et rapporte la raison à Claude.
518
555
  </Note>
519
556
 
520
557
  ---
521
558
 
522
559
  ---
523
560
 
524
- ## Désactiver des politiques individuellement
561
+ ## Désactiver des politiques individuelles
525
562
 
526
563
  Retirez une politique spécifique de `enabledPolicies` dans votre configuration, ou désactivez-la depuis l'onglet Policies du tableau de bord.
527
564