thumbgate 1.27.12 → 1.27.14
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 +2 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +2 -4
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/adapters/policy-engine/ethicore-guardian-client.js +68 -0
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +260 -0
- package/bin/cli.js +78 -259
- package/config/gate-templates.json +0 -228
- package/config/gates/claim-verification.json +0 -18
- package/package.json +35 -25
- package/public/assets/brand/thumbgate-logo-transparent.svg +22 -0
- package/public/assets/brand/thumbgate-mark-inline-v3.svg +19 -0
- package/public/assets/brand/thumbgate-mark.svg +11 -5
- package/public/blog.html +0 -30
- package/public/brand/thumbgate-mark.svg +9 -5
- package/public/chatgpt-app.html +2 -2
- package/public/compare.html +2 -1
- package/public/dashboard.html +1 -1
- package/public/federal.html +1 -1
- package/public/index.html +95 -216
- package/public/learn.html +59 -35
- package/public/lessons.html +1 -1
- package/public/numbers.html +2 -2
- package/public/pro.html +7 -7
- package/scripts/agent-readiness.js +142 -0
- package/scripts/aws-blocks-guardrails.js +228 -0
- package/scripts/cli-schema.js +22 -10
- package/scripts/dashboard-chat.js +2 -1
- package/scripts/document-intake.js +1 -49
- package/scripts/durability/step.js +3 -3
- package/scripts/gate-stats.js +5 -11
- package/scripts/gates-engine.js +0 -49
- package/scripts/gemini-embedding-policy.js +2 -1
- package/scripts/hook-stop-anti-claim.js +116 -184
- package/scripts/hosted-config.js +0 -12
- package/scripts/lesson-search.js +1 -15
- package/scripts/llm-client.js +187 -5
- package/scripts/plausible-domain-config.js +3 -1
- package/scripts/seo-gsd.js +240 -1
- package/scripts/tool-registry.js +2 -2
- package/scripts/vector-store.js +44 -0
- package/scripts/workspace-evolver.js +62 -2
- package/src/api/server.js +340 -131
- package/public/assets/brand/thumbgate-mark-inline.svg +0 -15
- package/public/compare/adopt-ai.html +0 -219
- package/public/compare/agentix-labs.html +0 -197
- package/public/compare/ai-experience-orchestration.html +0 -216
- package/public/compare/anthropic-claude-for-legal.html +0 -260
- package/public/compare/anthropic-containment.html +0 -280
- package/public/compare/arcade.html +0 -175
- package/public/compare/arcjet.html +0 -239
- package/public/compare/bumblebee.html +0 -307
- package/public/compare/claude-code-hooks.html +0 -294
- package/public/compare/databricks-unity-ai-gateway.html +0 -215
- package/public/compare/fallow.html +0 -351
- package/public/compare/heidi.html +0 -233
- package/public/compare/mem0.html +0 -342
- package/public/compare/oak-and-sparrow-gatekeeper.html +0 -289
- package/public/compare/rein.html +0 -236
- package/public/compare/sigmashake.html +0 -256
- package/public/compare/speclock.html +0 -342
- package/public/guides/agent-harness-optimization.html +0 -342
- package/public/guides/agentic-web-governance.html +0 -406
- package/public/guides/ai-agent-governance-sprint.html +0 -415
- package/public/guides/ai-agent-pre-action-approval-gates.html +0 -401
- package/public/guides/ai-agent-workflow-migration-checklist.html +0 -392
- package/public/guides/ai-deployment-readiness.html +0 -415
- package/public/guides/ai-mode-ads-agent-governance.html +0 -401
- package/public/guides/ai-search-topical-presence.html +0 -342
- package/public/guides/autoresearch-agent-safety.html +0 -342
- package/public/guides/background-agent-governance.html +0 -358
- package/public/guides/best-tools-stop-ai-agents-breaking-production.html +0 -363
- package/public/guides/browser-automation-safety.html +0 -342
- package/public/guides/chatgpt-ads-trust.html +0 -353
- package/public/guides/claude-code-feedback.html +0 -339
- package/public/guides/claude-code-prevent-repeated-mistakes.html +0 -161
- package/public/guides/claude-code-skills-guardrails.html +0 -343
- package/public/guides/claude-desktop.html +0 -356
- package/public/guides/code-knowledge-graph-guardrails.html +0 -365
- package/public/guides/codex-cli-guardrails.html +0 -339
- package/public/guides/cursor-agent-guardrails.html +0 -339
- package/public/guides/cursor-prevent-repeated-mistakes.html +0 -161
- package/public/guides/database-agent-safety.html +0 -406
- package/public/guides/deepseek-v4-runtime-guardrails.html +0 -346
- package/public/guides/developer-machine-supply-chain-guardrails.html +0 -358
- package/public/guides/gcp-mcp-guardrails.html +0 -147
- package/public/guides/gemini-cli-feedback-memory.html +0 -339
- package/public/guides/gpt-5-5-model-evaluation.html +0 -358
- package/public/guides/internal-ai-engineering-stack-guardrails.html +0 -348
- package/public/guides/long-running-agent-context-management.html +0 -346
- package/public/guides/mcp-tool-governance.html +0 -401
- package/public/guides/multica-thumbgate-setup.html +0 -134
- package/public/guides/native-messaging-host-security.html +0 -342
- package/public/guides/policy-engine-pre-action-gates.html +0 -346
- package/public/guides/pre-action-checks.html +0 -342
- package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +0 -342
- package/public/guides/prompt-tricks-to-workflow-rules.html +0 -365
- package/public/guides/proxy-pointer-rag-guardrails.html +0 -352
- package/public/guides/rag-precision-tuning-guardrails.html +0 -352
- package/public/guides/reasoning-compression-guardrails.html +0 -346
- package/public/guides/relational-knowledge-ai-recommendations.html +0 -342
- package/public/guides/roo-code-alternative-cline.html +0 -339
- package/public/guides/semantic-programmatic-seo-guardrails.html +0 -352
- package/public/guides/seo-agent-skills-guardrails.html +0 -344
- package/public/guides/stop-repeated-ai-agent-mistakes.html +0 -342
- package/public/learn/ac-dc-runtime-enforcement.html +0 -277
- package/public/learn/agent-harness-pattern.html +0 -181
- package/public/learn/agent-identity-connector-governance.html +0 -146
- package/public/learn/agent-swarms-shared-gates.html +0 -173
- package/public/learn/agentic-enterprise-context-brain.html +0 -117
- package/public/learn/agentic-os-team-governance.html +0 -146
- package/public/learn/ai-agent-governance.html +0 -158
- package/public/learn/ai-agent-persistent-memory.html +0 -211
- package/public/learn/anthropomorphic-claim-gates.html +0 -180
- package/public/learn/background-agent-control-layer.html +0 -184
- package/public/learn/claude-code-goal-with-rubrics.html +0 -205
- package/public/learn/codex-role-plugins-need-governance.html +0 -125
- package/public/learn/cost-aware-agent-gate-routing.html +0 -173
- package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +0 -157
- package/public/learn/deterministic-agent-workflows.html +0 -185
- package/public/learn/feedback-loop-vs-decision-layer.html +0 -283
- package/public/learn/from-prototype-to-production.html +0 -223
- package/public/learn/learn.css +0 -51
- package/public/learn/mcp-pre-action-checks-explained.html +0 -172
- package/public/learn/pretix-stripe-connect-marketplaces.html +0 -161
- package/public/learn/regulated-agent-execution-boundary.html +0 -196
- package/public/learn/spec-driven-development.html +0 -168
- package/public/learn/stop-ai-agent-force-push.html +0 -134
- package/public/learn/vibe-coding-safety-net.html +0 -142
- package/scripts/reddit-browser-notification-watch.js +0 -230
|
@@ -1,161 +0,0 @@
|
|
|
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>Cursor Agent Guardrails | Stop Repeated Mistakes with ThumbGate</title>
|
|
7
|
-
<script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
|
|
8
|
-
<meta name="description" content="Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action checks.">
|
|
9
|
-
<meta name="keywords" content="Cursor guardrails, Cursor prevent mistakes, Cursor agent safety, ThumbGate, pre-action checks, AI coding agent feedback">
|
|
10
|
-
<meta property="og:title" content="Cursor Guardrails That Block Repeated Mistakes">
|
|
11
|
-
<meta property="og:description" content="Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action checks.">
|
|
12
|
-
<meta property="og:type" content="article">
|
|
13
|
-
<meta property="og:url" content="https://thumbgate.ai/guides/cursor-prevent-repeated-mistakes">
|
|
14
|
-
<link rel="canonical" href="https://thumbgate.ai/guides/cursor-prevent-repeated-mistakes">
|
|
15
|
-
<link rel="llm-context" href="/llm-context.md" type="text/markdown">
|
|
16
|
-
|
|
17
|
-
<script type="application/ld+json">
|
|
18
|
-
{
|
|
19
|
-
"@context": "https://schema.org",
|
|
20
|
-
"@type": "TechArticle",
|
|
21
|
-
"headline": "Cursor Agent Guardrails That Block Repeated Mistakes",
|
|
22
|
-
"description": "Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action checks.",
|
|
23
|
-
"author": {
|
|
24
|
-
"@type": "Person",
|
|
25
|
-
"name": "Igor Ganapolsky",
|
|
26
|
-
"url": "https://github.com/IgorGanapolsky"
|
|
27
|
-
},
|
|
28
|
-
"publisher": {
|
|
29
|
-
"@type": "Organization",
|
|
30
|
-
"name": "ThumbGate",
|
|
31
|
-
"url": "https://thumbgate.ai"
|
|
32
|
-
},
|
|
33
|
-
"datePublished": "2026-04-09",
|
|
34
|
-
"dateModified": "2026-04-09",
|
|
35
|
-
"mainEntityOfPage": "https://thumbgate.ai/guides/cursor-prevent-repeated-mistakes",
|
|
36
|
-
"about": [
|
|
37
|
-
{"@type": "Thing", "name": "Cursor guardrails"},
|
|
38
|
-
{"@type": "Thing", "name": "AI coding agent safety"},
|
|
39
|
-
{"@type": "Thing", "name": "pre-action checks"}
|
|
40
|
-
]
|
|
41
|
-
}
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
<script type="application/ld+json">
|
|
45
|
-
{
|
|
46
|
-
"@context": "https://schema.org",
|
|
47
|
-
"@type": "FAQPage",
|
|
48
|
-
"mainEntity": [
|
|
49
|
-
{
|
|
50
|
-
"@type": "Question",
|
|
51
|
-
"name": "Do I need to leave Cursor to use ThumbGate?",
|
|
52
|
-
"acceptedAnswer": {
|
|
53
|
-
"@type": "Answer",
|
|
54
|
-
"text": "No. ThumbGate is designed to sit alongside existing coding-agent workflows so you can add enforcement without switching tools."
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"@type": "Question",
|
|
59
|
-
"name": "What kind of mistakes can Cursor guardrails stop?",
|
|
60
|
-
"acceptedAnswer": {
|
|
61
|
-
"@type": "Answer",
|
|
62
|
-
"text": "Repeated failures like risky git actions, destructive scripts, skipped verification, or any other known-bad pattern you have already corrected once."
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"@type": "Question",
|
|
67
|
-
"name": "How is ThumbGate different from a Cursor rules file?",
|
|
68
|
-
"acceptedAnswer": {
|
|
69
|
-
"@type": "Answer",
|
|
70
|
-
"text": "Static rules help on day one. ThumbGate helps on day two and day twenty because it keeps learning from live corrections instead of relying on a fixed checklist that drifts out of date."
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"@type": "Question",
|
|
75
|
-
"name": "Does ThumbGate slow down Cursor?",
|
|
76
|
-
"acceptedAnswer": {
|
|
77
|
-
"@type": "Answer",
|
|
78
|
-
"text": "No. The PreToolUse hook adds a sub-millisecond pattern check before each tool call. You keep Cursor's speed while gaining enforcement."
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
</script>
|
|
84
|
-
|
|
85
|
-
<link rel="stylesheet" href="/learn/learn.css">
|
|
86
|
-
</head>
|
|
87
|
-
<body>
|
|
88
|
-
|
|
89
|
-
<nav>
|
|
90
|
-
<a href="/" class="brand">ThumbGate</a>
|
|
91
|
-
<a href="/guide">Setup Guide</a>
|
|
92
|
-
<a href="/learn">Learn</a>
|
|
93
|
-
<a href="/dashboard">Dashboard</a>
|
|
94
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
|
|
95
|
-
</nav>
|
|
96
|
-
|
|
97
|
-
<div class="container">
|
|
98
|
-
<div class="breadcrumb"><a href="/learn">Learn</a> / <a href="/guides/cursor-prevent-repeated-mistakes">Guides</a> / Cursor Guardrails</div>
|
|
99
|
-
<h1>Cursor Guardrails That Block Repeated Mistakes</h1>
|
|
100
|
-
<p style="color:var(--muted);">3 min read · Designed for Cursor, works across all MCP agents</p>
|
|
101
|
-
|
|
102
|
-
<div class="tldr"><strong>TL;DR:</strong> Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action checks before the next risky step fires.</div>
|
|
103
|
-
|
|
104
|
-
<h2>The Cursor workflow problem</h2>
|
|
105
|
-
<p>Cursor can move from idea to edits quickly, but the failure mode is familiar: the same wrong refactor, risky shell command, or skipped check comes back in the next session because nothing hardened the workflow.</p>
|
|
106
|
-
|
|
107
|
-
<div class="callout callout-red">
|
|
108
|
-
<strong>Sound familiar?</strong> You correct the agent. It apologizes. Next session, same mistake. The problem is not the agent's memory. The problem is that nothing enforces what was learned.
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
<h2>How ThumbGate fits into Cursor</h2>
|
|
112
|
-
<ul>
|
|
113
|
-
<li>Capture thumbs-up/down feedback on agent behavior.</li>
|
|
114
|
-
<li>Promote repeated failures into prevention rules.</li>
|
|
115
|
-
<li>Block known-bad commands with pre-action checks before execution.</li>
|
|
116
|
-
<li>Keep the memory and gates local-first so the operator retains control.</li>
|
|
117
|
-
</ul>
|
|
118
|
-
|
|
119
|
-
<h2>Install for Cursor</h2>
|
|
120
|
-
<pre><code>npx thumbgate init --agent cursor</code></pre>
|
|
121
|
-
<p>Auto-detects Cursor and configures the PreToolUse hook. No build step, no cloud account.</p>
|
|
122
|
-
|
|
123
|
-
<h2>What makes this different from a rule file</h2>
|
|
124
|
-
<p>Static rules help on day one. ThumbGate helps on day two and day twenty because it keeps learning from live corrections instead of relying on a fixed checklist that drifts out of date.</p>
|
|
125
|
-
|
|
126
|
-
<h2>Frequently Asked Questions</h2>
|
|
127
|
-
<h3>Do I need to leave Cursor to use ThumbGate?</h3>
|
|
128
|
-
<p>No. ThumbGate is designed to sit alongside existing coding-agent workflows so you can add enforcement without switching tools.</p>
|
|
129
|
-
|
|
130
|
-
<h3>What kind of mistakes can Cursor guardrails stop?</h3>
|
|
131
|
-
<p>Repeated failures like risky git actions, destructive scripts, skipped verification, or any other known-bad pattern you have already corrected once.</p>
|
|
132
|
-
|
|
133
|
-
<h3>How is ThumbGate different from a Cursor rules file?</h3>
|
|
134
|
-
<p>Static rules help on day one. ThumbGate helps on day two and day twenty because it keeps learning from live corrections instead of relying on a fixed checklist that drifts out of date.</p>
|
|
135
|
-
|
|
136
|
-
<h3>Does ThumbGate slow down Cursor?</h3>
|
|
137
|
-
<p>No. The PreToolUse hook adds a sub-millisecond pattern check before each tool call. You keep Cursor's speed while gaining enforcement.</p>
|
|
138
|
-
|
|
139
|
-
<div class="cta-box">
|
|
140
|
-
<h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Pro for operators, Team for governance</h2>
|
|
141
|
-
<p>Start free with local gates. Pro is $19/mo or $149/yr for the personal dashboard and exports. Team rollout anchors at $49/seat/mo when shared lessons and org visibility matter.</p>
|
|
142
|
-
<div class="cta-install">$ npx thumbgate init --agent cursor</div>
|
|
143
|
-
<p style="margin-top:8px;"><a href="/pro">See Pro and Team pricing →</a></p>
|
|
144
|
-
</div>
|
|
145
|
-
|
|
146
|
-
<div class="related">
|
|
147
|
-
<h3>Related</h3>
|
|
148
|
-
<a href="/guides/stop-repeated-ai-agent-mistakes">Stop Repeated AI Agent Mistakes →</a>
|
|
149
|
-
<a href="/guides/pre-action-checks">What Are Pre-Action Checks? →</a>
|
|
150
|
-
<a href="/compare/speclock">ThumbGate vs SpecLock →</a>
|
|
151
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub →</a>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
|
|
155
|
-
<div class="sticky-cta">
|
|
156
|
-
<span style="color:var(--muted)">Try it now:</span>
|
|
157
|
-
<code>npx thumbgate init --agent cursor</code>
|
|
158
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub →</a>
|
|
159
|
-
</div>
|
|
160
|
-
</body>
|
|
161
|
-
</html>
|
|
@@ -1,406 +0,0 @@
|
|
|
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>Database Safety for AI Agents | ThumbGate Guide</title>
|
|
7
|
-
<meta name="description" content="AI agents can write code quickly, but database actions need stricter gates: a hallucinated SQL write, migration, role grant, or production config change can..." />
|
|
8
|
-
<meta property="og:title" content="Database Safety for AI Agents | ThumbGate Guide" />
|
|
9
|
-
<meta property="og:description" content="AI agents can write code quickly, but database actions need stricter gates: a hallucinated SQL write, migration, role grant, or production config change can..." />
|
|
10
|
-
<meta property="og:type" content="article" />
|
|
11
|
-
<meta property="og:url" content="https://thumbgate.ai/guides/database-agent-safety" />
|
|
12
|
-
<link rel="canonical" href="https://thumbgate.ai/guides/database-agent-safety" />
|
|
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": "Database Safety for AI Agents",
|
|
257
|
-
"description": "AI agents can write code quickly, but database actions need stricter gates: a hallucinated SQL write, migration, role grant, or production config change can...",
|
|
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/database-agent-safety",
|
|
265
|
-
"publisher": {
|
|
266
|
-
"@type": "Organization",
|
|
267
|
-
"name": "ThumbGate",
|
|
268
|
-
"url": "https://thumbgate.ai"
|
|
269
|
-
},
|
|
270
|
-
"mainEntityOfPage": "https://thumbgate.ai/guides/database-agent-safety"
|
|
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": "Should AI agents be allowed to run production database migrations?",
|
|
281
|
-
"acceptedAnswer": {
|
|
282
|
-
"@type": "Answer",
|
|
283
|
-
"text": "Only behind an approval gate. Production migrations should require target verification, dry-run output, backup or snapshot evidence, rollback plan, and human approval before the command executes."
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
"@type": "Question",
|
|
288
|
-
"name": "What database actions should be blocked by default?",
|
|
289
|
-
"acceptedAnswer": {
|
|
290
|
-
"@type": "Answer",
|
|
291
|
-
"text": "DROP, TRUNCATE, DROP DATABASE, DROP SCHEMA, role or grant changes, unbounded UPDATE or DELETE, and production migrations without rollback and dry-run evidence should be blocked or paused before execution."
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
"@type": "Question",
|
|
296
|
-
"name": "Is this an AI DBA replacement?",
|
|
297
|
-
"acceptedAnswer": {
|
|
298
|
-
"@type": "Answer",
|
|
299
|
-
"text": "No. ThumbGate is the governance layer before an agent touches database tooling. It blocks known-bad actions and requires proof for risky actions; DBAs and platform teams still own database design and operations."
|
|
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 | database safety for ai agents</div>
|
|
317
|
-
<h1>Database Safety for AI Agents</h1>
|
|
318
|
-
<p>AI agents can write code quickly, but database actions need stricter gates: a hallucinated SQL write, migration, role grant, or production config change can destroy data before review.</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>Databases are the highest-blast-radius tool surface for autonomous coding agents.</li><li>The winning pattern is not an AI DBA autopilot alone; it is a pre-action approval boundary before SQL, migrations, and privilege changes run.</li><li>ThumbGate turns repeated database mistakes into rules that block or pause the next risky query before execution.</li></ul>
|
|
330
|
-
</div>
|
|
331
|
-
|
|
332
|
-
<section class="detail-section">
|
|
333
|
-
<h2>Why database work is the final boss for agents</h2>
|
|
334
|
-
<p>A bad UI component is visible and usually reversible. A bad production query can delete rows, lock writes, leak data, or change privileges before anyone reviews the pull request.</p><p>That is why database-agent safety belongs at the tool-call boundary. The agent should be stopped before it runs DROP, TRUNCATE, unbounded UPDATE/DELETE, production migrations, or role grants.</p>
|
|
335
|
-
|
|
336
|
-
</section>
|
|
337
|
-
<section class="detail-section">
|
|
338
|
-
<h2>The high-ROI gate pack</h2>
|
|
339
|
-
|
|
340
|
-
<ul><li>Block DROP, TRUNCATE, DROP DATABASE, and DROP SCHEMA unless human approval and rollback evidence are attached.</li><li>Block UPDATE and DELETE without a restrictive WHERE clause, including WHERE 1=1 and WHERE TRUE.</li><li>Require backup, snapshot, or reversible migration proof before production schema changes.</li><li>Require dry-run or EXPLAIN evidence before production writes and migrations.</li><li>Warn on CREATE INDEX without CONCURRENTLY and CROSS JOINs that can create performance incidents.</li><li>Block role creation, role alteration, and broad grants from autonomous agents.</li></ul>
|
|
341
|
-
</section>
|
|
342
|
-
<section class="detail-section">
|
|
343
|
-
<h2>Where ThumbGate fits</h2>
|
|
344
|
-
<p>ThumbGate is not trying to replace Postgres, MySQL, Prisma, Rails migrations, or a DBA. It is the pre-action control plane that checks the agent before those tools execute.</p><p>The feedback loop matters: when a human gives a thumbs-down on an unsafe migration or query, ThumbGate can promote the failure pattern into a prevention rule so the next agent run cannot repeat it silently.</p>
|
|
345
|
-
|
|
346
|
-
</section>
|
|
347
|
-
<section class="detail-section">
|
|
348
|
-
<h2>First workflow to gate</h2>
|
|
349
|
-
<p>Start with one production migration path. Require the agent to show target environment, dry-run output, backup or snapshot evidence, rollback plan, and human approval before it can run the command. That single workflow makes the value visible to engineering leaders immediately.</p>
|
|
350
|
-
|
|
351
|
-
</section>
|
|
352
|
-
<div class="detail-section">
|
|
353
|
-
<h2>FAQ</h2>
|
|
354
|
-
|
|
355
|
-
<details class="faq-item">
|
|
356
|
-
<summary>Should AI agents be allowed to run production database migrations?</summary>
|
|
357
|
-
<p>Only behind an approval gate. Production migrations should require target verification, dry-run output, backup or snapshot evidence, rollback plan, and human approval before the command executes.</p>
|
|
358
|
-
</details>
|
|
359
|
-
<details class="faq-item">
|
|
360
|
-
<summary>What database actions should be blocked by default?</summary>
|
|
361
|
-
<p>DROP, TRUNCATE, DROP DATABASE, DROP SCHEMA, role or grant changes, unbounded UPDATE or DELETE, and production migrations without rollback and dry-run evidence should be blocked or paused before execution.</p>
|
|
362
|
-
</details>
|
|
363
|
-
<details class="faq-item">
|
|
364
|
-
<summary>Is this an AI DBA replacement?</summary>
|
|
365
|
-
<p>No. ThumbGate is the governance layer before an agent touches database tooling. It blocks known-bad actions and requires proof for risky actions; DBAs and platform teams still own database design and operations.</p>
|
|
366
|
-
</details>
|
|
367
|
-
</div>
|
|
368
|
-
</div>
|
|
369
|
-
|
|
370
|
-
<aside class="sidebar">
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
<div class="sidebar-card">
|
|
377
|
-
<h2>GSD execution brief</h2>
|
|
378
|
-
<p>This page was prioritized because it captures high-intent demand around database safety for ai agents and feeds directly into ThumbGate's proof-led conversion path.</p>
|
|
379
|
-
<p><strong>Opportunity score:</strong> 72</p>
|
|
380
|
-
<p><strong>Primary persona:</strong> ai-engineer</p>
|
|
381
|
-
<p><strong>Keyword cluster:</strong> claude code masterclass guardrails, cursor prevent repeated mistakes, claude code prevent repeated mistakes, codex cli guardrails</p>
|
|
382
|
-
<p><strong>Pricing:</strong> Pro $19/mo or $149/yr. Team $49/seat/mo.</p>
|
|
383
|
-
<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>
|
|
384
|
-
<a class="cta-button" href="/checkout/pro?utm_source=website&utm_medium=seo_page&utm_campaign=guides_database-agent-safety&cta_placement=seo_brief&plan_id=pro" target="_blank" rel="noopener">Go Pro — $19/mo</a>
|
|
385
|
-
</div>
|
|
386
|
-
<div class="sidebar-card">
|
|
387
|
-
<h2>Related pages</h2>
|
|
388
|
-
|
|
389
|
-
<a class="related-card" href="/guides/pre-action-checks">
|
|
390
|
-
<span class="related-label">Related page</span>
|
|
391
|
-
<strong>What Are Pre-Action Checks?</strong>
|
|
392
|
-
</a>
|
|
393
|
-
<a class="related-card" href="/guides/ai-agent-pre-action-approval-gates">
|
|
394
|
-
<span class="related-label">Related page</span>
|
|
395
|
-
<strong>AI agent pre-action approval gates for risky tool calls</strong>
|
|
396
|
-
</a>
|
|
397
|
-
<a class="related-card" href="/guides/best-tools-stop-ai-agents-breaking-production">
|
|
398
|
-
<span class="related-label">Related page</span>
|
|
399
|
-
<strong>Best Tools to Stop AI Agents From Breaking Production</strong>
|
|
400
|
-
</a>
|
|
401
|
-
</div>
|
|
402
|
-
</aside>
|
|
403
|
-
</section>
|
|
404
|
-
</main>
|
|
405
|
-
</body>
|
|
406
|
-
</html>
|