failproofai 0.0.6-beta.1 → 0.0.6-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.failproofai/policies/review-policies.mjs +4 -3
- 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]__0~kmh8w._.js → [root-of-the-server]__05akje6._.js} +2 -2
- 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]__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]__0rh.18_._.js → [root-of-the-server]__0i5kvry._.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/{08t08igdql9yt.js → 00j0rr7rh8ef8.js} +1 -1
- package/.next/standalone/.next/static/chunks/{12~yi9oj8av8p.js → 05j1px0r8yzh6.js} +2 -2
- package/.next/standalone/.next/static/chunks/{09_k80d~cq2wg.js → 0badv41uxa56..js} +1 -1
- package/.next/standalone/.next/static/chunks/{0wlyoif4_kj_t.js → 0ijk_kek9_wyx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0bvhsa6zva2o..js → 0ksdlt_1hucdm.js} +1 -1
- package/.next/standalone/.next/static/chunks/{03rz6ykw-a2xi.js → 0npb~873.wvg3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{01b~z8f1ws0rk.js → 0xpl.oscrakvx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0gbf4cphy8ksq.js → 1052sguyd-.ka.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0v.yd0kg_ld3r.js → 14cl9poem30dq.js} +1 -1
- package/.next/standalone/CHANGELOG.md +11 -0
- package/.next/standalone/dist/cli.mjs +3 -3
- package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
- package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
- package/.next/standalone/docs/ar/examples.mdx +86 -33
- package/.next/standalone/docs/ar/getting-started.mdx +82 -29
- package/.next/standalone/docs/built-in-policies.mdx +1 -1
- package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
- package/.next/standalone/docs/de/custom-policies.mdx +56 -56
- package/.next/standalone/docs/de/examples.mdx +72 -18
- package/.next/standalone/docs/de/getting-started.mdx +72 -20
- package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
- package/.next/standalone/docs/es/custom-policies.mdx +55 -55
- package/.next/standalone/docs/es/examples.mdx +73 -19
- package/.next/standalone/docs/es/getting-started.mdx +72 -20
- package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
- package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
- package/.next/standalone/docs/fr/examples.mdx +78 -24
- package/.next/standalone/docs/fr/getting-started.mdx +65 -13
- package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
- package/.next/standalone/docs/he/custom-policies.mdx +75 -75
- package/.next/standalone/docs/he/examples.mdx +87 -33
- package/.next/standalone/docs/he/getting-started.mdx +84 -33
- package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
- package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
- package/.next/standalone/docs/hi/examples.mdx +90 -36
- package/.next/standalone/docs/hi/getting-started.mdx +80 -27
- package/.next/standalone/docs/i18n/README.ar.md +69 -69
- package/.next/standalone/docs/i18n/README.de.md +46 -46
- package/.next/standalone/docs/i18n/README.es.md +42 -42
- package/.next/standalone/docs/i18n/README.fr.md +39 -39
- package/.next/standalone/docs/i18n/README.he.md +83 -83
- package/.next/standalone/docs/i18n/README.hi.md +69 -69
- package/.next/standalone/docs/i18n/README.it.md +72 -72
- package/.next/standalone/docs/i18n/README.ja.md +71 -71
- package/.next/standalone/docs/i18n/README.ko.md +52 -52
- package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
- package/.next/standalone/docs/i18n/README.ru.md +66 -66
- package/.next/standalone/docs/i18n/README.tr.md +82 -83
- package/.next/standalone/docs/i18n/README.vi.md +70 -71
- package/.next/standalone/docs/i18n/README.zh.md +51 -51
- package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
- package/.next/standalone/docs/it/custom-policies.mdx +69 -69
- package/.next/standalone/docs/it/examples.mdx +93 -39
- package/.next/standalone/docs/it/getting-started.mdx +73 -21
- package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
- package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
- package/.next/standalone/docs/ja/examples.mdx +76 -22
- package/.next/standalone/docs/ja/getting-started.mdx +65 -13
- package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
- package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
- package/.next/standalone/docs/ko/examples.mdx +87 -33
- package/.next/standalone/docs/ko/getting-started.mdx +61 -9
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
- package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
- package/.next/standalone/docs/pt-br/examples.mdx +78 -24
- package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
- package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
- package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
- package/.next/standalone/docs/ru/examples.mdx +77 -22
- package/.next/standalone/docs/ru/getting-started.mdx +74 -22
- package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
- package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
- package/.next/standalone/docs/tr/examples.mdx +97 -42
- package/.next/standalone/docs/tr/getting-started.mdx +75 -23
- package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
- package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
- package/.next/standalone/docs/vi/examples.mdx +93 -38
- package/.next/standalone/docs/vi/getting-started.mdx +74 -22
- package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
- package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
- package/.next/standalone/docs/zh/examples.mdx +90 -36
- package/.next/standalone/docs/zh/getting-started.mdx +73 -21
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/hooks/builtin-policies.ts +5 -1
- package/dist/cli.mjs +3 -3
- package/package.json +1 -1
- package/src/hooks/builtin-policies.ts +5 -1
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_ssgManifest.js +0 -0
|
@@ -7,7 +7,7 @@ icon: rocket
|
|
|
7
7
|
## 요구 사항
|
|
8
8
|
|
|
9
9
|
- **Node.js** >= 20.9.0
|
|
10
|
-
- **Bun** >= 1.3.0 (선택 사항 - 소스에서 빌드할 때만 필요)
|
|
10
|
+
- **Bun** >= 1.3.0 (선택 사항 - 소스에서 직접 빌드할 때만 필요)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -31,13 +31,13 @@ bun add -g failproofai
|
|
|
31
31
|
|
|
32
32
|
<Steps>
|
|
33
33
|
<Step title="정책 활성화">
|
|
34
|
-
정책은 에이전트의 모든 도구 호출 전후에 실행되는 규칙입니다. 파괴적인 명령,
|
|
34
|
+
정책은 에이전트의 모든 도구 호출 전후에 실행되는 규칙입니다. 파괴적인 명령, 비밀 정보 유출, 그 밖의 실패 패턴을 피해가 발생하기 전에 차단합니다.
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
failproofai policies --install
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
이 명령은 Claude Code의 `settings.json`에 훅 항목을 작성합니다. 단일 프로젝트에만 설치하거나 특정
|
|
40
|
+
이 명령은 Claude Code의 `settings.json`에 훅 항목을 작성합니다. 단일 프로젝트에만 설치하거나 특정 정책만 선택할 수도 있습니다:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
failproofai policies --install --scope project
|
|
@@ -56,10 +56,10 @@ bun add -g failproofai
|
|
|
56
56
|
failproofai
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
`http://localhost:8020`에 로컬 대시보드를
|
|
59
|
+
`http://localhost:8020`에 로컬 대시보드를 엽니다. 여기서 세션을 탐색하고, 도구 호출을 검사하며, 정책을 관리할 수 있습니다.
|
|
60
60
|
</Step>
|
|
61
61
|
<Step title="에이전트 실행">
|
|
62
|
-
평소처럼 Claude Code를 시작하세요. 에이전트가 위험한 작업을 시도하면 failproofai가 자동으로
|
|
62
|
+
평소처럼 Claude Code를 시작하세요. 에이전트가 위험한 작업을 시도하면 failproofai가 자동으로 가로챕니다. 에이전트를 무인 상태로 두고 대시보드에서 결과를 나중에 확인하세요.
|
|
63
63
|
</Step>
|
|
64
64
|
</Steps>
|
|
65
65
|
|
|
@@ -78,7 +78,7 @@ Claude Code → failproofai --hook PreToolUse → reads stdin JSON
|
|
|
78
78
|
각 정책은 다음 세 가지 결정 중 하나를 반환합니다:
|
|
79
79
|
|
|
80
80
|
- **allow** - 에이전트가 정상적으로 진행됩니다
|
|
81
|
-
- **deny** -
|
|
81
|
+
- **deny** - 동작이 차단되고 에이전트에게 이유가 전달됩니다
|
|
82
82
|
- **instruct** - 에이전트의 프롬프트에 추가 컨텍스트가 삽입됩니다
|
|
83
83
|
|
|
84
84
|
<Note>
|
|
@@ -87,17 +87,69 @@ Claude Code → failproofai --hook PreToolUse → reads stdin JSON
|
|
|
87
87
|
|
|
88
88
|
---
|
|
89
89
|
|
|
90
|
+
## 컨벤션 기반 정책으로 팀 정책 설정하기
|
|
91
|
+
|
|
92
|
+
팀 전체에 품질 기준을 빠르게 도입하는 방법은 `.failproofai/policies/` 컨벤션을 활용하는 것입니다. 이 디렉터리에 정책 파일을 넣기만 하면 자동으로 로드됩니다 — 별도의 플래그, 설정 변경, 설치 명령이 필요 없습니다.
|
|
93
|
+
|
|
94
|
+
<Steps>
|
|
95
|
+
<Step title="정책 디렉터리 생성">
|
|
96
|
+
```bash
|
|
97
|
+
mkdir -p .failproofai/policies
|
|
98
|
+
```
|
|
99
|
+
</Step>
|
|
100
|
+
<Step title="정책 파일 추가">
|
|
101
|
+
스타터 예제를 복사하거나 직접 작성하세요:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cp node_modules/failproofai/examples/convention-policies/*.mjs .failproofai/policies/
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
또는 새로 만들기:
|
|
108
|
+
|
|
109
|
+
```js
|
|
110
|
+
// .failproofai/policies/team-policies.mjs
|
|
111
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
112
|
+
|
|
113
|
+
customPolicies.add({
|
|
114
|
+
name: "test-before-commit",
|
|
115
|
+
match: { events: ["PreToolUse"] },
|
|
116
|
+
fn: async (ctx) => {
|
|
117
|
+
if (ctx.toolName !== "Bash") return allow();
|
|
118
|
+
if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
|
|
119
|
+
return instruct("Run tests before committing.");
|
|
120
|
+
}
|
|
121
|
+
return allow();
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
</Step>
|
|
126
|
+
<Step title="git에 커밋">
|
|
127
|
+
```bash
|
|
128
|
+
git add .failproofai/policies/
|
|
129
|
+
git commit -m "Add team quality policies"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
failproofai가 설치된 팀원이라면 누구나 이 정책을 자동으로 적용받습니다. 개발자별 별도 설정이 필요 없습니다.
|
|
133
|
+
</Step>
|
|
134
|
+
</Steps>
|
|
135
|
+
|
|
136
|
+
<Tip>
|
|
137
|
+
`.failproofai/policies/`를 저장소에 커밋하면 팀 전체가 동일한 기준을 공유할 수 있습니다. 팀이 새로운 실패 패턴을 발견할 때마다 정책을 추가하고 푸시하면 — 모든 팀원이 다음 `git pull` 시 업데이트를 받게 됩니다. 시간이 지남에 따라 이 정책들은 지속적으로 발전하는 살아있는 품질 기준이 됩니다.
|
|
138
|
+
</Tip>
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
90
142
|
## 데이터 저장
|
|
91
143
|
|
|
92
|
-
모든
|
|
144
|
+
모든 설정과 로그는 로컬 머신에 저장됩니다:
|
|
93
145
|
|
|
94
146
|
| 경로 | 저장 내용 |
|
|
95
147
|
|------|----------------|
|
|
96
148
|
| `~/.failproofai/policies-config.json` | 전역 정책 설정 |
|
|
97
|
-
| `~/.failproofai/hook-activity.jsonl` | 훅 실행
|
|
149
|
+
| `~/.failproofai/hook-activity.jsonl` | 훅 실행 이력 |
|
|
98
150
|
| `~/.failproofai/hook.log` | 커스텀 훅 오류 디버그 로그 |
|
|
99
151
|
| `.failproofai/policies-config.json` | 프로젝트별 설정 (커밋됨) |
|
|
100
|
-
| `.failproofai/policies-config.local.json` | 개인
|
|
152
|
+
| `.failproofai/policies-config.local.json` | 개인 오버라이드 (gitignore 처리됨) |
|
|
101
153
|
|
|
102
154
|
---
|
|
103
155
|
|
|
@@ -1,10 +1,10 @@
|
|
|
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 modos comuns de falha de 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 modos comuns de falha de 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 workflow impõem um pipeline commit → push → PR → CI antes que o Claude pare.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -13,7 +13,7 @@ failproofai vem com 30 políticas integradas que detectam falhas comuns de agent
|
|
|
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 |
|
|
@@ -21,7 +21,8 @@ As políticas são agrupadas em categorias:
|
|
|
21
21
|
| [Git](#git) | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
|
|
22
22
|
| [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
|
+
| [Workflow](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
25
26
|
|
|
26
27
|
- **`block-`** — impede o agente de prosseguir.
|
|
27
28
|
- **`warn-`** — fornece contexto adicional ao agente para que ele possa se autocorrigir.
|
|
@@ -31,27 +32,27 @@ As políticas são agrupadas em categorias:
|
|
|
31
32
|
---
|
|
32
33
|
|
|
33
34
|
<Tip>
|
|
34
|
-
Toda política suporta um campo
|
|
35
|
+
Toda política suporta um campo `hint` opcional em `policyParams`. O hint é anexado à mensagem de deny ou instruct que o Claude vê, fornecendo orientações práticas sem modificar o código da política. Funciona com políticas integradas, customizadas e de convenção. Veja [Configuração → hint](/pt-br/configuration#hint-cross-cutting) para detalhes.
|
|
35
36
|
</Tip>
|
|
36
37
|
|
|
37
38
|
---
|
|
38
39
|
|
|
39
40
|
## Comandos perigosos
|
|
40
41
|
|
|
41
|
-
Impede
|
|
42
|
+
Impede agentes de executar operações difíceis de desfazer ou que possam danificar o sistema host.
|
|
42
43
|
|
|
43
44
|
### `block-sudo`
|
|
44
45
|
|
|
45
46
|
**Evento:** PreToolUse (Bash)
|
|
46
47
|
**Padrão:** Nega qualquer comando `sudo`.
|
|
47
48
|
|
|
48
|
-
Bloqueia invocações que
|
|
49
|
+
Bloqueia invocações que incluem a palavra-chave `sudo`. A correspondência de padrões é feita em tokens de comando analisados, não na string bruta, para evitar bypass por injeção de operadores shell.
|
|
49
50
|
|
|
50
51
|
**Parâmetros:**
|
|
51
52
|
|
|
52
53
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
53
|
-
|
|
54
|
-
| `allowPatterns` | `string[]` | `[]` | Prefixos de comando
|
|
54
|
+
|-------|------|---------|-------------|
|
|
55
|
+
| `allowPatterns` | `string[]` | `[]` | Prefixos exatos de comando que são permitidos. Cada entrada é correspondida com os tokens argv analisados. |
|
|
55
56
|
|
|
56
57
|
**Exemplo:**
|
|
57
58
|
|
|
@@ -65,10 +66,10 @@ Bloqueia invocações que incluam a palavra-chave `sudo`. A correspondência de
|
|
|
65
66
|
}
|
|
66
67
|
```
|
|
67
68
|
|
|
68
|
-
Com
|
|
69
|
+
Com esta configuração, `sudo systemctl status nginx` é permitido, mas `sudo rm /etc/hosts` é negado.
|
|
69
70
|
|
|
70
71
|
<Note>
|
|
71
|
-
Os padrões são
|
|
72
|
+
Os padrões são correspondidos com tokens analisados, não com a string de comando bruta. Isso evita bypass por meio de operadores shell anexados (ex.: `sudo systemctl status x; rm -rf /` não corresponde a `sudo systemctl status *`).
|
|
72
73
|
</Note>
|
|
73
74
|
|
|
74
75
|
---
|
|
@@ -81,8 +82,8 @@ Os padrões são comparados com os tokens analisados, não com a string de coman
|
|
|
81
82
|
**Parâmetros:**
|
|
82
83
|
|
|
83
84
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
84
|
-
|
|
85
|
-
| `allowPaths` | `string[]` | `[]` | Caminhos que são seguros para
|
|
85
|
+
|-------|------|---------|-------------|
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | Caminhos que são seguros para exclusão recursiva (ex.: `/tmp`). |
|
|
86
87
|
|
|
87
88
|
**Exemplo:**
|
|
88
89
|
|
|
@@ -110,7 +111,7 @@ Sem parâmetros.
|
|
|
110
111
|
### `block-failproofai-commands`
|
|
111
112
|
|
|
112
113
|
**Evento:** PreToolUse (Bash)
|
|
113
|
-
**Padrão:** Nega comandos que
|
|
114
|
+
**Padrão:** Nega comandos que desinstalariam ou desativariam o próprio failproofai (ex.: `npm uninstall failproofai`, `failproofai policies --uninstall`).
|
|
114
115
|
|
|
115
116
|
Sem parâmetros.
|
|
116
117
|
|
|
@@ -118,7 +119,7 @@ Sem parâmetros.
|
|
|
118
119
|
|
|
119
120
|
## Segredos (sanitizadores)
|
|
120
121
|
|
|
121
|
-
Impede
|
|
122
|
+
Impede agentes de vazar credenciais em seu contexto ou saída. As políticas de sanitização são acionadas em eventos **PostToolUse**. Quando o Claude executa um comando Bash, lê um arquivo ou chama qualquer ferramenta, essas políticas inspecionam a saída antes de ela ser retornada ao Claude. Se um padrão de segredo for detectado, a política retorna uma decisão de deny que impede a saída de ser repassada.
|
|
122
123
|
|
|
123
124
|
### `sanitize-jwt`
|
|
124
125
|
|
|
@@ -132,12 +133,12 @@ Sem parâmetros.
|
|
|
132
133
|
### `sanitize-api-keys`
|
|
133
134
|
|
|
134
135
|
**Evento:** PostToolUse (todas as ferramentas)
|
|
135
|
-
**Padrão:** Redige formatos comuns de
|
|
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 Google API (`AIza`).
|
|
136
137
|
|
|
137
138
|
**Parâmetros:**
|
|
138
139
|
|
|
139
140
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
140
|
-
|
|
141
|
+
|-------|------|---------|-------------|
|
|
141
142
|
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Padrões regex adicionais para tratar como segredos. |
|
|
142
143
|
|
|
143
144
|
**Exemplo:**
|
|
@@ -160,7 +161,7 @@ Sem parâmetros.
|
|
|
160
161
|
### `sanitize-connection-strings`
|
|
161
162
|
|
|
162
163
|
**Evento:** PostToolUse (todas as ferramentas)
|
|
163
|
-
**Padrão:** Redige strings de conexão de banco de dados que contêm credenciais incorporadas (ex
|
|
164
|
+
**Padrão:** Redige strings de conexão de banco de dados que contêm credenciais incorporadas (ex.: `postgresql://user:password@host/db`).
|
|
164
165
|
|
|
165
166
|
Sem parâmetros.
|
|
166
167
|
|
|
@@ -186,14 +187,14 @@ Sem parâmetros.
|
|
|
186
187
|
|
|
187
188
|
## Ambiente
|
|
188
189
|
|
|
189
|
-
Protege
|
|
190
|
+
Protege configurações sensíveis de ambiente de serem lidas ou expostas por agentes.
|
|
190
191
|
|
|
191
192
|
### `block-env-files`
|
|
192
193
|
|
|
193
194
|
**Evento:** PreToolUse (Bash, Read)
|
|
194
195
|
**Padrão:** Nega a leitura de arquivos `.env` via `cat .env`, chamadas da ferramenta `Read` com `.env` como caminho do arquivo, etc.
|
|
195
196
|
|
|
196
|
-
Não bloqueia `.envrc` ou outros arquivos relacionados
|
|
197
|
+
Não bloqueia `.envrc` ou outros arquivos relacionados a ambiente — apenas arquivos com o nome exato `.env`.
|
|
197
198
|
|
|
198
199
|
Sem parâmetros.
|
|
199
200
|
|
|
@@ -202,7 +203,7 @@ Sem parâmetros.
|
|
|
202
203
|
### `protect-env-vars`
|
|
203
204
|
|
|
204
205
|
**Evento:** PreToolUse (Bash)
|
|
205
|
-
**Padrão:** Nega comandos que
|
|
206
|
+
**Padrão:** Nega comandos que imprimem variáveis de ambiente: `printenv`, `env`, `echo $VAR`.
|
|
206
207
|
|
|
207
208
|
Sem parâmetros.
|
|
208
209
|
|
|
@@ -210,7 +211,7 @@ Sem parâmetros.
|
|
|
210
211
|
|
|
211
212
|
## Acesso a arquivos
|
|
212
213
|
|
|
213
|
-
Mantém agentes trabalhando dentro dos limites do projeto e longe de arquivos sensíveis.
|
|
214
|
+
Mantém os agentes trabalhando dentro dos limites do projeto e longe de arquivos sensíveis.
|
|
214
215
|
|
|
215
216
|
### `block-read-outside-cwd`
|
|
216
217
|
|
|
@@ -220,8 +221,8 @@ Mantém agentes trabalhando dentro dos limites do projeto e longe de arquivos se
|
|
|
220
221
|
**Parâmetros:**
|
|
221
222
|
|
|
222
223
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
223
|
-
|
|
224
|
-
| `allowPaths` | `string[]` | `[]` | Prefixos de caminho absoluto que são permitidos mesmo
|
|
224
|
+
|-------|------|---------|-------------|
|
|
225
|
+
| `allowPaths` | `string[]` | `[]` | Prefixos de caminho absoluto que são permitidos mesmo que estejam fora do cwd. |
|
|
225
226
|
|
|
226
227
|
**Exemplo:**
|
|
227
228
|
|
|
@@ -240,13 +241,13 @@ Mantém agentes trabalhando dentro dos limites do projeto e longe de arquivos se
|
|
|
240
241
|
### `block-secrets-write`
|
|
241
242
|
|
|
242
243
|
**Evento:** PreToolUse (Write, Edit)
|
|
243
|
-
**Padrão:** Nega
|
|
244
|
+
**Padrão:** Nega gravações em arquivos comumente usados para chaves privadas e certificados: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
|
|
244
245
|
|
|
245
246
|
**Parâmetros:**
|
|
246
247
|
|
|
247
248
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
248
|
-
|
|
249
|
-
| `additionalPatterns` | `string[]` | `[]` | Padrões de nome de arquivo
|
|
249
|
+
|-------|------|---------|-------------|
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | Padrões adicionais de nome de arquivo (estilo glob) para bloquear. |
|
|
250
251
|
|
|
251
252
|
**Exemplo:**
|
|
252
253
|
|
|
@@ -274,7 +275,7 @@ Previne pushes acidentais, force-pushes e erros de branch que são difíceis de
|
|
|
274
275
|
**Parâmetros:**
|
|
275
276
|
|
|
276
277
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
277
|
-
|
|
278
|
+
|-------|------|---------|-------------|
|
|
278
279
|
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomes de branches que não podem receber push diretamente. |
|
|
279
280
|
|
|
280
281
|
**Exemplo:**
|
|
@@ -290,7 +291,7 @@ Previne pushes acidentais, force-pushes e erros de branch que são difíceis de
|
|
|
290
291
|
```
|
|
291
292
|
|
|
292
293
|
<Tip>
|
|
293
|
-
Para permitir push
|
|
294
|
+
Para permitir push em todos os branches (efetivamente desabilitando esta política sem removê-la de `enabledPolicies`), defina `protectedBranches: []`.
|
|
294
295
|
</Tip>
|
|
295
296
|
|
|
296
297
|
---
|
|
@@ -298,13 +299,13 @@ Para permitir push para todos os branches (desabilitando efetivamente esta polí
|
|
|
298
299
|
### `block-work-on-main`
|
|
299
300
|
|
|
300
301
|
**Evento:** PreToolUse (Bash)
|
|
301
|
-
**Padrão:** Nega
|
|
302
|
+
**Padrão:** Nega checkout direto nos branches `main` ou `master`.
|
|
302
303
|
|
|
303
304
|
**Parâmetros:**
|
|
304
305
|
|
|
305
306
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
306
|
-
|
|
307
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomes de branches que não podem
|
|
307
|
+
|-------|------|---------|-------------|
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomes de branches que não podem receber checkout diretamente. |
|
|
308
309
|
|
|
309
310
|
---
|
|
310
311
|
|
|
@@ -330,7 +331,7 @@ Sem parâmetros específicos da política. Use o [`hint`](/pt-br/configuration#h
|
|
|
330
331
|
### `warn-git-amend`
|
|
331
332
|
|
|
332
333
|
**Evento:** PreToolUse (Bash)
|
|
333
|
-
**Padrão:** Instrui Claude a prosseguir com cuidado ao executar `git commit --amend`. Não bloqueia o comando.
|
|
334
|
+
**Padrão:** Instrui o Claude a prosseguir com cuidado ao executar `git commit --amend`. Não bloqueia o comando.
|
|
334
335
|
|
|
335
336
|
Sem parâmetros.
|
|
336
337
|
|
|
@@ -339,7 +340,7 @@ Sem parâmetros.
|
|
|
339
340
|
### `warn-git-stash-drop`
|
|
340
341
|
|
|
341
342
|
**Evento:** PreToolUse (Bash)
|
|
342
|
-
**Padrão:** Instrui Claude a confirmar antes de executar `git stash drop`. Não bloqueia o comando.
|
|
343
|
+
**Padrão:** Instrui o Claude a confirmar antes de executar `git stash drop`. Não bloqueia o comando.
|
|
343
344
|
|
|
344
345
|
Sem parâmetros.
|
|
345
346
|
|
|
@@ -348,7 +349,7 @@ Sem parâmetros.
|
|
|
348
349
|
### `warn-all-files-staged`
|
|
349
350
|
|
|
350
351
|
**Evento:** PreToolUse (Bash)
|
|
351
|
-
**Padrão:** Instrui Claude a revisar o que está sendo adicionado ao stage ao executar `git add -A` ou `git add .`. Não bloqueia o comando.
|
|
352
|
+
**Padrão:** Instrui o Claude a revisar o que está sendo adicionado ao stage ao executar `git add -A` ou `git add .`. Não bloqueia o comando.
|
|
352
353
|
|
|
353
354
|
Sem parâmetros.
|
|
354
355
|
|
|
@@ -356,12 +357,12 @@ Sem parâmetros.
|
|
|
356
357
|
|
|
357
358
|
## Banco de dados
|
|
358
359
|
|
|
359
|
-
Detecta operações SQL destrutivas antes que sejam executadas no banco de dados.
|
|
360
|
+
Detecta operações SQL destrutivas antes que sejam executadas no seu banco de dados.
|
|
360
361
|
|
|
361
362
|
### `warn-destructive-sql`
|
|
362
363
|
|
|
363
364
|
**Evento:** PreToolUse (Bash)
|
|
364
|
-
**Padrão:** Instrui Claude a confirmar antes de executar SQL contendo `DROP TABLE`, `DROP DATABASE` ou `DELETE` sem uma cláusula `WHERE`.
|
|
365
|
+
**Padrão:** Instrui o Claude a confirmar antes de executar SQL contendo `DROP TABLE`, `DROP DATABASE` ou `DELETE` sem uma cláusula `WHERE`.
|
|
365
366
|
|
|
366
367
|
Sem parâmetros.
|
|
367
368
|
|
|
@@ -370,7 +371,7 @@ Sem parâmetros.
|
|
|
370
371
|
### `warn-schema-alteration`
|
|
371
372
|
|
|
372
373
|
**Evento:** PreToolUse (Bash)
|
|
373
|
-
**Padrão:** Instrui Claude a confirmar antes de executar instruções `ALTER TABLE`.
|
|
374
|
+
**Padrão:** Instrui o Claude a confirmar antes de executar instruções `ALTER TABLE`.
|
|
374
375
|
|
|
375
376
|
Sem parâmetros.
|
|
376
377
|
|
|
@@ -383,12 +384,12 @@ Fornece contexto extra aos agentes antes de operações potencialmente arriscada
|
|
|
383
384
|
### `warn-large-file-write`
|
|
384
385
|
|
|
385
386
|
**Evento:** PreToolUse (Write)
|
|
386
|
-
**Padrão:** Instrui Claude a confirmar antes de
|
|
387
|
+
**Padrão:** Instrui o Claude a confirmar antes de gravar arquivos maiores que 1024 KB.
|
|
387
388
|
|
|
388
389
|
**Parâmetros:**
|
|
389
390
|
|
|
390
391
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
391
|
-
|
|
392
|
+
|-------|------|---------|-------------|
|
|
392
393
|
| `thresholdKb` | `number` | `1024` | Limite de tamanho de arquivo em kilobytes acima do qual um aviso é emitido. |
|
|
393
394
|
|
|
394
395
|
**Exemplo:**
|
|
@@ -404,7 +405,7 @@ Fornece contexto extra aos agentes antes de operações potencialmente arriscada
|
|
|
404
405
|
```
|
|
405
406
|
|
|
406
407
|
<Note>
|
|
407
|
-
O handler
|
|
408
|
+
O handler do hook impõe um limite de 1 MB de stdin em payloads. Para testar esta política com conteúdo pequeno, defina `thresholdKb` para um valor bem abaixo de 1024.
|
|
408
409
|
</Note>
|
|
409
410
|
|
|
410
411
|
---
|
|
@@ -412,7 +413,7 @@ O handler de hook impõe um limite de 1 MB de stdin nos payloads. Para testar es
|
|
|
412
413
|
### `warn-package-publish`
|
|
413
414
|
|
|
414
415
|
**Evento:** PreToolUse (Bash)
|
|
415
|
-
**Padrão:** Instrui Claude a confirmar antes de executar `npm publish`.
|
|
416
|
+
**Padrão:** Instrui o Claude a confirmar antes de executar `npm publish`.
|
|
416
417
|
|
|
417
418
|
Sem parâmetros.
|
|
418
419
|
|
|
@@ -421,7 +422,7 @@ Sem parâmetros.
|
|
|
421
422
|
### `warn-background-process`
|
|
422
423
|
|
|
423
424
|
**Evento:** PreToolUse (Bash)
|
|
424
|
-
**Padrão:** Instrui Claude a ter cuidado ao iniciar processos em segundo plano via `nohup`, `&`, `disown` ou `screen`.
|
|
425
|
+
**Padrão:** Instrui o Claude a ter cuidado ao iniciar processos em segundo plano via `nohup`, `&`, `disown` ou `screen`.
|
|
425
426
|
|
|
426
427
|
Sem parâmetros.
|
|
427
428
|
|
|
@@ -430,30 +431,66 @@ Sem parâmetros.
|
|
|
430
431
|
### `warn-global-package-install`
|
|
431
432
|
|
|
432
433
|
**Evento:** PreToolUse (Bash)
|
|
433
|
-
**Padrão:** Instrui Claude a confirmar antes de executar `npm install -g`, `yarn global add` ou `pip install` sem um ambiente virtual.
|
|
434
|
+
**Padrão:** Instrui o Claude a confirmar antes de executar `npm install -g`, `yarn global add` ou `pip install` sem um ambiente virtual.
|
|
434
435
|
|
|
435
436
|
Sem parâmetros.
|
|
436
437
|
|
|
437
438
|
---
|
|
438
439
|
|
|
440
|
+
## Gerenciadores de pacotes
|
|
441
|
+
|
|
442
|
+
Impõe quais gerenciadores de pacotes o agente tem permissão de usar.
|
|
443
|
+
|
|
444
|
+
### `prefer-package-manager`
|
|
445
|
+
|
|
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 diz ao Claude para reescrever o comando usando um gerenciador permitido.
|
|
448
|
+
|
|
449
|
+
Detecta: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
|
+
|
|
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 vazio, a política não faz nada. |
|
|
454
|
+
| `blocked` | string[] | `[]` | Nomes de gerenciadores adicionais para bloquear além da lista integrada (ex.: `['pdm', 'pipx']`). |
|
|
455
|
+
|
|
456
|
+
A lista de bloqueio integrada cobre: 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
|
+
|
|
458
|
+
**Exemplo de configuração:**
|
|
459
|
+
|
|
460
|
+
```json
|
|
461
|
+
{
|
|
462
|
+
"enabledPolicies": ["prefer-package-manager"],
|
|
463
|
+
"policyParams": {
|
|
464
|
+
"prefer-package-manager": {
|
|
465
|
+
"allowed": ["uv", "bun"],
|
|
466
|
+
"blocked": ["pdm", "pipx"]
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Com esta configuração, `pip install flask` e `pdm install flask` são ambos negados com uma mensagem dizendo ao Claude para usar `uv` ou `bun` em vez disso. Comandos como `uv pip install flask` são permitidos porque `uv` está na lista de permitidos e é verificado primeiro.
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
439
476
|
## Comportamento de IA
|
|
440
477
|
|
|
441
|
-
Detecta quando agentes ficam
|
|
478
|
+
Detecta quando agentes ficam presos ou se comportam de forma inesperada.
|
|
442
479
|
|
|
443
480
|
### `warn-repeated-tool-calls`
|
|
444
481
|
|
|
445
482
|
**Evento:** PreToolUse (todas as ferramentas)
|
|
446
|
-
**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.
|
|
483
|
+
**Padrão:** Instrui o 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.
|
|
447
484
|
|
|
448
485
|
Sem parâmetros.
|
|
449
486
|
|
|
450
487
|
---
|
|
451
488
|
|
|
452
|
-
##
|
|
489
|
+
## Workflow
|
|
453
490
|
|
|
454
|
-
Impõe um
|
|
491
|
+
Impõe um workflow disciplinado de fim de sessão. Essas políticas são acionadas no evento **Stop** e impedem o 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 posteriores na cadeia são ignoradas (deny causa curto-circuito).
|
|
455
492
|
|
|
456
|
-
Todas as políticas de
|
|
493
|
+
Todas as políticas de workflow 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.
|
|
457
494
|
|
|
458
495
|
### `require-commit-before-stop`
|
|
459
496
|
|
|
@@ -472,7 +509,7 @@ Sem parâmetros.
|
|
|
472
509
|
**Parâmetros:**
|
|
473
510
|
|
|
474
511
|
| Parâmetro | Tipo | Padrão | Descrição |
|
|
475
|
-
|
|
512
|
+
|-------|------|---------|-------------|
|
|
476
513
|
| `remote` | `string` | `"origin"` | Nome do remote para o qual fazer push. |
|
|
477
514
|
|
|
478
515
|
**Exemplo:**
|
|
@@ -492,14 +529,14 @@ Sem parâmetros.
|
|
|
492
529
|
### `require-pr-before-stop`
|
|
493
530
|
|
|
494
531
|
**Evento:** Stop
|
|
495
|
-
**Padrão:** Nega a parada quando não existe pull request para o branch atual, ou quando o PR existente está fechado/mesclado. Instrui Claude a criar um PR com `gh pr create`.
|
|
532
|
+
**Padrão:** Nega a parada quando não existe nenhum pull request para o branch atual, ou quando o PR existente está fechado/mesclado. Instrui o Claude a criar um PR com `gh pr create`.
|
|
496
533
|
|
|
497
534
|
Sem parâmetros.
|
|
498
535
|
|
|
499
536
|
<Note>
|
|
500
537
|
Esta política requer que o [GitHub CLI](https://cli.github.com/) (`gh`) esteja instalado e autenticado.
|
|
501
|
-
Execute `gh auth login` com um
|
|
502
|
-
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 personal access token que tenha o 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 e informa o motivo ao Claude.
|
|
503
540
|
</Note>
|
|
504
541
|
|
|
505
542
|
---
|
|
@@ -507,14 +544,14 @@ pull requests. Se `gh` não estiver instalado ou autenticado, a política falha
|
|
|
507
544
|
### `require-ci-green-before-stop`
|
|
508
545
|
|
|
509
546
|
**Evento:** Stop
|
|
510
|
-
**Padrão:** Nega a parada quando
|
|
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 workflow do GitHub Actions quanto verificações de bots de terceiros (ex.: CodeRabbit, SonarCloud, Codecov). Trata conclusões `skipped` como sucesso. Retorna uma mensagem informativa quando todas as verificações passam.
|
|
511
548
|
|
|
512
549
|
Sem parâmetros.
|
|
513
550
|
|
|
514
551
|
<Note>
|
|
515
552
|
Esta política requer que o [GitHub CLI](https://cli.github.com/) (`gh`) esteja instalado e autenticado.
|
|
516
|
-
Execute `gh auth login` com um
|
|
517
|
-
execuções de workflow do Actions e à API de
|
|
553
|
+
Execute `gh auth login` com um personal access token que tenha o escopo `repo` para acesso de leitura a
|
|
554
|
+
execuções de workflow do Actions e à API de Checks. Se `gh` não estiver instalado ou autenticado, a política falha de forma aberta e informa o motivo ao Claude.
|
|
518
555
|
</Note>
|
|
519
556
|
|
|
520
557
|
---
|
|
@@ -523,7 +560,7 @@ execuções de workflow do Actions e à API de Verificações. Se `gh` não esti
|
|
|
523
560
|
|
|
524
561
|
## Desabilitando políticas individuais
|
|
525
562
|
|
|
526
|
-
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 Policies do dashboard.
|
|
527
564
|
|
|
528
565
|
```json
|
|
529
566
|
{
|