thumbgate 1.27.7 → 1.27.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/.well-known/llms.txt +1 -2
  2. package/README.md +0 -2
  3. package/bin/cli.js +259 -78
  4. package/package.json +12 -18
  5. package/public/blog.html +30 -0
  6. package/public/compare/adopt-ai.html +219 -0
  7. package/public/compare/agentix-labs.html +197 -0
  8. package/public/compare/ai-experience-orchestration.html +216 -0
  9. package/public/compare/anthropic-claude-for-legal.html +260 -0
  10. package/public/compare/anthropic-containment.html +280 -0
  11. package/public/compare/arcade.html +175 -0
  12. package/public/compare/arcjet.html +239 -0
  13. package/public/compare/bumblebee.html +307 -0
  14. package/public/compare/claude-code-hooks.html +294 -0
  15. package/public/compare/databricks-unity-ai-gateway.html +215 -0
  16. package/public/compare/fallow.html +351 -0
  17. package/public/compare/heidi.html +233 -0
  18. package/public/compare/mem0.html +342 -0
  19. package/public/compare/oak-and-sparrow-gatekeeper.html +289 -0
  20. package/public/compare/rein.html +236 -0
  21. package/public/compare/sigmashake.html +256 -0
  22. package/public/compare/speclock.html +342 -0
  23. package/public/compare.html +2 -0
  24. package/public/guides/agent-harness-optimization.html +342 -0
  25. package/public/guides/agentic-web-governance.html +406 -0
  26. package/public/guides/ai-agent-governance-sprint.html +415 -0
  27. package/public/guides/ai-agent-pre-action-approval-gates.html +401 -0
  28. package/public/guides/ai-agent-workflow-migration-checklist.html +392 -0
  29. package/public/guides/ai-deployment-readiness.html +415 -0
  30. package/public/guides/ai-mode-ads-agent-governance.html +401 -0
  31. package/public/guides/ai-search-topical-presence.html +342 -0
  32. package/public/guides/autoresearch-agent-safety.html +342 -0
  33. package/public/guides/background-agent-governance.html +358 -0
  34. package/public/guides/best-tools-stop-ai-agents-breaking-production.html +363 -0
  35. package/public/guides/browser-automation-safety.html +342 -0
  36. package/public/guides/chatgpt-ads-trust.html +353 -0
  37. package/public/guides/claude-code-feedback.html +339 -0
  38. package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
  39. package/public/guides/claude-code-skills-guardrails.html +343 -0
  40. package/public/guides/claude-desktop.html +356 -0
  41. package/public/guides/code-knowledge-graph-guardrails.html +365 -0
  42. package/public/guides/codex-cli-guardrails.html +339 -0
  43. package/public/guides/cursor-agent-guardrails.html +339 -0
  44. package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
  45. package/public/guides/database-agent-safety.html +406 -0
  46. package/public/guides/deepseek-v4-runtime-guardrails.html +346 -0
  47. package/public/guides/developer-machine-supply-chain-guardrails.html +358 -0
  48. package/public/guides/gcp-mcp-guardrails.html +147 -0
  49. package/public/guides/gemini-cli-feedback-memory.html +339 -0
  50. package/public/guides/gpt-5-5-model-evaluation.html +358 -0
  51. package/public/guides/internal-ai-engineering-stack-guardrails.html +348 -0
  52. package/public/guides/long-running-agent-context-management.html +346 -0
  53. package/public/guides/mcp-tool-governance.html +401 -0
  54. package/public/guides/multica-thumbgate-setup.html +134 -0
  55. package/public/guides/native-messaging-host-security.html +342 -0
  56. package/public/guides/policy-engine-pre-action-gates.html +346 -0
  57. package/public/guides/pre-action-checks.html +342 -0
  58. package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +342 -0
  59. package/public/guides/prompt-tricks-to-workflow-rules.html +365 -0
  60. package/public/guides/proxy-pointer-rag-guardrails.html +352 -0
  61. package/public/guides/rag-precision-tuning-guardrails.html +352 -0
  62. package/public/guides/reasoning-compression-guardrails.html +346 -0
  63. package/public/guides/relational-knowledge-ai-recommendations.html +342 -0
  64. package/public/guides/roo-code-alternative-cline.html +339 -0
  65. package/public/guides/semantic-programmatic-seo-guardrails.html +352 -0
  66. package/public/guides/seo-agent-skills-guardrails.html +344 -0
  67. package/public/guides/stop-repeated-ai-agent-mistakes.html +342 -0
  68. package/public/index.html +10 -48
  69. package/public/learn/ac-dc-runtime-enforcement.html +277 -0
  70. package/public/learn/agent-harness-pattern.html +181 -0
  71. package/public/learn/agent-swarms-shared-gates.html +173 -0
  72. package/public/learn/agentic-enterprise-context-brain.html +117 -0
  73. package/public/learn/agentic-os-team-governance.html +146 -0
  74. package/public/learn/ai-agent-governance.html +158 -0
  75. package/public/learn/ai-agent-persistent-memory.html +211 -0
  76. package/public/learn/background-agent-control-layer.html +184 -0
  77. package/public/learn/claude-code-goal-with-rubrics.html +205 -0
  78. package/public/learn/codex-role-plugins-need-governance.html +125 -0
  79. package/public/learn/cost-aware-agent-gate-routing.html +173 -0
  80. package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +157 -0
  81. package/public/learn/deterministic-agent-workflows.html +185 -0
  82. package/public/learn/feedback-loop-vs-decision-layer.html +283 -0
  83. package/public/learn/from-prototype-to-production.html +223 -0
  84. package/public/learn/learn.css +51 -0
  85. package/public/learn/mcp-pre-action-checks-explained.html +172 -0
  86. package/public/learn/pretix-stripe-connect-marketplaces.html +161 -0
  87. package/public/learn/regulated-agent-execution-boundary.html +196 -0
  88. package/public/learn/spec-driven-development.html +168 -0
  89. package/public/learn/stop-ai-agent-force-push.html +134 -0
  90. package/public/learn/vibe-coding-safety-net.html +142 -0
  91. package/public/learn.html +6 -50
  92. package/public/pro.html +6 -6
  93. package/scripts/cli-schema.js +10 -22
  94. package/scripts/dashboard-chat.js +1 -2
  95. package/scripts/document-intake.js +49 -1
  96. package/scripts/gemini-embedding-policy.js +1 -2
  97. package/scripts/hosted-config.js +12 -0
  98. package/scripts/plausible-domain-config.js +1 -3
  99. package/scripts/reddit-browser-notification-watch.js +230 -0
  100. package/scripts/seo-gsd.js +0 -239
  101. package/scripts/vector-store.js +0 -44
  102. package/scripts/workspace-evolver.js +2 -62
  103. package/src/api/server.js +124 -335
  104. package/adapters/policy-engine/ethicore-guardian-client.js +0 -68
  105. package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +0 -260
  106. package/scripts/hook-stop-anti-claim.js +0 -227
@@ -0,0 +1,256 @@
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 SigmaShake — AI Agent Guardrail Comparison (2026)</title>
7
+ <script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
8
+ <meta name="description" content="SigmaShake alternative? Honest comparison of ThumbGate, SigmaShake, APort, and agent-guardrails for gating AI coding agents. ThumbGate learns rules from your thumbs-down; SigmaShake ships a large ruleset hub and FORCE-substitution. Pick by what you need.">
9
+ <meta name="keywords" content="SigmaShake alternative, AI agent guardrail comparison, PreToolUse gating, Claude Code guardrails, Cursor agent safety, ThumbGate vs SigmaShake, APort, agent-guardrails, AI agent firewall">
10
+ <meta property="og:title" content="ThumbGate vs SigmaShake — AI Agent Guardrail Comparison (2026)">
11
+ <meta property="og:description" content="Four ways to gate an AI coding agent before it acts. SigmaShake is the polished ruleset-hub product; ThumbGate learns the rule from your correction. Honest side-by-side.">
12
+ <meta property="og:type" content="article">
13
+ <meta property="og:url" content="https://thumbgate.ai/compare/sigmashake">
14
+ <link rel="canonical" href="https://thumbgate.ai/compare/sigmashake">
15
+
16
+ <script type="application/ld+json">
17
+ {
18
+ "@context": "https://schema.org",
19
+ "@type": "TechArticle",
20
+ "headline": "ThumbGate vs SigmaShake — AI Agent Guardrail Comparison (2026)",
21
+ "description": "Side-by-side comparison of four pre-action gating tools for AI coding agents: ThumbGate, SigmaShake, APort, and roboticforce/agent-guardrails. Honest about where each is ahead.",
22
+ "author": { "@type": "Person", "name": "Igor Ganapolsky", "url": "https://github.com/IgorGanapolsky" },
23
+ "publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
24
+ "datePublished": "2026-06-09",
25
+ "dateModified": "2026-06-09",
26
+ "mainEntityOfPage": "https://thumbgate.ai/compare/sigmashake"
27
+ }
28
+ </script>
29
+
30
+ <script type="application/ld+json">
31
+ {
32
+ "@context": "https://schema.org",
33
+ "@type": "FAQPage",
34
+ "mainEntity": [
35
+ {
36
+ "@type": "Question",
37
+ "name": "What's the difference between ThumbGate and SigmaShake?",
38
+ "acceptedAnswer": {
39
+ "@type": "Answer",
40
+ "text": "Both gate an AI coding agent's tool calls before they run, across Claude Code, Cursor, Codex and others. The core difference is where the rules come from. SigmaShake gives you a hub of ready-made signed community rulesets and a three-tier enforcement model (DENY / ASK / FORCE-substitute-a-safe-command). ThumbGate generates the rule from your own correction: one thumbs-down on a mistake auto-writes the rule that blocks that exact mistake from then on, synced across your machines and team. SigmaShake is the broader, more mature catalog; ThumbGate is the learning loop for the mistakes no catalog has a rule for yet."
41
+ }
42
+ },
43
+ {
44
+ "@type": "Question",
45
+ "name": "Is ThumbGate a good SigmaShake alternative?",
46
+ "acceptedAnswer": {
47
+ "@type": "Answer",
48
+ "text": "It depends what you're optimizing for. If you want a large library of ready-made signed rules and the ability to auto-substitute a safe command instead of just blocking, SigmaShake is genuinely strong and we won't pretend otherwise. If you keep hitting team-specific or codebase-specific mistakes that no generic ruleset covers, ThumbGate's edge is that it learns those rules from your thumbs-down instead of asking you to author or find them. Many teams could run both."
49
+ }
50
+ },
51
+ {
52
+ "@type": "Question",
53
+ "name": "Can ThumbGate substitute a safe command like SigmaShake's FORCE mode?",
54
+ "acceptedAnswer": {
55
+ "@type": "Answer",
56
+ "text": "Not today. SigmaShake's FORCE tier rewrites a dangerous command into a safe equivalent before it runs — a real capability ThumbGate doesn't yet match. ThumbGate's enforcement blocks the call and returns a structured error plus a path back to the spec; it does not auto-rewrite the command. If safe-command substitution is a hard requirement, SigmaShake is ahead here."
57
+ }
58
+ }
59
+ ]
60
+ }
61
+ </script>
62
+
63
+ <link rel="stylesheet" href="/learn/learn.css">
64
+ <style>
65
+ .matrix { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9rem; }
66
+ .matrix th, .matrix td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
67
+ .matrix th { background: var(--bg-card); font-weight: 600; }
68
+ .matrix td:first-child { font-weight: 600; }
69
+ .yes { color: var(--green); }
70
+ .no { color: var(--red); }
71
+ .partial { color: #fbbf24; }
72
+ .pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 1.5rem 0; }
73
+ .pair > div { background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1rem; }
74
+ @media (max-width: 700px) { .pair { grid-template-columns: 1fr; } .matrix { font-size: 0.82rem; } }
75
+ </style>
76
+ </head>
77
+ <body>
78
+
79
+ <nav>
80
+ <a href="/" class="brand"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
81
+ <a href="/pricing">Pricing</a>
82
+ <a href="/compare">Compare</a>
83
+ <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
84
+ </nav>
85
+
86
+ <div class="container">
87
+ <div class="breadcrumb"><a href="/compare">Compare</a> / ThumbGate vs SigmaShake</div>
88
+ <h1>ThumbGate vs SigmaShake (and APort, and agent-guardrails)</h1>
89
+ <p style="color:var(--muted);">For developers and teams choosing a pre-action gate for their AI coding agents</p>
90
+
91
+ <div class="tldr"><strong>TL;DR:</strong> Four tools gate an AI coding agent before it acts. <strong>SigmaShake</strong> is the most polished: a hub of ready-made signed rulesets, three-tier DENY/ASK/FORCE enforcement (including auto-substituting a safe command), a desktop app, and a tamper-evident audit log. <strong>ThumbGate</strong>'s one differentiator is the learning loop — a single thumbs-down auto-writes the rule that blocks that exact mistake forever, synced across machines and team, instead of asking you to find or author one. <strong>APort</strong> is the org-identity layer (agent "passports," central policy). <strong>agent-guardrails</strong> is a free MIT starting point. We're honest below about where SigmaShake is ahead.</div>
92
+
93
+ <h2>The shared category</h2>
94
+ <p>All four start from the same fact: prompt-level rules in <code>CLAUDE.md</code> or <code>.cursorrules</code> are suggestions the model can ignore under context pressure. To actually stop a force-push to main or a <code>DROP TABLE</code>, you need a gate that fires <em>before</em> the tool call executes — not a reviewer after the PR, not a git revert after the damage. ThumbGate, SigmaShake, and agent-guardrails all hook the PreToolUse boundary. APort sits one layer up, as an identity/authorization layer for organizations.</p>
95
+
96
+ <p>This page is not a hit piece. SigmaShake in particular is well-built software with a real lead on catalog breadth and enforcement modes. We'll tell you where it wins and where ThumbGate's learning loop is the better fit.</p>
97
+
98
+ <h2>Feature matrix</h2>
99
+ <table class="matrix">
100
+ <thead>
101
+ <tr>
102
+ <th style="width:22%;">Capability</th>
103
+ <th style="width:21%;">ThumbGate</th>
104
+ <th style="width:21%;">SigmaShake</th>
105
+ <th style="width:18%;">APort</th>
106
+ <th style="width:18%;">agent-guardrails</th>
107
+ </tr>
108
+ </thead>
109
+ <tbody>
110
+ <tr>
111
+ <td>Pre-action gating (blocks before execution)</td>
112
+ <td class="yes">Yes — PreToolUse hooks</td>
113
+ <td class="yes">Yes — PreToolUse</td>
114
+ <td class="partial">Authz layer, not a tool-call gate</td>
115
+ <td class="yes">Yes — PreToolUse hooks</td>
116
+ </tr>
117
+ <tr>
118
+ <td>Learns rules from your corrections</td>
119
+ <td class="yes">Yes — one thumbs-down auto-writes the rule</td>
120
+ <td class="no">No — rules installed or authored</td>
121
+ <td class="no">No — policy authored</td>
122
+ <td class="no">No — hand-written deny rules</td>
123
+ </tr>
124
+ <tr>
125
+ <td>Pre-built ruleset library</td>
126
+ <td class="partial">Domain skill packs (Stripe, Railway, DB migrations)</td>
127
+ <td class="yes">Large signed community ruleset hub</td>
128
+ <td class="no">N/A</td>
129
+ <td class="partial">Built-in deny rules (terraform/db/k8s/cloud/git)</td>
130
+ </tr>
131
+ <tr>
132
+ <td>Enforcement modes</td>
133
+ <td class="partial">Block + structured error (no auto-substitute)</td>
134
+ <td class="yes">DENY / ASK / FORCE (safe-command substitute)</td>
135
+ <td class="partial">Allow/deny by scoped permission</td>
136
+ <td class="partial">Deny / ask</td>
137
+ </tr>
138
+ <tr>
139
+ <td>Multi-agent support</td>
140
+ <td class="yes">Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode</td>
141
+ <td class="yes">Claude Code, Cursor, Codex, Copilot, Gemini</td>
142
+ <td class="yes">Claude, LangChain, CrewAI, Cursor</td>
143
+ <td class="partial">Claude Code (settings.json hooks)</td>
144
+ </tr>
145
+ <tr>
146
+ <td>Team / cross-machine sync of learned rules</td>
147
+ <td class="yes">Yes — hosted sync (Pro)</td>
148
+ <td class="partial">Local-first; optional cloud</td>
149
+ <td class="yes">Yes — central org policy</td>
150
+ <td class="no">No</td>
151
+ </tr>
152
+ <tr>
153
+ <td>Org identity / agent permissions</td>
154
+ <td class="no">Not the focus</td>
155
+ <td class="partial">Local rulesets, not identity</td>
156
+ <td class="yes">Yes — agent "passport" + scoped perms</td>
157
+ <td class="no">No</td>
158
+ </tr>
159
+ <tr>
160
+ <td>License / source</td>
161
+ <td class="partial">MIT core + hosted commercial layer</td>
162
+ <td class="no">Commercial, closed-source</td>
163
+ <td class="no">Commercial</td>
164
+ <td class="yes">Free, MIT</td>
165
+ </tr>
166
+ <tr>
167
+ <td>Pricing</td>
168
+ <td>Free tier; Pro $19/mo or $149/yr</td>
169
+ <td>Commercial paid tier (see their site)</td>
170
+ <td>No public pricing (design-partner)</td>
171
+ <td>Free</td>
172
+ </tr>
173
+ <tr>
174
+ <td>Maturity</td>
175
+ <td class="partial">Newer; learning loop is the bet</td>
176
+ <td class="yes">Polished, broad catalog</td>
177
+ <td class="partial">Early / design-partner stage</td>
178
+ <td class="partial">Minimal adoption</td>
179
+ </tr>
180
+ </tbody>
181
+ </table>
182
+
183
+ <h2>Where SigmaShake is genuinely ahead</h2>
184
+ <p>Saying this plainly builds more trust than pretending otherwise:</p>
185
+ <ul>
186
+ <li><strong>FORCE-substitution.</strong> SigmaShake can rewrite a dangerous command into a safe equivalent before it runs. ThumbGate blocks and explains; it doesn't auto-rewrite. If you want the gate to fix the command rather than stop it, SigmaShake wins.</li>
187
+ <li><strong>A large signed ruleset hub out of the box.</strong> For common, well-known footguns, SigmaShake means you're protected on install with zero authoring. ThumbGate ships a handful of domain skill packs and expects to <em>learn</em> the rest from your corrections — great for novel mistakes, slower for day-one coverage of the obvious ones.</li>
188
+ <li><strong>Maturity and polish.</strong> Desktop app, tamper-evident audit log, low-latency daemon, broad agent coverage including Copilot. SigmaShake is further along as a product.</li>
189
+ </ul>
190
+
191
+ <h2>Where ThumbGate is the better fit</h2>
192
+ <ul>
193
+ <li><strong>The mistakes no catalog has a rule for.</strong> Every team has codebase-specific footguns ("never edit the generated client," "this repo deploys from <code>release</code> not <code>main</code>"). No community hub ships those. ThumbGate writes the rule the first time you thumbs-down the mistake.</li>
194
+ <li><strong>Zero rule-authoring overhead.</strong> SigmaShake and agent-guardrails both ask you to install or write rules. ThumbGate's primary input is a thumbs-down — the correction <em>is</em> the rule authoring.</li>
195
+ <li><strong>MIT core.</strong> The CLI and hook layer are MIT; the hosted sync is the paid part. SigmaShake and APort are closed-source.</li>
196
+ <li><strong>Learned rules sync across the team.</strong> One engineer's thumbs-down becomes everyone's prevention rule.</li>
197
+ </ul>
198
+
199
+ <h2>And APort and agent-guardrails?</h2>
200
+ <p><strong>APort</strong> isn't really a head-to-head. It's an organizational authorization layer — agent "passports," scoped permissions, central policy and audit across Claude, LangChain, CrewAI, and Cursor. It positions as an <em>additional</em> authz layer for orgs and is at design-partner stage. If your problem is "which agents in my org are allowed to do what," APort solves a different problem than a tool-call gate. You could run APort for identity and ThumbGate for behavior.</p>
201
+ <p><strong>roboticforce/agent-guardrails</strong> is a free, MIT set of hand-written deny rules plus PreToolUse hooks for terraform/db/k8s/cloud/git. A fine zero-cost starting point. No dashboard, audit, team management, or learning — if you outgrow a static deny list, that's the moment to look at ThumbGate or SigmaShake.</p>
202
+
203
+ <h2>When to pick which</h2>
204
+ <div class="pair">
205
+ <div>
206
+ <h3 style="margin-top:0;">Pick <strong>SigmaShake</strong> if</h3>
207
+ <ul>
208
+ <li>You want day-one coverage from a large library of ready-made rules</li>
209
+ <li>Safe-command substitution (FORCE) is a requirement, not a nice-to-have</li>
210
+ <li>You want a mature desktop app and a tamper-evident audit log now</li>
211
+ <li>Closed-source commercial software is acceptable</li>
212
+ </ul>
213
+ </div>
214
+ <div>
215
+ <h3 style="margin-top:0;">Pick <strong>ThumbGate</strong> if</h3>
216
+ <ul>
217
+ <li>Your pain is repeat, team-specific mistakes no generic ruleset covers</li>
218
+ <li>You'd rather thumbs-down a mistake than hunt for or author a rule</li>
219
+ <li>You want learned rules to sync across machines and teammates</li>
220
+ <li>You want an MIT-licensed core you can read and embed</li>
221
+ </ul>
222
+ </div>
223
+ </div>
224
+
225
+ <div class="callout callout-green">
226
+ <strong>Honest framing:</strong> SigmaShake is the broader, more polished catalog-and-enforcement product today. ThumbGate's bet is narrower and sharper — the gate that learns the rule from your correction. They overlap, but optimize for different things, and running both is reasonable.
227
+ </div>
228
+
229
+ <h2>Adoption in two minutes (ThumbGate)</h2>
230
+ <ol>
231
+ <li><strong>Install:</strong> <code>npx thumbgate init</code> — detects your agent, wires PreToolUse hooks, no workflow change.</li>
232
+ <li><strong>Thumbs-down when the agent is wrong:</strong> a correction with context becomes a structured failure record.</li>
233
+ <li><strong>The rule writes itself:</strong> ThumbGate auto-promotes a prevention rule from the correction.</li>
234
+ <li><strong>Next time, it's blocked:</strong> the PreToolUse hook intercepts the call before it runs and points the agent back to the spec.</li>
235
+ </ol>
236
+
237
+ <div class="cta-box">
238
+ <h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Tired of correcting the same mistake twice?</h2>
239
+ <p>SigmaShake gives you a catalog. ThumbGate writes the rule from your thumbs-down. Free tier, MIT core, two-minute install.</p>
240
+ <div class="cta-install">$ npx thumbgate init</div>
241
+ </div>
242
+
243
+ <div class="related">
244
+ <h3>Related comparisons</h3>
245
+ <a href="/compare/claude-code-hooks">ThumbGate vs claude-code-hooks &rarr;</a>
246
+ <a href="/compare">All comparisons &rarr;</a>
247
+ </div>
248
+ </div>
249
+
250
+ <div class="sticky-cta">
251
+ <span style="color:var(--muted)">Try it now:</span>
252
+ <code>npx thumbgate init</code>
253
+ <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub &rarr;</a>
254
+ </div>
255
+ </body>
256
+ </html>
@@ -0,0 +1,342 @@
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 SpecLock | Thumbs Feedback vs Manual Specs</title>
7
+ <meta name="description" content="SpecLock starts from manually written constraints. ThumbGate starts from thumbs-up/down feedback and turns it into pre-action checks that block repeated mist..." />
8
+ <meta property="og:title" content="ThumbGate vs SpecLock | Thumbs Feedback vs Manual Specs" />
9
+ <meta property="og:description" content="SpecLock starts from manually written constraints. ThumbGate starts from thumbs-up/down feedback and turns it into pre-action checks that block repeated mist..." />
10
+ <meta property="og:type" content="article" />
11
+ <meta property="og:url" content="https://thumbgate.ai/compare/speclock" />
12
+ <link rel="canonical" href="https://thumbgate.ai/compare/speclock" />
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 SpecLock",
215
+ "description": "SpecLock starts from manually written constraints. ThumbGate starts from thumbs-up/down feedback and turns it into pre-action checks that block repeated mist...",
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/speclock",
223
+ "publisher": {
224
+ "@type": "Organization",
225
+ "name": "ThumbGate",
226
+ "url": "https://thumbgate.ai"
227
+ },
228
+ "mainEntityOfPage": "https://thumbgate.ai/compare/speclock"
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": "Is ThumbGate trying to replace specs?",
239
+ "acceptedAnswer": {
240
+ "@type": "Answer",
241
+ "text": "No. ThumbGate complements specs by capturing thumbs-up/down feedback from live agent behavior and enforcing the learned rules as pre-action checks."
242
+ }
243
+ },
244
+ {
245
+ "@type": "Question",
246
+ "name": "What does ThumbGate do that SpecLock does not?",
247
+ "acceptedAnswer": {
248
+ "@type": "Answer",
249
+ "text": "ThumbGate turns explicit feedback into searchable memory, auto-generated prevention rules, and runtime checks that block repeated mistakes before the next tool call executes."
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 speclock</div>
267
+ <h1>ThumbGate vs SpecLock</h1>
268
+ <p>SpecLock starts from manually written constraints. ThumbGate starts from thumbs-up/down feedback and turns it into pre-action checks that block repeated mistakes.</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>ThumbGate learns from thumbs-up and thumbs-down feedback without requiring a separate spec-writing workflow.</li><li>SpecLock is strongest when a team already has strong specifications and wants enforcement tied to those documents.</li><li>ThumbGate is strongest when the pain is repeated agent mistakes across Claude Code, Cursor, Codex, Gemini, Amp, and OpenCode.</li></ul>
280
+ </div>
281
+
282
+ <section class="detail-section">
283
+ <h2>The product difference in one sentence</h2>
284
+ <p>SpecLock helps a team codify rules before the work begins. ThumbGate helps a team convert real thumbs-up/down feedback into live pre-action checks after the work reveals what actually breaks.</p><p>That means ThumbGate is better for fast-moving agent workflows where the problem is not writing more specs, but preventing the same mistake from happening again tomorrow.</p>
285
+
286
+ </section>
287
+ <section class="detail-section">
288
+ <h2>Choose ThumbGate when</h2>
289
+
290
+ <ul><li>Your agent already repeats known mistakes and you need the block to happen before tool execution.</li><li>You want one feedback loop that supports both reinforcement from thumbs up and prevention from thumbs down.</li><li>You need proof assets, automation reports, and compatibility across multiple coding agents.</li></ul>
291
+ </section>
292
+ <section class="detail-section">
293
+ <h2>Choose SpecLock when</h2>
294
+
295
+ <ul><li>Your team already maintains strong PRDs or system specs and wants the model constrained against those artifacts.</li><li>Your primary problem is uncontrolled file edits, not a missing feedback-to-enforcement loop.</li><li>You are willing to invest in manual constraint authoring as part of the workflow.</li></ul>
296
+ </section>
297
+ <div class="detail-section">
298
+ <h2>FAQ</h2>
299
+
300
+ <details class="faq-item">
301
+ <summary>Is ThumbGate trying to replace specs?</summary>
302
+ <p>No. ThumbGate complements specs by capturing thumbs-up/down feedback from live agent behavior and enforcing the learned rules as pre-action checks.</p>
303
+ </details>
304
+ <details class="faq-item">
305
+ <summary>What does ThumbGate do that SpecLock does not?</summary>
306
+ <p>ThumbGate turns explicit feedback into searchable memory, auto-generated prevention rules, and runtime checks that block repeated mistakes before the next tool call executes.</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 it captures high-intent demand around thumbgate vs speclock and feeds directly into ThumbGate's proof-led conversion path.</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&amp;utm_medium=seo_page&amp;utm_campaign=compare_speclock&amp;cta_placement=seo_brief&amp;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/mem0">
330
+ <span class="related-label">Related page</span>
331
+ <strong>ThumbGate vs Mem0</strong>
332
+ </a>
333
+ <a class="related-card" href="/guides/pre-action-checks">
334
+ <span class="related-label">Related page</span>
335
+ <strong>What Are Pre-Action Checks?</strong>
336
+ </a>
337
+ </div>
338
+ </aside>
339
+ </section>
340
+ </main>
341
+ </body>
342
+ </html>
@@ -272,6 +272,7 @@
272
272
  <ul class="compare-index">
273
273
  <li><a href="/compare/sigmashake">ThumbGate vs SigmaShake</a> — learns the rule from your thumbs-down vs a hand-picked ruleset hub</li>
274
274
  <li><a href="/compare/claude-code-hooks">ThumbGate vs claude-code-hooks</a> — hosted sync &amp; learning on top of local shell-script hooks</li>
275
+ <li><a href="/compare/databricks-unity-ai-gateway">ThumbGate vs Databricks Unity AI Gateway</a> — enterprise gateway governance pairs with local pre-action gates</li>
275
276
  <li><a href="/compare/arcjet">ThumbGate vs Arcjet</a> — agent-outbound gate pairs with an app-inbound firewall</li>
276
277
  <li><a href="/compare/bumblebee">ThumbGate vs Bumblebee</a> — runtime enforcement pairs with static inventory</li>
277
278
  <li><a href="/compare/anthropic-containment">ThumbGate vs Anthropic's Claude Containment</a> — an IDE-agent extension of Anthropic's published architecture</li>
@@ -285,6 +286,7 @@
285
286
  <li><a href="/compare/ai-experience-orchestration">ThumbGate vs AI Experience Orchestration</a> — orchestration vs execution enforcement</li>
286
287
  <li><a href="/compare/agentix-labs">ThumbGate vs Agentix Labs</a> — productized enforcement vs custom AI-agent services</li>
287
288
  <li><a href="/compare/adopt-ai">ThumbGate vs Adopt AI</a> — pre-execution firewall vs evals-first gating for production blast radius</li>
289
+ <li><a href="/compare/arcade">ThumbGate vs Arcade</a> — coding-agent guardrails vs enterprise API auth delegation</li>
288
290
  </ul>
289
291
 
290
292
  <h2>How It Works</h2>