thumbgate 1.27.8 → 1.27.9
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/.claude-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +1 -2
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +0 -2
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +259 -78
- package/package.json +12 -19
- package/public/blog.html +30 -0
- package/public/compare/adopt-ai.html +219 -0
- package/public/compare/agentix-labs.html +197 -0
- package/public/compare/ai-experience-orchestration.html +216 -0
- package/public/compare/anthropic-claude-for-legal.html +260 -0
- package/public/compare/anthropic-containment.html +280 -0
- package/public/compare/arcade.html +175 -0
- package/public/compare/arcjet.html +239 -0
- package/public/compare/bumblebee.html +307 -0
- package/public/compare/claude-code-hooks.html +294 -0
- package/public/compare/databricks-unity-ai-gateway.html +215 -0
- package/public/compare/fallow.html +351 -0
- package/public/compare/heidi.html +233 -0
- package/public/compare/mem0.html +342 -0
- package/public/compare/oak-and-sparrow-gatekeeper.html +289 -0
- package/public/compare/rein.html +236 -0
- package/public/compare/sigmashake.html +256 -0
- package/public/compare/speclock.html +342 -0
- package/public/compare.html +2 -0
- package/public/guides/agent-harness-optimization.html +342 -0
- package/public/guides/agentic-web-governance.html +406 -0
- package/public/guides/ai-agent-governance-sprint.html +415 -0
- package/public/guides/ai-agent-pre-action-approval-gates.html +401 -0
- package/public/guides/ai-agent-workflow-migration-checklist.html +392 -0
- package/public/guides/ai-deployment-readiness.html +415 -0
- package/public/guides/ai-mode-ads-agent-governance.html +401 -0
- package/public/guides/ai-search-topical-presence.html +342 -0
- package/public/guides/autoresearch-agent-safety.html +342 -0
- package/public/guides/background-agent-governance.html +358 -0
- package/public/guides/best-tools-stop-ai-agents-breaking-production.html +363 -0
- package/public/guides/browser-automation-safety.html +342 -0
- package/public/guides/chatgpt-ads-trust.html +353 -0
- package/public/guides/claude-code-feedback.html +339 -0
- package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
- package/public/guides/claude-code-skills-guardrails.html +343 -0
- package/public/guides/claude-desktop.html +356 -0
- package/public/guides/code-knowledge-graph-guardrails.html +365 -0
- package/public/guides/codex-cli-guardrails.html +339 -0
- package/public/guides/cursor-agent-guardrails.html +339 -0
- package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
- package/public/guides/database-agent-safety.html +406 -0
- package/public/guides/deepseek-v4-runtime-guardrails.html +346 -0
- package/public/guides/developer-machine-supply-chain-guardrails.html +358 -0
- package/public/guides/gcp-mcp-guardrails.html +147 -0
- package/public/guides/gemini-cli-feedback-memory.html +339 -0
- package/public/guides/gpt-5-5-model-evaluation.html +358 -0
- package/public/guides/internal-ai-engineering-stack-guardrails.html +348 -0
- package/public/guides/long-running-agent-context-management.html +346 -0
- package/public/guides/mcp-tool-governance.html +401 -0
- package/public/guides/multica-thumbgate-setup.html +134 -0
- package/public/guides/native-messaging-host-security.html +342 -0
- package/public/guides/policy-engine-pre-action-gates.html +346 -0
- package/public/guides/pre-action-checks.html +342 -0
- package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +342 -0
- package/public/guides/prompt-tricks-to-workflow-rules.html +365 -0
- package/public/guides/proxy-pointer-rag-guardrails.html +352 -0
- package/public/guides/rag-precision-tuning-guardrails.html +352 -0
- package/public/guides/reasoning-compression-guardrails.html +346 -0
- package/public/guides/relational-knowledge-ai-recommendations.html +342 -0
- package/public/guides/roo-code-alternative-cline.html +339 -0
- package/public/guides/semantic-programmatic-seo-guardrails.html +352 -0
- package/public/guides/seo-agent-skills-guardrails.html +344 -0
- package/public/guides/stop-repeated-ai-agent-mistakes.html +342 -0
- package/public/index.html +12 -50
- package/public/learn/ac-dc-runtime-enforcement.html +277 -0
- package/public/learn/agent-harness-pattern.html +181 -0
- package/public/learn/agent-swarms-shared-gates.html +173 -0
- package/public/learn/agentic-enterprise-context-brain.html +117 -0
- package/public/learn/agentic-os-team-governance.html +146 -0
- package/public/learn/ai-agent-governance.html +158 -0
- package/public/learn/ai-agent-persistent-memory.html +211 -0
- package/public/learn/background-agent-control-layer.html +184 -0
- package/public/learn/claude-code-goal-with-rubrics.html +205 -0
- package/public/learn/codex-role-plugins-need-governance.html +125 -0
- package/public/learn/cost-aware-agent-gate-routing.html +173 -0
- package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +157 -0
- package/public/learn/deterministic-agent-workflows.html +185 -0
- package/public/learn/feedback-loop-vs-decision-layer.html +283 -0
- package/public/learn/from-prototype-to-production.html +223 -0
- package/public/learn/learn.css +51 -0
- package/public/learn/mcp-pre-action-checks-explained.html +172 -0
- package/public/learn/pretix-stripe-connect-marketplaces.html +161 -0
- package/public/learn/regulated-agent-execution-boundary.html +196 -0
- package/public/learn/spec-driven-development.html +168 -0
- package/public/learn/stop-ai-agent-force-push.html +134 -0
- package/public/learn/vibe-coding-safety-net.html +142 -0
- package/public/learn.html +6 -50
- package/public/numbers.html +2 -2
- package/public/pro.html +6 -6
- package/scripts/cli-schema.js +10 -22
- package/scripts/dashboard-chat.js +1 -2
- package/scripts/document-intake.js +49 -1
- package/scripts/gemini-embedding-policy.js +1 -2
- package/scripts/hosted-config.js +12 -0
- package/scripts/plausible-domain-config.js +1 -3
- package/scripts/reddit-browser-notification-watch.js +230 -0
- package/scripts/seo-gsd.js +0 -239
- package/scripts/vector-store.js +0 -44
- package/scripts/workspace-evolver.js +2 -62
- package/src/api/server.js +124 -335
- package/adapters/policy-engine/ethicore-guardian-client.js +0 -68
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +0 -260
- package/scripts/hook-stop-anti-claim.js +0 -227
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>AI Agent Pre-Action Approval Gates | Human Review Before Risky Tool Calls</title>
|
|
7
|
+
<meta name="description" content="Human review after the damage lands is too late. ThumbGate adds pre-action approval gates so risky AI-agent commands, deploys, file edits, API calls, and MCP..." />
|
|
8
|
+
<meta property="og:title" content="AI Agent Pre-Action Approval Gates | Human Review Before Risky Tool Calls" />
|
|
9
|
+
<meta property="og:description" content="Human review after the damage lands is too late. ThumbGate adds pre-action approval gates so risky AI-agent commands, deploys, file edits, API calls, and MCP..." />
|
|
10
|
+
<meta property="og:type" content="article" />
|
|
11
|
+
<meta property="og:url" content="https://thumbgate.ai/guides/ai-agent-pre-action-approval-gates" />
|
|
12
|
+
<link rel="canonical" href="https://thumbgate.ai/guides/ai-agent-pre-action-approval-gates" />
|
|
13
|
+
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
+
<link rel="icon" type="image/svg+xml" href="/thumbgate-icon.png" />
|
|
15
|
+
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
|
|
16
|
+
<meta property="og:image" content="/og.png" />
|
|
17
|
+
<style>
|
|
18
|
+
:root {
|
|
19
|
+
--bg: #0a0a0b;
|
|
20
|
+
--bg-raised: #111113;
|
|
21
|
+
--bg-card: #161618;
|
|
22
|
+
--line: #222225;
|
|
23
|
+
--text: #e8e8ec;
|
|
24
|
+
--muted: #8b8b96;
|
|
25
|
+
--cyan: #22d3ee;
|
|
26
|
+
--green: #4ade80;
|
|
27
|
+
--red: #f87171;
|
|
28
|
+
}
|
|
29
|
+
* { box-sizing: border-box; }
|
|
30
|
+
body {
|
|
31
|
+
margin: 0;
|
|
32
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
33
|
+
background: var(--bg);
|
|
34
|
+
color: var(--text);
|
|
35
|
+
line-height: 1.65;
|
|
36
|
+
}
|
|
37
|
+
a { color: var(--cyan); text-decoration: none; }
|
|
38
|
+
a:hover { text-decoration: underline; }
|
|
39
|
+
.container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
|
|
40
|
+
.topbar {
|
|
41
|
+
position: sticky;
|
|
42
|
+
top: 0;
|
|
43
|
+
z-index: 20;
|
|
44
|
+
backdrop-filter: blur(12px);
|
|
45
|
+
background: rgba(10, 10, 11, 0.88);
|
|
46
|
+
border-bottom: 1px solid var(--line);
|
|
47
|
+
}
|
|
48
|
+
.topbar .container {
|
|
49
|
+
display: flex;
|
|
50
|
+
justify-content: space-between;
|
|
51
|
+
align-items: center;
|
|
52
|
+
padding-top: 14px;
|
|
53
|
+
padding-bottom: 14px;
|
|
54
|
+
}
|
|
55
|
+
.brand {
|
|
56
|
+
font-weight: 700;
|
|
57
|
+
color: var(--text);
|
|
58
|
+
display: inline-flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
gap: 8px;
|
|
61
|
+
text-decoration: none;
|
|
62
|
+
}
|
|
63
|
+
.brand .logo-mark { width: 28px; height: 28px; display: block; }
|
|
64
|
+
.hero { padding: 72px 0 32px; }
|
|
65
|
+
.eyebrow {
|
|
66
|
+
display: inline-flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
gap: 8px;
|
|
69
|
+
padding: 6px 12px;
|
|
70
|
+
border-radius: 999px;
|
|
71
|
+
border: 1px solid rgba(34, 211, 238, 0.22);
|
|
72
|
+
background: rgba(34, 211, 238, 0.1);
|
|
73
|
+
color: var(--cyan);
|
|
74
|
+
text-transform: uppercase;
|
|
75
|
+
letter-spacing: 0.08em;
|
|
76
|
+
font-size: 12px;
|
|
77
|
+
font-weight: 700;
|
|
78
|
+
}
|
|
79
|
+
h1 {
|
|
80
|
+
font-size: clamp(34px, 5vw, 56px);
|
|
81
|
+
line-height: 1.06;
|
|
82
|
+
letter-spacing: -0.04em;
|
|
83
|
+
margin: 16px 0;
|
|
84
|
+
max-width: 760px;
|
|
85
|
+
}
|
|
86
|
+
.hero p {
|
|
87
|
+
max-width: 720px;
|
|
88
|
+
color: var(--muted);
|
|
89
|
+
font-size: 18px;
|
|
90
|
+
}
|
|
91
|
+
.signal-row {
|
|
92
|
+
display: flex;
|
|
93
|
+
flex-wrap: wrap;
|
|
94
|
+
gap: 12px;
|
|
95
|
+
margin: 28px 0 0;
|
|
96
|
+
}
|
|
97
|
+
.signal-pill {
|
|
98
|
+
display: inline-flex;
|
|
99
|
+
align-items: center;
|
|
100
|
+
gap: 8px;
|
|
101
|
+
padding: 10px 14px;
|
|
102
|
+
border-radius: 999px;
|
|
103
|
+
border: 1px solid var(--line);
|
|
104
|
+
background: var(--bg-raised);
|
|
105
|
+
font-weight: 600;
|
|
106
|
+
font-size: 14px;
|
|
107
|
+
}
|
|
108
|
+
.signal-pill.up {
|
|
109
|
+
border-color: rgba(74, 222, 128, 0.28);
|
|
110
|
+
color: #b8f7c8;
|
|
111
|
+
background: rgba(74, 222, 128, 0.1);
|
|
112
|
+
}
|
|
113
|
+
.signal-pill.down {
|
|
114
|
+
border-color: rgba(248, 113, 113, 0.28);
|
|
115
|
+
color: #ffc0c0;
|
|
116
|
+
background: rgba(248, 113, 113, 0.1);
|
|
117
|
+
}
|
|
118
|
+
.grid {
|
|
119
|
+
display: grid;
|
|
120
|
+
grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
|
|
121
|
+
gap: 24px;
|
|
122
|
+
padding-bottom: 72px;
|
|
123
|
+
}
|
|
124
|
+
.card, .detail-section, .sidebar-card {
|
|
125
|
+
background: var(--bg-card);
|
|
126
|
+
border: 1px solid var(--line);
|
|
127
|
+
border-radius: 16px;
|
|
128
|
+
}
|
|
129
|
+
.card { padding: 24px; }
|
|
130
|
+
.detail-section { padding: 24px; margin-bottom: 18px; }
|
|
131
|
+
.detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
|
|
132
|
+
.detail-section p { color: var(--muted); }
|
|
133
|
+
.detail-section ul, .card ul { padding-left: 18px; color: var(--muted); }
|
|
134
|
+
.card h2 { margin-top: 0; }
|
|
135
|
+
.sidebar {
|
|
136
|
+
display: flex;
|
|
137
|
+
flex-direction: column;
|
|
138
|
+
gap: 18px;
|
|
139
|
+
}
|
|
140
|
+
.sidebar-card {
|
|
141
|
+
padding: 20px;
|
|
142
|
+
}
|
|
143
|
+
/* Only the first sidebar card sticks. Stacking multiple stickies at the
|
|
144
|
+
same top offset makes them overlap each other on scroll. The related-
|
|
145
|
+
pages card flows normally below. */
|
|
146
|
+
.sidebar-card:first-child {
|
|
147
|
+
position: sticky;
|
|
148
|
+
top: 84px;
|
|
149
|
+
max-height: calc(100vh - 104px);
|
|
150
|
+
overflow-y: auto;
|
|
151
|
+
-webkit-overflow-scrolling: touch;
|
|
152
|
+
}
|
|
153
|
+
.proof-links {
|
|
154
|
+
display: flex;
|
|
155
|
+
flex-wrap: wrap;
|
|
156
|
+
gap: 12px;
|
|
157
|
+
margin-top: 16px;
|
|
158
|
+
}
|
|
159
|
+
.cta-button {
|
|
160
|
+
display: inline-flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
justify-content: center;
|
|
163
|
+
margin-top: 18px;
|
|
164
|
+
padding: 12px 16px;
|
|
165
|
+
border-radius: 10px;
|
|
166
|
+
background: var(--cyan);
|
|
167
|
+
color: #071116;
|
|
168
|
+
font-weight: 700;
|
|
169
|
+
text-decoration: none;
|
|
170
|
+
}
|
|
171
|
+
.paid-sprint-card {
|
|
172
|
+
border-color: rgba(74, 222, 128, 0.32);
|
|
173
|
+
background: linear-gradient(180deg, rgba(17, 17, 19, 0.98), rgba(10, 20, 14, 0.96));
|
|
174
|
+
}
|
|
175
|
+
.paid-sprint-card p {
|
|
176
|
+
color: var(--muted);
|
|
177
|
+
font-size: 14px;
|
|
178
|
+
line-height: 1.55;
|
|
179
|
+
}
|
|
180
|
+
.paid-offers {
|
|
181
|
+
display: grid;
|
|
182
|
+
gap: 10px;
|
|
183
|
+
margin-top: 16px;
|
|
184
|
+
}
|
|
185
|
+
.paid-offer {
|
|
186
|
+
display: flex;
|
|
187
|
+
align-items: center;
|
|
188
|
+
justify-content: space-between;
|
|
189
|
+
gap: 12px;
|
|
190
|
+
padding: 12px;
|
|
191
|
+
border: 1px solid rgba(74, 222, 128, 0.28);
|
|
192
|
+
border-radius: 10px;
|
|
193
|
+
color: var(--fg);
|
|
194
|
+
text-decoration: none;
|
|
195
|
+
background: rgba(0, 0, 0, 0.22);
|
|
196
|
+
}
|
|
197
|
+
.paid-offer strong {
|
|
198
|
+
color: #9af5b0;
|
|
199
|
+
white-space: nowrap;
|
|
200
|
+
}
|
|
201
|
+
.paid-offer:hover, .paid-offer:focus-visible {
|
|
202
|
+
border-color: rgba(74, 222, 128, 0.62);
|
|
203
|
+
outline: none;
|
|
204
|
+
}
|
|
205
|
+
.secondary-cta {
|
|
206
|
+
display: inline-flex;
|
|
207
|
+
margin-top: 12px;
|
|
208
|
+
color: var(--cyan);
|
|
209
|
+
font-size: 14px;
|
|
210
|
+
font-weight: 700;
|
|
211
|
+
text-decoration: none;
|
|
212
|
+
}
|
|
213
|
+
.faq-item {
|
|
214
|
+
border-top: 1px solid var(--line);
|
|
215
|
+
padding: 14px 0;
|
|
216
|
+
}
|
|
217
|
+
.faq-item summary {
|
|
218
|
+
cursor: pointer;
|
|
219
|
+
font-weight: 600;
|
|
220
|
+
}
|
|
221
|
+
.faq-item p {
|
|
222
|
+
color: var(--muted);
|
|
223
|
+
}
|
|
224
|
+
.related-card {
|
|
225
|
+
display: block;
|
|
226
|
+
padding: 14px;
|
|
227
|
+
border-radius: 12px;
|
|
228
|
+
border: 1px solid var(--line);
|
|
229
|
+
background: var(--bg-raised);
|
|
230
|
+
margin-top: 12px;
|
|
231
|
+
color: var(--text);
|
|
232
|
+
}
|
|
233
|
+
.related-label {
|
|
234
|
+
display: block;
|
|
235
|
+
color: var(--muted);
|
|
236
|
+
font-size: 12px;
|
|
237
|
+
text-transform: uppercase;
|
|
238
|
+
letter-spacing: 0.08em;
|
|
239
|
+
margin-bottom: 4px;
|
|
240
|
+
}
|
|
241
|
+
@media (max-width: 860px) {
|
|
242
|
+
.grid {
|
|
243
|
+
grid-template-columns: 1fr;
|
|
244
|
+
}
|
|
245
|
+
.sidebar-card:first-child {
|
|
246
|
+
position: static;
|
|
247
|
+
max-height: none;
|
|
248
|
+
overflow: visible;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
</style>
|
|
252
|
+
<script type="application/ld+json">
|
|
253
|
+
{
|
|
254
|
+
"@context": "https://schema.org",
|
|
255
|
+
"@type": "TechArticle",
|
|
256
|
+
"headline": "AI agent pre-action approval gates for risky tool calls",
|
|
257
|
+
"description": "Human review after the damage lands is too late. ThumbGate adds pre-action approval gates so risky AI-agent commands, deploys, file edits, API calls, and MCP...",
|
|
258
|
+
"about": [
|
|
259
|
+
"claude code masterclass guardrails",
|
|
260
|
+
"cursor prevent repeated mistakes",
|
|
261
|
+
"claude code prevent repeated mistakes",
|
|
262
|
+
"codex cli guardrails"
|
|
263
|
+
],
|
|
264
|
+
"url": "https://thumbgate.ai/guides/ai-agent-pre-action-approval-gates",
|
|
265
|
+
"publisher": {
|
|
266
|
+
"@type": "Organization",
|
|
267
|
+
"name": "ThumbGate",
|
|
268
|
+
"url": "https://thumbgate.ai"
|
|
269
|
+
},
|
|
270
|
+
"mainEntityOfPage": "https://thumbgate.ai/guides/ai-agent-pre-action-approval-gates"
|
|
271
|
+
}
|
|
272
|
+
</script>
|
|
273
|
+
<script type="application/ld+json">
|
|
274
|
+
{
|
|
275
|
+
"@context": "https://schema.org",
|
|
276
|
+
"@type": "FAQPage",
|
|
277
|
+
"mainEntity": [
|
|
278
|
+
{
|
|
279
|
+
"@type": "Question",
|
|
280
|
+
"name": "What should require a pre-action approval gate?",
|
|
281
|
+
"acceptedAnswer": {
|
|
282
|
+
"@type": "Answer",
|
|
283
|
+
"text": "Production deploys, destructive database actions, protected-branch writes, payment or refund actions, customer-facing sends, secret or PII access, high-cost API calls, and any repeated failure pattern the team has already corrected once."
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"@type": "Question",
|
|
288
|
+
"name": "Do approval gates slow every agent action down?",
|
|
289
|
+
"acceptedAnswer": {
|
|
290
|
+
"@type": "Answer",
|
|
291
|
+
"text": "No. Good gates are risk-tiered. Safe actions can continue, uncertain actions can be logged, risky actions can pause for approval, and known-bad actions can be blocked."
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"@type": "Question",
|
|
296
|
+
"name": "How does ThumbGate know what to block?",
|
|
297
|
+
"acceptedAnswer": {
|
|
298
|
+
"@type": "Answer",
|
|
299
|
+
"text": "ThumbGate uses explicit feedback, learned lessons, policy templates, command and path context, evidence requirements, and prior gate outcomes to decide whether the proposed action should proceed."
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
]
|
|
303
|
+
}
|
|
304
|
+
</script>
|
|
305
|
+
</head>
|
|
306
|
+
<body>
|
|
307
|
+
<div class="topbar">
|
|
308
|
+
<div class="container">
|
|
309
|
+
<a class="brand" href="/"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
310
|
+
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a>
|
|
311
|
+
</div>
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
<main class="container">
|
|
315
|
+
<section class="hero">
|
|
316
|
+
<div class="eyebrow">guide | ai agent pre action approval gates</div>
|
|
317
|
+
<h1>AI agent pre-action approval gates for risky tool calls</h1>
|
|
318
|
+
<p>Human review after the damage lands is too late. ThumbGate adds pre-action approval gates so risky AI-agent commands, deploys, file edits, API calls, and MCP tool calls can require evidence or explicit approval before execution.</p>
|
|
319
|
+
<div class="signal-row">
|
|
320
|
+
<div class="signal-pill up">👍 Thumbs up reinforces good behavior</div>
|
|
321
|
+
<div class="signal-pill down">👎 Thumbs down blocks repeated mistakes</div>
|
|
322
|
+
</div>
|
|
323
|
+
</section>
|
|
324
|
+
|
|
325
|
+
<section class="grid">
|
|
326
|
+
<div>
|
|
327
|
+
<div class="card">
|
|
328
|
+
<h2>Why this page exists</h2>
|
|
329
|
+
<ul><li>Approval gates matter most at the action boundary, where the agent is about to touch files, terminals, APIs, CI, payments, or production systems.</li><li>The right gate can block, pause for approval, or log-and-continue depending on risk.</li><li>ThumbGate converts prior thumbs-downs, workflow policies, and verification expectations into reusable approval rules.</li></ul>
|
|
330
|
+
</div>
|
|
331
|
+
|
|
332
|
+
<section class="detail-section">
|
|
333
|
+
<h2>Why approval must happen before execution</h2>
|
|
334
|
+
<p>Many agent failures are irreversible or expensive by the time a post-run reviewer sees them: force-pushes, destructive SQL, unsafe deploys, leaked secrets, customer-facing messages, and runaway API calls.</p><p>A pre-action approval gate pauses the action while there is still something to decide. The agent keeps its speed on safe work, but risky work requires proof, policy match, or a human yes.</p>
|
|
335
|
+
|
|
336
|
+
</section>
|
|
337
|
+
<section class="detail-section">
|
|
338
|
+
<h2>Three practical gate outcomes</h2>
|
|
339
|
+
|
|
340
|
+
<ul><li>Block: deny known-bad actions such as force-pushing protected branches or touching secret files.</li><li>Approve: pause production deploys, schema migrations, payment actions, or customer-facing sends until a human approves.</li><li>Log: allow lower-risk actions while preserving audit evidence for review and future lessons.</li></ul>
|
|
341
|
+
</section>
|
|
342
|
+
<section class="detail-section">
|
|
343
|
+
<h2>How ThumbGate turns approvals into learning</h2>
|
|
344
|
+
<p>Every approval, block, and thumbs-down gives the system better operating context. Repeated failures become prevention rules, accepted safe paths become reinforced lessons, and the audit trail gives teams evidence that the boundary fired before execution.</p>
|
|
345
|
+
|
|
346
|
+
</section>
|
|
347
|
+
<div class="detail-section">
|
|
348
|
+
<h2>FAQ</h2>
|
|
349
|
+
|
|
350
|
+
<details class="faq-item">
|
|
351
|
+
<summary>What should require a pre-action approval gate?</summary>
|
|
352
|
+
<p>Production deploys, destructive database actions, protected-branch writes, payment or refund actions, customer-facing sends, secret or PII access, high-cost API calls, and any repeated failure pattern the team has already corrected once.</p>
|
|
353
|
+
</details>
|
|
354
|
+
<details class="faq-item">
|
|
355
|
+
<summary>Do approval gates slow every agent action down?</summary>
|
|
356
|
+
<p>No. Good gates are risk-tiered. Safe actions can continue, uncertain actions can be logged, risky actions can pause for approval, and known-bad actions can be blocked.</p>
|
|
357
|
+
</details>
|
|
358
|
+
<details class="faq-item">
|
|
359
|
+
<summary>How does ThumbGate know what to block?</summary>
|
|
360
|
+
<p>ThumbGate uses explicit feedback, learned lessons, policy templates, command and path context, evidence requirements, and prior gate outcomes to decide whether the proposed action should proceed.</p>
|
|
361
|
+
</details>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
|
|
365
|
+
<aside class="sidebar">
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
<div class="sidebar-card">
|
|
372
|
+
<h2>GSD execution brief</h2>
|
|
373
|
+
<p>This page was prioritized because it captures high-intent demand around ai agent pre action approval gates and feeds directly into ThumbGate's proof-led conversion path.</p>
|
|
374
|
+
<p><strong>Opportunity score:</strong> 72</p>
|
|
375
|
+
<p><strong>Primary persona:</strong> ai-engineer</p>
|
|
376
|
+
<p><strong>Keyword cluster:</strong> claude code masterclass guardrails, cursor prevent repeated mistakes, claude code prevent repeated mistakes, codex cli guardrails</p>
|
|
377
|
+
<p><strong>Pricing:</strong> Pro $19/mo or $149/yr. Team $49/seat/mo.</p>
|
|
378
|
+
<div class="proof-links"><a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a><a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/proof/automation/report.json" target="_blank" rel="noopener">Automation proof</a><a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub repository</a></div>
|
|
379
|
+
<a class="cta-button" href="/checkout/pro?utm_source=website&utm_medium=seo_page&utm_campaign=guides_ai-agent-pre-action-approval-gates&cta_placement=seo_brief&plan_id=pro" target="_blank" rel="noopener">Go Pro — $19/mo</a>
|
|
380
|
+
</div>
|
|
381
|
+
<div class="sidebar-card">
|
|
382
|
+
<h2>Related pages</h2>
|
|
383
|
+
|
|
384
|
+
<a class="related-card" href="/guides/pre-action-checks">
|
|
385
|
+
<span class="related-label">Related page</span>
|
|
386
|
+
<strong>What Are Pre-Action Checks?</strong>
|
|
387
|
+
</a>
|
|
388
|
+
<a class="related-card" href="/guides/mcp-tool-governance">
|
|
389
|
+
<span class="related-label">Related page</span>
|
|
390
|
+
<strong>MCP tool governance before agents call real systems</strong>
|
|
391
|
+
</a>
|
|
392
|
+
<a class="related-card" href="/guides/ai-agent-governance-sprint">
|
|
393
|
+
<span class="related-label">Related page</span>
|
|
394
|
+
<strong>AI Agent Governance Sprint for One Risky Workflow</strong>
|
|
395
|
+
</a>
|
|
396
|
+
</div>
|
|
397
|
+
</aside>
|
|
398
|
+
</section>
|
|
399
|
+
</main>
|
|
400
|
+
</body>
|
|
401
|
+
</html>
|