thumbgate 1.17.0 → 1.19.0
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 +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +26 -4
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/config/model-candidates.json +31 -0
- package/package.json +29 -8
- package/public/compare.html +6 -0
- package/public/federal.html +375 -0
- package/public/guide.html +2 -2
- package/public/index.html +49 -19
- package/public/learn.html +28 -0
- package/public/numbers.html +2 -2
- package/public/pro.html +4 -4
- package/scripts/activation-tracker.js +127 -0
- package/scripts/auto-promote-gates.js +4 -1
- package/scripts/feedback-loop.js +14 -1
- package/scripts/feedback-to-rules.js +11 -1
- package/scripts/feedback_quality_eval.py +725 -0
- package/scripts/memory-scope-readiness.js +315 -0
- package/scripts/plausible-server-events.js +162 -0
- package/scripts/seo-gsd.js +75 -2
- package/scripts/statusline-links.js +2 -0
- package/scripts/telemetry-analytics.js +1 -0
- package/src/api/server.js +557 -12
|
@@ -0,0 +1,375 @@
|
|
|
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
|
+
__GOOGLE_SITE_VERIFICATION_META__
|
|
7
|
+
<title>ThumbGate for Federal Agencies | Auditable pre-action gates for AI coding agents</title>
|
|
8
|
+
<meta name="description" content="ThumbGate is a pre-action enforcement layer for AI coding agents used inside federal agencies. Auditable agent behavior, agency-owned policy, vendor-neutral. Pilot-ready posture mapped to NIST 800-53 and OMB M-24-10.">
|
|
9
|
+
<meta property="og:title" content="ThumbGate for Federal Agencies">
|
|
10
|
+
<meta property="og:description" content="Auditable pre-action gates for AI coding agents inside federal agencies. Maps to NIST 800-53 (AC-3, AU-2/3/12, CM-3, IR-4, SI-4) and OMB M-24-10. Air-gapped deployment via ThumbGate-Core gov mode.">
|
|
11
|
+
<meta property="og:type" content="website">
|
|
12
|
+
<meta property="og:url" content="__APP_ORIGIN__/federal">
|
|
13
|
+
<link rel="canonical" href="__APP_ORIGIN__/federal">
|
|
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
|
+
<meta name="keywords" content="ThumbGate federal, AI agent governance federal, NIST 800-53 AI agent, OMB M-24-10, EO 14110, FedRAMP AI coding agent, federal AI use case inventory, agent audit log, agency AI policy enforcement, Bedrock GovCloud, Azure Government AI, SBIR AI governance">
|
|
18
|
+
|
|
19
|
+
<script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
|
|
20
|
+
__GA_BOOTSTRAP__
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
const gaMeasurementId = '__GA_MEASUREMENT_ID__';
|
|
24
|
+
const serverVisitorId = '__SERVER_VISITOR_ID__';
|
|
25
|
+
const serverSessionId = '__SERVER_SESSION_ID__';
|
|
26
|
+
const serverAcquisitionId = '__SERVER_ACQUISITION_ID__';
|
|
27
|
+
const serverTelemetryCaptured = '__SERVER_TELEMETRY_CAPTURED__' === 'true';
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<script type="application/ld+json">
|
|
31
|
+
{
|
|
32
|
+
"@context": "https://schema.org",
|
|
33
|
+
"@type": "SoftwareApplication",
|
|
34
|
+
"name": "ThumbGate for Federal Agencies",
|
|
35
|
+
"applicationCategory": "DeveloperApplication",
|
|
36
|
+
"operatingSystem": "Cross-platform, Node.js >=18.18.0",
|
|
37
|
+
"description": "Pre-action enforcement layer for AI coding agents used inside federal agencies. Produces auditable agent behavior evidence mapped to NIST 800-53 Rev 5 and OMB M-24-10. Vendor-neutral across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode.",
|
|
38
|
+
"url": "__APP_ORIGIN__/federal",
|
|
39
|
+
"dateModified": "2026-05-13",
|
|
40
|
+
"creator": { "@type": "Person", "name": "Igor Ganapolsky", "url": "https://github.com/IgorGanapolsky" },
|
|
41
|
+
"audience": { "@type": "Audience", "audienceType": "Federal agency AI use-case owners, CIOs, CTOs, SBIR program managers, federal systems integrators" }
|
|
42
|
+
}
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
<script type="application/ld+json">
|
|
46
|
+
{
|
|
47
|
+
"@context": "https://schema.org",
|
|
48
|
+
"@type": "FAQPage",
|
|
49
|
+
"mainEntity": [
|
|
50
|
+
{ "@type": "Question", "name": "Is ThumbGate FedRAMP authorized?", "acceptedAnswer": { "@type": "Answer", "text": "Not yet. ThumbGate has a pilot-ready posture and is targeting FedRAMP Low baseline via agency sponsorship. ThumbGate-Core gov mode supports on-prem and government cloud deployment for pilot work in research enclaves and innovation labs." } },
|
|
51
|
+
{ "@type": "Question", "name": "Does ThumbGate require sending agency data to a public LLM?", "acceptedAnswer": { "@type": "Answer", "text": "No. ThumbGate-Core gov mode routes all model calls through Bedrock GovCloud or Azure Government. Air-gapped installs are supported with no telemetry and no auto-update. The enforcement engine itself runs locally and does not require any model call to make a gate decision." } },
|
|
52
|
+
{ "@type": "Question", "name": "Which NIST 800-53 controls does ThumbGate produce evidence for?", "acceptedAnswer": { "@type": "Answer", "text": "AC-3, AC-6, AU-2, AU-3, AU-12, CM-3, CM-7, IR-4, RA-5, SI-4, and SI-7. Full mapping is published in the public docs/FEDERAL.md document on GitHub." } },
|
|
53
|
+
{ "@type": "Question", "name": "How does ThumbGate align with OMB M-24-10?", "acceptedAnswer": { "@type": "Answer", "text": "Gate-decision telemetry produces a continuous AI use-case inventory required under §5(a). Pre-action evidence gates enforce minimum risk-management practices required under §5(c) for safety- and rights-impacting AI. Structured audit logs are exportable for the §5(d) annual disclosure cycle." } },
|
|
54
|
+
{ "@type": "Question", "name": "Does using ThumbGate inside an agency affect open-source contributors?", "acceptedAnswer": { "@type": "Answer", "text": "No. Federal capabilities are an additive Core deployment profile, not a fork. The open-source ThumbGate that developers install from npm is byte-identical regardless of any federal work happening in ThumbGate-Core. Five architectural invariants protecting the dev product are pinned by regression tests." } },
|
|
55
|
+
{ "@type": "Question", "name": "What does a pilot look like?", "acceptedAnswer": { "@type": "Answer", "text": "A 30-minute scoping call to identify one agent workflow inside the agency. ThumbGate-Core gov mode installed in an isolated environment. Two weeks of monitored gate decisions on a real workflow. A written report covering captured behavior, blocked actions, and NIST control evidence produced. No procurement vehicle required for Phase 0/1." } },
|
|
56
|
+
{ "@type": "Question", "name": "Is there a federal RAG product?", "acceptedAnswer": { "@type": "Answer", "text": "Not yet, and not on speculation. RAG over agency policy or document corpora will be built when a pilot agency names a specific use case. The supporting pieces (vector store, embeddings, reranker, hallucination detector) already exist as agency-neutral building blocks." } }
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<style>
|
|
62
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
63
|
+
:root {
|
|
64
|
+
--bg: #0a0a0b;
|
|
65
|
+
--bg-raised: #111113;
|
|
66
|
+
--bg-card: #161618;
|
|
67
|
+
--border: #232327;
|
|
68
|
+
--text: #ececf1;
|
|
69
|
+
--text-muted: #9a9aa6;
|
|
70
|
+
--cyan: #22d3ee;
|
|
71
|
+
--cyan-dim: rgba(34, 211, 238, 0.12);
|
|
72
|
+
--cyan-glow: rgba(34, 211, 238, 0.22);
|
|
73
|
+
--green: #4ade80;
|
|
74
|
+
--green-dim: rgba(74, 222, 128, 0.12);
|
|
75
|
+
--amber: #fbbf24;
|
|
76
|
+
--amber-dim: rgba(251, 191, 36, 0.12);
|
|
77
|
+
--red: #f87171;
|
|
78
|
+
--font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, sans-serif;
|
|
79
|
+
--mono: 'SF Mono', 'Cascadia Code', 'JetBrains Mono', 'Fira Code', Consolas, monospace;
|
|
80
|
+
}
|
|
81
|
+
html { scroll-behavior: smooth; }
|
|
82
|
+
body {
|
|
83
|
+
margin: 0;
|
|
84
|
+
font-family: var(--font);
|
|
85
|
+
background:
|
|
86
|
+
radial-gradient(circle at top, rgba(34, 211, 238, 0.16) 0%, rgba(34, 211, 238, 0) 28%),
|
|
87
|
+
linear-gradient(180deg, #0a0a0b 0%, #0d1016 48%, #0a0a0b 100%);
|
|
88
|
+
color: var(--text);
|
|
89
|
+
line-height: 1.6;
|
|
90
|
+
-webkit-font-smoothing: antialiased;
|
|
91
|
+
}
|
|
92
|
+
a { color: inherit; }
|
|
93
|
+
.container { max-width: 1040px; margin: 0 auto; padding: 0 24px; }
|
|
94
|
+
nav {
|
|
95
|
+
position: sticky; top: 0; z-index: 50;
|
|
96
|
+
backdrop-filter: blur(12px);
|
|
97
|
+
background: rgba(10, 10, 11, 0.86);
|
|
98
|
+
border-bottom: 1px solid rgba(35, 35, 39, 0.92);
|
|
99
|
+
}
|
|
100
|
+
nav .container { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
|
|
101
|
+
.nav-logo { font-size: 15px; font-weight: 700; letter-spacing: -0.02em; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
|
|
102
|
+
.nav-logo .logo-mark { width: 28px; height: 28px; display: block; }
|
|
103
|
+
.nav-logo span { color: var(--cyan); }
|
|
104
|
+
.nav-links { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; }
|
|
105
|
+
.nav-links a { color: var(--text-muted); text-decoration: none; font-size: 13px; }
|
|
106
|
+
.nav-links a:hover { color: var(--text); }
|
|
107
|
+
|
|
108
|
+
header.hero { padding: 80px 0 56px; }
|
|
109
|
+
.eyebrow {
|
|
110
|
+
display: inline-block;
|
|
111
|
+
color: var(--cyan);
|
|
112
|
+
background: var(--cyan-dim);
|
|
113
|
+
border: 1px solid rgba(34, 211, 238, 0.3);
|
|
114
|
+
padding: 6px 12px;
|
|
115
|
+
border-radius: 999px;
|
|
116
|
+
font-size: 12px;
|
|
117
|
+
font-weight: 600;
|
|
118
|
+
letter-spacing: 0.04em;
|
|
119
|
+
text-transform: uppercase;
|
|
120
|
+
margin-bottom: 20px;
|
|
121
|
+
}
|
|
122
|
+
h1 { font-size: 44px; line-height: 1.1; letter-spacing: -0.02em; margin: 0 0 20px; }
|
|
123
|
+
h1 .accent { color: var(--cyan); }
|
|
124
|
+
.lede { font-size: 18px; color: var(--text-muted); max-width: 720px; margin: 0 0 28px; }
|
|
125
|
+
.cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
|
|
126
|
+
.btn-primary, .btn-secondary {
|
|
127
|
+
display: inline-flex; align-items: center; gap: 8px;
|
|
128
|
+
padding: 12px 20px; border-radius: 8px; font-weight: 600; font-size: 14px;
|
|
129
|
+
text-decoration: none; transition: transform 80ms ease, box-shadow 80ms ease;
|
|
130
|
+
}
|
|
131
|
+
.btn-primary { background: var(--cyan); color: #001016; box-shadow: 0 8px 24px var(--cyan-glow); }
|
|
132
|
+
.btn-primary:hover { transform: translateY(-1px); }
|
|
133
|
+
.btn-secondary { border: 1px solid var(--border); color: var(--text); background: var(--bg-raised); }
|
|
134
|
+
.btn-secondary:hover { border-color: var(--cyan); color: var(--cyan); }
|
|
135
|
+
|
|
136
|
+
section { padding: 56px 0; border-top: 1px solid var(--border); }
|
|
137
|
+
section h2 { font-size: 28px; letter-spacing: -0.015em; margin: 0 0 12px; }
|
|
138
|
+
section h2 .accent { color: var(--cyan); }
|
|
139
|
+
section p.section-lede { color: var(--text-muted); font-size: 15px; max-width: 760px; margin: 0 0 28px; }
|
|
140
|
+
|
|
141
|
+
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
|
|
142
|
+
.card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; padding: 20px; }
|
|
143
|
+
.card h3 { font-size: 16px; margin: 0 0 8px; color: var(--cyan); letter-spacing: -0.01em; }
|
|
144
|
+
.card p { font-size: 14px; color: var(--text-muted); margin: 0; }
|
|
145
|
+
|
|
146
|
+
table.compliance { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 8px; }
|
|
147
|
+
table.compliance th, table.compliance td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
|
|
148
|
+
table.compliance th { color: var(--text-muted); font-weight: 600; font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; background: var(--bg-raised); }
|
|
149
|
+
table.compliance code { font-family: var(--mono); color: var(--cyan); font-size: 12px; }
|
|
150
|
+
.status-ok { color: var(--green); font-weight: 600; }
|
|
151
|
+
.status-partial { color: var(--amber); font-weight: 600; }
|
|
152
|
+
.status-pending { color: var(--text-muted); font-weight: 600; }
|
|
153
|
+
|
|
154
|
+
.deployment-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
|
|
155
|
+
@media (max-width: 720px) { .deployment-grid { grid-template-columns: 1fr; } h1 { font-size: 34px; } }
|
|
156
|
+
.deployment-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; padding: 24px; }
|
|
157
|
+
.deployment-card.gov { border-color: rgba(34, 211, 238, 0.4); }
|
|
158
|
+
.deployment-card h3 { font-size: 18px; margin: 0 0 12px; }
|
|
159
|
+
.deployment-card ul { padding-left: 18px; color: var(--text-muted); font-size: 14px; margin: 0; }
|
|
160
|
+
.deployment-card li { margin: 6px 0; }
|
|
161
|
+
|
|
162
|
+
.callout {
|
|
163
|
+
background: var(--bg-raised);
|
|
164
|
+
border: 1px solid var(--border);
|
|
165
|
+
border-left: 3px solid var(--cyan);
|
|
166
|
+
border-radius: 8px;
|
|
167
|
+
padding: 18px 20px;
|
|
168
|
+
color: var(--text-muted);
|
|
169
|
+
font-size: 14px;
|
|
170
|
+
}
|
|
171
|
+
.callout strong { color: var(--text); }
|
|
172
|
+
|
|
173
|
+
footer { padding: 40px 0 80px; text-align: center; color: var(--text-muted); font-size: 13px; }
|
|
174
|
+
footer a { color: var(--cyan); text-decoration: none; }
|
|
175
|
+
</style>
|
|
176
|
+
</head>
|
|
177
|
+
<body>
|
|
178
|
+
|
|
179
|
+
<nav>
|
|
180
|
+
<div class="container">
|
|
181
|
+
<a class="nav-logo" href="/">
|
|
182
|
+
<img class="logo-mark" src="/assets/brand/thumbgate-mark.svg" alt="" />
|
|
183
|
+
ThumbGate <span>/ federal</span>
|
|
184
|
+
</a>
|
|
185
|
+
<div class="nav-links">
|
|
186
|
+
<a href="#capabilities">Capabilities</a>
|
|
187
|
+
<a href="#compliance">Compliance</a>
|
|
188
|
+
<a href="#deployment">Deployment</a>
|
|
189
|
+
<a href="#engage">Pilot</a>
|
|
190
|
+
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/FEDERAL.md">Docs</a>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
</nav>
|
|
194
|
+
|
|
195
|
+
<header class="hero">
|
|
196
|
+
<div class="container">
|
|
197
|
+
<span class="eyebrow">For Federal Agencies</span>
|
|
198
|
+
<h1>Auditable <span class="accent">pre-action gates</span> for AI coding agents inside federal agencies.</h1>
|
|
199
|
+
<p class="lede">
|
|
200
|
+
Every gate decision is logged with timestamp, actor, action, policy, and evidence — the artifact OMB M-24-10 and EO 14110 ask for, generated continuously. Agency-owned policy. Vendor-neutral across Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode. On-prem or government cloud deployment via ThumbGate-Core gov mode.
|
|
201
|
+
</p>
|
|
202
|
+
<div class="cta-row">
|
|
203
|
+
<a class="btn-primary" href="mailto:iganapolsky@gmail.com?subject=ThumbGate%20federal%20pilot%20scoping">Start a 30-minute scoping call →</a>
|
|
204
|
+
<a class="btn-secondary" href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/FEDERAL.md">Read the technical brief</a>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
</header>
|
|
208
|
+
|
|
209
|
+
<section id="capabilities">
|
|
210
|
+
<div class="container">
|
|
211
|
+
<h2>What an agency actually gets</h2>
|
|
212
|
+
<p class="section-lede">
|
|
213
|
+
ThumbGate is a behavioral enforcement layer between AI agents and the tools they invoke. It is not a model, not a model-output evaluator, and not a federal data RAG system. It is the gate that decides whether a tool call leaves the agent's environment.
|
|
214
|
+
</p>
|
|
215
|
+
<div class="grid-3">
|
|
216
|
+
<div class="card">
|
|
217
|
+
<h3>Auditable agent behavior</h3>
|
|
218
|
+
<p>Every gate decision is logged with the action attempted, the policy invoked, the evidence required, and the outcome. PII redaction is built in. Logs are exportable in JSON Lines for ingestion into the agency SIEM.</p>
|
|
219
|
+
</div>
|
|
220
|
+
<div class="card">
|
|
221
|
+
<h3>Agency-owned policy</h3>
|
|
222
|
+
<p>Generic LLM guardrails are vendor-controlled and opaque. ThumbGate policies live in version control inside the agency boundary, are written as code, and are enforced locally before a tool call leaves the dev environment.</p>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="card">
|
|
225
|
+
<h3>Repeated-failure prevention</h3>
|
|
226
|
+
<p>A thumbs-down from an agency engineer becomes a permanent prevention rule. The same risky action never reaches the model on the next attempt — relevant for cost control and for documenting "we did not let the agent do X" in incident review.</p>
|
|
227
|
+
</div>
|
|
228
|
+
<div class="card">
|
|
229
|
+
<h3>Vendor-neutral</h3>
|
|
230
|
+
<p>Works with Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode, and any MCP-compatible agent. No lock-in to a single model vendor. Bedrock GovCloud and Azure Government routing supported in gov mode.</p>
|
|
231
|
+
</div>
|
|
232
|
+
<div class="card">
|
|
233
|
+
<h3>Continuous AI use-case inventory</h3>
|
|
234
|
+
<p>Gate-decision telemetry produces a real-time inventory of which AI tools are actively used, by whom, on what — directly supporting OMB M-24-10 §5(a) and EO 14110 §10.1(b) inventory and risk-categorization requirements.</p>
|
|
235
|
+
</div>
|
|
236
|
+
<div class="card">
|
|
237
|
+
<h3>Air-gap supported</h3>
|
|
238
|
+
<p>ThumbGate-Core gov mode runs without telemetry, without auto-update, and without any outbound call to thumbgate.ai. Agency keeps the data; ThumbGate provides the enforcement engine and the policy framework.</p>
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
</section>
|
|
243
|
+
|
|
244
|
+
<section id="compliance">
|
|
245
|
+
<div class="container">
|
|
246
|
+
<h2>Compliance posture — <span class="accent">the honest current state</span></h2>
|
|
247
|
+
<p class="section-lede">
|
|
248
|
+
No FedRAMP marketing badge until authorization is real. Here is what is true today and what the path forward looks like.
|
|
249
|
+
</p>
|
|
250
|
+
<table class="compliance">
|
|
251
|
+
<thead>
|
|
252
|
+
<tr><th>Item</th><th>Status</th><th>Notes</th></tr>
|
|
253
|
+
</thead>
|
|
254
|
+
<tbody>
|
|
255
|
+
<tr><td>FedRAMP authorization</td><td class="status-pending">Not yet</td><td>Targeting Low baseline via agency sponsorship. Open to civilian agency sponsor conversations.</td></tr>
|
|
256
|
+
<tr><td>FISMA / NIST 800-53 Rev 5</td><td class="status-partial">Partial mapping</td><td>11 controls directly supported (see below). Public SaaS inherits Railway's controls; Core gov mode runs on-prem.</td></tr>
|
|
257
|
+
<tr><td>FIPS 140-2/3 validated crypto</td><td class="status-partial">In Core gov mode</td><td>Public ThumbGate uses Node.js native crypto; Core gov mode routes to a FIPS-validated provider on <code>THUMBGATE_DEPLOY=gov</code>.</td></tr>
|
|
258
|
+
<tr><td>Section 508 accessibility</td><td class="status-partial">Dashboard audit pending</td><td>CLI output and landing pages are screen-reader friendly; full WCAG 2.1 AA audit pending.</td></tr>
|
|
259
|
+
<tr><td>US persons + US data residency</td><td class="status-ok">Core gov deployments</td><td>Public SaaS runs in US Railway regions; Core gov mode is on-prem or government cloud only.</td></tr>
|
|
260
|
+
<tr><td>SBOM + supply chain provenance</td><td class="status-ok">Per release</td><td>SBOM and dependency report published with every npm release in <code>proof/</code>.</td></tr>
|
|
261
|
+
<tr><td>Third-party LLM calls</td><td class="status-partial">Public uses Claude directly</td><td>Core gov mode replaces direct Claude calls with Bedrock GovCloud / Azure Government routing.</td></tr>
|
|
262
|
+
</tbody>
|
|
263
|
+
</table>
|
|
264
|
+
|
|
265
|
+
<h2 style="margin-top:48px">NIST 800-53 Rev 5 — controls ThumbGate produces evidence for</h2>
|
|
266
|
+
<table class="compliance">
|
|
267
|
+
<thead>
|
|
268
|
+
<tr><th>Family</th><th>Control</th><th>How ThumbGate supports it</th></tr>
|
|
269
|
+
</thead>
|
|
270
|
+
<tbody>
|
|
271
|
+
<tr><td>AC</td><td><code>AC-3</code> Access Enforcement</td><td>PreToolUse hook blocks tool calls that violate policy regardless of operator intent.</td></tr>
|
|
272
|
+
<tr><td>AC</td><td><code>AC-6</code> Least Privilege</td><td>Per-gate scopes bind agent actions to declared task scope.</td></tr>
|
|
273
|
+
<tr><td>AU</td><td><code>AU-2 / AU-3 / AU-12</code> Audit Logging</td><td>Every gate decision logged with full payload, PII-redacted, exportable to agency SIEM.</td></tr>
|
|
274
|
+
<tr><td>CM</td><td><code>CM-3</code> Configuration Change Control</td><td>Branch governance gate requires <code>releaseVersion</code> declaration before release/publish actions.</td></tr>
|
|
275
|
+
<tr><td>CM</td><td><code>CM-7</code> Least Functionality</td><td>MCP allowlists constrain reachable agent tools per deployment profile.</td></tr>
|
|
276
|
+
<tr><td>IR</td><td><code>IR-4</code> Incident Handling</td><td>Hallucination detector + claim verification produces evidence trails for post-incident review.</td></tr>
|
|
277
|
+
<tr><td>RA</td><td><code>RA-5</code> Vulnerability Monitoring</td><td>Security scan surfaces known-bad patterns from the prevention rule library.</td></tr>
|
|
278
|
+
<tr><td>SI</td><td><code>SI-4 / SI-7</code> System Integrity</td><td>Continuous gate telemetry + integrity-checkable prevention rule corpus.</td></tr>
|
|
279
|
+
</tbody>
|
|
280
|
+
</table>
|
|
281
|
+
</div>
|
|
282
|
+
</section>
|
|
283
|
+
|
|
284
|
+
<section id="deployment">
|
|
285
|
+
<div class="container">
|
|
286
|
+
<h2>Two deployment profiles. <span class="accent">One codebase.</span></h2>
|
|
287
|
+
<p class="section-lede">
|
|
288
|
+
Federal capabilities are an additive Core deployment profile, not a fork. The open-source ThumbGate developers install from npm is byte-identical regardless of federal work — pinned by regression tests.
|
|
289
|
+
</p>
|
|
290
|
+
<div class="deployment-grid">
|
|
291
|
+
<div class="deployment-card">
|
|
292
|
+
<h3>Public ThumbGate <span style="color:var(--text-muted);font-size:13px">— open source</span></h3>
|
|
293
|
+
<ul>
|
|
294
|
+
<li><code>npm install thumbgate</code> → local CLI enforcement</li>
|
|
295
|
+
<li>Railway SaaS dashboard</li>
|
|
296
|
+
<li>Direct Claude API integration</li>
|
|
297
|
+
<li>Best for: SBIR Phase I prototyping, agency open-source experimentation, contractor evaluation</li>
|
|
298
|
+
<li>License: MIT</li>
|
|
299
|
+
</ul>
|
|
300
|
+
</div>
|
|
301
|
+
<div class="deployment-card gov">
|
|
302
|
+
<h3>ThumbGate-Core <span style="color:var(--cyan);font-size:13px">— gov mode</span></h3>
|
|
303
|
+
<ul>
|
|
304
|
+
<li>Activated by <code>THUMBGATE_DEPLOY=gov</code></li>
|
|
305
|
+
<li>On-prem, AWS GovCloud, or Azure Government install</li>
|
|
306
|
+
<li>Bedrock GovCloud / Azure Gov LLM routing — no public-internet model calls</li>
|
|
307
|
+
<li>FIPS-validated crypto provider</li>
|
|
308
|
+
<li>Audit log sink configurable to agency SIEM</li>
|
|
309
|
+
<li>Air-gapped install supported</li>
|
|
310
|
+
<li>Best for: production agency dev environments, ATO-bound deployments</li>
|
|
311
|
+
</ul>
|
|
312
|
+
</div>
|
|
313
|
+
</div>
|
|
314
|
+
|
|
315
|
+
<div class="callout" style="margin-top:24px">
|
|
316
|
+
<strong>Why the boundary matters.</strong> Federal expansion runs through ThumbGate-Core. The public open-source product is the protected invariant: <code>npm i thumbgate</code> on a fresh machine works with zero federal env vars set, public CI passes with Core absent, and no federal code path is reachable without explicit opt-in. Five architectural invariants are pinned by regression tests in <code>tests/public-core-boundary.test.js</code>.
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
</section>
|
|
320
|
+
|
|
321
|
+
<section id="engage">
|
|
322
|
+
<div class="container">
|
|
323
|
+
<h2>What a pilot actually looks like</h2>
|
|
324
|
+
<p class="section-lede">
|
|
325
|
+
A 30-minute scoping call. One agent workflow inside the agency. Two weeks of monitored gate decisions. A written report with captured behavior, blocked actions, and NIST control evidence. No procurement vehicle required for Phase 0 or Phase 1.
|
|
326
|
+
</p>
|
|
327
|
+
<div class="grid-3">
|
|
328
|
+
<div class="card">
|
|
329
|
+
<h3>Phase 0 — Now</h3>
|
|
330
|
+
<p>Public technical brief, NIST control mapping, this page. No agency commitment required. Read the docs, evaluate the open-source release.</p>
|
|
331
|
+
</div>
|
|
332
|
+
<div class="card">
|
|
333
|
+
<h3>Phase 1 — On first call</h3>
|
|
334
|
+
<p>One-page CIS tailored to the agency authorization boundary. SBOM walkthrough. Air-gapped install rehearsal in a clean VM.</p>
|
|
335
|
+
</div>
|
|
336
|
+
<div class="card">
|
|
337
|
+
<h3>Phase 2 — On signed pilot</h3>
|
|
338
|
+
<p>Core gov mode install. Bedrock GovCloud / Azure Gov routing. FIPS crypto. Agency SIEM audit-log sink. Two-week monitored evaluation on one workflow.</p>
|
|
339
|
+
</div>
|
|
340
|
+
<div class="card">
|
|
341
|
+
<h3>Phase 3 — On sponsor commitment</h3>
|
|
342
|
+
<p>FedRAMP Low baseline package preparation. 3PAO engagement. ATO documentation set.</p>
|
|
343
|
+
</div>
|
|
344
|
+
<div class="card">
|
|
345
|
+
<h3>Phase 4 — On named demand</h3>
|
|
346
|
+
<p>Federal RAG over agency policy corpora. Multimodal retrieval for screenshot / PDF / diagram evidence. Built when an agency names the use case — not on speculation.</p>
|
|
347
|
+
</div>
|
|
348
|
+
<div class="card">
|
|
349
|
+
<h3>Engagement vehicles</h3>
|
|
350
|
+
<p>SBIR / STTR Phase I and II. Agency innovation pilots. Prime / SI partnership for inclusion in a larger AI governance offering. GSA Schedule path open under agency sponsorship.</p>
|
|
351
|
+
</div>
|
|
352
|
+
</div>
|
|
353
|
+
|
|
354
|
+
<div style="margin-top:32px;display:flex;gap:12px;flex-wrap:wrap">
|
|
355
|
+
<a class="btn-primary" href="mailto:iganapolsky@gmail.com?subject=ThumbGate%20federal%20pilot%20scoping">Email for a scoping call →</a>
|
|
356
|
+
<a class="btn-secondary" href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/FEDERAL.md">Read the full technical brief</a>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</section>
|
|
360
|
+
|
|
361
|
+
<footer>
|
|
362
|
+
<div class="container">
|
|
363
|
+
ThumbGate is built and maintained by <a href="https://github.com/IgorGanapolsky">Igor Ganapolsky</a>.
|
|
364
|
+
Open source under MIT. Federal capabilities ship via the licensed ThumbGate-Core component.
|
|
365
|
+
<br>
|
|
366
|
+
<a href="/">← Back to thumbgate.ai</a>
|
|
367
|
+
·
|
|
368
|
+
<a href="https://github.com/IgorGanapolsky/ThumbGate">GitHub</a>
|
|
369
|
+
·
|
|
370
|
+
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/FEDERAL.md">Federal docs</a>
|
|
371
|
+
</div>
|
|
372
|
+
</footer>
|
|
373
|
+
|
|
374
|
+
</body>
|
|
375
|
+
</html>
|
package/public/guide.html
CHANGED
|
@@ -353,8 +353,8 @@ npx thumbgate init --agent gemini</code></pre>
|
|
|
353
353
|
<pre><code>npx thumbgate init</code></pre>
|
|
354
354
|
<p>One command. Works with Claude Code, Cursor, Codex, Gemini, Amp, and OpenCode. Claude Code can also call Codex for review, adversarial review, and second-pass handoffs through the repo-local bridge plugin.</p>
|
|
355
355
|
<a href="https://thumbgate.ai/checkout/pro?utm_source=guide&utm_medium=cta_button&utm_campaign=pro_pack" class="cta">Get Pro — $19/mo or $149/yr</a>
|
|
356
|
-
<a href="https://buy.stripe.com/00w14neyUcXA5pL5e33sI0e" class="cta cta-secondary">Pay $499 diagnostic</a>
|
|
357
|
-
<a href="https://buy.stripe.com/fZu9AT76saPsg4pbCr3sI0f" class="cta cta-secondary">Pay $1500 sprint</a>
|
|
356
|
+
<a rel="nofollow noopener noreferrer" target="_blank" href="https://buy.stripe.com/00w14neyUcXA5pL5e33sI0e" class="cta cta-secondary">Pay $499 diagnostic</a>
|
|
357
|
+
<a rel="nofollow noopener noreferrer" target="_blank" href="https://buy.stripe.com/fZu9AT76saPsg4pbCr3sI0f" class="cta cta-secondary">Pay $1500 sprint</a>
|
|
358
358
|
<a href="https://thumbgate.ai/#workflow-sprint-intake" class="cta cta-secondary">Send workflow first</a>
|
|
359
359
|
<p style="color:var(--muted); font-size:0.85rem;">Free: unlimited captures, 5 active prevention rules, hook blocking. Pro: dashboard, recall, lesson search, unlimited rules, DPO export. Team: intake first, then $49/seat/mo with a 3-seat minimum.</p>
|
|
360
360
|
|
package/public/index.html
CHANGED
|
@@ -19,7 +19,7 @@ __GOOGLE_SITE_VERIFICATION_META__
|
|
|
19
19
|
<meta property="og:image" content="https://thumbgate-production.up.railway.app/og.png">
|
|
20
20
|
<meta name="twitter:card" content="summary_large_image">
|
|
21
21
|
<meta name="twitter:image" content="https://thumbgate-production.up.railway.app/og.png">
|
|
22
|
-
<meta name="thumbgate-version" content="1.
|
|
22
|
+
<meta name="thumbgate-version" content="1.19.0">
|
|
23
23
|
<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">
|
|
24
24
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
25
25
|
|
|
@@ -40,6 +40,28 @@ __GA_BOOTSTRAP__
|
|
|
40
40
|
const workflowSprintPriceDollars = Number('__WORKFLOW_SPRINT_PRICE_DOLLARS__') || 1500;
|
|
41
41
|
</script>
|
|
42
42
|
|
|
43
|
+
<script type="application/ld+json">
|
|
44
|
+
{
|
|
45
|
+
"@context": "https://schema.org",
|
|
46
|
+
"@type": "Organization",
|
|
47
|
+
"name": "ThumbGate",
|
|
48
|
+
"alternateName": "thumbgate",
|
|
49
|
+
"url": "https://thumbgate-production.up.railway.app",
|
|
50
|
+
"logo": "https://thumbgate-production.up.railway.app/assets/brand/thumbgate-logo-1200x360.png",
|
|
51
|
+
"description": "ThumbGate ships pre-action gates for AI coding agents. Open-source CLI plus PreToolUse hooks that capture feedback, promote it to memory, generate prevention rules, and block repeated mistakes before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.",
|
|
52
|
+
"founder": {
|
|
53
|
+
"@type": "Person",
|
|
54
|
+
"name": "Igor Ganapolsky",
|
|
55
|
+
"url": "https://github.com/IgorGanapolsky"
|
|
56
|
+
},
|
|
57
|
+
"sameAs": [
|
|
58
|
+
"https://github.com/IgorGanapolsky/ThumbGate",
|
|
59
|
+
"https://www.npmjs.com/package/thumbgate",
|
|
60
|
+
"https://github.com/IgorGanapolsky"
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
</script>
|
|
64
|
+
|
|
43
65
|
<script type="application/ld+json">
|
|
44
66
|
{
|
|
45
67
|
"@context": "https://schema.org",
|
|
@@ -672,7 +694,8 @@ __GA_BOOTSTRAP__
|
|
|
672
694
|
<a href="/" class="nav-logo"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
673
695
|
<div class="nav-links">
|
|
674
696
|
<a href="#how-it-works">How It Works</a>
|
|
675
|
-
<a href="
|
|
697
|
+
<a href="/pricing">Pricing</a>
|
|
698
|
+
<a href="/case-studies">Case Studies</a>
|
|
676
699
|
<a href="/guides/autoresearch-agent-safety">Autoresearch</a>
|
|
677
700
|
<a href="#faq">FAQ</a>
|
|
678
701
|
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
|
|
@@ -710,7 +733,7 @@ __GA_BOOTSTRAP__
|
|
|
710
733
|
<span class="copy-hint">click to copy</span>
|
|
711
734
|
</div>
|
|
712
735
|
<a href="/go/install?utm_source=website&utm_medium=hero_cta&utm_campaign=install_free&cta_id=hero_install_cli&cta_placement=hero" onclick="event.preventDefault(); navigator.clipboard.writeText('npx thumbgate init'); this.textContent='Copied ✓ — paste in your repo'; setTimeout(()=>{this.textContent='Install Free CLI'},2000); try{posthog.capture('hero_install_click',{cta:'install_cli'})}catch(_){}" class="btn-gpt-page btn-install-hero" title="Click to copy: npx thumbgate init">Install Free CLI</a>
|
|
713
|
-
<a href="
|
|
736
|
+
<a href="#workflow-sprint-intake" onclick="try{posthog.capture('hero_sprint_click',{cta:'sprint_intake'})}catch(_){};sendFirstPartyTelemetry('hero_sprint_intake_started',{ctaId:'hero_workflow_sprint',ctaPlacement:'hero',offer:'workflow_sprint'});" class="btn-pro-page hero-pro">Talk to me — Workflow Hardening Sprint →</a>
|
|
714
737
|
</div>
|
|
715
738
|
|
|
716
739
|
<div class="hero-trust-bar">
|
|
@@ -720,6 +743,10 @@ __GA_BOOTSTRAP__
|
|
|
720
743
|
<span>Works with MCP-compatible agents</span>
|
|
721
744
|
<span>Verification evidence in GitHub</span>
|
|
722
745
|
</div>
|
|
746
|
+
<figure style="max-width:760px;margin:32px auto 0;padding:20px 24px;border-left:3px solid var(--cyan);background:rgba(34,211,238,0.04);border-radius:0 8px 8px 0;">
|
|
747
|
+
<blockquote style="margin:0;font-size:18px;line-height:1.5;color:var(--text);font-style:italic;">“A better dashboard doesn’t make the agents more reliable. The hard part isn’t visibility. It’s trust.”</blockquote>
|
|
748
|
+
<figcaption style="margin-top:12px;font-size:13px;color:var(--text-muted);">— Rob May, CEO & co-founder, Neurometric AI, in <a href="https://thenewstack.io/claude-code-agent-view/" target="_blank" rel="noopener" style="color:var(--cyan);">The New Stack</a> on Anthropic’s Claude Code Agent View (May 2026). ThumbGate is the open-source layer that makes the trust part real: PreToolUse gates, thumbs-down to rule, audit trail on every interception.</figcaption>
|
|
749
|
+
</figure>
|
|
723
750
|
<div class="first-check-card" id="first-check">
|
|
724
751
|
<div class="section-label" style="text-align:left;margin-bottom:8px;">First-Dollar Activation Path</div>
|
|
725
752
|
<h2>Block your first repeated AI mistake in 5 minutes.</h2>
|
|
@@ -995,6 +1022,7 @@ __GA_BOOTSTRAP__
|
|
|
995
1022
|
</div>
|
|
996
1023
|
<div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px;">
|
|
997
1024
|
<a class="btn-team" href="/compare/ai-experience-orchestration">Compare orchestration vs enforcement →</a>
|
|
1025
|
+
<a class="btn-free" href="/guides/ai-deployment-readiness" style="display:inline-flex;align-items:center;">AI deployment readiness →</a>
|
|
998
1026
|
<a class="btn-free" href="/use-cases/platform-teams" style="display:inline-flex;align-items:center;">Platform team rollout →</a>
|
|
999
1027
|
<a class="btn-free" href="/use-cases/regulated-workflows" style="display:inline-flex;align-items:center;">Regulated workflow pattern →</a>
|
|
1000
1028
|
</div>
|
|
@@ -1021,6 +1049,7 @@ __GA_BOOTSTRAP__
|
|
|
1021
1049
|
<a href="/guides/claude-code-skills-guardrails">Claude Code skills</a>
|
|
1022
1050
|
<a href="/guides/long-running-agent-context-management">Long-running agent context</a>
|
|
1023
1051
|
<a href="/guides/reasoning-compression-guardrails">Reasoning compression</a>
|
|
1052
|
+
<a href="/guides/ai-deployment-readiness">AI deployment readiness</a>
|
|
1024
1053
|
<a href="/guides/browser-automation-safety">Browser automation safety</a>
|
|
1025
1054
|
<a href="/guides/native-messaging-host-security">Native messaging host security</a>
|
|
1026
1055
|
<a href="/guides/ai-search-topical-presence">AI search topical presence</a>
|
|
@@ -1231,26 +1260,26 @@ __GA_BOOTSTRAP__
|
|
|
1231
1260
|
<a href="https://www.npmjs.com/package/thumbgate" target="_blank" rel="noopener" class="btn-free">Install Free</a>
|
|
1232
1261
|
</div>
|
|
1233
1262
|
<div class="price-card pro" data-price-dollars="19">
|
|
1234
|
-
<div class="tier">
|
|
1263
|
+
<div class="tier">Pro</div>
|
|
1235
1264
|
<div class="price">$19<span style="font-size:16px;color:var(--text-dim)">/mo</span></div>
|
|
1236
|
-
<div class="price-sub">
|
|
1265
|
+
<div class="price-sub">Stop paying tokens to re-correct the same agent mistake across sessions.</div>
|
|
1237
1266
|
<ul>
|
|
1238
|
-
<li>
|
|
1239
|
-
<li>
|
|
1240
|
-
<li><a href="/dashboard#insights" style="color:var(--cyan);text-decoration:underline;">Visual check debugger</a> for every blocked action and the check that fired</li>
|
|
1241
|
-
<li>Auto-connect so supported agents appear automatically after setup</li>
|
|
1242
|
-
<li><a href="/dashboard#export" style="color:var(--cyan);text-decoration:underline;">DPO training data export</a> with ready-to-use preference pairs for fine-tuning</li>
|
|
1243
|
-
<li>Personal local dashboard for the individual operator</li>
|
|
1244
|
-
<li>Model Hardening Advisor plus HuggingFace dataset export</li>
|
|
1245
|
-
<li>Review-ready workflow support and proof-ready lesson bundles</li>
|
|
1246
|
-
<li>Team lesson export/import for handoff or migration</li>
|
|
1267
|
+
<li><strong>Block every repeat mistake</strong> — unlimited feedback captures and prevention rules (Free caps at 5 active rules)</li>
|
|
1268
|
+
<li><strong>Never re-explain a correction</strong> — lesson recall and search across sessions on every agent surface</li>
|
|
1269
|
+
<li><strong>See exactly which rule fired</strong> — <a href="/dashboard#insights" style="color:var(--cyan);text-decoration:underline;">Visual check debugger</a> for every blocked action and the check that fired</li>
|
|
1270
|
+
<li><strong>One install, every agent</strong> — Auto-connect so supported agents appear automatically after setup (Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode)</li>
|
|
1271
|
+
<li><strong>Fine-tune your local model</strong> on what your team actually wants — <a href="/dashboard#export" style="color:var(--cyan);text-decoration:underline;">DPO training data export</a> with ready-to-use preference pairs for fine-tuning</li>
|
|
1272
|
+
<li><strong>Audit-ready enforcement proof</strong> — Personal local dashboard for the individual operator with auditable block history</li>
|
|
1273
|
+
<li><strong>Ship hardened agents to production</strong> — Model Hardening Advisor plus HuggingFace dataset export</li>
|
|
1274
|
+
<li><strong>Hand a PR with proof</strong> — Review-ready workflow support and proof-ready lesson bundles a reviewer can verify in 30 seconds</li>
|
|
1275
|
+
<li><strong>Hand off without re-onboarding</strong> — Team lesson export/import for handoff or migration</li>
|
|
1247
1276
|
</ul>
|
|
1248
1277
|
<div style="margin:12px 0 16px;padding:12px;border:1px solid rgba(34,211,238,0.25);border-radius:8px;background:rgba(34,211,238,0.06);">
|
|
1249
1278
|
<div style="font-size:12px;color:var(--text-muted);margin-bottom:4px;">What your Pro dashboard looks like</div>
|
|
1250
1279
|
<div style="font-family:var(--mono);font-size:12px;color:var(--cyan);line-height:1.6;">checks: 36 active<br>feedback: unlimited<br>exports: DPO + lessons</div>
|
|
1251
1280
|
</div>
|
|
1252
1281
|
<div style="font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--cyan);font-weight:800;margin-bottom:8px;">PAY-NOW PRO</div>
|
|
1253
|
-
<a href="/checkout/pro?
|
|
1282
|
+
<a href="/checkout/pro?utm_source=pricing&utm_medium=cta&utm_campaign=v2_landing&utm_content=pricing_pro&plan_id=pro" id="pro-checkout-link" class="btn-pro" onclick="handleProCheckout();return false;" style="display:block;width:100%;text-align:center;padding:12px;font-size:15px;">Upgrade to Pro — $19/mo</a>
|
|
1254
1283
|
<p style="font-size:11px;color:var(--text-muted);margin-top:8px;text-align:center;">Billed today · cancel anytime.</p>
|
|
1255
1284
|
<input type="email" id="pro-email" data-buyer-email placeholder="you@company.com" style="margin-top:10px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-raised);color:var(--text);font-size:14px;">
|
|
1256
1285
|
</div>
|
|
@@ -1267,8 +1296,9 @@ __GA_BOOTSTRAP__
|
|
|
1267
1296
|
<li>Workflow hardening sprint intake for approval boundaries and rollback safety</li>
|
|
1268
1297
|
<li>Email support during pilot rollout</li>
|
|
1269
1298
|
</ul>
|
|
1270
|
-
<a href="
|
|
1271
|
-
<
|
|
1299
|
+
<a href="/checkout/pro?plan_id=team&seat_count=3&confirm=1&utm_source=website&utm_medium=pricing&utm_campaign=team_self_serve&cta_id=pricing_team_self_serve&cta_placement=pricing&landing_path=%2F" onclick="try{posthog.capture('team_self_serve_click',{cta:'team_self_serve',seats:3,price:147})}catch(_){};sendFirstPartyTelemetry('team_self_serve_checkout_started',{ctaId:'pricing_team_self_serve',ctaPlacement:'pricing',planId:'team',seatCount:3,price:147});sendGa4Event('begin_checkout',{currency:'USD',value:147,items:[{item_id:'team_monthly',item_name:'ThumbGate Team (3 seats)',quantity:3}]});" class="btn-team" style="display:block;text-align:center;">Start 3-seat Team — $147/mo</a>
|
|
1300
|
+
<a href="#workflow-sprint-intake" style="display:block;text-align:center;margin-top:8px;font-size:13px;color:var(--text-dim);text-decoration:none;">Or qualify first via Workflow Hardening Sprint intake →</a>
|
|
1301
|
+
<p style="font-size:11px;color:var(--text-muted);margin-top:8px;text-align:center;">Team is $49/seat/mo with a 3-seat minimum. Self-serve checkout starts you at $147/mo for 3 seats; add more seats from the dashboard. Prefer to qualify the workflow before paying? Start with the intake.</p>
|
|
1272
1302
|
</div>
|
|
1273
1303
|
</div>
|
|
1274
1304
|
<p style="text-align:center;color:var(--text-muted);font-size:13px;margin:40px 0;">Need a custom diagnostic, sprint, or setup? <a href="#workflow-sprint-intake" style="color:var(--cyan);text-decoration:none;">Send workflow first →</a></p>
|
|
@@ -1326,7 +1356,7 @@ __GA_BOOTSTRAP__
|
|
|
1326
1356
|
</div>
|
|
1327
1357
|
<div>
|
|
1328
1358
|
<div class="team-paid-price">$97</div>
|
|
1329
|
-
<a class="team-paid-link" href="https://buy.stripe.com/bJe14naiE9Lo7xT49Z3sI12" onclick="sendFirstPartyTelemetry('openclaw_governance_kit_checkout_started',{ctaId:'team_openclaw_governance_kit_checkout',ctaPlacement:'team_paid_path',planId:'digital_kit',offer:'openclaw_agent_governance_kit',price:97});sendGa4Event('begin_checkout',{currency:'USD',value:97,items:[{item_id:'openclaw_agent_governance_kit',item_name:'OpenClaw Agent Governance Kit'}]});">Buy kit</a>
|
|
1359
|
+
<a rel="nofollow noopener noreferrer" target="_blank" class="team-paid-link" href="https://buy.stripe.com/bJe14naiE9Lo7xT49Z3sI12" onclick="sendFirstPartyTelemetry('openclaw_governance_kit_checkout_started',{ctaId:'team_openclaw_governance_kit_checkout',ctaPlacement:'team_paid_path',planId:'digital_kit',offer:'openclaw_agent_governance_kit',price:97});sendGa4Event('begin_checkout',{currency:'USD',value:97,items:[{item_id:'openclaw_agent_governance_kit',item_name:'OpenClaw Agent Governance Kit'}]});">Buy kit</a>
|
|
1330
1360
|
</div>
|
|
1331
1361
|
</div>
|
|
1332
1362
|
</div>
|
|
@@ -1464,7 +1494,7 @@ __GA_BOOTSTRAP__
|
|
|
1464
1494
|
<a href="https://www.linkedin.com/in/igorganapolsky" target="_blank" rel="noopener">LinkedIn</a>
|
|
1465
1495
|
<a href="/blog">Blog</a>
|
|
1466
1496
|
</div>
|
|
1467
|
-
<span class="footer-copy">© 2026 ThumbGate · MIT License · npm v1.
|
|
1497
|
+
<span class="footer-copy">© 2026 ThumbGate · MIT License · npm v1.19.0</span>
|
|
1468
1498
|
</div>
|
|
1469
1499
|
</footer>
|
|
1470
1500
|
|
package/public/learn.html
CHANGED
|
@@ -73,6 +73,12 @@
|
|
|
73
73
|
{
|
|
74
74
|
"@type": "ListItem",
|
|
75
75
|
"position": 6,
|
|
76
|
+
"url": "https://thumbgate.ai/learn/from-prototype-to-production",
|
|
77
|
+
"name": "From git init to v1.17.0 in 70 days: an honest ThumbGate build log"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"@type": "ListItem",
|
|
81
|
+
"position": 7,
|
|
76
82
|
"url": "https://thumbgate.ai/guides/stop-repeated-ai-agent-mistakes",
|
|
77
83
|
"name": "How to Stop AI Coding Agents From Repeating Mistakes"
|
|
78
84
|
},
|
|
@@ -123,6 +129,12 @@
|
|
|
123
129
|
"position": 14,
|
|
124
130
|
"url": "https://thumbgate.ai/guides/relational-knowledge-ai-recommendations",
|
|
125
131
|
"name": "Relational Knowledge in AI Recommendations"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"@type": "ListItem",
|
|
135
|
+
"position": 15,
|
|
136
|
+
"url": "https://thumbgate.ai/guides/ai-deployment-readiness",
|
|
137
|
+
"name": "AI Deployment Readiness Before Production Rollout"
|
|
126
138
|
}
|
|
127
139
|
]
|
|
128
140
|
}
|
|
@@ -269,11 +281,27 @@
|
|
|
269
281
|
<span class="article-tag">SQLite+FTS5</span>
|
|
270
282
|
<span class="article-tag">Session Persistence</span>
|
|
271
283
|
</a>
|
|
284
|
+
|
|
285
|
+
<a href="/learn/from-prototype-to-production" class="article-card">
|
|
286
|
+
<h3>From git init to v1.17.0 in 70 days: an honest ThumbGate build log</h3>
|
|
287
|
+
<p>70 days, 112 commits, 17 minor releases, 6k npm downloads, $0 cold-traffic revenue. The unedited story of taking ThumbGate from a one-line repo init to live production — including the part that's still broken.</p>
|
|
288
|
+
<span class="article-tag">Build Log</span>
|
|
289
|
+
<span class="article-tag">Indie SaaS</span>
|
|
290
|
+
<span class="article-tag">Shipping in Public</span>
|
|
291
|
+
</a>
|
|
272
292
|
</div>
|
|
273
293
|
|
|
274
294
|
<h2>Popular buyer questions</h2>
|
|
275
295
|
<p class="section-intro">These are the high-intent guides for buyers who already know the pain and want to understand where ThumbGate fits fast.</p>
|
|
276
296
|
<div class="article-grid">
|
|
297
|
+
<a href="/guides/ai-deployment-readiness" class="article-card">
|
|
298
|
+
<h3>AI Deployment Readiness Before Production Rollout</h3>
|
|
299
|
+
<p>Use one priority workflow to map tools, data, controls, pre-action gates, and proof before an AI deployment team ships into production.</p>
|
|
300
|
+
<span class="article-tag">Deployment</span>
|
|
301
|
+
<span class="article-tag">Readiness</span>
|
|
302
|
+
<span class="article-tag">Sprint</span>
|
|
303
|
+
</a>
|
|
304
|
+
|
|
277
305
|
<a href="/guides/ai-search-topical-presence" class="article-card">
|
|
278
306
|
<h3>AI Search Topical Presence</h3>
|
|
279
307
|
<p>Why AI assistants recommend the tools they repeatedly see tied to a buyer problem, and how ThumbGate builds that association with proof-backed pages.</p>
|
package/public/numbers.html
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"alternateName": "thumbgate",
|
|
26
26
|
"applicationCategory": "DeveloperApplication",
|
|
27
27
|
"operatingSystem": "Cross-platform, Node.js >=18.18.0",
|
|
28
|
-
"softwareVersion": "1.
|
|
28
|
+
"softwareVersion": "1.19.0",
|
|
29
29
|
"url": "https://thumbgate-production.up.railway.app/numbers",
|
|
30
30
|
"dateModified": "2026-05-07",
|
|
31
31
|
"creator": {
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
<main class="container">
|
|
203
203
|
<h1>The Numbers</h1>
|
|
204
204
|
<p class="subtitle">Generated first-party operational snapshot from the ThumbGate runtime. This is not customer traction, install volume, revenue, or proof that a configured gate has fired.</p>
|
|
205
|
-
<div class="freshness">Updated: 2026-05-07 · Version 1.
|
|
205
|
+
<div class="freshness">Updated: 2026-05-07 · Version 1.19.0</div>
|
|
206
206
|
<div class="truth-note"><strong>Read this first:</strong> configured checks are inventory. Recorded blocks and warnings are usage evidence. This snapshot currently reports 0 recorded hard-block event(s) and 0 recorded warning event(s).</div>
|
|
207
207
|
|
|
208
208
|
<h2>Gate enforcement</h2>
|