thumbgate 1.27.8 → 1.27.10

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 (117) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.well-known/llms.txt +1 -2
  3. package/.well-known/mcp/server-card.json +1 -1
  4. package/README.md +4 -2
  5. package/adapters/claude/.mcp.json +2 -2
  6. package/adapters/mcp/server-stdio.js +1 -1
  7. package/adapters/opencode/opencode.json +1 -1
  8. package/bin/cli.js +259 -78
  9. package/config/gate-templates.json +228 -0
  10. package/config/gates/claim-verification.json +18 -0
  11. package/package.json +14 -21
  12. package/public/blog.html +30 -0
  13. package/public/compare/adopt-ai.html +219 -0
  14. package/public/compare/agentix-labs.html +197 -0
  15. package/public/compare/ai-experience-orchestration.html +216 -0
  16. package/public/compare/anthropic-claude-for-legal.html +260 -0
  17. package/public/compare/anthropic-containment.html +280 -0
  18. package/public/compare/arcade.html +175 -0
  19. package/public/compare/arcjet.html +239 -0
  20. package/public/compare/bumblebee.html +307 -0
  21. package/public/compare/claude-code-hooks.html +294 -0
  22. package/public/compare/databricks-unity-ai-gateway.html +215 -0
  23. package/public/compare/fallow.html +351 -0
  24. package/public/compare/heidi.html +233 -0
  25. package/public/compare/mem0.html +342 -0
  26. package/public/compare/oak-and-sparrow-gatekeeper.html +289 -0
  27. package/public/compare/rein.html +236 -0
  28. package/public/compare/sigmashake.html +256 -0
  29. package/public/compare/speclock.html +342 -0
  30. package/public/compare.html +2 -0
  31. package/public/guides/agent-harness-optimization.html +342 -0
  32. package/public/guides/agentic-web-governance.html +406 -0
  33. package/public/guides/ai-agent-governance-sprint.html +415 -0
  34. package/public/guides/ai-agent-pre-action-approval-gates.html +401 -0
  35. package/public/guides/ai-agent-workflow-migration-checklist.html +392 -0
  36. package/public/guides/ai-deployment-readiness.html +415 -0
  37. package/public/guides/ai-mode-ads-agent-governance.html +401 -0
  38. package/public/guides/ai-search-topical-presence.html +342 -0
  39. package/public/guides/autoresearch-agent-safety.html +342 -0
  40. package/public/guides/background-agent-governance.html +358 -0
  41. package/public/guides/best-tools-stop-ai-agents-breaking-production.html +363 -0
  42. package/public/guides/browser-automation-safety.html +342 -0
  43. package/public/guides/chatgpt-ads-trust.html +353 -0
  44. package/public/guides/claude-code-feedback.html +339 -0
  45. package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
  46. package/public/guides/claude-code-skills-guardrails.html +343 -0
  47. package/public/guides/claude-desktop.html +356 -0
  48. package/public/guides/code-knowledge-graph-guardrails.html +365 -0
  49. package/public/guides/codex-cli-guardrails.html +339 -0
  50. package/public/guides/cursor-agent-guardrails.html +339 -0
  51. package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
  52. package/public/guides/database-agent-safety.html +406 -0
  53. package/public/guides/deepseek-v4-runtime-guardrails.html +346 -0
  54. package/public/guides/developer-machine-supply-chain-guardrails.html +358 -0
  55. package/public/guides/gcp-mcp-guardrails.html +147 -0
  56. package/public/guides/gemini-cli-feedback-memory.html +339 -0
  57. package/public/guides/gpt-5-5-model-evaluation.html +358 -0
  58. package/public/guides/internal-ai-engineering-stack-guardrails.html +348 -0
  59. package/public/guides/long-running-agent-context-management.html +346 -0
  60. package/public/guides/mcp-tool-governance.html +401 -0
  61. package/public/guides/multica-thumbgate-setup.html +134 -0
  62. package/public/guides/native-messaging-host-security.html +342 -0
  63. package/public/guides/policy-engine-pre-action-gates.html +346 -0
  64. package/public/guides/pre-action-checks.html +342 -0
  65. package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +342 -0
  66. package/public/guides/prompt-tricks-to-workflow-rules.html +365 -0
  67. package/public/guides/proxy-pointer-rag-guardrails.html +352 -0
  68. package/public/guides/rag-precision-tuning-guardrails.html +352 -0
  69. package/public/guides/reasoning-compression-guardrails.html +346 -0
  70. package/public/guides/relational-knowledge-ai-recommendations.html +342 -0
  71. package/public/guides/roo-code-alternative-cline.html +339 -0
  72. package/public/guides/semantic-programmatic-seo-guardrails.html +352 -0
  73. package/public/guides/seo-agent-skills-guardrails.html +344 -0
  74. package/public/guides/stop-repeated-ai-agent-mistakes.html +342 -0
  75. package/public/index.html +192 -50
  76. package/public/learn/ac-dc-runtime-enforcement.html +277 -0
  77. package/public/learn/agent-harness-pattern.html +181 -0
  78. package/public/learn/agent-identity-connector-governance.html +146 -0
  79. package/public/learn/agent-swarms-shared-gates.html +173 -0
  80. package/public/learn/agentic-enterprise-context-brain.html +117 -0
  81. package/public/learn/agentic-os-team-governance.html +146 -0
  82. package/public/learn/ai-agent-governance.html +158 -0
  83. package/public/learn/ai-agent-persistent-memory.html +211 -0
  84. package/public/learn/anthropomorphic-claim-gates.html +180 -0
  85. package/public/learn/background-agent-control-layer.html +184 -0
  86. package/public/learn/claude-code-goal-with-rubrics.html +205 -0
  87. package/public/learn/codex-role-plugins-need-governance.html +125 -0
  88. package/public/learn/cost-aware-agent-gate-routing.html +173 -0
  89. package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +157 -0
  90. package/public/learn/deterministic-agent-workflows.html +185 -0
  91. package/public/learn/feedback-loop-vs-decision-layer.html +283 -0
  92. package/public/learn/from-prototype-to-production.html +223 -0
  93. package/public/learn/learn.css +51 -0
  94. package/public/learn/mcp-pre-action-checks-explained.html +172 -0
  95. package/public/learn/pretix-stripe-connect-marketplaces.html +161 -0
  96. package/public/learn/regulated-agent-execution-boundary.html +196 -0
  97. package/public/learn/spec-driven-development.html +168 -0
  98. package/public/learn/stop-ai-agent-force-push.html +134 -0
  99. package/public/learn/vibe-coding-safety-net.html +142 -0
  100. package/public/learn.html +34 -50
  101. package/public/numbers.html +2 -2
  102. package/public/pro.html +6 -6
  103. package/scripts/cli-schema.js +10 -22
  104. package/scripts/dashboard-chat.js +1 -2
  105. package/scripts/document-intake.js +49 -1
  106. package/scripts/gemini-embedding-policy.js +1 -2
  107. package/scripts/hook-stop-anti-claim.js +103 -42
  108. package/scripts/hosted-config.js +12 -0
  109. package/scripts/plausible-domain-config.js +1 -3
  110. package/scripts/reddit-browser-notification-watch.js +230 -0
  111. package/scripts/seo-gsd.js +0 -239
  112. package/scripts/tool-registry.js +2 -2
  113. package/scripts/vector-store.js +0 -44
  114. package/scripts/workspace-evolver.js +2 -62
  115. package/src/api/server.js +126 -335
  116. package/adapters/policy-engine/ethicore-guardian-client.js +0 -68
  117. package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +0 -260
@@ -0,0 +1,215 @@
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 Databricks Unity AI Gateway | Enterprise Gateway vs Local Pre-Action Gates</title>
7
+ <meta name="description" content="Databricks Unity AI Gateway governs enterprise AI runtime interactions across models, agents, MCP services, tools, cost controls, and observability. ThumbGate adds local pre-action gates before developer agents execute shell, file, browser, API, MCP, or deploy actions." />
8
+ <meta property="og:title" content="ThumbGate vs Databricks Unity AI Gateway" />
9
+ <meta property="og:description" content="Enterprise AI gateways govern the fleet. ThumbGate gates the local action before the agent calls tools." />
10
+ <meta property="og:type" content="article" />
11
+ <meta property="og:url" content="https://thumbgate.ai/compare/databricks-unity-ai-gateway" />
12
+ <link rel="canonical" href="https://thumbgate.ai/compare/databricks-unity-ai-gateway" />
13
+ <link rel="llm-context" href="/llm-context.md" type="text/markdown" />
14
+ <link rel="icon" type="image/png" href="/thumbgate-icon.png" />
15
+ <link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
16
+ <meta property="og:image" content="/og.png" />
17
+ <style>
18
+ :root { --bg: #0a0a0b; --bg-raised: #111113; --bg-card: #161618; --line: #222225; --text: #e8e8ec; --muted: #8b8b96; --cyan: #22d3ee; --green: #4ade80; --amber: #fbbf24; }
19
+ * { box-sizing: border-box; }
20
+ body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); line-height: 1.65; }
21
+ a { color: var(--cyan); text-decoration: none; }
22
+ a:hover { text-decoration: underline; }
23
+ .container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
24
+ .topbar { position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); background: rgba(10, 10, 11, 0.88); border-bottom: 1px solid var(--line); }
25
+ .topbar .container { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; padding-bottom: 14px; }
26
+ .brand { font-weight: 700; color: var(--text); display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
27
+ .brand .logo-mark { width: 28px; height: 28px; display: block; }
28
+ .hero { padding: 72px 0 32px; }
29
+ .eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(34, 211, 238, 0.22); background: rgba(34, 211, 238, 0.1); color: var(--cyan); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 700; }
30
+ h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.06; letter-spacing: -0.04em; margin: 16px 0; max-width: 880px; }
31
+ .hero p { max-width: 760px; color: var(--muted); font-size: 18px; }
32
+ .grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; padding-bottom: 72px; }
33
+ .card, .detail-section, .sidebar-card { background: var(--bg-card); border: 1px solid var(--line); border-radius: 16px; }
34
+ .detail-section { padding: 24px; margin-bottom: 18px; }
35
+ .detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
36
+ .detail-section p, .detail-section li, .sidebar-card p { color: var(--muted); }
37
+ .detail-section ul { padding-left: 18px; }
38
+ .comparison-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 14px; }
39
+ .comparison-table th, .comparison-table td { border: 1px solid var(--line); padding: 12px; text-align: left; vertical-align: top; }
40
+ .comparison-table th { background: var(--bg-raised); color: var(--cyan); }
41
+ .pill-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
42
+ .pill { border: 1px solid var(--line); background: var(--bg-raised); border-radius: 999px; padding: 10px 14px; font-size: 14px; font-weight: 650; }
43
+ .pill.good { color: #b8f7c8; border-color: rgba(74, 222, 128, 0.28); background: rgba(74, 222, 128, 0.1); }
44
+ .pill.warn { color: #ffe2a4; border-color: rgba(251, 191, 36, 0.28); background: rgba(251, 191, 36, 0.1); }
45
+ .sidebar { display: flex; flex-direction: column; gap: 18px; }
46
+ .sidebar-card { padding: 20px; }
47
+ .sidebar-card:first-child { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
48
+ .cta-button { display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 12px 16px; border-radius: 10px; background: var(--cyan); color: #071116; font-weight: 700; text-decoration: none; }
49
+ .related-card { display: block; padding: 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg-raised); margin-top: 12px; color: var(--text); }
50
+ .related-label { display: block; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
51
+ .faq-item { border-top: 1px solid var(--line); padding: 14px 0; }
52
+ .faq-item summary { cursor: pointer; font-weight: 600; }
53
+ .faq-item p { color: var(--muted); }
54
+ code { color: var(--cyan); background: var(--bg-raised); border: 1px solid var(--line); border-radius: 6px; padding: 0.08rem 0.3rem; }
55
+ @media (max-width: 860px) { .grid { grid-template-columns: 1fr; } .sidebar-card:first-child { position: static; max-height: none; overflow: visible; } }
56
+ </style>
57
+ <script type="application/ld+json">
58
+ {
59
+ "@context": "https://schema.org",
60
+ "@type": "TechArticle",
61
+ "headline": "ThumbGate vs Databricks Unity AI Gateway",
62
+ "description": "Databricks Unity AI Gateway is an enterprise control plane for model, agent, MCP, tool, observability, guardrail, and cost-control governance. ThumbGate is a local pre-action gate that blocks risky developer-agent actions before they call shell, file, browser, API, MCP, or deploy tools.",
63
+ "about": ["Databricks Unity AI Gateway", "AI gateway", "MCP governance", "pre-action gates", "AI agent governance"],
64
+ "url": "https://thumbgate.ai/compare/databricks-unity-ai-gateway",
65
+ "publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
66
+ "mainEntityOfPage": "https://thumbgate.ai/compare/databricks-unity-ai-gateway"
67
+ }
68
+ </script>
69
+ <script type="application/ld+json">
70
+ {
71
+ "@context": "https://schema.org",
72
+ "@type": "FAQPage",
73
+ "mainEntity": [
74
+ {
75
+ "@type": "Question",
76
+ "name": "Is ThumbGate a Databricks Unity AI Gateway competitor?",
77
+ "acceptedAnswer": {
78
+ "@type": "Answer",
79
+ "text": "No. Databricks Unity AI Gateway is an enterprise AI gateway and governance control plane. ThumbGate is a local pre-action enforcement layer inside developer-agent workflows. The strongest architecture uses the gateway for fleet-level governance and local gates for action-level prevention."
80
+ }
81
+ },
82
+ {
83
+ "@type": "Question",
84
+ "name": "What gap does ThumbGate fill if a team already has Unity AI Gateway?",
85
+ "acceptedAnswer": {
86
+ "@type": "Answer",
87
+ "text": "ThumbGate fills the local action boundary: before a coding agent runs shell, edits files, calls MCP tools, opens browsers, hits APIs, or deploys. Enterprise gateways observe and govern centralized AI traffic. Local pre-action gates stop repeated workflow failures at the point where the agent is about to act."
88
+ }
89
+ },
90
+ {
91
+ "@type": "Question",
92
+ "name": "How do budget controls differ from pre-action gates?",
93
+ "acceptedAnswer": {
94
+ "@type": "Answer",
95
+ "text": "Budget controls monitor consumption and can recommend cheaper routing or enforce spend limits. Pre-action gates inspect the actual proposed action and block destructive, unsupported, unverified, or policy-breaking tool calls before execution."
96
+ }
97
+ },
98
+ {
99
+ "@type": "Question",
100
+ "name": "Can Databricks Unity AI Gateway and ThumbGate run together?",
101
+ "acceptedAnswer": {
102
+ "@type": "Answer",
103
+ "text": "Yes. Unity AI Gateway can govern model, agent, MCP, and tool access across the enterprise. ThumbGate can run locally in developer-agent workflows to enforce learned pre-action rules before tools fire. This page does not claim partnership, certification, or endorsement by Databricks."
104
+ }
105
+ }
106
+ ]
107
+ }
108
+ </script>
109
+ </head>
110
+ <body>
111
+ <header class="topbar">
112
+ <div class="container">
113
+ <a href="/" class="brand"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28" /><span>ThumbGate</span></a>
114
+ <nav><a href="/learn">Learn</a> &nbsp; <a href="/compare">Compare</a> &nbsp; <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a></nav>
115
+ </div>
116
+ </header>
117
+
118
+ <section class="hero">
119
+ <div class="container">
120
+ <span class="eyebrow">ThumbGate vs Databricks Unity AI Gateway</span>
121
+ <h1>Enterprise AI gateways govern the fleet. ThumbGate gates the local action.</h1>
122
+ <p><strong>Databricks Unity AI Gateway</strong> validates the category: teams need runtime governance across models, agents, MCP services, enterprise tools, guardrails, observability, and AI cost controls. <strong>ThumbGate</strong> turns that buyer conversation into a developer-agent wedge: stop the repeated bad action before the agent calls shell, file, browser, API, MCP, or deploy tools.</p>
123
+ <div class="pill-row">
124
+ <span class="pill good">Complementary, not competitive</span>
125
+ <span class="pill">MCP governance + local PreToolUse</span>
126
+ <span class="pill warn">No Databricks partnership claim</span>
127
+ </div>
128
+ </div>
129
+ </section>
130
+
131
+ <main class="container">
132
+ <div class="grid">
133
+ <div class="content">
134
+ <section class="detail-section">
135
+ <h2>Side-by-side scope comparison</h2>
136
+ <table class="comparison-table">
137
+ <thead>
138
+ <tr><th>Dimension</th><th>Databricks Unity AI Gateway</th><th>ThumbGate</th></tr>
139
+ </thead>
140
+ <tbody>
141
+ <tr><td><strong>Primary control plane</strong></td><td>Enterprise AI gateway for runtime interactions among models, agents, MCP services, skills, enterprise tools, and custom AI systems.</td><td>Local pre-action gate in the developer-agent workflow before shell, file, browser, API, MCP, or deploy actions execute.</td></tr>
142
+ <tr><td><strong>Buyer</strong></td><td>Data, platform, security, and AI governance teams standardizing enterprise access and observability.</td><td>Engineering leaders, operators, and agent builders who need repeated workflow failures to stop at the action boundary.</td></tr>
143
+ <tr><td><strong>MCP governance</strong></td><td>Service policies can define who can call which MCP services and enforce constraints as calls flow through the gateway.</td><td>PreToolUse rules can block or require proof for the local MCP tool call the agent is about to invoke.</td></tr>
144
+ <tr><td><strong>Cost posture</strong></td><td>Tracks token consumption, budgets, and model/provider routing at the gateway layer.</td><td>Can block runaway local loops, require proof before expensive steps, and enforce budget-aware gate routing before a tool fires.</td></tr>
145
+ <tr><td><strong>Failure mode caught</strong></td><td>Unapproved provider usage, ungoverned service calls, missing observability, policy violations in centralized AI traffic.</td><td>Repeated destructive commands, unverified claims, unsafe file writes, risky deploys, wrong-context MCP/API calls, and local automation drift.</td></tr>
146
+ <tr><td><strong>Time to first local test</strong></td><td>Enterprise platform setup and policy design.</td><td><code>npm install -g thumbgate</code>, then <code>npx thumbgate init</code> in the agent workflow.</td></tr>
147
+ <tr><td><strong>Best together</strong></td><td>Govern the enterprise AI gateway.</td><td>Gate the developer-agent action before it reaches tools.</td></tr>
148
+ </tbody>
149
+ </table>
150
+ </section>
151
+
152
+ <section class="detail-section">
153
+ <h2>Why the Databricks signal matters</h2>
154
+ <p>Databricks is telling the enterprise market that AI governance is no longer only a dashboard, model catalog, or compliance report. Their June 2026 launch language moves governance into runtime interactions: models, agents, MCP services, skills, tools, guardrails, observability, and cost controls.</p>
155
+ <p>That is good for ThumbGate. It makes the buyer problem obvious before ThumbGate has to educate the whole market: once agents can use tools, a team needs control at runtime. ThumbGate's narrower job is to own the local pre-action layer where a developer agent is about to do something concrete.</p>
156
+ </section>
157
+
158
+ <section class="detail-section">
159
+ <h2>The wedge: gateway plus gate</h2>
160
+ <p>A gateway can decide which provider, model, service, or MCP endpoint the enterprise permits. A pre-action gate asks the smaller, sharper question: <strong>should this agent action run right now?</strong></p>
161
+ <ul>
162
+ <li>Should this shell command execute in this directory?</li>
163
+ <li>Should this MCP tool call run without a source URL or approval receipt?</li>
164
+ <li>Should this browser automation post publicly without action-time confirmation?</li>
165
+ <li>Should this deploy proceed without the required tests and evidence?</li>
166
+ <li>Should this repeated failure become a durable prevention rule?</li>
167
+ </ul>
168
+ <p>That is not a replacement for Unity AI Gateway. It is the local enforcement surface that makes the gateway story more complete.</p>
169
+ </section>
170
+
171
+ <section class="detail-section">
172
+ <h2>Honest non-affiliation statement</h2>
173
+ <p>ThumbGate is not a Databricks product, partner, certification, or endorsed integration. This comparison cites public Databricks materials to explain market positioning and architecture boundaries. The practical recommendation is complementary deployment: enterprise gateway for fleet-level governance, ThumbGate for local developer-agent pre-action enforcement.</p>
174
+ </section>
175
+
176
+ <section class="detail-section">
177
+ <h2>Source evidence</h2>
178
+ <ul>
179
+ <li><a href="https://www.databricks.com/blog/ai-governance-data-ai-summit-2026-whats-new-unity-ai-gateway" target="_blank" rel="noopener">Databricks blog: AI governance at Data + AI Summit 2026 and Unity AI Gateway</a></li>
180
+ <li><a href="https://www.databricks.com/blog/whats-new-unity-ai-gateway-service-policies-guardrails-observability-and-cost-controls-ai" target="_blank" rel="noopener">Databricks blog: service policies, guardrails, observability, and cost controls</a></li>
181
+ <li><a href="https://www.databricks.com/product/artificial-intelligence/unity-ai-gateway" target="_blank" rel="noopener">Databricks product page: Unity AI Gateway</a></li>
182
+ </ul>
183
+ </section>
184
+ </div>
185
+
186
+ <aside class="sidebar">
187
+ <div class="sidebar-card">
188
+ <span class="related-label">Operator takeaway</span>
189
+ <h2>Dashboards and budgets warn you. Gates stop the action.</h2>
190
+ <p>Use Databricks' announcement as proof that runtime AI governance is now an enterprise budget line. Then sell ThumbGate as the fast local test for the action boundary.</p>
191
+ <a class="cta-button" href="/guide?utm_source=databricks_unity_ai_gateway&utm_medium=comparison&utm_campaign=enterprise_gateway_gap">Run the local gate</a>
192
+ </div>
193
+ <div class="sidebar-card">
194
+ <span class="related-label">Related</span>
195
+ <a class="related-card" href="/learn/databricks-unity-ai-gateway-runtime-governance">Databricks validates runtime AI governance</a>
196
+ <a class="related-card" href="/learn/mcp-pre-action-checks-explained">MCP pre-action checks explained</a>
197
+ <a class="related-card" href="/learn/cost-aware-agent-gate-routing">Cost-aware agent gate routing</a>
198
+ <a class="related-card" href="/compare/arcjet">ThumbGate vs Arcjet</a>
199
+ </div>
200
+ <div class="sidebar-card">
201
+ <span class="related-label">FAQ</span>
202
+ <details class="faq-item" open>
203
+ <summary>Can this be sold to enterprise teams?</summary>
204
+ <p>Yes, but the lowest-friction wedge is a concrete workflow diagnostic: one repeated failure, one local gate, one proof run.</p>
205
+ </details>
206
+ <details class="faq-item">
207
+ <summary>Should the copy attack Databricks?</summary>
208
+ <p>No. Databricks legitimizes the category. The money move is to show where a local gate complements the gateway.</p>
209
+ </details>
210
+ </div>
211
+ </aside>
212
+ </div>
213
+ </main>
214
+ </body>
215
+ </html>
@@ -0,0 +1,351 @@
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 Fallow | Static Analysis vs Agent Action Enforcement</title>
7
+ <meta name="description" content="Fallow finds JS/TS code health issues: dead code, duplication, complexity, and architecture drift. ThumbGate is action-boundary enforcement for AI agents, st..." />
8
+ <meta property="og:title" content="ThumbGate vs Fallow | Static Analysis vs Agent Action Enforcement" />
9
+ <meta property="og:description" content="Fallow finds JS/TS code health issues: dead code, duplication, complexity, and architecture drift. ThumbGate is action-boundary enforcement for AI agents, st..." />
10
+ <meta property="og:type" content="article" />
11
+ <meta property="og:url" content="https://thumbgate.ai/compare/fallow" />
12
+ <link rel="canonical" href="https://thumbgate.ai/compare/fallow" />
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 Fallow",
215
+ "description": "Fallow finds JS/TS code health issues: dead code, duplication, complexity, and architecture drift. ThumbGate is action-boundary enforcement for AI agents, st...",
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/fallow",
223
+ "publisher": {
224
+ "@type": "Organization",
225
+ "name": "ThumbGate",
226
+ "url": "https://thumbgate.ai"
227
+ },
228
+ "mainEntityOfPage": "https://thumbgate.ai/compare/fallow"
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 Fallow a competitor to ThumbGate?",
239
+ "acceptedAnswer": {
240
+ "@type": "Answer",
241
+ "text": "Partly adjacent, but mostly complementary. Fallow analyzes JS/TS code health. ThumbGate enforces AI-agent actions before execution. They solve different parts of the agent workflow."
242
+ }
243
+ },
244
+ {
245
+ "@type": "Question",
246
+ "name": "Should ThumbGate integrate with Fallow output?",
247
+ "acceptedAnswer": {
248
+ "@type": "Answer",
249
+ "text": "Yes. Fallow JSON is useful input for ThumbGate gates, especially duplication, complexity, changed-file audit results, and architecture-boundary warnings."
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 fallow</div>
267
+ <h1>ThumbGate vs Fallow</h1>
268
+ <p>Fallow finds JS/TS code health issues: dead code, duplication, complexity, and architecture drift. ThumbGate is action-boundary enforcement for AI agents, stopping agents from acting on those signals unsafely.</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>Fallow is complementary, not a direct replacement: it finds dead code, duplication, complexity, and architecture drift.</li><li>ThumbGate governs the next agent action: refactor scope, risky edits, CI proof, team lessons, and pre-action blocks.</li><li>Together, Fallow output can become ThumbGate gates so agents do not blindly refactor everything a static analyzer flags.</li></ul>
280
+ </div>
281
+
282
+ <section class="detail-section">
283
+ <h2>The product difference in one sentence</h2>
284
+ <p>Fallow tells you where a JavaScript or TypeScript codebase may be unhealthy. ThumbGate governs what AI agents are allowed to do next: make the next edit, command, PR, or publish action.</p><p>That distinction matters because analyzer output can be useful and dangerous at the same time. A duplicated block can be safe to refactor, or it can be intentional domain duplication where an agent should stop and ask for evidence.</p>
285
+
286
+ </section>
287
+ <section class="detail-section">
288
+ <h2>Choose Fallow when</h2>
289
+
290
+ <ul><li>You want static reports for unused code, duplicate blocks, complexity hotspots, circular dependencies, or architecture drift.</li><li>You need JSON diagnostics an agent can inspect before proposing cleanup work.</li><li>Your immediate goal is code health visibility in JS/TS repositories.</li></ul>
291
+ </section>
292
+ <section class="detail-section">
293
+ <h2>Choose ThumbGate when</h2>
294
+
295
+ <ul><li>You need pre-action enforcement before an AI agent applies analyzer-driven refactors.</li><li>You want CI and human feedback to become durable prevention rules across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.</li><li>You need audit evidence that a risky cleanup, dependency update, or cross-layer refactor was checked before execution.</li></ul>
296
+ </section>
297
+ <section class="detail-section">
298
+ <h2>Best together</h2>
299
+ <p>The highest-ROI workflow is Fallow for deterministic codebase signals and ThumbGate for agent governance. Run the analyzer, pass the changed-file and complexity signals into a ThumbGate gate, then require proof before the agent edits central files or opens a PR.</p>
300
+
301
+ </section>
302
+ <div class="detail-section">
303
+ <h2>FAQ</h2>
304
+
305
+ <details class="faq-item">
306
+ <summary>Is Fallow a competitor to ThumbGate?</summary>
307
+ <p>Partly adjacent, but mostly complementary. Fallow analyzes JS/TS code health. ThumbGate enforces AI-agent actions before execution. They solve different parts of the agent workflow.</p>
308
+ </details>
309
+ <details class="faq-item">
310
+ <summary>Should ThumbGate integrate with Fallow output?</summary>
311
+ <p>Yes. Fallow JSON is useful input for ThumbGate gates, especially duplication, complexity, changed-file audit results, and architecture-boundary warnings.</p>
312
+ </details>
313
+ </div>
314
+ </div>
315
+
316
+ <aside class="sidebar">
317
+
318
+
319
+
320
+
321
+ <div class="sidebar-card">
322
+ <h2>GSD execution brief</h2>
323
+ <p>This page was prioritized because it captures high-intent demand around thumbgate vs fallow and feeds directly into ThumbGate's proof-led conversion path.</p>
324
+ <p><strong>Opportunity score:</strong> 100</p>
325
+ <p><strong>Primary persona:</strong> tool-evaluator</p>
326
+ <p><strong>Keyword cluster:</strong> thumbgate vs speclock, thumbgate vs mem0, thumbgate vs fallow, roo code alternative cline</p>
327
+ <p><strong>Pricing:</strong> Pro $19/mo or $149/yr. Team $49/seat/mo.</p>
328
+ <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>
329
+ <a class="cta-button" href="/checkout/pro?utm_source=website&amp;utm_medium=seo_page&amp;utm_campaign=compare_fallow&amp;cta_placement=seo_brief&amp;plan_id=pro" target="_blank" rel="noopener">Go Pro — $19/mo</a>
330
+ </div>
331
+ <div class="sidebar-card">
332
+ <h2>Related pages</h2>
333
+
334
+ <a class="related-card" href="/guides/code-knowledge-graph-guardrails">
335
+ <span class="related-label">Related page</span>
336
+ <strong>Code Graphs Are Context. ThumbGate Is Execution Control.</strong>
337
+ </a>
338
+ <a class="related-card" href="/guides/agent-harness-optimization">
339
+ <span class="related-label">Related page</span>
340
+ <strong>AI Agent Harness Optimization That Blocks Repeat Failures</strong>
341
+ </a>
342
+ <a class="related-card" href="/guides/pre-action-checks">
343
+ <span class="related-label">Related page</span>
344
+ <strong>What Are Pre-Action Checks?</strong>
345
+ </a>
346
+ </div>
347
+ </aside>
348
+ </section>
349
+ </main>
350
+ </body>
351
+ </html>