thumbgate 1.27.12 → 1.27.13
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/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
package/public/compare/mem0.html
DELETED
|
@@ -1,342 +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>ThumbGate vs Mem0 | Enforcement vs Persistent Memory for AI Agents</title>
|
|
7
|
-
<meta name="description" content="Mem0 is persistent memory for AI agents. ThumbGate adapts scoped memory, entity-linked recall, and lifecycle pruning, then adds pre-action enforcement that blocks repeated mistakes." />
|
|
8
|
-
<meta property="og:title" content="ThumbGate vs Mem0 | Enforcement vs Persistent Memory for AI Agents" />
|
|
9
|
-
<meta property="og:description" content="Mem0 is persistent memory for AI agents. ThumbGate adapts scoped memory, entity-linked recall, and lifecycle pruning, then adds pre-action enforcement that blocks repeated mistakes." />
|
|
10
|
-
<meta property="og:type" content="article" />
|
|
11
|
-
<meta property="og:url" content="https://thumbgate.ai/compare/mem0" />
|
|
12
|
-
<link rel="canonical" href="https://thumbgate.ai/compare/mem0" />
|
|
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
|
-
.faq-item {
|
|
172
|
-
border-top: 1px solid var(--line);
|
|
173
|
-
padding: 14px 0;
|
|
174
|
-
}
|
|
175
|
-
.faq-item summary {
|
|
176
|
-
cursor: pointer;
|
|
177
|
-
font-weight: 600;
|
|
178
|
-
}
|
|
179
|
-
.faq-item p {
|
|
180
|
-
color: var(--muted);
|
|
181
|
-
}
|
|
182
|
-
.related-card {
|
|
183
|
-
display: block;
|
|
184
|
-
padding: 14px;
|
|
185
|
-
border-radius: 12px;
|
|
186
|
-
border: 1px solid var(--line);
|
|
187
|
-
background: var(--bg-raised);
|
|
188
|
-
margin-top: 12px;
|
|
189
|
-
color: var(--text);
|
|
190
|
-
}
|
|
191
|
-
.related-label {
|
|
192
|
-
display: block;
|
|
193
|
-
color: var(--muted);
|
|
194
|
-
font-size: 12px;
|
|
195
|
-
text-transform: uppercase;
|
|
196
|
-
letter-spacing: 0.08em;
|
|
197
|
-
margin-bottom: 4px;
|
|
198
|
-
}
|
|
199
|
-
@media (max-width: 860px) {
|
|
200
|
-
.grid {
|
|
201
|
-
grid-template-columns: 1fr;
|
|
202
|
-
}
|
|
203
|
-
.sidebar-card:first-child {
|
|
204
|
-
position: static;
|
|
205
|
-
max-height: none;
|
|
206
|
-
overflow: visible;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
</style>
|
|
210
|
-
<script type="application/ld+json">
|
|
211
|
-
{
|
|
212
|
-
"@context": "https://schema.org",
|
|
213
|
-
"@type": "TechArticle",
|
|
214
|
-
"headline": "ThumbGate vs Mem0",
|
|
215
|
-
"description": "Mem0 is persistent memory for AI agents. ThumbGate adapts scoped memory, entity-linked recall, and lifecycle pruning, then adds pre-action enforcement that blocks repeated mistakes.",
|
|
216
|
-
"about": [
|
|
217
|
-
"thumbgate vs speclock",
|
|
218
|
-
"thumbgate vs mem0",
|
|
219
|
-
"thumbgate vs fallow",
|
|
220
|
-
"roo code alternative cline"
|
|
221
|
-
],
|
|
222
|
-
"url": "https://thumbgate.ai/compare/mem0",
|
|
223
|
-
"publisher": {
|
|
224
|
-
"@type": "Organization",
|
|
225
|
-
"name": "ThumbGate",
|
|
226
|
-
"url": "https://thumbgate.ai"
|
|
227
|
-
},
|
|
228
|
-
"mainEntityOfPage": "https://thumbgate.ai/compare/mem0"
|
|
229
|
-
}
|
|
230
|
-
</script>
|
|
231
|
-
<script type="application/ld+json">
|
|
232
|
-
{
|
|
233
|
-
"@context": "https://schema.org",
|
|
234
|
-
"@type": "FAQPage",
|
|
235
|
-
"mainEntity": [
|
|
236
|
-
{
|
|
237
|
-
"@type": "Question",
|
|
238
|
-
"name": "Does ThumbGate still include memory?",
|
|
239
|
-
"acceptedAnswer": {
|
|
240
|
-
"@type": "Answer",
|
|
241
|
-
"text": "Yes. ThumbGate keeps local-first memory, ContextFS packs, lesson search, and recall, but adds pre-action enforcement when memory alone is insufficient."
|
|
242
|
-
}
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
"@type": "Question",
|
|
246
|
-
"name": "Why compare Mem0 at all?",
|
|
247
|
-
"acceptedAnswer": {
|
|
248
|
-
"@type": "Answer",
|
|
249
|
-
"text": "Because buyers often start with memory tooling and only later realize they also need enforcement. This page makes that upgrade path explicit."
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
]
|
|
253
|
-
}
|
|
254
|
-
</script>
|
|
255
|
-
</head>
|
|
256
|
-
<body>
|
|
257
|
-
<div class="topbar">
|
|
258
|
-
<div class="container">
|
|
259
|
-
<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>
|
|
260
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a>
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
|
|
264
|
-
<main class="container">
|
|
265
|
-
<section class="hero">
|
|
266
|
-
<div class="eyebrow">comparison | thumbgate vs mem0</div>
|
|
267
|
-
<h1>ThumbGate vs Mem0</h1>
|
|
268
|
-
<p>Mem0 is persistent memory for AI agents. ThumbGate uses the same high-value pattern, scoped recall over prior interactions, but narrows it to corrective memory that can become an enforceable pre-action gate.</p>
|
|
269
|
-
<div class="signal-row">
|
|
270
|
-
<div class="signal-pill up">👍 Thumbs up reinforces good behavior</div>
|
|
271
|
-
<div class="signal-pill down">👎 Thumbs down blocks repeated mistakes</div>
|
|
272
|
-
</div>
|
|
273
|
-
</section>
|
|
274
|
-
|
|
275
|
-
<section class="grid">
|
|
276
|
-
<div>
|
|
277
|
-
<div class="card">
|
|
278
|
-
<h2>Why this page exists</h2>
|
|
279
|
-
<ul><li>Mem0 is useful when you mainly need persistent personalization, user preferences, and cross-session context.</li><li>ThumbGate is useful when the memory is about a risky action that must be stopped before execution.</li><li>The highest-ROI buyer story is not "we remember more." It is "we remember the mistake, retrieve the right lesson, and block the repeat attempt with proof."</li></ul>
|
|
280
|
-
</div>
|
|
281
|
-
|
|
282
|
-
<section class="detail-section">
|
|
283
|
-
<h2>What Mem0 gets right</h2>
|
|
284
|
-
<p>Mem0's public positioning makes the correct bet: agents need an external memory layer so they can remember across sessions without dumping every old transcript back into the prompt.</p>
|
|
285
|
-
<ul><li>Scoped memory: different recall for a user, session, project, or organization.</li><li>Hybrid retrieval: combine keyword matching with entity-aware or semantic recall.</li><li>Lifecycle hygiene: prune or consolidate stale memories so context does not become prompt bloat.</li><li>Measured value: show token, latency, and quality impact instead of vague "better memory" claims.</li></ul>
|
|
286
|
-
</section>
|
|
287
|
-
<section class="detail-section">
|
|
288
|
-
<h2>What ThumbGate adds</h2>
|
|
289
|
-
<p>ThumbGate now applies the same memory-layer ideas to enforcement memory. Lessons are classified by scope, linked to concrete entities such as Stripe, GitHub, files, and commands, and marked active, sticky, review, or archive-candidate before recall.</p>
|
|
290
|
-
<ul><li>Thumbs up reinforces good behavior.</li><li>Thumbs down creates corrective memory with source and outcome evidence.</li><li>High-risk memories stay sticky until explicitly retired.</li><li>Repeated failures can promote from lesson search into prevention rules and PreToolUse gates.</li><li>Verification evidence and automation reports back up the reliability claim.</li></ul>
|
|
291
|
-
</section>
|
|
292
|
-
<section class="detail-section">
|
|
293
|
-
<h2>When to use each</h2>
|
|
294
|
-
<p>Use Mem0-style memory when the goal is personalization or long-lived assistant context. Use ThumbGate when the remembered item is operational risk: force-pushes, destructive SQL, bad checkout links, deploy shortcuts, missing proof, leaked secrets, or repeated workflow failures.</p>
|
|
295
|
-
<p>Memory helps the agent know. Enforcement decides what the agent is allowed to do next.</p>
|
|
296
|
-
</section>
|
|
297
|
-
<div class="detail-section">
|
|
298
|
-
<h2>FAQ</h2>
|
|
299
|
-
|
|
300
|
-
<details class="faq-item">
|
|
301
|
-
<summary>Does ThumbGate still include memory?</summary>
|
|
302
|
-
<p>Yes. ThumbGate keeps local-first memory, ContextFS packs, lesson search, and recall, but adds pre-action enforcement when memory alone is insufficient.</p>
|
|
303
|
-
</details>
|
|
304
|
-
<details class="faq-item">
|
|
305
|
-
<summary>Why compare Mem0 at all?</summary>
|
|
306
|
-
<p>Because buyers often start with memory tooling and only later realize they also need enforcement. This page makes that upgrade path explicit.</p>
|
|
307
|
-
</details>
|
|
308
|
-
</div>
|
|
309
|
-
</div>
|
|
310
|
-
|
|
311
|
-
<aside class="sidebar">
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
<div class="sidebar-card">
|
|
317
|
-
<h2>GSD execution brief</h2>
|
|
318
|
-
<p>This page was prioritized because persistent AI memory is becoming a default buyer expectation. ThumbGate uses those patterns for corrective recall, then sells the harder outcome: blocked repeat mistakes before execution.</p>
|
|
319
|
-
<p><strong>Opportunity score:</strong> 100</p>
|
|
320
|
-
<p><strong>Primary persona:</strong> tool-evaluator</p>
|
|
321
|
-
<p><strong>Keyword cluster:</strong> thumbgate vs speclock, thumbgate vs mem0, thumbgate vs fallow, roo code alternative cline</p>
|
|
322
|
-
<p><strong>Pricing:</strong> Pro $19/mo or $149/yr. Team $49/seat/mo.</p>
|
|
323
|
-
<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>
|
|
324
|
-
<a class="cta-button" href="/checkout/pro?utm_source=website&utm_medium=seo_page&utm_campaign=compare_mem0&cta_placement=seo_brief&plan_id=pro" target="_blank" rel="noopener">Go Pro — $19/mo</a>
|
|
325
|
-
</div>
|
|
326
|
-
<div class="sidebar-card">
|
|
327
|
-
<h2>Related pages</h2>
|
|
328
|
-
|
|
329
|
-
<a class="related-card" href="/compare/speclock">
|
|
330
|
-
<span class="related-label">Related page</span>
|
|
331
|
-
<strong>ThumbGate vs SpecLock</strong>
|
|
332
|
-
</a>
|
|
333
|
-
<a class="related-card" href="/guides/claude-code-feedback">
|
|
334
|
-
<span class="related-label">Related page</span>
|
|
335
|
-
<strong>Claude Code Feedback Memory That Actually Enforces</strong>
|
|
336
|
-
</a>
|
|
337
|
-
</div>
|
|
338
|
-
</aside>
|
|
339
|
-
</section>
|
|
340
|
-
</main>
|
|
341
|
-
</body>
|
|
342
|
-
</html>
|
|
@@ -1,289 +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>ThumbGate vs Gatekeeper (Oak & Sparrow) | Agent-Action Gate Pairs With Workforce-Input Gate</title>
|
|
7
|
-
<meta name="description" content="Oak & Sparrow's Gatekeeper sits at the browser boundary to block employees from pasting regulated data into ChatGPT/Copilot/Gemini. ThumbGate sits at the PreToolUse boundary to block AI coding agents from executing bad tool calls. Same deterministic-gate philosophy, different layers. Use both for full coverage." />
|
|
8
|
-
<meta property="og:title" content="ThumbGate vs Gatekeeper | Agent-Action Gate Pairs With Workforce-Input Gate" />
|
|
9
|
-
<meta property="og:description" content="Gatekeeper stops employees from leaking regulated data into commercial AI. ThumbGate stops coding agents from executing bad tool calls. Both deterministic, no AI in the gate. Complementary." />
|
|
10
|
-
<meta property="og:type" content="article" />
|
|
11
|
-
<meta property="og:url" content="https://thumbgate.ai/compare/oak-and-sparrow-gatekeeper" />
|
|
12
|
-
<link rel="canonical" href="https://thumbgate.ai/compare/oak-and-sparrow-gatekeeper" />
|
|
13
|
-
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
-
<link rel="icon" type="image/png" 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 { --bg: #0a0a0b; --bg-raised: #111113; --bg-card: #161618; --line: #222225; --text: #e8e8ec; --muted: #8b8b96; --cyan: #22d3ee; --green: #4ade80; --amber: #fbbf24; }
|
|
19
|
-
* { box-sizing: border-box; }
|
|
20
|
-
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); line-height: 1.65; }
|
|
21
|
-
a { color: var(--cyan); text-decoration: none; }
|
|
22
|
-
a:hover { text-decoration: underline; }
|
|
23
|
-
.container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
|
|
24
|
-
.topbar { position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); background: rgba(10, 10, 11, 0.88); border-bottom: 1px solid var(--line); }
|
|
25
|
-
.topbar .container { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; padding-bottom: 14px; }
|
|
26
|
-
.brand { font-weight: 700; color: var(--text); display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
|
|
27
|
-
.brand .logo-mark { width: 28px; height: 28px; display: block; }
|
|
28
|
-
.hero { padding: 72px 0 32px; }
|
|
29
|
-
.eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(34, 211, 238, 0.22); background: rgba(34, 211, 238, 0.1); color: var(--cyan); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 700; }
|
|
30
|
-
h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.06; letter-spacing: -0.04em; margin: 16px 0; max-width: 860px; }
|
|
31
|
-
.hero p { max-width: 760px; color: var(--muted); font-size: 18px; }
|
|
32
|
-
.grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; padding-bottom: 72px; }
|
|
33
|
-
.card, .detail-section, .sidebar-card { background: var(--bg-card); border: 1px solid var(--line); border-radius: 16px; }
|
|
34
|
-
.card { padding: 24px; }
|
|
35
|
-
.detail-section { padding: 24px; margin-bottom: 18px; }
|
|
36
|
-
.detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
|
|
37
|
-
.detail-section p, .detail-section li, .sidebar-card p { color: var(--muted); }
|
|
38
|
-
.detail-section ul, .card ul { padding-left: 18px; color: var(--muted); }
|
|
39
|
-
.comparison-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 14px; }
|
|
40
|
-
.comparison-table th, .comparison-table td { border: 1px solid var(--line); padding: 12px; text-align: left; vertical-align: top; }
|
|
41
|
-
.comparison-table th { background: var(--bg-raised); color: var(--cyan); }
|
|
42
|
-
.pill-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
|
|
43
|
-
.pill { border: 1px solid var(--line); background: var(--bg-raised); border-radius: 999px; padding: 10px 14px; font-size: 14px; font-weight: 650; }
|
|
44
|
-
.pill.good { color: #b8f7c8; border-color: rgba(74, 222, 128, 0.28); background: rgba(74, 222, 128, 0.1); }
|
|
45
|
-
.pill.warn { color: #ffe2a4; border-color: rgba(251, 191, 36, 0.28); background: rgba(251, 191, 36, 0.1); }
|
|
46
|
-
.sidebar { display: flex; flex-direction: column; gap: 18px; }
|
|
47
|
-
.sidebar-card { padding: 20px; }
|
|
48
|
-
.sidebar-card:first-child { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
|
|
49
|
-
.cta-button { display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 12px 16px; border-radius: 10px; background: var(--cyan); color: #071116; font-weight: 700; text-decoration: none; }
|
|
50
|
-
.related-card { display: block; padding: 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg-raised); margin-top: 12px; color: var(--text); }
|
|
51
|
-
.related-label { display: block; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
|
|
52
|
-
.faq-item { border-top: 1px solid var(--line); padding: 14px 0; }
|
|
53
|
-
.faq-item summary { cursor: pointer; font-weight: 600; }
|
|
54
|
-
.faq-item p { color: var(--muted); }
|
|
55
|
-
blockquote { border-left: 3px solid var(--cyan); margin: 14px 0; padding: 6px 16px; color: var(--text); font-style: italic; background: rgba(34, 211, 238, 0.05); }
|
|
56
|
-
@media (max-width: 860px) { .grid { grid-template-columns: 1fr; } .sidebar-card:first-child { position: static; max-height: none; overflow: visible; } }
|
|
57
|
-
</style>
|
|
58
|
-
<script type="application/ld+json">
|
|
59
|
-
{
|
|
60
|
-
"@context": "https://schema.org",
|
|
61
|
-
"@type": "TechArticle",
|
|
62
|
-
"headline": "ThumbGate vs Gatekeeper (Oak & Sparrow Systems)",
|
|
63
|
-
"description": "Gatekeeper intercepts employee inputs to commercial AI systems (ChatGPT, Copilot, Gemini) at the browser boundary, blocking violations of HIPAA, FERPA, CCPA, COPPA, CPNI, PCI, FINRA, and the EU AI Act. ThumbGate intercepts AI coding agent tool calls at the PreToolUse boundary inside Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode, and Claude Desktop. Same deterministic-gate architectural philosophy. Different layers, different buyers, zero overlap.",
|
|
64
|
-
"about": ["thumbgate vs gatekeeper", "AI governance enforcement layer", "PreToolUse hooks vs browser-boundary interception", "deterministic AI gates"],
|
|
65
|
-
"url": "https://thumbgate.ai/compare/oak-and-sparrow-gatekeeper",
|
|
66
|
-
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
67
|
-
"mainEntityOfPage": "https://thumbgate.ai/compare/oak-and-sparrow-gatekeeper"
|
|
68
|
-
}
|
|
69
|
-
</script>
|
|
70
|
-
<script type="application/ld+json">
|
|
71
|
-
{
|
|
72
|
-
"@context": "https://schema.org",
|
|
73
|
-
"@type": "FAQPage",
|
|
74
|
-
"mainEntity": [
|
|
75
|
-
{
|
|
76
|
-
"@type": "Question",
|
|
77
|
-
"name": "Is Gatekeeper a competitor to ThumbGate?",
|
|
78
|
-
"acceptedAnswer": {
|
|
79
|
-
"@type": "Answer",
|
|
80
|
-
"text": "Architectural cousins, not competitors. Both products share the same enforcement philosophy: deterministic rules, no AI in the gate, sealed audit evidence. But they operate on different surfaces. Gatekeeper (by Oak & Sparrow Systems Enterprise) intercepts the input box of commercial AI tools that employees use — ChatGPT, Copilot, Gemini — at the browser boundary, before regulated data leaves the building. ThumbGate intercepts the tool call an AI coding agent is about to execute — bash, SQL, file write, HTTP fetch, MCP tool — before the side effect happens. Same architectural class, complementary scope."
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"@type": "Question",
|
|
85
|
-
"name": "Should I use Gatekeeper or ThumbGate?",
|
|
86
|
-
"acceptedAnswer": {
|
|
87
|
-
"@type": "Answer",
|
|
88
|
-
"text": "Use both if you have both threats. If your concern is employees pasting customer SSNs, PHI, financial records, or other regulated data into ChatGPT/Copilot/Gemini and you need legal-evidence-grade proof that the block happened, that is Gatekeeper's job — it ships 93 deontic rules mapped to HIPAA, FERPA, CCPA, COPPA, CPNI, PCI, FINRA, the EU AI Act, and state chatbot laws. If your concern is an AI coding agent (Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode) running rm -rf, force-pushing main, dropping a production table, or fetching from a privilege-leaking external URL, that is ThumbGate's job."
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"@type": "Question",
|
|
93
|
-
"name": "Do they overlap technically?",
|
|
94
|
-
"acceptedAnswer": {
|
|
95
|
-
"@type": "Answer",
|
|
96
|
-
"text": "No. Gatekeeper hooks the browser; ThumbGate hooks the PreToolUse boundary inside agent runtimes. Different attach points, different request shapes, different rule corpora (statute-derived vs operator-feedback-derived). Running both does not create policy conflicts because each sees a different request layer."
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"@type": "Question",
|
|
101
|
-
"name": "Both say 'deterministic, no AI in the gate'. Why is that important?",
|
|
102
|
-
"acceptedAnswer": {
|
|
103
|
-
"@type": "Answer",
|
|
104
|
-
"text": "An enforcement layer that calls an LLM to decide whether to block introduces the same non-determinism the layer is supposed to fix. Both Gatekeeper and ThumbGate solve this the same way: pure pattern matching against a deterministic rule set. Gatekeeper's rules are derived from statutes (each rule maps to a specific legal citation). ThumbGate's rules are derived from operator feedback through Thompson Sampling auto-promotion (each rule must pass precision/recall thresholds before going live). Different sources of truth, same fast / auditable / no-LLM enforcement path."
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"@type": "Question",
|
|
109
|
-
"name": "Can a regulated firm (law, finance, healthcare) install both?",
|
|
110
|
-
"acceptedAnswer": {
|
|
111
|
-
"@type": "Answer",
|
|
112
|
-
"text": "Yes. The most common dual-use story we expect: a firm uses Gatekeeper to enforce that no PHI / FERPA-protected / non-public-personal-info text gets pasted into ChatGPT by anyone in the org, AND uses ThumbGate to enforce that the firm's AI coding agents and intake bots cannot execute privileged actions (unauthorized practice of law, conflict-of-interest violations, privilege-leaking egress) when they generate code or take tool actions inside Claude Code / Cursor / Codex. Workforce-input gate + agent-action gate covers the AI compliance perimeter end to end."
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
]
|
|
116
|
-
}
|
|
117
|
-
</script>
|
|
118
|
-
</head>
|
|
119
|
-
<body>
|
|
120
|
-
<div class="topbar">
|
|
121
|
-
<div class="container">
|
|
122
|
-
<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>
|
|
123
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a>
|
|
124
|
-
</div>
|
|
125
|
-
</div>
|
|
126
|
-
|
|
127
|
-
<section class="hero">
|
|
128
|
-
<div class="container">
|
|
129
|
-
<span class="eyebrow">ThumbGate vs Gatekeeper (Oak & Sparrow)</span>
|
|
130
|
-
<h1>Gatekeeper stops employees leaking data into ChatGPT. ThumbGate stops coding agents executing bad tool calls. Same philosophy, different layer.</h1>
|
|
131
|
-
<p><strong>Gatekeeper</strong> (by <a href="https://oakandsparrowsystemsenterprise.io/" target="_blank" rel="noopener">Oak & Sparrow Systems Enterprise</a>) intercepts every input an employee types into a commercial AI system (ChatGPT, Copilot, Gemini) at the browser boundary, blocking violations of HIPAA, FERPA, CCPA, COPPA, CPNI, PCI, FINRA, and the EU AI Act before the data leaves the building. <strong>ThumbGate</strong> intercepts the tool call an AI coding agent is about to make — bash, SQL, file write, MCP tool, outbound LLM call — inside Claude Code, Cursor, OpenAI Codex CLI, Google Gemini CLI, Sourcegraph Amp, Cline, OpenCode, and Claude Desktop. Both products say *"deterministic enforcement, no AI in the gate."* They mean it.</p>
|
|
132
|
-
<div class="pill-row">
|
|
133
|
-
<span class="pill">Both deterministic</span>
|
|
134
|
-
<span class="pill">Both no AI in the gate</span>
|
|
135
|
-
<span class="pill">Different surfaces</span>
|
|
136
|
-
<span class="pill good">Use both for full coverage</span>
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
</section>
|
|
140
|
-
|
|
141
|
-
<div class="container grid">
|
|
142
|
-
<main>
|
|
143
|
-
<article class="detail-section">
|
|
144
|
-
<h2>Side-by-side scope comparison</h2>
|
|
145
|
-
<table class="comparison-table">
|
|
146
|
-
<thead>
|
|
147
|
-
<tr>
|
|
148
|
-
<th>Capability</th>
|
|
149
|
-
<th>Gatekeeper (Oak & Sparrow)</th>
|
|
150
|
-
<th>ThumbGate</th>
|
|
151
|
-
</tr>
|
|
152
|
-
</thead>
|
|
153
|
-
<tbody>
|
|
154
|
-
<tr>
|
|
155
|
-
<td>What it intercepts</td>
|
|
156
|
-
<td>Every input an employee types into a commercial AI system (ChatGPT, Copilot, Gemini), at the browser boundary, before transmission</td>
|
|
157
|
-
<td>Every tool call an AI coding agent attempts (bash, SQL, file write, HTTP fetch, MCP tool), at the PreToolUse boundary inside the agent runtime, before execution</td>
|
|
158
|
-
</tr>
|
|
159
|
-
<tr>
|
|
160
|
-
<td>Who buys it</td>
|
|
161
|
-
<td>Compliance officers, CISOs, legal teams at regulated firms (healthcare, finance, education, telco)</td>
|
|
162
|
-
<td>Engineering leaders + devs using AI coding agents; law firms / regulated dev teams adopting agentic intake workflows</td>
|
|
163
|
-
</tr>
|
|
164
|
-
<tr>
|
|
165
|
-
<td>Rule source</td>
|
|
166
|
-
<td>93 deontic rules derived from active statutes (HIPAA, FERPA, CCPA/CPRA, COPPA, CPNI, PCI DSS, FINRA, EU AI Act, SB-1001 CA, Colorado AI Act). Each rule maps to a specific legal citation.</td>
|
|
167
|
-
<td>Operator feedback (👍/👎) auto-promoted via Thompson Sampling; LLM-generated candidates that must pass precision/recall gates before activation. Each rule traceable to the lesson that produced it.</td>
|
|
168
|
-
</tr>
|
|
169
|
-
<tr>
|
|
170
|
-
<td>Enforcement primitive</td>
|
|
171
|
-
<td>Deterministic pattern matching; no AI in the gate</td>
|
|
172
|
-
<td>Deterministic pattern matching; no LLM in the gate</td>
|
|
173
|
-
</tr>
|
|
174
|
-
<tr>
|
|
175
|
-
<td>Evidence output</td>
|
|
176
|
-
<td>SHA-256 linked artifacts, timestamped, hashed, chain-linked, statute-referenced — designed as legal evidence</td>
|
|
177
|
-
<td>Audit log entries with rule version + source lesson + decision + reviewer + timestamp; DPO preference pairs for downstream model hardening; HuggingFace dataset export</td>
|
|
178
|
-
</tr>
|
|
179
|
-
<tr>
|
|
180
|
-
<td>Status surface</td>
|
|
181
|
-
<td>GREEN (system ran) / YELLOW (risk caught) / RED (violation prevented)</td>
|
|
182
|
-
<td>Per-agent / per-gate hit rates, agent inventory, remediations, token-savings telemetry on <a href="/dashboard">/dashboard</a></td>
|
|
183
|
-
</tr>
|
|
184
|
-
<tr>
|
|
185
|
-
<td>Attach point</td>
|
|
186
|
-
<td>Browser extension / web boundary, before the HTTP request to OpenAI / Microsoft / Google reaches the AI provider</td>
|
|
187
|
-
<td>PreToolUse hook inside the agent runtime, before the tool call (bash, SQL, MCP, etc.) hits the OS / network</td>
|
|
188
|
-
</tr>
|
|
189
|
-
<tr>
|
|
190
|
-
<td>License / availability</td>
|
|
191
|
-
<td>Enterprise (no public pricing published as of 2026-05-27)</td>
|
|
192
|
-
<td>MIT-licensed npm package (free local CLI); $19/mo Pro for hosted sync + dashboard + DPO export; $49/seat Team for shared lesson DB + workflow hardening</td>
|
|
193
|
-
</tr>
|
|
194
|
-
</tbody>
|
|
195
|
-
</table>
|
|
196
|
-
</article>
|
|
197
|
-
|
|
198
|
-
<article class="detail-section">
|
|
199
|
-
<h2>The shared architectural insight</h2>
|
|
200
|
-
<p>Gatekeeper's site frames its core design constraint in eight words:</p>
|
|
201
|
-
<blockquote>"Deterministic enforcement — no AI in the gate."</blockquote>
|
|
202
|
-
<p>ThumbGate ships the same constraint, written in our own architecture docs as <em>"no LLM on the enforcement path."</em> Both products converge on the same conclusion for the same reason: an enforcement layer that calls an LLM to decide whether to block re-introduces the non-determinism the layer is supposed to remove. A gate that occasionally hallucinates is not a gate — it is a suggestion.</p>
|
|
203
|
-
<p>The deterministic constraint forces a different question: <em>where does the rule corpus come from?</em></p>
|
|
204
|
-
<ul>
|
|
205
|
-
<li><strong>Gatekeeper's answer:</strong> derive rules from statutes. Each of the 93 deontic rules maps to a specific legal citation. The ontology is built from the law, not from assumptions. This makes the output usable as legal evidence in regulated industries.</li>
|
|
206
|
-
<li><strong>ThumbGate's answer:</strong> derive rules from operator feedback. 👎 thumbs-down on a bad agent action becomes a history-aware lesson, then a candidate prevention rule, then — only after passing precision/recall gates — an enforced Pre-Action Check. The ontology is built from observed agent mistakes, not from assumed ones.</li>
|
|
207
|
-
</ul>
|
|
208
|
-
<p>Same enforcement primitive. Different rule provenance. Use both if both data sources matter to your compliance posture.</p>
|
|
209
|
-
</article>
|
|
210
|
-
|
|
211
|
-
<article class="detail-section">
|
|
212
|
-
<h2>The dual-deploy story we expect for regulated firms</h2>
|
|
213
|
-
<p>The buyer who needs both products at once is a regulated firm adopting AI coding agents for internal automation. A concrete picture:</p>
|
|
214
|
-
<p>A law firm has 600 lawyers and paralegals using ChatGPT for routine drafting. <strong>Gatekeeper</strong> sits in the browser and blocks any input containing PHI markers, ABA Rule 5.5 — Unauthorized Practice of Law indicators, conflict-of-interest markers, or attorney-client privileged content from leaving the firm boundary. Every block is sealed as legal evidence the firm can produce in an ethics inquiry.</p>
|
|
215
|
-
<p>The same firm has built an AI intake bot using Cursor + Anthropic's API that handles inbound client questions. <strong>ThumbGate</strong> sits at the PreToolUse boundary inside that bot's agent runtime and blocks (a) advice-shaped output ("you should file in the Southern District of Florida") that would constitute unauthorized practice of law from a non-attorney source, (b) document fetches against parties already on the firm's adverse-parties list, and (c) outbound LLM calls carrying privilege markers. We've published interactive demos of all three gates at <a href="/ai-malpractice-prevention#live-gate-demos">/ai-malpractice-prevention</a>.</p>
|
|
216
|
-
<p>One stack: workforce-input gate + agent-action gate. End-to-end AI compliance perimeter.</p>
|
|
217
|
-
</article>
|
|
218
|
-
|
|
219
|
-
<article class="detail-section">
|
|
220
|
-
<h2>FAQ</h2>
|
|
221
|
-
<details class="faq-item" open>
|
|
222
|
-
<summary>Is Gatekeeper a competitor to ThumbGate?</summary>
|
|
223
|
-
<p>Architectural cousins, not competitors. Same enforcement philosophy (deterministic, no AI in the gate, sealed audit), different surfaces (employee browser input vs agent tool call). Different buyers. Different rule corpora. Zero technical overlap.</p>
|
|
224
|
-
</details>
|
|
225
|
-
<details class="faq-item">
|
|
226
|
-
<summary>Should I use Gatekeeper or ThumbGate?</summary>
|
|
227
|
-
<p>Use both if you have both threats. Gatekeeper for employees pasting regulated data into commercial AI. ThumbGate for AI coding agents executing bad tool calls. They cover different halves of the AI compliance perimeter.</p>
|
|
228
|
-
</details>
|
|
229
|
-
<details class="faq-item">
|
|
230
|
-
<summary>Do they overlap technically?</summary>
|
|
231
|
-
<p>No. Gatekeeper hooks the browser; ThumbGate hooks the PreToolUse boundary inside agent runtimes. Different attach points, different request shapes, different rule corpora. Running both does not create policy conflicts.</p>
|
|
232
|
-
</details>
|
|
233
|
-
<details class="faq-item">
|
|
234
|
-
<summary>Both say "deterministic, no AI in the gate." Why?</summary>
|
|
235
|
-
<p>An enforcement layer that calls an LLM to decide whether to block introduces the same non-determinism the layer is supposed to remove. Both products converge on pure pattern matching against a deterministic rule set for that reason.</p>
|
|
236
|
-
</details>
|
|
237
|
-
<details class="faq-item">
|
|
238
|
-
<summary>Where do I start?</summary>
|
|
239
|
-
<p>Talk to <a href="https://oakandsparrowsystemsenterprise.io/" target="_blank" rel="noopener">Oak & Sparrow</a> for workforce-input governance against ChatGPT / Copilot / Gemini. <code>npx thumbgate init</code> for AI coding agent runtime governance against Claude Code / Cursor / Codex / Gemini CLI / Amp / Cline / OpenCode / Claude Desktop. Different sales motions, different deployment surfaces.</p>
|
|
240
|
-
</details>
|
|
241
|
-
</article>
|
|
242
|
-
</main>
|
|
243
|
-
|
|
244
|
-
<aside class="sidebar">
|
|
245
|
-
<div class="sidebar-card">
|
|
246
|
-
<h3 style="margin: 0 0 8px;">Install ThumbGate free</h3>
|
|
247
|
-
<p>10 captures/day, 3 active rules, PreToolUse blocking across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, Claude Desktop.</p>
|
|
248
|
-
<pre style="background: var(--bg-raised); border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 13px; overflow: auto;">npx thumbgate init</pre>
|
|
249
|
-
<a class="cta-button" href="/pricing">See Pro vs Team pricing →</a>
|
|
250
|
-
<p style="font-size: 12px; margin-top: 16px;">MIT licensed. No telemetry without opt-in. <code>THUMBGATE_NO_TELEMETRY=1</code> disables.</p>
|
|
251
|
-
</div>
|
|
252
|
-
|
|
253
|
-
<div class="sidebar-card">
|
|
254
|
-
<span class="related-label">Visit Oak & Sparrow</span>
|
|
255
|
-
<p style="font-size: 13px;">Workforce-input governance for ChatGPT / Copilot / Gemini at the browser boundary. <a href="https://oakandsparrowsystemsenterprise.io/" target="_blank" rel="noopener">oakandsparrowsystemsenterprise.io</a></p>
|
|
256
|
-
</div>
|
|
257
|
-
|
|
258
|
-
<div class="sidebar-card">
|
|
259
|
-
<span class="related-label">Related comparisons</span>
|
|
260
|
-
<a class="related-card" href="/compare/anthropic-containment">
|
|
261
|
-
<strong>ThumbGate vs Anthropic's Claude Containment</strong><br>
|
|
262
|
-
<span style="color: var(--muted); font-size: 13px;">IDE-agent extension of Anthropic's published architecture</span>
|
|
263
|
-
</a>
|
|
264
|
-
<a class="related-card" href="/compare/bumblebee">
|
|
265
|
-
<strong>ThumbGate vs Bumblebee</strong><br>
|
|
266
|
-
<span style="color: var(--muted); font-size: 13px;">Runtime enforcement vs Perplexity's static MCP inventory</span>
|
|
267
|
-
</a>
|
|
268
|
-
<a class="related-card" href="/compare/claude-code-hooks">
|
|
269
|
-
<strong>ThumbGate vs claude-code-hooks</strong><br>
|
|
270
|
-
<span style="color: var(--muted); font-size: 13px;">Hosted sync vs local shell scripts</span>
|
|
271
|
-
</a>
|
|
272
|
-
<a class="related-card" href="/compare/arcjet">
|
|
273
|
-
<strong>ThumbGate vs Arcjet</strong><br>
|
|
274
|
-
<span style="color: var(--muted); font-size: 13px;">Agent-outbound gate vs app-inbound firewall</span>
|
|
275
|
-
</a>
|
|
276
|
-
<a class="related-card" href="/compare/anthropic-claude-for-legal">
|
|
277
|
-
<strong>ThumbGate vs Claude for Legal</strong><br>
|
|
278
|
-
<span style="color: var(--muted); font-size: 13px;">Runtime feedback-to-enforcement loop underneath Anthropic's legal bundle</span>
|
|
279
|
-
</a>
|
|
280
|
-
</div>
|
|
281
|
-
|
|
282
|
-
<div class="sidebar-card">
|
|
283
|
-
<span class="related-label">Sources</span>
|
|
284
|
-
<p style="font-size: 13px;">Gatekeeper feature claims and verbatim quotes from <a href="https://oakandsparrowsystemsenterprise.io/" target="_blank" rel="noopener">oakandsparrowsystemsenterprise.io</a> as of 2026-05-27. If anything here misrepresents Gatekeeper, open an issue at <a href="https://github.com/IgorGanapolsky/ThumbGate/issues" target="_blank" rel="noopener">our repo</a> and we'll correct it.</p>
|
|
285
|
-
</div>
|
|
286
|
-
</aside>
|
|
287
|
-
</div>
|
|
288
|
-
</body>
|
|
289
|
-
</html>
|