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,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Integrierte
|
|
3
|
-
description: "Alle 30 integrierten
|
|
2
|
+
title: Integrierte Policies
|
|
3
|
+
description: "Alle 30 integrierten Policies, die häufige Fehlerszenarien von Agenten abfangen"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
failproofai wird mit 30 integrierten
|
|
7
|
+
failproofai wird mit 30 integrierten Policies ausgeliefert, die häufige Fehlerszenarien von Agenten abfangen. Jede Policy wird bei einem bestimmten Hook-Ereignistyp und Toolnamen ausgelöst. Neun Policies akzeptieren Parameter, mit denen Sie ihr Verhalten anpassen können, ohne Code zu schreiben. Vier Workflow-Policies erzwingen eine commit → push → PR → CI-Pipeline, bevor Claude stoppt.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
## Übersicht
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Policies sind in Kategorien gruppiert:
|
|
14
14
|
|
|
15
|
-
| Kategorie |
|
|
16
|
-
|
|
15
|
+
| Kategorie | Policies | Hook-Typ |
|
|
16
|
+
|-----------|----------|----------|
|
|
17
17
|
| [Gefährliche Befehle](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
18
|
| [Secrets (Sanitizer)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
19
19
|
| [Umgebung](#environment) | block-env-files, protect-env-vars | PreToolUse |
|
|
@@ -24,7 +24,7 @@ Richtlinien sind in Kategorien gruppiert:
|
|
|
24
24
|
| [Paketmanager](#package-managers) | prefer-package-manager | PreToolUse |
|
|
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
|
-
- **`block-`** — verhindert, dass der Agent
|
|
27
|
+
- **`block-`** — verhindert, dass der Agent fortfährt.
|
|
28
28
|
- **`warn-`** — gibt dem Agenten zusätzlichen Kontext, damit er sich selbst korrigieren kann.
|
|
29
29
|
- **`sanitize-`** — bereinigt sensible Daten aus der Tool-Ausgabe, bevor der Agent sie sieht.
|
|
30
30
|
- **`require-`** — blockiert das Stop-Ereignis, bis die Bedingungen erfüllt sind.
|
|
@@ -32,7 +32,7 @@ Richtlinien sind in Kategorien gruppiert:
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
34
|
<Tip>
|
|
35
|
-
Jede
|
|
35
|
+
Jede Policy unterstützt ein optionales `hint`-Feld in `policyParams`. Der Hinweis wird an die deny- oder instruct-Nachricht angehängt, die Claude sieht, und bietet umsetzbare Hilfestellung, ohne den Policy-Code zu ändern. Funktioniert mit integrierten, benutzerdefinierten und konventionsbasierten Policies. Siehe [Konfiguration → hint](/de/configuration#hint-cross-cutting) für Details.
|
|
36
36
|
</Tip>
|
|
37
37
|
|
|
38
38
|
---
|
|
@@ -46,13 +46,13 @@ Verhindert, dass Agenten Operationen ausführen, die schwer rückgängig zu mach
|
|
|
46
46
|
**Ereignis:** PreToolUse (Bash)
|
|
47
47
|
**Standard:** Verweigert jeden `sudo`-Befehl.
|
|
48
48
|
|
|
49
|
-
Blockiert Aufrufe, die das Schlüsselwort `sudo` enthalten.
|
|
49
|
+
Blockiert Aufrufe, die das Schlüsselwort `sudo` enthalten. Der Musterabgleich erfolgt anhand geparster Befehlstoken, nicht anhand des Rohstrings, um Umgehungsversuche über Shell-Operatoren zu verhindern.
|
|
50
50
|
|
|
51
51
|
**Parameter:**
|
|
52
52
|
|
|
53
53
|
| Parameter | Typ | Standard | Beschreibung |
|
|
54
54
|
|-----------|-----|----------|--------------|
|
|
55
|
-
| `allowPatterns` | `string[]` | `[]` | Exakte Befehlspräfixe, die erlaubt sind. Jeder Eintrag wird
|
|
55
|
+
| `allowPatterns` | `string[]` | `[]` | Exakte Befehlspräfixe, die erlaubt sind. Jeder Eintrag wird mit den geparsten argv-Token abgeglichen. |
|
|
56
56
|
|
|
57
57
|
**Beispiel:**
|
|
58
58
|
|
|
@@ -69,7 +69,7 @@ Blockiert Aufrufe, die das Schlüsselwort `sudo` enthalten. Die Mustererkennung
|
|
|
69
69
|
Mit dieser Konfiguration ist `sudo systemctl status nginx` erlaubt, aber `sudo rm /etc/hosts` wird verweigert.
|
|
70
70
|
|
|
71
71
|
<Note>
|
|
72
|
-
Muster werden gegen geparste
|
|
72
|
+
Muster werden gegen geparste Token abgeglichen, nicht gegen den Rohbefehlsstring. Dies verhindert Umgehungsversuche über angehängte Shell-Operatoren (z. B. entspricht `sudo systemctl status x; rm -rf /` nicht `sudo systemctl status *`).
|
|
73
73
|
</Note>
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -119,12 +119,12 @@ Keine Parameter.
|
|
|
119
119
|
|
|
120
120
|
## Secrets (Sanitizer)
|
|
121
121
|
|
|
122
|
-
Verhindert, dass Agenten Zugangsdaten in ihren Kontext oder ihre Ausgabe
|
|
122
|
+
Verhindert, dass Agenten Zugangsdaten in ihren Kontext oder ihre Ausgabe einschleusen. Sanitizer-Policies werden bei **PostToolUse**-Ereignissen ausgelöst. Wenn Claude einen Bash-Befehl ausführt, eine Datei liest oder ein beliebiges Tool aufruft, prüfen diese Policies die Ausgabe, bevor sie an Claude zurückgegeben wird. Wird ein Secret-Muster erkannt, gibt die Policy eine deny-Entscheidung zurück, die verhindert, dass die Ausgabe weitergeleitet wird.
|
|
123
123
|
|
|
124
124
|
### `sanitize-jwt`
|
|
125
125
|
|
|
126
126
|
**Ereignis:** PostToolUse (alle Tools)
|
|
127
|
-
**Standard:** Schwärzt JWT-
|
|
127
|
+
**Standard:** Schwärzt JWT-Token (drei base64url-Segmente, getrennt durch `.`).
|
|
128
128
|
|
|
129
129
|
Keine Parameter.
|
|
130
130
|
|
|
@@ -133,7 +133,7 @@ Keine Parameter.
|
|
|
133
133
|
### `sanitize-api-keys`
|
|
134
134
|
|
|
135
135
|
**Ereignis:** PostToolUse (alle Tools)
|
|
136
|
-
**Standard:** Schwärzt gängige API-Key-Formate: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS-Zugriffsschlüssel (`AKIA`), Stripe-Schlüssel (`sk_live_`, `sk_test_`) und Google
|
|
136
|
+
**Standard:** Schwärzt gängige API-Key-Formate: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS-Zugriffsschlüssel (`AKIA`), Stripe-Schlüssel (`sk_live_`, `sk_test_`) und Google-API-Schlüssel (`AIza`).
|
|
137
137
|
|
|
138
138
|
**Parameter:**
|
|
139
139
|
|
|
@@ -161,7 +161,7 @@ Keine Parameter.
|
|
|
161
161
|
### `sanitize-connection-strings`
|
|
162
162
|
|
|
163
163
|
**Ereignis:** PostToolUse (alle Tools)
|
|
164
|
-
**Standard:** Schwärzt Datenbankverbindungsstrings
|
|
164
|
+
**Standard:** Schwärzt Datenbankverbindungsstrings, die eingebettete Zugangsdaten enthalten (z. B. `postgresql://user:password@host/db`).
|
|
165
165
|
|
|
166
166
|
Keine Parameter.
|
|
167
167
|
|
|
@@ -179,7 +179,7 @@ Keine Parameter.
|
|
|
179
179
|
### `sanitize-bearer-tokens`
|
|
180
180
|
|
|
181
181
|
**Ereignis:** PostToolUse (alle Tools)
|
|
182
|
-
**Standard:** Schwärzt `Authorization: Bearer <token>`-Header, bei denen
|
|
182
|
+
**Standard:** Schwärzt `Authorization: Bearer <token>`-Header, bei denen das Token 20 oder mehr Zeichen lang ist.
|
|
183
183
|
|
|
184
184
|
Keine Parameter.
|
|
185
185
|
|
|
@@ -194,7 +194,7 @@ Schützt sensible Umgebungskonfigurationen davor, von Agenten gelesen oder offen
|
|
|
194
194
|
**Ereignis:** PreToolUse (Bash, Read)
|
|
195
195
|
**Standard:** Verweigert das Lesen von `.env`-Dateien über `cat .env`, `Read`-Tool-Aufrufe mit `.env` als Dateipfad usw.
|
|
196
196
|
|
|
197
|
-
Blockiert keine `.envrc`- oder anderen
|
|
197
|
+
Blockiert keine `.envrc`- oder anderen umgebungsähnlichen Dateien – nur Dateien, die exakt `.env` heißen.
|
|
198
198
|
|
|
199
199
|
Keine Parameter.
|
|
200
200
|
|
|
@@ -211,7 +211,7 @@ Keine Parameter.
|
|
|
211
211
|
|
|
212
212
|
## Dateizugriff
|
|
213
213
|
|
|
214
|
-
Hält Agenten innerhalb der Projektgrenzen und
|
|
214
|
+
Hält Agenten innerhalb der Projektgrenzen und von sensiblen Dateien fern.
|
|
215
215
|
|
|
216
216
|
### `block-read-outside-cwd`
|
|
217
217
|
|
|
@@ -222,7 +222,7 @@ Hält Agenten innerhalb der Projektgrenzen und fernab von sensiblen Dateien.
|
|
|
222
222
|
|
|
223
223
|
| Parameter | Typ | Standard | Beschreibung |
|
|
224
224
|
|-----------|-----|----------|--------------|
|
|
225
|
-
| `allowPaths` | `string[]` | `[]` | Absolute Pfadpräfixe, die auch außerhalb des
|
|
225
|
+
| `allowPaths` | `string[]` | `[]` | Absolute Pfadpräfixe, die auch außerhalb des cwd erlaubt sind. |
|
|
226
226
|
|
|
227
227
|
**Beispiel:**
|
|
228
228
|
|
|
@@ -247,7 +247,7 @@ Hält Agenten innerhalb der Projektgrenzen und fernab von sensiblen Dateien.
|
|
|
247
247
|
|
|
248
248
|
| Parameter | Typ | Standard | Beschreibung |
|
|
249
249
|
|-----------|-----|----------|--------------|
|
|
250
|
-
| `additionalPatterns` | `string[]` | `[]` | Zusätzliche Dateinamenmuster (Glob-
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | Zusätzliche Dateinamenmuster (Glob-Stil), die blockiert werden sollen. |
|
|
251
251
|
|
|
252
252
|
**Beispiel:**
|
|
253
253
|
|
|
@@ -276,7 +276,7 @@ Verhindert versehentliche Pushes, Force-Pushes und Branch-Fehler, die schwer rü
|
|
|
276
276
|
|
|
277
277
|
| Parameter | Typ | Standard | Beschreibung |
|
|
278
278
|
|-----------|-----|----------|--------------|
|
|
279
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Branch-Namen,
|
|
279
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Branch-Namen, zu denen nicht direkt gepusht werden darf. |
|
|
280
280
|
|
|
281
281
|
**Beispiel:**
|
|
282
282
|
|
|
@@ -291,7 +291,7 @@ Verhindert versehentliche Pushes, Force-Pushes und Branch-Fehler, die schwer rü
|
|
|
291
291
|
```
|
|
292
292
|
|
|
293
293
|
<Tip>
|
|
294
|
-
Um das Pushen
|
|
294
|
+
Um das Pushen zu allen Branches zu erlauben (und diese Policy damit effektiv zu deaktivieren, ohne sie aus `enabledPolicies` zu entfernen), setzen Sie `protectedBranches: []`.
|
|
295
295
|
</Tip>
|
|
296
296
|
|
|
297
297
|
---
|
|
@@ -314,7 +314,7 @@ Um das Pushen auf alle Branches zu erlauben (und diese Richtlinie damit effektiv
|
|
|
314
314
|
**Ereignis:** PreToolUse (Bash)
|
|
315
315
|
**Standard:** Verweigert `git push --force` und `git push -f`.
|
|
316
316
|
|
|
317
|
-
Keine
|
|
317
|
+
Keine policy-spezifischen Parameter. Verwenden Sie das übergreifende [`hint`](/de/configuration#hint-cross-cutting), um Alternativen vorzuschlagen:
|
|
318
318
|
|
|
319
319
|
```json
|
|
320
320
|
{
|
|
@@ -331,7 +331,7 @@ Keine richtlinienspezifischen Parameter. Verwenden Sie das übergreifende [`hint
|
|
|
331
331
|
### `warn-git-amend`
|
|
332
332
|
|
|
333
333
|
**Ereignis:** PreToolUse (Bash)
|
|
334
|
-
**Standard:** Weist Claude an,
|
|
334
|
+
**Standard:** Weist Claude an, beim Ausführen von `git commit --amend` vorsichtig vorzugehen. Blockiert den Befehl nicht.
|
|
335
335
|
|
|
336
336
|
Keine Parameter.
|
|
337
337
|
|
|
@@ -340,7 +340,7 @@ Keine Parameter.
|
|
|
340
340
|
### `warn-git-stash-drop`
|
|
341
341
|
|
|
342
342
|
**Ereignis:** PreToolUse (Bash)
|
|
343
|
-
**Standard:** Weist Claude an,
|
|
343
|
+
**Standard:** Weist Claude an, vor dem Ausführen von `git stash drop` zu bestätigen. Blockiert den Befehl nicht.
|
|
344
344
|
|
|
345
345
|
Keine Parameter.
|
|
346
346
|
|
|
@@ -349,7 +349,7 @@ Keine Parameter.
|
|
|
349
349
|
### `warn-all-files-staged`
|
|
350
350
|
|
|
351
351
|
**Ereignis:** PreToolUse (Bash)
|
|
352
|
-
**Standard:** Weist Claude an, zu
|
|
352
|
+
**Standard:** Weist Claude an, zu prüfen, was es stagt, wenn es `git add -A` oder `git add .` ausführt. Blockiert den Befehl nicht.
|
|
353
353
|
|
|
354
354
|
Keine Parameter.
|
|
355
355
|
|
|
@@ -357,7 +357,7 @@ Keine Parameter.
|
|
|
357
357
|
|
|
358
358
|
## Datenbank
|
|
359
359
|
|
|
360
|
-
|
|
360
|
+
Fängt destruktive SQL-Operationen ab, bevor sie gegen Ihre Datenbank ausgeführt werden.
|
|
361
361
|
|
|
362
362
|
### `warn-destructive-sql`
|
|
363
363
|
|
|
@@ -384,7 +384,7 @@ Gibt Agenten zusätzlichen Kontext vor potenziell riskanten, aber nicht destrukt
|
|
|
384
384
|
### `warn-large-file-write`
|
|
385
385
|
|
|
386
386
|
**Ereignis:** PreToolUse (Write)
|
|
387
|
-
**Standard:** Weist Claude an, zu bestätigen, bevor Dateien
|
|
387
|
+
**Standard:** Weist Claude an, zu bestätigen, bevor Dateien mit mehr als 1024 KB geschrieben werden.
|
|
388
388
|
|
|
389
389
|
**Parameter:**
|
|
390
390
|
|
|
@@ -405,7 +405,7 @@ Gibt Agenten zusätzlichen Kontext vor potenziell riskanten, aber nicht destrukt
|
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
<Note>
|
|
408
|
-
Der Hook-Handler erzwingt ein 1-MB-stdin-Limit für Payloads. Um diese
|
|
408
|
+
Der Hook-Handler erzwingt ein 1-MB-stdin-Limit für Payloads. Um diese Policy mit kleinen Inhalten zu testen, setzen Sie `thresholdKb` auf einen Wert deutlich unter 1024.
|
|
409
409
|
</Note>
|
|
410
410
|
|
|
411
411
|
---
|
|
@@ -444,16 +444,16 @@ Legt fest, welche Paketmanager der Agent verwenden darf.
|
|
|
444
444
|
### `prefer-package-manager`
|
|
445
445
|
|
|
446
446
|
**Ereignis:** PreToolUse (Bash)
|
|
447
|
-
**Standard:** Deaktiviert. Wenn aktiviert, blockiert
|
|
447
|
+
**Standard:** Deaktiviert. Wenn aktiviert, blockiert jeden Paketmanager-Befehl, der nicht in der `allowed`-Liste enthalten ist, und weist Claude an, den Befehl mit einem erlaubten Manager umzuschreiben.
|
|
448
448
|
|
|
449
449
|
Erkennt: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
450
|
|
|
451
451
|
| Parameter | Typ | Standard | Beschreibung |
|
|
452
452
|
|-----------|-----|----------|--------------|
|
|
453
|
-
| `allowed` | string[] | `[]` | Erlaubte Paketmanager-Namen. Jeder erkannte Manager, der nicht in dieser Liste steht, wird blockiert.
|
|
453
|
+
| `allowed` | string[] | `[]` | Erlaubte Paketmanager-Namen. Jeder erkannte Manager, der nicht in dieser Liste steht, wird blockiert. Wenn leer, ist die Policy wirkungslos. |
|
|
454
454
|
| `blocked` | string[] | `[]` | Zusätzliche Manager-Namen, die über die integrierte Liste hinaus blockiert werden sollen (z. B. `['pdm', 'pipx']`). |
|
|
455
455
|
|
|
456
|
-
Die integrierte
|
|
456
|
+
Die integrierte Blockliste umfasst: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Verwenden Sie `blocked`, um Manager hinzuzufügen, die nicht in dieser Liste enthalten sind.
|
|
457
457
|
|
|
458
458
|
**Beispielkonfiguration:**
|
|
459
459
|
|
|
@@ -469,7 +469,7 @@ Die integrierte Sperrliste umfasst: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun,
|
|
|
469
469
|
}
|
|
470
470
|
```
|
|
471
471
|
|
|
472
|
-
Mit dieser Konfiguration werden
|
|
472
|
+
Mit dieser Konfiguration werden `pip install flask` und `pdm install flask` beide mit einer Meldung verweigert, die Claude auffordert, stattdessen `uv` oder `bun` zu verwenden. Befehle wie `uv pip install flask` sind erlaubt, da `uv` in der Allowlist steht und zuerst geprüft wird.
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
@@ -480,7 +480,7 @@ Erkennt, wenn Agenten feststecken oder sich unerwartet verhalten.
|
|
|
480
480
|
### `warn-repeated-tool-calls`
|
|
481
481
|
|
|
482
482
|
**Ereignis:** PreToolUse (alle Tools)
|
|
483
|
-
**Standard:** Weist Claude an, zu überdenken, wenn dasselbe Tool 3 oder
|
|
483
|
+
**Standard:** Weist Claude an, zu überdenken, wenn dasselbe Tool 3-mal oder öfter mit identischen Parametern aufgerufen wird – ein häufiges Zeichen dafür, dass der Agent in einer Schleife feststeckt.
|
|
484
484
|
|
|
485
485
|
Keine Parameter.
|
|
486
486
|
|
|
@@ -488,14 +488,14 @@ Keine Parameter.
|
|
|
488
488
|
|
|
489
489
|
## Workflow
|
|
490
490
|
|
|
491
|
-
Erzwingt einen disziplinierten Sitzungsabschluss-Workflow. Diese
|
|
491
|
+
Erzwingt einen disziplinierten Sitzungsabschluss-Workflow. Diese Policies werden beim **Stop**-Ereignis ausgelöst und verhindern, dass Claude stoppt, bis jede Bedingung erfüllt ist. Sie folgen einer natürlichen Abhängigkeitskette: commit → push → PR → CI. Wenn eine Policy verweigert, werden spätere Policies in der Kette übersprungen (deny schließt kurz).
|
|
492
492
|
|
|
493
|
-
Alle Workflow-
|
|
493
|
+
Alle Workflow-Policies sind **fail-open**: Wenn das benötigte Tool nicht verfügbar ist (z. B. `gh` nicht installiert, kein Git-Remote), erlaubt die Policy den Vorgang mit einer informativen Meldung, die erklärt, warum die Prüfung übersprungen wurde.
|
|
494
494
|
|
|
495
495
|
### `require-commit-before-stop`
|
|
496
496
|
|
|
497
497
|
**Ereignis:** Stop
|
|
498
|
-
**Standard:** Verweigert das
|
|
498
|
+
**Standard:** Verweigert das Stoppen, wenn uncommittete Änderungen vorliegen (geänderte, gestagte oder nicht verfolgte Dateien). Gibt eine informative Meldung zurück, wenn das Arbeitsverzeichnis sauber ist.
|
|
499
499
|
|
|
500
500
|
Keine Parameter.
|
|
501
501
|
|
|
@@ -504,13 +504,13 @@ Keine Parameter.
|
|
|
504
504
|
### `require-push-before-stop`
|
|
505
505
|
|
|
506
506
|
**Ereignis:** Stop
|
|
507
|
-
**Standard:** Verweigert das
|
|
507
|
+
**Standard:** Verweigert das Stoppen, wenn nicht gepushte Commits vorhanden sind oder wenn der aktuelle Branch keinen Remote-Tracking-Branch hat. Schlägt `git push -u` vor, um bei Bedarf einen Tracking-Branch zu erstellen. Fail-open, wenn kein Remote konfiguriert ist.
|
|
508
508
|
|
|
509
509
|
**Parameter:**
|
|
510
510
|
|
|
511
511
|
| Parameter | Typ | Standard | Beschreibung |
|
|
512
512
|
|-----------|-----|----------|--------------|
|
|
513
|
-
| `remote` | `string` | `"origin"` | Remote-Name,
|
|
513
|
+
| `remote` | `string` | `"origin"` | Remote-Name, zu dem gepusht werden soll. |
|
|
514
514
|
|
|
515
515
|
**Beispiel:**
|
|
516
516
|
|
|
@@ -529,14 +529,14 @@ Keine Parameter.
|
|
|
529
529
|
### `require-pr-before-stop`
|
|
530
530
|
|
|
531
531
|
**Ereignis:** Stop
|
|
532
|
-
**Standard:** Verweigert das
|
|
532
|
+
**Standard:** Verweigert das Stoppen, wenn kein Pull Request für den aktuellen Branch existiert oder wenn der vorhandene PR geschlossen/gemergt ist. Weist Claude an, einen PR mit `gh pr create` zu erstellen.
|
|
533
533
|
|
|
534
534
|
Keine Parameter.
|
|
535
535
|
|
|
536
536
|
<Note>
|
|
537
|
-
Diese
|
|
537
|
+
Diese Policy erfordert, dass [GitHub CLI](https://cli.github.com/) (`gh`) installiert und authentifiziert ist.
|
|
538
538
|
Führen Sie `gh auth login` mit einem Personal Access Token aus, das den `repo`-Scope für Lesezugriff auf
|
|
539
|
-
Pull Requests
|
|
539
|
+
Pull Requests besitzt. Wenn `gh` nicht installiert oder nicht authentifiziert ist, ist die Policy fail-open und meldet den Grund an Claude.
|
|
540
540
|
</Note>
|
|
541
541
|
|
|
542
542
|
---
|
|
@@ -544,23 +544,23 @@ Pull Requests hat. Wenn `gh` nicht installiert oder nicht authentifiziert ist, s
|
|
|
544
544
|
### `require-ci-green-before-stop`
|
|
545
545
|
|
|
546
546
|
**Ereignis:** Stop
|
|
547
|
-
**Standard:** Verweigert das
|
|
547
|
+
**Standard:** Verweigert das Stoppen, wenn CI-Prüfungen fehlschlagen oder noch auf dem aktuellen Branch laufen. Prüft sowohl GitHub Actions-Workflow-Runs als auch Drittanbieter-Bot-Prüfungen (z. B. CodeRabbit, SonarCloud, Codecov). Behandelt `skipped`- und `cancelled`-Abschlüsse als Erfolg. Gibt eine informative Meldung zurück, wenn alle Prüfungen bestanden sind.
|
|
548
548
|
|
|
549
549
|
Keine Parameter.
|
|
550
550
|
|
|
551
551
|
<Note>
|
|
552
|
-
Diese
|
|
552
|
+
Diese Policy erfordert, dass [GitHub CLI](https://cli.github.com/) (`gh`) installiert und authentifiziert ist.
|
|
553
553
|
Führen Sie `gh auth login` mit einem Personal Access Token aus, das den `repo`-Scope für Lesezugriff auf
|
|
554
|
-
Actions-Workflow-
|
|
554
|
+
Actions-Workflow-Runs und die Checks API besitzt. Wenn `gh` nicht installiert oder nicht authentifiziert ist, ist die Policy fail-open und meldet den Grund an Claude.
|
|
555
555
|
</Note>
|
|
556
556
|
|
|
557
557
|
---
|
|
558
558
|
|
|
559
559
|
---
|
|
560
560
|
|
|
561
|
-
## Einzelne
|
|
561
|
+
## Einzelne Policies deaktivieren
|
|
562
562
|
|
|
563
|
-
Entfernen Sie eine bestimmte
|
|
563
|
+
Entfernen Sie eine bestimmte Policy aus `enabledPolicies` in Ihrer Konfiguration, oder deaktivieren Sie sie im Policies-Tab des Dashboards.
|
|
564
564
|
|
|
565
565
|
```json
|
|
566
566
|
{
|
|
@@ -571,4 +571,4 @@ Entfernen Sie eine bestimmte Richtlinie aus `enabledPolicies` in Ihrer Konfigura
|
|
|
571
571
|
}
|
|
572
572
|
```
|
|
573
573
|
|
|
574
|
-
|
|
574
|
+
Policies, die nicht in `enabledPolicies` aufgeführt sind, werden nicht ausgeführt, auch wenn `policyParams`-Einträge für sie vorhanden sind.
|