failproofai 0.0.6-beta.0 → 0.0.6-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.failproofai/policies/review-policies.mjs +113 -0
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +5 -5
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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]__0a.nuas._.js → [root-of-the-server]__05akje6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.~fd7s._.js → [root-of-the-server]__0i5kvry._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +6 -6
- 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 +5 -5
- 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/{0teq8wdh3po1n.js → 00j0rr7rh8ef8.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0maq.q1t.ri85.js → 05j1px0r8yzh6.js} +2 -2
- package/.next/standalone/.next/static/chunks/0badv41uxa56..js +4 -0
- package/.next/standalone/.next/static/chunks/{0hplx-8c-4vpv.js → 0ijk_kek9_wyx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0uc0um_uz51m_.js → 0npb~873.wvg3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0hctoh28rg838.js → 0xpl.oscrakvx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0.z51twd.0l5z.js → 1052sguyd-.ka.js} +1 -1
- package/.next/standalone/.next/static/chunks/{09e7drilkf1sn.js → 12simlrcfk3g2.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ul6fk-z.6k-0.js → 14cl9poem30dq.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0r26pc8h0y_-e.js → turbopack-0o7k.hakttp4k.js} +1 -1
- package/.next/standalone/CHANGELOG.md +19 -0
- package/.next/standalone/README.md +2 -2
- package/.next/standalone/bun.lock +43 -85
- package/.next/standalone/dist/cli.mjs +91 -4
- package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
- package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
- package/.next/standalone/docs/ar/examples.mdx +86 -33
- package/.next/standalone/docs/ar/getting-started.mdx +82 -29
- package/.next/standalone/docs/built-in-policies.mdx +38 -1
- package/.next/standalone/docs/custom-policies.mdx +1 -1
- package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
- package/.next/standalone/docs/de/custom-policies.mdx +56 -56
- package/.next/standalone/docs/de/examples.mdx +72 -18
- package/.next/standalone/docs/de/getting-started.mdx +72 -20
- package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
- package/.next/standalone/docs/es/custom-policies.mdx +55 -55
- package/.next/standalone/docs/es/examples.mdx +73 -19
- package/.next/standalone/docs/es/getting-started.mdx +72 -20
- package/.next/standalone/docs/examples.mdx +54 -0
- package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
- package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
- package/.next/standalone/docs/fr/examples.mdx +78 -24
- package/.next/standalone/docs/fr/getting-started.mdx +65 -13
- package/.next/standalone/docs/getting-started.mdx +52 -0
- package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
- package/.next/standalone/docs/he/custom-policies.mdx +75 -75
- package/.next/standalone/docs/he/examples.mdx +87 -33
- package/.next/standalone/docs/he/getting-started.mdx +84 -33
- package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
- package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
- package/.next/standalone/docs/hi/examples.mdx +90 -36
- package/.next/standalone/docs/hi/getting-started.mdx +80 -27
- package/.next/standalone/docs/i18n/README.ar.md +69 -69
- package/.next/standalone/docs/i18n/README.de.md +46 -46
- package/.next/standalone/docs/i18n/README.es.md +42 -42
- package/.next/standalone/docs/i18n/README.fr.md +39 -39
- package/.next/standalone/docs/i18n/README.he.md +83 -83
- package/.next/standalone/docs/i18n/README.hi.md +69 -69
- package/.next/standalone/docs/i18n/README.it.md +72 -72
- package/.next/standalone/docs/i18n/README.ja.md +71 -71
- package/.next/standalone/docs/i18n/README.ko.md +52 -52
- package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
- package/.next/standalone/docs/i18n/README.ru.md +66 -66
- package/.next/standalone/docs/i18n/README.tr.md +82 -83
- package/.next/standalone/docs/i18n/README.vi.md +70 -71
- package/.next/standalone/docs/i18n/README.zh.md +51 -51
- package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
- package/.next/standalone/docs/it/custom-policies.mdx +69 -69
- package/.next/standalone/docs/it/examples.mdx +93 -39
- package/.next/standalone/docs/it/getting-started.mdx +73 -21
- package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
- package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
- package/.next/standalone/docs/ja/examples.mdx +76 -22
- package/.next/standalone/docs/ja/getting-started.mdx +65 -13
- package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
- package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
- package/.next/standalone/docs/ko/examples.mdx +87 -33
- package/.next/standalone/docs/ko/getting-started.mdx +61 -9
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
- package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
- package/.next/standalone/docs/pt-br/examples.mdx +78 -24
- package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
- package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
- package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
- package/.next/standalone/docs/ru/examples.mdx +77 -22
- package/.next/standalone/docs/ru/getting-started.mdx +74 -22
- package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
- package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
- package/.next/standalone/docs/tr/examples.mdx +97 -42
- package/.next/standalone/docs/tr/getting-started.mdx +75 -23
- package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
- package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
- package/.next/standalone/docs/vi/examples.mdx +93 -38
- package/.next/standalone/docs/vi/getting-started.mdx +74 -22
- package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
- package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
- package/.next/standalone/docs/zh/examples.mdx +90 -36
- package/.next/standalone/docs/zh/getting-started.mdx +73 -21
- package/.next/standalone/node_modules/@next/env/package.json +1 -1
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/config-schema.js +10 -2
- package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/render.js +27 -20
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/.next/standalone/node_modules/next/package.json +15 -15
- package/.next/standalone/package.json +2 -2
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/hooks/builtin-policies.ts +106 -1
- package/README.md +2 -2
- package/dist/cli.mjs +91 -4
- package/package.json +2 -2
- package/src/hooks/builtin-policies.ts +106 -1
- package/.next/standalone/.next/static/chunks/0w9lwqy0-v1dk.js +0 -4
- /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_ssgManifest.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
2
|
+
title: Iniziare
|
|
3
3
|
description: "Installa failproofai, abilita le policy e lascia che i tuoi agenti funzionino in modo affidabile"
|
|
4
4
|
icon: rocket
|
|
5
5
|
---
|
|
@@ -7,7 +7,7 @@ icon: rocket
|
|
|
7
7
|
## Requisiti
|
|
8
8
|
|
|
9
9
|
- **Node.js** >= 20.9.0
|
|
10
|
-
- **Bun** >= 1.3.0 (
|
|
10
|
+
- **Bun** >= 1.3.0 (opzionale - necessario solo per compilare dal codice sorgente)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -31,13 +31,13 @@ bun add -g failproofai
|
|
|
31
31
|
|
|
32
32
|
<Steps>
|
|
33
33
|
<Step title="Abilita le policy">
|
|
34
|
-
Le policy sono regole che vengono eseguite prima e dopo ogni chiamata a uno strumento dell'agente.
|
|
34
|
+
Le policy sono regole che vengono eseguite prima e dopo ogni chiamata a uno strumento dell'agente. Catturano i comandi distruttivi, le perdite di segreti e altre modalità di guasto prima che causino danni.
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
failproofai policies --install
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
Questo scrive
|
|
40
|
+
Questo scrive le entry di hook nel file `settings.json` di Claude Code. Puoi anche installare per un singolo progetto o selezionare policy specifiche:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
failproofai policies --install --scope project
|
|
@@ -49,17 +49,17 @@ bun add -g failproofai
|
|
|
49
49
|
failproofai policies
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
Mostra ogni policy, se è abilitata e
|
|
52
|
+
Mostra ogni policy, se è abilitata e i parametri configurati.
|
|
53
53
|
</Step>
|
|
54
|
-
<Step title="Avvia
|
|
54
|
+
<Step title="Avvia la dashboard">
|
|
55
55
|
```bash
|
|
56
56
|
failproofai
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Apre
|
|
59
|
+
Apre una dashboard locale su `http://localhost:8020` dove puoi sfogliare le sessioni, ispezionare le chiamate agli strumenti e gestire le policy.
|
|
60
60
|
</Step>
|
|
61
61
|
<Step title="Esegui il tuo agente">
|
|
62
|
-
Avvia Claude Code come al solito. Se l'agente tenta qualcosa di rischioso, failproofai lo intercetta automaticamente. Lascialo in esecuzione senza supervisione e rivedi
|
|
62
|
+
Avvia Claude Code come al solito. Se l'agente tenta qualcosa di rischioso, failproofai lo intercetta automaticamente. Lascialo in esecuzione senza supervisione e rivedi quello che è accaduto nella dashboard.
|
|
63
63
|
</Step>
|
|
64
64
|
</Steps>
|
|
65
65
|
|
|
@@ -72,14 +72,14 @@ Ogni volta che un agente esegue uno strumento, Claude Code chiama failproofai co
|
|
|
72
72
|
```text
|
|
73
73
|
Claude Code → failproofai --hook PreToolUse → legge JSON da stdin
|
|
74
74
|
valuta le policy
|
|
75
|
-
scrive la decisione
|
|
75
|
+
scrive la decisione in stdout
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
Ogni policy restituisce una di tre decisioni:
|
|
79
79
|
|
|
80
80
|
- **allow** - l'agente procede normalmente
|
|
81
81
|
- **deny** - l'azione è bloccata, all'agente viene spiegato il motivo
|
|
82
|
-
- **instruct** - viene aggiunto
|
|
82
|
+
- **instruct** - contesto aggiuntivo viene aggiunto al prompt dell'agente
|
|
83
83
|
|
|
84
84
|
<Note>
|
|
85
85
|
Le policy vengono eseguite nel tuo processo locale. Nulla viene inviato a un servizio remoto.
|
|
@@ -87,17 +87,69 @@ Le policy vengono eseguite nel tuo processo locale. Nulla viene inviato a un ser
|
|
|
87
87
|
|
|
88
88
|
---
|
|
89
89
|
|
|
90
|
+
## Configura policy di team con policy basate su convenzione
|
|
91
|
+
|
|
92
|
+
Il modo più veloce per stabilire standard di qualità in tutto il team è la convenzione `.failproofai/policies/`. Inserisci i file di policy in questa directory e vengono caricati automaticamente — nessun flag, nessuna modifica della configurazione, nessun comando di installazione.
|
|
93
|
+
|
|
94
|
+
<Steps>
|
|
95
|
+
<Step title="Crea la directory delle policy">
|
|
96
|
+
```bash
|
|
97
|
+
mkdir -p .failproofai/policies
|
|
98
|
+
```
|
|
99
|
+
</Step>
|
|
100
|
+
<Step title="Aggiungi file di policy">
|
|
101
|
+
Copia gli esempi iniziali o scrivi i tuoi:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cp node_modules/failproofai/examples/convention-policies/*.mjs .failproofai/policies/
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Oppure creane uno nuovo:
|
|
108
|
+
|
|
109
|
+
```js
|
|
110
|
+
// .failproofai/policies/team-policies.mjs
|
|
111
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
112
|
+
|
|
113
|
+
customPolicies.add({
|
|
114
|
+
name: "test-before-commit",
|
|
115
|
+
match: { events: ["PreToolUse"] },
|
|
116
|
+
fn: async (ctx) => {
|
|
117
|
+
if (ctx.toolName !== "Bash") return allow();
|
|
118
|
+
if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
|
|
119
|
+
return instruct("Esegui i test prima di eseguire il commit.");
|
|
120
|
+
}
|
|
121
|
+
return allow();
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
</Step>
|
|
126
|
+
<Step title="Esegui il commit su git">
|
|
127
|
+
```bash
|
|
128
|
+
git add .failproofai/policies/
|
|
129
|
+
git commit -m "Add team quality policies"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Ogni membro del team che ha failproofai installato raccoglie automaticamente queste policy. Non è necessaria alcuna configurazione per sviluppatore.
|
|
133
|
+
</Step>
|
|
134
|
+
</Steps>
|
|
135
|
+
|
|
136
|
+
<Tip>
|
|
137
|
+
Esegui il commit di `.failproofai/policies/` nel tuo repository in modo che l'intero team condivida gli stessi standard. Man mano che il tuo team scopre nuove modalità di guasto, aggiungi policy e esegui il push — tutti ricevono l'aggiornamento al prossimo `git pull`. Nel tempo queste policy diventano uno standard di qualità vivo che continua a migliorare.
|
|
138
|
+
</Tip>
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
90
142
|
## Archiviazione dei dati
|
|
91
143
|
|
|
92
144
|
Tutta la configurazione e i log rimangono sul tuo computer:
|
|
93
145
|
|
|
94
|
-
| Percorso | Cosa
|
|
95
|
-
|
|
146
|
+
| Percorso | Cosa conserva |
|
|
147
|
+
|------|----------------|
|
|
96
148
|
| `~/.failproofai/policies-config.json` | Configurazione globale delle policy |
|
|
97
|
-
| `~/.failproofai/hook-activity.jsonl` | Cronologia dell'esecuzione
|
|
98
|
-
| `~/.failproofai/hook.log` | Log di debug per errori hook personalizzati |
|
|
99
|
-
| `.failproofai/policies-config.json` | Configurazione per progetto (
|
|
100
|
-
| `.failproofai/policies-config.local.json` |
|
|
149
|
+
| `~/.failproofai/hook-activity.jsonl` | Cronologia dell'esecuzione dei hook |
|
|
150
|
+
| `~/.failproofai/hook.log` | Log di debug per gli errori dei hook personalizzati |
|
|
151
|
+
| `.failproofai/policies-config.json` | Configurazione per progetto (sottoposta a commit) |
|
|
152
|
+
| `.failproofai/policies-config.local.json` | Override personali (gitignored) |
|
|
101
153
|
|
|
102
154
|
---
|
|
103
155
|
|
|
@@ -107,16 +159,16 @@ Tutta la configurazione e i log rimangono sul tuo computer:
|
|
|
107
159
|
failproofai policies --uninstall
|
|
108
160
|
```
|
|
109
161
|
|
|
110
|
-
Rimuove le
|
|
162
|
+
Rimuove le entry di hook da `~/.claude/settings.json`. I file di configurazione in `~/.failproofai/` vengono mantenuti.
|
|
111
163
|
|
|
112
164
|
---
|
|
113
165
|
|
|
114
|
-
##
|
|
166
|
+
## Passaggi successivi
|
|
115
167
|
|
|
116
168
|
<CardGroup cols={2}>
|
|
117
169
|
|
|
118
170
|
<Card title="Configurazione" icon="gear" href="/it/configuration">
|
|
119
|
-
|
|
171
|
+
Ambiti e formato del file di configurazione
|
|
120
172
|
</Card>
|
|
121
173
|
|
|
122
174
|
<Card title="Policy integrate" icon="shield" href="/it/built-in-policies">
|
|
@@ -127,8 +179,8 @@ Rimuove le voci di hook da `~/.claude/settings.json`. I file di configurazione i
|
|
|
127
179
|
Scrivi le tue policy in JavaScript
|
|
128
180
|
</Card>
|
|
129
181
|
|
|
130
|
-
<Card title="
|
|
131
|
-
Monitora le sessioni e
|
|
182
|
+
<Card title="Monitore agente" icon="chart-line" href="/it/dashboard">
|
|
183
|
+
Monitora le sessioni e rivedi l'attività delle policy
|
|
132
184
|
</Card>
|
|
133
185
|
|
|
134
186
|
</CardGroup>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: 組み込みポリシー
|
|
3
|
-
description: "
|
|
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
|
|
|
@@ -21,37 +21,38 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
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
|
+
| [パッケージマネージャー](#package-managers) | prefer-package-manager | PreToolUse |
|
|
24
25
|
| [ワークフロー](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
25
26
|
|
|
26
|
-
- **`block-`** —
|
|
27
|
-
- **`warn-`** —
|
|
28
|
-
- **`sanitize-`** —
|
|
29
|
-
- **`require-`** — 条件が満たされるまで Stop
|
|
27
|
+
- **`block-`** — エージェントの処理を停止する。
|
|
28
|
+
- **`warn-`** — エージェントが自己修正できるよう追加のコンテキストを提供する。
|
|
29
|
+
- **`sanitize-`** — エージェントに返す前にツールの出力から機密データを除去する。
|
|
30
|
+
- **`require-`** — 条件が満たされるまで Stop イベントをブロックする。
|
|
30
31
|
|
|
31
32
|
---
|
|
32
33
|
|
|
33
34
|
<Tip>
|
|
34
|
-
すべてのポリシーは `policyParams` にオプションの `hint` フィールドをサポートしています。hint は Claude が受け取る deny または instruct
|
|
35
|
+
すべてのポリシーは `policyParams` にオプションの `hint` フィールドをサポートしています。hint は Claude が受け取る deny または instruct メッセージに追加され、ポリシーコードを変更せずに実行可能なガイダンスを提供します。組み込み、カスタム、コンベンションポリシーで使用できます。詳細は [設定 → hint](/ja/configuration#hint-cross-cutting) を参照してください。
|
|
35
36
|
</Tip>
|
|
36
37
|
|
|
37
38
|
---
|
|
38
39
|
|
|
39
40
|
## 危険なコマンド
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
取り消しが困難な操作や、ホストシステムに損害を与える可能性のある操作をエージェントが実行するのを防ぎます。
|
|
42
43
|
|
|
43
44
|
### `block-sudo`
|
|
44
45
|
|
|
45
46
|
**イベント:** PreToolUse (Bash)
|
|
46
|
-
**デフォルト:** `sudo`
|
|
47
|
+
**デフォルト:** `sudo` コマンドを含むすべてのコマンドを拒否します。
|
|
47
48
|
|
|
48
|
-
`sudo`
|
|
49
|
+
`sudo` キーワードを含む呼び出しをブロックします。パターンマッチングは生の文字列ではなく、パース済みのコマンドトークンに対して行われるため、シェル演算子インジェクションによるバイパスを防ぎます。
|
|
49
50
|
|
|
50
51
|
**パラメーター:**
|
|
51
52
|
|
|
52
53
|
| パラメーター | 型 | デフォルト | 説明 |
|
|
53
54
|
|-------|------|---------|-------------|
|
|
54
|
-
| `allowPatterns` | `string[]` | `[]` |
|
|
55
|
+
| `allowPatterns` | `string[]` | `[]` | 許可されるコマンドの正確なプレフィックス。各エントリはパース済みの argv トークンと照合されます。 |
|
|
55
56
|
|
|
56
57
|
**例:**
|
|
57
58
|
|
|
@@ -68,7 +69,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
68
69
|
この設定では、`sudo systemctl status nginx` は許可されますが、`sudo rm /etc/hosts` は拒否されます。
|
|
69
70
|
|
|
70
71
|
<Note>
|
|
71
|
-
|
|
72
|
+
パターンは生のコマンド文字列ではなく、パース済みのトークンと照合されます。これにより、シェル演算子を追加することによるバイパスを防ぎます(例:`sudo systemctl status x; rm -rf /` は `sudo systemctl status *` にマッチしません)。
|
|
72
73
|
</Note>
|
|
73
74
|
|
|
74
75
|
---
|
|
@@ -76,13 +77,13 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
76
77
|
### `block-rm-rf`
|
|
77
78
|
|
|
78
79
|
**イベント:** PreToolUse (Bash)
|
|
79
|
-
**デフォルト:** `rm -rf`、`rm -fr
|
|
80
|
+
**デフォルト:** `rm -rf`、`rm -fr`、およびそれに類似した再帰的削除コマンドを拒否します。
|
|
80
81
|
|
|
81
82
|
**パラメーター:**
|
|
82
83
|
|
|
83
84
|
| パラメーター | 型 | デフォルト | 説明 |
|
|
84
85
|
|-------|------|---------|-------------|
|
|
85
|
-
| `allowPaths` | `string[]` | `[]` |
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | 再帰的な削除が安全なパス(例:`/tmp`)。 |
|
|
86
87
|
|
|
87
88
|
**例:**
|
|
88
89
|
|
|
@@ -101,7 +102,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
101
102
|
### `block-curl-pipe-sh`
|
|
102
103
|
|
|
103
104
|
**イベント:** PreToolUse (Bash)
|
|
104
|
-
**デフォルト:** `curl <url> | bash`、`curl <url> | sh`、`wget <url> | bash
|
|
105
|
+
**デフォルト:** `curl <url> | bash`、`curl <url> | sh`、`wget <url> | bash`、およびそれに類似したパターンを拒否します。
|
|
105
106
|
|
|
106
107
|
パラメーターなし。
|
|
107
108
|
|
|
@@ -118,12 +119,12 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
118
119
|
|
|
119
120
|
## シークレット(サニタイザー)
|
|
120
121
|
|
|
121
|
-
エージェントが認証情報をコンテキストや出力に漏洩するのを防ぎます。サニタイザーポリシーは **PostToolUse**
|
|
122
|
+
エージェントが認証情報をコンテキストや出力に漏洩するのを防ぎます。サニタイザーポリシーは **PostToolUse** イベントで動作します。Claude が Bash コマンドを実行したり、ファイルを読み込んだり、任意のツールを呼び出したりすると、これらのポリシーは Claude に返される前に出力を検査します。シークレットパターンが検出された場合、ポリシーは出力が返されるのを防ぐ deny 判定を返します。
|
|
122
123
|
|
|
123
124
|
### `sanitize-jwt`
|
|
124
125
|
|
|
125
|
-
**イベント:** PostToolUse
|
|
126
|
-
**デフォルト:** JWT トークン(`.` で区切られた3つの base64url
|
|
126
|
+
**イベント:** PostToolUse(全ツール)
|
|
127
|
+
**デフォルト:** JWT トークン(`.` で区切られた3つの base64url セグメント)を削除します。
|
|
127
128
|
|
|
128
129
|
パラメーターなし。
|
|
129
130
|
|
|
@@ -131,8 +132,8 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
131
132
|
|
|
132
133
|
### `sanitize-api-keys`
|
|
133
134
|
|
|
134
|
-
**イベント:** PostToolUse
|
|
135
|
-
**デフォルト:** 一般的な API
|
|
135
|
+
**イベント:** PostToolUse(全ツール)
|
|
136
|
+
**デフォルト:** 一般的な API キー形式を削除します:Anthropic(`sk-ant-`)、OpenAI(`sk-`)、GitHub PAT(`ghp_`)、AWS アクセスキー(`AKIA`)、Stripe キー(`sk_live_`、`sk_test_`)、Google API キー(`AIza`)。
|
|
136
137
|
|
|
137
138
|
**パラメーター:**
|
|
138
139
|
|
|
@@ -159,8 +160,8 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
159
160
|
|
|
160
161
|
### `sanitize-connection-strings`
|
|
161
162
|
|
|
162
|
-
**イベント:** PostToolUse
|
|
163
|
-
**デフォルト:** 認証情報が埋め込まれたデータベース接続文字列(例:`postgresql://user:password@host/db
|
|
163
|
+
**イベント:** PostToolUse(全ツール)
|
|
164
|
+
**デフォルト:** 認証情報が埋め込まれたデータベース接続文字列(例:`postgresql://user:password@host/db`)を削除します。
|
|
164
165
|
|
|
165
166
|
パラメーターなし。
|
|
166
167
|
|
|
@@ -168,8 +169,8 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
168
169
|
|
|
169
170
|
### `sanitize-private-key-content`
|
|
170
171
|
|
|
171
|
-
**イベント:** PostToolUse
|
|
172
|
-
**デフォルト:** PEM ブロック(`-----BEGIN PRIVATE KEY-----`、`-----BEGIN RSA PRIVATE KEY-----`
|
|
172
|
+
**イベント:** PostToolUse(全ツール)
|
|
173
|
+
**デフォルト:** PEM ブロック(`-----BEGIN PRIVATE KEY-----`、`-----BEGIN RSA PRIVATE KEY-----` など)を削除します。
|
|
173
174
|
|
|
174
175
|
パラメーターなし。
|
|
175
176
|
|
|
@@ -177,8 +178,8 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
177
178
|
|
|
178
179
|
### `sanitize-bearer-tokens`
|
|
179
180
|
|
|
180
|
-
**イベント:** PostToolUse
|
|
181
|
-
**デフォルト:** トークンが20文字以上の `Authorization: Bearer <token>`
|
|
181
|
+
**イベント:** PostToolUse(全ツール)
|
|
182
|
+
**デフォルト:** トークンが20文字以上の `Authorization: Bearer <token>` ヘッダーを削除します。
|
|
182
183
|
|
|
183
184
|
パラメーターなし。
|
|
184
185
|
|
|
@@ -186,14 +187,14 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
186
187
|
|
|
187
188
|
## 環境
|
|
188
189
|
|
|
189
|
-
|
|
190
|
+
エージェントによる機密環境設定の読み取りや漏洩を保護します。
|
|
190
191
|
|
|
191
192
|
### `block-env-files`
|
|
192
193
|
|
|
193
194
|
**イベント:** PreToolUse (Bash, Read)
|
|
194
|
-
**デフォルト:** `cat .env` や `.env` をファイルパスとした `Read`
|
|
195
|
+
**デフォルト:** `cat .env` や `.env` をファイルパスとした `Read` ツール呼び出しなど、`.env` ファイルの読み取りを拒否します。
|
|
195
196
|
|
|
196
|
-
`.envrc`
|
|
197
|
+
`.envrc` やその他の環境関連ファイルはブロックしません。正確に `.env` という名前のファイルのみが対象です。
|
|
197
198
|
|
|
198
199
|
パラメーターなし。
|
|
199
200
|
|
|
@@ -202,7 +203,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
202
203
|
### `protect-env-vars`
|
|
203
204
|
|
|
204
205
|
**イベント:** PreToolUse (Bash)
|
|
205
|
-
**デフォルト:**
|
|
206
|
+
**デフォルト:** 環境変数を出力するコマンド(`printenv`、`env`、`echo $VAR`)を拒否します。
|
|
206
207
|
|
|
207
208
|
パラメーターなし。
|
|
208
209
|
|
|
@@ -210,18 +211,18 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
210
211
|
|
|
211
212
|
## ファイルアクセス
|
|
212
213
|
|
|
213
|
-
|
|
214
|
+
エージェントをプロジェクトの境界内に留め、機密ファイルへのアクセスを防ぎます。
|
|
214
215
|
|
|
215
216
|
### `block-read-outside-cwd`
|
|
216
217
|
|
|
217
218
|
**イベント:** PreToolUse (Read, Bash)
|
|
218
|
-
**デフォルト:**
|
|
219
|
+
**デフォルト:** カレントワーキングディレクトリ(プロジェクトルート)の外部にあるファイルの読み取りを拒否します。
|
|
219
220
|
|
|
220
221
|
**パラメーター:**
|
|
221
222
|
|
|
222
223
|
| パラメーター | 型 | デフォルト | 説明 |
|
|
223
224
|
|-------|------|---------|-------------|
|
|
224
|
-
| `allowPaths` | `string[]` | `[]` | cwd
|
|
225
|
+
| `allowPaths` | `string[]` | `[]` | cwd の外部であっても許可される絶対パスのプレフィックス。 |
|
|
225
226
|
|
|
226
227
|
**例:**
|
|
227
228
|
|
|
@@ -240,13 +241,13 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
240
241
|
### `block-secrets-write`
|
|
241
242
|
|
|
242
243
|
**イベント:** PreToolUse (Write, Edit)
|
|
243
|
-
**デフォルト:**
|
|
244
|
+
**デフォルト:** 秘密鍵や証明書によく使用されるファイルへの書き込みを拒否します:`id_rsa`、`id_ed25519`、`*.key`、`*.pem`、`*.p12`、`*.pfx`。
|
|
244
245
|
|
|
245
246
|
**パラメーター:**
|
|
246
247
|
|
|
247
248
|
| パラメーター | 型 | デフォルト | 説明 |
|
|
248
249
|
|-------|------|---------|-------------|
|
|
249
|
-
| `additionalPatterns` | `string[]` | `[]` |
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | ブロックする追加のファイル名パターン(glob形式)。 |
|
|
250
251
|
|
|
251
252
|
**例:**
|
|
252
253
|
|
|
@@ -264,12 +265,12 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
264
265
|
|
|
265
266
|
## Git
|
|
266
267
|
|
|
267
|
-
|
|
268
|
+
取り消しが困難な誤ったプッシュ、フォースプッシュ、ブランチ操作を防ぎます。
|
|
268
269
|
|
|
269
270
|
### `block-push-master`
|
|
270
271
|
|
|
271
272
|
**イベント:** PreToolUse (Bash)
|
|
272
|
-
**デフォルト:** `git push origin main`
|
|
273
|
+
**デフォルト:** `git push origin main` および `git push origin master` を拒否します。
|
|
273
274
|
|
|
274
275
|
**パラメーター:**
|
|
275
276
|
|
|
@@ -311,7 +312,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
311
312
|
### `block-force-push`
|
|
312
313
|
|
|
313
314
|
**イベント:** PreToolUse (Bash)
|
|
314
|
-
**デフォルト:** `git push --force`
|
|
315
|
+
**デフォルト:** `git push --force` および `git push -f` を拒否します。
|
|
315
316
|
|
|
316
317
|
ポリシー固有のパラメーターはありません。クロスカッティングの [`hint`](/ja/configuration#hint-cross-cutting) を使用して代替手段を提案できます:
|
|
317
318
|
|
|
@@ -330,7 +331,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
330
331
|
### `warn-git-amend`
|
|
331
332
|
|
|
332
333
|
**イベント:** PreToolUse (Bash)
|
|
333
|
-
**デフォルト:** `git commit --amend`
|
|
334
|
+
**デフォルト:** `git commit --amend` の実行時に注意して進むよう Claude に指示します。コマンドはブロックしません。
|
|
334
335
|
|
|
335
336
|
パラメーターなし。
|
|
336
337
|
|
|
@@ -339,7 +340,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
339
340
|
### `warn-git-stash-drop`
|
|
340
341
|
|
|
341
342
|
**イベント:** PreToolUse (Bash)
|
|
342
|
-
**デフォルト:** `git stash drop`
|
|
343
|
+
**デフォルト:** `git stash drop` の実行前に確認するよう Claude に指示します。コマンドはブロックしません。
|
|
343
344
|
|
|
344
345
|
パラメーターなし。
|
|
345
346
|
|
|
@@ -356,7 +357,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
356
357
|
|
|
357
358
|
## データベース
|
|
358
359
|
|
|
359
|
-
|
|
360
|
+
破壊的な SQL 操作がデータベースに対して実行される前に検出します。
|
|
360
361
|
|
|
361
362
|
### `warn-destructive-sql`
|
|
362
363
|
|
|
@@ -370,7 +371,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
370
371
|
### `warn-schema-alteration`
|
|
371
372
|
|
|
372
373
|
**イベント:** PreToolUse (Bash)
|
|
373
|
-
**デフォルト:** `ALTER TABLE`
|
|
374
|
+
**デフォルト:** `ALTER TABLE` ステートメントを実行する前に確認するよう Claude に指示します。
|
|
374
375
|
|
|
375
376
|
パラメーターなし。
|
|
376
377
|
|
|
@@ -378,7 +379,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
378
379
|
|
|
379
380
|
## 警告
|
|
380
381
|
|
|
381
|
-
|
|
382
|
+
潜在的にリスクはあるが破壊的ではない操作の前に、エージェントに追加のコンテキストを提供します。
|
|
382
383
|
|
|
383
384
|
### `warn-large-file-write`
|
|
384
385
|
|
|
@@ -389,7 +390,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
389
390
|
|
|
390
391
|
| パラメーター | 型 | デフォルト | 説明 |
|
|
391
392
|
|-------|------|---------|-------------|
|
|
392
|
-
| `thresholdKb` | `number` | `1024` |
|
|
393
|
+
| `thresholdKb` | `number` | `1024` | 警告が発生するファイルサイズのしきい値(キロバイト)。 |
|
|
393
394
|
|
|
394
395
|
**例:**
|
|
395
396
|
|
|
@@ -404,7 +405,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
404
405
|
```
|
|
405
406
|
|
|
406
407
|
<Note>
|
|
407
|
-
|
|
408
|
+
フックハンドラーはペイロードの stdin に 1 MB の制限を適用します。小さなコンテンツでこのポリシーをテストするには、`thresholdKb` を 1024 よりかなり小さい値に設定してください。
|
|
408
409
|
</Note>
|
|
409
410
|
|
|
410
411
|
---
|
|
@@ -421,7 +422,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
421
422
|
### `warn-background-process`
|
|
422
423
|
|
|
423
424
|
**イベント:** PreToolUse (Bash)
|
|
424
|
-
**デフォルト:** `nohup`、`&`、`disown
|
|
425
|
+
**デフォルト:** `nohup`、`&`、`disown`、または `screen` を使用してバックグラウンドプロセスを起動する際に注意するよう Claude に指示します。
|
|
425
426
|
|
|
426
427
|
パラメーターなし。
|
|
427
428
|
|
|
@@ -436,14 +437,50 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
436
437
|
|
|
437
438
|
---
|
|
438
439
|
|
|
440
|
+
## パッケージマネージャー
|
|
441
|
+
|
|
442
|
+
エージェントが使用できるパッケージマネージャーを強制します。
|
|
443
|
+
|
|
444
|
+
### `prefer-package-manager`
|
|
445
|
+
|
|
446
|
+
**イベント:** PreToolUse (Bash)
|
|
447
|
+
**デフォルト:** 無効。有効にすると、`allowed` リストにないパッケージマネージャーコマンドをブロックし、許可されたマネージャーを使用してコマンドを書き直すよう Claude に指示します。
|
|
448
|
+
|
|
449
|
+
検出対象:pip、pip3、python -m pip、npm、npx、yarn、pnpm、pnpx、bun、bunx、uv、poetry、pipenv、conda、cargo。
|
|
450
|
+
|
|
451
|
+
| パラメーター | 型 | デフォルト | 説明 |
|
|
452
|
+
|-----------|------|---------|-------------|
|
|
453
|
+
| `allowed` | string[] | `[]` | 許可されるパッケージマネージャー名。このリストにない検出済みマネージャーはブロックされます。空の場合、ポリシーは何も行いません。 |
|
|
454
|
+
| `blocked` | string[] | `[]` | 組み込みリストに加えてブロックする追加のマネージャー名(例:`['pdm', 'pipx']`)。 |
|
|
455
|
+
|
|
456
|
+
組み込みのブロックリストは以下をカバーします:pip、pip3、npm、npx、yarn、pnpm、pnpx、bun、bunx、uv、poetry、pipenv、conda、cargo。このリストにないマネージャーを追加するには `blocked` を使用してください。
|
|
457
|
+
|
|
458
|
+
**設定例:**
|
|
459
|
+
|
|
460
|
+
```json
|
|
461
|
+
{
|
|
462
|
+
"enabledPolicies": ["prefer-package-manager"],
|
|
463
|
+
"policyParams": {
|
|
464
|
+
"prefer-package-manager": {
|
|
465
|
+
"allowed": ["uv", "bun"],
|
|
466
|
+
"blocked": ["pdm", "pipx"]
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
この設定では、`pip install flask` と `pdm install flask` はどちらも拒否され、`uv` または `bun` を使用するよう Claude に通知されます。`uv pip install flask` のようなコマンドは、`uv` が allowlist に含まれており最初にチェックされるため許可されます。
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
439
476
|
## AI の動作
|
|
440
477
|
|
|
441
|
-
|
|
478
|
+
エージェントが行き詰まったり予期しない動作をしたりするときに検出します。
|
|
442
479
|
|
|
443
480
|
### `warn-repeated-tool-calls`
|
|
444
481
|
|
|
445
|
-
**イベント:** PreToolUse
|
|
446
|
-
**デフォルト:** 同じツールが同じパラメーターで3
|
|
482
|
+
**イベント:** PreToolUse(全ツール)
|
|
483
|
+
**デフォルト:** 同じツールが同じパラメーターで3回以上呼び出された場合(エージェントがループにはまっている一般的な兆候)に再考するよう Claude に指示します。
|
|
447
484
|
|
|
448
485
|
パラメーターなし。
|
|
449
486
|
|
|
@@ -451,14 +488,14 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
451
488
|
|
|
452
489
|
## ワークフロー
|
|
453
490
|
|
|
454
|
-
セッション終了時の規律あるワークフローを強制します。これらのポリシーは **Stop**
|
|
491
|
+
セッション終了時の規律あるワークフローを強制します。これらのポリシーは **Stop** イベントで動作し、各条件が満たされるまで Claude の停止を拒否します。コミット → プッシュ → PR → CI という自然な依存チェーンに従います。ポリシーが拒否した場合、チェーン内の後続のポリシーはスキップされます(deny はショートサーキットします)。
|
|
455
492
|
|
|
456
|
-
すべてのワークフローポリシーは **フェイルオープン**
|
|
493
|
+
すべてのワークフローポリシーは **フェイルオープン** です。必要なツールが利用できない場合(例:`gh` がインストールされていない、git リモートがないなど)、ポリシーはチェックがスキップされた理由を説明する情報メッセージとともに許可します。
|
|
457
494
|
|
|
458
495
|
### `require-commit-before-stop`
|
|
459
496
|
|
|
460
497
|
**イベント:** Stop
|
|
461
|
-
**デフォルト:**
|
|
498
|
+
**デフォルト:** コミットされていない変更(変更済み、ステージング済み、または未追跡のファイル)がある場合に停止を拒否します。ワーキングディレクトリがクリーンな場合は情報メッセージを返します。
|
|
462
499
|
|
|
463
500
|
パラメーターなし。
|
|
464
501
|
|
|
@@ -467,7 +504,7 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
467
504
|
### `require-push-before-stop`
|
|
468
505
|
|
|
469
506
|
**イベント:** Stop
|
|
470
|
-
**デフォルト:**
|
|
507
|
+
**デフォルト:** プッシュされていないコミットがある場合、または現在のブランチにリモートトラッキングブランチがない場合に停止を拒否します。必要に応じてトラッキングブランチを作成するために `git push -u` を提案します。リモートが設定されていない場合はフェイルオープンします。
|
|
471
508
|
|
|
472
509
|
**パラメーター:**
|
|
473
510
|
|
|
@@ -492,13 +529,13 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
492
529
|
### `require-pr-before-stop`
|
|
493
530
|
|
|
494
531
|
**イベント:** Stop
|
|
495
|
-
**デフォルト:** 現在のブランチにプルリクエストが存在しない場合、または既存の PR
|
|
532
|
+
**デフォルト:** 現在のブランチにプルリクエストが存在しない場合、または既存の PR がクローズ/マージされている場合に停止を拒否します。`gh pr create` で PR を作成するよう Claude に指示します。
|
|
496
533
|
|
|
497
534
|
パラメーターなし。
|
|
498
535
|
|
|
499
536
|
<Note>
|
|
500
|
-
このポリシーには [GitHub CLI](https://cli.github.com/)(`gh
|
|
501
|
-
プルリクエストへの読み取りアクセスのために `repo`
|
|
537
|
+
このポリシーには [GitHub CLI](https://cli.github.com/)(`gh`)がインストールされ認証されている必要があります。
|
|
538
|
+
プルリクエストへの読み取りアクセスのために `repo` スコープを持つ個人アクセストークンで `gh auth login` を実行してください。`gh` がインストールされていないか認証されていない場合、ポリシーはフェイルオープンし、その理由を Claude に報告します。
|
|
502
539
|
</Note>
|
|
503
540
|
|
|
504
541
|
---
|
|
@@ -506,13 +543,13 @@ failproofai には、エージェントのよくある失敗パターンを検
|
|
|
506
543
|
### `require-ci-green-before-stop`
|
|
507
544
|
|
|
508
545
|
**イベント:** Stop
|
|
509
|
-
**デフォルト:** 現在のブランチで CI
|
|
546
|
+
**デフォルト:** 現在のブランチで CI チェックが失敗中またはまだ実行中の場合に停止を拒否します。GitHub Actions のワークフロー実行とサードパーティのボットチェック(例:CodeRabbit、SonarCloud、Codecov)の両方を確認します。`skipped` の結論は成功として扱います。すべてのチェックが通過した場合は情報メッセージを返します。
|
|
510
547
|
|
|
511
548
|
パラメーターなし。
|
|
512
549
|
|
|
513
550
|
<Note>
|
|
514
|
-
このポリシーには [GitHub CLI](https://cli.github.com/)(`gh
|
|
515
|
-
Actions
|
|
551
|
+
このポリシーには [GitHub CLI](https://cli.github.com/)(`gh`)がインストールされ認証されている必要があります。
|
|
552
|
+
Actions ワークフロー実行と Checks API への読み取りアクセスのために `repo` スコープを持つ個人アクセストークンで `gh auth login` を実行してください。`gh` がインストールされていないか認証されていない場合、ポリシーはフェイルオープンし、その理由を Claude に報告します。
|
|
516
553
|
</Note>
|
|
517
554
|
|
|
518
555
|
---
|
|
@@ -521,7 +558,7 @@ Actions ワークフロー実行および Checks API への読み取りアクセ
|
|
|
521
558
|
|
|
522
559
|
## 個別ポリシーの無効化
|
|
523
560
|
|
|
524
|
-
設定の `enabledPolicies`
|
|
561
|
+
設定の `enabledPolicies` から特定のポリシーを削除するか、ダッシュボードの「Policies」タブでオフに切り替えてください。
|
|
525
562
|
|
|
526
563
|
```json
|
|
527
564
|
{
|
|
@@ -532,4 +569,4 @@ Actions ワークフロー実行および Checks API への読み取りアクセ
|
|
|
532
569
|
}
|
|
533
570
|
```
|
|
534
571
|
|
|
535
|
-
`enabledPolicies`
|
|
572
|
+
`enabledPolicies` にリストされていないポリシーは、`policyParams` にエントリが存在していても実行されません。
|