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
|
@@ -14,31 +14,30 @@ Claude Code の `settings.json` から failproofai フックエントリを削
|
|
|
14
14
|
## オプション
|
|
15
15
|
|
|
16
16
|
| フラグ | 説明 |
|
|
17
|
-
|
|
17
|
+
|------|-------------|
|
|
18
18
|
| `--scope user` | グローバル設定から削除(デフォルト) |
|
|
19
19
|
| `--scope project` | プロジェクト設定から削除 |
|
|
20
20
|
| `--scope local` | ローカル設定から削除 |
|
|
21
21
|
| `--scope all` | すべてのスコープから一括削除 |
|
|
22
|
-
| `--custom` / `-c` | 設定から `customPoliciesPath`
|
|
23
|
-
| `--beta` | ベータポリシーのみ設定から削除 |
|
|
22
|
+
| `--custom` / `-c` | 設定から `customPoliciesPath` をクリアする |
|
|
24
23
|
|
|
25
24
|
## 動作
|
|
26
25
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
26
|
+
- **ポリシー名を指定しない場合** — 設定ファイルからすべての failproofai フックエントリを削除します
|
|
27
|
+
- **特定の名前を指定した場合** — 対象のポリシーを無効化しますが、フックのインストール状態は維持されます
|
|
29
28
|
|
|
30
29
|
## 使用例
|
|
31
30
|
|
|
32
31
|
```bash
|
|
33
|
-
#
|
|
32
|
+
# グローバルからすべてのフックを削除する
|
|
34
33
|
failproofai policies --uninstall
|
|
35
34
|
|
|
36
|
-
#
|
|
35
|
+
# 特定のポリシーを無効化する(フックはインストールしたまま)
|
|
37
36
|
failproofai policies --uninstall block-sudo
|
|
38
37
|
|
|
39
|
-
#
|
|
38
|
+
# すべてのスコープからフックを削除する
|
|
40
39
|
failproofai policies --uninstall --scope all
|
|
41
40
|
|
|
42
|
-
#
|
|
41
|
+
# カスタムポリシーのパスをクリアする
|
|
43
42
|
failproofai policies --uninstall --custom
|
|
44
43
|
```
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description: "일반적인 에이전트 실패
|
|
2
|
+
title: 내장 정책
|
|
3
|
+
description: "일반적인 에이전트 실패 유형을 감지하는 30개의 내장 정책 전체 목록"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
failproofai는 일반적인 에이전트 실패
|
|
7
|
+
failproofai는 일반적인 에이전트 실패 유형을 감지하는 30개의 내장 정책을 제공합니다. 각 정책은 특정 훅 이벤트 유형과 툴 이름에 따라 실행됩니다. 9개의 정책은 코드를 작성하지 않고도 동작을 조정할 수 있는 파라미터를 허용합니다. 4개의 워크플로우 정책은 Claude가 종료되기 전에 커밋 → 푸시 → PR → CI 파이프라인을 강제합니다.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
## 개요
|
|
12
12
|
|
|
13
|
-
정책은
|
|
13
|
+
정책은 카테고리별로 분류됩니다:
|
|
14
14
|
|
|
15
|
-
| 카테고리 | 정책 | 훅
|
|
15
|
+
| 카테고리 | 정책 | 훅 유형 |
|
|
16
16
|
|----------|----------|-----------|
|
|
17
17
|
| [위험한 명령어](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
18
|
| [시크릿 (새니타이저)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
@@ -21,37 +21,37 @@ 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
|
| [데이터베이스](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
|
|
23
23
|
| [경고](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
|
|
24
|
-
| [워크플로우
|
|
24
|
+
| [워크플로우](#workflow) | 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-`** —
|
|
26
|
+
- **`block-`** — 에이전트 진행을 차단합니다.
|
|
27
|
+
- **`warn-`** — 에이전트가 스스로 수정할 수 있도록 추가 컨텍스트를 제공합니다.
|
|
28
|
+
- **`sanitize-`** — 에이전트에게 전달되기 전에 툴 출력에서 민감한 데이터를 제거합니다.
|
|
29
29
|
- **`require-`** — 조건이 충족될 때까지 Stop 이벤트를 차단합니다.
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
33
|
<Tip>
|
|
34
|
-
모든 정책은 `policyParams`에서 선택적 `hint` 필드를 지원합니다. hint는 Claude가 보는 deny 또는 instruct 메시지에 추가되어, 정책 코드를 수정하지 않고도 실행 가능한 안내를 제공합니다.
|
|
34
|
+
모든 정책은 `policyParams`에서 선택적 `hint` 필드를 지원합니다. hint는 Claude가 보는 deny 또는 instruct 메시지에 추가되어, 정책 코드를 수정하지 않고도 실행 가능한 안내를 제공합니다. 내장, 커스텀, 컨벤션 정책 모두에서 동작합니다. 자세한 내용은 [구성 → hint](/ko/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
45
|
**이벤트:** PreToolUse (Bash)
|
|
46
|
-
**기본 동작:** `sudo`
|
|
46
|
+
**기본 동작:** `sudo` 키워드가 포함된 모든 명령어를 차단합니다.
|
|
47
47
|
|
|
48
|
-
`sudo` 키워드가 포함된 호출을 차단합니다.
|
|
48
|
+
`sudo` 키워드가 포함된 호출을 차단합니다. 패턴 매칭은 원시 문자열이 아닌 파싱된 명령어 토큰을 기준으로 수행되어, 셸 연산자 인젝션을 통한 우회를 방지합니다.
|
|
49
49
|
|
|
50
50
|
**파라미터:**
|
|
51
51
|
|
|
52
52
|
| 파라미터 | 타입 | 기본값 | 설명 |
|
|
53
53
|
|-------|------|---------|-------------|
|
|
54
|
-
| `allowPatterns` | `string[]` | `[]` |
|
|
54
|
+
| `allowPatterns` | `string[]` | `[]` | 허용되는 정확한 명령어 프리픽스. 각 항목은 파싱된 argv 토큰과 대조하여 매칭됩니다. |
|
|
55
55
|
|
|
56
56
|
**예시:**
|
|
57
57
|
|
|
@@ -65,10 +65,10 @@ 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
|
+
패턴은 원시 명령어 문자열이 아닌 파싱된 토큰과 대조하여 매칭됩니다. 이를 통해 셸 연산자 추가를 통한 우회를 방지합니다 (예: `sudo systemctl status x; rm -rf /`는 `sudo systemctl status *`와 매칭되지 않습니다).
|
|
72
72
|
</Note>
|
|
73
73
|
|
|
74
74
|
---
|
|
@@ -76,13 +76,13 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
76
76
|
### `block-rm-rf`
|
|
77
77
|
|
|
78
78
|
**이벤트:** PreToolUse (Bash)
|
|
79
|
-
**기본 동작:** `rm -rf`, `rm -fr` 및 유사한 재귀 삭제
|
|
79
|
+
**기본 동작:** `rm -rf`, `rm -fr` 및 유사한 재귀 삭제 형태를 차단합니다.
|
|
80
80
|
|
|
81
81
|
**파라미터:**
|
|
82
82
|
|
|
83
83
|
| 파라미터 | 타입 | 기본값 | 설명 |
|
|
84
84
|
|-------|------|---------|-------------|
|
|
85
|
-
| `allowPaths` | `string[]` | `[]` | 재귀 삭제가
|
|
85
|
+
| `allowPaths` | `string[]` | `[]` | 재귀 삭제가 허용되는 경로 (예: `/tmp`). |
|
|
86
86
|
|
|
87
87
|
**예시:**
|
|
88
88
|
|
|
@@ -101,7 +101,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
101
101
|
### `block-curl-pipe-sh`
|
|
102
102
|
|
|
103
103
|
**이벤트:** PreToolUse (Bash)
|
|
104
|
-
**기본 동작:** `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` 및 유사한 패턴을
|
|
104
|
+
**기본 동작:** `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` 및 유사한 패턴을 차단합니다.
|
|
105
105
|
|
|
106
106
|
파라미터 없음.
|
|
107
107
|
|
|
@@ -110,20 +110,20 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
110
110
|
### `block-failproofai-commands`
|
|
111
111
|
|
|
112
112
|
**이벤트:** PreToolUse (Bash)
|
|
113
|
-
**기본 동작:** failproofai 자체를 제거하거나
|
|
113
|
+
**기본 동작:** failproofai 자체를 제거하거나 비활성화하려는 명령어를 차단합니다 (예: `npm uninstall failproofai`, `failproofai policies --uninstall`).
|
|
114
114
|
|
|
115
115
|
파라미터 없음.
|
|
116
116
|
|
|
117
117
|
---
|
|
118
118
|
|
|
119
|
-
## 시크릿 (새니타이저)
|
|
119
|
+
## 시크릿 (새니타이저)
|
|
120
120
|
|
|
121
|
-
에이전트가 자격 증명을 컨텍스트나 출력에
|
|
121
|
+
에이전트가 자격 증명을 컨텍스트나 출력에 노출시키는 것을 방지합니다. 새니타이저 정책은 **PostToolUse** 이벤트에서 실행됩니다. Claude가 Bash 명령어를 실행하거나, 파일을 읽거나, 어떤 툴을 호출할 때, 이 정책들은 출력이 Claude에게 반환되기 전에 검사합니다. 시크릿 패턴이 감지되면, 정책은 출력이 다시 전달되는 것을 막는 deny 결정을 반환합니다.
|
|
122
122
|
|
|
123
123
|
### `sanitize-jwt`
|
|
124
124
|
|
|
125
|
-
**이벤트:** PostToolUse (모든
|
|
126
|
-
**기본 동작:** JWT 토큰(`.`으로 구분된 세 개의 base64url 세그먼트)을
|
|
125
|
+
**이벤트:** PostToolUse (모든 툴)
|
|
126
|
+
**기본 동작:** JWT 토큰 (`.`으로 구분된 세 개의 base64url 세그먼트)을 마스킹합니다.
|
|
127
127
|
|
|
128
128
|
파라미터 없음.
|
|
129
129
|
|
|
@@ -131,8 +131,8 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
131
131
|
|
|
132
132
|
### `sanitize-api-keys`
|
|
133
133
|
|
|
134
|
-
**이벤트:** PostToolUse (모든
|
|
135
|
-
**기본 동작:** 일반적인 API 키 형식을
|
|
134
|
+
**이벤트:** PostToolUse (모든 툴)
|
|
135
|
+
**기본 동작:** 일반적인 API 키 형식을 마스킹합니다: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PAT (`ghp_`), AWS 액세스 키 (`AKIA`), Stripe 키 (`sk_live_`, `sk_test_`), Google API 키 (`AIza`).
|
|
136
136
|
|
|
137
137
|
**파라미터:**
|
|
138
138
|
|
|
@@ -159,8 +159,8 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
159
159
|
|
|
160
160
|
### `sanitize-connection-strings`
|
|
161
161
|
|
|
162
|
-
**이벤트:** PostToolUse (모든
|
|
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
|
-
**이벤트:** PostToolUse (모든
|
|
172
|
-
**기본 동작:** PEM 블록(`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----` 등)을
|
|
171
|
+
**이벤트:** PostToolUse (모든 툴)
|
|
172
|
+
**기본 동작:** PEM 블록(`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----` 등)을 마스킹합니다.
|
|
173
173
|
|
|
174
174
|
파라미터 없음.
|
|
175
175
|
|
|
@@ -177,21 +177,21 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
177
177
|
|
|
178
178
|
### `sanitize-bearer-tokens`
|
|
179
179
|
|
|
180
|
-
**이벤트:** PostToolUse (모든
|
|
181
|
-
**기본 동작:** 토큰이 20자 이상인 `Authorization: Bearer <token>` 헤더를
|
|
180
|
+
**이벤트:** PostToolUse (모든 툴)
|
|
181
|
+
**기본 동작:** 토큰이 20자 이상인 `Authorization: Bearer <token>` 헤더를 마스킹합니다.
|
|
182
182
|
|
|
183
183
|
파라미터 없음.
|
|
184
184
|
|
|
185
185
|
---
|
|
186
186
|
|
|
187
|
-
## 환경
|
|
187
|
+
## 환경
|
|
188
188
|
|
|
189
|
-
에이전트가 민감한 환경
|
|
189
|
+
에이전트가 민감한 환경 구성을 읽거나 노출시키는 것을 보호합니다.
|
|
190
190
|
|
|
191
191
|
### `block-env-files`
|
|
192
192
|
|
|
193
193
|
**이벤트:** PreToolUse (Bash, Read)
|
|
194
|
-
**기본 동작:** `cat .env`, 파일
|
|
194
|
+
**기본 동작:** `cat .env`, `.env`를 파일 경로로 사용하는 `Read` 툴 호출 등을 통한 `.env` 파일 읽기를 차단합니다.
|
|
195
195
|
|
|
196
196
|
`.envrc`나 다른 환경 관련 파일은 차단하지 않으며, 정확히 `.env`라는 이름의 파일만 차단합니다.
|
|
197
197
|
|
|
@@ -202,26 +202,26 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
202
202
|
### `protect-env-vars`
|
|
203
203
|
|
|
204
204
|
**이벤트:** PreToolUse (Bash)
|
|
205
|
-
**기본 동작:** 환경 변수를 출력하는
|
|
205
|
+
**기본 동작:** 환경 변수를 출력하는 명령어를 차단합니다: `printenv`, `env`, `echo $VAR`.
|
|
206
206
|
|
|
207
207
|
파라미터 없음.
|
|
208
208
|
|
|
209
209
|
---
|
|
210
210
|
|
|
211
|
-
## 파일 접근
|
|
211
|
+
## 파일 접근
|
|
212
212
|
|
|
213
|
-
에이전트가 프로젝트 경계 내에서만 작업하고 민감한 파일에 접근하지 못하도록
|
|
213
|
+
에이전트가 프로젝트 경계 내에서만 작업하고 민감한 파일에 접근하지 못하도록 합니다.
|
|
214
214
|
|
|
215
215
|
### `block-read-outside-cwd`
|
|
216
216
|
|
|
217
217
|
**이벤트:** PreToolUse (Read, Bash)
|
|
218
|
-
**기본 동작:** 현재 작업
|
|
218
|
+
**기본 동작:** 현재 작업 디렉토리(프로젝트 루트) 외부의 파일 읽기를 차단합니다.
|
|
219
219
|
|
|
220
220
|
**파라미터:**
|
|
221
221
|
|
|
222
222
|
| 파라미터 | 타입 | 기본값 | 설명 |
|
|
223
223
|
|-------|------|---------|-------------|
|
|
224
|
-
| `allowPaths` | `string[]` | `[]` | cwd 외부에 있더라도 허용되는 절대 경로
|
|
224
|
+
| `allowPaths` | `string[]` | `[]` | cwd 외부에 있더라도 허용되는 절대 경로 프리픽스. |
|
|
225
225
|
|
|
226
226
|
**예시:**
|
|
227
227
|
|
|
@@ -240,13 +240,13 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
240
240
|
### `block-secrets-write`
|
|
241
241
|
|
|
242
242
|
**이벤트:** PreToolUse (Write, Edit)
|
|
243
|
-
**기본 동작:** 개인 키 및 인증서에 일반적으로 사용되는 파일에 대한 쓰기를
|
|
243
|
+
**기본 동작:** 개인 키 및 인증서에 일반적으로 사용되는 파일에 대한 쓰기를 차단합니다: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
|
|
244
244
|
|
|
245
245
|
**파라미터:**
|
|
246
246
|
|
|
247
247
|
| 파라미터 | 타입 | 기본값 | 설명 |
|
|
248
248
|
|-------|------|---------|-------------|
|
|
249
|
-
| `additionalPatterns` | `string[]` | `[]` | 차단할 추가 파일명 패턴(
|
|
249
|
+
| `additionalPatterns` | `string[]` | `[]` | 차단할 추가 파일명 패턴 (글로브 스타일). |
|
|
250
250
|
|
|
251
251
|
**예시:**
|
|
252
252
|
|
|
@@ -262,14 +262,14 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
262
262
|
|
|
263
263
|
---
|
|
264
264
|
|
|
265
|
-
## Git
|
|
265
|
+
## Git
|
|
266
266
|
|
|
267
|
-
|
|
267
|
+
실수로 인한 푸시, 강제 푸시, 되돌리기 어려운 브랜치 실수를 방지합니다.
|
|
268
268
|
|
|
269
269
|
### `block-push-master`
|
|
270
270
|
|
|
271
271
|
**이벤트:** PreToolUse (Bash)
|
|
272
|
-
**기본 동작:** `git push origin main
|
|
272
|
+
**기본 동작:** `git push origin main`과 `git push origin master`를 차단합니다.
|
|
273
273
|
|
|
274
274
|
**파라미터:**
|
|
275
275
|
|
|
@@ -290,7 +290,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
290
290
|
```
|
|
291
291
|
|
|
292
292
|
<Tip>
|
|
293
|
-
모든
|
|
293
|
+
`enabledPolicies`에서 정책을 제거하지 않고 모든 브랜치로의 푸시를 허용하려면 (사실상 정책 비활성화), `protectedBranches: []`로 설정하세요.
|
|
294
294
|
</Tip>
|
|
295
295
|
|
|
296
296
|
---
|
|
@@ -298,7 +298,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
298
298
|
### `block-work-on-main`
|
|
299
299
|
|
|
300
300
|
**이벤트:** PreToolUse (Bash)
|
|
301
|
-
**기본 동작:** `main` 또는 `master` 브랜치를 직접 체크아웃하는 것을
|
|
301
|
+
**기본 동작:** `main` 또는 `master` 브랜치를 직접 체크아웃하는 것을 차단합니다.
|
|
302
302
|
|
|
303
303
|
**파라미터:**
|
|
304
304
|
|
|
@@ -311,9 +311,9 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
311
311
|
### `block-force-push`
|
|
312
312
|
|
|
313
313
|
**이벤트:** PreToolUse (Bash)
|
|
314
|
-
**기본 동작:** `git push --force
|
|
314
|
+
**기본 동작:** `git push --force`와 `git push -f`를 차단합니다.
|
|
315
315
|
|
|
316
|
-
|
|
316
|
+
정책별 파라미터 없음. 크로스커팅 [`hint`](/ko/configuration#hint-cross-cutting)를 사용하여 대안을 제안할 수 있습니다:
|
|
317
317
|
|
|
318
318
|
```json
|
|
319
319
|
{
|
|
@@ -330,7 +330,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
330
330
|
### `warn-git-amend`
|
|
331
331
|
|
|
332
332
|
**이벤트:** PreToolUse (Bash)
|
|
333
|
-
**기본 동작:** `git commit --amend` 실행 시 Claude에게 신중하게 진행하도록 안내합니다.
|
|
333
|
+
**기본 동작:** `git commit --amend` 실행 시 Claude에게 신중하게 진행하도록 안내합니다. 명령어 자체를 차단하지는 않습니다.
|
|
334
334
|
|
|
335
335
|
파라미터 없음.
|
|
336
336
|
|
|
@@ -339,7 +339,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
339
339
|
### `warn-git-stash-drop`
|
|
340
340
|
|
|
341
341
|
**이벤트:** PreToolUse (Bash)
|
|
342
|
-
**기본 동작:** `git stash drop` 실행
|
|
342
|
+
**기본 동작:** `git stash drop` 실행 전에 Claude에게 확인하도록 안내합니다. 명령어 자체를 차단하지는 않습니다.
|
|
343
343
|
|
|
344
344
|
파라미터 없음.
|
|
345
345
|
|
|
@@ -348,20 +348,20 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
348
348
|
### `warn-all-files-staged`
|
|
349
349
|
|
|
350
350
|
**이벤트:** PreToolUse (Bash)
|
|
351
|
-
**기본 동작:** `git add -A` 또는 `git add .` 실행 시 Claude에게 스테이징할 내용을 검토하도록 안내합니다.
|
|
351
|
+
**기본 동작:** `git add -A` 또는 `git add .` 실행 시 Claude에게 스테이징할 내용을 검토하도록 안내합니다. 명령어 자체를 차단하지는 않습니다.
|
|
352
352
|
|
|
353
353
|
파라미터 없음.
|
|
354
354
|
|
|
355
355
|
---
|
|
356
356
|
|
|
357
|
-
## 데이터베이스
|
|
357
|
+
## 데이터베이스
|
|
358
358
|
|
|
359
|
-
데이터베이스에
|
|
359
|
+
데이터베이스에 실행되기 전에 파괴적인 SQL 작업을 감지합니다.
|
|
360
360
|
|
|
361
361
|
### `warn-destructive-sql`
|
|
362
362
|
|
|
363
363
|
**이벤트:** PreToolUse (Bash)
|
|
364
|
-
**기본 동작:** `DROP TABLE`, `DROP DATABASE`, 또는 `WHERE`
|
|
364
|
+
**기본 동작:** `DROP TABLE`, `DROP DATABASE`, 또는 `WHERE` 절 없는 `DELETE`가 포함된 SQL 실행 전에 Claude에게 확인하도록 안내합니다.
|
|
365
365
|
|
|
366
366
|
파라미터 없음.
|
|
367
367
|
|
|
@@ -370,26 +370,26 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
370
370
|
### `warn-schema-alteration`
|
|
371
371
|
|
|
372
372
|
**이벤트:** PreToolUse (Bash)
|
|
373
|
-
**기본 동작:** `ALTER TABLE`
|
|
373
|
+
**기본 동작:** `ALTER TABLE` 구문 실행 전에 Claude에게 확인하도록 안내합니다.
|
|
374
374
|
|
|
375
375
|
파라미터 없음.
|
|
376
376
|
|
|
377
377
|
---
|
|
378
378
|
|
|
379
|
-
## 경고
|
|
379
|
+
## 경고
|
|
380
380
|
|
|
381
|
-
|
|
381
|
+
파괴적이지는 않지만 잠재적으로 위험한 작업 전에 에이전트에게 추가 컨텍스트를 제공합니다.
|
|
382
382
|
|
|
383
383
|
### `warn-large-file-write`
|
|
384
384
|
|
|
385
385
|
**이벤트:** PreToolUse (Write)
|
|
386
|
-
**기본 동작:** 1024 KB보다 큰 파일을 쓰기
|
|
386
|
+
**기본 동작:** 1024 KB보다 큰 파일을 쓰기 전에 Claude에게 확인하도록 안내합니다.
|
|
387
387
|
|
|
388
388
|
**파라미터:**
|
|
389
389
|
|
|
390
390
|
| 파라미터 | 타입 | 기본값 | 설명 |
|
|
391
391
|
|-------|------|---------|-------------|
|
|
392
|
-
| `thresholdKb` | `number` | `1024` | 경고가 발생하는 파일 크기 임계값(킬로바이트
|
|
392
|
+
| `thresholdKb` | `number` | `1024` | 경고가 발생하는 파일 크기 임계값 (킬로바이트). |
|
|
393
393
|
|
|
394
394
|
**예시:**
|
|
395
395
|
|
|
@@ -404,7 +404,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
404
404
|
```
|
|
405
405
|
|
|
406
406
|
<Note>
|
|
407
|
-
훅 핸들러는 페이로드에 대해 1 MB stdin 제한을 적용합니다. 소용량 콘텐츠로 이 정책을 테스트하려면 `thresholdKb`를 1024보다 훨씬
|
|
407
|
+
훅 핸들러는 페이로드에 대해 1 MB stdin 제한을 적용합니다. 소용량 콘텐츠로 이 정책을 테스트하려면 `thresholdKb`를 1024보다 훨씬 낮은 값으로 설정하세요.
|
|
408
408
|
</Note>
|
|
409
409
|
|
|
410
410
|
---
|
|
@@ -412,7 +412,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
412
412
|
### `warn-package-publish`
|
|
413
413
|
|
|
414
414
|
**이벤트:** PreToolUse (Bash)
|
|
415
|
-
**기본 동작:** `npm publish` 실행
|
|
415
|
+
**기본 동작:** `npm publish` 실행 전에 Claude에게 확인하도록 안내합니다.
|
|
416
416
|
|
|
417
417
|
파라미터 없음.
|
|
418
418
|
|
|
@@ -421,7 +421,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
421
421
|
### `warn-background-process`
|
|
422
422
|
|
|
423
423
|
**이벤트:** PreToolUse (Bash)
|
|
424
|
-
**기본 동작:** `nohup`, `&`, `disown`, `screen`을 통해 백그라운드 프로세스를 시작할 때 Claude에게 주의하도록 안내합니다.
|
|
424
|
+
**기본 동작:** `nohup`, `&`, `disown`, 또는 `screen`을 통해 백그라운드 프로세스를 시작할 때 Claude에게 주의하도록 안내합니다.
|
|
425
425
|
|
|
426
426
|
파라미터 없음.
|
|
427
427
|
|
|
@@ -430,35 +430,35 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
430
430
|
### `warn-global-package-install`
|
|
431
431
|
|
|
432
432
|
**이벤트:** PreToolUse (Bash)
|
|
433
|
-
**기본 동작:** `npm install -g`, `yarn global add`, 또는 가상 환경 없이 `pip install` 실행
|
|
433
|
+
**기본 동작:** `npm install -g`, `yarn global add`, 또는 가상 환경 없이 `pip install` 실행 전에 Claude에게 확인하도록 안내합니다.
|
|
434
434
|
|
|
435
435
|
파라미터 없음.
|
|
436
436
|
|
|
437
437
|
---
|
|
438
438
|
|
|
439
|
-
## AI 동작
|
|
439
|
+
## AI 동작
|
|
440
440
|
|
|
441
|
-
에이전트가
|
|
441
|
+
에이전트가 멈추거나 예기치 않게 동작하는 경우를 감지합니다.
|
|
442
442
|
|
|
443
443
|
### `warn-repeated-tool-calls`
|
|
444
444
|
|
|
445
|
-
**이벤트:** PreToolUse (모든
|
|
446
|
-
**기본 동작:** 동일한
|
|
445
|
+
**이벤트:** PreToolUse (모든 툴)
|
|
446
|
+
**기본 동작:** 동일한 툴이 동일한 파라미터로 3회 이상 호출될 때 Claude에게 재고하도록 안내합니다 — 이는 에이전트가 루프에 빠진 일반적인 신호입니다.
|
|
447
447
|
|
|
448
448
|
파라미터 없음.
|
|
449
449
|
|
|
450
450
|
---
|
|
451
451
|
|
|
452
|
-
## 워크플로우
|
|
452
|
+
## 워크플로우
|
|
453
453
|
|
|
454
|
-
세션 종료 시
|
|
454
|
+
세션 종료 시 체계적인 워크플로우를 강제합니다. 이 정책들은 **Stop** 이벤트에서 실행되며, 각 조건이 충족될 때까지 Claude의 종료를 차단합니다. 커밋 → 푸시 → PR → CI의 자연스러운 의존성 체인을 따릅니다. 정책이 deny를 반환하면, 체인의 이후 정책은 건너뜁니다 (deny 단락 평가).
|
|
455
455
|
|
|
456
|
-
모든 워크플로우 정책은 **fail-open** 방식입니다: 필요한
|
|
456
|
+
모든 워크플로우 정책은 **fail-open** 방식입니다: 필요한 툴을 사용할 수 없는 경우 (예: `gh`가 설치되지 않음, git 원격 없음), 정책은 검사를 건너뛴 이유를 설명하는 안내 메시지와 함께 허용합니다.
|
|
457
457
|
|
|
458
458
|
### `require-commit-before-stop`
|
|
459
459
|
|
|
460
460
|
**이벤트:** Stop
|
|
461
|
-
**기본 동작:** 커밋되지 않은 변경 사항(수정됨, 스테이징됨, 추적되지
|
|
461
|
+
**기본 동작:** 커밋되지 않은 변경 사항(수정됨, 스테이징됨, 추적되지 않는 파일)이 있을 때 종료를 차단합니다. 작업 디렉토리가 깨끗할 때는 안내 메시지를 반환합니다.
|
|
462
462
|
|
|
463
463
|
파라미터 없음.
|
|
464
464
|
|
|
@@ -467,7 +467,7 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
467
467
|
### `require-push-before-stop`
|
|
468
468
|
|
|
469
469
|
**이벤트:** Stop
|
|
470
|
-
**기본 동작:** 푸시되지 않은 커밋이 있거나 현재 브랜치에 원격 추적 브랜치가 없을 때
|
|
470
|
+
**기본 동작:** 푸시되지 않은 커밋이 있거나 현재 브랜치에 원격 추적 브랜치가 없을 때 종료를 차단합니다. 필요한 경우 추적 브랜치 생성을 위해 `git push -u`를 제안합니다. 원격이 구성되지 않은 경우 fail-open 처리됩니다.
|
|
471
471
|
|
|
472
472
|
**파라미터:**
|
|
473
473
|
|
|
@@ -492,13 +492,13 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
492
492
|
### `require-pr-before-stop`
|
|
493
493
|
|
|
494
494
|
**이벤트:** Stop
|
|
495
|
-
**기본 동작:** 현재 브랜치에 대한 풀 리퀘스트가
|
|
495
|
+
**기본 동작:** 현재 브랜치에 대한 풀 리퀘스트가 없거나, 기존 PR이 닫혔거나 머지된 경우 종료를 차단합니다. `gh pr create`로 PR을 생성하도록 Claude에게 안내합니다.
|
|
496
496
|
|
|
497
497
|
파라미터 없음.
|
|
498
498
|
|
|
499
499
|
<Note>
|
|
500
500
|
이 정책은 [GitHub CLI](https://cli.github.com/) (`gh`)가 설치되고 인증되어 있어야 합니다.
|
|
501
|
-
풀 리퀘스트에 대한 읽기 접근을 위해 `repo`
|
|
501
|
+
풀 리퀘스트에 대한 읽기 접근을 위해 `repo` 스코프를 가진 개인 액세스 토큰으로 `gh auth login`을 실행하세요. `gh`가 설치되지 않거나 인증되지 않은 경우, 정책은 fail-open 처리되고 Claude에게 이유를 보고합니다.
|
|
502
502
|
</Note>
|
|
503
503
|
|
|
504
504
|
---
|
|
@@ -506,49 +506,22 @@ failproofai는 일반적인 에이전트 실패 패턴을 감지하는 30개의
|
|
|
506
506
|
### `require-ci-green-before-stop`
|
|
507
507
|
|
|
508
508
|
**이벤트:** Stop
|
|
509
|
-
**기본 동작:** 현재 브랜치에서 CI 검사가
|
|
509
|
+
**기본 동작:** 현재 브랜치에서 CI 검사가 실패 중이거나 아직 실행 중일 때 종료를 차단합니다. GitHub Actions 워크플로우 실행과 서드파티 봇 검사(예: CodeRabbit, SonarCloud, Codecov)를 모두 확인합니다. `skipped` 결론은 성공으로 처리합니다. 모든 검사가 통과하면 안내 메시지를 반환합니다.
|
|
510
510
|
|
|
511
511
|
파라미터 없음.
|
|
512
512
|
|
|
513
513
|
<Note>
|
|
514
514
|
이 정책은 [GitHub CLI](https://cli.github.com/) (`gh`)가 설치되고 인증되어 있어야 합니다.
|
|
515
|
-
Actions 워크플로우
|
|
515
|
+
Actions 워크플로우 실행 및 Checks API에 대한 읽기 접근을 위해 `repo` 스코프를 가진 개인 액세스 토큰으로 `gh auth login`을 실행하세요. `gh`가 설치되지 않거나 인증되지 않은 경우, 정책은 fail-open 처리되고 Claude에게 이유를 보고합니다.
|
|
516
516
|
</Note>
|
|
517
517
|
|
|
518
518
|
---
|
|
519
519
|
|
|
520
|
-
## 베타 정책
|
|
521
|
-
|
|
522
|
-
일부 정책은 `beta`로 표시되어 있으며 기본적으로 설치되지 않습니다. 베타 정책은 일부 미흡한 부분이 있거나 오탐이 발생할 수 있습니다. 향후 릴리스에서 안정 버전으로 승격됩니다.
|
|
523
|
-
|
|
524
|
-
**현재 베타 정책:**
|
|
525
|
-
|
|
526
|
-
- `require-commit-before-stop` — 중단 전 모든 변경 사항 커밋
|
|
527
|
-
- `require-push-before-stop` — 모든 커밋을 원격에 푸시
|
|
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`를 실행하세요.
|
|
546
|
-
|
|
547
520
|
---
|
|
548
521
|
|
|
549
522
|
## 개별 정책 비활성화
|
|
550
523
|
|
|
551
|
-
|
|
524
|
+
설정 파일의 `enabledPolicies`에서 특정 정책을 제거하거나, 대시보드의 Policies 탭에서 토글로 끄세요.
|
|
552
525
|
|
|
553
526
|
```json
|
|
554
527
|
{
|
|
@@ -559,4 +532,4 @@ failproofai policies --install require-commit-before-stop require-push-before-st
|
|
|
559
532
|
}
|
|
560
533
|
```
|
|
561
534
|
|
|
562
|
-
`enabledPolicies`에 나열되지 않은 정책은 `policyParams` 항목이
|
|
535
|
+
`enabledPolicies`에 나열되지 않은 정책은 `policyParams` 항목이 존재하더라도 실행되지 않습니다.
|
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: 정책 설치
|
|
3
|
-
description: "에이전트의 모든 도구
|
|
3
|
+
description: "에이전트의 모든 도구 호출에서 정책이 실행되도록 활성화합니다"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
```bash
|
|
7
7
|
failproofai policies --install [policy-names...] [options]
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Claude Code의 `settings.json`에 훅 항목을 작성하여 failproofai가 도구 호출을 가로챌 수 있도록 합니다.
|
|
11
11
|
|
|
12
12
|
별칭: `failproofai p -i`
|
|
13
13
|
|
|
14
14
|
## 옵션
|
|
15
15
|
|
|
16
16
|
| 플래그 | 설명 |
|
|
17
|
-
|
|
18
|
-
| `--scope user` | `~/.claude/settings.json`에 설치 (기본값 - 모든
|
|
17
|
+
|------|-------------|
|
|
18
|
+
| `--scope user` | `~/.claude/settings.json`에 설치 (기본값 - 모든 세션에 적용) |
|
|
19
19
|
| `--scope project` | 현재 디렉터리의 `.claude/settings.json`에 설치 |
|
|
20
20
|
| `--scope local` | 현재 디렉터리의 `.claude/settings.local.json`에 설치 |
|
|
21
21
|
| `--custom <path>` / `-c` | 커스텀 훅 정책이 포함된 JS 파일 경로 |
|
|
22
|
-
| `--beta` | 베타 정책 포함 |
|
|
23
22
|
|
|
24
23
|
## 동작 방식
|
|
25
24
|
|
|
26
|
-
- **정책 이름 미지정** - 정책을 선택할 수 있는
|
|
27
|
-
- **특정 이름 지정** - 해당 정책을
|
|
28
|
-
- **`all`** - 사용 가능한 모든 정책을
|
|
25
|
+
- **정책 이름 미지정** - 정책을 선택할 수 있는 대화형 프롬프트가 열립니다
|
|
26
|
+
- **특정 이름 지정** - 해당 정책을 활성화합니다 (이미 활성화된 정책에 추가됨)
|
|
27
|
+
- **`all`** - 사용 가능한 모든 정책을 활성화합니다
|
|
29
28
|
|
|
30
|
-
설치는 누적 방식으로 동작합니다. `--install`을 다시 실행하면 기존 정책을 제거하지 않고 새
|
|
29
|
+
설치는 누적 방식으로 동작합니다. `--install`을 다시 실행하면 기존 정책을 제거하지 않고 새 정책을 추가합니다.
|
|
31
30
|
|
|
32
31
|
## 예시
|
|
33
32
|
|
|
34
33
|
```bash
|
|
35
|
-
# 모든 기본
|
|
34
|
+
# 전역에 모든 기본 정책 설치 (대화형)
|
|
36
35
|
failproofai policies --install
|
|
37
36
|
|
|
38
37
|
# 현재 프로젝트에 특정 정책 설치
|
|
@@ -45,4 +44,4 @@ failproofai policies --install all
|
|
|
45
44
|
failproofai policies --install --custom ./my-policies.js
|
|
46
45
|
```
|
|
47
46
|
|
|
48
|
-
`--custom <path
|
|
47
|
+
`--custom <path>`가 제공되면 해당 파일이 즉시 유효성 검사를 거칩니다. 파일은 `customPolicies.add()`를 최소 한 번 이상 호출해야 합니다. 확인된 경로는 `customPoliciesPath`로 `policies-config.json`에 저장됩니다.
|
|
@@ -14,18 +14,17 @@ Claude Code의 `settings.json`에서 failproofai 훅 항목을 제거합니다.
|
|
|
14
14
|
## 옵션
|
|
15
15
|
|
|
16
16
|
| 플래그 | 설명 |
|
|
17
|
-
|
|
17
|
+
|------|-------------|
|
|
18
18
|
| `--scope user` | 전역 설정에서 제거 (기본값) |
|
|
19
19
|
| `--scope project` | 프로젝트 설정에서 제거 |
|
|
20
20
|
| `--scope local` | 로컬 설정에서 제거 |
|
|
21
21
|
| `--scope all` | 모든 범위에서 한 번에 제거 |
|
|
22
22
|
| `--custom` / `-c` | 설정에서 `customPoliciesPath` 초기화 |
|
|
23
|
-
| `--beta` | 설정에서 베타 정책만 제거 |
|
|
24
23
|
|
|
25
24
|
## 동작 방식
|
|
26
25
|
|
|
27
26
|
- **정책 이름 미지정** - 설정 파일에서 모든 failproofai 훅 항목을 제거합니다
|
|
28
|
-
- **특정 이름 지정** - 해당
|
|
27
|
+
- **특정 이름 지정** - 해당 정책은 비활성화하지만 훅은 설치된 상태로 유지합니다
|
|
29
28
|
|
|
30
29
|
## 예시
|
|
31
30
|
|