@sunaiva/gate 1.0.0
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/LICENSE +10 -0
- package/README.md +67 -0
- package/dist/config/defaults.d.ts +23 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +26 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/loader.d.ts +5 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +19 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/engine/pattern-matcher.d.ts +32 -0
- package/dist/engine/pattern-matcher.d.ts.map +1 -0
- package/dist/engine/pattern-matcher.js +75 -0
- package/dist/engine/pattern-matcher.js.map +1 -0
- package/dist/engine/rule-engine.d.ts +25 -0
- package/dist/engine/rule-engine.d.ts.map +1 -0
- package/dist/engine/rule-engine.js +56 -0
- package/dist/engine/rule-engine.js.map +1 -0
- package/dist/engine/session-state.d.ts +14 -0
- package/dist/engine/session-state.d.ts.map +1 -0
- package/dist/engine/session-state.js +38 -0
- package/dist/engine/session-state.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/categories.json +83 -0
- package/dist/rules/presets.json +163 -0
- package/dist/rules/rules.json +2119 -0
- package/dist/tools/audit.d.ts +11 -0
- package/dist/tools/audit.d.ts.map +1 -0
- package/dist/tools/audit.js +33 -0
- package/dist/tools/audit.js.map +1 -0
- package/dist/tools/bypass.d.ts +10 -0
- package/dist/tools/bypass.d.ts.map +1 -0
- package/dist/tools/bypass.js +16 -0
- package/dist/tools/bypass.js.map +1 -0
- package/dist/tools/rules.d.ts +10 -0
- package/dist/tools/rules.d.ts.map +1 -0
- package/dist/tools/rules.js +31 -0
- package/dist/tools/rules.js.map +1 -0
- package/dist/tools/update.d.ts +10 -0
- package/dist/tools/update.d.ts.map +1 -0
- package/dist/tools/update.js +24 -0
- package/dist/tools/update.js.map +1 -0
- package/dist/tools/validate.d.ts +10 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +30 -0
- package/dist/tools/validate.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,2119 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "fin-001",
|
|
4
|
+
"name": "No Unauthorized Purchases",
|
|
5
|
+
"description": "Block any agent action that initiates a payment, subscription, or purchase without explicit human approval",
|
|
6
|
+
"category": "financial-safety",
|
|
7
|
+
"enforcement": "constitutional",
|
|
8
|
+
"gate_type": "pre-action",
|
|
9
|
+
"severity": "block",
|
|
10
|
+
"example_blocked": "Agent attempts to subscribe to a $5,000/yr software license on behalf of the user",
|
|
11
|
+
"example_allowed": "Agent presents purchase options with pricing and asks for human approval before proceeding",
|
|
12
|
+
"tags": [
|
|
13
|
+
"money",
|
|
14
|
+
"safety",
|
|
15
|
+
"purchases",
|
|
16
|
+
"subscriptions"
|
|
17
|
+
],
|
|
18
|
+
"preset_groups": [
|
|
19
|
+
"essential",
|
|
20
|
+
"financial-protection",
|
|
21
|
+
"full-suite",
|
|
22
|
+
"minimal"
|
|
23
|
+
],
|
|
24
|
+
"detection_pattern": "[server-side]"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "fin-002",
|
|
28
|
+
"name": "Spending Cap Enforcement",
|
|
29
|
+
"description": "Reject any agent action that would exceed the configured daily, weekly, or monthly spending limit across all services",
|
|
30
|
+
"category": "financial-safety",
|
|
31
|
+
"enforcement": "constitutional",
|
|
32
|
+
"gate_type": "pre-action",
|
|
33
|
+
"severity": "block",
|
|
34
|
+
"example_blocked": "Agent triggers 35 parallel Gemini API workers totalling $800 in one week without billing cap",
|
|
35
|
+
"example_allowed": "Agent estimates API cost before run, confirms it is within budget, then proceeds",
|
|
36
|
+
"tags": [
|
|
37
|
+
"money",
|
|
38
|
+
"budget",
|
|
39
|
+
"limits",
|
|
40
|
+
"api-costs"
|
|
41
|
+
],
|
|
42
|
+
"preset_groups": [
|
|
43
|
+
"essential",
|
|
44
|
+
"financial-protection",
|
|
45
|
+
"full-suite"
|
|
46
|
+
],
|
|
47
|
+
"detection_pattern": "[server-side]"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "fin-003",
|
|
51
|
+
"name": "Subscription Management Gate",
|
|
52
|
+
"description": "Require approval before creating, modifying, or cancelling any subscription or recurring billing arrangement",
|
|
53
|
+
"category": "financial-safety",
|
|
54
|
+
"enforcement": "constitutional",
|
|
55
|
+
"gate_type": "pre-action",
|
|
56
|
+
"severity": "block",
|
|
57
|
+
"example_blocked": "Agent upgrades a free Slack plan to Business+ without user confirmation",
|
|
58
|
+
"example_allowed": "Agent presents upgrade options and cost impact, waits for explicit approval before clicking upgrade",
|
|
59
|
+
"tags": [
|
|
60
|
+
"money",
|
|
61
|
+
"subscriptions",
|
|
62
|
+
"recurring"
|
|
63
|
+
],
|
|
64
|
+
"preset_groups": [
|
|
65
|
+
"financial-protection",
|
|
66
|
+
"full-suite"
|
|
67
|
+
],
|
|
68
|
+
"detection_pattern": "[server-side]"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "fin-004",
|
|
72
|
+
"name": "Crypto Transaction Block",
|
|
73
|
+
"description": "Block all cryptocurrency transfers, wallet interactions, and token purchases without explicit multi-step human approval",
|
|
74
|
+
"category": "financial-safety",
|
|
75
|
+
"enforcement": "constitutional",
|
|
76
|
+
"gate_type": "pre-action",
|
|
77
|
+
"severity": "block",
|
|
78
|
+
"example_blocked": "Agent sends 0.5 ETH to a contract address during an automated DeFi strategy",
|
|
79
|
+
"example_allowed": "Agent prepares transaction details for human review and requires signed confirmation before any transfer",
|
|
80
|
+
"tags": [
|
|
81
|
+
"money",
|
|
82
|
+
"crypto",
|
|
83
|
+
"blockchain",
|
|
84
|
+
"transfers"
|
|
85
|
+
],
|
|
86
|
+
"preset_groups": [
|
|
87
|
+
"financial-protection",
|
|
88
|
+
"full-suite"
|
|
89
|
+
],
|
|
90
|
+
"detection_pattern": "[server-side]"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "fin-005",
|
|
94
|
+
"name": "Invoice Approval Gate",
|
|
95
|
+
"description": "Flag any outgoing invoice, payment request, or bill generated by an agent for human review before sending",
|
|
96
|
+
"category": "financial-safety",
|
|
97
|
+
"enforcement": "standard",
|
|
98
|
+
"gate_type": "pre-action",
|
|
99
|
+
"severity": "block",
|
|
100
|
+
"example_blocked": "Agent auto-generates and sends a $12,000 invoice to a client with incorrect line items",
|
|
101
|
+
"example_allowed": "Agent drafts invoice, presents it for review, and sends only after explicit approval",
|
|
102
|
+
"tags": [
|
|
103
|
+
"money",
|
|
104
|
+
"invoices",
|
|
105
|
+
"billing"
|
|
106
|
+
],
|
|
107
|
+
"preset_groups": [
|
|
108
|
+
"financial-protection",
|
|
109
|
+
"full-suite"
|
|
110
|
+
],
|
|
111
|
+
"detection_pattern": "[server-side]"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "fin-006",
|
|
115
|
+
"name": "Refund Processing Gate",
|
|
116
|
+
"description": "Require human approval before issuing any refund, credit, or chargeback on behalf of the user or organisation",
|
|
117
|
+
"category": "financial-safety",
|
|
118
|
+
"enforcement": "standard",
|
|
119
|
+
"gate_type": "pre-action",
|
|
120
|
+
"severity": "block",
|
|
121
|
+
"example_blocked": "Agent issues $800 refund to a customer complaint without verifying the transaction or policy",
|
|
122
|
+
"example_allowed": "Agent identifies refund eligibility, calculates amount, and presents for human sign-off before executing",
|
|
123
|
+
"tags": [
|
|
124
|
+
"money",
|
|
125
|
+
"refunds",
|
|
126
|
+
"customer-service"
|
|
127
|
+
],
|
|
128
|
+
"preset_groups": [
|
|
129
|
+
"financial-protection",
|
|
130
|
+
"full-suite"
|
|
131
|
+
],
|
|
132
|
+
"detection_pattern": "[server-side]"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "fin-007",
|
|
136
|
+
"name": "API Cost Monitoring",
|
|
137
|
+
"description": "Alert and pause when cumulative API costs across a session exceed a configured threshold",
|
|
138
|
+
"category": "financial-safety",
|
|
139
|
+
"enforcement": "standard",
|
|
140
|
+
"gate_type": "runtime-monitor",
|
|
141
|
+
"severity": "warn-then-block",
|
|
142
|
+
"example_blocked": "Agent spawns 50 parallel research workers and racks up $200 in API costs before any check runs",
|
|
143
|
+
"example_allowed": "Agent estimates total token cost before spawning workers, pauses at 80% of budget, reports to user",
|
|
144
|
+
"tags": [
|
|
145
|
+
"money",
|
|
146
|
+
"api-costs",
|
|
147
|
+
"monitoring"
|
|
148
|
+
],
|
|
149
|
+
"preset_groups": [
|
|
150
|
+
"financial-protection",
|
|
151
|
+
"full-suite",
|
|
152
|
+
"developer-safety"
|
|
153
|
+
],
|
|
154
|
+
"detection_pattern": "[server-side]"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "fin-008",
|
|
158
|
+
"name": "Wire Transfer Block",
|
|
159
|
+
"description": "Block all bank wire transfers, ACH payments, and SWIFT transactions initiated by any agent",
|
|
160
|
+
"category": "financial-safety",
|
|
161
|
+
"enforcement": "constitutional",
|
|
162
|
+
"gate_type": "pre-action",
|
|
163
|
+
"severity": "block",
|
|
164
|
+
"example_blocked": "Agent submits ACH payroll file containing $250,000 in transfers after misreading a payroll spreadsheet",
|
|
165
|
+
"example_allowed": "Agent prepares wire transfer details for human review — no submission occurs without signed approval",
|
|
166
|
+
"tags": [
|
|
167
|
+
"money",
|
|
168
|
+
"banking",
|
|
169
|
+
"wire-transfer"
|
|
170
|
+
],
|
|
171
|
+
"preset_groups": [
|
|
172
|
+
"financial-protection",
|
|
173
|
+
"full-suite",
|
|
174
|
+
"minimal"
|
|
175
|
+
],
|
|
176
|
+
"detection_pattern": "[server-side]"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"id": "fin-009",
|
|
180
|
+
"name": "Ad Spend Gate",
|
|
181
|
+
"description": "Require approval before launching, modifying, or increasing budgets for any paid advertising campaign",
|
|
182
|
+
"category": "financial-safety",
|
|
183
|
+
"enforcement": "constitutional",
|
|
184
|
+
"gate_type": "pre-action",
|
|
185
|
+
"severity": "block",
|
|
186
|
+
"example_blocked": "Agent launches a Google Ads campaign with $5,000 daily budget after misinterpreting targeting instructions",
|
|
187
|
+
"example_allowed": "Agent sets up campaign draft, presents estimated spend, and activates only after explicit budget approval",
|
|
188
|
+
"tags": [
|
|
189
|
+
"money",
|
|
190
|
+
"advertising",
|
|
191
|
+
"campaigns"
|
|
192
|
+
],
|
|
193
|
+
"preset_groups": [
|
|
194
|
+
"financial-protection",
|
|
195
|
+
"full-suite"
|
|
196
|
+
],
|
|
197
|
+
"detection_pattern": "[server-side]"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"id": "fin-010",
|
|
201
|
+
"name": "Cloud Infrastructure Cost Cap",
|
|
202
|
+
"description": "Block provisioning of cloud resources that would exceed monthly cost estimates above a configured ceiling",
|
|
203
|
+
"category": "financial-safety",
|
|
204
|
+
"enforcement": "standard",
|
|
205
|
+
"gate_type": "pre-action",
|
|
206
|
+
"severity": "block",
|
|
207
|
+
"example_blocked": "Agent provisions 20 GPU instances for a training job without estimating the $3,000/day cost first",
|
|
208
|
+
"example_allowed": "Agent calculates hourly cost for proposed infrastructure, presents estimate, waits for approval before provisioning",
|
|
209
|
+
"tags": [
|
|
210
|
+
"money",
|
|
211
|
+
"cloud",
|
|
212
|
+
"infrastructure"
|
|
213
|
+
],
|
|
214
|
+
"preset_groups": [
|
|
215
|
+
"financial-protection",
|
|
216
|
+
"full-suite",
|
|
217
|
+
"developer-safety"
|
|
218
|
+
],
|
|
219
|
+
"detection_pattern": "[server-side]"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "fin-011",
|
|
223
|
+
"name": "Domain and Hosting Purchase Gate",
|
|
224
|
+
"description": "Require approval before purchasing domain names, hosting plans, or CDN subscriptions",
|
|
225
|
+
"category": "financial-safety",
|
|
226
|
+
"enforcement": "standard",
|
|
227
|
+
"gate_type": "pre-action",
|
|
228
|
+
"severity": "block",
|
|
229
|
+
"example_blocked": "Agent registers 12 domain variants to protect a brand name and charges $180 without asking",
|
|
230
|
+
"example_allowed": "Agent presents recommended domains with pricing, waits for approval before registering any",
|
|
231
|
+
"tags": [
|
|
232
|
+
"money",
|
|
233
|
+
"domains",
|
|
234
|
+
"hosting"
|
|
235
|
+
],
|
|
236
|
+
"preset_groups": [
|
|
237
|
+
"financial-protection",
|
|
238
|
+
"full-suite"
|
|
239
|
+
],
|
|
240
|
+
"detection_pattern": "[server-side]"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"id": "fin-012",
|
|
244
|
+
"name": "Token and Credit Balance Alert",
|
|
245
|
+
"description": "Alert when any service credit balance (Telnyx, OpenAI, Twilio, etc.) drops below a configured floor before agent auto-recharges",
|
|
246
|
+
"category": "financial-safety",
|
|
247
|
+
"enforcement": "standard",
|
|
248
|
+
"gate_type": "runtime-monitor",
|
|
249
|
+
"severity": "warn",
|
|
250
|
+
"example_blocked": "Agent auto-recharges Telnyx balance by $500 without notifying user when balance drops to $10",
|
|
251
|
+
"example_allowed": "Agent alerts user when balance drops below threshold, presents recharge options, waits for authorisation",
|
|
252
|
+
"tags": [
|
|
253
|
+
"money",
|
|
254
|
+
"credits",
|
|
255
|
+
"balance",
|
|
256
|
+
"monitoring"
|
|
257
|
+
],
|
|
258
|
+
"preset_groups": [
|
|
259
|
+
"financial-protection",
|
|
260
|
+
"full-suite"
|
|
261
|
+
],
|
|
262
|
+
"detection_pattern": "[server-side]"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"id": "dat-001",
|
|
266
|
+
"name": "No Credential Exposure",
|
|
267
|
+
"description": "Block any agent action that would write, log, transmit, or display API keys, passwords, tokens, or secrets in plaintext",
|
|
268
|
+
"category": "data-protection",
|
|
269
|
+
"enforcement": "constitutional",
|
|
270
|
+
"gate_type": "pre-action",
|
|
271
|
+
"severity": "block",
|
|
272
|
+
"example_blocked": "Agent logs full Stripe secret key to a public Cloudflare Worker debug endpoint",
|
|
273
|
+
"example_allowed": "Agent references credentials by variable name only, uses secret manager references, never logs actual values",
|
|
274
|
+
"tags": [
|
|
275
|
+
"security",
|
|
276
|
+
"credentials",
|
|
277
|
+
"secrets"
|
|
278
|
+
],
|
|
279
|
+
"preset_groups": [
|
|
280
|
+
"essential",
|
|
281
|
+
"developer-safety",
|
|
282
|
+
"full-suite",
|
|
283
|
+
"minimal"
|
|
284
|
+
],
|
|
285
|
+
"detection_pattern": "[server-side]"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"id": "dat-002",
|
|
289
|
+
"name": "PII Handling Gate",
|
|
290
|
+
"description": "Require approval before storing, transmitting, or processing personally identifiable information beyond the immediate task scope",
|
|
291
|
+
"category": "data-protection",
|
|
292
|
+
"enforcement": "constitutional",
|
|
293
|
+
"gate_type": "pre-action",
|
|
294
|
+
"severity": "block",
|
|
295
|
+
"example_blocked": "Agent scrapes contact page and stores 500 visitor email addresses in a public Google Sheet",
|
|
296
|
+
"example_allowed": "Agent collects only name and email for lead form, stores encrypted in approved database, confirms storage policy before proceeding",
|
|
297
|
+
"tags": [
|
|
298
|
+
"privacy",
|
|
299
|
+
"pii",
|
|
300
|
+
"gdpr",
|
|
301
|
+
"data"
|
|
302
|
+
],
|
|
303
|
+
"preset_groups": [
|
|
304
|
+
"essential",
|
|
305
|
+
"full-suite"
|
|
306
|
+
],
|
|
307
|
+
"detection_pattern": "[server-side]"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"id": "dat-003",
|
|
311
|
+
"name": "File Upload Restriction",
|
|
312
|
+
"description": "Block agent uploads of sensitive file types (credentials, private keys, financial records) to external services without explicit approval",
|
|
313
|
+
"category": "data-protection",
|
|
314
|
+
"enforcement": "standard",
|
|
315
|
+
"gate_type": "pre-action",
|
|
316
|
+
"severity": "block",
|
|
317
|
+
"example_blocked": "Agent uploads .env.production file containing 12 API keys to a public GitHub repository",
|
|
318
|
+
"example_allowed": "Agent uploads only processed/anonymised output files to approved destinations, flags any credential-containing files for review",
|
|
319
|
+
"tags": [
|
|
320
|
+
"data",
|
|
321
|
+
"uploads",
|
|
322
|
+
"files",
|
|
323
|
+
"security"
|
|
324
|
+
],
|
|
325
|
+
"preset_groups": [
|
|
326
|
+
"developer-safety",
|
|
327
|
+
"full-suite"
|
|
328
|
+
],
|
|
329
|
+
"detection_pattern": "[server-side]"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"id": "dat-004",
|
|
333
|
+
"name": "API Key Protection",
|
|
334
|
+
"description": "Block any agent action that would commit, share, or transmit API keys in code repositories, chat messages, or public endpoints",
|
|
335
|
+
"category": "data-protection",
|
|
336
|
+
"enforcement": "constitutional",
|
|
337
|
+
"gate_type": "pre-action",
|
|
338
|
+
"severity": "block",
|
|
339
|
+
"example_blocked": "Agent commits hardcoded Stripe secret key directly into index.js before pushing to GitHub",
|
|
340
|
+
"example_allowed": "Agent uses environment variable references and secret manager calls, never hardcodes values",
|
|
341
|
+
"tags": [
|
|
342
|
+
"security",
|
|
343
|
+
"api-keys",
|
|
344
|
+
"git",
|
|
345
|
+
"secrets"
|
|
346
|
+
],
|
|
347
|
+
"preset_groups": [
|
|
348
|
+
"essential",
|
|
349
|
+
"developer-safety",
|
|
350
|
+
"full-suite"
|
|
351
|
+
],
|
|
352
|
+
"detection_pattern": "[server-side]"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"id": "dat-005",
|
|
356
|
+
"name": "Database Access Controls",
|
|
357
|
+
"description": "Block unscoped database queries that could read or modify more records than required for the immediate task",
|
|
358
|
+
"category": "data-protection",
|
|
359
|
+
"enforcement": "standard",
|
|
360
|
+
"gate_type": "pre-action",
|
|
361
|
+
"severity": "block",
|
|
362
|
+
"example_blocked": "Agent runs DELETE FROM users without WHERE clause and wipes entire user table in production",
|
|
363
|
+
"example_allowed": "Agent runs scoped queries with explicit WHERE conditions, confirms affected row count before executing destructive operations",
|
|
364
|
+
"tags": [
|
|
365
|
+
"database",
|
|
366
|
+
"sql",
|
|
367
|
+
"data",
|
|
368
|
+
"safety"
|
|
369
|
+
],
|
|
370
|
+
"preset_groups": [
|
|
371
|
+
"essential",
|
|
372
|
+
"developer-safety",
|
|
373
|
+
"full-suite"
|
|
374
|
+
],
|
|
375
|
+
"detection_pattern": "[server-side]"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"id": "dat-006",
|
|
379
|
+
"name": "Data Export Restriction",
|
|
380
|
+
"description": "Require approval before exporting bulk records, database dumps, or data extracts to external systems or local files",
|
|
381
|
+
"category": "data-protection",
|
|
382
|
+
"enforcement": "standard",
|
|
383
|
+
"gate_type": "pre-action",
|
|
384
|
+
"severity": "block",
|
|
385
|
+
"example_blocked": "Agent exports full customer database as CSV and uploads it to an analysis service without approval",
|
|
386
|
+
"example_allowed": "Agent exports an anonymised sample (100 rows), confirms purpose and destination before proceeding with full export",
|
|
387
|
+
"tags": [
|
|
388
|
+
"data",
|
|
389
|
+
"exports",
|
|
390
|
+
"privacy"
|
|
391
|
+
],
|
|
392
|
+
"preset_groups": [
|
|
393
|
+
"full-suite"
|
|
394
|
+
],
|
|
395
|
+
"detection_pattern": "[server-side]"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"id": "dat-007",
|
|
399
|
+
"name": "Encryption Requirement",
|
|
400
|
+
"description": "Block transmission or storage of sensitive data unless encryption (TLS, AES-256, or equivalent) is confirmed active",
|
|
401
|
+
"category": "data-protection",
|
|
402
|
+
"enforcement": "standard",
|
|
403
|
+
"gate_type": "pre-action",
|
|
404
|
+
"severity": "block",
|
|
405
|
+
"example_blocked": "Agent stores customer credit card numbers in a plaintext log file for debugging purposes",
|
|
406
|
+
"example_allowed": "Agent confirms HTTPS endpoint, verifies SSL certificate, uses encrypted storage before writing sensitive data",
|
|
407
|
+
"tags": [
|
|
408
|
+
"security",
|
|
409
|
+
"encryption",
|
|
410
|
+
"tls",
|
|
411
|
+
"data"
|
|
412
|
+
],
|
|
413
|
+
"preset_groups": [
|
|
414
|
+
"developer-safety",
|
|
415
|
+
"full-suite"
|
|
416
|
+
],
|
|
417
|
+
"detection_pattern": "[server-side]"
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"id": "dat-008",
|
|
421
|
+
"name": "Clipboard Monitoring Block",
|
|
422
|
+
"description": "Block agent access to clipboard contents unless the user has explicitly granted clipboard read permission for the task",
|
|
423
|
+
"category": "data-protection",
|
|
424
|
+
"enforcement": "standard",
|
|
425
|
+
"gate_type": "pre-action",
|
|
426
|
+
"severity": "block",
|
|
427
|
+
"example_blocked": "Agent reads clipboard silently, extracts password copied by user, and logs it for form-fill purposes",
|
|
428
|
+
"example_allowed": "Agent requests explicit clipboard permission, explains why it needs the data, and reads only with confirmation",
|
|
429
|
+
"tags": [
|
|
430
|
+
"privacy",
|
|
431
|
+
"clipboard",
|
|
432
|
+
"browser"
|
|
433
|
+
],
|
|
434
|
+
"preset_groups": [
|
|
435
|
+
"full-suite"
|
|
436
|
+
],
|
|
437
|
+
"detection_pattern": "[server-side]"
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"id": "dat-009",
|
|
441
|
+
"name": "Third-Party Data Sharing Gate",
|
|
442
|
+
"description": "Require approval before sending any user data to third-party APIs, analytics platforms, or external services",
|
|
443
|
+
"category": "data-protection",
|
|
444
|
+
"enforcement": "standard",
|
|
445
|
+
"gate_type": "pre-action",
|
|
446
|
+
"severity": "block",
|
|
447
|
+
"example_blocked": "Agent sends full customer profiles to a third-party enrichment API without user knowledge",
|
|
448
|
+
"example_allowed": "Agent presents data sharing proposal with recipient, purpose, and data fields; proceeds only with approval",
|
|
449
|
+
"tags": [
|
|
450
|
+
"privacy",
|
|
451
|
+
"third-party",
|
|
452
|
+
"data-sharing"
|
|
453
|
+
],
|
|
454
|
+
"preset_groups": [
|
|
455
|
+
"full-suite"
|
|
456
|
+
],
|
|
457
|
+
"detection_pattern": "[server-side]"
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"id": "dat-010",
|
|
461
|
+
"name": "Audit Log Integrity",
|
|
462
|
+
"description": "Block any agent action that would modify, delete, or truncate audit logs, access logs, or activity records",
|
|
463
|
+
"category": "data-protection",
|
|
464
|
+
"enforcement": "constitutional",
|
|
465
|
+
"gate_type": "pre-action",
|
|
466
|
+
"severity": "block",
|
|
467
|
+
"example_blocked": "Agent deletes application error logs to clean up a server before an audit, removing evidence of prior failures",
|
|
468
|
+
"example_allowed": "Agent archives old logs to cold storage, preserving integrity, with human approval before any archival",
|
|
469
|
+
"tags": [
|
|
470
|
+
"compliance",
|
|
471
|
+
"audit-logs",
|
|
472
|
+
"integrity"
|
|
473
|
+
],
|
|
474
|
+
"preset_groups": [
|
|
475
|
+
"developer-safety",
|
|
476
|
+
"full-suite"
|
|
477
|
+
],
|
|
478
|
+
"detection_pattern": "[server-side]"
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"id": "dat-011",
|
|
482
|
+
"name": "Screen Capture Restriction",
|
|
483
|
+
"description": "Block agent screenshot or screen recording of any session containing sensitive financial, medical, or personal data",
|
|
484
|
+
"category": "data-protection",
|
|
485
|
+
"enforcement": "standard",
|
|
486
|
+
"gate_type": "pre-action",
|
|
487
|
+
"severity": "block",
|
|
488
|
+
"example_blocked": "Agent screenshots a banking dashboard with account balances visible and sends it to a reporting endpoint",
|
|
489
|
+
"example_allowed": "Agent captures only approved UI regions with sensitive data masked or excluded from capture area",
|
|
490
|
+
"tags": [
|
|
491
|
+
"privacy",
|
|
492
|
+
"screenshots",
|
|
493
|
+
"browser"
|
|
494
|
+
],
|
|
495
|
+
"preset_groups": [
|
|
496
|
+
"full-suite"
|
|
497
|
+
],
|
|
498
|
+
"detection_pattern": "[server-side]"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"id": "dat-012",
|
|
502
|
+
"name": "Retention Policy Enforcement",
|
|
503
|
+
"description": "Alert when agent stores data beyond the configured retention window or in unapproved persistent storage locations",
|
|
504
|
+
"category": "data-protection",
|
|
505
|
+
"enforcement": "standard",
|
|
506
|
+
"gate_type": "runtime-monitor",
|
|
507
|
+
"severity": "warn",
|
|
508
|
+
"example_blocked": "Agent stores customer chat transcripts indefinitely in an S3 bucket with no lifecycle policy",
|
|
509
|
+
"example_allowed": "Agent writes data with explicit TTL metadata, confirms storage location is approved, sets deletion schedule",
|
|
510
|
+
"tags": [
|
|
511
|
+
"compliance",
|
|
512
|
+
"retention",
|
|
513
|
+
"gdpr"
|
|
514
|
+
],
|
|
515
|
+
"preset_groups": [
|
|
516
|
+
"full-suite"
|
|
517
|
+
],
|
|
518
|
+
"detection_pattern": "[server-side]"
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"id": "gov-001",
|
|
522
|
+
"name": "Production Deployment Gate",
|
|
523
|
+
"description": "Block any deployment to production environments without explicit human approval as the final gate",
|
|
524
|
+
"category": "action-governance",
|
|
525
|
+
"enforcement": "constitutional",
|
|
526
|
+
"gate_type": "pre-action",
|
|
527
|
+
"severity": "block",
|
|
528
|
+
"example_blocked": "Agent auto-deploys a breaking change to production at 2am after a failed test suite",
|
|
529
|
+
"example_allowed": "Agent builds, tests, and stages the release, then presents for human approval before any production promotion",
|
|
530
|
+
"tags": [
|
|
531
|
+
"deployment",
|
|
532
|
+
"production",
|
|
533
|
+
"safety"
|
|
534
|
+
],
|
|
535
|
+
"preset_groups": [
|
|
536
|
+
"essential",
|
|
537
|
+
"developer-safety",
|
|
538
|
+
"full-suite",
|
|
539
|
+
"minimal"
|
|
540
|
+
],
|
|
541
|
+
"detection_pattern": "[server-side]"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"id": "gov-002",
|
|
545
|
+
"name": "Destructive Action Confirmation",
|
|
546
|
+
"description": "Require explicit confirmation before any action that deletes, overwrites, or permanently removes data, files, or resources",
|
|
547
|
+
"category": "action-governance",
|
|
548
|
+
"enforcement": "constitutional",
|
|
549
|
+
"gate_type": "pre-action",
|
|
550
|
+
"severity": "block",
|
|
551
|
+
"example_blocked": "Agent runs git clean -fd to tidy the repo and deletes 3 years of research reports stored in untracked files",
|
|
552
|
+
"example_allowed": "Agent lists files to be deleted in a dry-run, presents list for approval, only executes after explicit confirmation",
|
|
553
|
+
"tags": [
|
|
554
|
+
"safety",
|
|
555
|
+
"destructive",
|
|
556
|
+
"files",
|
|
557
|
+
"data"
|
|
558
|
+
],
|
|
559
|
+
"preset_groups": [
|
|
560
|
+
"essential",
|
|
561
|
+
"developer-safety",
|
|
562
|
+
"full-suite",
|
|
563
|
+
"minimal"
|
|
564
|
+
],
|
|
565
|
+
"detection_pattern": "[server-side]"
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
"id": "gov-003",
|
|
569
|
+
"name": "Service Restart Approval",
|
|
570
|
+
"description": "Require approval before restarting, stopping, or killing any production service, daemon, or critical process",
|
|
571
|
+
"category": "action-governance",
|
|
572
|
+
"enforcement": "standard",
|
|
573
|
+
"gate_type": "pre-action",
|
|
574
|
+
"severity": "block",
|
|
575
|
+
"example_blocked": "Agent restarts the payment API during peak trading hours to apply a config change",
|
|
576
|
+
"example_allowed": "Agent schedules restart for maintenance window, notifies on-call, waits for acknowledgment before executing",
|
|
577
|
+
"tags": [
|
|
578
|
+
"operations",
|
|
579
|
+
"services",
|
|
580
|
+
"uptime"
|
|
581
|
+
],
|
|
582
|
+
"preset_groups": [
|
|
583
|
+
"developer-safety",
|
|
584
|
+
"full-suite"
|
|
585
|
+
],
|
|
586
|
+
"detection_pattern": "[server-side]"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"id": "gov-004",
|
|
590
|
+
"name": "DNS Change Gate",
|
|
591
|
+
"description": "Block DNS record additions, modifications, or deletions without human approval — DNS changes can cause instant service outages",
|
|
592
|
+
"category": "action-governance",
|
|
593
|
+
"enforcement": "constitutional",
|
|
594
|
+
"gate_type": "pre-action",
|
|
595
|
+
"severity": "block",
|
|
596
|
+
"example_blocked": "Agent deletes an MX record while reconfiguring email routing, taking down all inbound email for the domain",
|
|
597
|
+
"example_allowed": "Agent proposes DNS changes with impact analysis, waits for explicit approval, stages changes in preview first",
|
|
598
|
+
"tags": [
|
|
599
|
+
"infrastructure",
|
|
600
|
+
"dns",
|
|
601
|
+
"operations"
|
|
602
|
+
],
|
|
603
|
+
"preset_groups": [
|
|
604
|
+
"developer-safety",
|
|
605
|
+
"full-suite"
|
|
606
|
+
],
|
|
607
|
+
"detection_pattern": "[server-side]"
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"id": "gov-005",
|
|
611
|
+
"name": "Permission and Role Modification Gate",
|
|
612
|
+
"description": "Require approval before adding, modifying, or removing user permissions, IAM roles, or access control entries",
|
|
613
|
+
"category": "action-governance",
|
|
614
|
+
"enforcement": "constitutional",
|
|
615
|
+
"gate_type": "pre-action",
|
|
616
|
+
"severity": "block",
|
|
617
|
+
"example_blocked": "Agent grants a new team member admin privileges on the production AWS account to simplify onboarding",
|
|
618
|
+
"example_allowed": "Agent proposes minimum-required role for new member, presents for approval, applies principle of least privilege",
|
|
619
|
+
"tags": [
|
|
620
|
+
"security",
|
|
621
|
+
"permissions",
|
|
622
|
+
"access-control"
|
|
623
|
+
],
|
|
624
|
+
"preset_groups": [
|
|
625
|
+
"developer-safety",
|
|
626
|
+
"full-suite"
|
|
627
|
+
],
|
|
628
|
+
"detection_pattern": "[server-side]"
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"id": "gov-006",
|
|
632
|
+
"name": "Account Deletion Block",
|
|
633
|
+
"description": "Block deletion of user accounts, organisation profiles, or workspace memberships without multi-step human approval",
|
|
634
|
+
"category": "action-governance",
|
|
635
|
+
"enforcement": "constitutional",
|
|
636
|
+
"gate_type": "pre-action",
|
|
637
|
+
"severity": "block",
|
|
638
|
+
"example_blocked": "Agent deletes a churned customer's account and all associated data, making refund impossible and violating retention policy",
|
|
639
|
+
"example_allowed": "Agent flags account for review, proposes data export and anonymisation, requires two-step human confirmation before any deletion",
|
|
640
|
+
"tags": [
|
|
641
|
+
"accounts",
|
|
642
|
+
"deletion",
|
|
643
|
+
"safety"
|
|
644
|
+
],
|
|
645
|
+
"preset_groups": [
|
|
646
|
+
"full-suite"
|
|
647
|
+
],
|
|
648
|
+
"detection_pattern": "[server-side]"
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
"id": "gov-007",
|
|
652
|
+
"name": "Configuration Change Review",
|
|
653
|
+
"description": "Flag all changes to system configuration files, environment variables, and infrastructure settings for review before applying",
|
|
654
|
+
"category": "action-governance",
|
|
655
|
+
"enforcement": "standard",
|
|
656
|
+
"gate_type": "pre-action",
|
|
657
|
+
"severity": "warn-then-block",
|
|
658
|
+
"example_blocked": "Agent modifies CORS configuration in nginx.conf on the production server to fix a local dev issue",
|
|
659
|
+
"example_allowed": "Agent presents config diff with impact analysis, applies to staging first, waits for confirmation before production",
|
|
660
|
+
"tags": [
|
|
661
|
+
"configuration",
|
|
662
|
+
"infrastructure",
|
|
663
|
+
"safety"
|
|
664
|
+
],
|
|
665
|
+
"preset_groups": [
|
|
666
|
+
"developer-safety",
|
|
667
|
+
"full-suite"
|
|
668
|
+
],
|
|
669
|
+
"detection_pattern": "[server-side]"
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"id": "gov-008",
|
|
673
|
+
"name": "Outreach Campaign Send Gate",
|
|
674
|
+
"description": "Block mass email, SMS, or social outreach campaign sends without explicit go/no-go approval — prevents brand-damaging accidental sends",
|
|
675
|
+
"category": "action-governance",
|
|
676
|
+
"enforcement": "constitutional",
|
|
677
|
+
"gate_type": "pre-action",
|
|
678
|
+
"severity": "block",
|
|
679
|
+
"example_blocked": "Agent activates a cold email campaign to 15,000 contacts without Kinan's go-ahead after preparing the sequence",
|
|
680
|
+
"example_allowed": "Agent prepares campaign, shows preview, estimated reach, and cost — waits for explicit 'ship it' before any send",
|
|
681
|
+
"tags": [
|
|
682
|
+
"outreach",
|
|
683
|
+
"email",
|
|
684
|
+
"safety",
|
|
685
|
+
"campaigns"
|
|
686
|
+
],
|
|
687
|
+
"preset_groups": [
|
|
688
|
+
"essential",
|
|
689
|
+
"full-suite"
|
|
690
|
+
],
|
|
691
|
+
"detection_pattern": "[server-side]"
|
|
692
|
+
},
|
|
693
|
+
{
|
|
694
|
+
"id": "gov-009",
|
|
695
|
+
"name": "Webhook and Integration Toggle Gate",
|
|
696
|
+
"description": "Require approval before enabling, disabling, or reconfiguring production webhooks and integrations",
|
|
697
|
+
"category": "action-governance",
|
|
698
|
+
"enforcement": "standard",
|
|
699
|
+
"gate_type": "pre-action",
|
|
700
|
+
"severity": "block",
|
|
701
|
+
"example_blocked": "Agent disables the Stripe payment webhook to debug an issue, silently dropping all payment confirmations for 2 hours",
|
|
702
|
+
"example_allowed": "Agent proposes webhook change in staging, shows impact on live payment flow, requires sign-off before production change",
|
|
703
|
+
"tags": [
|
|
704
|
+
"webhooks",
|
|
705
|
+
"integrations",
|
|
706
|
+
"operations"
|
|
707
|
+
],
|
|
708
|
+
"preset_groups": [
|
|
709
|
+
"developer-safety",
|
|
710
|
+
"full-suite"
|
|
711
|
+
],
|
|
712
|
+
"detection_pattern": "[server-side]"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"id": "gov-010",
|
|
716
|
+
"name": "Secret Rotation Coordination Gate",
|
|
717
|
+
"description": "Block uncoordinated API key or secret rotation that could silently break dependent services",
|
|
718
|
+
"category": "action-governance",
|
|
719
|
+
"enforcement": "standard",
|
|
720
|
+
"gate_type": "pre-action",
|
|
721
|
+
"severity": "block",
|
|
722
|
+
"example_blocked": "Agent rotates the Stripe API key but forgets to update 4 services that depend on it, causing payment failures",
|
|
723
|
+
"example_allowed": "Agent maps all services using the secret, stages the rotation, updates all dependents atomically, then confirms health before completing",
|
|
724
|
+
"tags": [
|
|
725
|
+
"security",
|
|
726
|
+
"secrets",
|
|
727
|
+
"rotation",
|
|
728
|
+
"operations"
|
|
729
|
+
],
|
|
730
|
+
"preset_groups": [
|
|
731
|
+
"developer-safety",
|
|
732
|
+
"full-suite"
|
|
733
|
+
],
|
|
734
|
+
"detection_pattern": "[server-side]"
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"id": "gov-011",
|
|
738
|
+
"name": "Merge and Pull Request Gate",
|
|
739
|
+
"description": "Block direct merges to protected branches (main, master, production) without a completed review process",
|
|
740
|
+
"category": "action-governance",
|
|
741
|
+
"enforcement": "standard",
|
|
742
|
+
"gate_type": "pre-action",
|
|
743
|
+
"severity": "block",
|
|
744
|
+
"example_blocked": "Agent force-merges a feature branch to main at 11pm to meet a deadline, skipping CI and review",
|
|
745
|
+
"example_allowed": "Agent opens PR, confirms all status checks pass, requests review, merges only after approval and green CI",
|
|
746
|
+
"tags": [
|
|
747
|
+
"git",
|
|
748
|
+
"code-review",
|
|
749
|
+
"deployment"
|
|
750
|
+
],
|
|
751
|
+
"preset_groups": [
|
|
752
|
+
"developer-safety",
|
|
753
|
+
"full-suite"
|
|
754
|
+
],
|
|
755
|
+
"detection_pattern": "[server-side]"
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"id": "gov-012",
|
|
759
|
+
"name": "Infrastructure Teardown Block",
|
|
760
|
+
"description": "Block destruction or deprovisioning of any live infrastructure resource without explicit confirmation and backup verification",
|
|
761
|
+
"category": "action-governance",
|
|
762
|
+
"enforcement": "constitutional",
|
|
763
|
+
"gate_type": "pre-action",
|
|
764
|
+
"severity": "block",
|
|
765
|
+
"example_blocked": "Agent runs terraform destroy on the production environment while attempting to recreate a staging environment",
|
|
766
|
+
"example_allowed": "Agent confirms backup exists, lists resources to be destroyed, receives explicit confirmation before any teardown command",
|
|
767
|
+
"tags": [
|
|
768
|
+
"infrastructure",
|
|
769
|
+
"destruction",
|
|
770
|
+
"safety"
|
|
771
|
+
],
|
|
772
|
+
"preset_groups": [
|
|
773
|
+
"essential",
|
|
774
|
+
"developer-safety",
|
|
775
|
+
"full-suite"
|
|
776
|
+
],
|
|
777
|
+
"detection_pattern": "[server-side]"
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"id": "qlt-001",
|
|
781
|
+
"name": "Check Existing Before Building",
|
|
782
|
+
"description": "Block agent from writing new code, scripts, or modules without first auditing what already exists in the codebase",
|
|
783
|
+
"category": "quality-gates",
|
|
784
|
+
"enforcement": "standard",
|
|
785
|
+
"gate_type": "pre-action",
|
|
786
|
+
"severity": "warn",
|
|
787
|
+
"example_blocked": "Agent writes a 200-line CSV parser from scratch when pandas is already in requirements.txt and a utility exists in utils/",
|
|
788
|
+
"example_allowed": "Agent searches codebase for existing utilities, finds relevant module, extends it rather than rebuilding from scratch",
|
|
789
|
+
"tags": [
|
|
790
|
+
"quality",
|
|
791
|
+
"codebase",
|
|
792
|
+
"reuse"
|
|
793
|
+
],
|
|
794
|
+
"preset_groups": [
|
|
795
|
+
"developer-safety",
|
|
796
|
+
"full-suite"
|
|
797
|
+
],
|
|
798
|
+
"detection_pattern": "[server-side]"
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
"id": "qlt-002",
|
|
802
|
+
"name": "Verify Before Claiming Done",
|
|
803
|
+
"description": "Block marking any task complete without running a verifiable check that confirms the output actually works",
|
|
804
|
+
"category": "quality-gates",
|
|
805
|
+
"enforcement": "standard",
|
|
806
|
+
"gate_type": "post-action",
|
|
807
|
+
"severity": "block",
|
|
808
|
+
"example_blocked": "Agent marks a live API endpoint as 'deployed and working' based on reading the deploy log without actually calling the endpoint",
|
|
809
|
+
"example_allowed": "Agent deploys, waits for propagation, makes live API call, confirms 200 response with correct payload before marking done",
|
|
810
|
+
"tags": [
|
|
811
|
+
"quality",
|
|
812
|
+
"verification",
|
|
813
|
+
"testing"
|
|
814
|
+
],
|
|
815
|
+
"preset_groups": [
|
|
816
|
+
"essential",
|
|
817
|
+
"developer-safety",
|
|
818
|
+
"full-suite"
|
|
819
|
+
],
|
|
820
|
+
"detection_pattern": "[server-side]"
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"id": "qlt-003",
|
|
824
|
+
"name": "Test Before Shipping",
|
|
825
|
+
"description": "Require passing test suite before any code reaches a production or staging environment",
|
|
826
|
+
"category": "quality-gates",
|
|
827
|
+
"enforcement": "standard",
|
|
828
|
+
"gate_type": "pre-action",
|
|
829
|
+
"severity": "block",
|
|
830
|
+
"example_blocked": "Agent deploys to Netlify after skipping tests because 'it's just a CSS change'",
|
|
831
|
+
"example_allowed": "Agent runs full test suite, confirms 0 failures, then proceeds with deployment",
|
|
832
|
+
"tags": [
|
|
833
|
+
"quality",
|
|
834
|
+
"testing",
|
|
835
|
+
"deployment"
|
|
836
|
+
],
|
|
837
|
+
"preset_groups": [
|
|
838
|
+
"developer-safety",
|
|
839
|
+
"full-suite"
|
|
840
|
+
],
|
|
841
|
+
"detection_pattern": "[server-side]"
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"id": "qlt-004",
|
|
845
|
+
"name": "Read Docs Before Coding",
|
|
846
|
+
"description": "Require consultation of official documentation or SDK before writing integration code for any external platform",
|
|
847
|
+
"category": "quality-gates",
|
|
848
|
+
"enforcement": "standard",
|
|
849
|
+
"gate_type": "pre-action",
|
|
850
|
+
"severity": "warn",
|
|
851
|
+
"example_blocked": "Agent writes a custom Stripe payment handler from scratch without reading the Stripe SDK documentation",
|
|
852
|
+
"example_allowed": "Agent reads Stripe SDK docs, installs official package, follows documented integration patterns",
|
|
853
|
+
"tags": [
|
|
854
|
+
"quality",
|
|
855
|
+
"documentation",
|
|
856
|
+
"sdk"
|
|
857
|
+
],
|
|
858
|
+
"preset_groups": [
|
|
859
|
+
"developer-safety",
|
|
860
|
+
"full-suite"
|
|
861
|
+
],
|
|
862
|
+
"detection_pattern": "[server-side]"
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"id": "qlt-005",
|
|
866
|
+
"name": "Backup Before Modifying",
|
|
867
|
+
"description": "Require a verifiable backup before any modification to production data, configuration files, or live system state",
|
|
868
|
+
"category": "quality-gates",
|
|
869
|
+
"enforcement": "standard",
|
|
870
|
+
"gate_type": "pre-action",
|
|
871
|
+
"severity": "block",
|
|
872
|
+
"example_blocked": "Agent edits nginx.conf directly without backing up the current working configuration",
|
|
873
|
+
"example_allowed": "Agent copies current config to nginx.conf.bak, makes changes, confirms backup exists before applying",
|
|
874
|
+
"tags": [
|
|
875
|
+
"quality",
|
|
876
|
+
"backup",
|
|
877
|
+
"safety"
|
|
878
|
+
],
|
|
879
|
+
"preset_groups": [
|
|
880
|
+
"developer-safety",
|
|
881
|
+
"full-suite"
|
|
882
|
+
],
|
|
883
|
+
"detection_pattern": "[server-side]"
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"id": "qlt-006",
|
|
887
|
+
"name": "Lint Before Committing",
|
|
888
|
+
"description": "Block git commits that contain linting errors, type errors, or failed pre-commit hook outputs",
|
|
889
|
+
"category": "quality-gates",
|
|
890
|
+
"enforcement": "standard",
|
|
891
|
+
"gate_type": "pre-action",
|
|
892
|
+
"severity": "block",
|
|
893
|
+
"example_blocked": "Agent commits with --no-verify to bypass a pre-commit hook that is catching a type error",
|
|
894
|
+
"example_allowed": "Agent runs linter, fixes all errors, confirms clean output before committing",
|
|
895
|
+
"tags": [
|
|
896
|
+
"quality",
|
|
897
|
+
"linting",
|
|
898
|
+
"git"
|
|
899
|
+
],
|
|
900
|
+
"preset_groups": [
|
|
901
|
+
"developer-safety",
|
|
902
|
+
"full-suite"
|
|
903
|
+
],
|
|
904
|
+
"detection_pattern": "[server-side]"
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"id": "qlt-007",
|
|
908
|
+
"name": "Measure Before Optimising",
|
|
909
|
+
"description": "Block premature optimisation efforts without first establishing a performance baseline and identifying the actual bottleneck",
|
|
910
|
+
"category": "quality-gates",
|
|
911
|
+
"enforcement": "standard",
|
|
912
|
+
"gate_type": "pre-action",
|
|
913
|
+
"severity": "warn",
|
|
914
|
+
"example_blocked": "Agent adds Redis caching to an API endpoint that handles 10 requests/day, adding complexity with no measurable benefit",
|
|
915
|
+
"example_allowed": "Agent profiles endpoint, identifies slow query consuming 800ms, adds targeted index, confirms improvement with before/after benchmark",
|
|
916
|
+
"tags": [
|
|
917
|
+
"quality",
|
|
918
|
+
"performance",
|
|
919
|
+
"optimization"
|
|
920
|
+
],
|
|
921
|
+
"preset_groups": [
|
|
922
|
+
"developer-safety",
|
|
923
|
+
"full-suite"
|
|
924
|
+
],
|
|
925
|
+
"detection_pattern": "[server-side]"
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"id": "qlt-008",
|
|
929
|
+
"name": "Dry Run Before Execute",
|
|
930
|
+
"description": "Run all destructive or bulk operations in dry-run mode first, with output reviewed before live execution",
|
|
931
|
+
"category": "quality-gates",
|
|
932
|
+
"enforcement": "standard",
|
|
933
|
+
"gate_type": "pre-action",
|
|
934
|
+
"severity": "block",
|
|
935
|
+
"example_blocked": "Agent runs a database cleanup script that deletes 50,000 rows without previewing which rows match the criteria",
|
|
936
|
+
"example_allowed": "Agent runs with --dry-run flag, presents row count and sample records, confirms before executing live deletion",
|
|
937
|
+
"tags": [
|
|
938
|
+
"quality",
|
|
939
|
+
"dry-run",
|
|
940
|
+
"safety"
|
|
941
|
+
],
|
|
942
|
+
"preset_groups": [
|
|
943
|
+
"developer-safety",
|
|
944
|
+
"full-suite"
|
|
945
|
+
],
|
|
946
|
+
"detection_pattern": "[server-side]"
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"id": "qlt-009",
|
|
950
|
+
"name": "Single Responsibility Enforcement",
|
|
951
|
+
"description": "Flag when a single agent task attempts to modify more than 3 independent modules or systems simultaneously",
|
|
952
|
+
"category": "quality-gates",
|
|
953
|
+
"enforcement": "standard",
|
|
954
|
+
"gate_type": "pre-action",
|
|
955
|
+
"severity": "warn",
|
|
956
|
+
"example_blocked": "Agent rewrites authentication, updates database schema, modifies frontend components, and changes nginx config all in one task",
|
|
957
|
+
"example_allowed": "Agent breaks task into discrete stories: (1) schema migration, (2) backend auth, (3) frontend UI — executed sequentially with verification between",
|
|
958
|
+
"tags": [
|
|
959
|
+
"quality",
|
|
960
|
+
"architecture",
|
|
961
|
+
"scope"
|
|
962
|
+
],
|
|
963
|
+
"preset_groups": [
|
|
964
|
+
"developer-safety",
|
|
965
|
+
"full-suite"
|
|
966
|
+
],
|
|
967
|
+
"detection_pattern": "[server-side]"
|
|
968
|
+
},
|
|
969
|
+
{
|
|
970
|
+
"id": "qlt-010",
|
|
971
|
+
"name": "Regression Test on Every Change",
|
|
972
|
+
"description": "Require full regression test suite to pass after any modification to shared utilities, core modules, or API contracts",
|
|
973
|
+
"category": "quality-gates",
|
|
974
|
+
"enforcement": "standard",
|
|
975
|
+
"gate_type": "post-action",
|
|
976
|
+
"severity": "block",
|
|
977
|
+
"example_blocked": "Agent changes the format of a shared date utility function without running tests that 14 other modules depend on",
|
|
978
|
+
"example_allowed": "Agent modifies shared utility, runs full test suite including all dependent module tests, confirms 0 regressions before merging",
|
|
979
|
+
"tags": [
|
|
980
|
+
"quality",
|
|
981
|
+
"testing",
|
|
982
|
+
"regression"
|
|
983
|
+
],
|
|
984
|
+
"preset_groups": [
|
|
985
|
+
"developer-safety",
|
|
986
|
+
"full-suite"
|
|
987
|
+
],
|
|
988
|
+
"detection_pattern": "[server-side]"
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"id": "qlt-011",
|
|
992
|
+
"name": "Documentation Update Gate",
|
|
993
|
+
"description": "Require corresponding documentation updates when adding new public APIs, configuration options, or user-facing features",
|
|
994
|
+
"category": "quality-gates",
|
|
995
|
+
"enforcement": "standard",
|
|
996
|
+
"gate_type": "post-action",
|
|
997
|
+
"severity": "warn",
|
|
998
|
+
"example_blocked": "Agent adds 3 new API endpoints but does not update the API documentation or OpenAPI spec",
|
|
999
|
+
"example_allowed": "Agent adds endpoint, updates OpenAPI spec, adds .env.example entry for new variable, updates README",
|
|
1000
|
+
"tags": [
|
|
1001
|
+
"quality",
|
|
1002
|
+
"documentation",
|
|
1003
|
+
"api"
|
|
1004
|
+
],
|
|
1005
|
+
"preset_groups": [
|
|
1006
|
+
"developer-safety",
|
|
1007
|
+
"full-suite"
|
|
1008
|
+
],
|
|
1009
|
+
"detection_pattern": "[server-side]"
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
"id": "qlt-012",
|
|
1013
|
+
"name": "Scope Creep Prevention",
|
|
1014
|
+
"description": "Alert when agent task scope expands beyond the original request without explicit approval for the expanded scope",
|
|
1015
|
+
"category": "quality-gates",
|
|
1016
|
+
"enforcement": "standard",
|
|
1017
|
+
"gate_type": "runtime-monitor",
|
|
1018
|
+
"severity": "warn",
|
|
1019
|
+
"example_blocked": "Agent asked to fix a button colour ends up refactoring the entire component library over 3 hours",
|
|
1020
|
+
"example_allowed": "Agent fixes button colour, notes that component library refactor could improve consistency, asks if that scope should be added as a separate task",
|
|
1021
|
+
"tags": [
|
|
1022
|
+
"quality",
|
|
1023
|
+
"scope",
|
|
1024
|
+
"project-management"
|
|
1025
|
+
],
|
|
1026
|
+
"preset_groups": [
|
|
1027
|
+
"developer-safety",
|
|
1028
|
+
"full-suite"
|
|
1029
|
+
],
|
|
1030
|
+
"detection_pattern": "[server-side]"
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
"id": "com-001",
|
|
1034
|
+
"name": "Email Review Gate",
|
|
1035
|
+
"description": "Block sending any external email drafted by an agent without human review of content, recipients, and subject line",
|
|
1036
|
+
"category": "communication-safety",
|
|
1037
|
+
"enforcement": "constitutional",
|
|
1038
|
+
"gate_type": "pre-action",
|
|
1039
|
+
"severity": "block",
|
|
1040
|
+
"example_blocked": "Agent sends a follow-up email to 40 prospects with incorrect pricing information attached",
|
|
1041
|
+
"example_allowed": "Agent drafts email, presents for review with recipient list and subject, sends only after explicit approval",
|
|
1042
|
+
"tags": [
|
|
1043
|
+
"email",
|
|
1044
|
+
"communication",
|
|
1045
|
+
"safety"
|
|
1046
|
+
],
|
|
1047
|
+
"preset_groups": [
|
|
1048
|
+
"essential",
|
|
1049
|
+
"full-suite"
|
|
1050
|
+
],
|
|
1051
|
+
"detection_pattern": "[server-side]"
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"id": "com-002",
|
|
1055
|
+
"name": "Social Media Approval Gate",
|
|
1056
|
+
"description": "Block posting, publishing, or scheduling any social media content without human review and approval",
|
|
1057
|
+
"category": "communication-safety",
|
|
1058
|
+
"enforcement": "constitutional",
|
|
1059
|
+
"gate_type": "pre-action",
|
|
1060
|
+
"severity": "block",
|
|
1061
|
+
"example_blocked": "Agent posts a draft meme to the company LinkedIn page without review, causing brand damage",
|
|
1062
|
+
"example_allowed": "Agent prepares post with caption, image, and scheduled time — presents for approval before any publication",
|
|
1063
|
+
"tags": [
|
|
1064
|
+
"social-media",
|
|
1065
|
+
"communication",
|
|
1066
|
+
"brand"
|
|
1067
|
+
],
|
|
1068
|
+
"preset_groups": [
|
|
1069
|
+
"essential",
|
|
1070
|
+
"full-suite"
|
|
1071
|
+
],
|
|
1072
|
+
"detection_pattern": "[server-side]"
|
|
1073
|
+
},
|
|
1074
|
+
{
|
|
1075
|
+
"id": "com-003",
|
|
1076
|
+
"name": "Message Sending Limits",
|
|
1077
|
+
"description": "Block bulk messaging (SMS, push, Slack) that exceeds a configured hourly or daily contact limit without approval",
|
|
1078
|
+
"category": "communication-safety",
|
|
1079
|
+
"enforcement": "standard",
|
|
1080
|
+
"gate_type": "pre-action",
|
|
1081
|
+
"severity": "block",
|
|
1082
|
+
"example_blocked": "Agent sends 5,000 SMS messages to a prospect list overnight, incurring $500 in Twilio costs and spam complaints",
|
|
1083
|
+
"example_allowed": "Agent respects hourly rate limits, presents batch plan for approval, sends in controlled waves with monitoring",
|
|
1084
|
+
"tags": [
|
|
1085
|
+
"messaging",
|
|
1086
|
+
"communication",
|
|
1087
|
+
"rate-limits"
|
|
1088
|
+
],
|
|
1089
|
+
"preset_groups": [
|
|
1090
|
+
"full-suite"
|
|
1091
|
+
],
|
|
1092
|
+
"detection_pattern": "[server-side]"
|
|
1093
|
+
},
|
|
1094
|
+
{
|
|
1095
|
+
"id": "com-004",
|
|
1096
|
+
"name": "Public Content Review",
|
|
1097
|
+
"description": "Require human review before publishing any content to a public website, documentation site, or public repository",
|
|
1098
|
+
"category": "communication-safety",
|
|
1099
|
+
"enforcement": "standard",
|
|
1100
|
+
"gate_type": "pre-action",
|
|
1101
|
+
"severity": "block",
|
|
1102
|
+
"example_blocked": "Agent publishes unfinished product documentation to the public docs site while still in draft state",
|
|
1103
|
+
"example_allowed": "Agent deploys to preview URL, presents content for review, publishes to production only after approval",
|
|
1104
|
+
"tags": [
|
|
1105
|
+
"content",
|
|
1106
|
+
"publishing",
|
|
1107
|
+
"brand"
|
|
1108
|
+
],
|
|
1109
|
+
"preset_groups": [
|
|
1110
|
+
"full-suite"
|
|
1111
|
+
],
|
|
1112
|
+
"detection_pattern": "[server-side]"
|
|
1113
|
+
},
|
|
1114
|
+
{
|
|
1115
|
+
"id": "com-005",
|
|
1116
|
+
"name": "Customer Communication Gate",
|
|
1117
|
+
"description": "Block any direct communication to customers, clients, or partners initiated by an agent without human sign-off",
|
|
1118
|
+
"category": "communication-safety",
|
|
1119
|
+
"enforcement": "constitutional",
|
|
1120
|
+
"gate_type": "pre-action",
|
|
1121
|
+
"severity": "block",
|
|
1122
|
+
"example_blocked": "Agent sends a billing dispute response email to a customer with incorrect account details",
|
|
1123
|
+
"example_allowed": "Agent drafts response, tags for human review in CRM, sends only after team member approves",
|
|
1124
|
+
"tags": [
|
|
1125
|
+
"customer",
|
|
1126
|
+
"communication",
|
|
1127
|
+
"crm"
|
|
1128
|
+
],
|
|
1129
|
+
"preset_groups": [
|
|
1130
|
+
"essential",
|
|
1131
|
+
"full-suite"
|
|
1132
|
+
],
|
|
1133
|
+
"detection_pattern": "[server-side]"
|
|
1134
|
+
},
|
|
1135
|
+
{
|
|
1136
|
+
"id": "com-006",
|
|
1137
|
+
"name": "Press Release and PR Content Gate",
|
|
1138
|
+
"description": "Block publishing or distributing any press release, media statement, or investor communication without executive approval",
|
|
1139
|
+
"category": "communication-safety",
|
|
1140
|
+
"enforcement": "constitutional",
|
|
1141
|
+
"gate_type": "pre-action",
|
|
1142
|
+
"severity": "block",
|
|
1143
|
+
"example_blocked": "Agent distributes a press release with incorrect acquisition details to 500 journalists",
|
|
1144
|
+
"example_allowed": "Agent drafts release, routes to legal and executive review, distributes only after sign-off",
|
|
1145
|
+
"tags": [
|
|
1146
|
+
"pr",
|
|
1147
|
+
"media",
|
|
1148
|
+
"communication"
|
|
1149
|
+
],
|
|
1150
|
+
"preset_groups": [
|
|
1151
|
+
"full-suite"
|
|
1152
|
+
],
|
|
1153
|
+
"detection_pattern": "[server-side]"
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
"id": "com-007",
|
|
1157
|
+
"name": "Legal Document Send Gate",
|
|
1158
|
+
"description": "Block sending contracts, NDAs, terms of service, or any legally binding documents without qualified human review",
|
|
1159
|
+
"category": "communication-safety",
|
|
1160
|
+
"enforcement": "constitutional",
|
|
1161
|
+
"gate_type": "pre-action",
|
|
1162
|
+
"severity": "block",
|
|
1163
|
+
"example_blocked": "Agent sends an NDA with incorrect jurisdiction and missing indemnity clauses to a potential partner",
|
|
1164
|
+
"example_allowed": "Agent generates contract draft from approved template, routes for legal review, sends via DocuSign only after approval",
|
|
1165
|
+
"tags": [
|
|
1166
|
+
"legal",
|
|
1167
|
+
"contracts",
|
|
1168
|
+
"communication"
|
|
1169
|
+
],
|
|
1170
|
+
"preset_groups": [
|
|
1171
|
+
"full-suite"
|
|
1172
|
+
],
|
|
1173
|
+
"detection_pattern": "[server-side]"
|
|
1174
|
+
},
|
|
1175
|
+
{
|
|
1176
|
+
"id": "com-008",
|
|
1177
|
+
"name": "Notification Management Rate Limit",
|
|
1178
|
+
"description": "Enforce rate limiting on agent-triggered notifications to prevent notification fatigue and unintended spam",
|
|
1179
|
+
"category": "communication-safety",
|
|
1180
|
+
"enforcement": "standard",
|
|
1181
|
+
"gate_type": "runtime-monitor",
|
|
1182
|
+
"severity": "warn-then-block",
|
|
1183
|
+
"example_blocked": "Agent sends 40 Slack messages in 10 minutes to notify the team of individual task completions",
|
|
1184
|
+
"example_allowed": "Agent batches notifications into digest format, respects per-channel rate limits, sends summary instead of individual alerts",
|
|
1185
|
+
"tags": [
|
|
1186
|
+
"notifications",
|
|
1187
|
+
"rate-limits",
|
|
1188
|
+
"communication"
|
|
1189
|
+
],
|
|
1190
|
+
"preset_groups": [
|
|
1191
|
+
"full-suite"
|
|
1192
|
+
],
|
|
1193
|
+
"detection_pattern": "[server-side]"
|
|
1194
|
+
},
|
|
1195
|
+
{
|
|
1196
|
+
"id": "com-009",
|
|
1197
|
+
"name": "Outreach Approval Before Launch",
|
|
1198
|
+
"description": "Require explicit go/no-go approval before activating any cold outreach sequence or automated follow-up campaign",
|
|
1199
|
+
"category": "communication-safety",
|
|
1200
|
+
"enforcement": "constitutional",
|
|
1201
|
+
"gate_type": "pre-action",
|
|
1202
|
+
"severity": "block",
|
|
1203
|
+
"example_blocked": "Agent activates a 7-step cold email sequence to 2,000 contacts after completing sequence setup",
|
|
1204
|
+
"example_allowed": "Agent presents sequence, sample email, prospect count, and projected metrics, waits for explicit 'launch it' before activation",
|
|
1205
|
+
"tags": [
|
|
1206
|
+
"outreach",
|
|
1207
|
+
"cold-email",
|
|
1208
|
+
"campaigns"
|
|
1209
|
+
],
|
|
1210
|
+
"preset_groups": [
|
|
1211
|
+
"essential",
|
|
1212
|
+
"full-suite"
|
|
1213
|
+
],
|
|
1214
|
+
"detection_pattern": "[server-side]"
|
|
1215
|
+
},
|
|
1216
|
+
{
|
|
1217
|
+
"id": "com-010",
|
|
1218
|
+
"name": "Review Response Gate",
|
|
1219
|
+
"description": "Require human approval before posting any response to public reviews (Google, Trustpilot, App Store, etc.)",
|
|
1220
|
+
"category": "communication-safety",
|
|
1221
|
+
"enforcement": "standard",
|
|
1222
|
+
"gate_type": "pre-action",
|
|
1223
|
+
"severity": "block",
|
|
1224
|
+
"example_blocked": "Agent posts a defensive response to a 1-star review that inflames the situation and attracts media attention",
|
|
1225
|
+
"example_allowed": "Agent drafts response, presents to human for tone review, publishes only after approval",
|
|
1226
|
+
"tags": [
|
|
1227
|
+
"reviews",
|
|
1228
|
+
"reputation",
|
|
1229
|
+
"communication"
|
|
1230
|
+
],
|
|
1231
|
+
"preset_groups": [
|
|
1232
|
+
"full-suite"
|
|
1233
|
+
],
|
|
1234
|
+
"detection_pattern": "[server-side]"
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
"id": "com-011",
|
|
1238
|
+
"name": "Impersonation Block",
|
|
1239
|
+
"description": "Block agent from sending communications that could be interpreted as being from a specific named human without disclosure",
|
|
1240
|
+
"category": "communication-safety",
|
|
1241
|
+
"enforcement": "constitutional",
|
|
1242
|
+
"gate_type": "pre-action",
|
|
1243
|
+
"severity": "block",
|
|
1244
|
+
"example_blocked": "Agent sends cold emails as 'John Smith, CEO' without John's knowledge or a disclosure that the message was AI-assisted",
|
|
1245
|
+
"example_allowed": "Agent sends as a named AI assistant, or human reviews and sends from their own account with AI-assisted drafting clearly noted",
|
|
1246
|
+
"tags": [
|
|
1247
|
+
"impersonation",
|
|
1248
|
+
"ethics",
|
|
1249
|
+
"communication"
|
|
1250
|
+
],
|
|
1251
|
+
"preset_groups": [
|
|
1252
|
+
"full-suite"
|
|
1253
|
+
],
|
|
1254
|
+
"detection_pattern": "[server-side]"
|
|
1255
|
+
},
|
|
1256
|
+
{
|
|
1257
|
+
"id": "com-012",
|
|
1258
|
+
"name": "Internal Broadcast Approval",
|
|
1259
|
+
"description": "Require approval before sending organisation-wide internal communications (all-hands emails, company Slack announcements)",
|
|
1260
|
+
"category": "communication-safety",
|
|
1261
|
+
"enforcement": "standard",
|
|
1262
|
+
"gate_type": "pre-action",
|
|
1263
|
+
"severity": "block",
|
|
1264
|
+
"example_blocked": "Agent sends a company-wide Slack message announcing a product feature that was not yet approved for public release",
|
|
1265
|
+
"example_allowed": "Agent drafts announcement, routes to team lead for review, posts only after explicit approval",
|
|
1266
|
+
"tags": [
|
|
1267
|
+
"internal",
|
|
1268
|
+
"announcements",
|
|
1269
|
+
"communication"
|
|
1270
|
+
],
|
|
1271
|
+
"preset_groups": [
|
|
1272
|
+
"full-suite"
|
|
1273
|
+
],
|
|
1274
|
+
"detection_pattern": "[server-side]"
|
|
1275
|
+
},
|
|
1276
|
+
{
|
|
1277
|
+
"id": "know-001",
|
|
1278
|
+
"name": "Knowledge Base First",
|
|
1279
|
+
"description": "Require agent to check internal knowledge base before performing external web searches or API lookups for factual questions",
|
|
1280
|
+
"category": "knowledge-protocol",
|
|
1281
|
+
"enforcement": "standard",
|
|
1282
|
+
"gate_type": "pre-action",
|
|
1283
|
+
"severity": "warn",
|
|
1284
|
+
"example_blocked": "Agent searches the web for the organisation's own pricing structure instead of reading the internal pricing document",
|
|
1285
|
+
"example_allowed": "Agent checks internal KB first, finds pricing document, uses that data — only goes external for information that is genuinely absent internally",
|
|
1286
|
+
"tags": [
|
|
1287
|
+
"knowledge",
|
|
1288
|
+
"efficiency",
|
|
1289
|
+
"research"
|
|
1290
|
+
],
|
|
1291
|
+
"preset_groups": [
|
|
1292
|
+
"developer-safety",
|
|
1293
|
+
"full-suite"
|
|
1294
|
+
],
|
|
1295
|
+
"detection_pattern": "[server-side]"
|
|
1296
|
+
},
|
|
1297
|
+
{
|
|
1298
|
+
"id": "know-002",
|
|
1299
|
+
"name": "Source Attribution Required",
|
|
1300
|
+
"description": "Block agent from presenting research findings, statistics, or factual claims without citing the source document or URL",
|
|
1301
|
+
"category": "knowledge-protocol",
|
|
1302
|
+
"enforcement": "standard",
|
|
1303
|
+
"gate_type": "post-action",
|
|
1304
|
+
"severity": "warn",
|
|
1305
|
+
"example_blocked": "Agent states '$51.3B AI cybersecurity market' without citing the market research report it came from",
|
|
1306
|
+
"example_allowed": "Agent cites: 'According to Gemini Deep Research 2026-04-06: $51.3B AI cybersecurity market (source: 36-source analysis)'",
|
|
1307
|
+
"tags": [
|
|
1308
|
+
"knowledge",
|
|
1309
|
+
"attribution",
|
|
1310
|
+
"research"
|
|
1311
|
+
],
|
|
1312
|
+
"preset_groups": [
|
|
1313
|
+
"full-suite"
|
|
1314
|
+
],
|
|
1315
|
+
"detection_pattern": "[server-side]"
|
|
1316
|
+
},
|
|
1317
|
+
{
|
|
1318
|
+
"id": "know-003",
|
|
1319
|
+
"name": "Fact Verification Gate",
|
|
1320
|
+
"description": "Block agent from presenting generated content as established fact without a verification step against authoritative sources",
|
|
1321
|
+
"category": "knowledge-protocol",
|
|
1322
|
+
"enforcement": "standard",
|
|
1323
|
+
"gate_type": "post-action",
|
|
1324
|
+
"severity": "warn",
|
|
1325
|
+
"example_blocked": "Agent states a competitor's pricing as definitive fact based solely on LLM training data, without checking the competitor's live website",
|
|
1326
|
+
"example_allowed": "Agent notes claim is from training data, cross-references against competitor's current pricing page, confirms accuracy before reporting",
|
|
1327
|
+
"tags": [
|
|
1328
|
+
"knowledge",
|
|
1329
|
+
"verification",
|
|
1330
|
+
"facts"
|
|
1331
|
+
],
|
|
1332
|
+
"preset_groups": [
|
|
1333
|
+
"full-suite"
|
|
1334
|
+
],
|
|
1335
|
+
"detection_pattern": "[server-side]"
|
|
1336
|
+
},
|
|
1337
|
+
{
|
|
1338
|
+
"id": "know-004",
|
|
1339
|
+
"name": "Wiki-First Protocol",
|
|
1340
|
+
"description": "Require agent to query the compiled knowledge wiki or index before falling back to raw document search or external queries",
|
|
1341
|
+
"category": "knowledge-protocol",
|
|
1342
|
+
"enforcement": "standard",
|
|
1343
|
+
"gate_type": "pre-action",
|
|
1344
|
+
"severity": "warn",
|
|
1345
|
+
"example_blocked": "Agent searches raw JSONL files for entity information when wiki/index.md exists with compiled cross-linked pages",
|
|
1346
|
+
"example_allowed": "Agent reads wiki/index.md, finds relevant page, follows [[backlinks]], only falls back to raw search when wiki lookup returns nothing",
|
|
1347
|
+
"tags": [
|
|
1348
|
+
"knowledge",
|
|
1349
|
+
"wiki",
|
|
1350
|
+
"efficiency"
|
|
1351
|
+
],
|
|
1352
|
+
"preset_groups": [
|
|
1353
|
+
"developer-safety",
|
|
1354
|
+
"full-suite"
|
|
1355
|
+
],
|
|
1356
|
+
"detection_pattern": "[server-side]"
|
|
1357
|
+
},
|
|
1358
|
+
{
|
|
1359
|
+
"id": "know-005",
|
|
1360
|
+
"name": "Research Before Deciding",
|
|
1361
|
+
"description": "Require a documented research step before recommending a technical architecture, vendor, or strategic approach",
|
|
1362
|
+
"category": "knowledge-protocol",
|
|
1363
|
+
"enforcement": "standard",
|
|
1364
|
+
"gate_type": "pre-action",
|
|
1365
|
+
"severity": "warn",
|
|
1366
|
+
"example_blocked": "Agent recommends a specific database without researching alternatives suitable for the workload",
|
|
1367
|
+
"example_allowed": "Agent produces a 3-option comparison (PostgreSQL vs MongoDB vs DynamoDB), shows decision criteria, then recommends with justification",
|
|
1368
|
+
"tags": [
|
|
1369
|
+
"knowledge",
|
|
1370
|
+
"research",
|
|
1371
|
+
"decision-making"
|
|
1372
|
+
],
|
|
1373
|
+
"preset_groups": [
|
|
1374
|
+
"developer-safety",
|
|
1375
|
+
"full-suite"
|
|
1376
|
+
],
|
|
1377
|
+
"detection_pattern": "[server-side]"
|
|
1378
|
+
},
|
|
1379
|
+
{
|
|
1380
|
+
"id": "know-006",
|
|
1381
|
+
"name": "Context Verification Before Acting",
|
|
1382
|
+
"description": "Block agent from acting on assumed context — require explicit confirmation of key assumptions before starting complex tasks",
|
|
1383
|
+
"category": "knowledge-protocol",
|
|
1384
|
+
"enforcement": "standard",
|
|
1385
|
+
"gate_type": "pre-action",
|
|
1386
|
+
"severity": "warn",
|
|
1387
|
+
"example_blocked": "Agent interprets 'clean up the database' as 'delete all records older than 30 days' and executes without confirming that interpretation",
|
|
1388
|
+
"example_allowed": "Agent surfaces interpretation: 'I understand this as archiving records >30 days old, not permanent deletion. Confirm?' before proceeding",
|
|
1389
|
+
"tags": [
|
|
1390
|
+
"knowledge",
|
|
1391
|
+
"clarification",
|
|
1392
|
+
"safety"
|
|
1393
|
+
],
|
|
1394
|
+
"preset_groups": [
|
|
1395
|
+
"essential",
|
|
1396
|
+
"full-suite"
|
|
1397
|
+
],
|
|
1398
|
+
"detection_pattern": "[server-side]"
|
|
1399
|
+
},
|
|
1400
|
+
{
|
|
1401
|
+
"id": "know-007",
|
|
1402
|
+
"name": "Prior Implementation Check",
|
|
1403
|
+
"description": "Block starting any new feature implementation without searching for prior attempts, similar implementations, or related code in the codebase",
|
|
1404
|
+
"category": "knowledge-protocol",
|
|
1405
|
+
"enforcement": "standard",
|
|
1406
|
+
"gate_type": "pre-action",
|
|
1407
|
+
"severity": "warn",
|
|
1408
|
+
"example_blocked": "Agent builds a webhook handler from scratch that is 90% identical to one already implemented in another module",
|
|
1409
|
+
"example_allowed": "Agent searches codebase for existing webhook handling patterns, finds similar implementation, adapts it rather than rebuilding",
|
|
1410
|
+
"tags": [
|
|
1411
|
+
"knowledge",
|
|
1412
|
+
"codebase",
|
|
1413
|
+
"reuse"
|
|
1414
|
+
],
|
|
1415
|
+
"preset_groups": [
|
|
1416
|
+
"developer-safety",
|
|
1417
|
+
"full-suite"
|
|
1418
|
+
],
|
|
1419
|
+
"detection_pattern": "[server-side]"
|
|
1420
|
+
},
|
|
1421
|
+
{
|
|
1422
|
+
"id": "know-008",
|
|
1423
|
+
"name": "Decision Logging Requirement",
|
|
1424
|
+
"description": "Require agent to log the reasoning behind significant architectural or strategic decisions to a persistent record",
|
|
1425
|
+
"category": "knowledge-protocol",
|
|
1426
|
+
"enforcement": "standard",
|
|
1427
|
+
"gate_type": "post-action",
|
|
1428
|
+
"severity": "warn",
|
|
1429
|
+
"example_blocked": "Agent switches the project from REST to GraphQL without documenting why, leaving the team with no rationale for the change",
|
|
1430
|
+
"example_allowed": "Agent writes brief ADR: 'Chose GraphQL over REST because [reasons]. Alternatives considered: [list]. Reversibility: [assessment]'",
|
|
1431
|
+
"tags": [
|
|
1432
|
+
"knowledge",
|
|
1433
|
+
"decisions",
|
|
1434
|
+
"documentation"
|
|
1435
|
+
],
|
|
1436
|
+
"preset_groups": [
|
|
1437
|
+
"developer-safety",
|
|
1438
|
+
"full-suite"
|
|
1439
|
+
],
|
|
1440
|
+
"detection_pattern": "[server-side]"
|
|
1441
|
+
},
|
|
1442
|
+
{
|
|
1443
|
+
"id": "know-009",
|
|
1444
|
+
"name": "No Fabricated Statistics",
|
|
1445
|
+
"description": "Block agent from presenting invented numbers, market sizes, or performance statistics as factual claims",
|
|
1446
|
+
"category": "knowledge-protocol",
|
|
1447
|
+
"enforcement": "constitutional",
|
|
1448
|
+
"gate_type": "post-action",
|
|
1449
|
+
"severity": "block",
|
|
1450
|
+
"example_blocked": "Agent writes '73% of users prefer AI receptionists' in a sales document without any survey or research backing",
|
|
1451
|
+
"example_allowed": "Agent presents actual research data with source citation, or clearly labels projections as 'estimated' or 'modelled'",
|
|
1452
|
+
"tags": [
|
|
1453
|
+
"knowledge",
|
|
1454
|
+
"statistics",
|
|
1455
|
+
"integrity"
|
|
1456
|
+
],
|
|
1457
|
+
"preset_groups": [
|
|
1458
|
+
"full-suite"
|
|
1459
|
+
],
|
|
1460
|
+
"detection_pattern": "[server-side]"
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"id": "know-010",
|
|
1464
|
+
"name": "Title vs Content Verification",
|
|
1465
|
+
"description": "Require agent to verify claims against source content, not just document titles or headlines — titles are often misleading",
|
|
1466
|
+
"category": "knowledge-protocol",
|
|
1467
|
+
"enforcement": "standard",
|
|
1468
|
+
"gate_type": "post-action",
|
|
1469
|
+
"severity": "warn",
|
|
1470
|
+
"example_blocked": "Agent reports 'competitor has real-time AI video analysis' based on a headline, without reading the article which reveals it is a 2027 roadmap item",
|
|
1471
|
+
"example_allowed": "Agent reads full source content before extracting claims, tags findings as [headline-only] vs [verified-in-body]",
|
|
1472
|
+
"tags": [
|
|
1473
|
+
"knowledge",
|
|
1474
|
+
"verification",
|
|
1475
|
+
"research"
|
|
1476
|
+
],
|
|
1477
|
+
"preset_groups": [
|
|
1478
|
+
"full-suite"
|
|
1479
|
+
],
|
|
1480
|
+
"detection_pattern": "[server-side]"
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
"id": "know-011",
|
|
1484
|
+
"name": "Knowledge Staleness Alert",
|
|
1485
|
+
"description": "Alert when agent uses knowledge or cached data older than a configured freshness threshold for time-sensitive decisions",
|
|
1486
|
+
"category": "knowledge-protocol",
|
|
1487
|
+
"enforcement": "standard",
|
|
1488
|
+
"gate_type": "runtime-monitor",
|
|
1489
|
+
"severity": "warn",
|
|
1490
|
+
"example_blocked": "Agent uses 8-month-old competitor pricing data to draft a new pricing page without noting the data may be outdated",
|
|
1491
|
+
"example_allowed": "Agent flags: 'Competitor pricing data is from 2025-08. Recommend refreshing before publishing. Proceed with disclaimer?'",
|
|
1492
|
+
"tags": [
|
|
1493
|
+
"knowledge",
|
|
1494
|
+
"freshness",
|
|
1495
|
+
"research"
|
|
1496
|
+
],
|
|
1497
|
+
"preset_groups": [
|
|
1498
|
+
"full-suite"
|
|
1499
|
+
],
|
|
1500
|
+
"detection_pattern": "[server-side]"
|
|
1501
|
+
},
|
|
1502
|
+
{
|
|
1503
|
+
"id": "know-012",
|
|
1504
|
+
"name": "Extraction Fidelity Standard",
|
|
1505
|
+
"description": "Block lossy knowledge extraction that summarises verbatim scripts, templates, or pricing into vague descriptions",
|
|
1506
|
+
"category": "knowledge-protocol",
|
|
1507
|
+
"enforcement": "standard",
|
|
1508
|
+
"gate_type": "post-action",
|
|
1509
|
+
"severity": "warn",
|
|
1510
|
+
"example_blocked": "Agent extracts a 500-word sales call script as 'agent uses consultative selling method' — all actionable detail lost",
|
|
1511
|
+
"example_allowed": "Agent preserves verbatim script with [verbatim] tag, source attribution, and full tactical detail intact",
|
|
1512
|
+
"tags": [
|
|
1513
|
+
"knowledge",
|
|
1514
|
+
"extraction",
|
|
1515
|
+
"fidelity"
|
|
1516
|
+
],
|
|
1517
|
+
"preset_groups": [
|
|
1518
|
+
"developer-safety",
|
|
1519
|
+
"full-suite"
|
|
1520
|
+
],
|
|
1521
|
+
"detection_pattern": "[server-side]"
|
|
1522
|
+
},
|
|
1523
|
+
{
|
|
1524
|
+
"id": "res-001",
|
|
1525
|
+
"name": "API Rate Limit Compliance",
|
|
1526
|
+
"description": "Block agent from exceeding documented rate limits for any third-party API, with automatic back-off before retry",
|
|
1527
|
+
"category": "resource-protection",
|
|
1528
|
+
"enforcement": "standard",
|
|
1529
|
+
"gate_type": "runtime-monitor",
|
|
1530
|
+
"severity": "block",
|
|
1531
|
+
"example_blocked": "Agent fires 200 parallel Gemini requests per minute against a 60 RPM free tier limit, causing 429 storms and API key suspension",
|
|
1532
|
+
"example_allowed": "Agent tracks request count, implements exponential back-off on 429, respects per-tier limits with margin",
|
|
1533
|
+
"tags": [
|
|
1534
|
+
"api",
|
|
1535
|
+
"rate-limits",
|
|
1536
|
+
"reliability"
|
|
1537
|
+
],
|
|
1538
|
+
"preset_groups": [
|
|
1539
|
+
"developer-safety",
|
|
1540
|
+
"resource-protection",
|
|
1541
|
+
"full-suite"
|
|
1542
|
+
],
|
|
1543
|
+
"detection_pattern": "[server-side]"
|
|
1544
|
+
},
|
|
1545
|
+
{
|
|
1546
|
+
"id": "res-002",
|
|
1547
|
+
"name": "Token Budget Enforcement",
|
|
1548
|
+
"description": "Alert and halt when LLM token usage in a session exceeds the configured budget ceiling",
|
|
1549
|
+
"category": "resource-protection",
|
|
1550
|
+
"enforcement": "standard",
|
|
1551
|
+
"gate_type": "runtime-monitor",
|
|
1552
|
+
"severity": "warn-then-block",
|
|
1553
|
+
"example_blocked": "Agent loads entire codebase (800K tokens) into context for a minor bug fix that required reading 2 files",
|
|
1554
|
+
"example_allowed": "Agent reads only relevant files, tracks running token count, switches to selective reading when approaching budget",
|
|
1555
|
+
"tags": [
|
|
1556
|
+
"tokens",
|
|
1557
|
+
"llm",
|
|
1558
|
+
"costs",
|
|
1559
|
+
"budget"
|
|
1560
|
+
],
|
|
1561
|
+
"preset_groups": [
|
|
1562
|
+
"developer-safety",
|
|
1563
|
+
"resource-protection",
|
|
1564
|
+
"full-suite"
|
|
1565
|
+
],
|
|
1566
|
+
"detection_pattern": "[server-side]"
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
"id": "res-003",
|
|
1570
|
+
"name": "Concurrent Request Limit",
|
|
1571
|
+
"description": "Block spawning more concurrent agent tasks, API calls, or workers than the configured concurrency ceiling",
|
|
1572
|
+
"category": "resource-protection",
|
|
1573
|
+
"enforcement": "standard",
|
|
1574
|
+
"gate_type": "pre-action",
|
|
1575
|
+
"severity": "block",
|
|
1576
|
+
"example_blocked": "Agent spawns 200 parallel research workers to maximise speed, overwhelming the API and incurring $800 in charges",
|
|
1577
|
+
"example_allowed": "Agent caps at configured concurrency limit (e.g. 10 workers), queues remaining tasks, scales up only with explicit approval",
|
|
1578
|
+
"tags": [
|
|
1579
|
+
"concurrency",
|
|
1580
|
+
"workers",
|
|
1581
|
+
"api"
|
|
1582
|
+
],
|
|
1583
|
+
"preset_groups": [
|
|
1584
|
+
"developer-safety",
|
|
1585
|
+
"resource-protection",
|
|
1586
|
+
"full-suite"
|
|
1587
|
+
],
|
|
1588
|
+
"detection_pattern": "[server-side]"
|
|
1589
|
+
},
|
|
1590
|
+
{
|
|
1591
|
+
"id": "res-004",
|
|
1592
|
+
"name": "Storage Quota Enforcement",
|
|
1593
|
+
"description": "Alert when agent-generated data, logs, or cache approaches the configured storage limit for any service or drive",
|
|
1594
|
+
"category": "resource-protection",
|
|
1595
|
+
"enforcement": "standard",
|
|
1596
|
+
"gate_type": "runtime-monitor",
|
|
1597
|
+
"severity": "warn",
|
|
1598
|
+
"example_blocked": "Agent generates 200GB of log files on C: drive during a long-running process, crashing the Windows system",
|
|
1599
|
+
"example_allowed": "Agent monitors disk usage, rotates logs when approaching threshold, alerts before critical storage levels",
|
|
1600
|
+
"tags": [
|
|
1601
|
+
"storage",
|
|
1602
|
+
"disk",
|
|
1603
|
+
"monitoring"
|
|
1604
|
+
],
|
|
1605
|
+
"preset_groups": [
|
|
1606
|
+
"developer-safety",
|
|
1607
|
+
"resource-protection",
|
|
1608
|
+
"full-suite"
|
|
1609
|
+
],
|
|
1610
|
+
"detection_pattern": "[server-side]"
|
|
1611
|
+
},
|
|
1612
|
+
{
|
|
1613
|
+
"id": "res-005",
|
|
1614
|
+
"name": "Compute Budget Cap",
|
|
1615
|
+
"description": "Block agent from initiating compute-intensive operations (training runs, batch processing) without a resource and cost estimate first",
|
|
1616
|
+
"category": "resource-protection",
|
|
1617
|
+
"enforcement": "standard",
|
|
1618
|
+
"gate_type": "pre-action",
|
|
1619
|
+
"severity": "block",
|
|
1620
|
+
"example_blocked": "Agent kicks off a model fine-tuning job on 10M records without estimating GPU time or cost",
|
|
1621
|
+
"example_allowed": "Agent estimates compute requirements, presents time and cost estimate, waits for approval before job submission",
|
|
1622
|
+
"tags": [
|
|
1623
|
+
"compute",
|
|
1624
|
+
"ml",
|
|
1625
|
+
"budget"
|
|
1626
|
+
],
|
|
1627
|
+
"preset_groups": [
|
|
1628
|
+
"resource-protection",
|
|
1629
|
+
"full-suite"
|
|
1630
|
+
],
|
|
1631
|
+
"detection_pattern": "[server-side]"
|
|
1632
|
+
},
|
|
1633
|
+
{
|
|
1634
|
+
"id": "res-006",
|
|
1635
|
+
"name": "Bandwidth Awareness Gate",
|
|
1636
|
+
"description": "Flag operations that would consume excessive network bandwidth (large file transfers, bulk downloads) before execution",
|
|
1637
|
+
"category": "resource-protection",
|
|
1638
|
+
"enforcement": "standard",
|
|
1639
|
+
"gate_type": "pre-action",
|
|
1640
|
+
"severity": "warn",
|
|
1641
|
+
"example_blocked": "Agent clones a 50GB dataset repository to a laptop on a metered connection without checking available bandwidth",
|
|
1642
|
+
"example_allowed": "Agent checks dataset size, confirms connection type, presents transfer estimate, waits for confirmation before initiating",
|
|
1643
|
+
"tags": [
|
|
1644
|
+
"bandwidth",
|
|
1645
|
+
"network",
|
|
1646
|
+
"data"
|
|
1647
|
+
],
|
|
1648
|
+
"preset_groups": [
|
|
1649
|
+
"resource-protection",
|
|
1650
|
+
"full-suite"
|
|
1651
|
+
],
|
|
1652
|
+
"detection_pattern": "[server-side]"
|
|
1653
|
+
},
|
|
1654
|
+
{
|
|
1655
|
+
"id": "res-007",
|
|
1656
|
+
"name": "Cache Expiry Enforcement",
|
|
1657
|
+
"description": "Block agent from serving stale cached data beyond the configured TTL for time-sensitive operations",
|
|
1658
|
+
"category": "resource-protection",
|
|
1659
|
+
"enforcement": "standard",
|
|
1660
|
+
"gate_type": "runtime-monitor",
|
|
1661
|
+
"severity": "warn",
|
|
1662
|
+
"example_blocked": "Agent uses a 48-hour cached exchange rate for a financial calculation when the TTL is configured to 1 hour",
|
|
1663
|
+
"example_allowed": "Agent checks cache age before use, refreshes if expired, serves fresh data for time-sensitive operations",
|
|
1664
|
+
"tags": [
|
|
1665
|
+
"cache",
|
|
1666
|
+
"ttl",
|
|
1667
|
+
"reliability"
|
|
1668
|
+
],
|
|
1669
|
+
"preset_groups": [
|
|
1670
|
+
"developer-safety",
|
|
1671
|
+
"resource-protection",
|
|
1672
|
+
"full-suite"
|
|
1673
|
+
],
|
|
1674
|
+
"detection_pattern": "[server-side]"
|
|
1675
|
+
},
|
|
1676
|
+
{
|
|
1677
|
+
"id": "res-008",
|
|
1678
|
+
"name": "Memory Leak Detection",
|
|
1679
|
+
"description": "Alert when agent processes show continuously growing memory consumption without natural release",
|
|
1680
|
+
"category": "resource-protection",
|
|
1681
|
+
"enforcement": "standard",
|
|
1682
|
+
"gate_type": "runtime-monitor",
|
|
1683
|
+
"severity": "warn",
|
|
1684
|
+
"example_blocked": "Agent accumulates conversation history in memory across thousands of sessions without pagination, eventually causing OOM crash",
|
|
1685
|
+
"example_allowed": "Agent implements sliding window for history, monitors process memory, triggers garbage collection when threshold approached",
|
|
1686
|
+
"tags": [
|
|
1687
|
+
"memory",
|
|
1688
|
+
"performance",
|
|
1689
|
+
"reliability"
|
|
1690
|
+
],
|
|
1691
|
+
"preset_groups": [
|
|
1692
|
+
"developer-safety",
|
|
1693
|
+
"resource-protection",
|
|
1694
|
+
"full-suite"
|
|
1695
|
+
],
|
|
1696
|
+
"detection_pattern": "[server-side]"
|
|
1697
|
+
},
|
|
1698
|
+
{
|
|
1699
|
+
"id": "res-009",
|
|
1700
|
+
"name": "Netlify Deploy Budget",
|
|
1701
|
+
"description": "Block Netlify deployments that would exceed the configured monthly deploy allowance, enforcing batch-deploy discipline",
|
|
1702
|
+
"category": "resource-protection",
|
|
1703
|
+
"enforcement": "standard",
|
|
1704
|
+
"gate_type": "pre-action",
|
|
1705
|
+
"severity": "warn-then-block",
|
|
1706
|
+
"example_blocked": "Agent deploys after every file save during a long QA session, consuming 40 deploys in one afternoon",
|
|
1707
|
+
"example_allowed": "Agent batches all changes, deploys once per logical unit, uses preview deploys for QA, reserves production deploy slots",
|
|
1708
|
+
"tags": [
|
|
1709
|
+
"deployment",
|
|
1710
|
+
"netlify",
|
|
1711
|
+
"budget"
|
|
1712
|
+
],
|
|
1713
|
+
"preset_groups": [
|
|
1714
|
+
"developer-safety",
|
|
1715
|
+
"resource-protection",
|
|
1716
|
+
"full-suite"
|
|
1717
|
+
],
|
|
1718
|
+
"detection_pattern": "[server-side]"
|
|
1719
|
+
},
|
|
1720
|
+
{
|
|
1721
|
+
"id": "res-010",
|
|
1722
|
+
"name": "Service Usage Cap",
|
|
1723
|
+
"description": "Alert when usage of any third-party service approaches a plan limit that would trigger overage charges",
|
|
1724
|
+
"category": "resource-protection",
|
|
1725
|
+
"enforcement": "standard",
|
|
1726
|
+
"gate_type": "runtime-monitor",
|
|
1727
|
+
"severity": "warn",
|
|
1728
|
+
"example_blocked": "Agent uses Firecrawl search repeatedly without tracking credit balance, consuming all 3,000 credits in one session",
|
|
1729
|
+
"example_allowed": "Agent checks remaining credit balance before each operation, switches to alternative (Brave MCP) when credits are low",
|
|
1730
|
+
"tags": [
|
|
1731
|
+
"usage",
|
|
1732
|
+
"billing",
|
|
1733
|
+
"monitoring"
|
|
1734
|
+
],
|
|
1735
|
+
"preset_groups": [
|
|
1736
|
+
"resource-protection",
|
|
1737
|
+
"full-suite"
|
|
1738
|
+
],
|
|
1739
|
+
"detection_pattern": "[server-side]"
|
|
1740
|
+
},
|
|
1741
|
+
{
|
|
1742
|
+
"id": "res-011",
|
|
1743
|
+
"name": "Parallel Worker Guardrail",
|
|
1744
|
+
"description": "Require explicit configuration of a concurrency ceiling before any agent spawns parallel sub-agents or worker processes",
|
|
1745
|
+
"category": "resource-protection",
|
|
1746
|
+
"enforcement": "standard",
|
|
1747
|
+
"gate_type": "pre-action",
|
|
1748
|
+
"severity": "block",
|
|
1749
|
+
"example_blocked": "Agent creates asyncio tasks for every item in a 10,000-row list simultaneously, exhausting memory and file descriptors",
|
|
1750
|
+
"example_allowed": "Agent sets explicit semaphore (Semaphore(10)), processes in bounded batches, monitors system resources during execution",
|
|
1751
|
+
"tags": [
|
|
1752
|
+
"concurrency",
|
|
1753
|
+
"workers",
|
|
1754
|
+
"safety"
|
|
1755
|
+
],
|
|
1756
|
+
"preset_groups": [
|
|
1757
|
+
"developer-safety",
|
|
1758
|
+
"resource-protection",
|
|
1759
|
+
"full-suite"
|
|
1760
|
+
],
|
|
1761
|
+
"detection_pattern": "[server-side]"
|
|
1762
|
+
},
|
|
1763
|
+
{
|
|
1764
|
+
"id": "res-012",
|
|
1765
|
+
"name": "External Service Health Check",
|
|
1766
|
+
"description": "Verify dependent external services are healthy before initiating operations that would fail if they are degraded",
|
|
1767
|
+
"category": "resource-protection",
|
|
1768
|
+
"enforcement": "standard",
|
|
1769
|
+
"gate_type": "pre-action",
|
|
1770
|
+
"severity": "warn",
|
|
1771
|
+
"example_blocked": "Agent initiates a 1,000-email send while Sendgrid is experiencing an outage, causing all sends to fail silently",
|
|
1772
|
+
"example_allowed": "Agent checks Sendgrid status page and health endpoint before initiating bulk operation, aborts with clear error if degraded",
|
|
1773
|
+
"tags": [
|
|
1774
|
+
"reliability",
|
|
1775
|
+
"health-checks",
|
|
1776
|
+
"dependencies"
|
|
1777
|
+
],
|
|
1778
|
+
"preset_groups": [
|
|
1779
|
+
"developer-safety",
|
|
1780
|
+
"resource-protection",
|
|
1781
|
+
"full-suite"
|
|
1782
|
+
],
|
|
1783
|
+
"detection_pattern": "[server-side]"
|
|
1784
|
+
},
|
|
1785
|
+
{
|
|
1786
|
+
"id": "sec-001",
|
|
1787
|
+
"name": "No Exposing Secrets in Logs",
|
|
1788
|
+
"description": "Block any logging operation that would write API keys, passwords, tokens, or secrets to log files or stdout",
|
|
1789
|
+
"category": "security",
|
|
1790
|
+
"enforcement": "constitutional",
|
|
1791
|
+
"gate_type": "pre-action",
|
|
1792
|
+
"severity": "block",
|
|
1793
|
+
"example_blocked": "Agent logs the full contents of os.environ to debug a configuration issue, exposing all API keys in plaintext logs",
|
|
1794
|
+
"example_allowed": "Agent logs environment variable names but masks values: 'STRIPE_KEY=sk-***[masked]'",
|
|
1795
|
+
"tags": [
|
|
1796
|
+
"security",
|
|
1797
|
+
"logging",
|
|
1798
|
+
"secrets"
|
|
1799
|
+
],
|
|
1800
|
+
"preset_groups": [
|
|
1801
|
+
"essential",
|
|
1802
|
+
"developer-safety",
|
|
1803
|
+
"full-suite"
|
|
1804
|
+
],
|
|
1805
|
+
"detection_pattern": "[server-side]"
|
|
1806
|
+
},
|
|
1807
|
+
{
|
|
1808
|
+
"id": "sec-002",
|
|
1809
|
+
"name": "Code Execution Sandboxing",
|
|
1810
|
+
"description": "Block execution of untrusted code (user-provided, LLM-generated, or scraped) outside of an isolated sandbox environment",
|
|
1811
|
+
"category": "security",
|
|
1812
|
+
"enforcement": "constitutional",
|
|
1813
|
+
"gate_type": "pre-action",
|
|
1814
|
+
"severity": "block",
|
|
1815
|
+
"example_blocked": "Agent executes code from a web-scraped code block directly in the production environment without sandboxing",
|
|
1816
|
+
"example_allowed": "Agent runs external code in a containerised environment with no network access and resource limits, presents output for review",
|
|
1817
|
+
"tags": [
|
|
1818
|
+
"security",
|
|
1819
|
+
"code-execution",
|
|
1820
|
+
"sandboxing"
|
|
1821
|
+
],
|
|
1822
|
+
"preset_groups": [
|
|
1823
|
+
"developer-safety",
|
|
1824
|
+
"full-suite"
|
|
1825
|
+
],
|
|
1826
|
+
"detection_pattern": "[server-side]"
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
"id": "sec-003",
|
|
1830
|
+
"name": "Dependency Verification",
|
|
1831
|
+
"description": "Block installation of new packages without verifying they are from a trusted source and match expected checksums",
|
|
1832
|
+
"category": "security",
|
|
1833
|
+
"enforcement": "standard",
|
|
1834
|
+
"gate_type": "pre-action",
|
|
1835
|
+
"severity": "block",
|
|
1836
|
+
"example_blocked": "Agent installs 'python-requests-2' (a typosquatting package) while setting up a new project",
|
|
1837
|
+
"example_allowed": "Agent verifies package is from official PyPI/npm, checks download count and maintainer, confirms checksum before installing",
|
|
1838
|
+
"tags": [
|
|
1839
|
+
"security",
|
|
1840
|
+
"dependencies",
|
|
1841
|
+
"supply-chain"
|
|
1842
|
+
],
|
|
1843
|
+
"preset_groups": [
|
|
1844
|
+
"developer-safety",
|
|
1845
|
+
"full-suite"
|
|
1846
|
+
],
|
|
1847
|
+
"detection_pattern": "[server-side]"
|
|
1848
|
+
},
|
|
1849
|
+
{
|
|
1850
|
+
"id": "sec-004",
|
|
1851
|
+
"name": "Privilege Escalation Block",
|
|
1852
|
+
"description": "Block agent from acquiring elevated permissions beyond what is required for the declared task",
|
|
1853
|
+
"category": "security",
|
|
1854
|
+
"enforcement": "constitutional",
|
|
1855
|
+
"gate_type": "pre-action",
|
|
1856
|
+
"severity": "block",
|
|
1857
|
+
"example_blocked": "Agent requests full S3 admin permissions to upload a single file to one bucket",
|
|
1858
|
+
"example_allowed": "Agent requests PutObject permission scoped to the specific bucket and prefix required, nothing more",
|
|
1859
|
+
"tags": [
|
|
1860
|
+
"security",
|
|
1861
|
+
"permissions",
|
|
1862
|
+
"least-privilege"
|
|
1863
|
+
],
|
|
1864
|
+
"preset_groups": [
|
|
1865
|
+
"developer-safety",
|
|
1866
|
+
"full-suite"
|
|
1867
|
+
],
|
|
1868
|
+
"detection_pattern": "[server-side]"
|
|
1869
|
+
},
|
|
1870
|
+
{
|
|
1871
|
+
"id": "sec-005",
|
|
1872
|
+
"name": "Network Access Controls",
|
|
1873
|
+
"description": "Block agent from making outbound network requests to IP ranges or domains outside an approved allowlist",
|
|
1874
|
+
"category": "security",
|
|
1875
|
+
"enforcement": "standard",
|
|
1876
|
+
"gate_type": "pre-action",
|
|
1877
|
+
"severity": "block",
|
|
1878
|
+
"example_blocked": "Agent makes outbound request to a data exfiltration endpoint while processing a user's confidential document",
|
|
1879
|
+
"example_allowed": "Agent only contacts domains on the approved list, all outbound requests logged with destination and payload summary",
|
|
1880
|
+
"tags": [
|
|
1881
|
+
"security",
|
|
1882
|
+
"network",
|
|
1883
|
+
"access-control"
|
|
1884
|
+
],
|
|
1885
|
+
"preset_groups": [
|
|
1886
|
+
"developer-safety",
|
|
1887
|
+
"full-suite"
|
|
1888
|
+
],
|
|
1889
|
+
"detection_pattern": "[server-side]"
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
"id": "sec-006",
|
|
1893
|
+
"name": "Auth System Protection",
|
|
1894
|
+
"description": "Block modifications to authentication configuration, login flows, or session management without security review",
|
|
1895
|
+
"category": "security",
|
|
1896
|
+
"enforcement": "constitutional",
|
|
1897
|
+
"gate_type": "pre-action",
|
|
1898
|
+
"severity": "block",
|
|
1899
|
+
"example_blocked": "Agent modifies JWT signing algorithm from RS256 to HS256 to simplify local development, breaking production auth",
|
|
1900
|
+
"example_allowed": "Agent proposes auth change, documents security implications, routes for security review before any implementation",
|
|
1901
|
+
"tags": [
|
|
1902
|
+
"security",
|
|
1903
|
+
"authentication",
|
|
1904
|
+
"jwt"
|
|
1905
|
+
],
|
|
1906
|
+
"preset_groups": [
|
|
1907
|
+
"developer-safety",
|
|
1908
|
+
"full-suite"
|
|
1909
|
+
],
|
|
1910
|
+
"detection_pattern": "[server-side]"
|
|
1911
|
+
},
|
|
1912
|
+
{
|
|
1913
|
+
"id": "sec-007",
|
|
1914
|
+
"name": "Vulnerability Scan Gate",
|
|
1915
|
+
"description": "Require a dependency vulnerability scan before shipping any new application or adding a new package to a production project",
|
|
1916
|
+
"category": "security",
|
|
1917
|
+
"enforcement": "standard",
|
|
1918
|
+
"gate_type": "pre-action",
|
|
1919
|
+
"severity": "warn",
|
|
1920
|
+
"example_blocked": "Agent ships a new feature with 3 high-severity CVEs in a newly added npm package",
|
|
1921
|
+
"example_allowed": "Agent runs npm audit, reviews CVEs, resolves high-severity issues, provides clean audit report before deployment",
|
|
1922
|
+
"tags": [
|
|
1923
|
+
"security",
|
|
1924
|
+
"vulnerabilities",
|
|
1925
|
+
"cve"
|
|
1926
|
+
],
|
|
1927
|
+
"preset_groups": [
|
|
1928
|
+
"developer-safety",
|
|
1929
|
+
"full-suite"
|
|
1930
|
+
],
|
|
1931
|
+
"detection_pattern": "[server-side]"
|
|
1932
|
+
},
|
|
1933
|
+
{
|
|
1934
|
+
"id": "sec-008",
|
|
1935
|
+
"name": "Input Sanitisation Enforcement",
|
|
1936
|
+
"description": "Block processing of untrusted external input (user forms, webhooks, scraped data) without sanitisation and validation",
|
|
1937
|
+
"category": "security",
|
|
1938
|
+
"enforcement": "standard",
|
|
1939
|
+
"gate_type": "pre-action",
|
|
1940
|
+
"severity": "block",
|
|
1941
|
+
"example_blocked": "Agent builds a SQL query directly from a webhook payload field without parameterisation, enabling SQL injection",
|
|
1942
|
+
"example_allowed": "Agent uses parameterised queries, validates webhook payload schema, escapes all external strings before HTML rendering",
|
|
1943
|
+
"tags": [
|
|
1944
|
+
"security",
|
|
1945
|
+
"injection",
|
|
1946
|
+
"sanitisation"
|
|
1947
|
+
],
|
|
1948
|
+
"preset_groups": [
|
|
1949
|
+
"developer-safety",
|
|
1950
|
+
"full-suite"
|
|
1951
|
+
],
|
|
1952
|
+
"detection_pattern": "[server-side]"
|
|
1953
|
+
},
|
|
1954
|
+
{
|
|
1955
|
+
"id": "sec-009",
|
|
1956
|
+
"name": "Audit Logging Mandatory",
|
|
1957
|
+
"description": "Require all significant agent actions (data access, config changes, external API calls) to be written to an append-only audit log",
|
|
1958
|
+
"category": "security",
|
|
1959
|
+
"enforcement": "standard",
|
|
1960
|
+
"gate_type": "post-action",
|
|
1961
|
+
"severity": "warn",
|
|
1962
|
+
"example_blocked": "Agent modifies 500 customer records without writing to the audit log, making it impossible to trace the change later",
|
|
1963
|
+
"example_allowed": "Agent writes structured audit entry before and after each significant action: {timestamp, agent_id, action, affected_records, outcome}",
|
|
1964
|
+
"tags": [
|
|
1965
|
+
"security",
|
|
1966
|
+
"audit",
|
|
1967
|
+
"compliance",
|
|
1968
|
+
"logging"
|
|
1969
|
+
],
|
|
1970
|
+
"preset_groups": [
|
|
1971
|
+
"developer-safety",
|
|
1972
|
+
"full-suite"
|
|
1973
|
+
],
|
|
1974
|
+
"detection_pattern": "[server-side]"
|
|
1975
|
+
},
|
|
1976
|
+
{
|
|
1977
|
+
"id": "sec-010",
|
|
1978
|
+
"name": "No Banned Model Providers",
|
|
1979
|
+
"description": "Block agent from routing requests to providers on the organisation's banned list (e.g. providers with IP leakage concerns)",
|
|
1980
|
+
"category": "security",
|
|
1981
|
+
"enforcement": "constitutional",
|
|
1982
|
+
"gate_type": "pre-action",
|
|
1983
|
+
"severity": "block",
|
|
1984
|
+
"example_blocked": "Agent routes a prompt containing proprietary code to a DeepSeek API endpoint to save costs",
|
|
1985
|
+
"example_allowed": "Agent routes all requests through approved providers (Anthropic, Google, OpenRouter with approved models only)",
|
|
1986
|
+
"tags": [
|
|
1987
|
+
"security",
|
|
1988
|
+
"providers",
|
|
1989
|
+
"data-residency"
|
|
1990
|
+
],
|
|
1991
|
+
"preset_groups": [
|
|
1992
|
+
"developer-safety",
|
|
1993
|
+
"full-suite"
|
|
1994
|
+
],
|
|
1995
|
+
"detection_pattern": "[server-side]"
|
|
1996
|
+
},
|
|
1997
|
+
{
|
|
1998
|
+
"id": "sec-011",
|
|
1999
|
+
"name": "Two-Factor Authentication Preservation",
|
|
2000
|
+
"description": "Block any action that would disable, bypass, or remove multi-factor authentication from accounts or services",
|
|
2001
|
+
"category": "security",
|
|
2002
|
+
"enforcement": "constitutional",
|
|
2003
|
+
"gate_type": "pre-action",
|
|
2004
|
+
"severity": "block",
|
|
2005
|
+
"example_blocked": "Agent disables 2FA on the production GCP account to simplify a deployment script's authentication flow",
|
|
2006
|
+
"example_allowed": "Agent uses service account keys or workload identity for automation, never touches human account MFA settings",
|
|
2007
|
+
"tags": [
|
|
2008
|
+
"security",
|
|
2009
|
+
"mfa",
|
|
2010
|
+
"authentication"
|
|
2011
|
+
],
|
|
2012
|
+
"preset_groups": [
|
|
2013
|
+
"developer-safety",
|
|
2014
|
+
"full-suite"
|
|
2015
|
+
],
|
|
2016
|
+
"detection_pattern": "[server-side]"
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
"id": "sec-012",
|
|
2020
|
+
"name": "SSRF Prevention",
|
|
2021
|
+
"description": "Block agent from making server-side requests to internal network endpoints or metadata services based on external input",
|
|
2022
|
+
"category": "security",
|
|
2023
|
+
"enforcement": "standard",
|
|
2024
|
+
"gate_type": "pre-action",
|
|
2025
|
+
"severity": "block",
|
|
2026
|
+
"example_blocked": "Agent fetches a user-supplied URL that redirects to the AWS metadata service endpoint, leaking IAM credentials",
|
|
2027
|
+
"example_allowed": "Agent validates all URLs against allowlist of external domains, rejects private IP ranges and metadata service endpoints",
|
|
2028
|
+
"tags": [
|
|
2029
|
+
"security",
|
|
2030
|
+
"ssrf",
|
|
2031
|
+
"network"
|
|
2032
|
+
],
|
|
2033
|
+
"preset_groups": [
|
|
2034
|
+
"developer-safety",
|
|
2035
|
+
"full-suite"
|
|
2036
|
+
],
|
|
2037
|
+
"detection_pattern": "[server-side]"
|
|
2038
|
+
},
|
|
2039
|
+
{
|
|
2040
|
+
"id": "cmp-001",
|
|
2041
|
+
"name": "EU AI Act Article 15 Awareness",
|
|
2042
|
+
"description": "Alert when an AI system being developed or deployed shows characteristics of a high-risk AI application under EU AI Act Article 15 without corresponding accuracy and robustness documentation",
|
|
2043
|
+
"category": "compliance",
|
|
2044
|
+
"enforcement": "standard",
|
|
2045
|
+
"gate_type": "runtime-monitor",
|
|
2046
|
+
"severity": "warn",
|
|
2047
|
+
"example_blocked": "Agent deploys an AI-powered CV screening tool without any human review process or bias assessment",
|
|
2048
|
+
"example_allowed": "Agent flags system as potentially high-risk under EU AI Act, adds human review checkpoint, triggers compliance documentation workflow",
|
|
2049
|
+
"tags": [
|
|
2050
|
+
"compliance",
|
|
2051
|
+
"eu-ai-act",
|
|
2052
|
+
"regulation"
|
|
2053
|
+
],
|
|
2054
|
+
"preset_groups": [
|
|
2055
|
+
"full-suite"
|
|
2056
|
+
],
|
|
2057
|
+
"detection_pattern": "[server-side]"
|
|
2058
|
+
},
|
|
2059
|
+
{
|
|
2060
|
+
"id": "cmp-002",
|
|
2061
|
+
"name": "GDPR Data Handling Protocol",
|
|
2062
|
+
"description": "Require explicit lawful basis documentation before any collection, processing, or storage of EU resident personal data",
|
|
2063
|
+
"category": "compliance",
|
|
2064
|
+
"enforcement": "constitutional",
|
|
2065
|
+
"gate_type": "pre-action",
|
|
2066
|
+
"severity": "block",
|
|
2067
|
+
"example_blocked": "Agent stores email addresses of EU website visitors for marketing without a consent record or privacy policy reference",
|
|
2068
|
+
"example_allowed": "Agent confirms consent record exists, stores only consented data, includes lawful basis in storage metadata",
|
|
2069
|
+
"tags": [
|
|
2070
|
+
"compliance",
|
|
2071
|
+
"gdpr",
|
|
2072
|
+
"privacy"
|
|
2073
|
+
],
|
|
2074
|
+
"preset_groups": [
|
|
2075
|
+
"full-suite"
|
|
2076
|
+
],
|
|
2077
|
+
"detection_pattern": "[server-side]"
|
|
2078
|
+
},
|
|
2079
|
+
{
|
|
2080
|
+
"id": "cmp-003",
|
|
2081
|
+
"name": "Audit Trail Maintenance",
|
|
2082
|
+
"description": "Ensure all agent actions in regulated workflows are traceable with timestamp, actor ID, input, output, and decision rationale",
|
|
2083
|
+
"category": "compliance",
|
|
2084
|
+
"enforcement": "standard",
|
|
2085
|
+
"gate_type": "post-action",
|
|
2086
|
+
"severity": "warn",
|
|
2087
|
+
"example_blocked": "Agent makes automated credit approval decisions with no record of what inputs produced each decision",
|
|
2088
|
+
"example_allowed": "Agent writes structured decision record for each output: {timestamp, inputs_hash, model_version, decision, confidence, human_review_required}",
|
|
2089
|
+
"tags": [
|
|
2090
|
+
"compliance",
|
|
2091
|
+
"audit-trail",
|
|
2092
|
+
"transparency"
|
|
2093
|
+
],
|
|
2094
|
+
"preset_groups": [
|
|
2095
|
+
"full-suite"
|
|
2096
|
+
],
|
|
2097
|
+
"detection_pattern": "[server-side]"
|
|
2098
|
+
},
|
|
2099
|
+
{
|
|
2100
|
+
"id": "cmp-004",
|
|
2101
|
+
"name": "SOC2 Control Adherence",
|
|
2102
|
+
"description": "Alert when agent actions would violate SOC2 Trust Service Criteria — particularly around access control, availability, and change management",
|
|
2103
|
+
"category": "compliance",
|
|
2104
|
+
"enforcement": "standard",
|
|
2105
|
+
"gate_type": "runtime-monitor",
|
|
2106
|
+
"severity": "warn",
|
|
2107
|
+
"example_blocked": "Agent modifies production database schema directly without creating a change management ticket or notifying the on-call team",
|
|
2108
|
+
"example_allowed": "Agent creates change request, documents risk assessment, waits for change window, executes with monitoring and rollback plan ready",
|
|
2109
|
+
"tags": [
|
|
2110
|
+
"compliance",
|
|
2111
|
+
"soc2",
|
|
2112
|
+
"change-management"
|
|
2113
|
+
],
|
|
2114
|
+
"preset_groups": [
|
|
2115
|
+
"full-suite"
|
|
2116
|
+
],
|
|
2117
|
+
"detection_pattern": "[server-side]"
|
|
2118
|
+
}
|
|
2119
|
+
]
|