failproofai 0.0.6-beta.2 → 0.0.6-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05akje6._.js → [root-of-the-server]__096k.db._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i5kvry._.js → [root-of-the-server]__0kyh86x._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
- package/.next/standalone/.next/static/chunks/{1052sguyd-.ka.js → 0-dm_9a6nsc2l.js} +1 -1
- package/.next/standalone/.next/static/chunks/{05j1px0r8yzh6.js → 01pmw1-asbek~.js} +2 -2
- package/.next/standalone/.next/static/chunks/{14cl9poem30dq.js → 051m32nx~n5yr.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0badv41uxa56..js → 0a-yctdwn368y.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0xpl.oscrakvx.js → 0l-mu4okl-cj1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{00j0rr7rh8ef8.js → 0mazj-p-~2kc6.js} +1 -1
- package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
- package/.next/standalone/.next/static/chunks/{0npb~873.wvg3.js → 156zca6aewyr-.js} +1 -1
- package/.next/standalone/CHANGELOG.md +7 -0
- package/.next/standalone/bin/failproofai.mjs +91 -4
- package/.next/standalone/dist/cli.mjs +1155 -54
- package/.next/standalone/docs/ar/built-in-policies.mdx +118 -118
- package/.next/standalone/docs/built-in-policies.mdx +2 -2
- package/.next/standalone/docs/de/built-in-policies.mdx +48 -48
- package/.next/standalone/docs/es/built-in-policies.mdx +82 -82
- package/.next/standalone/docs/fr/built-in-policies.mdx +72 -72
- package/.next/standalone/docs/he/built-in-policies.mdx +129 -128
- package/.next/standalone/docs/hi/built-in-policies.mdx +178 -182
- package/.next/standalone/docs/it/built-in-policies.mdx +64 -64
- package/.next/standalone/docs/ja/built-in-policies.mdx +128 -128
- package/.next/standalone/docs/ko/built-in-policies.mdx +111 -111
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +65 -65
- package/.next/standalone/docs/ru/built-in-policies.mdx +72 -72
- package/.next/standalone/docs/tr/built-in-policies.mdx +99 -99
- package/.next/standalone/docs/vi/built-in-policies.mdx +69 -72
- package/.next/standalone/docs/zh/built-in-policies.mdx +76 -78
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/auth/login.ts +104 -0
- package/.next/standalone/src/auth/logout.ts +50 -0
- package/.next/standalone/src/auth/token-store.ts +64 -0
- package/.next/standalone/src/hooks/builtin-policies.ts +22 -20
- package/.next/standalone/src/hooks/handler.ts +35 -15
- package/.next/standalone/src/relay/daemon.ts +362 -0
- package/.next/standalone/src/relay/pid.ts +76 -0
- package/.next/standalone/src/relay/queue.ts +225 -0
- package/bin/failproofai.mjs +91 -4
- package/dist/cli.mjs +1155 -54
- package/package.json +1 -1
- package/src/auth/login.ts +104 -0
- package/src/auth/logout.ts +50 -0
- package/src/auth/token-store.ts +64 -0
- package/src/hooks/builtin-policies.ts +22 -20
- package/src/hooks/handler.ts +35 -15
- package/src/relay/daemon.ts +362 -0
- package/src/relay/pid.ts +76 -0
- package/src/relay/queue.ts +225 -0
- package/.next/standalone/.next/static/chunks/0ijk_kek9_wyx.js +0 -6
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Politiques intégrées
|
|
3
|
-
description: "Les 30 politiques intégrées qui
|
|
3
|
+
description: "Les 30 politiques intégrées qui interceptent les modes d'échec courants des agents"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
failproofai est livré avec 30 politiques intégrées qui
|
|
7
|
+
failproofai est livré avec 30 politiques intégrées qui interceptent les modes d'échec courants des agents. Chaque politique se déclenche sur un type d'événement de hook spécifique et un nom d'outil. Neuf politiques acceptent des paramètres permettant d'affiner leur comportement sans écrire de code. Quatre politiques de workflow imposent un pipeline commit → push → PR → CI avant que Claude s'arrête.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -25,14 +25,14 @@ Les politiques sont regroupées par catégories :
|
|
|
25
25
|
| [Workflow](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
26
26
|
|
|
27
27
|
- **`block-`** — empêche l'agent de continuer.
|
|
28
|
-
- **`warn-`** — fournit à l'agent
|
|
29
|
-
- **`sanitize-`** —
|
|
28
|
+
- **`warn-`** — fournit à l'agent du contexte supplémentaire pour lui permettre de se corriger.
|
|
29
|
+
- **`sanitize-`** — supprime les données sensibles de la sortie d'un outil avant que l'agent ne les lise.
|
|
30
30
|
- **`require-`** — bloque l'événement Stop jusqu'à ce que les conditions soient remplies.
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
34
|
<Tip>
|
|
35
|
-
Toutes les politiques supportent un champ `hint`
|
|
35
|
+
Toutes les politiques supportent un champ optionnel `hint` dans `policyParams`. Ce hint est ajouté au message deny ou instruct que Claude reçoit, fournissant des indications concrètes 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.
|
|
36
36
|
</Tip>
|
|
37
37
|
|
|
38
38
|
---
|
|
@@ -44,13 +44,13 @@ Empêche les agents d'exécuter des opérations difficiles à annuler ou suscept
|
|
|
44
44
|
### `block-sudo`
|
|
45
45
|
|
|
46
46
|
**Événement :** PreToolUse (Bash)
|
|
47
|
-
**
|
|
47
|
+
**Comportement par défaut :** Refuse toute commande `sudo`.
|
|
48
48
|
|
|
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'
|
|
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'éviter les contournements par injection d'opérateurs shell.
|
|
50
50
|
|
|
51
51
|
**Paramètres :**
|
|
52
52
|
|
|
53
|
-
| Paramètre | Type |
|
|
53
|
+
| Paramètre | Type | Défaut | Description |
|
|
54
54
|
|-------|------|---------|-------------|
|
|
55
55
|
| `allowPatterns` | `string[]` | `[]` | Préfixes de commandes exacts autorisés. Chaque entrée est comparée aux tokens argv analysés. |
|
|
56
56
|
|
|
@@ -69,7 +69,7 @@ Bloque les invocations contenant le mot-clé `sudo`. La correspondance de motifs
|
|
|
69
69
|
Avec cette configuration, `sudo systemctl status nginx` est autorisé, mais `sudo rm /etc/hosts` est refusé.
|
|
70
70
|
|
|
71
71
|
<Note>
|
|
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 (
|
|
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 en suffixe (par exemple, `sudo systemctl status x; rm -rf /` ne correspond pas à `sudo systemctl status *`).
|
|
73
73
|
</Note>
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -77,13 +77,13 @@ Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande
|
|
|
77
77
|
### `block-rm-rf`
|
|
78
78
|
|
|
79
79
|
**Événement :** PreToolUse (Bash)
|
|
80
|
-
**
|
|
80
|
+
**Comportement par défaut :** Refuse `rm -rf`, `rm -fr` et les formes similaires de suppression récursive.
|
|
81
81
|
|
|
82
82
|
**Paramètres :**
|
|
83
83
|
|
|
84
|
-
| Paramètre | Type |
|
|
84
|
+
| Paramètre | Type | Défaut | Description |
|
|
85
85
|
|-------|------|---------|-------------|
|
|
86
|
-
| `allowPaths` | `string[]` | `[]` | Chemins dont la suppression récursive est autorisée (ex.
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | Chemins dont la suppression récursive est autorisée (ex. `/tmp`). |
|
|
87
87
|
|
|
88
88
|
**Exemple :**
|
|
89
89
|
|
|
@@ -102,7 +102,7 @@ Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande
|
|
|
102
102
|
### `block-curl-pipe-sh`
|
|
103
103
|
|
|
104
104
|
**Événement :** PreToolUse (Bash)
|
|
105
|
-
**
|
|
105
|
+
**Comportement par défaut :** Refuse `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` et les motifs similaires.
|
|
106
106
|
|
|
107
107
|
Aucun paramètre.
|
|
108
108
|
|
|
@@ -111,7 +111,7 @@ Aucun paramètre.
|
|
|
111
111
|
### `block-failproofai-commands`
|
|
112
112
|
|
|
113
113
|
**Événement :** PreToolUse (Bash)
|
|
114
|
-
**
|
|
114
|
+
**Comportement par défaut :** Refuse les commandes qui désinstalleraient ou désactiveraient failproofai lui-même (ex. `npm uninstall failproofai`, `failproofai policies --uninstall`).
|
|
115
115
|
|
|
116
116
|
Aucun paramètre.
|
|
117
117
|
|
|
@@ -119,12 +119,12 @@ Aucun paramètre.
|
|
|
119
119
|
|
|
120
120
|
## Secrets (sanitizers)
|
|
121
121
|
|
|
122
|
-
Empêche les agents de faire fuiter des identifiants dans leur contexte ou leur sortie. Les politiques
|
|
122
|
+
Empêche les agents de faire fuiter des identifiants dans leur contexte ou leur sortie. Les politiques de sanitisation 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 deny qui empêche la sortie d'être transmise en retour.
|
|
123
123
|
|
|
124
124
|
### `sanitize-jwt`
|
|
125
125
|
|
|
126
126
|
**Événement :** PostToolUse (tous les outils)
|
|
127
|
-
**
|
|
127
|
+
**Comportement par défaut :** Masque les tokens JWT (trois segments base64url séparés par `.`).
|
|
128
128
|
|
|
129
129
|
Aucun paramètre.
|
|
130
130
|
|
|
@@ -133,11 +133,11 @@ Aucun paramètre.
|
|
|
133
133
|
### `sanitize-api-keys`
|
|
134
134
|
|
|
135
135
|
**Événement :** PostToolUse (tous les outils)
|
|
136
|
-
**
|
|
136
|
+
**Comportement 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`).
|
|
137
137
|
|
|
138
138
|
**Paramètres :**
|
|
139
139
|
|
|
140
|
-
| Paramètre | Type |
|
|
140
|
+
| Paramètre | Type | Défaut | Description |
|
|
141
141
|
|-------|------|---------|-------------|
|
|
142
142
|
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Motifs regex supplémentaires à traiter comme des secrets. |
|
|
143
143
|
|
|
@@ -161,7 +161,7 @@ Aucun paramètre.
|
|
|
161
161
|
### `sanitize-connection-strings`
|
|
162
162
|
|
|
163
163
|
**Événement :** PostToolUse (tous les outils)
|
|
164
|
-
**
|
|
164
|
+
**Comportement 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`).
|
|
165
165
|
|
|
166
166
|
Aucun paramètre.
|
|
167
167
|
|
|
@@ -170,7 +170,7 @@ Aucun paramètre.
|
|
|
170
170
|
### `sanitize-private-key-content`
|
|
171
171
|
|
|
172
172
|
**Événement :** PostToolUse (tous les outils)
|
|
173
|
-
**
|
|
173
|
+
**Comportement par défaut :** Masque les blocs PEM (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, etc.).
|
|
174
174
|
|
|
175
175
|
Aucun paramètre.
|
|
176
176
|
|
|
@@ -179,7 +179,7 @@ Aucun paramètre.
|
|
|
179
179
|
### `sanitize-bearer-tokens`
|
|
180
180
|
|
|
181
181
|
**Événement :** PostToolUse (tous les outils)
|
|
182
|
-
**
|
|
182
|
+
**Comportement par défaut :** Masque les en-têtes `Authorization: Bearer <token>` dont le token contient 20 caractères ou plus.
|
|
183
183
|
|
|
184
184
|
Aucun paramètre.
|
|
185
185
|
|
|
@@ -187,12 +187,12 @@ Aucun paramètre.
|
|
|
187
187
|
|
|
188
188
|
## Environnement
|
|
189
189
|
|
|
190
|
-
Protège la configuration d'environnement sensible contre la lecture ou l'exposition par
|
|
190
|
+
Protège la configuration d'environnement sensible contre la lecture ou l'exposition par les agents.
|
|
191
191
|
|
|
192
192
|
### `block-env-files`
|
|
193
193
|
|
|
194
194
|
**Événement :** PreToolUse (Bash, Read)
|
|
195
|
-
**
|
|
195
|
+
**Comportement par défaut :** Refuse la lecture des fichiers `.env` via `cat .env`, les appels à l'outil `Read` avec `.env` comme chemin de fichier, etc.
|
|
196
196
|
|
|
197
197
|
Ne bloque pas `.envrc` ni les autres fichiers liés à l'environnement — uniquement les fichiers nommés exactement `.env`.
|
|
198
198
|
|
|
@@ -203,7 +203,7 @@ Aucun paramètre.
|
|
|
203
203
|
### `protect-env-vars`
|
|
204
204
|
|
|
205
205
|
**Événement :** PreToolUse (Bash)
|
|
206
|
-
**
|
|
206
|
+
**Comportement par défaut :** Refuse les commandes qui affichent les variables d'environnement : `printenv`, `env`, `echo $VAR`.
|
|
207
207
|
|
|
208
208
|
Aucun paramètre.
|
|
209
209
|
|
|
@@ -216,11 +216,11 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
|
|
|
216
216
|
### `block-read-outside-cwd`
|
|
217
217
|
|
|
218
218
|
**Événement :** PreToolUse (Read, Bash)
|
|
219
|
-
**
|
|
219
|
+
**Comportement par défaut :** Refuse la lecture de fichiers situés en dehors du répertoire de travail courant (la racine du projet).
|
|
220
220
|
|
|
221
221
|
**Paramètres :**
|
|
222
222
|
|
|
223
|
-
| Paramètre | Type |
|
|
223
|
+
| Paramètre | Type | Défaut | Description |
|
|
224
224
|
|-------|------|---------|-------------|
|
|
225
225
|
| `allowPaths` | `string[]` | `[]` | Préfixes de chemins absolus autorisés même s'ils sont en dehors du répertoire courant. |
|
|
226
226
|
|
|
@@ -241,11 +241,11 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
|
|
|
241
241
|
### `block-secrets-write`
|
|
242
242
|
|
|
243
243
|
**Événement :** PreToolUse (Write, Edit)
|
|
244
|
-
**
|
|
244
|
+
**Comportement 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`.
|
|
245
245
|
|
|
246
246
|
**Paramètres :**
|
|
247
247
|
|
|
248
|
-
| Paramètre | Type |
|
|
248
|
+
| Paramètre | Type | Défaut | Description |
|
|
249
249
|
|-------|------|---------|-------------|
|
|
250
250
|
| `additionalPatterns` | `string[]` | `[]` | Motifs de noms de fichiers supplémentaires (style glob) à bloquer. |
|
|
251
251
|
|
|
@@ -265,18 +265,18 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
|
|
|
265
265
|
|
|
266
266
|
## Git
|
|
267
267
|
|
|
268
|
-
Prévient les pushs accidentels, les force-
|
|
268
|
+
Prévient les pushs accidentels, les force-push et les erreurs de branche difficiles à annuler.
|
|
269
269
|
|
|
270
270
|
### `block-push-master`
|
|
271
271
|
|
|
272
272
|
**Événement :** PreToolUse (Bash)
|
|
273
|
-
**
|
|
273
|
+
**Comportement par défaut :** Refuse `git push origin main` et `git push origin master`.
|
|
274
274
|
|
|
275
275
|
**Paramètres :**
|
|
276
276
|
|
|
277
|
-
| Paramètre | Type |
|
|
277
|
+
| Paramètre | Type | Défaut | Description |
|
|
278
278
|
|-------|------|---------|-------------|
|
|
279
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches sur lesquelles
|
|
279
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches sur lesquelles le push direct est interdit. |
|
|
280
280
|
|
|
281
281
|
**Exemple :**
|
|
282
282
|
|
|
@@ -291,7 +291,7 @@ Prévient les pushs accidentels, les force-pushs et les erreurs de branches diff
|
|
|
291
291
|
```
|
|
292
292
|
|
|
293
293
|
<Tip>
|
|
294
|
-
Pour autoriser le push sur toutes les branches (
|
|
294
|
+
Pour autoriser le push sur toutes les branches (ce qui désactive effectivement cette politique sans la retirer de `enabledPolicies`), définissez `protectedBranches: []`.
|
|
295
295
|
</Tip>
|
|
296
296
|
|
|
297
297
|
---
|
|
@@ -299,22 +299,22 @@ Pour autoriser le push sur toutes les branches (désactivant ainsi cette politiq
|
|
|
299
299
|
### `block-work-on-main`
|
|
300
300
|
|
|
301
301
|
**Événement :** PreToolUse (Bash)
|
|
302
|
-
**
|
|
302
|
+
**Comportement par défaut :** Refuse le checkout direct des branches `main` ou `master`.
|
|
303
303
|
|
|
304
304
|
**Paramètres :**
|
|
305
305
|
|
|
306
|
-
| Paramètre | Type |
|
|
306
|
+
| Paramètre | Type | Défaut | Description |
|
|
307
307
|
|-------|------|---------|-------------|
|
|
308
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches dont le checkout direct est interdit. |
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
312
312
|
### `block-force-push`
|
|
313
313
|
|
|
314
314
|
**Événement :** PreToolUse (Bash)
|
|
315
|
-
**
|
|
315
|
+
**Comportement par défaut :** Refuse `git push --force` et `git push -f`.
|
|
316
316
|
|
|
317
|
-
Aucun paramètre spécifique à cette politique. Utilisez le
|
|
317
|
+
Aucun paramètre spécifique à cette politique. Utilisez le [`hint`](/fr/configuration#hint-cross-cutting) transversal pour suggérer des alternatives :
|
|
318
318
|
|
|
319
319
|
```json
|
|
320
320
|
{
|
|
@@ -331,7 +331,7 @@ Aucun paramètre spécifique à cette politique. Utilisez le champ transversal [
|
|
|
331
331
|
### `warn-git-amend`
|
|
332
332
|
|
|
333
333
|
**Événement :** PreToolUse (Bash)
|
|
334
|
-
**
|
|
334
|
+
**Comportement 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.
|
|
335
335
|
|
|
336
336
|
Aucun paramètre.
|
|
337
337
|
|
|
@@ -340,7 +340,7 @@ Aucun paramètre.
|
|
|
340
340
|
### `warn-git-stash-drop`
|
|
341
341
|
|
|
342
342
|
**Événement :** PreToolUse (Bash)
|
|
343
|
-
**
|
|
343
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter `git stash drop`. Ne bloque pas la commande.
|
|
344
344
|
|
|
345
345
|
Aucun paramètre.
|
|
346
346
|
|
|
@@ -349,7 +349,7 @@ Aucun paramètre.
|
|
|
349
349
|
### `warn-all-files-staged`
|
|
350
350
|
|
|
351
351
|
**Événement :** PreToolUse (Bash)
|
|
352
|
-
**
|
|
352
|
+
**Comportement par défaut :** Demande à Claude de vérifier ce qu'il indexe lorsqu'il exécute `git add -A` ou `git add .`. Ne bloque pas la commande.
|
|
353
353
|
|
|
354
354
|
Aucun paramètre.
|
|
355
355
|
|
|
@@ -357,12 +357,12 @@ Aucun paramètre.
|
|
|
357
357
|
|
|
358
358
|
## Base de données
|
|
359
359
|
|
|
360
|
-
Intercepte les opérations SQL
|
|
360
|
+
Intercepte les opérations SQL destructives avant leur exécution sur la base de données.
|
|
361
361
|
|
|
362
362
|
### `warn-destructive-sql`
|
|
363
363
|
|
|
364
364
|
**Événement :** PreToolUse (Bash)
|
|
365
|
-
**
|
|
365
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter du SQL contenant `DROP TABLE`, `DROP DATABASE` ou `DELETE` sans clause `WHERE`.
|
|
366
366
|
|
|
367
367
|
Aucun paramètre.
|
|
368
368
|
|
|
@@ -371,7 +371,7 @@ Aucun paramètre.
|
|
|
371
371
|
### `warn-schema-alteration`
|
|
372
372
|
|
|
373
373
|
**Événement :** PreToolUse (Bash)
|
|
374
|
-
**
|
|
374
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter des instructions `ALTER TABLE`.
|
|
375
375
|
|
|
376
376
|
Aucun paramètre.
|
|
377
377
|
|
|
@@ -379,16 +379,16 @@ Aucun paramètre.
|
|
|
379
379
|
|
|
380
380
|
## Avertissements
|
|
381
381
|
|
|
382
|
-
Fournit aux agents
|
|
382
|
+
Fournit aux agents du contexte supplémentaire avant des opérations potentiellement risquées mais non destructives.
|
|
383
383
|
|
|
384
384
|
### `warn-large-file-write`
|
|
385
385
|
|
|
386
386
|
**Événement :** PreToolUse (Write)
|
|
387
|
-
**
|
|
387
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'écrire des fichiers de plus de 1 024 Ko.
|
|
388
388
|
|
|
389
389
|
**Paramètres :**
|
|
390
390
|
|
|
391
|
-
| Paramètre | Type |
|
|
391
|
+
| Paramètre | Type | Défaut | Description |
|
|
392
392
|
|-------|------|---------|-------------|
|
|
393
393
|
| `thresholdKb` | `number` | `1024` | Seuil de taille de fichier en kilo-octets au-delà duquel un avertissement est émis. |
|
|
394
394
|
|
|
@@ -405,7 +405,7 @@ Fournit aux agents un contexte supplémentaire avant des opérations potentielle
|
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
<Note>
|
|
408
|
-
Le gestionnaire de hook impose une limite de 1 Mo sur
|
|
408
|
+
Le gestionnaire de hook impose une limite de 1 Mo sur les payloads en stdin. Pour tester cette politique avec un contenu de petite taille, définissez `thresholdKb` à une valeur bien inférieure à 1024.
|
|
409
409
|
</Note>
|
|
410
410
|
|
|
411
411
|
---
|
|
@@ -413,7 +413,7 @@ Le gestionnaire de hook impose une limite de 1 Mo sur stdin pour les payloads. P
|
|
|
413
413
|
### `warn-package-publish`
|
|
414
414
|
|
|
415
415
|
**Événement :** PreToolUse (Bash)
|
|
416
|
-
**
|
|
416
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter `npm publish`.
|
|
417
417
|
|
|
418
418
|
Aucun paramètre.
|
|
419
419
|
|
|
@@ -422,7 +422,7 @@ Aucun paramètre.
|
|
|
422
422
|
### `warn-background-process`
|
|
423
423
|
|
|
424
424
|
**Événement :** PreToolUse (Bash)
|
|
425
|
-
**
|
|
425
|
+
**Comportement par défaut :** Demande à Claude d'être prudent lors du lancement de processus en arrière-plan via `nohup`, `&`, `disown` ou `screen`.
|
|
426
426
|
|
|
427
427
|
Aucun paramètre.
|
|
428
428
|
|
|
@@ -431,7 +431,7 @@ Aucun paramètre.
|
|
|
431
431
|
### `warn-global-package-install`
|
|
432
432
|
|
|
433
433
|
**Événement :** PreToolUse (Bash)
|
|
434
|
-
**
|
|
434
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter `npm install -g`, `yarn global add` ou `pip install` sans environnement virtuel.
|
|
435
435
|
|
|
436
436
|
Aucun paramètre.
|
|
437
437
|
|
|
@@ -444,14 +444,14 @@ Impose les gestionnaires de paquets que l'agent est autorisé à utiliser.
|
|
|
444
444
|
### `prefer-package-manager`
|
|
445
445
|
|
|
446
446
|
**Événement :** PreToolUse (Bash)
|
|
447
|
-
**
|
|
447
|
+
**Comportement par défaut :** Désactivé. Lorsqu'activé, bloque toute commande de gestionnaire de paquets ne figurant pas dans la liste `allowed` et demande à Claude de réécrire la commande avec un gestionnaire autorisé.
|
|
448
448
|
|
|
449
449
|
Détecte : pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
450
|
|
|
451
|
-
| Paramètre | Type |
|
|
451
|
+
| Paramètre | Type | Défaut | Description |
|
|
452
452
|
|-----------|------|---------|-------------|
|
|
453
|
-
| `allowed` | string[] | `[]` | Noms
|
|
454
|
-
| `blocked` | string[] | `[]` | Noms de gestionnaires supplémentaires à bloquer
|
|
453
|
+
| `allowed` | string[] | `[]` | Noms des gestionnaires de paquets autorisés. Tout gestionnaire détecté absent de cette liste est bloqué. Lorsque la liste est vide, la politique est inactive. |
|
|
454
|
+
| `blocked` | string[] | `[]` | Noms de gestionnaires supplémentaires à bloquer en plus de la liste intégrée (ex. `['pdm', 'pipx']`). |
|
|
455
455
|
|
|
456
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
457
|
|
|
@@ -469,18 +469,18 @@ La liste de blocage intégrée couvre : pip, pip3, npm, npx, yarn, pnpm, pnpx, b
|
|
|
469
469
|
}
|
|
470
470
|
```
|
|
471
471
|
|
|
472
|
-
Avec cette configuration, `pip install flask` et `pdm install flask` sont tous deux refusés avec un message
|
|
472
|
+
Avec cette configuration, `pip install flask` et `pdm install flask` sont tous deux refusés avec un message indiquant à Claude d'utiliser `uv` ou `bun` à la place. Les commandes comme `uv pip install flask` sont autorisées car `uv` figure dans la liste des autorisations et est vérifié en premier.
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
476
476
|
## Comportement de l'IA
|
|
477
477
|
|
|
478
|
-
Détecte quand les agents
|
|
478
|
+
Détecte quand les agents se retrouvent bloqués ou se comportent de manière inattendue.
|
|
479
479
|
|
|
480
480
|
### `warn-repeated-tool-calls`
|
|
481
481
|
|
|
482
482
|
**Événement :** PreToolUse (tous les outils)
|
|
483
|
-
**
|
|
483
|
+
**Comportement 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.
|
|
484
484
|
|
|
485
485
|
Aucun paramètre.
|
|
486
486
|
|
|
@@ -488,14 +488,14 @@ Aucun paramètre.
|
|
|
488
488
|
|
|
489
489
|
## Workflow
|
|
490
490
|
|
|
491
|
-
Impose
|
|
491
|
+
Impose une discipline de 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 deny).
|
|
492
492
|
|
|
493
|
-
Toutes les politiques de workflow sont **fail-open** : si l'outil requis n'est pas disponible (ex.
|
|
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 avec un message informatif expliquant pourquoi la vérification a été ignorée.
|
|
494
494
|
|
|
495
495
|
### `require-commit-before-stop`
|
|
496
496
|
|
|
497
497
|
**Événement :** Stop
|
|
498
|
-
**
|
|
498
|
+
**Comportement 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 lorsque le répertoire de travail est propre.
|
|
499
499
|
|
|
500
500
|
Aucun paramètre.
|
|
501
501
|
|
|
@@ -504,11 +504,11 @@ Aucun paramètre.
|
|
|
504
504
|
### `require-push-before-stop`
|
|
505
505
|
|
|
506
506
|
**Événement :** Stop
|
|
507
|
-
**
|
|
507
|
+
**Comportement par défaut :** Refuse l'arrêt lorsqu'il existe des commits non pushés ou lorsque la branche courante n'a pas de branche de suivi distante. Suggère `git push -u` pour créer une branche de suivi si nécessaire. Fail-open si aucun remote n'est configuré.
|
|
508
508
|
|
|
509
509
|
**Paramètres :**
|
|
510
510
|
|
|
511
|
-
| Paramètre | Type |
|
|
511
|
+
| Paramètre | Type | Défaut | Description |
|
|
512
512
|
|-------|------|---------|-------------|
|
|
513
513
|
| `remote` | `string` | `"origin"` | Nom du remote vers lequel pousser. |
|
|
514
514
|
|
|
@@ -529,14 +529,14 @@ Aucun paramètre.
|
|
|
529
529
|
### `require-pr-before-stop`
|
|
530
530
|
|
|
531
531
|
**Événement :** Stop
|
|
532
|
-
**
|
|
532
|
+
**Comportement 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`.
|
|
533
533
|
|
|
534
534
|
Aucun paramètre.
|
|
535
535
|
|
|
536
536
|
<Note>
|
|
537
|
-
Cette politique
|
|
537
|
+
Cette politique nécessite que [GitHub CLI](https://cli.github.com/) (`gh`) soit installé et authentifié.
|
|
538
538
|
Exécutez `gh auth login` avec un personal access token disposant du scope `repo` pour l'accès en lecture aux
|
|
539
|
-
pull requests. Si `gh` n'est pas installé ou
|
|
539
|
+
pull requests. Si `gh` n'est pas installé ou pas authentifié, la politique est fail-open et signale la raison à Claude.
|
|
540
540
|
</Note>
|
|
541
541
|
|
|
542
542
|
---
|
|
@@ -544,23 +544,23 @@ pull requests. Si `gh` n'est pas installé ou non authentifié, la politique est
|
|
|
544
544
|
### `require-ci-green-before-stop`
|
|
545
545
|
|
|
546
546
|
**Événement :** Stop
|
|
547
|
-
**
|
|
547
|
+
**Comportement par défaut :** Refuse l'arrêt lorsque les vérifications CI échouent ou sont toujours en cours sur la branche courante. Vérifie à la fois les exécutions de workflow GitHub Actions et les vérifications de bots tiers (ex. CodeRabbit, SonarCloud, Codecov). Traite les conclusions `skipped` et `cancelled` comme des succès. Retourne un message informatif lorsque toutes les vérifications passent.
|
|
548
548
|
|
|
549
549
|
Aucun paramètre.
|
|
550
550
|
|
|
551
551
|
<Note>
|
|
552
|
-
Cette politique
|
|
552
|
+
Cette politique nécessite que [GitHub CLI](https://cli.github.com/) (`gh`) soit installé et authentifié.
|
|
553
553
|
Exécutez `gh auth login` avec un personal access token disposant du scope `repo` pour l'accès en lecture aux
|
|
554
|
-
|
|
554
|
+
exécutions de workflow Actions et à l'API Checks. Si `gh` n'est pas installé ou pas authentifié, la politique est fail-open et signale la raison à Claude.
|
|
555
555
|
</Note>
|
|
556
556
|
|
|
557
557
|
---
|
|
558
558
|
|
|
559
559
|
---
|
|
560
560
|
|
|
561
|
-
## Désactiver des politiques
|
|
561
|
+
## Désactiver des politiques individuellement
|
|
562
562
|
|
|
563
|
-
Retirez une politique spécifique de `enabledPolicies` dans votre configuration, ou désactivez-la
|
|
563
|
+
Retirez une politique spécifique de `enabledPolicies` dans votre configuration, ou désactivez-la dans l'onglet Politiques du tableau de bord.
|
|
564
564
|
|
|
565
565
|
```json
|
|
566
566
|
{
|
|
@@ -571,4 +571,4 @@ Retirez une politique spécifique de `enabledPolicies` dans votre configuration,
|
|
|
571
571
|
}
|
|
572
572
|
```
|
|
573
573
|
|
|
574
|
-
Les politiques
|
|
574
|
+
Les politiques non listées dans `enabledPolicies` ne s'exécutent pas, même si des entrées `policyParams` existent pour elles.
|