failproofai 0.0.3 → 0.0.4
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]__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]__0bo8s~-._.js → [root-of-the-server]__0lty_fo._.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]__03kiqd5._.js → [root-of-the-server]__0v1egkj._.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/{03oepxbqx6o8~.js → 0b2_069x5qnxg.js} +2 -2
- package/.next/standalone/.next/static/chunks/{02t9.s735hqyq.js → 0de3q2juhg_dr.js} +1 -1
- package/.next/standalone/.next/static/chunks/{18cl6wups7ouq.js → 0p5sfob-upg0g.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0h5kbvg~.xf.v.js → 0tw_xfxb1tto..js} +1 -1
- package/.next/standalone/.next/static/chunks/{0od..umlku4bb.js → 0uxpbrcv44lga.js} +1 -1
- package/.next/standalone/.next/static/chunks/0xjz3w.yw5tza.js +1 -0
- package/.next/standalone/.next/static/chunks/{0xbwzy4dl87-0.js → 0y-bi_mp2rv4l.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0cwft44dh9bww.js → 11zlh73ggln0w.js} +1 -1
- package/.next/standalone/CHANGELOG.md +5 -0
- package/.next/standalone/dist/cli.mjs +4 -8
- package/.next/standalone/docs/ar/built-in-policies.mdx +100 -129
- package/.next/standalone/docs/ar/cli/install-policies.mdx +10 -11
- package/.next/standalone/docs/ar/cli/remove-policies.mdx +10 -12
- package/.next/standalone/docs/built-in-policies.mdx +3 -30
- package/.next/standalone/docs/cli/install-policies.mdx +0 -1
- package/.next/standalone/docs/cli/remove-policies.mdx +0 -1
- package/.next/standalone/docs/de/built-in-policies.mdx +65 -92
- package/.next/standalone/docs/de/cli/install-policies.mdx +3 -4
- package/.next/standalone/docs/de/cli/remove-policies.mdx +3 -4
- package/.next/standalone/docs/docs.json +5 -0
- package/.next/standalone/docs/es/built-in-policies.mdx +66 -93
- package/.next/standalone/docs/es/cli/install-policies.mdx +4 -5
- package/.next/standalone/docs/es/cli/remove-policies.mdx +4 -5
- package/.next/standalone/docs/fr/built-in-policies.mdx +83 -110
- package/.next/standalone/docs/fr/cli/install-policies.mdx +11 -12
- package/.next/standalone/docs/fr/cli/remove-policies.mdx +2 -3
- package/.next/standalone/docs/he/built-in-policies.mdx +131 -160
- package/.next/standalone/docs/he/cli/install-policies.mdx +14 -15
- package/.next/standalone/docs/he/cli/remove-policies.mdx +13 -14
- package/.next/standalone/docs/hi/built-in-policies.mdx +168 -197
- package/.next/standalone/docs/hi/cli/install-policies.mdx +10 -11
- package/.next/standalone/docs/hi/cli/remove-policies.mdx +13 -14
- package/.next/standalone/docs/it/built-in-policies.mdx +83 -110
- package/.next/standalone/docs/it/cli/install-policies.mdx +12 -13
- package/.next/standalone/docs/it/cli/remove-policies.mdx +5 -6
- package/.next/standalone/docs/ja/built-in-policies.mdx +119 -146
- package/.next/standalone/docs/ja/cli/install-policies.mdx +12 -13
- package/.next/standalone/docs/ja/cli/remove-policies.mdx +8 -9
- package/.next/standalone/docs/ko/built-in-policies.mdx +80 -107
- package/.next/standalone/docs/ko/cli/install-policies.mdx +10 -11
- package/.next/standalone/docs/ko/cli/remove-policies.mdx +2 -3
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +46 -73
- package/.next/standalone/docs/pt-br/cli/install-policies.mdx +5 -6
- package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +11 -12
- package/.next/standalone/docs/ru/built-in-policies.mdx +107 -132
- package/.next/standalone/docs/ru/cli/install-policies.mdx +10 -10
- package/.next/standalone/docs/ru/cli/remove-policies.mdx +13 -14
- package/.next/standalone/docs/tr/built-in-policies.mdx +106 -131
- package/.next/standalone/docs/tr/cli/install-policies.mdx +14 -15
- package/.next/standalone/docs/tr/cli/remove-policies.mdx +7 -8
- package/.next/standalone/docs/vi/built-in-policies.mdx +73 -100
- package/.next/standalone/docs/vi/cli/install-policies.mdx +17 -18
- package/.next/standalone/docs/vi/cli/remove-policies.mdx +11 -12
- package/.next/standalone/docs/zh/built-in-policies.mdx +77 -104
- package/.next/standalone/docs/zh/cli/install-policies.mdx +4 -5
- package/.next/standalone/docs/zh/cli/remove-policies.mdx +8 -9
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/hooks/builtin-policies.ts +0 -4
- package/dist/cli.mjs +4 -8
- package/package.json +1 -1
- package/src/hooks/builtin-policies.ts +0 -4
- package/.next/standalone/.next/static/chunks/0e2uz2g026ckb.js +0 -1
- /package/.next/standalone/.next/static/{En9eEShUkUjgeYbY9v6Gy → LayjxQulxIcNH19Lqgjbf}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{En9eEShUkUjgeYbY9v6Gy → LayjxQulxIcNH19Lqgjbf}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{En9eEShUkUjgeYbY9v6Gy → LayjxQulxIcNH19Lqgjbf}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
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
|
|
|
@@ -12,8 +12,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
12
12
|
|
|
13
13
|
Политики сгруппированы по категориям:
|
|
14
14
|
|
|
15
|
-
| Категория | Политики | Тип
|
|
16
|
-
|
|
15
|
+
| Категория | Политики | Тип хука |
|
|
16
|
+
|----------|----------|---------|
|
|
17
17
|
| [Опасные команды](#опасные-команды) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
18
|
| [Секреты (санитайзеры)](#секреты-санитайзеры) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
19
19
|
| [Окружение](#окружение) | block-env-files, protect-env-vars | PreToolUse |
|
|
@@ -21,36 +21,36 @@ failproofai поставляется с 30 встроенными политик
|
|
|
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
|
| [База данных](#база-данных) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
|
|
23
23
|
| [Предупреждения](#предупреждения) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
|
|
24
|
-
| [Рабочий
|
|
24
|
+
| [Рабочий процесс](#рабочий-процесс) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
25
25
|
|
|
26
|
-
- **`block-`** — остановить агента от
|
|
27
|
-
- **`warn-`** —
|
|
28
|
-
- **`sanitize-`** — удалить чувствительные данные из
|
|
29
|
-
- **`require-`** —
|
|
26
|
+
- **`block-`** — остановить агента от продолжения.
|
|
27
|
+
- **`warn-`** — дать агенту дополнительный контекст, чтобы он мог самокорректироваться.
|
|
28
|
+
- **`sanitize-`** — удалить чувствительные данные из выходных данных инструмента перед тем, как их увидит агент.
|
|
29
|
+
- **`require-`** — блокировать событие Stop до выполнения условий.
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
33
|
<Tip>
|
|
34
|
-
Каждая политика поддерживает необязательное поле `hint` в `policyParams`. Подсказка добавляется к сообщению deny или instruct, которое видит Claude, предоставляя
|
|
34
|
+
Каждая политика поддерживает необязательное поле `hint` в `policyParams`. Подсказка добавляется к сообщению deny или instruct, которое видит Claude, предоставляя практическое руководство без изменения кода политики. Работает со встроенными, пользовательскими и условными политиками. Подробнее см. в разделе [Конфигурация → hint](/ru/configuration#hint-cross-cutting).
|
|
35
35
|
</Tip>
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
39
|
## Опасные команды
|
|
40
40
|
|
|
41
|
-
Предотвратите
|
|
41
|
+
Предотвратите выполнение агентами операций, которые трудно отменить или которые могут повредить хост-систему.
|
|
42
42
|
|
|
43
43
|
### `block-sudo`
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
**По умолчанию:**
|
|
45
|
+
**События:** PreToolUse (Bash)
|
|
46
|
+
**По умолчанию:** Отклоняет любую команду `sudo`.
|
|
47
47
|
|
|
48
|
-
Блокирует вызовы, содержащие ключевое слово `sudo`. Сопоставление
|
|
48
|
+
Блокирует вызовы, содержащие ключевое слово `sudo`. Сопоставление шаблонов выполняется на разобранных токенах команд, а не на исходной строке, чтобы предотвратить обход через инъекцию операторов shell.
|
|
49
49
|
|
|
50
50
|
**Параметры:**
|
|
51
51
|
|
|
52
52
|
| Параметр | Тип | По умолчанию | Описание |
|
|
53
|
-
|
|
53
|
+
|----------|-----|-------------|---------|
|
|
54
54
|
| `allowPatterns` | `string[]` | `[]` | Точные префиксы команд, которые разрешены. Каждая запись сопоставляется с разобранными токенами argv. |
|
|
55
55
|
|
|
56
56
|
**Пример:**
|
|
@@ -65,23 +65,23 @@ failproofai поставляется с 30 встроенными политик
|
|
|
65
65
|
}
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
С
|
|
68
|
+
С такой конфигурацией `sudo systemctl status nginx` разрешён, но `sudo rm /etc/hosts` запрещён.
|
|
69
69
|
|
|
70
70
|
<Note>
|
|
71
|
-
|
|
71
|
+
Шаблоны сопоставляются с разобранными токенами, а не с исходной командной строкой. Это предотвращает обход через добавленные операторы shell (например, `sudo systemctl status x; rm -rf /` не соответствует `sudo systemctl status *`).
|
|
72
72
|
</Note>
|
|
73
73
|
|
|
74
74
|
---
|
|
75
75
|
|
|
76
76
|
### `block-rm-rf`
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
**По умолчанию:**
|
|
78
|
+
**События:** PreToolUse (Bash)
|
|
79
|
+
**По умолчанию:** Отклоняет `rm -rf`, `rm -fr` и аналогичные формы рекурсивного удаления.
|
|
80
80
|
|
|
81
81
|
**Параметры:**
|
|
82
82
|
|
|
83
83
|
| Параметр | Тип | По умолчанию | Описание |
|
|
84
|
-
|
|
84
|
+
|----------|-----|-------------|---------|
|
|
85
85
|
| `allowPaths` | `string[]` | `[]` | Пути, которые безопасно рекурсивно удалять (например, `/tmp`). |
|
|
86
86
|
|
|
87
87
|
**Пример:**
|
|
@@ -100,8 +100,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
100
100
|
|
|
101
101
|
### `block-curl-pipe-sh`
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
**По умолчанию:**
|
|
103
|
+
**События:** PreToolUse (Bash)
|
|
104
|
+
**По умолчанию:** Отклоняет `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` и аналогичные шаблоны.
|
|
105
105
|
|
|
106
106
|
Нет параметров.
|
|
107
107
|
|
|
@@ -109,8 +109,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
109
109
|
|
|
110
110
|
### `block-failproofai-commands`
|
|
111
111
|
|
|
112
|
-
|
|
113
|
-
**По умолчанию:**
|
|
112
|
+
**События:** PreToolUse (Bash)
|
|
113
|
+
**По умолчанию:** Отклоняет команды, которые бы удалили или отключили failproofai (например, `npm uninstall failproofai`, `failproofai policies --uninstall`).
|
|
114
114
|
|
|
115
115
|
Нет параметров.
|
|
116
116
|
|
|
@@ -118,12 +118,12 @@ failproofai поставляется с 30 встроенными политик
|
|
|
118
118
|
|
|
119
119
|
## Секреты (санитайзеры)
|
|
120
120
|
|
|
121
|
-
Предотвратите утечку учётных данных
|
|
121
|
+
Предотвратите утечку учётных данных агентом в его контекст или выходные данные. Политики санитайзеров срабатывают на событиях **PostToolUse**. Когда Claude запускает команду Bash, читает файл или вызывает любой инструмент, эти политики проверяют выходные данные перед возвратом Claude. Если обнаружен шаблон секрета, политика возвращает решение deny, которое предотвращает передачу выходных данных обратно.
|
|
122
122
|
|
|
123
123
|
### `sanitize-jwt`
|
|
124
124
|
|
|
125
|
-
|
|
126
|
-
**По умолчанию:** Скрывает JWT-токены (три base64url
|
|
125
|
+
**События:** PostToolUse (все инструменты)
|
|
126
|
+
**По умолчанию:** Скрывает JWT-токены (три сегмента base64url, разделённые `.`).
|
|
127
127
|
|
|
128
128
|
Нет параметров.
|
|
129
129
|
|
|
@@ -131,14 +131,14 @@ failproofai поставляется с 30 встроенными политик
|
|
|
131
131
|
|
|
132
132
|
### `sanitize-api-keys`
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
**По умолчанию:** Скрывает распространённые форматы API-ключей: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS access keys (`AKIA`), Stripe keys (`sk_live_`, `sk_test_`) и Google API keys (`AIza`).
|
|
134
|
+
**События:** PostToolUse (все инструменты)
|
|
135
|
+
**По умолчанию:** Скрывает распространённые форматы API-ключей: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS access keys (`AKIA`), Stripe keys (`sk_live_`, `sk_test_`), и Google API keys (`AIza`).
|
|
136
136
|
|
|
137
137
|
**Параметры:**
|
|
138
138
|
|
|
139
139
|
| Параметр | Тип | По умолчанию | Описание |
|
|
140
|
-
|
|
141
|
-
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Дополнительные regex
|
|
140
|
+
|----------|-----|-------------|---------|
|
|
141
|
+
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Дополнительные regex-шаблоны для трактовки как секретов. |
|
|
142
142
|
|
|
143
143
|
**Пример:**
|
|
144
144
|
|
|
@@ -159,8 +159,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
159
159
|
|
|
160
160
|
### `sanitize-connection-strings`
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
**По умолчанию:** Скрывает строки подключения к
|
|
162
|
+
**События:** PostToolUse (все инструменты)
|
|
163
|
+
**По умолчанию:** Скрывает строки подключения к базе данных, содержащие встроенные учётные данные (например, `postgresql://user:password@host/db`).
|
|
164
164
|
|
|
165
165
|
Нет параметров.
|
|
166
166
|
|
|
@@ -168,8 +168,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
168
168
|
|
|
169
169
|
### `sanitize-private-key-content`
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
**По умолчанию:** Скрывает PEM
|
|
171
|
+
**События:** PostToolUse (все инструменты)
|
|
172
|
+
**По умолчанию:** Скрывает PEM-блоки (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----` и т.д.).
|
|
173
173
|
|
|
174
174
|
Нет параметров.
|
|
175
175
|
|
|
@@ -177,8 +177,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
177
177
|
|
|
178
178
|
### `sanitize-bearer-tokens`
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
**По умолчанию:** Скрывает заголовки `Authorization: Bearer <token>`, где токен
|
|
180
|
+
**События:** PostToolUse (все инструменты)
|
|
181
|
+
**По умолчанию:** Скрывает заголовки `Authorization: Bearer <token>`, где токен состоит из 20 или более символов.
|
|
182
182
|
|
|
183
183
|
Нет параметров.
|
|
184
184
|
|
|
@@ -190,10 +190,10 @@ failproofai поставляется с 30 встроенными политик
|
|
|
190
190
|
|
|
191
191
|
### `block-env-files`
|
|
192
192
|
|
|
193
|
-
|
|
194
|
-
**По умолчанию:**
|
|
193
|
+
**События:** PreToolUse (Bash, Read)
|
|
194
|
+
**По умолчанию:** Отклоняет чтение файлов `.env` через `cat .env`, вызовы инструмента Read с `.env` в качестве пути файла и т.д.
|
|
195
195
|
|
|
196
|
-
Не блокирует `.envrc` или другие файлы, связанные с окружением — только
|
|
196
|
+
Не блокирует `.envrc` или другие файлы, связанные с окружением — только файлы, названные ровно `.env`.
|
|
197
197
|
|
|
198
198
|
Нет параметров.
|
|
199
199
|
|
|
@@ -201,8 +201,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
201
201
|
|
|
202
202
|
### `protect-env-vars`
|
|
203
203
|
|
|
204
|
-
|
|
205
|
-
**По умолчанию:**
|
|
204
|
+
**События:** PreToolUse (Bash)
|
|
205
|
+
**По умолчанию:** Отклоняет команды, которые выводят переменные окружения: `printenv`, `env`, `echo $VAR`.
|
|
206
206
|
|
|
207
207
|
Нет параметров.
|
|
208
208
|
|
|
@@ -210,18 +210,18 @@ failproofai поставляется с 30 встроенными политик
|
|
|
210
210
|
|
|
211
211
|
## Доступ к файлам
|
|
212
212
|
|
|
213
|
-
Держите агентов
|
|
213
|
+
Держите агентов внутри границ проекта и подальше от чувствительных файлов.
|
|
214
214
|
|
|
215
215
|
### `block-read-outside-cwd`
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
**По умолчанию:**
|
|
217
|
+
**События:** PreToolUse (Read, Bash)
|
|
218
|
+
**По умолчанию:** Отклоняет чтение файлов вне текущего рабочего каталога (корня проекта).
|
|
219
219
|
|
|
220
220
|
**Параметры:**
|
|
221
221
|
|
|
222
222
|
| Параметр | Тип | По умолчанию | Описание |
|
|
223
|
-
|
|
224
|
-
| `allowPaths` | `string[]` | `[]` |
|
|
223
|
+
|----------|-----|-------------|---------|
|
|
224
|
+
| `allowPaths` | `string[]` | `[]` | Префиксы абсолютных путей, которые разрешены даже если вне cwd. |
|
|
225
225
|
|
|
226
226
|
**Пример:**
|
|
227
227
|
|
|
@@ -239,14 +239,14 @@ failproofai поставляется с 30 встроенными политик
|
|
|
239
239
|
|
|
240
240
|
### `block-secrets-write`
|
|
241
241
|
|
|
242
|
-
|
|
243
|
-
**По умолчанию:**
|
|
242
|
+
**События:** PreToolUse (Write, Edit)
|
|
243
|
+
**По умолчанию:** Отклоняет записи в файлы, обычно используемые для приватных ключей и сертификатов: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
|
|
244
244
|
|
|
245
245
|
**Параметры:**
|
|
246
246
|
|
|
247
247
|
| Параметр | Тип | По умолчанию | Описание |
|
|
248
|
-
|
|
249
|
-
| `additionalPatterns` | `string[]` | `[]` | Дополнительные
|
|
248
|
+
|----------|-----|-------------|---------|
|
|
249
|
+
| `additionalPatterns` | `string[]` | `[]` | Дополнительные шаблоны имён файлов (glob-стиль) для блокировки. |
|
|
250
250
|
|
|
251
251
|
**Пример:**
|
|
252
252
|
|
|
@@ -264,18 +264,18 @@ failproofai поставляется с 30 встроенными политик
|
|
|
264
264
|
|
|
265
265
|
## Git
|
|
266
266
|
|
|
267
|
-
Предотвратите случайные
|
|
267
|
+
Предотвратите случайные пуши, force-пуши и ошибки ветвей, которые трудно отменить.
|
|
268
268
|
|
|
269
269
|
### `block-push-master`
|
|
270
270
|
|
|
271
|
-
|
|
272
|
-
**По умолчанию:**
|
|
271
|
+
**События:** PreToolUse (Bash)
|
|
272
|
+
**По умолчанию:** Отклоняет `git push origin main` и `git push origin master`.
|
|
273
273
|
|
|
274
274
|
**Параметры:**
|
|
275
275
|
|
|
276
276
|
| Параметр | Тип | По умолчанию | Описание |
|
|
277
|
-
|
|
278
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена ветвей, которые
|
|
277
|
+
|----------|-----|-------------|---------|
|
|
278
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена ветвей, в которые нельзя пушить напрямую. |
|
|
279
279
|
|
|
280
280
|
**Пример:**
|
|
281
281
|
|
|
@@ -290,36 +290,36 @@ failproofai поставляется с 30 встроенными политик
|
|
|
290
290
|
```
|
|
291
291
|
|
|
292
292
|
<Tip>
|
|
293
|
-
Чтобы разрешить
|
|
293
|
+
Чтобы разрешить пуши во все ветви (фактически отключив эту политику без удаления её из `enabledPolicies`), установите `protectedBranches: []`.
|
|
294
294
|
</Tip>
|
|
295
295
|
|
|
296
296
|
---
|
|
297
297
|
|
|
298
298
|
### `block-work-on-main`
|
|
299
299
|
|
|
300
|
-
|
|
301
|
-
**По умолчанию:**
|
|
300
|
+
**События:** PreToolUse (Bash)
|
|
301
|
+
**По умолчанию:** Отклоняет проверку (checkout) ветвей `main` или `master` напрямую.
|
|
302
302
|
|
|
303
303
|
**Параметры:**
|
|
304
304
|
|
|
305
305
|
| Параметр | Тип | По умолчанию | Описание |
|
|
306
|
-
|
|
307
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена ветвей, которые
|
|
306
|
+
|----------|-----|-------------|---------|
|
|
307
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Имена ветвей, которые нельзя проверять напрямую. |
|
|
308
308
|
|
|
309
309
|
---
|
|
310
310
|
|
|
311
311
|
### `block-force-push`
|
|
312
312
|
|
|
313
|
-
|
|
314
|
-
**По умолчанию:**
|
|
313
|
+
**События:** PreToolUse (Bash)
|
|
314
|
+
**По умолчанию:** Отклоняет `git push --force` и `git push -f`.
|
|
315
315
|
|
|
316
|
-
Нет
|
|
316
|
+
Нет специфических параметров политики. Используйте кросс-элементный [`hint`](/ru/configuration#hint-cross-cutting) для предложения альтернатив:
|
|
317
317
|
|
|
318
318
|
```json
|
|
319
319
|
{
|
|
320
320
|
"policyParams": {
|
|
321
321
|
"block-force-push": {
|
|
322
|
-
"hint": "Создайте новую ветвь из текущего HEAD (например, `git checkout -b <new-branch>`) и
|
|
322
|
+
"hint": "Создайте новую ветвь из вашего текущего HEAD (например, `git checkout -b <new-branch>`) и пушьте её вместо этого."
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
}
|
|
@@ -329,7 +329,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
329
329
|
|
|
330
330
|
### `warn-git-amend`
|
|
331
331
|
|
|
332
|
-
|
|
332
|
+
**События:** PreToolUse (Bash)
|
|
333
333
|
**По умолчанию:** Инструктирует Claude действовать осторожно при запуске `git commit --amend`. Не блокирует команду.
|
|
334
334
|
|
|
335
335
|
Нет параметров.
|
|
@@ -338,7 +338,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
338
338
|
|
|
339
339
|
### `warn-git-stash-drop`
|
|
340
340
|
|
|
341
|
-
|
|
341
|
+
**События:** PreToolUse (Bash)
|
|
342
342
|
**По умолчанию:** Инструктирует Claude подтвердить перед запуском `git stash drop`. Не блокирует команду.
|
|
343
343
|
|
|
344
344
|
Нет параметров.
|
|
@@ -347,8 +347,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
347
347
|
|
|
348
348
|
### `warn-all-files-staged`
|
|
349
349
|
|
|
350
|
-
|
|
351
|
-
**По умолчанию:** Инструктирует Claude
|
|
350
|
+
**События:** PreToolUse (Bash)
|
|
351
|
+
**По умолчанию:** Инструктирует Claude просмотреть то, что он ставит на сцену, при запуске `git add -A` или `git add .`. Не блокирует команду.
|
|
352
352
|
|
|
353
353
|
Нет параметров.
|
|
354
354
|
|
|
@@ -356,12 +356,12 @@ failproofai поставляется с 30 встроенными политик
|
|
|
356
356
|
|
|
357
357
|
## База данных
|
|
358
358
|
|
|
359
|
-
|
|
359
|
+
Перехватите деструктивные SQL-операции перед их выполнением на вашей базе данных.
|
|
360
360
|
|
|
361
361
|
### `warn-destructive-sql`
|
|
362
362
|
|
|
363
|
-
|
|
364
|
-
**По умолчанию:** Инструктирует Claude подтвердить перед запуском SQL, содержащего `DROP TABLE`, `DROP DATABASE` или `DELETE` без `WHERE
|
|
363
|
+
**События:** PreToolUse (Bash)
|
|
364
|
+
**По умолчанию:** Инструктирует Claude подтвердить перед запуском SQL, содержащего `DROP TABLE`, `DROP DATABASE` или `DELETE` без предложения `WHERE`.
|
|
365
365
|
|
|
366
366
|
Нет параметров.
|
|
367
367
|
|
|
@@ -369,8 +369,8 @@ failproofai поставляется с 30 встроенными политик
|
|
|
369
369
|
|
|
370
370
|
### `warn-schema-alteration`
|
|
371
371
|
|
|
372
|
-
|
|
373
|
-
**По умолчанию:** Инструктирует Claude подтвердить перед запуском `ALTER TABLE
|
|
372
|
+
**События:** PreToolUse (Bash)
|
|
373
|
+
**По умолчанию:** Инструктирует Claude подтвердить перед запуском операторов `ALTER TABLE`.
|
|
374
374
|
|
|
375
375
|
Нет параметров.
|
|
376
376
|
|
|
@@ -378,18 +378,18 @@ failproofai поставляется с 30 встроенными политик
|
|
|
378
378
|
|
|
379
379
|
## Предупреждения
|
|
380
380
|
|
|
381
|
-
|
|
381
|
+
Дайте агентам дополнительный контекст перед потенциально рискованными, но неразрушительными операциями.
|
|
382
382
|
|
|
383
383
|
### `warn-large-file-write`
|
|
384
384
|
|
|
385
|
-
|
|
386
|
-
**По умолчанию:** Инструктирует Claude подтвердить перед записью файлов
|
|
385
|
+
**События:** PreToolUse (Write)
|
|
386
|
+
**По умолчанию:** Инструктирует Claude подтвердить перед записью файлов размером более 1024 КБ.
|
|
387
387
|
|
|
388
388
|
**Параметры:**
|
|
389
389
|
|
|
390
390
|
| Параметр | Тип | По умолчанию | Описание |
|
|
391
|
-
|
|
392
|
-
| `thresholdKb` | `number` | `1024` | Порог размера файла в килобайтах, выше которого
|
|
391
|
+
|----------|-----|-------------|---------|
|
|
392
|
+
| `thresholdKb` | `number` | `1024` | Порог размера файла в килобайтах, выше которого выводится предупреждение. |
|
|
393
393
|
|
|
394
394
|
**Пример:**
|
|
395
395
|
|
|
@@ -404,14 +404,14 @@ failproofai поставляется с 30 встроенными политик
|
|
|
404
404
|
```
|
|
405
405
|
|
|
406
406
|
<Note>
|
|
407
|
-
Обработчик
|
|
407
|
+
Обработчик хука обеспечивает ограничение stdin в 1 МБ на полезные нагрузки. Для тестирования этой политики с малым содержимым установите `thresholdKb` на значение значительно ниже 1024.
|
|
408
408
|
</Note>
|
|
409
409
|
|
|
410
410
|
---
|
|
411
411
|
|
|
412
412
|
### `warn-package-publish`
|
|
413
413
|
|
|
414
|
-
|
|
414
|
+
**События:** PreToolUse (Bash)
|
|
415
415
|
**По умолчанию:** Инструктирует Claude подтвердить перед запуском `npm publish`.
|
|
416
416
|
|
|
417
417
|
Нет параметров.
|
|
@@ -420,7 +420,7 @@ failproofai поставляется с 30 встроенными политик
|
|
|
420
420
|
|
|
421
421
|
### `warn-background-process`
|
|
422
422
|
|
|
423
|
-
|
|
423
|
+
**События:** PreToolUse (Bash)
|
|
424
424
|
**По умолчанию:** Инструктирует Claude быть осторожным при запуске фоновых процессов через `nohup`, `&`, `disown` или `screen`.
|
|
425
425
|
|
|
426
426
|
Нет параметров.
|
|
@@ -429,36 +429,36 @@ failproofai поставляется с 30 встроенными политик
|
|
|
429
429
|
|
|
430
430
|
### `warn-global-package-install`
|
|
431
431
|
|
|
432
|
-
|
|
432
|
+
**События:** PreToolUse (Bash)
|
|
433
433
|
**По умолчанию:** Инструктирует Claude подтвердить перед запуском `npm install -g`, `yarn global add` или `pip install` без виртуального окружения.
|
|
434
434
|
|
|
435
435
|
Нет параметров.
|
|
436
436
|
|
|
437
437
|
---
|
|
438
438
|
|
|
439
|
-
## Поведение
|
|
439
|
+
## Поведение ИИ
|
|
440
440
|
|
|
441
441
|
Обнаружьте, когда агенты застревают или ведут себя неожиданно.
|
|
442
442
|
|
|
443
443
|
### `warn-repeated-tool-calls`
|
|
444
444
|
|
|
445
|
-
|
|
446
|
-
**По умолчанию:** Инструктирует Claude пересмотреть, когда один и тот же инструмент вызывается 3
|
|
445
|
+
**События:** PreToolUse (все инструменты)
|
|
446
|
+
**По умолчанию:** Инструктирует Claude пересмотреть, когда один и тот же инструмент вызывается 3 и более раз с идентичными параметрами — распространённый признак того, что агент застрял в цикле.
|
|
447
447
|
|
|
448
448
|
Нет параметров.
|
|
449
449
|
|
|
450
450
|
---
|
|
451
451
|
|
|
452
|
-
## Рабочий
|
|
452
|
+
## Рабочий процесс
|
|
453
453
|
|
|
454
|
-
|
|
454
|
+
Обеспечьте дисциплинированный рабочий процесс конца сеанса. Эти политики срабатывают на событии **Stop** и запрещают Claude останавливаться до выполнения каждого условия. Они следуют естественной цепочке зависимостей: commit → push → PR → CI. Если политика запрещает, более поздние политики в цепочке пропускаются (deny прерывает поток).
|
|
455
455
|
|
|
456
|
-
Все политики рабочего
|
|
456
|
+
Все политики рабочего процесса **fail-open**: если требуемый инструмент недоступен (например, `gh` не установлен, нет git remote), политика разрешает с информационным сообщением, объясняющим, почему проверка была пропущена.
|
|
457
457
|
|
|
458
458
|
### `require-commit-before-stop`
|
|
459
459
|
|
|
460
|
-
|
|
461
|
-
**По умолчанию:**
|
|
460
|
+
**События:** Stop
|
|
461
|
+
**По умолчанию:** Отклоняет остановку, когда есть незафиксированные изменения (изменённые, подготовленные или неотслеживаемые файлы). Возвращает информационное сообщение, когда рабочий каталог чист.
|
|
462
462
|
|
|
463
463
|
Нет параметров.
|
|
464
464
|
|
|
@@ -466,14 +466,14 @@ failproofai поставляется с 30 встроенными политик
|
|
|
466
466
|
|
|
467
467
|
### `require-push-before-stop`
|
|
468
468
|
|
|
469
|
-
|
|
470
|
-
**По умолчанию:**
|
|
469
|
+
**События:** Stop
|
|
470
|
+
**По умолчанию:** Отклоняет остановку, когда есть неотправленные коммиты или когда текущая ветвь не имеет ветви отслеживания remote. Предлагает `git push -u` для создания ветви отслеживания при необходимости. Fail open, если remote не настроен.
|
|
471
471
|
|
|
472
472
|
**Параметры:**
|
|
473
473
|
|
|
474
474
|
| Параметр | Тип | По умолчанию | Описание |
|
|
475
|
-
|
|
476
|
-
| `remote` | `string` | `"origin"` | Имя
|
|
475
|
+
|----------|-----|-------------|---------|
|
|
476
|
+
| `remote` | `string` | `"origin"` | Имя remote для пуша. |
|
|
477
477
|
|
|
478
478
|
**Пример:**
|
|
479
479
|
|
|
@@ -491,64 +491,39 @@ failproofai поставляется с 30 встроенными политик
|
|
|
491
491
|
|
|
492
492
|
### `require-pr-before-stop`
|
|
493
493
|
|
|
494
|
-
|
|
495
|
-
**По умолчанию:**
|
|
494
|
+
**События:** Stop
|
|
495
|
+
**По умолчанию:** Отклоняет остановку, когда pull request не существует для текущей ветви, или когда существующий PR закрыт/объединён. Инструктирует Claude создать PR с помощью `gh pr create`.
|
|
496
496
|
|
|
497
497
|
Нет параметров.
|
|
498
498
|
|
|
499
499
|
<Note>
|
|
500
|
-
Эта политика требует
|
|
501
|
-
Запустите `gh auth login` с
|
|
500
|
+
Эта политика требует установки и аутентификации [GitHub CLI](https://cli.github.com/) (`gh`).
|
|
501
|
+
Запустите `gh auth login` с личным токеном доступа, имеющим область `repo` для чтения доступа к
|
|
502
|
+
pull request. Если `gh` не установлен или не аутентифицирован, политика fail open и сообщает причину Claude.
|
|
502
503
|
</Note>
|
|
503
504
|
|
|
504
505
|
---
|
|
505
506
|
|
|
506
507
|
### `require-ci-green-before-stop`
|
|
507
508
|
|
|
508
|
-
|
|
509
|
-
**По умолчанию:**
|
|
509
|
+
**События:** Stop
|
|
510
|
+
**По умолчанию:** Отклоняет остановку, когда CI проверки не пройдены или ещё выполняются на текущей ветви. Проверяет как запуски рабочих процессов GitHub Actions, так и сторонние bot проверки (например, CodeRabbit, SonarCloud, Codecov). Рассматривает выводы `skipped` как успех. Возвращает информационное сообщение, когда все проверки пройдены.
|
|
510
511
|
|
|
511
512
|
Нет параметров.
|
|
512
513
|
|
|
513
514
|
<Note>
|
|
514
|
-
Эта политика требует
|
|
515
|
-
Запустите `gh auth login` с
|
|
515
|
+
Эта политика требует установки и аутентификации [GitHub CLI](https://cli.github.com/) (`gh`).
|
|
516
|
+
Запустите `gh auth login` с личным токеном доступа, имеющим область `repo` для чтения доступа к
|
|
517
|
+
запускам рабочих процессов Actions и API проверок. Если `gh` не установлен или не аутентифицирован, политика fail open и сообщает причину Claude.
|
|
516
518
|
</Note>
|
|
517
519
|
|
|
518
520
|
---
|
|
519
521
|
|
|
520
|
-
## Бета-политики
|
|
521
|
-
|
|
522
|
-
Некоторые политики помечены `beta` и не устанавливаются по умолчанию. Бета-политики могут иметь шероховатости или генерировать ложные срабатывания. Они переходят в стабильное состояние в будущих релизах.
|
|
523
|
-
|
|
524
|
-
**Текущие бета-политики:**
|
|
525
|
-
|
|
526
|
-
- `require-commit-before-stop` — закоммитьте все изменения перед остановкой
|
|
527
|
-
- `require-push-before-stop` — push'ьте все коммиты на удалённый репозиторий
|
|
528
|
-
- `require-pr-before-stop` — убедитесь, что PR существует для ветви
|
|
529
|
-
- `require-ci-green-before-stop` — все CI проверки должны пройти
|
|
530
|
-
|
|
531
|
-
Вместе они усиливают рабочий поток **commit → push → PR → CI**.
|
|
532
|
-
|
|
533
|
-
Для установки всех бета-политик:
|
|
534
|
-
|
|
535
|
-
```bash
|
|
536
|
-
failproofai policies --install --beta
|
|
537
|
-
```
|
|
538
|
-
|
|
539
|
-
Или установите конкретные политики рабочего потока:
|
|
540
|
-
|
|
541
|
-
```bash
|
|
542
|
-
failproofai policies --install require-commit-before-stop require-push-before-stop require-pr-before-stop require-ci-green-before-stop
|
|
543
|
-
```
|
|
544
|
-
|
|
545
|
-
Запустите `failproofai policies` для просмотра того, какие политики имеют флаг beta.
|
|
546
|
-
|
|
547
522
|
---
|
|
548
523
|
|
|
549
524
|
## Отключение отдельных политик
|
|
550
525
|
|
|
551
|
-
Удалите конкретную политику из `enabledPolicies` в вашей конфигурации или переключите её в
|
|
526
|
+
Удалите конкретную политику из `enabledPolicies` в вашей конфигурации или переключите её в панели Policies на главной панели.
|
|
552
527
|
|
|
553
528
|
```json
|
|
554
529
|
{
|
|
@@ -559,4 +534,4 @@ failproofai policies --install require-commit-before-stop require-push-before-st
|
|
|
559
534
|
}
|
|
560
535
|
```
|
|
561
536
|
|
|
562
|
-
Политики, не
|
|
537
|
+
Политики, не указанные в `enabledPolicies`, не запускаются, даже если существуют записи `policyParams` для них.
|