thumbgate 1.15.0 → 1.16.1
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/marketplace.json +6 -6
- package/.claude-plugin/plugin.json +3 -3
- package/.well-known/llms.txt +5 -5
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +59 -35
- package/adapters/chatgpt/openapi.yaml +118 -2
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +210 -84
- package/adapters/opencode/opencode.json +1 -1
- package/bench/prompt-eval-suite.json +5 -1
- package/bin/cli.js +157 -8
- package/config/evals/agent-safety-eval.json +338 -22
- package/config/gates/routine.json +43 -0
- package/config/github-about.json +3 -3
- package/config/model-candidates.json +131 -0
- package/openapi/openapi.yaml +118 -2
- package/package.json +57 -49
- package/public/blog.html +7 -7
- package/public/codex-plugin.html +6 -6
- package/public/compare.html +29 -23
- package/public/dashboard.html +82 -10
- package/public/guide.html +28 -28
- package/public/index.html +216 -98
- package/public/learn.html +50 -22
- package/public/lessons.html +1 -1
- package/public/numbers.html +17 -17
- package/public/pro.html +82 -18
- package/scripts/agent-audit-trace.js +55 -0
- package/scripts/agent-memory-lifecycle.js +96 -0
- package/scripts/agent-readiness-plan.js +118 -0
- package/scripts/agentic-data-pipeline.js +21 -1
- package/scripts/agents-sdk-sandbox-plan.js +57 -0
- package/scripts/ai-org-governance.js +98 -0
- package/scripts/ai-search-distribution.js +43 -0
- package/scripts/artifact-agent-plan.js +81 -0
- package/scripts/billing.js +27 -8
- package/scripts/cli-schema.js +18 -2
- package/scripts/code-mode-mcp-plan.js +71 -0
- package/scripts/context-engine.js +1 -2
- package/scripts/context-manager.js +4 -1
- package/scripts/dashboard-render-spec.js +1 -1
- package/scripts/dashboard.js +275 -9
- package/scripts/decision-journal.js +13 -3
- package/scripts/document-workflow-governance.js +62 -0
- package/scripts/enterprise-agent-rollout.js +34 -0
- package/scripts/experience-replay-governance.js +69 -0
- package/scripts/export-hf-dataset.js +1 -1
- package/scripts/feedback-loop.js +92 -4
- package/scripts/feedback-to-rules.js +17 -23
- package/scripts/gates-engine.js +4 -6
- package/scripts/growth-campaigns.js +49 -0
- package/scripts/harness-selector.js +16 -4
- package/scripts/hybrid-supervisor-agent.js +64 -0
- package/scripts/inference-cache-policy.js +72 -0
- package/scripts/inference-economics.js +53 -0
- package/scripts/internal-agent-bootstrap.js +12 -2
- package/scripts/knowledge-layer-plan.js +108 -0
- package/scripts/lesson-inference.js +183 -44
- package/scripts/lesson-search.js +4 -1
- package/scripts/llm-client.js +157 -26
- package/scripts/mailer/resend-mailer.js +112 -1
- package/scripts/mcp-transport-strategy.js +66 -0
- package/scripts/memory-store-governance.js +60 -0
- package/scripts/meta-agent-loop.js +7 -13
- package/scripts/model-access-eligibility.js +38 -0
- package/scripts/model-migration-readiness.js +55 -0
- package/scripts/operational-integrity.js +96 -3
- package/scripts/otel-declarative-config.js +56 -0
- package/scripts/perplexity-client.js +1 -1
- package/scripts/post-training-governance.js +34 -0
- package/scripts/private-core-boundary.js +72 -0
- package/scripts/production-agent-readiness.js +40 -0
- package/scripts/prompt-eval.js +564 -32
- package/scripts/prompt-programs.js +93 -0
- package/scripts/provider-action-normalizer.js +585 -0
- package/scripts/scaling-law-claims.js +60 -0
- package/scripts/security-scanner.js +1 -1
- package/scripts/self-distill-agent.js +7 -32
- package/scripts/seo-gsd.js +232 -55
- package/scripts/skill-rag-router.js +53 -0
- package/scripts/spec-gate.js +1 -1
- package/scripts/student-consistent-training.js +73 -0
- package/scripts/synthetic-data-provenance.js +98 -0
- package/scripts/task-context-result.js +81 -0
- package/scripts/telemetry-analytics.js +149 -0
- package/scripts/thompson-sampling.js +2 -2
- package/scripts/token-savings.js +7 -6
- package/scripts/token-tco.js +46 -0
- package/scripts/tool-registry.js +63 -3
- package/scripts/verification-loop.js +10 -1
- package/scripts/verifier-scoring.js +71 -0
- package/scripts/workflow-sentinel.js +284 -28
- package/scripts/workspace-agent-routines.js +118 -0
- package/src/api/server.js +381 -120
- package/scripts/analytics-report.js +0 -328
- package/scripts/autonomous-workflow.js +0 -377
- package/scripts/billing-setup.js +0 -109
- package/scripts/creator-campaigns.js +0 -239
- package/scripts/cross-encoder-reranker.js +0 -235
- package/scripts/daemon-manager.js +0 -108
- package/scripts/decision-trace.js +0 -354
- package/scripts/delegation-runtime.js +0 -896
- package/scripts/dispatch-brief.js +0 -159
- package/scripts/distribution-surfaces.js +0 -110
- package/scripts/feedback-history-distiller.js +0 -382
- package/scripts/funnel-analytics.js +0 -35
- package/scripts/history-distiller.js +0 -200
- package/scripts/hosted-job-launcher.js +0 -256
- package/scripts/intent-router.js +0 -392
- package/scripts/lesson-reranker.js +0 -263
- package/scripts/lesson-retrieval.js +0 -148
- package/scripts/managed-lesson-agent.js +0 -183
- package/scripts/operational-dashboard.js +0 -103
- package/scripts/operational-summary.js +0 -129
- package/scripts/operator-artifacts.js +0 -608
- package/scripts/optimize-context.js +0 -17
- package/scripts/org-dashboard.js +0 -206
- package/scripts/partner-orchestration.js +0 -146
- package/scripts/predictive-insights.js +0 -356
- package/scripts/pulse.js +0 -80
- package/scripts/reflector-agent.js +0 -221
- package/scripts/sales-pipeline.js +0 -681
- package/scripts/session-episode-store.js +0 -329
- package/scripts/session-health-sensor.js +0 -242
- package/scripts/session-report.js +0 -120
- package/scripts/swarm-coordinator.js +0 -81
- package/scripts/tool-kpi-tracker.js +0 -12
- package/scripts/webhook-delivery.js +0 -62
- package/scripts/workflow-sprint-intake.js +0 -475
package/public/index.html
CHANGED
|
@@ -24,14 +24,14 @@ __GOOGLE_SITE_VERIFICATION_META__
|
|
|
24
24
|
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg">
|
|
25
25
|
<meta property="og:image" content="/og.png">
|
|
26
26
|
<title>ThumbGate — Stop paying for the same AI mistake twice</title>
|
|
27
|
-
<meta name="description" content="Stop paying for the same AI mistake twice. ThumbGate
|
|
27
|
+
<meta name="description" content="Stop paying for the same AI mistake twice. ThumbGate is the enforcement layer for AI agent orchestration: 👍 thumbs up and 👎 thumbs down become history-aware lessons, shared lessons and org visibility, plus Pre-Action Checks that block repeat mistakes before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.">
|
|
28
28
|
<meta property="og:title" content="ThumbGate — Stop paying for the same AI mistake twice">
|
|
29
|
-
<meta property="og:description" content="Frontier LLMs are expensive and
|
|
29
|
+
<meta property="og:description" content="Frontier LLMs are expensive, opaque, and unreliable in production. ThumbGate gates risky agent actions before they run: workflow shape, inspection evidence, token budget, and repeated-failure memory in one pre-action check.">
|
|
30
30
|
<meta property="og:type" content="website">
|
|
31
31
|
<meta property="og:image" content="https://thumbgate-production.up.railway.app/og.png">
|
|
32
32
|
<meta name="twitter:card" content="summary_large_image">
|
|
33
33
|
<meta name="twitter:image" content="https://thumbgate-production.up.railway.app/og.png">
|
|
34
|
-
<meta name="keywords" content="ThumbGate, thumbgate, save LLM tokens, reduce Claude API cost, reduce OpenAI cost, AI agent token savings, prevent LLM retries, prevent hallucination retries, stop AI token waste, pre-action
|
|
34
|
+
<meta name="keywords" content="ThumbGate, thumbgate, AI agent orchestration, AI experience orchestration, agent enforcement layer, save LLM tokens, reduce Claude API cost, reduce OpenAI cost, AI agent token savings, prevent LLM retries, prevent hallucination retries, stop AI token waste, pre-action checks, agent governance, Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, workflow hardening, context engineering, AI authenticity, brand authenticity AI">
|
|
35
35
|
<link rel="icon" type="image/png" href="/thumbgate-icon.png">
|
|
36
36
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
37
37
|
|
|
@@ -53,7 +53,7 @@ __GA_BOOTSTRAP__
|
|
|
53
53
|
"@type": "SoftwareApplication",
|
|
54
54
|
"name": "ThumbGate",
|
|
55
55
|
"alternateName": "thumbgate",
|
|
56
|
-
"description": "ThumbGate stops you from paying for the same AI mistake twice. Frontier LLMs are expensive
|
|
56
|
+
"description": "ThumbGate stops you from paying for the same AI mistake twice. Frontier LLMs are expensive, opaque, and unreliable in production — every repeated hallucination, retry loop, or known-bad tool call burns more tokens. ThumbGate's Pre-Action Checks inspect workflow shape, environment evidence, budget, and repeated-failure memory before the action runs. Works with Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and any MCP-compatible agent.",
|
|
57
57
|
"applicationCategory": "DeveloperApplication",
|
|
58
58
|
"operatingSystem": "Cross-platform, Node.js >=18.18.0",
|
|
59
59
|
"license": "https://opensource.org/licenses/MIT",
|
|
@@ -68,10 +68,13 @@ __GA_BOOTSTRAP__
|
|
|
68
68
|
},
|
|
69
69
|
"featureList": [
|
|
70
70
|
"Prevent expensive AI mistakes — catch bad commands, destructive database actions, unsafe publishes, and risky API calls before execution",
|
|
71
|
-
"Make AI stop repeating mistakes — thumbs-down feedback becomes history-aware lessons and Pre-Action
|
|
71
|
+
"Make AI stop repeating mistakes — thumbs-down feedback becomes history-aware lessons and Pre-Action Checks",
|
|
72
72
|
"Turn AI into a reliable operator — checkpoint risky actions, enforce safe patterns, and keep proof of what changed",
|
|
73
73
|
"ThumbGate GPT for ChatGPT — check proposed agent actions, capture thumbs-up/down lessons, and route users into local enforcement",
|
|
74
74
|
"Workflow Sentinel — score blast radius before PR, merge, release, and publish actions fire",
|
|
75
|
+
"Workflow architecture checks — distinguish predefined workflows, parallel fan-out, and open-ended agents before execution",
|
|
76
|
+
"Environment inspection evidence — require read-before-write, screenshots, API response checks, tests, or output validation for open-ended agent loops",
|
|
77
|
+
"Parallel branch budgets — prevent agent desktops and fan-out workflows from silently multiplying token spend",
|
|
75
78
|
"Docker Sandboxes routing — move high-risk local runs into isolated microVM-backed execution",
|
|
76
79
|
"Hosted sandbox dispatch — signed isolated lane for team automations",
|
|
77
80
|
"Domain Skill Packs — Stripe, Railway, database migration best practices",
|
|
@@ -81,10 +84,10 @@ __GA_BOOTSTRAP__
|
|
|
81
84
|
"Background Agent Governance — per-agent pass rates, CI auto-feedback",
|
|
82
85
|
"Memory Migration — imports Claude Code MEMORY.md into unlimited SQLite DB",
|
|
83
86
|
"Prompt-Level DLP — scans tool call inputs before execution",
|
|
84
|
-
"Per-Step Scoring — every
|
|
87
|
+
"Per-Step Scoring — every check decision becomes a DPO/KTO training signal",
|
|
85
88
|
"HuggingFace Export — share PII-redacted agent traces as open training datasets",
|
|
86
89
|
"Unified Context — one-call context assembly with session, lessons, guards, and code-graph",
|
|
87
|
-
"AI Authenticity Enforcement — every
|
|
90
|
+
"AI Authenticity Enforcement — every check reflects your team's actual standards, not generic AI patterns"
|
|
88
91
|
],
|
|
89
92
|
"offers": [
|
|
90
93
|
{
|
|
@@ -92,12 +95,12 @@ __GA_BOOTSTRAP__
|
|
|
92
95
|
"name": "Free",
|
|
93
96
|
"price": "0",
|
|
94
97
|
"priceCurrency": "USD",
|
|
95
|
-
"description": "Free local CLI enforcement for one developer — captures, recalls,
|
|
98
|
+
"description": "Free local CLI enforcement for one developer — captures, recalls, checks, and PreToolUse hook blocking after install"
|
|
96
99
|
},
|
|
97
100
|
{
|
|
98
101
|
"@type": "Offer",
|
|
99
102
|
"name": "Team",
|
|
100
|
-
"price": "
|
|
103
|
+
"price": "49",
|
|
101
104
|
"priceCurrency": "USD",
|
|
102
105
|
"description": "Intake-led team rollout with a workflow hardening sprint, shared enforcement memory, org dashboard visibility, approval boundaries, release confidence, Docker Sandboxes guidance for risky local autonomy, and pilot support for teams shipping AI-generated changes",
|
|
103
106
|
"url": "https://thumbgate-production.up.railway.app/#workflow-sprint-intake"
|
|
@@ -150,7 +153,7 @@ __GA_BOOTSTRAP__
|
|
|
150
153
|
{
|
|
151
154
|
"@type": "HowToStep",
|
|
152
155
|
"position": 4,
|
|
153
|
-
"name": "Pre-action
|
|
156
|
+
"name": "Pre-action checks block the mistake",
|
|
154
157
|
"text": "When the agent tries to repeat a known-bad action, the PreToolUse hook fires and physically blocks the tool call before execution. The agent cannot repeat the mistake."
|
|
155
158
|
}
|
|
156
159
|
],
|
|
@@ -177,7 +180,7 @@ __GA_BOOTSTRAP__
|
|
|
177
180
|
"name": "How is ThumbGate different from model-training feedback loops?",
|
|
178
181
|
"acceptedAnswer": {
|
|
179
182
|
"@type": "Answer",
|
|
180
|
-
"text": "Model-training feedback loops update weights. ThumbGate does not touch the model. It injects past feedback into context so your agent is shaped by your corrections in real time. Think of it as a behavioral immune system, not a training pipeline. The
|
|
183
|
+
"text": "Model-training feedback loops update weights. ThumbGate does not touch the model. It injects past feedback into context so your agent is shaped by your corrections in real time. Think of it as a behavioral immune system, not a training pipeline. The check blocks are hard enforcement, not soft suggestions."
|
|
181
184
|
}
|
|
182
185
|
},
|
|
183
186
|
{
|
|
@@ -185,7 +188,7 @@ __GA_BOOTSTRAP__
|
|
|
185
188
|
"name": "What is the ThumbGate tech stack?",
|
|
186
189
|
"acceptedAnswer": {
|
|
187
190
|
"@type": "Answer",
|
|
188
|
-
"text": "SQLite+FTS5 lesson DB, MemAlign-inspired dual recall, Thompson Sampling for adaptive
|
|
191
|
+
"text": "SQLite+FTS5 lesson DB, MemAlign-inspired dual recall, Thompson Sampling for adaptive checks, LanceDB vector search with Hugging Face embeddings, ContextFS context assembly, Bayesian belief updates, and PreToolUse hook enforcement."
|
|
189
192
|
}
|
|
190
193
|
},
|
|
191
194
|
{
|
|
@@ -193,7 +196,7 @@ __GA_BOOTSTRAP__
|
|
|
193
196
|
"name": "What AI agents does ThumbGate work with?",
|
|
194
197
|
"acceptedAnswer": {
|
|
195
198
|
"@type": "Answer",
|
|
196
|
-
"text": "Claude Code, Cursor, Codex, Gemini CLI, Amp, OpenCode, and any MCP-compatible agent."
|
|
199
|
+
"text": "Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode, and any MCP-compatible agent."
|
|
197
200
|
}
|
|
198
201
|
},
|
|
199
202
|
{
|
|
@@ -204,20 +207,28 @@ __GA_BOOTSTRAP__
|
|
|
204
207
|
"text": "No. The ThumbGate GPT is the ChatGPT entrypoint for checking proposed actions, capturing thumbs-up/down lessons, and getting setup help. Use it for advice and checkpointing; hard enforcement still runs locally where the agent executes after npx thumbgate init."
|
|
205
208
|
}
|
|
206
209
|
},
|
|
210
|
+
{
|
|
211
|
+
"@type": "Question",
|
|
212
|
+
"name": "Why does the ChatGPT ads rollout matter to ThumbGate?",
|
|
213
|
+
"acceptedAnswer": {
|
|
214
|
+
"@type": "Answer",
|
|
215
|
+
"text": "OpenAI began testing ads in ChatGPT in the US on February 9, 2026, and Digiday reported CPC bidding on April 21, 2026. As conversational AI becomes a monetized discovery surface, teams need a cleaner boundary between AI advice and risky execution. ThumbGate is that pre-action check layer."
|
|
216
|
+
}
|
|
217
|
+
},
|
|
207
218
|
{
|
|
208
219
|
"@type": "Question",
|
|
209
220
|
"name": "How does ThumbGate reduce host blast radius for high-risk local runs?",
|
|
210
221
|
"acceptedAnswer": {
|
|
211
222
|
"@type": "Answer",
|
|
212
|
-
"text": "ThumbGate combines pre-action
|
|
223
|
+
"text": "ThumbGate combines pre-action checks with execution guidance. Workflow Sentinel predicts risky local actions before they execute, and high-risk runs can be routed into Docker Sandboxes instead of running directly on the host. Team workflows also have a signed hosted sandbox lane for isolated automation dispatch."
|
|
213
224
|
}
|
|
214
225
|
},
|
|
215
226
|
{
|
|
216
227
|
"@type": "Question",
|
|
217
|
-
"name": "How are pre-action
|
|
228
|
+
"name": "How are pre-action checks different from prompt rules?",
|
|
218
229
|
"acceptedAnswer": {
|
|
219
230
|
"@type": "Answer",
|
|
220
|
-
"text": "Prompt rules are suggestions agents can ignore. Pre-Action
|
|
231
|
+
"text": "Prompt rules are suggestions agents can ignore. Pre-Action Checks are enforcement — they block the action before execution via PreToolUse hooks. Checks are auto-generated from feedback and use Thompson Sampling to adapt."
|
|
221
232
|
}
|
|
222
233
|
},
|
|
223
234
|
{
|
|
@@ -225,7 +236,7 @@ __GA_BOOTSTRAP__
|
|
|
225
236
|
"name": "How does ThumbGate prevent AI slop and protect brand authenticity?",
|
|
226
237
|
"acceptedAnswer": {
|
|
227
238
|
"@type": "Answer",
|
|
228
|
-
"text": "AI slop happens when agents act without human judgment as a hard
|
|
239
|
+
"text": "AI slop happens when agents act without human judgment as a hard check — generating repetitive, generic outputs that erode trust and dilute your brand. ThumbGate inserts human thumbs-up/down between AI intent and execution. Every thumbs-down becomes a prevention rule that blocks the bad pattern permanently. Every thumbs-up reinforces what 'good' looks like for your specific context. Your agent's outputs reflect your actual standards, not generic AI patterns. This is authenticity enforcement at the tool-call level."
|
|
229
240
|
}
|
|
230
241
|
},
|
|
231
242
|
{
|
|
@@ -314,17 +325,17 @@ __GA_BOOTSTRAP__
|
|
|
314
325
|
.hero-install .cmd { color: var(--cyan); }
|
|
315
326
|
.hero-install .copy-hint { font-size: 11px; color: var(--text-muted); font-family: var(--font); margin-left: 8px; }
|
|
316
327
|
.hero-install .copied { color: var(--green); }
|
|
317
|
-
.first-
|
|
318
|
-
.first-
|
|
319
|
-
.first-
|
|
320
|
-
.first-
|
|
321
|
-
.first-
|
|
322
|
-
.first-
|
|
323
|
-
.first-
|
|
324
|
-
.first-
|
|
325
|
-
.first-
|
|
326
|
-
.first-
|
|
327
|
-
.first-
|
|
328
|
+
.first-check-card { max-width: 820px; margin: 0 auto 28px; text-align: left; border: 1px solid rgba(34,211,238,0.28); background: linear-gradient(135deg, rgba(34,211,238,0.08) 0%, rgba(74,222,128,0.06) 100%); border-radius: 14px; padding: 22px; box-shadow: 0 18px 60px rgba(0,0,0,0.22); }
|
|
329
|
+
.first-check-card h2 { font-size: clamp(22px, 3vw, 30px); line-height: 1.15; margin-bottom: 8px; letter-spacing: -0.025em; }
|
|
330
|
+
.first-check-card p { max-width: none; margin: 0 0 16px; color: var(--text-muted); font-size: 15px; }
|
|
331
|
+
.first-check-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 16px; }
|
|
332
|
+
.first-check-step { border: 1px solid var(--border); border-radius: 10px; background: rgba(10,10,11,0.62); padding: 14px; }
|
|
333
|
+
.first-check-step strong { display: block; color: var(--cyan); margin-bottom: 6px; }
|
|
334
|
+
.first-check-step p { font-size: 13px; line-height: 1.5; margin: 0; }
|
|
335
|
+
.first-check-examples { display: grid; gap: 8px; margin-top: 12px; }
|
|
336
|
+
.first-check-example { font-family: var(--mono); border-radius: 8px; padding: 10px 12px; font-size: 12px; overflow-x: auto; line-height: 1.55; }
|
|
337
|
+
.first-check-example.signal-good { color: var(--green); background: rgba(74,222,128,0.08); border: 1px solid rgba(74,222,128,0.24); }
|
|
338
|
+
.first-check-example.signal-fix { color: #fda4af; background: rgba(251,113,133,0.08); border: 1px solid rgba(251,113,133,0.24); }
|
|
328
339
|
|
|
329
340
|
/* SOCIAL PROOF BAR */
|
|
330
341
|
.proof-bar { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; font-size: 13px; color: var(--text-muted); padding: 4px 0 12px; max-width: 1040px; margin: 0 auto; }
|
|
@@ -505,7 +516,7 @@ __GA_BOOTSTRAP__
|
|
|
505
516
|
@media (max-width: 700px) {
|
|
506
517
|
.steps { grid-template-columns: 1fr; }
|
|
507
518
|
.compatibility-grid { grid-template-columns: 1fr; }
|
|
508
|
-
.first-
|
|
519
|
+
.first-check-steps { grid-template-columns: 1fr; }
|
|
509
520
|
.gpt-steps { grid-template-columns: 1fr; }
|
|
510
521
|
.seo-grid { grid-template-columns: 1fr; }
|
|
511
522
|
.autoresearch-grid { grid-template-columns: 1fr; }
|
|
@@ -563,7 +574,8 @@ __GA_BOOTSTRAP__
|
|
|
563
574
|
<div class="hero-thumbs">👍👎</div>
|
|
564
575
|
<div class="hero-badge">● Your AI coding bill has a leak</div>
|
|
565
576
|
<h1>Stop paying $ for the same AI mistake.</h1>
|
|
566
|
-
<p style="font-size:18px;color:var(--text-muted);max-width:720px;margin:0 auto 20px;line-height:1.6;">Every retry loop, every hallucinated import, every "let me try a different approach" — those are billable tokens on every LLM vendor's bill. Thumbs-down once; ThumbGate blocks that exact mistake on every future call. Across Claude Code, Cursor, Codex, Gemini, Amp, OpenCode — any MCP-compatible agent, forever, including fast-moving vibe coding workflows.</p>
|
|
577
|
+
<p style="font-size:18px;color:var(--text-muted);max-width:720px;margin:0 auto 20px;line-height:1.6;">Every retry loop, every hallucinated import, every "let me try a different approach" — those are billable tokens on every LLM vendor's bill. Thumbs-down once; ThumbGate blocks that exact mistake on every future call. Across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode — any MCP-compatible agent, forever, including fast-moving vibe coding workflows.</p>
|
|
578
|
+
<p style="font-size:15px;color:var(--text-dim);max-width:760px;margin:0 auto 24px;line-height:1.6;">As desktop agents move into parallel sessions, terminals, and production workflows, ThumbGate checks the thing benchmarks miss: is this next action a known workflow, an open-ended agent, a costly fan-out, or a blind tool call with no way to verify it worked?</p>
|
|
567
579
|
|
|
568
580
|
<!-- HERO PRICING CARD — visible in first viewport so $19/mo and $149/yr never get buried -->
|
|
569
581
|
<div id="pro-pitch" style="max-width:820px;margin:0 auto 32px;padding:24px 28px;background:linear-gradient(180deg,rgba(17,17,19,0.94) 0%,rgba(22,22,24,0.94) 100%);border:1px solid rgba(34,211,238,0.32);border-radius:20px;box-shadow:0 0 0 1px rgba(34,211,238,0.18),0 24px 64px rgba(0,0,0,0.35);text-align:left;">
|
|
@@ -601,9 +613,9 @@ __GA_BOOTSTRAP__
|
|
|
601
613
|
<div style="font-size:13px;color:var(--text-muted);margin-bottom:4px;">💸 Tokens saved — since install (Sonnet-blended, conservative)</div>
|
|
602
614
|
<div id="hero-savings-counter" data-target="1247.82" style="font-size:44px;font-weight:700;color:#4ade80;letter-spacing:-0.02em;line-height:1;margin-bottom:18px;">$0.00</div>
|
|
603
615
|
<div style="font-size:12px;line-height:1.8;border-top:1px solid rgba(255,255,255,0.06);padding-top:12px;">
|
|
604
|
-
<div style="color:#4ade80;">✅
|
|
605
|
-
<div style="color:#4ade80;">✅
|
|
606
|
-
<div style="color:#f87171;">❌
|
|
616
|
+
<div style="color:#4ade80;">✅ check:no-force-push — blocked 12×</div>
|
|
617
|
+
<div style="color:#4ade80;">✅ check:no-hallucinated-import — blocked 8×</div>
|
|
618
|
+
<div style="color:#f87171;">❌ check:no-drop-prod — FIRED · saved ~$3.40</div>
|
|
607
619
|
<div style="color:var(--text-muted);font-size:11px;margin-top:8px;">Sample shown. Your own dashboard tracks live feedback log + blocked calls from day one. <span style="color:var(--cyan);">Open dashboard →</span></div>
|
|
608
620
|
</div>
|
|
609
621
|
</a>
|
|
@@ -619,7 +631,7 @@ __GA_BOOTSTRAP__
|
|
|
619
631
|
})();
|
|
620
632
|
</script>
|
|
621
633
|
<div class="hero-signals">
|
|
622
|
-
<a class="signal-pill signal-down" href="#how-it-works" title="See how
|
|
634
|
+
<a class="signal-pill signal-down" href="#how-it-works" title="See how check interception works">Block repeat hallucinations before the model sees them</a>
|
|
623
635
|
<a class="signal-pill signal-up" href="#how-it-works" title="See the one-thumbs-down enforcement loop">Thumbs-down once, blocked forever, across every agent</a>
|
|
624
636
|
<a class="signal-pill" href="#install" title="Install the CLI">CLI-first workflow governance with a live tokens-saved counter</a>
|
|
625
637
|
</div>
|
|
@@ -646,34 +658,34 @@ __GA_BOOTSTRAP__
|
|
|
646
658
|
<span style="display:inline-flex;align-items:center;gap:4px;">🛡️ Local-first — no cloud required</span>
|
|
647
659
|
<span style="display:inline-flex;align-items:center;gap:4px;">🔌 6 agent integrations</span>
|
|
648
660
|
</div>
|
|
649
|
-
<p style="font-size:13px;color:var(--text-muted);margin:16px auto 0;max-width:660px;">No, you do not have to chat inside the GPT forever. The GPT is advice and checkpointing; local hooks do the hard blocking for Claude Code, Cursor, Codex, Gemini, Amp, OpenCode, and MCP-compatible agents.</p>
|
|
661
|
+
<p style="font-size:13px;color:var(--text-muted);margin:16px auto 0;max-width:660px;">No, you do not have to chat inside the GPT forever. The GPT is advice and checkpointing; local hooks do the hard blocking for Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and MCP-compatible agents.</p>
|
|
650
662
|
<div id="demo" style="margin:28px auto 0;max-width:560px;text-align:center;" onclick="posthog.capture('hero_demo_view')">
|
|
651
663
|
<div style="font-size:13px;color:var(--text-muted);margin-bottom:8px;letter-spacing:0.04em;text-transform:uppercase;">▶ 90-second demo · force-push → 👎 → blocked</div>
|
|
652
664
|
<video src="/assets/tiktok-agent-memory.mp4" controls playsinline preload="metadata" poster="/assets/instagram-card.png" style="width:100%;max-width:560px;border-radius:12px;border:1px solid var(--border);background:#000;box-shadow:0 10px 40px rgba(0,0,0,0.4);"></video>
|
|
653
665
|
<a href="/checkout/pro?utm_source=website&utm_medium=hero_demo&utm_campaign=pro_trial&cta_id=hero_post_demo" onclick="posthog.capture('hero_cta_click',{cta:'start_trial_post_demo'})" style="display:inline-block;margin-top:14px;color:var(--cyan);font-size:14px;font-weight:700;text-decoration:none;">→ Start 7-day Pro trial</a>
|
|
654
666
|
</div>
|
|
655
667
|
<p style="font-size:13px;color:var(--text-muted);margin:8px auto 28px;max-width:560px;">Your agent has no memory. Every session, the same wrong pattern runs. ThumbGate turns a single correction into a permanent block — before the next tool call fires. <a href="#pricing" style="color:var(--cyan);text-decoration:none;">See all plans →</a></p>
|
|
656
|
-
<div class="first-
|
|
668
|
+
<div class="first-check-card" id="first-check">
|
|
657
669
|
<div class="section-label" style="text-align:left;margin-bottom:8px;">First-Dollar Activation Path</div>
|
|
658
670
|
<h2>Block your first repeated AI mistake in 5 minutes.</h2>
|
|
659
|
-
<p>Prove one blocked repeat before asking anyone to buy. The fastest path to value: one person, one repeated mistake, one
|
|
660
|
-
<div class="first-
|
|
661
|
-
<div class="first-
|
|
671
|
+
<p>Prove one blocked repeat before asking anyone to buy. The fastest path to value: one person, one repeated mistake, one check that blocks it permanently.</p>
|
|
672
|
+
<div class="first-check-steps">
|
|
673
|
+
<div class="first-check-step">
|
|
662
674
|
<strong>1. Install ThumbGate</strong>
|
|
663
675
|
<p>Run <code>npx thumbgate init</code> in your repo. Or install the <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" style="color:var(--cyan);">Claude Extension</a>, <a href="/codex-plugin" style="color:var(--cyan);">Codex plugin</a>, <a href="https://github.com/IgorGanapolsky/ThumbGate/tree/main/plugins/cursor-marketplace" style="color:var(--cyan);">Cursor plugin</a>, or <a href="/go/gpt" style="color:var(--cyan);">open the GPT</a>. Native ChatGPT rating buttons are not the ThumbGate capture path.</p>
|
|
664
676
|
</div>
|
|
665
|
-
<div class="first-
|
|
677
|
+
<div class="first-check-step">
|
|
666
678
|
<strong>2. Give feedback</strong>
|
|
667
679
|
<p>Give <code>thumbs up</code> when the agent follows your standards, or <code>thumbs down</code> when it misses. ThumbGate captures the context and distills a lesson from up to 8 prior entries.</p>
|
|
668
680
|
</div>
|
|
669
|
-
<div class="first-
|
|
670
|
-
<strong>3. The
|
|
681
|
+
<div class="first-check-step">
|
|
682
|
+
<strong>3. The check blocks the repeat</strong>
|
|
671
683
|
<p>Next time the agent tries the same mistake, the PreToolUse hook fires and physically blocks it. Upgrade after one real blocked repeat when you need the dashboard and exports.</p>
|
|
672
684
|
</div>
|
|
673
685
|
</div>
|
|
674
|
-
<div class="first-
|
|
675
|
-
<div class="first-
|
|
676
|
-
<div class="first-
|
|
686
|
+
<div class="first-check-examples" aria-label="ThumbGate feedback examples">
|
|
687
|
+
<div class="first-check-example signal-good">thumbs up: this review named exact files, commands, and tests; repeat this evidence-first format.</div>
|
|
688
|
+
<div class="first-check-example signal-fix">thumbs down: the answer ignored my request for exact files and tests; next time include file paths, commands, and verification evidence.</div>
|
|
677
689
|
</div>
|
|
678
690
|
</div>
|
|
679
691
|
<nav class="proof-bar" aria-label="ThumbGate install and proof links">
|
|
@@ -688,7 +700,7 @@ __GA_BOOTSTRAP__
|
|
|
688
700
|
<a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">CI and proof lanes →</a>
|
|
689
701
|
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/RELEASE_CONFIDENCE.md" target="_blank" rel="noopener">Release confidence →</a>
|
|
690
702
|
<a href="https://www.producthunt.com/products/thumbgate" target="_blank" rel="noopener">Product Hunt →</a>
|
|
691
|
-
<a href="#compatibility">Claude Code · Cursor · Codex · Gemini · Amp · OpenCode</a>
|
|
703
|
+
<a href="#compatibility">Claude Code · Cursor · Codex · Gemini · Amp · Cline · OpenCode</a>
|
|
692
704
|
</nav>
|
|
693
705
|
</div>
|
|
694
706
|
</section>
|
|
@@ -708,13 +720,13 @@ __GA_BOOTSTRAP__
|
|
|
708
720
|
<div><span class="fn">npx</span> thumbgate init</div>
|
|
709
721
|
<div> </div>
|
|
710
722
|
<div><span class="comment"># Your agent tries to delete production db...</span></div>
|
|
711
|
-
<div><span class="keyword">⛔
|
|
723
|
+
<div><span class="keyword">⛔ Check blocked:</span> <span class="string">"Never run DROP on production tables"</span></div>
|
|
712
724
|
<div><span class="comment"># Rule auto-generated from your previous 👎</span></div>
|
|
713
725
|
<div> </div>
|
|
714
|
-
<div><span class="comment"># That's it. One thumbs-down = one permanent
|
|
726
|
+
<div><span class="comment"># That's it. One thumbs-down = one permanent check.</span></div>
|
|
715
727
|
</div>
|
|
716
728
|
</div>
|
|
717
|
-
<p style="text-align:center;margin-top:16px;font-size:14px;color:var(--text-muted);">This is the entire product in 2 lines. Install, give feedback,
|
|
729
|
+
<p style="text-align:center;margin-top:16px;font-size:14px;color:var(--text-muted);">This is the entire product in 2 lines. Install, give feedback, checks auto-generate.</p>
|
|
718
730
|
</div>
|
|
719
731
|
</section>
|
|
720
732
|
|
|
@@ -753,7 +765,7 @@ __GA_BOOTSTRAP__
|
|
|
753
765
|
<p>Download the <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" style="color:#d97706;font-weight:600;">.mcpb bundle</a> for Claude Desktop, or use the repo marketplace: <code>/plugin marketplace add IgorGanapolsky/ThumbGate</code></p>
|
|
754
766
|
</div>
|
|
755
767
|
<div class="gpt-step">
|
|
756
|
-
<strong>3. Give feedback,
|
|
768
|
+
<strong>3. Give feedback, checks auto-generate</strong>
|
|
757
769
|
<p>Type <code>thumbs down</code> when Claude makes a mistake. ThumbGate distills a lesson from up to 8 prior entries and blocks the pattern permanently via PreToolUse hooks.</p>
|
|
758
770
|
</div>
|
|
759
771
|
</div>
|
|
@@ -762,7 +774,7 @@ __GA_BOOTSTRAP__
|
|
|
762
774
|
<a href="/guide.html" class="btn-free" style="display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;">Claude Desktop setup guide</a>
|
|
763
775
|
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/.claude-plugin/README.md" class="btn-free" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;">Claude plugin docs</a>
|
|
764
776
|
</div>
|
|
765
|
-
<p class="gpt-note"><strong>Claude Code Skill:</strong> Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on “
|
|
777
|
+
<p class="gpt-note"><strong>Claude Code Skill:</strong> Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on “check”, “feedback”, “block mistake”. Free skill on top of the same local gateway.</p>
|
|
766
778
|
</div>
|
|
767
779
|
</div>
|
|
768
780
|
</section>
|
|
@@ -772,8 +784,8 @@ __GA_BOOTSTRAP__
|
|
|
772
784
|
<div class="container">
|
|
773
785
|
<div class="gpt-panel">
|
|
774
786
|
<div class="section-label" style="text-align:left;">ChatGPT Entry Point · Live ThumbGate GPT for ChatGPT</div>
|
|
775
|
-
<h2>Open the GPT. Give typed thumbs feedback. Turn the lesson into a
|
|
776
|
-
<p>ThumbGate should meet users where they already ask AI for help. The live GPT is the lowest-friction way to capture a useful thumbs-up/down lesson, check a risky action, and prove the enforcement loop before installing anything
|
|
787
|
+
<h2>Open the GPT. Give typed thumbs feedback. Turn the lesson into a check.</h2>
|
|
788
|
+
<p>ThumbGate should meet users where they already ask AI for help. The live GPT is the lowest-friction way to capture a useful thumbs-up/down lesson, check a risky action, and prove the enforcement loop before installing anything. As ChatGPT ads roll out, this matters more: ChatGPT can stay the discovery and checkpointing layer, while ThumbGate remains the hard execution boundary after <code>npx thumbgate init</code>.</p>
|
|
777
789
|
<div class="gpt-steps">
|
|
778
790
|
<div class="gpt-step">
|
|
779
791
|
<strong>1. Try the live GPT</strong>
|
|
@@ -785,12 +797,13 @@ __GA_BOOTSTRAP__
|
|
|
785
797
|
</div>
|
|
786
798
|
<div class="gpt-step">
|
|
787
799
|
<strong>3. Enforce locally</strong>
|
|
788
|
-
<p>Run <code>npx thumbgate init</code> in the repo so Pre-Action
|
|
800
|
+
<p>Run <code>npx thumbgate init</code> in the repo so Pre-Action Checks block repeated mistakes before the coding agent executes them.</p>
|
|
789
801
|
</div>
|
|
790
802
|
</div>
|
|
791
803
|
<div style="display:flex;gap:12px;flex-wrap:wrap;">
|
|
792
804
|
<a href="/go/gpt?utm_source=website&utm_medium=gpt_section&utm_campaign=chatgpt_gpt&cta_id=gpt_path_open_gpt&cta_placement=gpt_section" class="btn-gpt-page" target="_blank" rel="noopener" onclick="posthog.capture('gpt_path_cta_click',{cta:'open_gpt'})">Open ThumbGate GPT</a>
|
|
793
805
|
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/adapters/chatgpt/INSTALL.md" class="btn-free" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;">ChatGPT Actions setup</a>
|
|
806
|
+
<a href="/guides/chatgpt-ads-trust" class="btn-free" style="display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;">Why ChatGPT ads need checks</a>
|
|
794
807
|
</div>
|
|
795
808
|
<p class="gpt-note"><strong>Plain English rule:</strong> ChatGPT is the discovery and memory surface for advice, checkpointing, and typed feedback capture. One typed signal becomes one remembered rule. The hard Reliability Gateway still runs in the local agent or CI lane.</p>
|
|
796
809
|
</div>
|
|
@@ -809,14 +822,19 @@ __GA_BOOTSTRAP__
|
|
|
809
822
|
</a>
|
|
810
823
|
<a class="compat-card seo-card" href="/guides/claude-code-prevent-repeated-mistakes.html" rel="noopener">
|
|
811
824
|
<h3>⚡ Claude Code Skill</h3>
|
|
812
|
-
<p>Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on "
|
|
825
|
+
<p>Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on "check", "feedback", "block mistake". Free skill on top of the same local gateway teams later harden into a shared workflow.</p>
|
|
813
826
|
<div class="card-arrow">Read the Claude Code guide →</div>
|
|
814
827
|
</a>
|
|
815
828
|
<a class="compat-card" href="/guide.html" rel="noopener">
|
|
816
829
|
<h3>🤖 AI CLIs</h3>
|
|
817
|
-
<p>Claude Code, Codex, Gemini CLI, Amp, and OpenCode all use the same gateway and memory model. Any MCP-compatible agent gets pre-action
|
|
830
|
+
<p>Claude Code, Codex, Gemini CLI, Amp, and OpenCode all use the same gateway and memory model. Any MCP-compatible agent gets pre-action checks, feedback memory, and enforcement out of the box.</p>
|
|
818
831
|
<div class="card-arrow">Open the setup guide →</div>
|
|
819
832
|
</a>
|
|
833
|
+
<a class="compat-card seo-card" href="/guides/gcp-mcp-guardrails" rel="noopener">
|
|
834
|
+
<h3>☁️ Google Data Agent Kit</h3>
|
|
835
|
+
<p>Cloud Next 2026 shipped BigQuery, Spanner, AlloyDB, and Cloud SQL as MCP tool calls into Claude Code, Codex, and Gemini CLI. ThumbGate checks the destructive ones — DROP on prod datasets, unscoped DELETEs, IAM escalation — before they fire.</p>
|
|
836
|
+
<div class="card-arrow">Read the GCP guardrails guide →</div>
|
|
837
|
+
</a>
|
|
820
838
|
<a class="compat-card" href="/codex-plugin?utm_source=website&utm_medium=compatibility&utm_campaign=codex_plugin&cta_id=compat_codex_plugin&cta_placement=compatibility" rel="noopener" onclick="if(typeof posthog!=='undefined')posthog.capture('compat_codex_plugin_click',{cta:'open_codex_plugin_page'})">
|
|
821
839
|
<h3>🧩 Codex plugin</h3>
|
|
822
840
|
<p>Codex gets a standalone ThumbGate plugin bundle, a repo-local plugin profile, and the same auto-updating MCP launcher. The runtime resolves <code>thumbgate@latest</code> when Codex starts, so npm fixes reach active installs. The install page includes the zip, MCP config, and verification path in one place.</p>
|
|
@@ -824,7 +842,7 @@ __GA_BOOTSTRAP__
|
|
|
824
842
|
</a>
|
|
825
843
|
<a class="compat-card" href="/guides/cursor-prevent-repeated-mistakes.html" rel="noopener">
|
|
826
844
|
<h3>🎯 Cursor plugin</h3>
|
|
827
|
-
<p>Drop the ThumbGate MCP config into <code>.cursor/mcp.json</code> and Cursor gets the same pre-action
|
|
845
|
+
<p>Drop the ThumbGate MCP config into <code>.cursor/mcp.json</code> and Cursor gets the same pre-action checks as Claude Code and Codex. Ships with bundled rules, commands, hooks, and agents.</p>
|
|
828
846
|
<div class="card-arrow">Read the Cursor guide →</div>
|
|
829
847
|
</a>
|
|
830
848
|
<a class="compat-card" href="/guide.html" rel="noopener">
|
|
@@ -834,7 +852,7 @@ __GA_BOOTSTRAP__
|
|
|
834
852
|
</a>
|
|
835
853
|
<a class="compat-card" href="https://mcp.so/server/thumbgate" target="_blank" rel="noopener" onclick="if(typeof posthog!=='undefined')posthog.capture('compat_mcp_so_click',{cta:'view_mcp_directory'})">
|
|
836
854
|
<h3>🗂️ MCP Server Directory</h3>
|
|
837
|
-
<p>ThumbGate is listed on <code>mcp.so</code> so MCP-compatible clients can verify the package, copy the npx config, and confirm they are installing the real Pre-Action
|
|
855
|
+
<p>ThumbGate is listed on <code>mcp.so</code> so MCP-compatible clients can verify the package, copy the npx config, and confirm they are installing the real Pre-Action Checks server.</p>
|
|
838
856
|
<div class="card-arrow">View on mcp.so →</div>
|
|
839
857
|
</a>
|
|
840
858
|
<a class="compat-card" href="/go/gpt?utm_source=website&utm_medium=compatibility&utm_campaign=chatgpt_gpt&cta_id=compat_open_gpt&cta_placement=compatibility" target="_blank" rel="noopener">
|
|
@@ -853,16 +871,16 @@ __GA_BOOTSTRAP__
|
|
|
853
871
|
<div class="agent-grid">
|
|
854
872
|
<div class="agent-card">
|
|
855
873
|
<h3>🔍 Live Dashboard Demo</h3>
|
|
856
|
-
<p>Search lessons, inspect
|
|
874
|
+
<p>Search lessons, inspect checks, mark a review checkpoint, and see only what changed since the last pass. No signup or install required.</p>
|
|
857
875
|
<a href="/dashboard" style="display:inline-block;margin-top:12px;color:var(--cyan);font-weight:600;text-decoration:underline;">Open Dashboard Demo →</a>
|
|
858
876
|
</div>
|
|
859
877
|
<div class="agent-card">
|
|
860
|
-
<h3>⛔
|
|
878
|
+
<h3>⛔ Check Reasoning Chains</h3>
|
|
861
879
|
<p>Every block explains why: which pattern matched, what evidence triggered it, and whether the rule came from your own corrections.</p>
|
|
862
880
|
</div>
|
|
863
881
|
<div class="agent-card">
|
|
864
882
|
<h3>📊 Org Dashboard (Team)</h3>
|
|
865
|
-
<p>See which agents are creating review churn, which
|
|
883
|
+
<p>See which agents are creating review churn, which checks are saving time, and where rollout risk is still concentrated across the shared workflow.</p>
|
|
866
884
|
</div>
|
|
867
885
|
<div class="agent-card">
|
|
868
886
|
<h3>🧱 Isolated Execution Lanes</h3>
|
|
@@ -880,15 +898,60 @@ __GA_BOOTSTRAP__
|
|
|
880
898
|
</div>
|
|
881
899
|
</section>
|
|
882
900
|
|
|
901
|
+
<section class="compatibility" id="orchestration-layer">
|
|
902
|
+
<div class="container">
|
|
903
|
+
<div class="section-label">Positioning</div>
|
|
904
|
+
<h2 class="section-title">Enforcement is the missing layer in AI orchestration.</h2>
|
|
905
|
+
<p style="color:var(--text-dim);max-width:760px;margin:0 auto 20px;">Big orchestration suites unify data, routes, and decisions. ThumbGate sits closer to the moment of execution: the point where an agent is about to run a shell command, ship a PR, approve a release, or repeat a mistake you already corrected. That is where workflow trust is won or lost.</p>
|
|
906
|
+
<div class="agent-grid">
|
|
907
|
+
<div class="agent-card">
|
|
908
|
+
<h3>Broad orchestration platforms</h3>
|
|
909
|
+
<p>Good at customer journeys, routing, and cross-system context. Weak when you need a coding agent or automation to stop before a destructive or low-trust action actually runs.</p>
|
|
910
|
+
</div>
|
|
911
|
+
<div class="agent-card">
|
|
912
|
+
<h3>ThumbGate</h3>
|
|
913
|
+
<p>Turns operator feedback into Pre-Action Checks. It does not just remember the mistake. It blocks the repeat at the tool-call boundary across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.</p>
|
|
914
|
+
</div>
|
|
915
|
+
<div class="agent-card">
|
|
916
|
+
<h3>The stack that makes sense</h3>
|
|
917
|
+
<p>Use orchestration to decide what should happen next. Use ThumbGate to decide what is allowed to execute. That is the control layer enterprises actually need once agents touch repos, terminals, CI, or production workflows.</p>
|
|
918
|
+
</div>
|
|
919
|
+
</div>
|
|
920
|
+
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px;">
|
|
921
|
+
<a class="btn-team" href="/compare/ai-experience-orchestration">Compare orchestration vs enforcement →</a>
|
|
922
|
+
<a class="btn-free" href="/use-cases/platform-teams" style="display:inline-flex;align-items:center;">Platform team rollout →</a>
|
|
923
|
+
<a class="btn-free" href="/use-cases/regulated-workflows" style="display:inline-flex;align-items:center;">Regulated workflow pattern →</a>
|
|
924
|
+
</div>
|
|
925
|
+
</div>
|
|
926
|
+
</section>
|
|
927
|
+
|
|
883
928
|
<section class="seo-pages" id="compare-guides">
|
|
884
929
|
<div class="container">
|
|
885
930
|
<div class="section-label">Popular Buyer Questions</div>
|
|
886
931
|
<h2 class="section-title">How buyers discover ThumbGate in search and AI answers</h2>
|
|
887
932
|
<div class="seo-grid">
|
|
933
|
+
<a class="seo-card" href="/compare/ai-experience-orchestration">
|
|
934
|
+
<div class="seo-kicker">Comparison</div>
|
|
935
|
+
<h3>AI Orchestration vs Enforcement</h3>
|
|
936
|
+
<p>Why IBM and Adobe-style orchestration still needs a stop layer once AI agents can touch code, approvals, or production workflows.</p>
|
|
937
|
+
<div class="card-arrow">See where ThumbGate fits →</div>
|
|
938
|
+
</a>
|
|
939
|
+
<a class="seo-card" href="/use-cases/platform-teams">
|
|
940
|
+
<div class="seo-kicker">Use Case</div>
|
|
941
|
+
<h3>ThumbGate for Platform Teams</h3>
|
|
942
|
+
<p>Standardize agent behavior across Claude Code, Codex, Cursor, Gemini, and CI without turning your rollout into an internal services project.</p>
|
|
943
|
+
<div class="card-arrow">Read the rollout pattern →</div>
|
|
944
|
+
</a>
|
|
945
|
+
<a class="seo-card" href="/use-cases/regulated-workflows">
|
|
946
|
+
<div class="seo-kicker">Use Case</div>
|
|
947
|
+
<h3>ThumbGate for Regulated Workflows</h3>
|
|
948
|
+
<p>Keep approval boundaries, evidence, and audit context attached to the exact moment an agent wants to act in finance, healthcare, and other high-trust environments.</p>
|
|
949
|
+
<div class="card-arrow">Read the governance pattern →</div>
|
|
950
|
+
</a>
|
|
888
951
|
<a class="seo-card" href="/compare/speclock">
|
|
889
952
|
<div class="seo-kicker">Comparison</div>
|
|
890
953
|
<h3>ThumbGate vs SpecLock</h3>
|
|
891
|
-
<p>Why thumbs-up/down feedback and pre-action
|
|
954
|
+
<p>Why thumbs-up/down feedback and pre-action checks solve repeated mistakes faster than a manual spec-authoring loop.</p>
|
|
892
955
|
<div class="card-arrow">Read the comparison →</div>
|
|
893
956
|
</a>
|
|
894
957
|
<a class="seo-card" href="/compare/mem0">
|
|
@@ -897,18 +960,42 @@ __GA_BOOTSTRAP__
|
|
|
897
960
|
<p>Mem0 remembers context. ThumbGate enforces behavior. Why retrieval alone is not enough when your agent keeps repeating the same mistakes.</p>
|
|
898
961
|
<div class="card-arrow">See the enforcement angle →</div>
|
|
899
962
|
</a>
|
|
900
|
-
<a class="seo-card" href="/guides/pre-action-
|
|
963
|
+
<a class="seo-card" href="/guides/pre-action-checks">
|
|
901
964
|
<div class="seo-kicker">Guide</div>
|
|
902
|
-
<h3>What Are Pre-Action
|
|
965
|
+
<h3>What Are Pre-Action Checks?</h3>
|
|
903
966
|
<p>The core concept explained in plain language: how thumbs up, thumbs down, and runtime enforcement work together to prevent repeated failures.</p>
|
|
904
967
|
<div class="card-arrow">Read the guide →</div>
|
|
905
968
|
</a>
|
|
906
969
|
<a class="seo-card" href="/guides/agent-harness-optimization">
|
|
907
970
|
<div class="seo-kicker">Harness</div>
|
|
908
971
|
<h3>AI Agent Harness Optimization</h3>
|
|
909
|
-
<p>Keep global prompts lean, load MCP schemas on demand, and turn harness lessons into Pre-Action
|
|
972
|
+
<p>Keep global prompts lean, load MCP schemas on demand, and turn harness lessons into Pre-Action Checks that block repeat failures.</p>
|
|
910
973
|
<div class="card-arrow">Audit your harness →</div>
|
|
911
974
|
</a>
|
|
975
|
+
<a class="seo-card" href="/guides/ai-search-topical-presence">
|
|
976
|
+
<div class="seo-kicker">AI Search</div>
|
|
977
|
+
<h3>AI Search Topical Presence</h3>
|
|
978
|
+
<p>Why AI tools recommend the brands they repeatedly see tied to a buyer problem, and how ThumbGate builds that association with proof-backed pages.</p>
|
|
979
|
+
<div class="card-arrow">Strengthen the association →</div>
|
|
980
|
+
</a>
|
|
981
|
+
<a class="seo-card" href="/guides/best-tools-stop-ai-agents-breaking-production">
|
|
982
|
+
<div class="seo-kicker">AEO Listicle</div>
|
|
983
|
+
<h3>Best Tools to Stop AI Agents From Breaking Production</h3>
|
|
984
|
+
<p>A long-tail answer-engine page for buyers asking how to gate Claude Code, Cursor, Codex, and parallel coding agents before risky execution.</p>
|
|
985
|
+
<div class="card-arrow">Own the buyer prompt →</div>
|
|
986
|
+
</a>
|
|
987
|
+
<a class="seo-card" href="/guides/chatgpt-ads-trust">
|
|
988
|
+
<div class="seo-kicker">ChatGPT Ads</div>
|
|
989
|
+
<h3>ChatGPT Ads Need Pre-Action Checks</h3>
|
|
990
|
+
<p>As conversational AI becomes an ad surface, trust, measurement, and execution boundaries matter more. This page ties that shift directly to ThumbGate.</p>
|
|
991
|
+
<div class="card-arrow">Own the trust angle →</div>
|
|
992
|
+
</a>
|
|
993
|
+
<a class="seo-card" href="/guides/relational-knowledge-ai-recommendations">
|
|
994
|
+
<div class="seo-kicker">Recommendation</div>
|
|
995
|
+
<h3>Relational Knowledge in AI Recommendations</h3>
|
|
996
|
+
<p>How LLMs store brand-to-problem associations, and why ThumbGate should own the “pre-action checks for AI coding agents” slot.</p>
|
|
997
|
+
<div class="card-arrow">See why brands get picked →</div>
|
|
998
|
+
</a>
|
|
912
999
|
<a class="seo-card" href="/guides/browser-automation-safety">
|
|
913
1000
|
<div class="seo-kicker">Browser Safety</div>
|
|
914
1001
|
<h3>Browser Automation Safety for AI Agents</h3>
|
|
@@ -924,13 +1011,13 @@ __GA_BOOTSTRAP__
|
|
|
924
1011
|
<a class="seo-card" href="/guides/claude-code-feedback">
|
|
925
1012
|
<div class="seo-kicker">Integration</div>
|
|
926
1013
|
<h3>Claude Code Feedback Memory That Enforces</h3>
|
|
927
|
-
<p>Why structured feedback memory matters more when it becomes a live
|
|
1014
|
+
<p>Why structured feedback memory matters more when it becomes a live check that blocks your agent from repeating mistakes.</p>
|
|
928
1015
|
<div class="card-arrow">Read the integration guide →</div>
|
|
929
1016
|
</a>
|
|
930
1017
|
<a class="seo-card" href="/guides/stop-repeated-ai-agent-mistakes">
|
|
931
1018
|
<div class="seo-kicker">Problem Guide</div>
|
|
932
1019
|
<h3>How to Stop AI Agents From Repeating Mistakes</h3>
|
|
933
|
-
<p>The shortest path from “I already corrected this once” to a pre-action
|
|
1020
|
+
<p>The shortest path from “I already corrected this once” to a pre-action check that blocks the repeat before the next tool call lands.</p>
|
|
934
1021
|
<div class="card-arrow">See the fix →</div>
|
|
935
1022
|
</a>
|
|
936
1023
|
<a class="seo-card" href="/guides/cursor-agent-guardrails">
|
|
@@ -948,13 +1035,13 @@ __GA_BOOTSTRAP__
|
|
|
948
1035
|
<a class="seo-card" href="/guides/gemini-cli-feedback-memory">
|
|
949
1036
|
<div class="seo-kicker">Gemini</div>
|
|
950
1037
|
<h3>Gemini CLI Memory That Leads to Enforcement</h3>
|
|
951
|
-
<p>Why Gemini CLI buyers start with memory and convert when they see how memory becomes real pre-action
|
|
1038
|
+
<p>Why Gemini CLI buyers start with memory and convert when they see how memory becomes real pre-action checks.</p>
|
|
952
1039
|
<div class="card-arrow">Read the Gemini guide →</div>
|
|
953
1040
|
</a>
|
|
954
1041
|
<a class="seo-card" href="/guides/autoresearch-agent-safety">
|
|
955
1042
|
<div class="seo-kicker">Autoresearch</div>
|
|
956
1043
|
<h3>Autoresearch Safety for Self-Improving Agents</h3>
|
|
957
|
-
<p>Why benchmark-search loops need
|
|
1044
|
+
<p>Why benchmark-search loops need checks for holdout tests, proof trails, reward hacking, and unsafe promotions.</p>
|
|
958
1045
|
<div class="card-arrow">Read the Autoresearch guide →</div>
|
|
959
1046
|
</a>
|
|
960
1047
|
</div>
|
|
@@ -966,7 +1053,7 @@ __GA_BOOTSTRAP__
|
|
|
966
1053
|
<div class="autoresearch-panel">
|
|
967
1054
|
<div class="section-label" style="text-align:left;">Autoresearch Safety Pack</div>
|
|
968
1055
|
<h2>Stop self-improving coding loops from hacking the benchmark.</h2>
|
|
969
|
-
<p>Autoresearch loops run experiments, inspect metrics, and accept better variants. ThumbGate gives those loops a Reliability Gateway: Pre-Action
|
|
1056
|
+
<p>Autoresearch loops run experiments, inspect metrics, and accept better variants. ThumbGate gives those loops a Reliability Gateway: Pre-Action Checks for skipped holdout tests, fake proof, reward hacking, unsafe edits, and promotion without verification evidence.</p>
|
|
970
1057
|
<div class="autoresearch-grid">
|
|
971
1058
|
<div class="autoresearch-card">
|
|
972
1059
|
<h3>Guard the metric</h3>
|
|
@@ -978,7 +1065,7 @@ __GA_BOOTSTRAP__
|
|
|
978
1065
|
</div>
|
|
979
1066
|
<div class="autoresearch-card">
|
|
980
1067
|
<h3>Ship into CI</h3>
|
|
981
|
-
<p>Start with templates for <code>npm test</code>, Playwright duration, bundle size, lint, and CI failures, then add Team
|
|
1068
|
+
<p>Start with templates for <code>npm test</code>, Playwright duration, bundle size, lint, and CI failures, then add Team checks for shared workflows.</p>
|
|
982
1069
|
</div>
|
|
983
1070
|
</div>
|
|
984
1071
|
<div class="autoresearch-cta">
|
|
@@ -992,13 +1079,13 @@ __GA_BOOTSTRAP__
|
|
|
992
1079
|
<!-- HOW IT WORKS -->
|
|
993
1080
|
<section class="how-it-works" id="how-it-works">
|
|
994
1081
|
<div class="container">
|
|
995
|
-
<div class="section-label">New in v1.
|
|
1082
|
+
<div class="section-label">New in v1.16.1</div>
|
|
996
1083
|
<h2 class="section-title">Three steps to stop repeated AI failures</h2>
|
|
997
1084
|
<div class="steps">
|
|
998
1085
|
<div class="step">
|
|
999
1086
|
<div class="step-num">1</div>
|
|
1000
1087
|
<h3>Feedback</h3>
|
|
1001
|
-
<p>Give <code>👍</code> or <code>👎</code> on your AI agent's actions. Feedback is stored in a SQLite+FTS5 lesson DB. In the current Claude auto-capture hook, a vague thumbs-down can distill from up to 8 prior recorded entries and the failed tool call before promotion, then stay linked to a 60-second feedback session. Example: you 👎 a risky migration → it auto-promotes to a "never run DROP on prod"
|
|
1088
|
+
<p>Give <code>👍</code> or <code>👎</code> on your AI agent's actions. Feedback is stored in a SQLite+FTS5 lesson DB. In the current Claude auto-capture hook, a vague thumbs-down can distill from up to 8 prior recorded entries and the failed tool call before promotion, then stay linked to a 60-second feedback session. Example: you 👎 a risky migration → it auto-promotes to a "never run DROP on prod" check.</p>
|
|
1002
1089
|
</div>
|
|
1003
1090
|
<div class="step">
|
|
1004
1091
|
<div class="step-num">2</div>
|
|
@@ -1007,8 +1094,8 @@ __GA_BOOTSTRAP__
|
|
|
1007
1094
|
</div>
|
|
1008
1095
|
<div class="step">
|
|
1009
1096
|
<div class="step-num">3</div>
|
|
1010
|
-
<h3>
|
|
1011
|
-
<p>Rules become Pre-Action
|
|
1097
|
+
<h3>Checks</h3>
|
|
1098
|
+
<p>Rules become Pre-Action Checks that <strong>block</strong> your agent before it repeats the same mistake. Your agent can't force-push, skip tests, or repeat a refactor you already rejected. No more fix-loops.</p>
|
|
1012
1099
|
</div>
|
|
1013
1100
|
</div>
|
|
1014
1101
|
</div>
|
|
@@ -1019,7 +1106,7 @@ __GA_BOOTSTRAP__
|
|
|
1019
1106
|
<section class="compatibility" id="guardrails">
|
|
1020
1107
|
<div class="container">
|
|
1021
1108
|
<div class="section-label">Enforcement</div>
|
|
1022
|
-
<h2 class="section-title">
|
|
1109
|
+
<h2 class="section-title">Checks block. They don't ask nicely.</h2>
|
|
1023
1110
|
<div class="agent-grid">
|
|
1024
1111
|
<div class="agent-card">
|
|
1025
1112
|
<h3>Don't trust — verify</h3>
|
|
@@ -1027,15 +1114,15 @@ __GA_BOOTSTRAP__
|
|
|
1027
1114
|
</div>
|
|
1028
1115
|
<div class="agent-card">
|
|
1029
1116
|
<h3>Real tools, not wishes</h3>
|
|
1030
|
-
<p>
|
|
1117
|
+
<p>Checks physically block tool calls. Not prompt tricks. Not "please don't."</p>
|
|
1031
1118
|
</div>
|
|
1032
1119
|
<div class="agent-card">
|
|
1033
1120
|
<h3>Force models to show work</h3>
|
|
1034
|
-
<p>Reasoning chains on every
|
|
1121
|
+
<p>Reasoning chains on every check decision. Thompson Sampling confidence tiers.</p>
|
|
1035
1122
|
</div>
|
|
1036
1123
|
<div class="agent-card">
|
|
1037
1124
|
<h3>Log everything, learn automatically</h3>
|
|
1038
|
-
<p>Repeated failures auto-promote to
|
|
1125
|
+
<p>Repeated failures auto-promote to checks. Org dashboard shows all agents.</p>
|
|
1039
1126
|
</div>
|
|
1040
1127
|
<div class="agent-card">
|
|
1041
1128
|
<h3>Keep risky runs off the host</h3>
|
|
@@ -1064,7 +1151,7 @@ __GA_BOOTSTRAP__
|
|
|
1064
1151
|
<div><span class="fn">npx</span> thumbgate init</div>
|
|
1065
1152
|
<div> </div>
|
|
1066
1153
|
<div><span class="comment"># Your agent tries to delete production db...</span></div>
|
|
1067
|
-
<div><span class="keyword">⛔
|
|
1154
|
+
<div><span class="keyword">⛔ Check blocked:</span> <span class="string">"Never run DROP on production tables"</span></div>
|
|
1068
1155
|
<div><span class="comment"># Rule auto-generated from your previous 👎</span></div>
|
|
1069
1156
|
<div> </div>
|
|
1070
1157
|
<div><span class="comment"># Works with your existing setup</span></div>
|
|
@@ -1148,7 +1235,7 @@ __GA_BOOTSTRAP__
|
|
|
1148
1235
|
<li>No recall or lesson search</li>
|
|
1149
1236
|
<li>No exports (DPO, Databricks, HuggingFace)</li>
|
|
1150
1237
|
<li>All MCP integrations (Claude Code, Cursor, Codex, Gemini, Amp, any MCP agent)</li>
|
|
1151
|
-
<li>PreToolUse hook blocking with built-in safety
|
|
1238
|
+
<li>PreToolUse hook blocking with built-in safety checks (force-push, destructive SQL, secrets)</li>
|
|
1152
1239
|
<li><a href="/guide" style="color:var(--cyan);text-decoration:underline;">Setup guide for all agents →</a></li>
|
|
1153
1240
|
</ul>
|
|
1154
1241
|
<div class="hero-install" onclick="copyInstall(this)" title="Click to copy" style="margin-bottom:12px;width:100%;justify-content:center;">
|
|
@@ -1170,16 +1257,16 @@ __GA_BOOTSTRAP__
|
|
|
1170
1257
|
<div style="background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);padding:16px;text-align:center;">
|
|
1171
1258
|
<div style="font-size:11px;color:var(--cyan);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;">What your Pro dashboard looks like</div>
|
|
1172
1259
|
<div style="background:#0d0d1a;border-radius:6px;padding:12px;text-align:left;font-family:monospace;font-size:11px;line-height:1.6;">
|
|
1173
|
-
<div style="color:#4ade80;">✅
|
|
1174
|
-
<div style="color:#4ade80;">✅
|
|
1175
|
-
<div style="color:#f87171;">❌
|
|
1260
|
+
<div style="color:#4ade80;">✅ check:no-force-push — blocked 12 times</div>
|
|
1261
|
+
<div style="color:#4ade80;">✅ check:require-tests — blocked 8 times</div>
|
|
1262
|
+
<div style="color:#f87171;">❌ check:no-drop-prod — FIRED (blocked DROP TABLE)</div>
|
|
1176
1263
|
<div style="color:#888;margin-top:6px;">DPO pairs exported: 47 | Lessons: 23 active</div>
|
|
1177
1264
|
</div>
|
|
1178
1265
|
</div>
|
|
1179
1266
|
</div>
|
|
1180
1267
|
<ul>
|
|
1181
1268
|
<li>Everything in Free, plus:</li>
|
|
1182
|
-
<li><a href="/dashboard#insights" style="color:var(--cyan);text-decoration:underline;">Visual
|
|
1269
|
+
<li><a href="/dashboard#insights" style="color:var(--cyan);text-decoration:underline;">Visual check debugger →</a> see every blocked action and the check that fired so you can trust the system in minutes</li>
|
|
1183
1270
|
<li>Auto-connect — activate once with your license key, then your running agents appear automatically on your local dashboard</li>
|
|
1184
1271
|
<li><a href="/dashboard#export" style="color:var(--cyan);text-decoration:underline;">DPO training data export →</a> turn real thumbs-downs into ready-to-use preference pairs for fine-tuning (LoRA / JSONL)</li>
|
|
1185
1272
|
<li><strong>HuggingFace dataset export</strong> — share PII-redacted agent traces as open training datasets (<code>npm run export:hf</code>)</li>
|
|
@@ -1201,15 +1288,15 @@ __GA_BOOTSTRAP__
|
|
|
1201
1288
|
<div class="price-sub">3-seat minimum · One engineer's correction protects the whole team</div>
|
|
1202
1289
|
<p style="font-size:13px;color:var(--green);margin-bottom:16px;font-weight:500;">When one engineer teaches the agent not to delete staging data, that lesson applies to every agent on the team. Stop paying the same mistake tax across different developers.</p>
|
|
1203
1290
|
<div class="pro-upgrade-triggers" style="font-size:12px;color:#aaa;margin-bottom:12px;">
|
|
1204
|
-
|
|
1291
|
+
Start with one repo, one workflow, one repeat failure at $49/seat.
|
|
1205
1292
|
</div>
|
|
1206
1293
|
<ul>
|
|
1207
1294
|
<li>Workflow hardening sprint — map one painful workflow, one repeated failure, and one buyer proof review before wider rollout</li>
|
|
1208
1295
|
<li>Shared enforcement memory — a shared lesson database where one developer's 👎 on a bad migration protects every agent on the team</li>
|
|
1209
1296
|
<li>Team lesson export/import — export lessons from one project, import into another. Deduplication, provenance tracking, and <code>team-import</code> tagging built in. One team's hard-won lessons become every team's prevention rules</li>
|
|
1210
|
-
<li>Org dashboard — active agents,
|
|
1297
|
+
<li>Org dashboard — active agents, check hit rates, risk agents, and proof-backed team metrics in one place</li>
|
|
1211
1298
|
<li>Hosted review views — constrained cards, lists, and callouts for rollout, incident, and audit visibility</li>
|
|
1212
|
-
<li>
|
|
1299
|
+
<li>Check template library — pre-built guardrails for force-pushes, skipped tests, destructive SQL, and evidence-before-done</li>
|
|
1213
1300
|
<li>Docker Sandboxes guidance — route risky local autonomy into an isolated microVM-backed lane instead of running it directly on a shared host</li>
|
|
1214
1301
|
<li>Signed hosted sandbox dispatch — isolated execution path for team automations that do not need repo-bound local access</li>
|
|
1215
1302
|
<li>Release confidence story — Changesets, SemVer, version sync, and verification evidence keep publishes and rollout claims inspectable</li>
|
|
@@ -1260,20 +1347,24 @@ __GA_BOOTSTRAP__
|
|
|
1260
1347
|
</div>
|
|
1261
1348
|
<div class="faq-item">
|
|
1262
1349
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How is ThumbGate different from model-training feedback loops?</div>
|
|
1263
|
-
<div class="faq-a">ThumbGate's intelligence is context, not weights. It doesn't touch the model — it injects past feedback into context so your agent is conditioned by your corrections. Think of it as a behavioral immune system, not a training pipeline. The
|
|
1350
|
+
<div class="faq-a">ThumbGate's intelligence is context, not weights. It doesn't touch the model — it injects past feedback into context so your agent is conditioned by your corrections. Think of it as a behavioral immune system, not a training pipeline. The check blocks are hard enforcement, not soft suggestions.</div>
|
|
1264
1351
|
</div>
|
|
1265
1352
|
<div class="faq-item">
|
|
1266
1353
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What's the tech stack?</div>
|
|
1267
|
-
<div class="faq-a">SQLite+FTS5 lesson DB for fast full-text search. MemAlign-inspired dual recall (principle-based rules + episodic context). Thompson Sampling for adaptive
|
|
1354
|
+
<div class="faq-a">SQLite+FTS5 lesson DB for fast full-text search. MemAlign-inspired dual recall (principle-based rules + episodic context). Thompson Sampling for adaptive check sensitivity per failure domain. LanceDB + Apache Arrow for local vector search with Hugging Face embeddings. ContextFS for context assembly. Bayesian belief updates on each memory. PreToolUse hook enforcement blocks known-bad actions before execution. All local-first — no cloud required.</div>
|
|
1268
1355
|
</div>
|
|
1269
1356
|
<div class="faq-item">
|
|
1270
1357
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What AI agents and editors does this work with?</div>
|
|
1271
|
-
<div class="faq-a">ThumbGate works with Claude Code, Cursor, Codex, Gemini CLI, Amp, OpenCode, and any other MCP-compatible agent. Cursor ships with a plugin bundle in this repo. Codex now ships both a standalone plugin bundle and a repo-local app plugin profile, and the published download is linked directly from this page. VS Code works when you run an MCP-compatible agent inside it, but this repo does not ship a standalone VS Code extension today.</div>
|
|
1358
|
+
<div class="faq-a">ThumbGate works with Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode, and any other MCP-compatible agent. Cursor ships with a plugin bundle in this repo. Codex now ships both a standalone plugin bundle and a repo-local app plugin profile, and the published download is linked directly from this page. VS Code works when you run an MCP-compatible agent inside it, but this repo does not ship a standalone VS Code extension today.</div>
|
|
1272
1359
|
</div>
|
|
1273
1360
|
<div class="faq-item">
|
|
1274
1361
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">Do I have to chat inside the ThumbGate GPT for enforcement?</div>
|
|
1275
1362
|
<div class="faq-a">No. The ThumbGate GPT is the ChatGPT entrypoint for checking proposed actions, capturing thumbs-up/down lessons, and getting setup help. Use it for advice and checkpointing; hard enforcement still runs locally where the agent executes after <code>npx thumbgate init</code>.</div>
|
|
1276
1363
|
</div>
|
|
1364
|
+
<div class="faq-item">
|
|
1365
|
+
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">Why does the ChatGPT ads rollout matter to ThumbGate?</div>
|
|
1366
|
+
<div class="faq-a">OpenAI began testing ads in ChatGPT in the US on February 9, 2026, and Digiday reported CPC bidding on April 21, 2026. That makes trust and measurement more important around AI-assisted decisions. ThumbGate gives teams a hard boundary between conversational discovery and risky local execution, so a suggested action still has to pass a real check before it runs. <a href="/guides/chatgpt-ads-trust" style="color:var(--cyan);text-decoration:underline;">Read the full positioning guide</a>.</div>
|
|
1367
|
+
</div>
|
|
1277
1368
|
<div class="faq-item">
|
|
1278
1369
|
<button class="faq-q" type="button" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How do we keep high-risk autonomous runs off the host?</button>
|
|
1279
1370
|
<div class="faq-a">ThumbGate is the control plane, not just a prompt layer. Workflow Sentinel predicts blast radius before execution, and risky local autonomy can be routed into Docker Sandboxes instead of running directly on the host. Team workflows also have a signed hosted sandbox lane for isolated dispatch when local repo access is not required.</div>
|
|
@@ -1284,15 +1375,15 @@ __GA_BOOTSTRAP__
|
|
|
1284
1375
|
</div>
|
|
1285
1376
|
<div class="faq-item">
|
|
1286
1377
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">Do I need a cloud account?</div>
|
|
1287
|
-
<div class="faq-a">No. Free keeps local enforcement on your machine with 3 daily feedback captures, 5 lesson searches, unlimited recall,
|
|
1378
|
+
<div class="faq-a">No. Free keeps local enforcement on your machine with 3 daily feedback captures, 5 lesson searches, unlimited recall, checks, and hook blocking. No cloud account is required. The business starts when a team wants shared rules, approval boundaries, hosted review views, org dashboard visibility, and proof that survives handoffs. Pro is the optional solo side lane for a personal dashboard, DPO export, and team lesson export/import — share lessons across projects so one team's mistakes become every team's prevention rules.</div>
|
|
1288
1379
|
</div>
|
|
1289
1380
|
<div class="faq-item">
|
|
1290
1381
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What if my thumbs-down is vague?</div>
|
|
1291
1382
|
<div class="faq-a">For the current Claude auto-capture hook, ThumbGate can reuse up to 8 prior recorded entries and the failed tool call for a vague thumbs-down, then keep a linked 60-second feedback session open for later clarification. The timer resets when more context arrives, so the lesson stays attached to one feedback record instead of fragmenting into duplicates.</div>
|
|
1292
1383
|
</div>
|
|
1293
1384
|
<div class="faq-item">
|
|
1294
|
-
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How are pre-action
|
|
1295
|
-
<div class="faq-a">Prompt rules are a starting point, not a finish line. Without prompt evaluation you do not know whether they still hold up under real tool use. ThumbGate adds the human-in-the-loop measurement loop and the enforcement layer: proof lanes, ThumbGate Bench, and self-heal checks show whether behavior improved, and Pre-Action
|
|
1385
|
+
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How are pre-action checks different from prompt rules?</div>
|
|
1386
|
+
<div class="faq-a">Prompt rules are a starting point, not a finish line. Without prompt evaluation you do not know whether they still hold up under real tool use. ThumbGate adds the human-in-the-loop measurement loop and the enforcement layer: proof lanes, ThumbGate Bench, and self-heal checks show whether behavior improved, and Pre-Action Checks block the action before execution when it did not.</div>
|
|
1296
1387
|
</div>
|
|
1297
1388
|
<div class="faq-item">
|
|
1298
1389
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What does Pro cost?</div>
|
|
@@ -1306,8 +1397,8 @@ __GA_BOOTSTRAP__
|
|
|
1306
1397
|
<section class="compatibility" id="newsletter" style="padding: 48px 0;">
|
|
1307
1398
|
<div class="container" style="text-align: center;">
|
|
1308
1399
|
<div class="section-label">Stay Updated</div>
|
|
1309
|
-
<h2 class="section-title" style="margin-bottom: 16px;">Get notified when we ship new
|
|
1310
|
-
<p style="color: var(--text-dim); margin-bottom: 24px; max-width: 560px; margin-left: auto; margin-right: auto;">Join the mailing list for new
|
|
1400
|
+
<h2 class="section-title" style="margin-bottom: 16px;">Get notified when we ship new checks and integrations.</h2>
|
|
1401
|
+
<p style="color: var(--text-dim); margin-bottom: 24px; max-width: 560px; margin-left: auto; margin-right: auto;">Join the mailing list for new check patterns, agent integration updates, and product news. If you later choose Pro, we keep checkout prefilled on this device.</p>
|
|
1311
1402
|
<form action="/api/newsletter" method="POST" data-newsletter-form data-page="homepage" data-intent="buyer_follow_up" style="display: flex; gap: 8px; max-width: 480px; margin: 0 auto; flex-wrap: wrap; justify-content: center;">
|
|
1312
1403
|
<input type="email" name="email" data-buyer-email placeholder="you@company.com" required style="flex: 1; min-width: 220px; padding: 12px 16px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-raised); color: var(--text); font-size: 15px;">
|
|
1313
1404
|
<button type="submit" style="padding: 12px 24px; background: var(--cyan); color: #000; border: none; border-radius: 8px; font-weight: 600; font-size: 15px; cursor: pointer;">Get sprint brief + updates</button>
|
|
@@ -1320,7 +1411,7 @@ __GA_BOOTSTRAP__
|
|
|
1320
1411
|
<section class="final-cta">
|
|
1321
1412
|
<div class="container">
|
|
1322
1413
|
<h2>Stop the same mistake before it runs again.</h2>
|
|
1323
|
-
<p>Install free. No credit card. No signup. Hit your first
|
|
1414
|
+
<p>Install free. No credit card. No signup. Hit your first check in 60 seconds.</p>
|
|
1324
1415
|
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;align-items:center;">
|
|
1325
1416
|
<div class="hero-install" onclick="copyInstall(this)" title="Click to copy" style="margin-bottom:0;font-size:16px;padding:14px 24px;border:2px solid var(--cyan);">
|
|
1326
1417
|
<span class="prompt">$</span>
|
|
@@ -1348,7 +1439,7 @@ __GA_BOOTSTRAP__
|
|
|
1348
1439
|
<a href="https://www.linkedin.com/in/igorganapolsky" target="_blank" rel="noopener">LinkedIn</a>
|
|
1349
1440
|
<a href="/blog">Blog</a>
|
|
1350
1441
|
</div>
|
|
1351
|
-
<span class="footer-copy">© 2026 Max Smith KDP LLC · MIT License · v1.
|
|
1442
|
+
<span class="footer-copy">© 2026 Max Smith KDP LLC · MIT License · v1.16.1</span>
|
|
1352
1443
|
</div>
|
|
1353
1444
|
</footer>
|
|
1354
1445
|
|
|
@@ -1463,6 +1554,7 @@ function copyInstall(el) {
|
|
|
1463
1554
|
|
|
1464
1555
|
/* ── Plausible custom event tracking ── */
|
|
1465
1556
|
(function() {
|
|
1557
|
+
|
|
1466
1558
|
function trackClick(selector, eventName, props) {
|
|
1467
1559
|
document.querySelectorAll(selector).forEach(function(el) {
|
|
1468
1560
|
el.addEventListener('click', function() {
|
|
@@ -1546,6 +1638,29 @@ function copyInstall(el) {
|
|
|
1546
1638
|
|
|
1547
1639
|
/* SEO/comparison page clicks */
|
|
1548
1640
|
trackClick('.seo-card', 'seo_page_click');
|
|
1641
|
+
|
|
1642
|
+
globalThis.buyerJourney = globalThis.ThumbGateBuyerIntent.initializeBehaviorAnalytics({
|
|
1643
|
+
pageType: 'marketing',
|
|
1644
|
+
pagePath: '/',
|
|
1645
|
+
landingPath: '/',
|
|
1646
|
+
sendTelemetry: sendFirstPartyTelemetry,
|
|
1647
|
+
emailSelector: '#pro-email',
|
|
1648
|
+
sections: [
|
|
1649
|
+
{ selector: '.hero', sectionId: 'hero', sectionLabel: 'Hero' },
|
|
1650
|
+
{ selector: '.proof-bar', sectionId: 'proof_bar', sectionLabel: 'Proof Bar' },
|
|
1651
|
+
{ selector: '#how-it-works', sectionId: 'how_it_works', sectionLabel: 'How It Works' },
|
|
1652
|
+
{ selector: '#pricing', sectionId: 'pricing', sectionLabel: 'Pricing' },
|
|
1653
|
+
{ selector: '#workflow-sprint-intake', sectionId: 'workflow_sprint_intake', sectionLabel: 'Workflow Sprint Intake' },
|
|
1654
|
+
{ selector: '#faq', sectionId: 'faq', sectionLabel: 'FAQ' }
|
|
1655
|
+
],
|
|
1656
|
+
ctaImpressions: [
|
|
1657
|
+
{ selector: '#pro-checkout-link', ctaId: 'pricing_pro_trial', ctaPlacement: 'pricing', planId: 'pro' },
|
|
1658
|
+
{ selector: '.price-card.pro .btn-pro', ctaId: 'pricing_pro_monthly', ctaPlacement: 'pricing', planId: 'pro' },
|
|
1659
|
+
{ selector: '.hero-actions .btn-pro-page', ctaId: 'hero_go_pro', ctaPlacement: 'hero', planId: 'pro' },
|
|
1660
|
+
{ selector: '.sticky-cta .btn-pro', ctaId: 'sticky_go_pro', ctaPlacement: 'sticky_cta', planId: 'pro' },
|
|
1661
|
+
{ selector: '.price-card.team .btn-team', ctaId: 'team_workflow_sprint', ctaPlacement: 'pricing', planId: 'team' }
|
|
1662
|
+
]
|
|
1663
|
+
});
|
|
1549
1664
|
})();
|
|
1550
1665
|
</script>
|
|
1551
1666
|
<script>
|
|
@@ -1565,6 +1680,9 @@ async function handleProTrial() {
|
|
|
1565
1680
|
buyerIntent.storeBuyerEmail(normalizedEmail);
|
|
1566
1681
|
buyerIntent.hydrateBuyerEmailInputs(normalizedEmail);
|
|
1567
1682
|
buyerIntent.applyBuyerEmailToCheckoutLinks(normalizedEmail);
|
|
1683
|
+
if (globalThis.buyerJourney && typeof globalThis.buyerJourney.markEmailCaptured === 'function') {
|
|
1684
|
+
globalThis.buyerJourney.markEmailCaptured();
|
|
1685
|
+
}
|
|
1568
1686
|
var checkoutLink = document.getElementById('pro-checkout-link');
|
|
1569
1687
|
var checkoutUrl = checkoutLink ? checkoutLink.href : '/checkout/pro';
|
|
1570
1688
|
if (typeof plausible === 'function') {
|