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
2
|
title: Políticas Integradas
|
|
3
|
-
description: "Todas as 30 políticas integradas que detectam
|
|
3
|
+
description: "Todas as 30 políticas integradas que detectam falhas comuns em agentes"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
failproofai vem com 30 políticas integradas que detectam
|
|
7
|
+
failproofai vem com 30 políticas integradas que detectam falhas comuns em agentes. Cada política é acionada em um tipo específico de evento de hook e nome de ferramenta. Nove políticas aceitam parâmetros que permitem ajustar seu comportamento sem escrever código. Quatro políticas de fluxo de trabalho impõem um pipeline de commit → push → PR → CI antes que Claude pare.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
## Visão
|
|
11
|
+
## Visão Geral
|
|
12
12
|
|
|
13
13
|
As políticas são agrupadas em categorias:
|
|
14
14
|
|
|
15
15
|
| Categoria | Políticas | Tipo de hook |
|
|
16
|
-
|
|
16
|
+
|-----------|-----------|--------------|
|
|
17
17
|
| [Comandos perigosos](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
18
|
| [Segredos (sanitizadores)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
19
19
|
| [Ambiente](#environment) | block-env-files, protect-env-vars | PreToolUse |
|
|
@@ -22,7 +22,7 @@ As políticas são agrupadas em categorias:
|
|
|
22
22
|
| [Banco de dados](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
|
|
23
23
|
| [Avisos](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
|
|
24
24
|
| [Gerenciadores de pacotes](#package-managers) | prefer-package-manager | PreToolUse |
|
|
25
|
-
| [
|
|
25
|
+
| [Fluxo de trabalho](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
26
26
|
|
|
27
27
|
- **`block-`** — impede o agente de prosseguir.
|
|
28
28
|
- **`warn-`** — fornece contexto adicional ao agente para que ele possa se autocorrigir.
|
|
@@ -32,27 +32,27 @@ As políticas são agrupadas em categorias:
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
34
|
<Tip>
|
|
35
|
-
Toda política suporta um campo `hint`
|
|
35
|
+
Toda política suporta um campo opcional `hint` em `policyParams`. O hint é anexado à mensagem de deny ou instruct que Claude vê, fornecendo orientação prática sem modificar o código da política. Funciona com políticas integradas, personalizadas e de convenção. Consulte [Configuração → hint](/pt-br/configuration#hint-cross-cutting) para mais detalhes.
|
|
36
36
|
</Tip>
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
40
|
## Comandos perigosos
|
|
41
41
|
|
|
42
|
-
Impede agentes
|
|
42
|
+
Impede que agentes executem operações difíceis de desfazer ou que possam danificar o sistema host.
|
|
43
43
|
|
|
44
44
|
### `block-sudo`
|
|
45
45
|
|
|
46
46
|
**Evento:** PreToolUse (Bash)
|
|
47
47
|
**Padrão:** Nega qualquer comando `sudo`.
|
|
48
48
|
|
|
49
|
-
Bloqueia invocações que incluem a palavra-chave `sudo`. A correspondência de
|
|
49
|
+
Bloqueia invocações que incluem a palavra-chave `sudo`. A correspondência de padrão é feita nos tokens de comando analisados, não na string bruta, para evitar bypass por injeção de operadores shell.
|
|
50
50
|
|
|
51
51
|
**Parâmetros:**
|
|
52
52
|
|
|
53
53
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
54
|
-
|
|
55
|
-
| `allowPatterns` | `string[]` | `[]` | Prefixos
|
|
54
|
+
|-----------|------|--------|-----------|
|
|
55
|
+
| `allowPatterns` | `string[]` | `[]` | Prefixos de comando exatos que são permitidos. Cada entrada é comparada com os tokens argv analisados. |
|
|
56
56
|
|
|
57
57
|
**Exemplo:**
|
|
58
58
|
|
|
@@ -69,7 +69,7 @@ Bloqueia invocações que incluem a palavra-chave `sudo`. A correspondência de
|
|
|
69
69
|
Com esta configuração, `sudo systemctl status nginx` é permitido, mas `sudo rm /etc/hosts` é negado.
|
|
70
70
|
|
|
71
71
|
<Note>
|
|
72
|
-
Os padrões são
|
|
72
|
+
Os padrões são comparados com os tokens analisados, não com a string de comando bruta. Isso impede bypass por meio de operadores shell anexados (ex.: `sudo systemctl status x; rm -rf /` não corresponde a `sudo systemctl status *`).
|
|
73
73
|
</Note>
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -82,8 +82,8 @@ Os padrões são correspondidos com tokens analisados, não com a string de coma
|
|
|
82
82
|
**Parâmetros:**
|
|
83
83
|
|
|
84
84
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
85
|
-
|
|
86
|
-
| `allowPaths` | `string[]` | `[]` | Caminhos que
|
|
85
|
+
|-----------|------|--------|-----------|
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | Caminhos que podem ser excluídos recursivamente com segurança (ex.: `/tmp`). |
|
|
87
87
|
|
|
88
88
|
**Exemplo:**
|
|
89
89
|
|
|
@@ -119,7 +119,7 @@ Sem parâmetros.
|
|
|
119
119
|
|
|
120
120
|
## Segredos (sanitizadores)
|
|
121
121
|
|
|
122
|
-
Impede agentes
|
|
122
|
+
Impede que agentes vazem credenciais em seu contexto ou saída. As políticas de sanitização são acionadas em eventos **PostToolUse**. Quando Claude executa um comando Bash, lê um arquivo ou chama qualquer ferramenta, essas políticas inspecionam a saída antes de ela ser retornada a Claude. Se um padrão de segredo for detectado, a política retorna uma decisão de deny que impede que a saída seja repassada.
|
|
123
123
|
|
|
124
124
|
### `sanitize-jwt`
|
|
125
125
|
|
|
@@ -133,12 +133,12 @@ Sem parâmetros.
|
|
|
133
133
|
### `sanitize-api-keys`
|
|
134
134
|
|
|
135
135
|
**Evento:** PostToolUse (todas as ferramentas)
|
|
136
|
-
**Padrão:** Redige formatos comuns de chave de API: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), chaves de acesso AWS (`AKIA`), chaves Stripe (`sk_live_`, `sk_test_`) e chaves
|
|
136
|
+
**Padrão:** Redige formatos comuns de chave de API: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), chaves de acesso AWS (`AKIA`), chaves Stripe (`sk_live_`, `sk_test_`) e chaves de API do Google (`AIza`).
|
|
137
137
|
|
|
138
138
|
**Parâmetros:**
|
|
139
139
|
|
|
140
140
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
141
|
-
|
|
141
|
+
|-----------|------|--------|-----------|
|
|
142
142
|
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Padrões regex adicionais para tratar como segredos. |
|
|
143
143
|
|
|
144
144
|
**Exemplo:**
|
|
@@ -161,7 +161,7 @@ Sem parâmetros.
|
|
|
161
161
|
### `sanitize-connection-strings`
|
|
162
162
|
|
|
163
163
|
**Evento:** PostToolUse (todas as ferramentas)
|
|
164
|
-
**Padrão:** Redige strings de conexão de banco de dados que contêm credenciais
|
|
164
|
+
**Padrão:** Redige strings de conexão de banco de dados que contêm credenciais embutidas (ex.: `postgresql://user:password@host/db`).
|
|
165
165
|
|
|
166
166
|
Sem parâmetros.
|
|
167
167
|
|
|
@@ -187,14 +187,14 @@ Sem parâmetros.
|
|
|
187
187
|
|
|
188
188
|
## Ambiente
|
|
189
189
|
|
|
190
|
-
Protege
|
|
190
|
+
Protege a configuração sensível do ambiente de ser lida ou exposta por agentes.
|
|
191
191
|
|
|
192
192
|
### `block-env-files`
|
|
193
193
|
|
|
194
194
|
**Evento:** PreToolUse (Bash, Read)
|
|
195
195
|
**Padrão:** Nega a leitura de arquivos `.env` via `cat .env`, chamadas da ferramenta `Read` com `.env` como caminho do arquivo, etc.
|
|
196
196
|
|
|
197
|
-
Não bloqueia `.envrc` ou outros arquivos relacionados
|
|
197
|
+
Não bloqueia `.envrc` ou outros arquivos relacionados ao ambiente — apenas arquivos nomeados exatamente `.env`.
|
|
198
198
|
|
|
199
199
|
Sem parâmetros.
|
|
200
200
|
|
|
@@ -221,8 +221,8 @@ Mantém os agentes trabalhando dentro dos limites do projeto e longe de arquivos
|
|
|
221
221
|
**Parâmetros:**
|
|
222
222
|
|
|
223
223
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
224
|
-
|
|
225
|
-
| `allowPaths` | `string[]` | `[]` | Prefixos de caminho absoluto que são permitidos mesmo
|
|
224
|
+
|-----------|------|--------|-----------|
|
|
225
|
+
| `allowPaths` | `string[]` | `[]` | Prefixos de caminho absoluto que são permitidos mesmo estando fora do cwd. |
|
|
226
226
|
|
|
227
227
|
**Exemplo:**
|
|
228
228
|
|
|
@@ -246,8 +246,8 @@ Mantém os agentes trabalhando dentro dos limites do projeto e longe de arquivos
|
|
|
246
246
|
**Parâmetros:**
|
|
247
247
|
|
|
248
248
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
249
|
-
|
|
250
|
-
| `additionalPatterns` | `string[]` | `[]` | Padrões
|
|
249
|
+
|-----------|------|--------|-----------|
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | Padrões de nome de arquivo adicionais (estilo glob) para bloquear. |
|
|
251
251
|
|
|
252
252
|
**Exemplo:**
|
|
253
253
|
|
|
@@ -275,8 +275,8 @@ Previne pushes acidentais, force-pushes e erros de branch que são difíceis de
|
|
|
275
275
|
**Parâmetros:**
|
|
276
276
|
|
|
277
277
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
278
|
-
|
|
279
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomes de
|
|
278
|
+
|-----------|------|--------|-----------|
|
|
279
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomes de branch para os quais não é possível fazer push diretamente. |
|
|
280
280
|
|
|
281
281
|
**Exemplo:**
|
|
282
282
|
|
|
@@ -291,7 +291,7 @@ Previne pushes acidentais, force-pushes e erros de branch que são difíceis de
|
|
|
291
291
|
```
|
|
292
292
|
|
|
293
293
|
<Tip>
|
|
294
|
-
Para permitir push em todos os branches (efetivamente
|
|
294
|
+
Para permitir push em todos os branches (desativando efetivamente esta política sem removê-la de `enabledPolicies`), defina `protectedBranches: []`.
|
|
295
295
|
</Tip>
|
|
296
296
|
|
|
297
297
|
---
|
|
@@ -299,13 +299,13 @@ Para permitir push em todos os branches (efetivamente desabilitando esta políti
|
|
|
299
299
|
### `block-work-on-main`
|
|
300
300
|
|
|
301
301
|
**Evento:** PreToolUse (Bash)
|
|
302
|
-
**Padrão:** Nega checkout direto
|
|
302
|
+
**Padrão:** Nega o checkout direto dos branches `main` ou `master`.
|
|
303
303
|
|
|
304
304
|
**Parâmetros:**
|
|
305
305
|
|
|
306
306
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
307
|
-
|
|
308
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomes de
|
|
307
|
+
|-----------|------|--------|-----------|
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomes de branch que não podem ser acessados diretamente via checkout. |
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
@@ -314,7 +314,7 @@ Para permitir push em todos os branches (efetivamente desabilitando esta políti
|
|
|
314
314
|
**Evento:** PreToolUse (Bash)
|
|
315
315
|
**Padrão:** Nega `git push --force` e `git push -f`.
|
|
316
316
|
|
|
317
|
-
Sem parâmetros específicos
|
|
317
|
+
Sem parâmetros específicos de política. Use o [`hint`](/pt-br/configuration#hint-cross-cutting) transversal para sugerir alternativas:
|
|
318
318
|
|
|
319
319
|
```json
|
|
320
320
|
{
|
|
@@ -331,7 +331,7 @@ Sem parâmetros específicos da política. Use o [`hint`](/pt-br/configuration#h
|
|
|
331
331
|
### `warn-git-amend`
|
|
332
332
|
|
|
333
333
|
**Evento:** PreToolUse (Bash)
|
|
334
|
-
**Padrão:** Instrui
|
|
334
|
+
**Padrão:** Instrui Claude a prosseguir com cuidado ao executar `git commit --amend`. Não bloqueia o comando.
|
|
335
335
|
|
|
336
336
|
Sem parâmetros.
|
|
337
337
|
|
|
@@ -340,7 +340,7 @@ Sem parâmetros.
|
|
|
340
340
|
### `warn-git-stash-drop`
|
|
341
341
|
|
|
342
342
|
**Evento:** PreToolUse (Bash)
|
|
343
|
-
**Padrão:** Instrui
|
|
343
|
+
**Padrão:** Instrui Claude a confirmar antes de executar `git stash drop`. Não bloqueia o comando.
|
|
344
344
|
|
|
345
345
|
Sem parâmetros.
|
|
346
346
|
|
|
@@ -349,7 +349,7 @@ Sem parâmetros.
|
|
|
349
349
|
### `warn-all-files-staged`
|
|
350
350
|
|
|
351
351
|
**Evento:** PreToolUse (Bash)
|
|
352
|
-
**Padrão:** Instrui
|
|
352
|
+
**Padrão:** Instrui Claude a revisar o que está sendo preparado para commit ao executar `git add -A` ou `git add .`. Não bloqueia o comando.
|
|
353
353
|
|
|
354
354
|
Sem parâmetros.
|
|
355
355
|
|
|
@@ -357,12 +357,12 @@ Sem parâmetros.
|
|
|
357
357
|
|
|
358
358
|
## Banco de dados
|
|
359
359
|
|
|
360
|
-
Detecta operações SQL destrutivas antes que sejam executadas no
|
|
360
|
+
Detecta operações SQL destrutivas antes que sejam executadas no banco de dados.
|
|
361
361
|
|
|
362
362
|
### `warn-destructive-sql`
|
|
363
363
|
|
|
364
364
|
**Evento:** PreToolUse (Bash)
|
|
365
|
-
**Padrão:** Instrui
|
|
365
|
+
**Padrão:** Instrui Claude a confirmar antes de executar SQL contendo `DROP TABLE`, `DROP DATABASE` ou `DELETE` sem uma cláusula `WHERE`.
|
|
366
366
|
|
|
367
367
|
Sem parâmetros.
|
|
368
368
|
|
|
@@ -371,7 +371,7 @@ Sem parâmetros.
|
|
|
371
371
|
### `warn-schema-alteration`
|
|
372
372
|
|
|
373
373
|
**Evento:** PreToolUse (Bash)
|
|
374
|
-
**Padrão:** Instrui
|
|
374
|
+
**Padrão:** Instrui Claude a confirmar antes de executar instruções `ALTER TABLE`.
|
|
375
375
|
|
|
376
376
|
Sem parâmetros.
|
|
377
377
|
|
|
@@ -384,12 +384,12 @@ Fornece contexto extra aos agentes antes de operações potencialmente arriscada
|
|
|
384
384
|
### `warn-large-file-write`
|
|
385
385
|
|
|
386
386
|
**Evento:** PreToolUse (Write)
|
|
387
|
-
**Padrão:** Instrui
|
|
387
|
+
**Padrão:** Instrui Claude a confirmar antes de gravar arquivos maiores que 1024 KB.
|
|
388
388
|
|
|
389
389
|
**Parâmetros:**
|
|
390
390
|
|
|
391
391
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
392
|
-
|
|
392
|
+
|-----------|------|--------|-----------|
|
|
393
393
|
| `thresholdKb` | `number` | `1024` | Limite de tamanho de arquivo em kilobytes acima do qual um aviso é emitido. |
|
|
394
394
|
|
|
395
395
|
**Exemplo:**
|
|
@@ -405,7 +405,7 @@ Fornece contexto extra aos agentes antes de operações potencialmente arriscada
|
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
<Note>
|
|
408
|
-
O handler do hook impõe um limite de 1 MB
|
|
408
|
+
O handler do hook impõe um limite de 1 MB no stdin para payloads. Para testar esta política com conteúdo pequeno, defina `thresholdKb` com um valor bem abaixo de 1024.
|
|
409
409
|
</Note>
|
|
410
410
|
|
|
411
411
|
---
|
|
@@ -413,7 +413,7 @@ O handler do hook impõe um limite de 1 MB de stdin em payloads. Para testar est
|
|
|
413
413
|
### `warn-package-publish`
|
|
414
414
|
|
|
415
415
|
**Evento:** PreToolUse (Bash)
|
|
416
|
-
**Padrão:** Instrui
|
|
416
|
+
**Padrão:** Instrui Claude a confirmar antes de executar `npm publish`.
|
|
417
417
|
|
|
418
418
|
Sem parâmetros.
|
|
419
419
|
|
|
@@ -422,7 +422,7 @@ Sem parâmetros.
|
|
|
422
422
|
### `warn-background-process`
|
|
423
423
|
|
|
424
424
|
**Evento:** PreToolUse (Bash)
|
|
425
|
-
**Padrão:** Instrui
|
|
425
|
+
**Padrão:** Instrui Claude a ter cuidado ao iniciar processos em segundo plano via `nohup`, `&`, `disown` ou `screen`.
|
|
426
426
|
|
|
427
427
|
Sem parâmetros.
|
|
428
428
|
|
|
@@ -431,7 +431,7 @@ Sem parâmetros.
|
|
|
431
431
|
### `warn-global-package-install`
|
|
432
432
|
|
|
433
433
|
**Evento:** PreToolUse (Bash)
|
|
434
|
-
**Padrão:** Instrui
|
|
434
|
+
**Padrão:** Instrui Claude a confirmar antes de executar `npm install -g`, `yarn global add` ou `pip install` sem um ambiente virtual.
|
|
435
435
|
|
|
436
436
|
Sem parâmetros.
|
|
437
437
|
|
|
@@ -439,21 +439,21 @@ Sem parâmetros.
|
|
|
439
439
|
|
|
440
440
|
## Gerenciadores de pacotes
|
|
441
441
|
|
|
442
|
-
Impõe quais gerenciadores de pacotes o agente
|
|
442
|
+
Impõe quais gerenciadores de pacotes o agente pode usar.
|
|
443
443
|
|
|
444
444
|
### `prefer-package-manager`
|
|
445
445
|
|
|
446
446
|
**Evento:** PreToolUse (Bash)
|
|
447
|
-
**Padrão:** Desabilitado. Quando habilitado, bloqueia qualquer comando de gerenciador de pacotes que não esteja na lista `allowed` e
|
|
447
|
+
**Padrão:** Desabilitado. Quando habilitado, bloqueia qualquer comando de gerenciador de pacotes que não esteja na lista `allowed` e instrui Claude a reescrever o comando usando um gerenciador permitido.
|
|
448
448
|
|
|
449
449
|
Detecta: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
450
|
|
|
451
451
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
452
|
-
|
|
453
|
-
| `allowed` | string[] | `[]` | Nomes de gerenciadores de pacotes permitidos. Qualquer gerenciador detectado que não esteja nesta lista é bloqueado. Quando
|
|
454
|
-
| `blocked` | string[] | `[]` | Nomes de gerenciadores
|
|
452
|
+
|-----------|------|--------|-----------|
|
|
453
|
+
| `allowed` | string[] | `[]` | Nomes de gerenciadores de pacotes permitidos. Qualquer gerenciador detectado que não esteja nesta lista é bloqueado. Quando vazia, a política não faz nada. |
|
|
454
|
+
| `blocked` | string[] | `[]` | Nomes adicionais de gerenciadores a bloquear além da lista integrada (ex.: `['pdm', 'pipx']`). |
|
|
455
455
|
|
|
456
|
-
A lista de bloqueio integrada
|
|
456
|
+
A lista de bloqueio integrada abrange: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Use `blocked` para adicionar gerenciadores que não estão nesta lista.
|
|
457
457
|
|
|
458
458
|
**Exemplo de configuração:**
|
|
459
459
|
|
|
@@ -469,33 +469,33 @@ A lista de bloqueio integrada cobre: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun,
|
|
|
469
469
|
}
|
|
470
470
|
```
|
|
471
471
|
|
|
472
|
-
Com esta configuração, `pip install flask` e `pdm install flask` são ambos negados com uma mensagem
|
|
472
|
+
Com esta configuração, `pip install flask` e `pdm install flask` são ambos negados com uma mensagem instruindo Claude a usar `uv` ou `bun`. Comandos como `uv pip install flask` são permitidos porque `uv` está na lista de permissões e é verificado primeiro.
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
476
476
|
## Comportamento de IA
|
|
477
477
|
|
|
478
|
-
Detecta quando agentes ficam
|
|
478
|
+
Detecta quando agentes ficam travados ou se comportam de forma inesperada.
|
|
479
479
|
|
|
480
480
|
### `warn-repeated-tool-calls`
|
|
481
481
|
|
|
482
482
|
**Evento:** PreToolUse (todas as ferramentas)
|
|
483
|
-
**Padrão:** Instrui
|
|
483
|
+
**Padrão:** Instrui Claude a reconsiderar quando a mesma ferramenta é chamada 3 ou mais vezes com parâmetros idênticos — um sinal comum de que o agente está preso em um loop.
|
|
484
484
|
|
|
485
485
|
Sem parâmetros.
|
|
486
486
|
|
|
487
487
|
---
|
|
488
488
|
|
|
489
|
-
##
|
|
489
|
+
## Fluxo de trabalho
|
|
490
490
|
|
|
491
|
-
Impõe um
|
|
491
|
+
Impõe um fluxo de trabalho disciplinado ao final da sessão. Essas políticas são acionadas no evento **Stop** e impedem Claude de parar até que cada condição seja atendida. Elas seguem uma cadeia de dependência natural: commit → push → PR → CI. Se uma política negar, as políticas subsequentes na cadeia são ignoradas (deny provoca curto-circuito).
|
|
492
492
|
|
|
493
|
-
Todas as políticas de
|
|
493
|
+
Todas as políticas de fluxo de trabalho são **fail-open**: se a ferramenta necessária não estiver disponível (ex.: `gh` não instalado, sem remote git), a política permite com uma mensagem informativa explicando por que a verificação foi ignorada.
|
|
494
494
|
|
|
495
495
|
### `require-commit-before-stop`
|
|
496
496
|
|
|
497
497
|
**Evento:** Stop
|
|
498
|
-
**Padrão:** Nega a parada quando há alterações não commitadas (arquivos modificados,
|
|
498
|
+
**Padrão:** Nega a parada quando há alterações não commitadas (arquivos modificados, preparados ou não rastreados). Retorna uma mensagem informativa quando o diretório de trabalho está limpo.
|
|
499
499
|
|
|
500
500
|
Sem parâmetros.
|
|
501
501
|
|
|
@@ -504,13 +504,13 @@ Sem parâmetros.
|
|
|
504
504
|
### `require-push-before-stop`
|
|
505
505
|
|
|
506
506
|
**Evento:** Stop
|
|
507
|
-
**Padrão:** Nega a parada quando há commits não enviados
|
|
507
|
+
**Padrão:** Nega a parada quando há commits não enviados ou quando o branch atual não possui um branch de rastreamento remoto. Sugere `git push -u` para criar um branch de rastreamento se necessário. Fail-open se nenhum remote estiver configurado.
|
|
508
508
|
|
|
509
509
|
**Parâmetros:**
|
|
510
510
|
|
|
511
511
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
512
|
-
|
|
513
|
-
| `remote` | `string` | `"origin"` | Nome do remote para
|
|
512
|
+
|-----------|------|--------|-----------|
|
|
513
|
+
| `remote` | `string` | `"origin"` | Nome do remote para onde fazer push. |
|
|
514
514
|
|
|
515
515
|
**Exemplo:**
|
|
516
516
|
|
|
@@ -529,14 +529,14 @@ Sem parâmetros.
|
|
|
529
529
|
### `require-pr-before-stop`
|
|
530
530
|
|
|
531
531
|
**Evento:** Stop
|
|
532
|
-
**Padrão:** Nega a parada quando não existe
|
|
532
|
+
**Padrão:** Nega a parada quando não existe pull request para o branch atual, ou quando o PR existente está fechado/mergeado. Instrui Claude a criar um PR com `gh pr create`.
|
|
533
533
|
|
|
534
534
|
Sem parâmetros.
|
|
535
535
|
|
|
536
536
|
<Note>
|
|
537
537
|
Esta política requer que o [GitHub CLI](https://cli.github.com/) (`gh`) esteja instalado e autenticado.
|
|
538
|
-
Execute `gh auth login` com um
|
|
539
|
-
pull requests. Se `gh` não estiver instalado ou autenticado, a política falha de forma aberta e
|
|
538
|
+
Execute `gh auth login` com um token de acesso pessoal que tenha escopo `repo` para acesso de leitura a
|
|
539
|
+
pull requests. Se `gh` não estiver instalado ou autenticado, a política falha de forma aberta (fail-open) e reporta o motivo a Claude.
|
|
540
540
|
</Note>
|
|
541
541
|
|
|
542
542
|
---
|
|
@@ -544,14 +544,14 @@ pull requests. Se `gh` não estiver instalado ou autenticado, a política falha
|
|
|
544
544
|
### `require-ci-green-before-stop`
|
|
545
545
|
|
|
546
546
|
**Evento:** Stop
|
|
547
|
-
**Padrão:** Nega a parada quando verificações de CI estão falhando ou ainda em execução no branch atual. Verifica tanto execuções de
|
|
547
|
+
**Padrão:** Nega a parada quando as verificações de CI estão falhando ou ainda em execução no branch atual. Verifica tanto execuções de workflows do GitHub Actions quanto verificações de bots de terceiros (ex.: CodeRabbit, SonarCloud, Codecov). Trata conclusões `skipped` e `cancelled` como sucesso. Retorna uma mensagem informativa quando todas as verificações passam.
|
|
548
548
|
|
|
549
549
|
Sem parâmetros.
|
|
550
550
|
|
|
551
551
|
<Note>
|
|
552
552
|
Esta política requer que o [GitHub CLI](https://cli.github.com/) (`gh`) esteja instalado e autenticado.
|
|
553
|
-
Execute `gh auth login` com um
|
|
554
|
-
execuções de
|
|
553
|
+
Execute `gh auth login` com um token de acesso pessoal que tenha escopo `repo` para acesso de leitura a
|
|
554
|
+
execuções de workflows do Actions e à API de Checks. Se `gh` não estiver instalado ou autenticado, a política falha de forma aberta (fail-open) e reporta o motivo a Claude.
|
|
555
555
|
</Note>
|
|
556
556
|
|
|
557
557
|
---
|
|
@@ -560,7 +560,7 @@ execuções de workflow do Actions e à API de Checks. Se `gh` não estiver inst
|
|
|
560
560
|
|
|
561
561
|
## Desabilitando políticas individuais
|
|
562
562
|
|
|
563
|
-
Remova uma política específica de `enabledPolicies` na sua configuração, ou desative-a na aba
|
|
563
|
+
Remova uma política específica de `enabledPolicies` na sua configuração, ou desative-a na aba Políticas do painel.
|
|
564
564
|
|
|
565
565
|
```json
|
|
566
566
|
{
|