thumbgate 1.27.19 → 1.28.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.
Files changed (116) hide show
  1. package/.claude/commands/dashboard.md +15 -0
  2. package/.claude/commands/thumbgate-blocked.md +27 -0
  3. package/.claude/commands/thumbgate-dashboard.md +15 -0
  4. package/.claude/commands/thumbgate-doctor.md +30 -0
  5. package/.claude/commands/thumbgate-guard.md +36 -0
  6. package/.claude/commands/thumbgate-protect.md +30 -0
  7. package/.claude/commands/thumbgate-rules.md +30 -0
  8. package/.claude-plugin/plugin.json +1 -1
  9. package/.well-known/mcp/server-card.json +1 -1
  10. package/README.md +63 -45
  11. package/adapters/claude/.mcp.json +2 -2
  12. package/adapters/gcp/dfcx-webhook-gate.js +295 -0
  13. package/adapters/letta/README.md +41 -0
  14. package/adapters/letta/thumbgate-letta-adapter.js +133 -0
  15. package/adapters/mcp/server-stdio.js +1 -1
  16. package/adapters/opencode/opencode.json +1 -1
  17. package/adapters/policy-engine/ethicore-guardian-client.js +68 -0
  18. package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +260 -0
  19. package/bench/observability-eval-suite.json +26 -0
  20. package/bin/cli.js +52 -9
  21. package/bin/dashboard-cli.js +7 -0
  22. package/bin/postinstall.js +14 -23
  23. package/commands/dashboard.md +15 -0
  24. package/commands/thumbgate-dashboard.md +15 -0
  25. package/config/entitlement-public-keys.json +6 -0
  26. package/config/gates/default.json +1 -1
  27. package/config/github-about.json +2 -2
  28. package/config/merge-quality-checks.json +3 -0
  29. package/package.json +233 -100
  30. package/public/about.html +159 -0
  31. package/public/agent-manager.html +179 -0
  32. package/public/agents-cost-savings.html +153 -0
  33. package/public/ai-malpractice-prevention.html +818 -0
  34. package/public/assets/brand/github-social-preview.png +0 -0
  35. package/public/assets/brand/thumbgate-icon-512.png +0 -0
  36. package/public/assets/brand/thumbgate-icon-pro-512.png +0 -0
  37. package/public/assets/brand/thumbgate-icon-team-512.png +0 -0
  38. package/public/assets/brand/thumbgate-logo-1200x360.png +0 -0
  39. package/public/assets/brand/thumbgate-logo-transparent.svg +28 -0
  40. package/public/assets/brand/thumbgate-mark-inline-v3.svg +18 -0
  41. package/public/assets/brand/thumbgate-mark-pro.svg +23 -0
  42. package/public/assets/brand/thumbgate-mark-team.svg +26 -0
  43. package/public/assets/brand/thumbgate-mark.svg +21 -0
  44. package/public/assets/brand/thumbgate-wordmark.svg +20 -0
  45. package/public/assets/claude-thumbgate-statusbar.svg +8 -0
  46. package/public/assets/codex-thumbgate-statusbar-test.svg +9 -0
  47. package/public/assets/legal-intake-control-flow.svg +66 -0
  48. package/public/blog.html +12 -9
  49. package/public/brand/thumbgate-mark.svg +19 -0
  50. package/public/brand/thumbgate-og.svg +16 -0
  51. package/public/chatgpt-app.html +330 -0
  52. package/public/codex-enterprise.html +123 -0
  53. package/public/codex-plugin.html +5 -5
  54. package/public/compare.html +10 -10
  55. package/public/dashboard.html +1 -1
  56. package/public/diagnostic.html +345 -0
  57. package/public/federal.html +2 -2
  58. package/public/guide.html +14 -14
  59. package/public/index.html +81 -70
  60. package/public/install.html +193 -0
  61. package/public/js/buyer-intent.js +672 -0
  62. package/public/learn.html +4 -17
  63. package/public/numbers.html +2 -2
  64. package/public/pricing.html +392 -0
  65. package/public/pro.html +2 -2
  66. package/scripts/action-receipts.js +324 -0
  67. package/scripts/activation-quickstart.js +187 -0
  68. package/scripts/agent-operations-planner.js +621 -0
  69. package/scripts/agent-reward-model.js +13 -0
  70. package/scripts/ai-component-inventory.js +367 -0
  71. package/scripts/async-eval-observability.js +236 -0
  72. package/scripts/audit.js +65 -0
  73. package/scripts/aws-blocks-guardrails.js +272 -0
  74. package/scripts/bayes-optimal-gate.js +6 -1
  75. package/scripts/classifier-routing.js +130 -0
  76. package/scripts/cli-feedback.js +17 -1
  77. package/scripts/commercial-offer.js +3 -3
  78. package/scripts/dashboard-chat.js +332 -0
  79. package/scripts/entitlement.js +250 -0
  80. package/scripts/export-databricks-bundle.js +5 -0
  81. package/scripts/export-dpo-pairs.js +6 -0
  82. package/scripts/export-hf-dataset.js +5 -0
  83. package/scripts/feedback-aggregate.js +281 -0
  84. package/scripts/feedback-sanitizer.js +105 -0
  85. package/scripts/gates-engine.js +15 -3
  86. package/scripts/hook-stop-anti-claim.js +301 -0
  87. package/scripts/imperative-detector.js +85 -0
  88. package/scripts/install-shim.js +87 -0
  89. package/scripts/intervention-policy.js +13 -0
  90. package/scripts/mcp-oauth.js +293 -0
  91. package/scripts/noop-detect.js +285 -0
  92. package/scripts/parallel-workflow-orchestrator.js +293 -0
  93. package/scripts/plan-gate.js +243 -0
  94. package/scripts/plausible-domain-config.js +99 -0
  95. package/scripts/pr-manager.js +9 -22
  96. package/scripts/pro-local-dashboard.js +198 -0
  97. package/scripts/qa-scenario-planner.js +136 -0
  98. package/scripts/repeat-metric.js +137 -0
  99. package/scripts/risk-scorer.js +6 -0
  100. package/scripts/secret-fixture-tokens.js +61 -0
  101. package/scripts/secret-redaction.js +166 -0
  102. package/scripts/self-harness-optimizer.js +141 -0
  103. package/scripts/self-healing-check.js +193 -0
  104. package/scripts/self-protection.js +90 -0
  105. package/scripts/seo-gsd.js +2 -2
  106. package/scripts/silent-failure-cluster.js +531 -0
  107. package/scripts/statusline-cache-read.js +57 -0
  108. package/scripts/sync-telemetry-from-prod.js +374 -0
  109. package/scripts/thompson-sampling.js +11 -2
  110. package/scripts/tool-contract-validator.js +76 -0
  111. package/scripts/trajectory-scorer.js +63 -0
  112. package/scripts/verify-marketing-pages-deployed.js +212 -0
  113. package/scripts/visitor-journey.js +172 -0
  114. package/src/api/server.js +81 -10
  115. package/.claude-plugin/marketplace.json +0 -85
  116. package/adapters/chatgpt/openapi.yaml +0 -1707
package/public/index.html CHANGED
@@ -12,7 +12,7 @@ __GOOGLE_SITE_VERIFICATION_META__
12
12
  <link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg">
13
13
  <meta property="og:image" content="/og.png">
14
14
  <title>ThumbGate — Pre-action checks for AI coding agents</title>
15
- <meta name="description" content="Stripe Connect integration engineering for ticketing and marketplace platforms — Pretix plugin shipped to Hilltown Media. ThumbGate is also the pre-action governance runtime for AI coding agents (Claude Code, Cursor, Codex, Gemini CLI): 👍 thumbs up and 👎 thumbs down feedback become history-aware lessons, shared lessons and org visibility, and PreToolUse checks that block repeated mistakes before code, money, or customer systems change. Perfect for vibe coding and human-in-the-loop workflows.">
15
+ <meta name="description" content="ThumbGate is the pre-action governance runtime for AI coding agents (Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode): 👍 thumbs up and 👎 thumbs down feedback become history-aware lessons stored locally; Enterprise adds shared lessons and org visibility. PreToolUse checks flag and log risky tool calls hard-blocking catastrophic classes by default and warning on the rest, with strict mode to hard-block every rule.">
16
16
  <meta property="og:title" content="ThumbGate — Stop paying for the same AI mistake twice">
17
17
  <meta property="og:description" content="Frontier LLMs are expensive, opaque, and unreliable in production. ThumbGate gates risky agent actions before they run: workflow shape, inspection evidence, token budget, and repeated-failure memory in one pre-action check.">
18
18
  <meta property="og:type" content="website">
@@ -20,7 +20,7 @@ __GOOGLE_SITE_VERIFICATION_META__
20
20
  <meta property="og:image" content="https://thumbgate.ai/og.png">
21
21
  <meta name="twitter:card" content="summary_large_image">
22
22
  <meta name="twitter:image" content="https://thumbgate.ai/og.png">
23
- <meta name="thumbgate-version" content="1.27.15">
23
+ <meta name="thumbgate-version" content="1.28.0">
24
24
  <meta name="keywords" content="ThumbGate, thumbgate, AI agent orchestration, AI experience orchestration, agentic development cycle, AC/DC framework, Guide Generate Verify Solve, 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">
25
25
  <link rel="canonical" href="__APP_ORIGIN__/">
26
26
  <link rel="alternate" type="text/markdown" title="ThumbGate LLM context" href="__APP_ORIGIN__/llm-context.md">
@@ -45,16 +45,13 @@ __GA_BOOTSTRAP__
45
45
  "@type": "Person",
46
46
  "name": "Igor Ganapolsky",
47
47
  "url": "https://github.com/IgorGanapolsky",
48
- "jobTitle": "Senior Mobile & AI Engineer; Stripe Connect specialist",
48
+ "jobTitle": "Senior Mobile & AI Engineer",
49
49
  "worksFor": {
50
50
  "@type": "Organization",
51
51
  "name": "ThumbGate",
52
52
  "url": "https://thumbgate.ai"
53
53
  },
54
54
  "knowsAbout": [
55
- "Stripe Connect",
56
- "Pretix plugin engineering",
57
- "Marketplace payments architecture",
58
55
  "AI agent governance",
59
56
  "Pre-action checks for AI coding agents"
60
57
  ],
@@ -62,7 +59,7 @@ __GA_BOOTSTRAP__
62
59
  "https://github.com/IgorGanapolsky",
63
60
  "https://www.npmjs.com/package/thumbgate"
64
61
  ],
65
- "mainEntityOfPage": "https://thumbgate.ai/learn/pretix-stripe-connect-marketplaces"
62
+ "mainEntityOfPage": "https://thumbgate.ai/"
66
63
  }
67
64
  </script>
68
65
 
@@ -74,7 +71,7 @@ __GA_BOOTSTRAP__
74
71
  "alternateName": "thumbgate",
75
72
  "url": "https://thumbgate.ai",
76
73
  "logo": "https://thumbgate.ai/assets/brand/thumbgate-logo-1200x360.png",
77
- "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.",
74
+ "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 flag repeated mistakes before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode — hard-blocking the catastrophic classes by default and every rule under strict mode.",
78
75
  "founder": {
79
76
  "@type": "Person",
80
77
  "name": "Igor Ganapolsky",
@@ -94,7 +91,7 @@ __GA_BOOTSTRAP__
94
91
  "@type": "SoftwareApplication",
95
92
  "name": "ThumbGate",
96
93
  "alternateName": "thumbgate",
97
- "description": "ThumbGate stops you from paying for the same AI mistake twice. It is machine-speed pre-action defense for coding agents: thumbs-up/down feedback becomes history-aware lessons, shared lessons and org visibility, actionable remediations, agent surface inventory, and Pre-Action Checks that inspect workflow shape, environment evidence, budget, and repeated-failure memory before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and any MCP-compatible agent.",
94
+ "description": "ThumbGate stops you from paying for the same AI mistake twice. It is machine-speed pre-action defense for coding agents: thumbs-up/down feedback becomes history-aware lessons, local prevention rules, actionable remediations, agent surface inventory, and Pre-Action Checks that inspect workflow shape, environment evidence, budget, and repeated-failure memory before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and any MCP-compatible agent.",
98
95
  "applicationCategory": "DeveloperApplication",
99
96
  "operatingSystem": "Cross-platform, Node.js >=18.18.0",
100
97
  "license": "https://opensource.org/licenses/MIT",
@@ -109,7 +106,7 @@ __GA_BOOTSTRAP__
109
106
  },
110
107
  "featureList": [
111
108
  "Prevent expensive AI mistakes — catch bad commands, destructive database actions, unsafe publishes, and risky API calls before execution",
112
- "Make AI stop repeating mistakes — thumbs-down feedback becomes history-aware lessons and Pre-Action Checks",
109
+ "Make AI catch repeating mistakes — thumbs-down feedback becomes history-aware lessons and Pre-Action Checks",
113
110
  "Turn AI into a reliable operator — checkpoint risky actions, enforce safe patterns, and keep proof of what changed",
114
111
  "Agent surface inventory — see which tools, MCP surfaces, and policy sources are actually active before rollout",
115
112
  "Actionable remediations — rank the next highest-ROI fixes from real feedback and risk pressure",
@@ -270,8 +267,8 @@ __GA_BOOTSTRAP__
270
267
  {
271
268
  "@type": "HowToStep",
272
269
  "position": 4,
273
- "name": "Pre-action checks block the mistake",
274
- "text": "When the agent tries to repeat a known-bad action, the PreToolUse hook fires and physically blocks the tool call before execution. The agent cannot repeat the mistake."
270
+ "name": "Pre-action checks flag the mistake",
271
+ "text": "When the agent tries to repeat a known-bad action, the PreToolUse hook fires, flags the tool call, and logs the decision before execution. Catastrophic classes (secret exfiltration, destructive deletes like rm -rf, supply-chain) hard-block by default; set THUMBGATE_STRICT_ENFORCEMENT=1 to hard-block every rule."
275
272
  }
276
273
  ],
277
274
  "totalTime": "PT5M",
@@ -297,7 +294,7 @@ __GA_BOOTSTRAP__
297
294
  "name": "How is ThumbGate different from model-training feedback loops?",
298
295
  "acceptedAnswer": {
299
296
  "@type": "Answer",
300
- "text": "Model-training feedback loops update weights. ThumbGate does not touch the model. It injects past feedback into context so your agent is shaped by your corrections in real time. Think of it as a behavioral immune system, not a training pipeline. The check blocks are hard enforcement, not soft suggestions."
297
+ "text": "Model-training feedback loops update weights. ThumbGate does not touch the model. It injects past feedback into context so your agent is shaped by your corrections in real time. Think of it as a behavioral immune system, not a training pipeline. Checks fire on every tool call and log the decision; catastrophic classes hard-block by default, and strict mode (THUMBGATE_STRICT_ENFORCEMENT=1) hard-blocks every rule."
301
298
  }
302
299
  },
303
300
  {
@@ -329,7 +326,7 @@ __GA_BOOTSTRAP__
329
326
  "name": "When should I use Pro versus the Workflow Hardening Sprint?",
330
327
  "acceptedAnswer": {
331
328
  "@type": "Answer",
332
- "text": "Start with the setup guide if you only need the local path. Choose Pro after one real blocked repeat when you want your own dashboard, DPO export, and proof-ready exports. Choose the Workflow Hardening Sprint when one workflow owner needs approval boundaries, rollback safety, and rollout proof before wider rollout."
329
+ "text": "Start with the setup guide if you only need the local path. Choose Pro after one real caught repeat when you want your own dashboard, DPO export, and proof-ready exports. Choose the Workflow Hardening Sprint when one workflow owner needs approval boundaries, rollback safety, and rollout proof before wider rollout."
333
330
  }
334
331
  },
335
332
  {
@@ -345,7 +342,7 @@ __GA_BOOTSTRAP__
345
342
  "name": "How are pre-action checks different from prompt rules?",
346
343
  "acceptedAnswer": {
347
344
  "@type": "Answer",
348
- "text": "Prompt rules are suggestions agents can ignore. Pre-Action Checks are enforcement — they block the action before execution via PreToolUse hooks. Checks are auto-generated from feedback and use Thompson Sampling to adapt."
345
+ "text": "Prompt rules are suggestions agents can ignore. Pre-Action Checks fire before execution via PreToolUse hooks — they flag and log every decision, and can block the action: catastrophic classes hard-block by default, and strict mode (THUMBGATE_STRICT_ENFORCEMENT=1) hard-blocks every rule. Checks are auto-generated from feedback and use Thompson Sampling to adapt."
349
346
  }
350
347
  },
351
348
  {
@@ -361,7 +358,7 @@ __GA_BOOTSTRAP__
361
358
  "name": "How does ThumbGate prevent AI slop and protect brand authenticity?",
362
359
  "acceptedAnswer": {
363
360
  "@type": "Answer",
364
- "text": "AI slop happens when agents act without human judgment as a hard check — generating repetitive, generic outputs that erode trust and dilute your brand. ThumbGate inserts human thumbs-up/down between AI intent and execution. Every thumbs-down becomes a prevention rule that blocks the bad pattern permanently. Every thumbs-up reinforces what 'good' looks like for your specific context. Your agent's outputs reflect your actual standards, not generic AI patterns. This is authenticity enforcement at the tool-call level."
361
+ "text": "AI slop happens when agents act without human judgment as a check — generating repetitive, generic outputs that erode trust and dilute your brand. ThumbGate inserts human thumbs-up/down between AI intent and execution. Every thumbs-down becomes a prevention rule that flags the bad pattern on the next matching tool call. Every thumbs-up reinforces what 'good' looks like for your specific context. Your agent's outputs reflect your actual standards, not generic AI patterns. This is authenticity enforcement at the tool-call level."
365
362
  }
366
363
  },
367
364
  {
@@ -369,7 +366,7 @@ __GA_BOOTSTRAP__
369
366
  "name": "How is ThumbGate different from SpecLock?",
370
367
  "acceptedAnswer": {
371
368
  "@type": "Answer",
372
- "text": "SpecLock requires manually writing constraints or compiling them from a PRD. ThumbGate learns automatically from thumbs-up/down feedback and auto-generates prevention rules from repeated failures. SpecLock locks files from modification; ThumbGate blocks specific actions (like force-push) before they execute."
369
+ "text": "SpecLock requires manually writing constraints or compiling them from a PRD. ThumbGate learns automatically from thumbs-up/down feedback and auto-generates prevention rules from repeated failures. SpecLock locks files from modification; ThumbGate flags specific actions (like force-push) before they execute and logs the decision — warning by default and hard-blocking under strict mode, while catastrophic classes like secret exfiltration and rm -rf hard-block outright."
373
370
  }
374
371
  },
375
372
  {
@@ -377,7 +374,7 @@ __GA_BOOTSTRAP__
377
374
  "name": "How is ThumbGate different from Mem0?",
378
375
  "acceptedAnswer": {
379
376
  "@type": "Answer",
380
- "text": "Mem0 is cloud-hosted memory for AI apps. ThumbGate is local-first enforcement. Mem0 remembers context but cannot block actions. ThumbGate captures feedback, promotes it to prevention rules, and physically blocks tool calls that match known failure patterns via PreToolUse hooks."
377
+ "text": "Mem0 is cloud-hosted memory for AI apps. ThumbGate is local-first enforcement. Mem0 remembers context but does not gate actions. ThumbGate captures feedback, promotes it to prevention rules, and flags tool calls that match known failure patterns via PreToolUse hooks — hard-blocking the catastrophic classes by default, and every rule under strict mode."
381
378
  }
382
379
  }
383
380
  ]
@@ -755,19 +752,19 @@ __GA_BOOTSTRAP__
755
752
  <!-- HERO -->
756
753
  <section class="hero">
757
754
  <div class="container">
758
- <div class="hero-badge">👍 👎 Local-first · open-source · Pro proof when it matters</div>
759
- <h1>Stop AI agents before they spend money, leak secrets, or break production.</h1>
760
- <p class="hero-lede">Claude Code, Cursor, Codex, Gemini CLI, and MCP tools now touch terminals, repos, databases, SaaS APIs, and cloud systems. ThumbGate checks the next tool call before it runs, blocks repeated failures from your thumbs-down feedback, and gives paid operators proof, sync, recall, and exports when local rules become business-critical.</p>
755
+ <div class="hero-badge">👍 👎 Local-first · open-source · enterprise governance when agents touch real systems</div>
756
+ <h1>Catch AI agents before they spend money, leak secrets, or break production.</h1>
757
+ <p class="hero-lede">Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode, and MCP tools now touch terminals, repos, databases, SaaS APIs, and cloud systems. ThumbGate checks the next tool call before it runs, flags repeated failures from your thumbs-down feedback and logs every decision — hard-blocking the catastrophic classes (secret exfiltration, rm -rf, supply-chain) by default and warning on the rest, with strict mode to hard-block everything. The beachhead buyer is an enterprise engineering, security, or platform team that needs governed AI-agent execution before agents touch regulated or high-blast-radius workflows.</p>
761
758
 
762
759
  <div class="hero-signals" aria-label="June 2026 buyer signals">
763
760
  <a class="signal-pill signal-down" href="#june-2026-proof">MCP tool risk</a>
764
761
  <a class="signal-pill" href="#june-2026-proof">Managed-agent rollout</a>
765
762
  <a class="signal-pill" href="#june-2026-proof">Token spend pressure</a>
766
- <a class="signal-pill signal-up" href="#pricing">Free wedge, paid proof</a>
763
+ <a class="signal-pill signal-up" href="#workflow-sprint-intake">Regulated agent governance</a>
767
764
  </div>
768
765
 
769
- <div class="hero-proof-card" aria-label="ThumbGate blocking dangerous AI agent commands in real time">
770
- <img src="/media/thumbgate-demo.gif" alt="ThumbGate blocking an AI agent's rm -rf, git push --force, and chmod 777 in real time, while letting safe commands through" style="width:100%;display:block;border-radius:8px;" loading="lazy" />
766
+ <div class="hero-proof-card" aria-label="ThumbGate flagging dangerous AI agent commands in real time">
767
+ <img src="/media/thumbgate-demo.gif" alt="ThumbGate flagging an AI agent's rm -rf, git push --force, and chmod 777 in real time — hard-blocking rm -rf and warning on the rest by default (strict mode blocks all) — while letting safe commands through" style="width:100%;display:block;border-radius:8px;" loading="lazy" />
771
768
  </div>
772
769
 
773
770
  <div class="hero-actions">
@@ -779,21 +776,36 @@ __GA_BOOTSTRAP__
779
776
  <div class="offer-router" aria-label="Choose the right ThumbGate path">
780
777
  <div class="offer-route primary">
781
778
  <strong>Solo operator: Start Pro</strong>
782
- <p>Unlimited rules, recall, sync, proof, exports.</p>
779
+ <p>Unlimited rules, recall, proof, exports.</p>
783
780
  <a href="/checkout/pro?utm_source=website&utm_medium=offer_router&cta_id=router_start_pro&cta_placement=offer_router&plan_id=pro" data-revenue-cta data-cta-id="router_start_pro" data-cta-placement="offer_router" data-tier="pro" data-plan-id="pro" data-price="19" onclick="trackRevenueCta(this);">Pay $19/mo with Stripe →</a>
784
781
  </div>
785
782
  <div class="offer-route">
786
- <strong>Enterprise workflow: Start with intake</strong>
787
- <p>One repeated failure, one owner, one proof plan.</p>
783
+ <strong>Enterprise governance: Start with one workflow</strong>
784
+ <p>Finance, healthcare, insurance, public sector, critical infrastructure, manufacturing.</p>
788
785
  <a href="#workflow-sprint-intake" onclick="sendFirstPartyTelemetry('workflow_sprint_intake_started',{ctaId:'router_workflow_sprint',ctaPlacement:'offer_router',offer:'workflow_sprint'});">Talk to us →</a>
789
786
  </div>
790
787
  <div class="offer-route">
791
788
  <strong>Still evaluating: Free CLI</strong>
792
- <p>2 captures/day, 3 active rules. Enough to prove one blocked repeat.</p>
789
+ <p>2 captures/day, 3 active rules. Enough to prove one caught repeat.</p>
793
790
  <button data-router-install onclick="copyInstall(this)"><span class="copy-hint">Copy npx thumbgate init</span></button>
794
791
  </div>
795
792
  </div>
796
793
 
794
+ <div style="max-width:920px;margin:22px auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;text-align:left;">
795
+ <div style="border:1px solid rgba(34,211,238,0.25);border-radius:10px;background:rgba(34,211,238,0.055);padding:16px;">
796
+ <strong style="display:block;color:var(--cyan);margin-bottom:6px;">Ideal customer</strong>
797
+ <span style="color:var(--text-dim);font-size:13px;line-height:1.55;">Enterprise engineering, security, and platform teams already using AI coding agents in repos, CI/CD, SaaS APIs, cloud operations, or audited workflows.</span>
798
+ </div>
799
+ <div style="border:1px solid rgba(74,222,128,0.24);border-radius:10px;background:rgba(74,222,128,0.055);padding:16px;">
800
+ <strong style="display:block;color:var(--green);margin-bottom:6px;">Pain</strong>
801
+ <span style="color:var(--text-dim);font-size:13px;line-height:1.55;">Security is the pain: agents can repeat dangerous actions. Enterprise governance is the budget: policy, auditability, approvals, and shared prevention before execution.</span>
802
+ </div>
803
+ <div style="border:1px solid rgba(168,85,247,0.24);border-radius:10px;background:rgba(168,85,247,0.055);padding:16px;">
804
+ <strong style="display:block;color:#c084fc;margin-bottom:6px;">Partnership fit</strong>
805
+ <span style="color:var(--text-dim);font-size:13px;line-height:1.55;">Detection and coordination layers can identify drift. ThumbGate turns approved findings into enforceable PreToolUse rules with decision evidence.</span>
806
+ </div>
807
+ </div>
808
+
797
809
  <div class="hero-trust-bar">
798
810
  <span><a href="https://www.npmjs.com/package/thumbgate" target="_blank" rel="noopener" style="color:inherit;text-decoration:none;"><img src="https://img.shields.io/npm/dw/thumbgate?label=npm&amp;color=22d3ee" alt="weekly npm installs of thumbgate" loading="lazy" style="vertical-align:middle;"></a></span>
799
811
  <span>MIT open source</span>
@@ -803,7 +815,7 @@ __GA_BOOTSTRAP__
803
815
  </div>
804
816
  <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;">
805
817
  <blockquote style="margin:0;font-size:18px;line-height:1.5;color:var(--text);font-style:italic;">&ldquo;A better dashboard doesn&rsquo;t make the agents more reliable. The hard part isn&rsquo;t visibility. It&rsquo;s trust.&rdquo;</blockquote>
806
- <figcaption style="margin-top:12px;font-size:13px;color:var(--text-muted);">— Rob May, CEO &amp; 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&rsquo;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>
818
+ <figcaption style="margin-top:12px;font-size:13px;color:var(--text-muted);">— Rob May, CEO &amp; 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&rsquo;s Claude Code Agent View (May 2026). This is Rob May describing the industry, not an endorsement of ThumbGate. ThumbGate is our attempt at that trust problem: PreToolUse gates, thumbs-down to rule, and an audit trail on every interception.</figcaption>
807
819
  </figure>
808
820
  <figure style="max-width:760px;margin:24px auto 0;padding:20px 24px;border-left:3px solid var(--cyan);background:rgba(34,211,238,0.04);border-radius:0 8px 8px 0;">
809
821
  <p style="margin:0 0 8px;font-size:14px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.08em;">Local-first is the new default</p>
@@ -824,8 +836,8 @@ __GA_BOOTSTRAP__
824
836
  <p>Use thumbs up for a good pattern and thumbs down for a failure. ThumbGate distills the correction into a concrete prevention rule.</p>
825
837
  </div>
826
838
  <div class="first-check-step">
827
- <strong>3. The repeat gets blocked</strong>
828
- <p>The next matching tool call is stopped before execution, with a reason the agent can use to choose a safer plan.</p>
839
+ <strong>3. The repeat gets flagged</strong>
840
+ <p>The next matching tool call is flagged and logged before execution, with a reason the agent can use to choose a safer plan — and hard-blocked outright for catastrophic actions (secrets, rm -rf) or when you set THUMBGATE_STRICT_ENFORCEMENT=1.</p>
829
841
  </div>
830
842
  </div>
831
843
  </div>
@@ -843,11 +855,11 @@ __GA_BOOTSTRAP__
843
855
  </nav>
844
856
  <div class="marketing-test-copy" hidden>
845
857
  <div class="hero-thumbs">👍👎</div>
846
- <a class="signal-pill signal-up">Thumbs-down once, blocked forever</a>
847
- <a class="signal-pill signal-down">Block repeat hallucinations before the model sees them</a>
858
+ <a class="signal-pill signal-up">Thumbs-down once, caught every time</a>
859
+ <a class="signal-pill signal-down">Catch repeat hallucinations before the model sees them</a>
848
860
  <p class="hero-persona">For consultancies, platform teams, and AI product teams that want workflow governance, CLI-first rollout, and a reliable operator.</p>
849
861
  <p>Have one AI-agent failure that keeps repeating? Start with one real workflow, one repeated failure pattern, enforceable pre-action gates, and a short audit trail your team can keep.</p>
850
- <p>Prove one blocked repeat before asking anyone to buy. Give <code>thumbs up</code> when the agent follows your standards, <code>thumbs down</code> when it misses. Upgrade after one real blocked repeat.</p>
862
+ <p>Prove one caught repeat before asking anyone to buy. Give <code>thumbs up</code> when the agent follows your standards, <code>thumbs down</code> when it misses. Upgrade after one real caught repeat.</p>
851
863
  <p>Workflow governance for isolated execution: ThumbGate pairs policy checks with Docker Sandboxes, signed hosted sandbox dispatch, Changeset evidence, and exact main-branch merge commit verification before release claims ship.</p>
852
864
  <!--
853
865
  Hidden test/asserter strings — required by tests/public-landing.test.js regex assertions
@@ -869,7 +881,7 @@ __GA_BOOTSTRAP__
869
881
  <section class="compatibility" id="why-not-diy" aria-label="Why not write your own hooks">
870
882
  <div class="container">
871
883
  <h2>“Why not just write my own PreToolUse hooks?”</h2>
872
- <p class="hero-lede" style="max-width:760px;margin:0 auto 18px;">You can — on one machine, for one agent, until the next breaking change. ThumbGate is that idea, maintained: a 👎 becomes a rule that <strong>propagates across every agent</strong> — Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode — and every machine, with adapters kept current so you’re not patching shell scripts each release. Hand-written hooks don’t learn, don’t sync, and don’t survive a teammate’s laptop.</p>
884
+ <p class="hero-lede" style="max-width:760px;margin:0 auto 18px;">You can — on one machine, for one agent, until the next breaking change. ThumbGate is that idea, maintained: a 👎 becomes a rule that <strong>propagates across every configured agent</strong> — Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode — in the install scope you choose, with adapters kept current so you’re not patching shell scripts each release. Hand-written hooks don’t learn, don’t create auditable proof, and don’t become shared team policy without a managed rollout.</p>
873
885
  <p><a href="/compare/claude-code-hooks">See ThumbGate vs. hand-written hooks →</a></p>
874
886
  </div>
875
887
  </section>
@@ -952,10 +964,10 @@ __GA_BOOTSTRAP__
952
964
  <div><span class="fn">npx</span> thumbgate init</div>
953
965
  <div>&nbsp;</div>
954
966
  <div><span class="comment"># Your agent tries to delete production db...</span></div>
955
- <div><span class="keyword">⛔ Check blocked:</span> <span class="string">"Never run DROP on production tables"</span></div>
967
+ <div><span class="keyword">⚠️ Check flagged:</span> <span class="string">"Never run DROP on production tables"</span> <span class="comment"># blocks under strict mode</span></div>
956
968
  <div><span class="comment"># Rule auto-generated from your previous 👎</span></div>
957
969
  <div>&nbsp;</div>
958
- <div><span class="comment"># That's it. One thumbs-down = one permanent check.</span></div>
970
+ <div><span class="comment"># That's it. One thumbs-down = one reusable check.</span></div>
959
971
  </div>
960
972
  </div>
961
973
  <p style="text-align:center;margin-top:16px;font-size:14px;color:var(--text-muted);">This is the entire product in 2 lines. Install, give feedback, checks auto-generate.</p>
@@ -1030,7 +1042,7 @@ __GA_BOOTSTRAP__
1030
1042
  </div>
1031
1043
  <div class="gpt-step">
1032
1044
  <strong>3. Give feedback, checks auto-generate</strong>
1033
- <p>Type <code>thumbs down</code> when Claude makes a mistake. ThumbGate distills a lesson from up to 8 prior entries and blocks the pattern permanently via PreToolUse hooks.</p>
1045
+ <p>Type <code>thumbs down</code> when Claude makes a mistake. ThumbGate distills a lesson from up to 8 prior entries and flags the pattern on the next matching tool call via PreToolUse hooks — hard-blocking the catastrophic classes by default, and every rule under strict mode.</p>
1034
1046
  </div>
1035
1047
  </div>
1036
1048
  <div style="display:flex;gap:12px;flex-wrap:wrap;">
@@ -1061,7 +1073,7 @@ __GA_BOOTSTRAP__
1061
1073
  </div>
1062
1074
  <div class="gpt-step">
1063
1075
  <strong>3. Enforce locally</strong>
1064
- <p>Run <code>npx thumbgate init</code> in the repo so Pre-Action Checks block repeated mistakes before the coding agent executes them.</p>
1076
+ <p>Run <code>npx thumbgate init</code> in the repo so Pre-Action Checks flag repeated mistakes (and hard-block the catastrophic ones) before the coding agent executes them.</p>
1065
1077
  </div>
1066
1078
  </div>
1067
1079
  <div style="display:flex;gap:12px;flex-wrap:wrap;">
@@ -1185,12 +1197,12 @@ __GA_BOOTSTRAP__
1185
1197
  <section class="compatibility" id="governance-not-logging">
1186
1198
  <div class="container">
1187
1199
  <div class="section-label">Governance, Not Logging</div>
1188
- <h2 class="section-title">Logs describe the damage. ThumbGate blocks the risky action before it runs.</h2>
1200
+ <h2 class="section-title">Logs describe the damage. ThumbGate flags the risky action before it runs — and blocks the catastrophic ones.</h2>
1189
1201
  <p style="color:var(--text-dim);max-width:820px;margin:0 auto 22px;">Self-governance is an operator writing local rules and keeping local logs. ThumbGate starts there, then turns each correction into a pre-action decision: allow, block, require evidence, or route for approval before the tool call touches code, data, money, or customers.</p>
1190
1202
  <div class="agent-grid">
1191
1203
  <div class="agent-card">
1192
1204
  <h3>Pre-action enforcement</h3>
1193
- <p>The rule is evaluated at the execution boundary, not after the fact. Repeated failures are stopped before shell commands, PR actions, deploys, refunds, or production writes run.</p>
1205
+ <p>The rule is evaluated at the execution boundary, not after the fact. Repeated failures are flagged and logged before shell commands, PR actions, deploys, refunds, or production writes run — and hard-blocked for catastrophic classes (secrets, rm -rf, supply-chain) or when strict mode is on.</p>
1194
1206
  </div>
1195
1207
  <div class="agent-card">
1196
1208
  <h3>Reviewable decision trail</h3>
@@ -1216,7 +1228,7 @@ __GA_BOOTSTRAP__
1216
1228
  </div>
1217
1229
  <div class="agent-card">
1218
1230
  <h3>ThumbGate</h3>
1219
- <p>Turns operator feedback into Pre-Action Checks. It does not just remember the mistake. It blocks the repeat at the tool-call boundary across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.</p>
1231
+ <p>Turns operator feedback into Pre-Action Checks. It does not just remember the mistake. It flags the repeat at the tool-call boundary across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode — and can hard-block it (catastrophic classes by default, everything under strict mode).</p>
1220
1232
  </div>
1221
1233
  <div class="agent-card">
1222
1234
  <h3>The stack that makes sense</h3>
@@ -1304,7 +1316,7 @@ __GA_BOOTSTRAP__
1304
1316
  <div class="container">
1305
1317
  <div class="section-label">Persistent Agent Skills</div>
1306
1318
  <h2 class="section-title">Reusable instructions are the new baseline. Enforcement is the moat.</h2>
1307
- <p style="text-align:center;font-size:16px;color:var(--text-muted);max-width:880px;margin:0 auto 28px;line-height:1.7;">Grok-style skills are training users to expect persistent expertise across every surface. ThumbGate turns that expectation into a governed reliability layer: capture the correction once, export it as a portable skill or lesson bundle, then prove the next risky tool call was blocked before it ran.</p>
1319
+ <p style="text-align:center;font-size:16px;color:var(--text-muted);max-width:880px;margin:0 auto 28px;line-height:1.7;">Grok-style skills are training users to expect persistent expertise across every surface. ThumbGate turns that expectation into a governed reliability layer: capture the correction once, export it as a portable skill or lesson bundle, then prove the next risky tool call was flagged (and, for catastrophic classes or under strict mode, blocked) before it ran.</p>
1308
1320
  <div class="agent-grid">
1309
1321
  <div class="agent-card">
1310
1322
  <h3>Portable skill memory</h3>
@@ -1326,8 +1338,8 @@ __GA_BOOTSTRAP__
1326
1338
  <section class="how-it-works" id="how-it-works">
1327
1339
  <div class="container">
1328
1340
  <div class="section-label">Self-improving enforcement</div>
1329
- <h2 class="section-title">Three steps to stop repeated AI failures</h2>
1330
- <p class="section-sub" style="max-width:720px;margin:6px auto 22px;text-align:center;color:var(--text-muted);font-size:clamp(16px,1.6vw,18px);">Self-improving — but for safety, not capability: every <code>👎</code> compiles into a hard rule, and each rule regression-tests itself against your history, so it blocks the repeat and never the safe action.</p>
1341
+ <h2 class="section-title">Three steps to catch repeated AI failures</h2>
1342
+ <p class="section-sub" style="max-width:720px;margin:6px auto 22px;text-align:center;color:var(--text-muted);font-size:clamp(16px,1.6vw,18px);">Self-improving — but for safety, not capability: every <code>👎</code> compiles into a rule, and each rule regression-tests itself against your history, so it flags the repeat and never the safe action.</p>
1331
1343
  <div class="steps">
1332
1344
  <div class="step">
1333
1345
  <div class="step-num">1</div>
@@ -1342,7 +1354,7 @@ __GA_BOOTSTRAP__
1342
1354
  <div class="step">
1343
1355
  <div class="step-num">3</div>
1344
1356
  <h3>Checks</h3>
1345
- <p>Rules become Pre-Action Checks that <strong>block</strong> your agent before it repeats the same mistake. Your agent can't force-push, skip tests, or repeat a refactor you already rejected. No more fix-loops.</p>
1357
+ <p>Rules become Pre-Action Checks that <strong>flag and log</strong> your agent before it repeats the same mistake hard-blocking the catastrophic classes by default, and every rule when you set <code>THUMBGATE_STRICT_ENFORCEMENT=1</code>. So a force-push, skipped test, or refactor you already rejected gets surfaced before it runs, not after.</p>
1346
1358
  </div>
1347
1359
  </div>
1348
1360
  </div>
@@ -1353,7 +1365,7 @@ __GA_BOOTSTRAP__
1353
1365
  <section class="compatibility" id="guardrails">
1354
1366
  <div class="container">
1355
1367
  <div class="section-label">Enforcement</div>
1356
- <h2 class="section-title">Checks block. They don't ask nicely.</h2>
1368
+ <h2 class="section-title">Checks fire on every call and log it. Catastrophes get blocked.</h2>
1357
1369
  <div class="agent-grid">
1358
1370
  <div class="agent-card">
1359
1371
  <h3>Don't trust — verify</h3>
@@ -1361,7 +1373,7 @@ __GA_BOOTSTRAP__
1361
1373
  </div>
1362
1374
  <div class="agent-card">
1363
1375
  <h3>Real tools, not wishes</h3>
1364
- <p>Checks physically block tool calls. Not prompt tricks. Not "please don't."</p>
1376
+ <p>Checks fire at the tool-call boundary and log every decision — not prompt tricks, not "please don't." Catastrophic classes hard-block; set <code>THUMBGATE_STRICT_ENFORCEMENT=1</code> to hard-block every rule.</p>
1365
1377
  </div>
1366
1378
  <div class="agent-card">
1367
1379
  <h3>Force models to show work</h3>
@@ -1398,7 +1410,7 @@ __GA_BOOTSTRAP__
1398
1410
  <div><span class="fn">npx</span> thumbgate init</div>
1399
1411
  <div>&nbsp;</div>
1400
1412
  <div><span class="comment"># Your agent tries to delete production db...</span></div>
1401
- <div><span class="keyword">⛔ Check blocked:</span> <span class="string">"Never run DROP on production tables"</span></div>
1413
+ <div><span class="keyword">⚠️ Check flagged:</span> <span class="string">"Never run DROP on production tables"</span> <span class="comment"># blocks under strict mode</span></div>
1402
1414
  <div><span class="comment"># Rule auto-generated from your previous 👎</span></div>
1403
1415
  <div>&nbsp;</div>
1404
1416
  <div><span class="comment"># Works with your existing setup</span></div>
@@ -1488,10 +1500,10 @@ __GA_BOOTSTRAP__
1488
1500
  <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Active auto-promoted prevention rules</td><td style="text-align:center;border-bottom:1px solid var(--border);">3</td><td style="text-align:center;border-bottom:1px solid var(--border);">Unlimited</td><td style="text-align:center;border-bottom:1px solid var(--border);">Unlimited</td></tr>
1489
1501
  <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Lesson recall + search across sessions</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td></tr>
1490
1502
  <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Personal dashboard + DPO export</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td></tr>
1491
- <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Hosted sync across machines</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td></tr>
1503
+ <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Shared hosted lesson database</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td></tr>
1492
1504
  <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Shared lesson database + org dashboard</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td></tr>
1493
1505
  <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Org-wide shared enforcement + approval boundaries</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td></tr>
1494
- <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Audit trail, SSO, regulatory gate templates</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">✅</td></tr>
1506
+ <tr><td style="padding:10px 14px;border-bottom:1px solid var(--border);">Audit trail; SSO &amp; regulatory gate templates <span style="color:var(--text-muted);font-size:12px;">(design-partner / roadmap)</span></td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">—</td><td style="text-align:center;border-bottom:1px solid var(--border);">On request</td></tr>
1495
1507
  <tr><td style="padding:10px 14px;color:var(--text-muted);">Best for</td><td style="text-align:center;color:var(--text-muted);">One developer</td><td style="text-align:center;color:var(--text-muted);">Solo operators</td><td style="text-align:center;color:var(--text-muted);">Teams &amp; regulated orgs</td></tr>
1496
1508
  </tbody>
1497
1509
  </table>
@@ -1501,7 +1513,7 @@ __GA_BOOTSTRAP__
1501
1513
  <div class="price-card free-highlight" style="border-color:var(--cyan);box-shadow:0 0 40px var(--cyan-dim), inset 0 1px 0 rgba(34,211,238,0.15);position:relative;">
1502
1514
  <div class="tier" style="color:var(--cyan);">Free</div>
1503
1515
  <div class="price">$0</div>
1504
- <div class="price-sub">Block repeated mistakes daily. Forever free for solo devs.</div>
1516
+ <div class="price-sub">Catch repeated mistakes daily. Forever free for solo devs.</div>
1505
1517
  <p style="font-size:13px;color:#aaa;margin-bottom:16px;">2 captures/day, 3 active rules. Enough to see the value — upgrade when you need more.</p>
1506
1518
  <ul>
1507
1519
  <li><strong>2 feedback captures/day</strong> — 10 total on Free, then Pro for unlimited</li>
@@ -1509,7 +1521,7 @@ __GA_BOOTSTRAP__
1509
1521
  <li>No recall or lesson search</li>
1510
1522
  <li>No exports (DPO, Databricks, HuggingFace)</li>
1511
1523
  <li>All MCP integrations (Claude Code, Cursor, Codex, Gemini, Amp, any MCP agent)</li>
1512
- <li>PreToolUse hook blocking with built-in safety checks (force-push, destructive SQL, secrets)</li>
1524
+ <li>PreToolUse hook with built-in safety checks — hard-blocks secrets and destructive deletes (rm -rf) by default; warns on force-push and destructive SQL (blocks them under <code>THUMBGATE_STRICT_ENFORCEMENT=1</code>)</li>
1513
1525
  <li><a href="/guide" style="color:var(--cyan);text-decoration:underline;">Setup guide for all agents →</a></li>
1514
1526
  </ul>
1515
1527
  <div class="hero-install" onclick="copyInstall(this)" title="Click to copy" style="margin-bottom:12px;width:100%;justify-content:center;">
@@ -1522,7 +1534,7 @@ __GA_BOOTSTRAP__
1522
1534
  <div class="price-card pro" data-price-dollars="19">
1523
1535
  <div class="tier">Pro</div>
1524
1536
  <div class="price">$19<span style="font-size:16px;color:var(--text-dim)">/mo</span></div>
1525
- <div class="price-sub"><strong>Don't buy a tool — buy hosted sync + compatibility insurance.</strong> The free CLI runs your gates locally, but Pro is what we operate for you: secure SQLite sync across all your machines (saving you from managing database migrations manually across developer boxes) and active adapter maintenance to stay compatible with weekly breaking updates in Claude Code, Cursor, and Cline.</div>
1537
+ <div class="price-sub"><strong>Don't buy a tool — buy proof + compatibility insurance.</strong> The free CLI runs your gates locally. Pro removes the solo caps and adds the personal dashboard, recall, exports, and active adapter maintenance to stay compatible with weekly breaking updates in Claude Code, Cursor, and Cline. Shared hosted lesson databases are Enterprise.</div>
1526
1538
  <ul>
1527
1539
  <li><strong>Block every repeat mistake</strong> — unlimited feedback captures and prevention rules (Free caps at 3 active rules)</li>
1528
1540
  <li><strong>Never re-explain a correction</strong> — lesson recall and search across sessions on every agent surface</li>
@@ -1559,7 +1571,7 @@ __GA_BOOTSTRAP__
1559
1571
  <tr>
1560
1572
  <td><strong>Best for</strong></td>
1561
1573
  <td>Solo proof that a repeat mistake can be blocked</td>
1562
- <td>One operator who wants hosted sync, dashboard proof, and exports</td>
1574
+ <td>One operator who wants personal recall, dashboard proof, managed adapters, and exports</td>
1563
1575
  <td>Teams &amp; regulated orgs — one person's correction protects every seat; banking, insurance, healthcare, public sector, audited workflows</td>
1564
1576
  </tr>
1565
1577
  <tr>
@@ -1584,7 +1596,7 @@ __GA_BOOTSTRAP__
1584
1596
  <td><strong>Dashboard and proof</strong></td>
1585
1597
  <td>Local CLI evidence</td>
1586
1598
  <td>Personal dashboard, check debugger, DPO/HF exports</td>
1587
- <td>Org dashboard, hosted review views, rollout proof, SIEM-ready decision trail and compliance evidence</td>
1599
+ <td>Org dashboard, hosted review views, rollout proof; SIEM export and compliance evidence packaging available on request</td>
1588
1600
  </tr>
1589
1601
  <tr>
1590
1602
  <td><strong>How to start</strong></td>
@@ -1608,13 +1620,13 @@ __GA_BOOTSTRAP__
1608
1620
  <li><strong>Shared lesson database</strong> — one hosted, shared lesson DB so one team member's correction becomes every developer's prevention rule across the org</li>
1609
1621
  <li><strong>Org dashboard</strong> — active agents, check hit-rates, and risk surfaces across the whole team</li>
1610
1622
  <li><strong>Shared enforcement memory</strong> — approval boundaries and rollback safety applied org-wide, not per machine</li>
1611
- <li><strong>Audit-grade decision trail</strong> — every PreToolUse evaluation logged with the rule that fired, ready for SIEM export</li>
1623
+ <li><strong>Audit-grade decision trail</strong> — every PreToolUse evaluation logged with the rule that fired; SIEM export available on request</li>
1612
1624
  <li><strong>Immutable rule provenance</strong> — each prevention rule traceable to the feedback event that generated it</li>
1613
1625
  <li><strong>Self-managed deployment</strong> — air-gapped or VPC-hosted; no agent state leaves your boundary</li>
1614
1626
  <li><strong>Dialogflow CX fulfillment guard</strong> — ThumbGate's pre-action gate sits in front of your Dialogflow CX webhook fulfillment, in your own GCP tenant, so risky or repeat turns are blocked before they touch a database, CRM, or billing system (white-glove design-partner pilot)</li>
1615
1627
  <li><strong>Vertex AI / Gemini scoring, in-tenant</strong> — risk and planning scoring runs on Gemini via Vertex (<code>npx thumbgate setup-vertex</code>); no conversational data leaves your VPC</li>
1616
- <li><strong>DORA / EU AI Act evidence packaging</strong> — machine-readable reports aligned to Article 6, 28, and high-risk provider monitoring obligations</li>
1617
- <li><strong>SSO + role separation</strong> — operator, reviewer, and auditor roles enforced at the gate layer</li>
1628
+ <li><strong>DORA / EU AI Act evidence packaging</strong> <span style="color:var(--text-muted);">(roadmap / design-partner)</span> — machine-readable reports aligned to Article 6, 28, and high-risk provider monitoring obligations</li>
1629
+ <li><strong>SSO + role separation</strong> <span style="color:var(--text-muted);">(on the Enterprise roadmap)</span> — operator, reviewer, and auditor roles enforced at the gate layer</li>
1618
1630
  <li><strong>Enterprise Data Chat</strong> — local ThumbGate data Q&amp;A with Dialogflow CX / Vertex-ready governance; live cloud-agent claims require deployment evidence first</li>
1619
1631
  <li><strong>Workflow proof plan included</strong> — a scoped review that proves the boundary against one of your real repeated-failure cases before broader rollout</li>
1620
1632
  <li><strong>Quarterly red-team review</strong> — prompt-injection and policy-bypass exercises with written findings</li>
@@ -1635,12 +1647,12 @@ __GA_BOOTSTRAP__
1635
1647
  <div class="container">
1636
1648
  <div class="section-label">Enterprise Pilot</div>
1637
1649
  <h2 class="section-title">Start the AI Agent Governance Sprint with one repeat failure</h2>
1638
- <p style="color:var(--text-dim);max-width:720px;margin:0 auto 16px;">This is the fastest path to first paid value for teams. Start with one repo, one workflow owner, and one blocker. The intake is designed to prove that ThumbGate reduces review churn, rollout risk, or repeated agent mistakes before a wider rollout.</p>
1650
+ <p style="color:var(--text-dim);max-width:760px;margin:0 auto 16px;">This is the fastest path to first paid value for regulated and high-blast-radius teams. Start with one repo, one workflow owner, and one blocker. The intake proves whether ThumbGate can enforce a repeatable action boundary before a wider rollout.</p>
1639
1651
  <div class="team-intake-panel">
1640
1652
  <div class="team-intake-panel-head">
1641
1653
  <div>
1642
1654
  <h3>Tell us the workflow. Get a proof plan.</h3>
1643
- <p>The highest-fit Enterprise buyer is already feeling one repeated failure. Send the workflow first so the next step is scoped around the real blocker instead of a blind checkout.</p>
1655
+ <p>The highest-fit Enterprise buyer is already feeling one repeated failure in a workflow where mistakes have real consequences. Send the workflow first so the next step is scoped around the real blocker instead of a blind checkout.</p>
1644
1656
  </div>
1645
1657
  <span class="team-intake-badge">30-minute intake</span>
1646
1658
  </div>
@@ -1686,15 +1698,15 @@ __GA_BOOTSTRAP__
1686
1698
  </div>
1687
1699
  <div class="faq-item">
1688
1700
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How is ThumbGate different from model-training feedback loops?</div>
1689
- <div class="faq-a">ThumbGate's intelligence is context, not weights. It doesn't touch the model — it injects past feedback into context so your agent is conditioned by your corrections. Think of it as a behavioral immune system, not a training pipeline. The check blocks are hard enforcement, not soft suggestions.</div>
1701
+ <div class="faq-a">ThumbGate's intelligence is context, not weights. It doesn't touch the model — it injects past feedback into context so your agent is conditioned by your corrections. Think of it as a behavioral immune system, not a training pipeline. Checks fire on every tool call and log the decision; catastrophic classes (secret exfiltration, destructive deletes like rm -rf, supply-chain) hard-block by default, and strict mode (<code>THUMBGATE_STRICT_ENFORCEMENT=1</code>) hard-blocks every rule.</div>
1690
1702
  </div>
1691
1703
  <div class="faq-item">
1692
1704
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How is ThumbGate different from persistent agent skills?</div>
1693
- <div class="faq-a">Persistent agent skills are reusable instructions. ThumbGate uses the same market shift but adds the missing enforcement loop: lessons become portable skill context, Pre-Action Checks block repeated failures before tool execution, and the dashboard shows evidence for which rule fired and why.</div>
1705
+ <div class="faq-a">Persistent agent skills are reusable instructions. ThumbGate uses the same market shift but adds the missing enforcement loop: lessons become portable skill context, Pre-Action Checks flag repeated failures before tool execution (and hard-block the catastrophic classes by default, or every rule under strict mode), and the dashboard shows evidence for which rule fired and why.</div>
1694
1706
  </div>
1695
1707
  <div class="faq-item">
1696
1708
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What's the tech stack?</div>
1697
- <div class="faq-a">SQLite+FTS5 lesson DB for fast full-text search. MemAlign-inspired dual recall (principle-based rules + episodic context). Thompson Sampling for adaptive check sensitivity per failure domain. LanceDB + Apache Arrow for local vector search with Hugging Face embeddings. ContextFS for context assembly. Bayesian belief updates on each memory. PreToolUse hook enforcement blocks known-bad actions before execution. All local-first — no cloud required.</div>
1709
+ <div class="faq-a">SQLite+FTS5 lesson DB for fast full-text search. MemAlign-inspired dual recall (principle-based rules + episodic context). Thompson Sampling for adaptive check sensitivity per failure domain. LanceDB + Apache Arrow for local vector search with Hugging Face embeddings. ContextFS for context assembly. Bayesian belief updates on each memory. PreToolUse hook enforcement flags known-bad actions before execution and hard-blocks the catastrophic classes by default (every rule under strict mode). All local-first — no cloud required.</div>
1698
1710
  </div>
1699
1711
  <div class="faq-item">
1700
1712
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What AI agents and editors does this work with?</div>
@@ -1706,7 +1718,7 @@ __GA_BOOTSTRAP__
1706
1718
  </div>
1707
1719
  <div class="faq-item">
1708
1720
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">When should I use Pro versus the Workflow Hardening Sprint?</div>
1709
- <div class="faq-a">Start with the <a href="/guide" style="color:var(--cyan);text-decoration:underline;">setup guide</a> if you only need the local path. Choose Pro after one real blocked repeat when you want your own dashboard, DPO export, and proof-ready exports. Choose the <a href="#workflow-sprint-intake" style="color:var(--cyan);text-decoration:underline;">Workflow Hardening Sprint</a> when one workflow owner needs approval boundaries, rollback safety, and rollout proof before wider rollout.</div>
1721
+ <div class="faq-a">Start with the <a href="/guide" style="color:var(--cyan);text-decoration:underline;">setup guide</a> if you only need the local path. Choose Pro after one real caught repeat when you want your own dashboard, DPO export, and proof-ready exports. Choose the <a href="#workflow-sprint-intake" style="color:var(--cyan);text-decoration:underline;">Workflow Hardening Sprint</a> when one workflow owner needs approval boundaries, rollback safety, and rollout proof before wider rollout.</div>
1710
1722
  </div>
1711
1723
  <div class="faq-item">
1712
1724
  <button class="faq-q" type="button" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How do we keep high-risk autonomous runs off the host?</button>
@@ -1726,7 +1738,7 @@ __GA_BOOTSTRAP__
1726
1738
  </div>
1727
1739
  <div class="faq-item">
1728
1740
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How are pre-action checks different from prompt rules?</div>
1729
- <div class="faq-a">Prompt rules are a starting point, not a finish line. Without prompt evaluation you do not know whether they still hold up under real tool use. ThumbGate adds the human-in-the-loop measurement loop and the enforcement layer: proof lanes, ThumbGate Bench, and self-heal checks show whether behavior improved, and Pre-Action Checks block the action before execution when it did not.</div>
1741
+ <div class="faq-a">Prompt rules are a starting point, not a finish line. Without prompt evaluation you do not know whether they still hold up under real tool use. ThumbGate adds the human-in-the-loop measurement loop and the enforcement layer: proof lanes, ThumbGate Bench, and self-heal checks show whether behavior improved, and Pre-Action Checks flag and log the action before execution when it did not — hard-blocking catastrophic classes by default, and every rule under strict mode.</div>
1730
1742
  </div>
1731
1743
  <div class="faq-item">
1732
1744
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How does ThumbGate fit the agentic development cycle?</div>
@@ -1742,7 +1754,7 @@ __GA_BOOTSTRAP__
1742
1754
  </div>
1743
1755
  <div class="faq-item">
1744
1756
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How does ThumbGate contain enterprise API costs?</div>
1745
- <div class="faq-a">ThumbGate prevents runaway API costs through a local client-side token ledger (FrontierBudget) that enforces strict cost-containment limits (such as keeping monthly costs under $10/mo). Because GCP billing console alerts are delayed, our local circuit breaker halts runaway agent loops in milliseconds to guarantee budget protection.</div>
1757
+ <div class="faq-a">ThumbGate helps contain runaway API costs through a local client-side token ledger (FrontierBudget) that applies cost-containment limits you configure (such as keeping monthly costs under $10/mo). Because GCP billing console alerts are delayed, the local circuit breaker is designed to halt runaway agent loops locally in milliseconds helping contain spend rather than guaranteeing it.</div>
1746
1758
  </div>
1747
1759
  </div>
1748
1760
  </div>
@@ -1790,17 +1802,16 @@ __GA_BOOTSTRAP__
1790
1802
  <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
1791
1803
  <a href="https://www.npmjs.com/package/thumbgate" target="_blank" rel="noopener">npm</a>
1792
1804
  <a href="https://www.producthunt.com/products/thumbgate" target="_blank" rel="noopener">Product Hunt</a>
1793
- <a href="https://x.com/IgorGanapolsky" target="_blank" rel="noopener">X / Twitter</a>
1794
1805
  <a href="https://www.linkedin.com/in/igorganapolsky" target="_blank" rel="noopener">LinkedIn</a>
1795
1806
  <a href="/blog">Blog</a>
1796
1807
  </div>
1797
- <span class="footer-copy">© 2026 ThumbGate · MIT License · npm v1.27.15</span>
1808
+ <span class="footer-copy">© 2026 ThumbGate · MIT License · npm v1.28.0</span>
1798
1809
  </div>
1799
1810
  </footer>
1800
1811
 
1801
1812
  <!-- STICKY BOTTOM CTA -->
1802
1813
  <div class="sticky-cta" id="sticky-cta">
1803
- <span class="sticky-cta-text"><strong>Pro unlocks recall, sync, exports</strong> — free CLI is capped at 2 captures/day</span>
1814
+ <span class="sticky-cta-text"><strong>Pro unlocks recall, proof, exports</strong> — free CLI is capped at 2 captures/day</span>
1804
1815
  <div class="hero-install" onclick="copyInstall(this)" title="Click to copy" style="margin-bottom:0;padding:8px 16px;font-size:13px;">
1805
1816
  <span class="prompt">$</span>
1806
1817
  <span class="cmd">npx thumbgate init</span>