failproofai 0.0.6-beta.0 → 0.0.6-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/.next/standalone/.failproofai/policies/review-policies.mjs +113 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +5 -5
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  7. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  18. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  22. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  24. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  25. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  28. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/index.html +1 -1
  30. package/.next/standalone/.next/server/app/index.rsc +15 -15
  31. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  32. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  33. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  34. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  35. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  37. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  38. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +2 -2
  41. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  42. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +2 -2
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  50. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  51. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  54. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  55. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  58. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a.nuas._.js → [root-of-the-server]__05akje6._.js} +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.~fd7s._.js → [root-of-the-server]__0i5kvry._.js} +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +6 -6
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  71. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  72. package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
  73. package/.next/standalone/.next/server/pages/404.html +2 -2
  74. package/.next/standalone/.next/server/pages/500.html +1 -1
  75. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  77. package/.next/standalone/.next/static/chunks/{0teq8wdh3po1n.js → 00j0rr7rh8ef8.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0maq.q1t.ri85.js → 05j1px0r8yzh6.js} +2 -2
  79. package/.next/standalone/.next/static/chunks/0badv41uxa56..js +4 -0
  80. package/.next/standalone/.next/static/chunks/{0hplx-8c-4vpv.js → 0ijk_kek9_wyx.js} +1 -1
  81. package/.next/standalone/.next/static/chunks/{0uc0um_uz51m_.js → 0npb~873.wvg3.js} +1 -1
  82. package/.next/standalone/.next/static/chunks/{0hctoh28rg838.js → 0xpl.oscrakvx.js} +1 -1
  83. package/.next/standalone/.next/static/chunks/{0.z51twd.0l5z.js → 1052sguyd-.ka.js} +1 -1
  84. package/.next/standalone/.next/static/chunks/{09e7drilkf1sn.js → 12simlrcfk3g2.js} +1 -1
  85. package/.next/standalone/.next/static/chunks/{0ul6fk-z.6k-0.js → 14cl9poem30dq.js} +1 -1
  86. package/.next/standalone/.next/static/chunks/{turbopack-0r26pc8h0y_-e.js → turbopack-0o7k.hakttp4k.js} +1 -1
  87. package/.next/standalone/CHANGELOG.md +19 -0
  88. package/.next/standalone/README.md +2 -2
  89. package/.next/standalone/bun.lock +43 -85
  90. package/.next/standalone/dist/cli.mjs +91 -4
  91. package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
  92. package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
  93. package/.next/standalone/docs/ar/examples.mdx +86 -33
  94. package/.next/standalone/docs/ar/getting-started.mdx +82 -29
  95. package/.next/standalone/docs/built-in-policies.mdx +38 -1
  96. package/.next/standalone/docs/custom-policies.mdx +1 -1
  97. package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
  98. package/.next/standalone/docs/de/custom-policies.mdx +56 -56
  99. package/.next/standalone/docs/de/examples.mdx +72 -18
  100. package/.next/standalone/docs/de/getting-started.mdx +72 -20
  101. package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
  102. package/.next/standalone/docs/es/custom-policies.mdx +55 -55
  103. package/.next/standalone/docs/es/examples.mdx +73 -19
  104. package/.next/standalone/docs/es/getting-started.mdx +72 -20
  105. package/.next/standalone/docs/examples.mdx +54 -0
  106. package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
  107. package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
  108. package/.next/standalone/docs/fr/examples.mdx +78 -24
  109. package/.next/standalone/docs/fr/getting-started.mdx +65 -13
  110. package/.next/standalone/docs/getting-started.mdx +52 -0
  111. package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
  112. package/.next/standalone/docs/he/custom-policies.mdx +75 -75
  113. package/.next/standalone/docs/he/examples.mdx +87 -33
  114. package/.next/standalone/docs/he/getting-started.mdx +84 -33
  115. package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
  116. package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
  117. package/.next/standalone/docs/hi/examples.mdx +90 -36
  118. package/.next/standalone/docs/hi/getting-started.mdx +80 -27
  119. package/.next/standalone/docs/i18n/README.ar.md +69 -69
  120. package/.next/standalone/docs/i18n/README.de.md +46 -46
  121. package/.next/standalone/docs/i18n/README.es.md +42 -42
  122. package/.next/standalone/docs/i18n/README.fr.md +39 -39
  123. package/.next/standalone/docs/i18n/README.he.md +83 -83
  124. package/.next/standalone/docs/i18n/README.hi.md +69 -69
  125. package/.next/standalone/docs/i18n/README.it.md +72 -72
  126. package/.next/standalone/docs/i18n/README.ja.md +71 -71
  127. package/.next/standalone/docs/i18n/README.ko.md +52 -52
  128. package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
  129. package/.next/standalone/docs/i18n/README.ru.md +66 -66
  130. package/.next/standalone/docs/i18n/README.tr.md +82 -83
  131. package/.next/standalone/docs/i18n/README.vi.md +70 -71
  132. package/.next/standalone/docs/i18n/README.zh.md +51 -51
  133. package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
  134. package/.next/standalone/docs/it/custom-policies.mdx +69 -69
  135. package/.next/standalone/docs/it/examples.mdx +93 -39
  136. package/.next/standalone/docs/it/getting-started.mdx +73 -21
  137. package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
  138. package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
  139. package/.next/standalone/docs/ja/examples.mdx +76 -22
  140. package/.next/standalone/docs/ja/getting-started.mdx +65 -13
  141. package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
  142. package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
  143. package/.next/standalone/docs/ko/examples.mdx +87 -33
  144. package/.next/standalone/docs/ko/getting-started.mdx +61 -9
  145. package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
  146. package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
  147. package/.next/standalone/docs/pt-br/examples.mdx +78 -24
  148. package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
  149. package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
  150. package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
  151. package/.next/standalone/docs/ru/examples.mdx +77 -22
  152. package/.next/standalone/docs/ru/getting-started.mdx +74 -22
  153. package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
  154. package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
  155. package/.next/standalone/docs/tr/examples.mdx +97 -42
  156. package/.next/standalone/docs/tr/getting-started.mdx +75 -23
  157. package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
  158. package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
  159. package/.next/standalone/docs/vi/examples.mdx +93 -38
  160. package/.next/standalone/docs/vi/getting-started.mdx +74 -22
  161. package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
  162. package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
  163. package/.next/standalone/docs/zh/examples.mdx +90 -36
  164. package/.next/standalone/docs/zh/getting-started.mdx +73 -21
  165. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  166. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  167. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
  168. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  169. package/.next/standalone/node_modules/next/dist/server/config-schema.js +10 -2
  170. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  171. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  172. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  173. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  174. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  175. package/.next/standalone/node_modules/next/dist/server/render.js +27 -20
  176. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  177. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  178. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  179. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  180. package/.next/standalone/node_modules/next/package.json +15 -15
  181. package/.next/standalone/package.json +2 -2
  182. package/.next/standalone/server.js +1 -1
  183. package/.next/standalone/src/hooks/builtin-policies.ts +106 -1
  184. package/README.md +2 -2
  185. package/dist/cli.mjs +91 -4
  186. package/package.json +2 -2
  187. package/src/hooks/builtin-policies.ts +106 -1
  188. package/.next/standalone/.next/static/chunks/0w9lwqy0-v1dk.js +0 -4
  189. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
  190. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
  191. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → 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` | 개인 재정의 설정 (gitignore 처리됨) |
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 falhas comuns de agentes"
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 falhas comuns 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 fluxo de trabalho impõem um pipeline de commit → push → PR → CI antes que Claude pare.
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
- | [Fluxo de trabalho](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
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 opcional `hint` em `policyParams`. O hint é anexado à mensagem de deny ou instruct que Claude vê, fornecendo orientações práticas 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.
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 que agentes executem operações difíceis de desfazer ou que possam danificar o sistema host.
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 incluam a palavra-chave `sudo`. A correspondência de padrões é feita nos tokens de comando analisados, não na string bruta, para evitar bypass via injeção de operadores de shell.
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 exatos que são permitidos. Cada entrada é comparada com os tokens argv analisados. |
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 essa configuração, `sudo systemctl status nginx` é permitido, mas `sudo rm /etc/hosts` é negado.
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 comparados com os tokens analisados, não com a string de comando bruta. Isso evita bypass via operadores de shell anexados (por exemplo, `sudo systemctl status x; rm -rf /` não corresponde a `sudo systemctl status *`).
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 excluir recursivamente (ex: `/tmp`). |
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 desinstalem ou desabilitem o próprio failproofai (ex: `npm uninstall failproofai`, `failproofai policies --uninstall`).
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 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 que ela seja 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 passada de volta.
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 chaves 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
+ **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: `postgresql://user:password@host/db`).
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 a configuração de ambiente sensível de ser lida ou exposta por agentes.
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 ao ambiente — apenas arquivos nomeados exatamente `.env`.
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 imprimam variáveis de ambiente: `printenv`, `env`, `echo $VAR`.
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 se estiverem fora do cwd. |
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 escritas em arquivos comumente usados para chaves privadas e certificados: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
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 adicionais (estilo glob) para bloquear. |
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 para todos os branches (desabilitando efetivamente esta política sem removê-la de `enabledPolicies`), defina `protectedBranches: []`.
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 o checkout direto dos branches `main` ou `master`.
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 ser obtidos diretamente via checkout. |
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 escrever arquivos maiores que 1024 KB.
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 de hook impõe um limite de 1 MB de stdin nos payloads. Para testar esta política com conteúdo pequeno, defina `thresholdKb` para um valor bem abaixo de 1024.
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 travados ou se comportam de forma inesperada.
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
- ## Fluxo de trabalho
489
+ ## Workflow
453
490
 
454
- 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 nega, as políticas seguintes na cadeia são ignoradas (deny interrompe o fluxo).
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 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.
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 token de acesso pessoal que tenha escopo `repo` para acesso de leitura a
502
- pull requests. Se `gh` não estiver instalado ou autenticado, a política falha de forma aberta e reporta o motivo ao Claude.
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 as verificações de CI estão falhando ou ainda em execução no branch atual. Verifica tanto as execuções de workflow do GitHub Actions quanto as 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.
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 token de acesso pessoal que tenha escopo `repo` para acesso de leitura às
517
- execuções de workflow do Actions e à API de Verificações. Se `gh` não estiver instalado ou autenticado, a política falha de forma aberta e reporta o motivo ao Claude.
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 Políticas do dashboard.
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
  {