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,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Встроенные политики
|
|
3
|
-
description: "Все 30 встроенных политик, которые
|
|
3
|
+
description: "Все 30 встроенных политик, которые ловят распространённые режимы отказа агентов"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
failproofai поставляется с 30 встроенными политиками, которые
|
|
7
|
+
failproofai поставляется с 30 встроенными политиками, которые ловят распространённые режимы отказа агентов. Каждая политика срабатывает на определённый тип события хука и имя инструмента. Девять политик принимают параметры, которые позволяют вам настраивать их поведение без написания кода. Четыре политики рабочего процесса обеспечивают конвейер commit → push → PR → CI перед тем, как Claude остановится.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
## Обзор
|
|
12
12
|
|
|
13
|
-
Политики
|
|
13
|
+
Политики сгруппированы по категориям:
|
|
14
14
|
|
|
15
15
|
| Категория | Политики | Тип хука |
|
|
16
16
|
|----------|----------|-----------|
|
|
@@ -25,28 +25,28 @@ failproofai поставляется с 30 встроенными политик
|
|
|
25
25
|
| [Рабочий процесс](#рабочий-процесс) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
26
26
|
|
|
27
27
|
- **`block-`** — остановить агента от продолжения.
|
|
28
|
-
- **`warn-`** — дать агенту дополнительный контекст, чтобы он
|
|
29
|
-
- **`sanitize-`** — удалить
|
|
30
|
-
- **`require-`** —
|
|
28
|
+
- **`warn-`** — дать агенту дополнительный контекст, чтобы он мог сам исправиться.
|
|
29
|
+
- **`sanitize-`** — удалить чувствительные данные из вывода инструмента перед тем, как их увидит агент.
|
|
30
|
+
- **`require-`** — заблокировать событие Stop до выполнения условий.
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
34
|
<Tip>
|
|
35
|
-
Каждая политика поддерживает
|
|
35
|
+
Каждая политика поддерживает опциональное поле `hint` в `policyParams`. Подсказка добавляется к сообщению отказа или инструкции, которые видит Claude, предоставляя полезные рекомендации без изменения кода политики. Работает с встроенными, пользовательскими и политиками соглашений. См. раздел [Конфигурация → hint](/ru/configuration#hint-cross-cutting) для деталей.
|
|
36
36
|
</Tip>
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
40
|
## Опасные команды
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
Предотвратите запуск агентами операций, которые трудно отменить или которые могут повредить хост-систему.
|
|
43
43
|
|
|
44
44
|
### `block-sudo`
|
|
45
45
|
|
|
46
46
|
**Событие:** PreToolUse (Bash)
|
|
47
|
-
**По умолчанию:**
|
|
47
|
+
**По умолчанию:** Запрещает любую команду `sudo`.
|
|
48
48
|
|
|
49
|
-
Блокирует вызовы,
|
|
49
|
+
Блокирует вызовы, включающие ключевое слово `sudo`. Сопоставление шаблонов выполняется на разобранных токенах команды, а не на исходной строке, чтобы предотвратить обход через инъекцию оператора shell.
|
|
50
50
|
|
|
51
51
|
**Параметры:**
|
|
52
52
|
|
|
@@ -66,10 +66,10 @@ failproofai поставляется с 30 встроенными политик
|
|
|
66
66
|
}
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
С этой конфигурацией `sudo systemctl status nginx`
|
|
69
|
+
С этой конфигурацией `sudo systemctl status nginx` разрешается, но `sudo rm /etc/hosts` запрещается.
|
|
70
70
|
|
|
71
71
|
<Note>
|
|
72
|
-
|
|
72
|
+
Шаблоны сопоставляются с разобранными токенами, а не с исходной строкой команды. Это предотвращает обход через добавленные операторы shell (например, `sudo systemctl status x; rm -rf /` не соответствует `sudo systemctl status *`).
|
|
73
73
|
</Note>
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -77,13 +77,13 @@ failproofai поставляется с 30 встроенными политик
|
|
|
77
77
|
### `block-rm-rf`
|
|
78
78
|
|
|
79
79
|
**Событие:** PreToolUse (Bash)
|
|
80
|
-
**По умолчанию:**
|
|
80
|
+
**По умолчанию:** Запрещает `rm -rf`, `rm -fr` и аналогичные формы рекурсивного удаления.
|
|
81
81
|
|
|
82
82
|
**Параметры:**
|
|
83
83
|
|
|
84
84
|
| Параметр | Тип | По умолчанию | Описание |
|
|
85
85
|
|-------|------|---------|-------------|
|
|
86
|
-
| `allowPaths` | `string[]` | `[]` | Пути,
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | Пути, безопасные для рекурсивного удаления (например, `/tmp`). |
|
|
87
87
|
|
|
88
88
|
**Пример:**
|
|
89
89
|
|
|
@@ -102,7 +102,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
102
102
|
### `block-curl-pipe-sh`
|
|
103
103
|
|
|
104
104
|
**Событие:** PreToolUse (Bash)
|
|
105
|
-
**По умолчанию:**
|
|
105
|
+
**По умолчанию:** Запрещает `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` и аналогичные шаблоны.
|
|
106
106
|
|
|
107
107
|
Нет параметров.
|
|
108
108
|
|
|
@@ -111,7 +111,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
111
111
|
### `block-failproofai-commands`
|
|
112
112
|
|
|
113
113
|
**Событие:** PreToolUse (Bash)
|
|
114
|
-
**По умолчанию:**
|
|
114
|
+
**По умолчанию:** Запрещает команды, которые выполняли бы удаление или отключение самого failproofai (например, `npm uninstall failproofai`, `failproofai policies --uninstall`).
|
|
115
115
|
|
|
116
116
|
Нет параметров.
|
|
117
117
|
|
|
@@ -119,7 +119,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
119
119
|
|
|
120
120
|
## Секреты (санитайзеры)
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
Предотвратите утечку агентами учётных данных в их контекст или вывод. Политики санитайзеры срабатывают на событиях **PostToolUse**. Когда Claude запускает команду Bash, читает файл или вызывает любой инструмент, эти политики проверяют вывод перед возвратом Claude. Если обнаруживается шаблон секрета, политика возвращает решение отказа, которое предотвращает передачу вывода.
|
|
123
123
|
|
|
124
124
|
### `sanitize-jwt`
|
|
125
125
|
|
|
@@ -133,13 +133,13 @@ failproofai поставляется с 30 встроенными политик
|
|
|
133
133
|
### `sanitize-api-keys`
|
|
134
134
|
|
|
135
135
|
**Событие:** PostToolUse (все инструменты)
|
|
136
|
-
**По умолчанию:** Скрывает распространённые форматы
|
|
136
|
+
**По умолчанию:** Скрывает распространённые форматы API ключей: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS access keys (`AKIA`), Stripe keys (`sk_live_`, `sk_test_`), и Google API keys (`AIza`).
|
|
137
137
|
|
|
138
138
|
**Параметры:**
|
|
139
139
|
|
|
140
140
|
| Параметр | Тип | По умолчанию | Описание |
|
|
141
141
|
|-------|------|---------|-------------|
|
|
142
|
-
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Дополнительные regex
|
|
142
|
+
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Дополнительные regex шаблоны для обработки как секреты. |
|
|
143
143
|
|
|
144
144
|
**Пример:**
|
|
145
145
|
|
|
@@ -161,7 +161,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
161
161
|
### `sanitize-connection-strings`
|
|
162
162
|
|
|
163
163
|
**Событие:** PostToolUse (все инструменты)
|
|
164
|
-
**По умолчанию:** Скрывает строки подключения
|
|
164
|
+
**По умолчанию:** Скрывает строки подключения базы данных, содержащие встроенные учётные данные (например, `postgresql://user:password@host/db`).
|
|
165
165
|
|
|
166
166
|
Нет параметров.
|
|
167
167
|
|
|
@@ -170,7 +170,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
170
170
|
### `sanitize-private-key-content`
|
|
171
171
|
|
|
172
172
|
**Событие:** PostToolUse (все инструменты)
|
|
173
|
-
**По умолчанию:** Скрывает PEM
|
|
173
|
+
**По умолчанию:** Скрывает блоки PEM (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, и т. д.).
|
|
174
174
|
|
|
175
175
|
Нет параметров.
|
|
176
176
|
|
|
@@ -187,14 +187,14 @@ failproofai поставляется с 30 встроенными политик
|
|
|
187
187
|
|
|
188
188
|
## Окружение
|
|
189
189
|
|
|
190
|
-
|
|
190
|
+
Защитите чувствительную конфигурацию окружения от чтения или раскрытия агентами.
|
|
191
191
|
|
|
192
192
|
### `block-env-files`
|
|
193
193
|
|
|
194
194
|
**Событие:** PreToolUse (Bash, Read)
|
|
195
|
-
**По умолчанию:**
|
|
195
|
+
**По умолчанию:** Запрещает чтение файлов `.env` через `cat .env`, вызовы инструмента Read с `.env` как путём к файлу и т. д.
|
|
196
196
|
|
|
197
|
-
Не блокирует `.envrc` или другие
|
|
197
|
+
Не блокирует `.envrc` или другие файлы, связанные с окружением — только файлы с именем ровно `.env`.
|
|
198
198
|
|
|
199
199
|
Нет параметров.
|
|
200
200
|
|
|
@@ -203,7 +203,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
203
203
|
### `protect-env-vars`
|
|
204
204
|
|
|
205
205
|
**Событие:** PreToolUse (Bash)
|
|
206
|
-
**По умолчанию:**
|
|
206
|
+
**По умолчанию:** Запрещает команды, которые выводят переменные окружения: `printenv`, `env`, `echo $VAR`.
|
|
207
207
|
|
|
208
208
|
Нет параметров.
|
|
209
209
|
|
|
@@ -211,18 +211,18 @@ failproofai поставляется с 30 встроенными политик
|
|
|
211
211
|
|
|
212
212
|
## Доступ к файлам
|
|
213
213
|
|
|
214
|
-
|
|
214
|
+
Держите агентов работающими внутри границ проекта и вдали от чувствительных файлов.
|
|
215
215
|
|
|
216
216
|
### `block-read-outside-cwd`
|
|
217
217
|
|
|
218
218
|
**Событие:** PreToolUse (Read, Bash)
|
|
219
|
-
**По умолчанию:**
|
|
219
|
+
**По умолчанию:** Запрещает чтение файлов вне текущей рабочей директории (корень проекта).
|
|
220
220
|
|
|
221
221
|
**Параметры:**
|
|
222
222
|
|
|
223
223
|
| Параметр | Тип | По умолчанию | Описание |
|
|
224
224
|
|-------|------|---------|-------------|
|
|
225
|
-
| `allowPaths` | `string[]` | `[]` | Абсолютные префиксы путей, которые
|
|
225
|
+
| `allowPaths` | `string[]` | `[]` | Абсолютные префиксы путей, которые разрешены даже если они вне cwd. |
|
|
226
226
|
|
|
227
227
|
**Пример:**
|
|
228
228
|
|
|
@@ -241,13 +241,13 @@ failproofai поставляется с 30 встроенными политик
|
|
|
241
241
|
### `block-secrets-write`
|
|
242
242
|
|
|
243
243
|
**Событие:** PreToolUse (Write, Edit)
|
|
244
|
-
**По умолчанию:**
|
|
244
|
+
**По умолчанию:** Запрещает записи в файлы, обычно используемые для приватных ключей и сертификатов: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
|
|
245
245
|
|
|
246
246
|
**Параметры:**
|
|
247
247
|
|
|
248
248
|
| Параметр | Тип | По умолчанию | Описание |
|
|
249
249
|
|-------|------|---------|-------------|
|
|
250
|
-
| `additionalPatterns` | `string[]` | `[]` | Дополнительные
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | Дополнительные шаблоны имён файлов (glob-стиль) для блокировки. |
|
|
251
251
|
|
|
252
252
|
**Пример:**
|
|
253
253
|
|
|
@@ -265,18 +265,18 @@ failproofai поставляется с 30 встроенными политик
|
|
|
265
265
|
|
|
266
266
|
## Git
|
|
267
267
|
|
|
268
|
-
|
|
268
|
+
Предотвратите случайные push, force-push и ошибки ветвей, которые трудно отменить.
|
|
269
269
|
|
|
270
270
|
### `block-push-master`
|
|
271
271
|
|
|
272
272
|
**Событие:** PreToolUse (Bash)
|
|
273
|
-
**По умолчанию:**
|
|
273
|
+
**По умолчанию:** Запрещает `git push origin main` и `git push origin master`.
|
|
274
274
|
|
|
275
275
|
**Параметры:**
|
|
276
276
|
|
|
277
277
|
| Параметр | Тип | По умолчанию | Описание |
|
|
278
278
|
|-------|------|---------|-------------|
|
|
279
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена
|
|
279
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена ветвей, на которые нельзя пушить напрямую. |
|
|
280
280
|
|
|
281
281
|
**Пример:**
|
|
282
282
|
|
|
@@ -291,7 +291,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
291
291
|
```
|
|
292
292
|
|
|
293
293
|
<Tip>
|
|
294
|
-
Чтобы разрешить
|
|
294
|
+
Чтобы разрешить пушинг во все ветви (фактически отключив эту политику без удаления её из `enabledPolicies`), установите `protectedBranches: []`.
|
|
295
295
|
</Tip>
|
|
296
296
|
|
|
297
297
|
---
|
|
@@ -299,28 +299,28 @@ failproofai поставляется с 30 встроенными политик
|
|
|
299
299
|
### `block-work-on-main`
|
|
300
300
|
|
|
301
301
|
**Событие:** PreToolUse (Bash)
|
|
302
|
-
**По умолчанию:**
|
|
302
|
+
**По умолчанию:** Запрещает checkout веток `main` или `master` напрямую.
|
|
303
303
|
|
|
304
304
|
**Параметры:**
|
|
305
305
|
|
|
306
306
|
| Параметр | Тип | По умолчанию | Описание |
|
|
307
307
|
|-------|------|---------|-------------|
|
|
308
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена ветвей, которые нельзя checkoutить напрямую. |
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
312
312
|
### `block-force-push`
|
|
313
313
|
|
|
314
314
|
**Событие:** PreToolUse (Bash)
|
|
315
|
-
**По умолчанию:**
|
|
315
|
+
**По умолчанию:** Запрещает `git push --force` и `git push -f`.
|
|
316
316
|
|
|
317
|
-
Нет
|
|
317
|
+
Нет политик-специфичных параметров. Используйте кросс-режущую [`hint`](/ru/configuration#hint-cross-cutting) для предложения альтернатив:
|
|
318
318
|
|
|
319
319
|
```json
|
|
320
320
|
{
|
|
321
321
|
"policyParams": {
|
|
322
322
|
"block-force-push": {
|
|
323
|
-
"hint": "Создайте новую
|
|
323
|
+
"hint": "Создайте новую ветвь из вашего текущего HEAD (например, `git checkout -b <new-branch>`) и пушьте её вместо этого."
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
}
|
|
@@ -331,7 +331,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
331
331
|
### `warn-git-amend`
|
|
332
332
|
|
|
333
333
|
**Событие:** PreToolUse (Bash)
|
|
334
|
-
**По умолчанию:** Инструктирует Claude действовать
|
|
334
|
+
**По умолчанию:** Инструктирует Claude действовать осторожно при запуске `git commit --amend`. Не блокирует команду.
|
|
335
335
|
|
|
336
336
|
Нет параметров.
|
|
337
337
|
|
|
@@ -349,7 +349,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
349
349
|
### `warn-all-files-staged`
|
|
350
350
|
|
|
351
351
|
**Событие:** PreToolUse (Bash)
|
|
352
|
-
**По умолчанию:** Инструктирует Claude
|
|
352
|
+
**По умолчанию:** Инструктирует Claude просмотреть то, что он staging, когда запускает `git add -A` или `git add .`. Не блокирует команду.
|
|
353
353
|
|
|
354
354
|
Нет параметров.
|
|
355
355
|
|
|
@@ -357,12 +357,12 @@ failproofai поставляется с 30 встроенными политик
|
|
|
357
357
|
|
|
358
358
|
## База данных
|
|
359
359
|
|
|
360
|
-
|
|
360
|
+
Ловите деструктивные SQL операции перед их выполнением против вашей базы данных.
|
|
361
361
|
|
|
362
362
|
### `warn-destructive-sql`
|
|
363
363
|
|
|
364
364
|
**Событие:** PreToolUse (Bash)
|
|
365
|
-
**По умолчанию:** Инструктирует Claude подтвердить перед запуском SQL, содержащего `DROP TABLE`, `DROP DATABASE
|
|
365
|
+
**По умолчанию:** Инструктирует Claude подтвердить перед запуском SQL, содержащего `DROP TABLE`, `DROP DATABASE`, или `DELETE` без `WHERE` предложения.
|
|
366
366
|
|
|
367
367
|
Нет параметров.
|
|
368
368
|
|
|
@@ -371,7 +371,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
371
371
|
### `warn-schema-alteration`
|
|
372
372
|
|
|
373
373
|
**Событие:** PreToolUse (Bash)
|
|
374
|
-
**По умолчанию:** Инструктирует Claude подтвердить перед запуском
|
|
374
|
+
**По умолчанию:** Инструктирует Claude подтвердить перед запуском операций `ALTER TABLE`.
|
|
375
375
|
|
|
376
376
|
Нет параметров.
|
|
377
377
|
|
|
@@ -379,18 +379,18 @@ failproofai поставляется с 30 встроенными политик
|
|
|
379
379
|
|
|
380
380
|
## Предупреждения
|
|
381
381
|
|
|
382
|
-
|
|
382
|
+
Дайте агентам дополнительный контекст перед потенциально рискованными, но не деструктивными операциями.
|
|
383
383
|
|
|
384
384
|
### `warn-large-file-write`
|
|
385
385
|
|
|
386
386
|
**Событие:** PreToolUse (Write)
|
|
387
|
-
**По умолчанию:** Инструктирует Claude подтвердить перед записью файлов больше 1024
|
|
387
|
+
**По умолчанию:** Инструктирует Claude подтвердить перед записью файлов больше 1024 КБ.
|
|
388
388
|
|
|
389
389
|
**Параметры:**
|
|
390
390
|
|
|
391
391
|
| Параметр | Тип | По умолчанию | Описание |
|
|
392
392
|
|-------|------|---------|-------------|
|
|
393
|
-
| `thresholdKb` | `number` | `1024` | Порог размера файла в килобайтах, выше которого
|
|
393
|
+
| `thresholdKb` | `number` | `1024` | Порог размера файла в килобайтах, выше которого выводится предупреждение. |
|
|
394
394
|
|
|
395
395
|
**Пример:**
|
|
396
396
|
|
|
@@ -405,7 +405,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
<Note>
|
|
408
|
-
Обработчик хука
|
|
408
|
+
Обработчик хука обеспечивает лимит stdin в 1 МБ на полезные нагрузки. Для тестирования этой политики с малым содержимым установите `thresholdKb` на значение хорошо ниже 1024.
|
|
409
409
|
</Note>
|
|
410
410
|
|
|
411
411
|
---
|
|
@@ -422,7 +422,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
422
422
|
### `warn-background-process`
|
|
423
423
|
|
|
424
424
|
**Событие:** PreToolUse (Bash)
|
|
425
|
-
**По умолчанию:** Инструктирует Claude быть
|
|
425
|
+
**По умолчанию:** Инструктирует Claude быть осторожным при запуске фоновых процессов через `nohup`, `&`, `disown`, или `screen`.
|
|
426
426
|
|
|
427
427
|
Нет параметров.
|
|
428
428
|
|
|
@@ -431,7 +431,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
431
431
|
### `warn-global-package-install`
|
|
432
432
|
|
|
433
433
|
**Событие:** PreToolUse (Bash)
|
|
434
|
-
**По умолчанию:** Инструктирует Claude подтвердить перед запуском `npm install -g`, `yarn global add
|
|
434
|
+
**По умолчанию:** Инструктирует Claude подтвердить перед запуском `npm install -g`, `yarn global add`, или `pip install` без виртуального окружения.
|
|
435
435
|
|
|
436
436
|
Нет параметров.
|
|
437
437
|
|
|
@@ -439,21 +439,21 @@ failproofai поставляется с 30 встроенными политик
|
|
|
439
439
|
|
|
440
440
|
## Менеджеры пакетов
|
|
441
441
|
|
|
442
|
-
|
|
442
|
+
Обеспечьте, какой менеджер пакетов агенту разрешено использовать.
|
|
443
443
|
|
|
444
444
|
### `prefer-package-manager`
|
|
445
445
|
|
|
446
446
|
**Событие:** PreToolUse (Bash)
|
|
447
|
-
**По умолчанию:** Отключено.
|
|
447
|
+
**По умолчанию:** Отключено. Когда включено, блокирует любую команду менеджера пакетов, не входящую в список `allowed`, и говорит Claude переписать команду, используя разрешённый менеджер.
|
|
448
448
|
|
|
449
449
|
Обнаруживает: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
450
|
|
|
451
451
|
| Параметр | Тип | По умолчанию | Описание |
|
|
452
452
|
|-----------|------|---------|-------------|
|
|
453
|
-
| `allowed` | string[] | `[]` | Разрешённые имена менеджеров пакетов. Любой обнаруженный менеджер,
|
|
453
|
+
| `allowed` | string[] | `[]` | Разрешённые имена менеджеров пакетов. Любой обнаруженный менеджер, не входящий в этот список, блокируется. Когда пусто, политика неоперативна. |
|
|
454
454
|
| `blocked` | string[] | `[]` | Дополнительные имена менеджеров для блокировки сверх встроенного списка (например, `['pdm', 'pipx']`). |
|
|
455
455
|
|
|
456
|
-
Встроенный список блокировки
|
|
456
|
+
Встроенный список блокировки охватывает: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Используйте `blocked` для добавления менеджеров, не входящих в этот список.
|
|
457
457
|
|
|
458
458
|
**Пример конфигурации:**
|
|
459
459
|
|
|
@@ -469,18 +469,18 @@ failproofai поставляется с 30 встроенными политик
|
|
|
469
469
|
}
|
|
470
470
|
```
|
|
471
471
|
|
|
472
|
-
С этой конфигурацией `pip install flask` и `pdm install flask` оба
|
|
472
|
+
С этой конфигурацией `pip install flask` и `pdm install flask` оба запрещены с сообщением, говорящим Claude использовать `uv` или `bun` вместо этого. Команды типа `uv pip install flask` разрешены, потому что `uv` находится в списке разрешённых и проверяется первым.
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
476
|
-
## Поведение
|
|
476
|
+
## Поведение AI
|
|
477
477
|
|
|
478
|
-
|
|
478
|
+
Обнаружьте, когда агенты застревают или ведут себя неожиданно.
|
|
479
479
|
|
|
480
480
|
### `warn-repeated-tool-calls`
|
|
481
481
|
|
|
482
482
|
**Событие:** PreToolUse (все инструменты)
|
|
483
|
-
**По умолчанию:** Инструктирует Claude пересмотреть, когда
|
|
483
|
+
**По умолчанию:** Инструктирует Claude пересмотреть, когда тот же инструмент вызывается 3+ раза с идентичными параметрами — распространённый признак того, что агент застрял в цикле.
|
|
484
484
|
|
|
485
485
|
Нет параметров.
|
|
486
486
|
|
|
@@ -488,14 +488,14 @@ failproofai поставляется с 30 встроенными политик
|
|
|
488
488
|
|
|
489
489
|
## Рабочий процесс
|
|
490
490
|
|
|
491
|
-
|
|
491
|
+
Обеспечьте дисциплинированный рабочий процесс конца сессии. Эти политики срабатывают на событии **Stop** и запрещают Claude останавливаться до выполнения каждого условия. Они следуют естественной цепочке зависимостей: commit → push → PR → CI. Если политика запрещает, позже идущие политики в цепи пропускаются (отказ коротко-замыкает).
|
|
492
492
|
|
|
493
493
|
Все политики рабочего процесса **fail-open**: если требуемый инструмент недоступен (например, `gh` не установлен, нет git remote), политика разрешает с информационным сообщением, объясняющим, почему проверка была пропущена.
|
|
494
494
|
|
|
495
495
|
### `require-commit-before-stop`
|
|
496
496
|
|
|
497
497
|
**Событие:** Stop
|
|
498
|
-
**По умолчанию:**
|
|
498
|
+
**По умолчанию:** Запрещает остановку, когда есть незакоммиченные изменения (изменённые, поставленные на stage или неотслеживаемые файлы). Возвращает информационное сообщение, когда рабочая директория чистая.
|
|
499
499
|
|
|
500
500
|
Нет параметров.
|
|
501
501
|
|
|
@@ -504,13 +504,13 @@ failproofai поставляется с 30 встроенными политик
|
|
|
504
504
|
### `require-push-before-stop`
|
|
505
505
|
|
|
506
506
|
**Событие:** Stop
|
|
507
|
-
**По умолчанию:**
|
|
507
|
+
**По умолчанию:** Запрещает остановку, когда есть неотправленные коммиты или когда текущая ветвь не имеет удалённой отслеживаемой ветви. Предлагает `git push -u` для создания отслеживаемой ветви при необходимости. Fails open если no remote не сконфигурирован.
|
|
508
508
|
|
|
509
509
|
**Параметры:**
|
|
510
510
|
|
|
511
511
|
| Параметр | Тип | По умолчанию | Описание |
|
|
512
512
|
|-------|------|---------|-------------|
|
|
513
|
-
| `remote` | `string` | `"origin"` | Имя
|
|
513
|
+
| `remote` | `string` | `"origin"` | Имя remote для пушинга. |
|
|
514
514
|
|
|
515
515
|
**Пример:**
|
|
516
516
|
|
|
@@ -529,14 +529,14 @@ failproofai поставляется с 30 встроенными политик
|
|
|
529
529
|
### `require-pr-before-stop`
|
|
530
530
|
|
|
531
531
|
**Событие:** Stop
|
|
532
|
-
**По умолчанию:**
|
|
532
|
+
**По умолчанию:** Запрещает остановку, когда для текущей ветви не существует pull request, или когда существующий PR закрыт/merged. Инструктирует Claude создать PR с `gh pr create`.
|
|
533
533
|
|
|
534
534
|
Нет параметров.
|
|
535
535
|
|
|
536
536
|
<Note>
|
|
537
|
-
Эта политика требует установки [GitHub CLI](https://cli.github.com/) (`gh`)
|
|
538
|
-
Запустите `gh auth login` с личным
|
|
539
|
-
pull
|
|
537
|
+
Эта политика требует установки и аутентификации [GitHub CLI](https://cli.github.com/) (`gh`).
|
|
538
|
+
Запустите `gh auth login` с личным токеном доступа, имеющим область `repo` для чтения доступа к
|
|
539
|
+
pull requests. Если `gh` не установлен или не аутентифицирован, политика fails open и сообщает причину Claude.
|
|
540
540
|
</Note>
|
|
541
541
|
|
|
542
542
|
---
|
|
@@ -544,14 +544,14 @@ pull request'ов. Если `gh` не установлен или не ауте
|
|
|
544
544
|
### `require-ci-green-before-stop`
|
|
545
545
|
|
|
546
546
|
**Событие:** Stop
|
|
547
|
-
**По умолчанию:**
|
|
547
|
+
**По умолчанию:** Запрещает остановку, когда CI проверки не проходят или ещё выполняются на текущей ветви. Проверяет как запуски рабочих процессов GitHub Actions, так и проверки сторонних ботов (например, CodeRabbit, SonarCloud, Codecov). Рассматривает `skipped` и `cancelled` выводы как успех. Возвращает информационное сообщение, когда все проверки проходят.
|
|
548
548
|
|
|
549
549
|
Нет параметров.
|
|
550
550
|
|
|
551
551
|
<Note>
|
|
552
|
-
Эта политика требует установки [GitHub CLI](https://cli.github.com/) (`gh`)
|
|
553
|
-
Запустите `gh auth login` с личным
|
|
554
|
-
|
|
552
|
+
Эта политика требует установки и аутентификации [GitHub CLI](https://cli.github.com/) (`gh`).
|
|
553
|
+
Запустите `gh auth login` с личным токеном доступа, имеющим область `repo` для чтения доступа к
|
|
554
|
+
запускам рабочих процессов Actions и Checks API. Если `gh` не установлен или не аутентифицирован, политика fails open и сообщает причину Claude.
|
|
555
555
|
</Note>
|
|
556
556
|
|
|
557
557
|
---
|
|
@@ -560,7 +560,7 @@ pull request'ов. Если `gh` не установлен или не ауте
|
|
|
560
560
|
|
|
561
561
|
## Отключение отдельных политик
|
|
562
562
|
|
|
563
|
-
Удалите определённую политику из `enabledPolicies` в вашей конфигурации или отключите её на вкладке Policies в
|
|
563
|
+
Удалите определённую политику из `enabledPolicies` в вашей конфигурации или отключите её на вкладке Policies в dashboardе.
|
|
564
564
|
|
|
565
565
|
```json
|
|
566
566
|
{
|
|
@@ -571,4 +571,4 @@ pull request'ов. Если `gh` не установлен или не ауте
|
|
|
571
571
|
}
|
|
572
572
|
```
|
|
573
573
|
|
|
574
|
-
Политики, не указанные в `enabledPolicies`, не запускаются, даже если
|
|
574
|
+
Политики, не указанные в `enabledPolicies`, не запускаются, даже если для них существуют записи `policyParams`.
|