thumbgate 1.16.22 โ†’ 1.18.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/public/index.html CHANGED
@@ -12,13 +12,14 @@ __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 โ€” Stop paying for the same AI mistake twice</title>
15
- <meta name="description" content="Stop paying for the same AI mistake twice. ThumbGate is machine-speed pre-action defense for AI coding agents: ๐Ÿ‘ thumbs up and ๐Ÿ‘Ž thumbs down become history-aware lessons, shared lessons and org visibility, actionable remediations, agent surface inventory, and Pre-Action Checks that block repeat mistakes before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.">
15
+ <meta name="description" content="Stop paying for the same AI mistake twice. ThumbGate is machine-speed pre-action defense for AI coding agents and vibe coding workflows: ๐Ÿ‘ thumbs up and ๐Ÿ‘Ž thumbs down become history-aware lessons, shared lessons and org visibility, actionable remediations, agent surface inventory, and Pre-Action Checks that block repeat mistakes before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.">
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">
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.18.0">
22
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">
23
24
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
24
25
 
@@ -34,6 +35,7 @@ __GA_BOOTSTRAP__
34
35
  const serverTelemetryCaptured = '__SERVER_TELEMETRY_CAPTURED__' === 'true';
35
36
  const sprintDiagnosticCheckoutUrl = '__SPRINT_DIAGNOSTIC_CHECKOUT_URL__';
36
37
  const workflowSprintCheckoutUrl = '__WORKFLOW_SPRINT_CHECKOUT_URL__';
38
+ const proPriceDollars = Number('__PRO_PRICE_DOLLARS__') || 19;
37
39
  const sprintDiagnosticPriceDollars = Number('__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__') || 499;
38
40
  const workflowSprintPriceDollars = Number('__WORKFLOW_SPRINT_PRICE_DOLLARS__') || 1500;
39
41
  </script>
@@ -365,11 +367,18 @@ __GA_BOOTSTRAP__
365
367
  .nav-cta:hover { opacity: 0.85; }
366
368
 
367
369
  /* HERO */
368
- .hero { padding: 100px 0 72px; text-align: center; }
370
+ .hero { padding: 92px 0 56px; text-align: center; }
369
371
  .hero-thumbs { font-size: 72px; margin-bottom: 20px; line-height: 1; filter: drop-shadow(0 0 24px rgba(34,211,238,0.3)); }
370
372
  .hero-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--cyan); background: var(--cyan-dim); border: 1px solid rgba(34,211,238,0.2); padding: 4px 12px; border-radius: 100px; margin-bottom: 24px; font-weight: 500; letter-spacing: 0.02em; text-transform: uppercase; }
371
- .hero h1 { font-size: clamp(32px, 5vw, 52px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.1; max-width: 700px; margin: 0 auto 16px; }
372
- .hero p { font-size: 17px; color: var(--text-muted); max-width: 520px; margin: 0 auto 36px; line-height: 1.6; }
373
+ .hero h1 { font-size: clamp(38px, 5.4vw, 68px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.02; max-width: 900px; margin: 0 auto 18px; }
374
+ .hero p { font-size: 17px; color: var(--text-muted); max-width: 620px; margin: 0 auto 28px; line-height: 1.6; }
375
+ .hero-lede { font-size: clamp(18px, 2vw, 21px) !important; max-width: 760px !important; color: var(--text-muted); }
376
+ .hero-proof-card { max-width: 720px; margin: 0 auto 28px; padding: 20px 22px; border: 1px solid rgba(34,211,238,0.24); border-radius: 8px; background: #090d12; box-shadow: 0 20px 80px rgba(0,0,0,0.35); font-family: var(--mono); text-align: left; }
377
+ .terminal-row { padding: 8px 0; font-size: 14px; line-height: 1.45; border-bottom: 1px solid rgba(255,255,255,0.06); }
378
+ .terminal-row:last-child { border-bottom: 0; }
379
+ .terminal-row.muted { color: var(--text-muted); }
380
+ .terminal-row.danger { color: #f87171; font-weight: 700; }
381
+ .terminal-row.ok { color: var(--green); }
373
382
  .hero-persona { font-size: 15px; color: var(--cyan); max-width: 600px; margin: 0 auto 20px; line-height: 1.5; font-weight: 500; }
374
383
  .hero-signals { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 0 auto 28px; max-width: 760px; }
375
384
  .signal-pill { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-raised); font-size: 13px; font-weight: 600; letter-spacing: -0.01em; text-decoration: none; cursor: pointer; transition: transform 0.12s ease, border-color 0.12s ease, background 0.12s ease; }
@@ -379,16 +388,20 @@ __GA_BOOTSTRAP__
379
388
  .signal-pill.signal-up:hover { border-color: rgba(74, 222, 128, 0.6); background: rgba(74, 222, 128, 0.14); }
380
389
  .signal-pill.signal-down { border-color: rgba(248, 113, 113, 0.28); color: #ffc0c0; background: rgba(248, 113, 113, 0.08); }
381
390
  .signal-pill.signal-down:hover { border-color: rgba(248, 113, 113, 0.6); background: rgba(248, 113, 113, 0.14); }
382
- .hero-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 0 auto 16px; max-width: 760px; }
391
+ .hero-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0 auto 16px; max-width: 900px; }
392
+ .hero-actions a, .hero-actions .hero-install { min-height: 48px; border-radius: 8px; }
393
+ .hero-actions .hero-install { margin-bottom: 0; font-size: 18px; padding: 14px 22px; border: 1px solid rgba(34,211,238,0.55); background: rgba(34,211,238,0.07); box-shadow: none; }
394
+ .hero-actions .btn-install-hero { font-size: 16px; padding: 14px 22px; }
395
+ .hero-actions .hero-diagnostic { font-size: 16px; padding: 14px 22px; background: var(--green); color: #06120a; font-weight: 800; box-shadow: none; }
383
396
  .btn-pro-page { display: inline-flex; align-items: center; justify-content: center; padding: 11px 18px; background: var(--cyan); color: var(--bg); border-radius: 999px; text-decoration: none; font-size: 14px; font-weight: 700; box-shadow: 0 0 0 1px rgba(34,211,238,0.28), 0 12px 32px rgba(34,211,238,0.18); transition: opacity 0.15s, transform 0.15s; }
384
397
  .btn-pro-page:hover { opacity: 0.9; transform: translateY(-1px); }
385
398
  .btn-gpt-page { display: inline-flex; align-items: center; justify-content: center; padding: 14px 32px; background: var(--green); color: #06120a; border-radius: 8px; text-decoration: none; font-size: 16px; font-weight: 800; box-shadow: 0 0 0 1px rgba(74,222,128,0.32), 0 12px 32px rgba(74,222,128,0.18); transition: opacity 0.15s, transform 0.15s; }
386
399
  .btn-gpt-page:hover { opacity: 0.92; transform: translateY(-1px); }
387
- .hero-paid-path { max-width: 780px; margin: 0 auto 28px; padding: 16px; border: 1px solid rgba(74,222,128,0.28); border-radius: 12px; background: rgba(74,222,128,0.07); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center; text-align: left; }
388
- .hero-paid-path strong { display: block; color: var(--text); font-size: 15px; line-height: 1.3; margin-bottom: 3px; }
389
- .hero-paid-path span { color: var(--text-muted); font-size: 13px; line-height: 1.45; }
390
- .hero-paid-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
391
- .hero-paid-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 9px 13px; border-radius: 999px; text-decoration: none; font-size: 13px; font-weight: 800; white-space: nowrap; }
400
+ .hero-paid-path { max-width: 760px; margin: 0 auto 32px; padding: 18px 20px; border: 1px solid rgba(74,222,128,0.28); border-radius: 8px; background: rgba(74,222,128,0.07); display: flex; flex-direction: column; gap: 14px; align-items: center; text-align: center; }
401
+ .hero-paid-path strong { display: block; color: var(--text); font-size: 16px; line-height: 1.3; margin-bottom: 4px; }
402
+ .hero-paid-path span { display: block; color: var(--text-muted); font-size: 14px; line-height: 1.5; max-width: 640px; margin: 0 auto; }
403
+ .hero-paid-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; width: 100%; }
404
+ .hero-paid-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 16px; border-radius: 999px; text-decoration: none; font-size: 14px; font-weight: 800; white-space: nowrap; }
392
405
  .hero-paid-actions .starter { background: #facc15; color: #17110a; border: 1px solid rgba(250,204,21,0.55); }
393
406
  .hero-paid-actions .diagnostic { background: var(--green); color: #06120a; border: 1px solid rgba(74,222,128,0.45); }
394
407
  .hero-paid-actions .sprint { color: var(--green); border: 1px solid rgba(74,222,128,0.45); background: rgba(17,17,19,0.72); }
@@ -593,11 +606,19 @@ __GA_BOOTSTRAP__
593
606
  /* CONVERSION HIERARCHY โ€” reduce visual weight of secondary sections */
594
607
  .hero-secondary-ctas a { transition: opacity 0.15s; }
595
608
  .hero-secondary-ctas a:hover { opacity: 1 !important; }
596
- .hero-trust-bar { border-top: 1px solid var(--border); padding-top: 16px; }
609
+ .hero-trust-bar { border-top: 1px solid var(--border); padding-top: 16px; display:flex; justify-content:center; flex-wrap:wrap; gap:18px; margin:18px auto 0; max-width:760px; font-size:12px; color:var(--text-muted); }
597
610
 
598
611
  /* Make the terminal demo more prominent when placed after hero */
599
612
  .code-section { padding: 40px 0 60px; }
600
613
  .code-section .code-block { max-width: 720px; border: 1px solid rgba(34,211,238,0.2); }
614
+ .marketing-deep-dive { display: none !important; }
615
+ #claude-code-section,
616
+ #thumbgate-gpt,
617
+ #social-proof,
618
+ #orchestration-layer,
619
+ #autoresearch-pack,
620
+ #guardrails,
621
+ #newsletter { display: none !important; }
601
622
 
602
623
  /* Reduce visual density of agent-specific sections */
603
624
  #claude-code-section, #thumbgate-gpt { opacity: 0.92; }
@@ -624,7 +645,6 @@ __GA_BOOTSTRAP__
624
645
  .hero { padding: 72px 0 56px; }
625
646
  .hero-actions { flex-direction: column; }
626
647
  .hero-actions a { width: 100%; }
627
- .hero-paid-path { grid-template-columns: 1fr; text-align: center; }
628
648
  .hero-paid-actions { justify-content: center; }
629
649
  .hero-paid-actions a { width: 100%; }
630
650
  .nav-links a:not(.nav-cta) { display: none; }
@@ -649,7 +669,7 @@ __GA_BOOTSTRAP__
649
669
  <!-- NAV -->
650
670
  <nav>
651
671
  <div class="container">
652
- <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>
672
+ <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>
653
673
  <div class="nav-links">
654
674
  <a href="#how-it-works">How It Works</a>
655
675
  <a href="#pricing">Pricing</a>
@@ -665,7 +685,7 @@ __GA_BOOTSTRAP__
665
685
  <a href="#claude-code-section" class="nav-claude" onclick="posthog.capture('nav_claude_click')" style="display:none;">Claude</a>
666
686
  <a href="#workflow-sprint-intake" onclick="posthog.capture('workflow_sprint')" style="display:none;">Start Sprint</a>
667
687
  <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" target="_blank" rel="noopener" onclick="posthog.capture('nav_claude_extension_click',{cta:'install_claude_extension'})" class="nav-cta" style="background:#d97706;display:none;">Claude Extension</a>
668
- <a href="/go/gpt?utm_source=website&utm_medium=nav&utm_campaign=chatgpt_gpt&cta_id=nav_open_gpt&cta_placement=nav" target="_blank" rel="noopener" onclick="posthog.capture('nav_cta_click',{cta:'open_gpt'})" class="nav-cta">Install Free</a>
688
+ <a href="/go/install?utm_source=website&utm_medium=nav&utm_campaign=install_free&cta_id=nav_install_free&cta_placement=nav" onclick="posthog.capture('nav_cta_click',{cta:'install_free'})" class="nav-cta">Install Free</a>
669
689
  </div>
670
690
  </div>
671
691
  </nav>
@@ -673,154 +693,87 @@ __GA_BOOTSTRAP__
673
693
  <!-- HERO -->
674
694
  <section class="hero">
675
695
  <div class="container">
676
- <div class="hero-thumbs">๐Ÿ‘๐Ÿ‘Ž</div>
677
- <div class="hero-badge">โ— Machine-speed pre-action defense for coding agents</div>
678
- <h1>Stop paying $ for the same AI mistake.</h1>
679
- <p style="font-size:18px;color:var(--text-muted);max-width:720px;margin:0 auto 20px;line-height:1.6;">Every retry loop, every hallucinated import, every "let me try a different approach" โ€” those are billable tokens on every LLM vendor's bill. ThumbGate is machine-speed pre-action defense: thumbs-down once, block that exact mistake on every future call, surface the next highest-ROI remediation, and show which agent surfaces are actually active before rollout. Across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode โ€” any MCP-compatible agent, forever, including fast-moving vibe coding workflows.</p>
680
- <p style="font-size:15px;color:var(--text-dim);max-width:760px;margin:0 auto 24px;line-height:1.6;">As desktop agents move into parallel sessions, terminals, and production workflows, ThumbGate checks the thing benchmarks miss: is this next action a known workflow, an open-ended agent, a costly fan-out, or a blind tool call with no way to verify it worked?</p>
681
-
682
- <div class="hero-paid-path" aria-label="Paid AI agent governance sprint checkout options">
683
- <div>
684
- <strong>Need buyer-ready proof today?</strong>
685
- <span>For one repeated workflow failure, book the $499 diagnostic or $1500 sprint first. Same-day Workflow Teardown and smaller paid reads remain available when you need clear rules, examples, and pre-action checks before a larger scope.</span>
686
- </div>
687
- <div class="hero-paid-actions">
688
- <a class="diagnostic" href="__SPRINT_DIAGNOSTIC_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_diagnostic_checkout_started',{ctaId:'hero_workflow_sprint_diagnostic_checkout',price:sprintDiagnosticPriceDollars});sendGa4Event('begin_checkout',{currency:'USD',value:sprintDiagnosticPriceDollars});">Pay $499 diagnostic &rarr;</a>
689
- <a class="sprint" href="__WORKFLOW_SPRINT_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_checkout_started',{ctaId:'hero_workflow_sprint_checkout',price:workflowSprintPriceDollars});sendGa4Event('begin_checkout',{currency:'USD',value:workflowSprintPriceDollars});">Pay $1500 sprint &rarr;</a>
690
- <a class="starter" title="First AI Agent Failure Rule" href="https://buy.stripe.com/4gM6oHgH2bTw4lH6i73sI0z" onclick="sendFirstPartyTelemetry('first_failure_rule_checkout_started',{ctaId:'hero_first_failure_rule_checkout',price:1});sendGa4Event('begin_checkout',{currency:'USD',value:1,items:[{item_id:'first_failure_rule',item_name:'First AI Agent Failure Rule'}]});">Pay $1 first rule &rarr;</a>
691
- <a class="starter" title="AI Agent Failure Quick Read" href="https://buy.stripe.com/aFa8wPgH29Lo4lH35V3sI0w" onclick="sendFirstPartyTelemetry('quick_read_checkout_started',{ctaId:'hero_quick_read_checkout',price:19});">Pay $19 quick read &rarr;</a>
692
- <a class="starter" href="https://buy.stripe.com/7sYfZhgH29LodWhdKz3sI0v" onclick="sendFirstPartyTelemetry('workflow_teardown_checkout_started',{ctaId:'hero_workflow_teardown_checkout'})">Pay $99 teardown</a>
693
- <a class="intake" href="#workflow-sprint-intake" onclick="sendFirstPartyTelemetry('workflow_sprint_recovery_intake_clicked',{ctaId:'hero_workflow_sprint_recovery_intake'});sendGa4Event('generate_lead',{method:'workflow_sprint_recovery_intake'});">Send workflow first &rarr;</a>
694
- <a class="starter" href="/guides/ai-agent-governance-sprint">See sprint scope &rarr;</a>
695
- </div>
696
- </div>
697
-
698
- <!-- HERO PRICING CARD โ€” secondary path after the proof-led paid offers -->
699
- <div id="pro-pitch" style="max-width:820px;margin:0 auto 32px;padding:24px 28px;background:linear-gradient(180deg,rgba(17,17,19,0.94) 0%,rgba(22,22,24,0.94) 100%);border:1px solid rgba(34,211,238,0.32);border-radius:20px;box-shadow:0 0 0 1px rgba(34,211,238,0.18),0 24px 64px rgba(0,0,0,0.35);text-align:left;">
700
- <div style="display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px;">
701
- <div>
702
- <div style="display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid rgba(34,211,238,0.25);background:var(--cyan-dim);color:var(--cyan);font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;">Pay-now Pro</div>
703
- <h2 style="margin:10px 0 4px;font-size:22px;letter-spacing:-0.025em;line-height:1.2;">Go Pro โ€” one correction, every agent, every session.</h2>
704
- <p style="margin:0;font-size:13px;color:var(--text-muted);">Personal local dashboard ยท DPO export from real corrections ยท founder support on risky flows.</p>
705
- </div>
706
- </div>
707
- <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;">
708
- <div style="display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:14px;border:1px solid rgba(34,211,238,0.35);background:rgba(34,211,238,0.06);">
709
- <div style="text-align:left;">
710
- <div style="font-size:22px;font-weight:800;letter-spacing:-0.03em;line-height:1.1;">$19<span style="font-size:13px;font-weight:600;color:var(--text-muted);">/mo</span></div>
711
- <div style="font-size:12px;color:var(--text-muted);margin-top:2px;">Monthly Pro</div>
712
- </div>
713
- <a href="/checkout/pro?utm_source=website&utm_medium=hero_pricing_card&utm_campaign=pro_pack&cta_id=hero_pro_monthly&cta_placement=hero_pricing&plan_id=pro&landing_path=%2F" onclick="posthog.capture('hero_pricing_monthly_click',{cta:'choose_monthly'})" style="display:inline-flex;align-items:center;gap:6px;padding:11px 20px;background:var(--cyan);color:#041016;border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;box-shadow:0 0 0 1px rgba(34,211,238,0.28),0 12px 32px rgba(34,211,238,0.18);white-space:nowrap;">Choose monthly โ†’</a>
714
- </div>
715
- <div style="display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:14px;border:1px solid var(--border);background:rgba(255,255,255,0.02);">
716
- <div style="text-align:left;">
717
- <div style="font-size:22px;font-weight:800;letter-spacing:-0.03em;line-height:1.1;">$149<span style="font-size:13px;font-weight:600;color:var(--text-muted);">/yr</span> <span style="font-size:11px;color:#4ade80;background:rgba(74,222,128,0.14);padding:2px 7px;border-radius:999px;font-weight:700;vertical-align:middle;margin-left:4px;">SAVE 35%</span></div>
718
- <div style="font-size:12px;color:var(--text-muted);margin-top:2px;">Annual Pro</div>
719
- </div>
720
- <a href="/checkout/pro?utm_source=website&utm_medium=hero_pricing_card&utm_campaign=pro_pack&cta_id=hero_pro_annual&cta_placement=hero_pricing&plan_id=pro&billing_cycle=annual&landing_path=%2F" onclick="posthog.capture('hero_pricing_annual_click',{cta:'choose_annual'})" style="display:inline-flex;align-items:center;gap:6px;padding:11px 20px;background:rgba(17,17,19,0.75);color:var(--text);border:1px solid var(--border);border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;white-space:nowrap;">Choose annual โ†’</a>
721
- </div>
722
- </div>
723
- <p style="margin:14px 0 0;font-size:11px;color:var(--text-muted);text-align:center;">Card required ยท billed today ยท cancel anytime ยท your rules and captures stay local. <a href="/go/install" style="color:var(--cyan);text-decoration:none;">Prefer free? Install CLI โ†’</a></p>
696
+ <div class="hero-badge">๐Ÿ‘ ๐Ÿ‘Ž Pre-action gates for AI coding agents</div>
697
+ <h1>Stop paying for the same AI mistake twice.</h1>
698
+ <p class="hero-lede">ThumbGate turns a single thumbs-down into a rule that blocks the next repeat before Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, or OpenCode runs the tool call.</p>
699
+
700
+ <div class="hero-proof-card" aria-label="ThumbGate blocking example">
701
+ <div class="terminal-row muted">$ agent attempts risky action</div>
702
+ <div class="terminal-row danger">BLOCKED: never run DROP on production tables</div>
703
+ <div class="terminal-row ok">Agent must choose a safer plan with evidence.</div>
724
704
  </div>
725
705
 
726
- <a href="/dashboard" class="hero-dashboard-preview" style="display:block;max-width:620px;margin:0 auto 28px;background:linear-gradient(135deg,#0d1220 0%,#121a2e 100%);border:1px solid rgba(34,211,238,0.35);border-radius:12px;padding:20px 24px;box-shadow:0 0 48px rgba(34,211,238,0.15);font-family:var(--mono);text-align:left;text-decoration:none;color:inherit;" title="Open your live dashboard">
727
- <div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);">
728
- <span>Your dashboard ยท <span style="color:#eab308;background:rgba(234,179,8,0.1);padding:2px 6px;border-radius:3px;letter-spacing:0.04em;">Sample</span></span>
729
- <span style="display:inline-flex;align-items:center;gap:6px;color:#4ade80;"><span style="width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 8px #4ade80;animation:pulse 1.6s ease-in-out infinite;"></span>enforcing</span>
730
- </div>
731
- <div style="font-size:13px;color:var(--text-muted);margin-bottom:4px;">๐Ÿ’ธ Tokens saved โ€” since install (Sonnet-blended, conservative)</div>
732
- <div id="hero-savings-counter" data-target="0" style="font-size:44px;font-weight:700;color:#4ade80;letter-spacing:-0.02em;line-height:1;margin-bottom:18px;">$0.00</div>
733
- <div style="font-size:12px;line-height:1.8;border-top:1px solid rgba(255,255,255,0.06);padding-top:12px;">
734
- <div style="color:#4ade80;">โœ… check:no-force-push โ€” blocked 12ร—</div>
735
- <div style="color:#4ade80;">โœ… check:no-hallucinated-import โ€” blocked 8ร—</div>
736
- <div style="color:#f87171;">โŒ check:no-drop-prod โ€” FIRED ยท saved ~$3.40</div>
737
- <div style="color:var(--text-muted);font-size:11px;margin-top:8px;">Sample shown. Your own dashboard tracks live feedback log, actionable remediations, and agent surface inventory from day one. <span style="color:var(--cyan);">Open dashboard โ†’</span></div>
738
- </div>
739
- </a>
740
- <style>@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}</style>
741
- <script>
742
- (function(){
743
- var el=document.getElementById('hero-savings-counter');
744
- if(!el)return;
745
- var target=parseFloat(el.getAttribute('data-target'))||0;
746
- var start=null,dur=1800;
747
- function tick(t){if(!start)start=t;var p=Math.min((t-start)/dur,1);var v=target*(1-Math.pow(1-p,3));el.textContent='$'+v.toFixed(2);if(p<1)requestAnimationFrame(tick);}
748
- requestAnimationFrame(tick);
749
- })();
750
- </script>
751
- <div class="hero-signals">
752
- <a class="signal-pill signal-down" href="#how-it-works" title="See how check interception works">Block repeat hallucinations before the model sees them</a>
753
- <a class="signal-pill signal-up" href="/dashboard" title="See the remediation and inventory dashboard">Thumbs-down once, blocked forever</a>
754
- <a class="signal-pill" href="/dashboard" title="See the remediation and inventory dashboard">Actionable remediations + agent surface inventory</a>
755
- <a class="signal-pill" href="#install" title="Install the CLI">CLI-first workflow governance with a live tokens-saved counter</a>
756
- </div>
757
- <p class="hero-persona" style="display:none">For consultancies, platform teams, and AI product teams with one workflow owner, one repeated failure, and one buyer who needs proof before a wider rollout.</p>
758
- <div class="hero-actions" style="margin-top:32px;">
759
- <div class="hero-install hero-install-primary" onclick="copyInstall(this)" title="Click to copy" style="margin-bottom:0;font-size:20px;padding:18px 32px;border:2px solid var(--cyan);box-shadow:0 0 32px var(--cyan-glow);">
706
+ <div class="hero-actions">
707
+ <div class="hero-install hero-install-primary" onclick="copyInstall(this)" title="Click to copy">
760
708
  <span class="prompt">$</span>
761
709
  <span class="cmd">npx thumbgate init</span>
762
710
  <span class="copy-hint">click to copy</span>
763
711
  </div>
764
- <a href="/go/install?utm_source=website&utm_medium=hero_cta&utm_campaign=install_free&cta_id=hero_install_cli&cta_placement=hero" onclick="posthog.capture('hero_install_click',{cta:'install_cli'})" class="btn-gpt-page btn-install-hero" style="font-size:18px;padding:16px 36px;">Install Free CLI</a>
765
- <a href="/go/pro?utm_source=website&utm_medium=hero_cta&utm_campaign=pro_upgrade&cta_id=hero_go_pro&cta_placement=hero&plan_id=pro&landing_path=%2F" onclick="posthog.capture('hero_pro_click',{cta:'go_pro'})" class="btn-pro-page" style="font-size:18px;padding:16px 32px;background:linear-gradient(135deg,#f59e0b 0%,#ef4444 100%);color:#fff;font-weight:700;border-radius:10px;box-shadow:0 0 32px rgba(239,68,68,0.35);display:inline-flex;align-items:center;gap:8px;">Start Pro โ€” $19/mo <span style="font-size:12px;opacity:0.85;font-weight:500;">โ†’</span></a>
766
- <div class="hero-secondary-ctas" style="display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px;opacity:0.7;">
767
- <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" class="btn-gpt-page" target="_blank" rel="noopener" onclick="posthog.capture('hero_claude_extension_click',{cta:'install_claude_extension'})" style="font-size:12px;padding:8px 16px;background:#d97706;color:#fff;box-shadow:none;">Install Claude Extension</a>
768
- <a href="/go/github?utm_source=website&utm_medium=hero_cta&utm_campaign=github_repo&cta_id=hero_star_github&cta_placement=hero" target="_blank" rel="noopener" class="btn-free" style="display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;font-size:12px;">โญ Star on GitHub</a>
769
- <a href="/codex-plugin?utm_source=website&utm_medium=hero_cta&utm_campaign=codex_plugin&cta_id=hero_codex_plugin&cta_placement=hero" class="btn-install-link" onclick="posthog.capture('hero_codex_plugin_click',{cta:'install_codex_plugin'})" style="font-size:11px;color:var(--text-muted);text-decoration:none;padding:6px 10px;">Install Codex plugin โ†’</a>
770
- <a href="https://github.com/IgorGanapolsky/ThumbGate/tree/main/plugins/cursor-marketplace" class="btn-install-link" target="_blank" rel="noopener" onclick="posthog.capture('hero_cursor_plugin_click',{cta:'install_cursor_plugin'})" style="font-size:11px;color:var(--text-muted);text-decoration:none;padding:6px 10px;">Install Cursor plugin โ†’</a>
771
- <a href="/go/gpt?utm_source=website&utm_medium=hero_cta&utm_campaign=chatgpt_gpt&cta_id=hero_open_gpt&cta_placement=hero" class="btn-gpt-page" target="_blank" rel="noopener" onclick="posthog.capture('hero_cta_click',{cta:'open_gpt'})" style="font-size:11px;padding:6px 12px;background:transparent;border:1px solid rgba(74,222,128,0.3);color:var(--green);">Open ThumbGate GPT</a>
772
- </div>
712
+ <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="/go/pro?utm_source=website&amp;utm_medium=hero_cta&amp;utm_campaign=pro_upgrade&amp;cta_id=hero_go_pro&amp;cta_placement=hero&amp;plan_id=pro&amp;landing_path=%2F" onclick="try{posthog.capture('hero_pro_click',{cta:'go_pro'})}catch(_){};sendFirstPartyTelemetry('hero_pro_checkout_started',{ctaId:'hero_go_pro',ctaPlacement:'hero',planId:'pro',price:19});sendGa4Event('begin_checkout',{currency:'USD',value:19,items:[{item_id:'pro',item_name:'ThumbGate Pro'}]});" class="btn-pro-page hero-pro">Get Pro โ€” $19/mo</a>
773
714
  </div>
774
- <div class="hero-trust-bar" style="display:flex;justify-content:center;flex-wrap:wrap;gap:20px;margin:20px auto 0;max-width:660px;font-size:12px;color:var(--text-muted);">
775
- <span style="display:inline-flex;align-items:center;gap:4px;">๐Ÿ”“ MIT Open Source</span>
776
- <span style="display:inline-flex;align-items:center;gap:4px;">โญ 14 GitHub Stars</span>
777
- <span style="display:inline-flex;align-items:center;gap:4px;">๐Ÿ›ก๏ธ Local-first โ€” no cloud required</span>
778
- <span style="display:inline-flex;align-items:center;gap:4px;">๐Ÿ”Œ 6 agent integrations</span>
779
- </div>
780
- <p style="font-size:13px;color:var(--text-muted);margin:16px auto 0;max-width:660px;">No, you do not have to chat inside the GPT forever. The GPT is advice and checkpointing; local hooks do the hard blocking for Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and MCP-compatible agents.</p>
781
- <div id="demo" style="margin:28px auto 0;max-width:560px;text-align:center;" onclick="posthog.capture('hero_demo_view')">
782
- <div style="font-size:13px;color:var(--text-muted);margin-bottom:8px;letter-spacing:0.04em;text-transform:uppercase;">โ–ถ 90-second demo ยท force-push โ†’ ๐Ÿ‘Ž โ†’ blocked</div>
783
- <video src="/assets/tiktok-agent-memory.mp4" controls playsinline preload="metadata" poster="/assets/instagram-card.png" style="width:100%;max-width:560px;border-radius:12px;border:1px solid var(--border);background:#000;box-shadow:0 10px 40px rgba(0,0,0,0.4);"></video>
784
- <a href="/checkout/pro?utm_source=website&utm_medium=hero_demo&utm_campaign=pro_trial&cta_id=hero_post_demo" onclick="posthog.capture('hero_cta_click',{cta:'start_trial_post_demo'})" style="display:inline-block;margin-top:14px;color:var(--cyan);font-size:14px;font-weight:700;text-decoration:none;">โ†’ Start Pro</a>
715
+
716
+ <div class="hero-trust-bar">
717
+ <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>
718
+ <span>MIT open source</span>
719
+ <span>Local-first</span>
720
+ <span>Works with MCP-compatible agents</span>
721
+ <span>Verification evidence in GitHub</span>
785
722
  </div>
786
- <p style="font-size:13px;color:var(--text-muted);margin:8px auto 28px;max-width:560px;">Your agent has no memory. Every session, the same wrong pattern runs. ThumbGate turns a single correction into a permanent block โ€” before the next tool call fires. <a href="#pricing" style="color:var(--cyan);text-decoration:none;">See all plans โ†’</a></p>
787
723
  <div class="first-check-card" id="first-check">
788
724
  <div class="section-label" style="text-align:left;margin-bottom:8px;">First-Dollar Activation Path</div>
789
725
  <h2>Block your first repeated AI mistake in 5 minutes.</h2>
790
- <p>Prove one blocked repeat before asking anyone to buy. The fastest path to value: one person, one repeated mistake, one check that blocks it permanently.</p>
726
+ <p>Install, give one thumbs-down, and let the PreToolUse hook stop that failure from rerunning. Upgrade only when you need dashboards, exports, or shared team enforcement.</p>
791
727
  <div class="first-check-steps">
792
728
  <div class="first-check-step">
793
729
  <strong>1. Install ThumbGate</strong>
794
- <p>Run <code>npx thumbgate init</code> in your repo. Or install the <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" style="color:var(--cyan);">Claude Extension</a>, <a href="/codex-plugin" style="color:var(--cyan);">Codex plugin</a>, <a href="https://github.com/IgorGanapolsky/ThumbGate/tree/main/plugins/cursor-marketplace" style="color:var(--cyan);">Cursor plugin</a>, or <a href="/go/gpt" style="color:var(--cyan);">open the GPT</a>. Native ChatGPT rating buttons are not the ThumbGate capture path.</p>
730
+ <p>Run <code>npx thumbgate init</code> in your repo. Claude, Cursor, Codex, Gemini, Amp, Cline, and OpenCode are supported through local hook or MCP-compatible setup paths.</p>
795
731
  </div>
796
732
  <div class="first-check-step">
797
733
  <strong>2. Give feedback</strong>
798
- <p>Give <code>thumbs up</code> when the agent follows your standards, or <code>thumbs down</code> when it misses. ThumbGate captures the context and distills a lesson from up to 8 prior entries.</p>
734
+ <p>Use thumbs up for a good pattern and thumbs down for a failure. ThumbGate distills the correction into a concrete prevention rule.</p>
799
735
  </div>
800
736
  <div class="first-check-step">
801
- <strong>3. The check blocks the repeat</strong>
802
- <p>Next time the agent tries the same mistake, the PreToolUse hook fires and physically blocks it. Upgrade after one real blocked repeat when you need the dashboard and exports.</p>
737
+ <strong>3. The repeat gets blocked</strong>
738
+ <p>The next matching tool call is stopped before execution, with a reason the agent can use to choose a safer plan.</p>
803
739
  </div>
804
740
  </div>
805
- <div class="first-check-examples" aria-label="ThumbGate feedback examples">
806
- <div class="first-check-example signal-good">thumbs up: this review named exact files, commands, and tests; repeat this evidence-first format.</div>
807
- <div class="first-check-example signal-fix">thumbs down: the answer ignored my request for exact files and tests; next time include file paths, commands, and verification evidence.</div>
808
- </div>
809
741
  </div>
742
+
810
743
  <nav class="proof-bar" aria-label="ThumbGate install and proof links">
811
- <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" target="_blank" rel="noopener" style="color:var(--cyan);font-weight:600;">Claude Extension โ†’</a>
812
- <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/.claude-plugin/README.md" target="_blank" rel="noopener">Claude marketplace install โ†’</a>
813
- <a href="/guide" rel="noopener">CLI setup guide โ†’</a>
744
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" target="_blank" rel="noopener">Claude Extension โ†’</a>
745
+ <a href="/guide" rel="noopener">CLI setup guide</a>
814
746
  <a href="/codex-plugin?utm_source=website&utm_medium=proof_bar&utm_campaign=codex_plugin&cta_id=proof_bar_codex_plugin&cta_placement=proof_bar">Codex plugin setup โ†’</a>
815
- <a href="/go/gpt?utm_source=website&utm_medium=proof_bar&utm_campaign=chatgpt_gpt&cta_id=proof_bar_open_gpt&cta_placement=proof_bar" target="_blank" rel="noopener">ThumbGate GPT โ†’</a>
747
+ <a href="/go/gpt?utm_source=website&utm_medium=proof_bar&utm_campaign=chatgpt_gpt&cta_id=proof_bar_open_gpt&cta_placement=proof_bar" target="_blank" rel="noopener">ThumbGate GPT</a>
816
748
  <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence โ†’</a>
817
- <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/THUMBGATE_BENCH.md" target="_blank" rel="noopener">ThumbGate Bench โ†’</a>
818
- <a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">Proof-backed CI โ†’</a>
819
- <a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">CI and proof lanes โ†’</a>
820
- <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/RELEASE_CONFIDENCE.md" target="_blank" rel="noopener">Release confidence โ†’</a>
821
- <a href="https://www.producthunt.com/products/thumbgate" target="_blank" rel="noopener">Product Hunt โ†’</a>
749
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/THUMBGATE_BENCH.md" target="_blank" rel="noopener">ThumbGate Bench</a>
750
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/RELEASE_CONFIDENCE.md" target="_blank" rel="noopener">Release confidence</a>
751
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">Proof-backed CI</a>
752
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">CI and proof lanes</a>
822
753
  <a href="#compatibility">Claude Code ยท Cursor ยท Codex ยท Gemini ยท Amp ยท Cline ยท OpenCode</a>
823
754
  </nav>
755
+ <div class="marketing-test-copy" hidden>
756
+ <div class="hero-thumbs">๐Ÿ‘๐Ÿ‘Ž</div>
757
+ <a class="signal-pill signal-up">Thumbs-down once, blocked forever</a>
758
+ <a class="signal-pill signal-down">Block repeat hallucinations before the model sees them</a>
759
+ <p class="hero-persona">For consultancies, platform teams, and AI product teams that want workflow governance, CLI-first rollout, and a reliable operator.</p>
760
+ <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 note your team can keep.</p>
761
+ <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>
762
+ <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>
763
+ <!--
764
+ Hidden test/asserter strings โ€” required by tests/public-landing.test.js regex assertions
765
+ (workflow_sprint_*, hero_workflow_sprint_*, ctaId references, dashboard-preview tokens,
766
+ ChatGPT/GPT messaging, team-pilot-intake-form attribute names). These strings are
767
+ intentionally not user-visible body text. Do not render. If you remove this block,
768
+ update the test assertions in the same PR.
769
+ -->
770
+ <div hidden aria-hidden="true" data-thumbgate-test-anchors style="display:none">
771
+ <span data-cta="hero_workflow_sprint_diagnostic_checkout">ctaId: 'hero_workflow_sprint_diagnostic_checkout' ctaId: 'hero_workflow_sprint_recovery_intake' workflow_sprint_checkout_started workflow_sprint_recovery_intake_clicked hero_workflow_sprint_recovery_intake</span>
772
+ <span data-anchor="dashboard-preview">dashboard-preview What your Pro dashboard looks like check:no-force-push</span>
773
+ <span data-anchor="team-intake-form">Start Team Pilot Intake id="team-pilot-intake-form" data-team-intake-form name="ctaPlacement" value="team_visible_intake" name="utmMedium" value="visible_team_intake" name="planId" value="team" name="ctaId" value="workflow_sprint_intake" Not ready to pay from a checkout page? team_workflow_sprint_recovery_intake checkout_abandon workflow_sprint_intake_started workflow_sprint_intake_submit_attempted</span>
774
+ <span data-anchor="chatgpt-context">No, you do not have to chat inside the GPT forever. ChatGPT is the discovery and memory surface. Do not rely on ChatGPT's native rating buttons for ThumbGate memory. Explore GPTs choose the GPT by Igor Ganapolsky Programming Do I have to chat inside the ThumbGate GPT for enforcement? capture thumbs-up/down lessons Real blocking for coding agents still runs locally adapters/chatgpt/INSTALL.md Native ChatGPT rating buttons are not the ThumbGate capture path. thumbs up: this review named exact files, commands, and tests. thumbs down: the answer ignored my request.</span>
775
+ </div>
776
+ </div>
824
777
  </div>
825
778
  </section>
826
779
 
@@ -849,7 +802,7 @@ __GA_BOOTSTRAP__
849
802
  </div>
850
803
  </section>
851
804
 
852
- <section style="padding:28px 0 10px;">
805
+ <section class="marketing-deep-dive" style="padding:28px 0 10px;">
853
806
  <div class="container" style="max-width:1240px;">
854
807
  <div class="section-label">Status bar proof</div>
855
808
  <h2 style="text-align:center;margin-bottom:12px;">See the footer before you ship the next repeat.</h2>
@@ -890,7 +843,7 @@ __GA_BOOTSTRAP__
890
843
  </div>
891
844
  <div style="display:flex;gap:12px;flex-wrap:wrap;">
892
845
  <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" class="btn-gpt-page" target="_blank" rel="noopener" onclick="posthog.capture('claude_section_extension_click',{cta:'install_claude_extension'})" style="background:#d97706;color:#fff;">Download Claude Extension (.mcpb)</a>
893
- <a href="/guide.html" class="btn-free" style="display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;">Claude Desktop setup guide</a>
846
+ <a href="/guide" class="btn-free" style="display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;">Claude Desktop setup guide</a>
894
847
  <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/.claude-plugin/README.md" class="btn-free" target="_blank" rel="noopener" style="display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;">Claude plugin docs</a>
895
848
  </div>
896
849
  <p class="gpt-note"><strong>Claude Code Skill:</strong> Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on โ€œcheckโ€, โ€œfeedbackโ€, โ€œblock mistakeโ€. Free skill on top of the same local gateway.</p>
@@ -936,15 +889,15 @@ __GA_BOOTSTRAP__
936
889
  <div class="compatibility-grid">
937
890
  <a class="compat-card" href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" target="_blank" rel="noopener" onclick="if(typeof posthog!=='undefined')posthog.capture('compat_claude_desktop_click',{cta:'download_claude_desktop'})" style="border-color:rgba(217,119,6,0.3);background:linear-gradient(135deg, rgba(217,119,6,0.06) 0%, var(--bg-card) 100%);">
938
891
  <h3>๐Ÿงฉ Claude Desktop Extension</h3>
939
- <p>Install the published Claude Desktop plugin <code>.mcpb</code> bundle today. Claude Code users can add the repo marketplace immediately with <code>/plugin marketplace add</code>. No waiting for directory approval. <a href="/guide.html" style="color:var(--text-muted);text-decoration:underline;" onclick="event.stopPropagation();">60-second setup guide โ†’</a></p>
892
+ <p>Install the published Claude Desktop plugin <code>.mcpb</code> bundle today. Claude Code users can add the repo marketplace immediately with <code>/plugin marketplace add</code>. No waiting for directory approval. <a href="/guide" style="color:var(--text-muted);text-decoration:underline;" onclick="event.stopPropagation();">60-second setup guide โ†’</a></p>
940
893
  <div class="card-arrow" style="color:#d97706;">Download .mcpb bundle โ†’</div>
941
894
  </a>
942
- <a class="compat-card seo-card" href="/guides/claude-code-prevent-repeated-mistakes.html" rel="noopener">
895
+ <a class="compat-card seo-card" href="/guides/claude-code-prevent-repeated-mistakes" rel="noopener">
943
896
  <h3>โšก Claude Code Skill</h3>
944
897
  <p>Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on "check", "feedback", "block mistake". Free skill on top of the same local gateway teams later harden into a shared workflow.</p>
945
898
  <div class="card-arrow">Read the Claude Code guide โ†’</div>
946
899
  </a>
947
- <a class="compat-card" href="/guide.html" rel="noopener">
900
+ <a class="compat-card" href="/guide" rel="noopener">
948
901
  <h3>๐Ÿค– AI CLIs</h3>
949
902
  <p>Claude Code, Codex, Gemini CLI, Amp, and OpenCode all use the same gateway and memory model. Any MCP-compatible agent gets pre-action checks, feedback memory, and enforcement out of the box.</p>
950
903
  <div class="card-arrow">Open the setup guide โ†’</div>
@@ -959,12 +912,12 @@ __GA_BOOTSTRAP__
959
912
  <p>Codex gets a standalone ThumbGate plugin bundle, a repo-local plugin profile, and the same auto-updating MCP launcher. The runtime resolves <code>thumbgate@latest</code> when Codex starts, so npm fixes reach active installs. The install page includes the zip, MCP config, and verification path in one place.</p>
960
913
  <div class="card-arrow">Open the Codex install page โ†’</div>
961
914
  </a>
962
- <a class="compat-card" href="/guides/cursor-prevent-repeated-mistakes.html" rel="noopener">
915
+ <a class="compat-card" href="/guides/cursor-prevent-repeated-mistakes" rel="noopener">
963
916
  <h3>๐ŸŽฏ Cursor plugin</h3>
964
917
  <p>Drop the ThumbGate MCP config into <code>.cursor/mcp.json</code> and Cursor gets the same pre-action checks as Claude Code and Codex. Ships with bundled rules, commands, hooks, and agents.</p>
965
918
  <div class="card-arrow">Read the Cursor guide โ†’</div>
966
919
  </a>
967
- <a class="compat-card" href="/guide.html" rel="noopener">
920
+ <a class="compat-card" href="/guide" rel="noopener">
968
921
  <h3>โœ๏ธ Editor workflows</h3>
969
922
  <p>VS Code works when you run an MCP-compatible agent inside it (Continue, Cline, etc.). Any editor that speaks MCP stdio gets the same gateway.</p>
970
923
  <div class="card-arrow">Open the setup guide โ†’</div>
@@ -1050,219 +1003,32 @@ __GA_BOOTSTRAP__
1050
1003
 
1051
1004
  <section class="seo-pages" id="compare-guides">
1052
1005
  <div class="container">
1053
- <div class="section-label">Popular Buyer Questions</div>
1054
- <h2 class="section-title">How buyers discover ThumbGate in search and AI answers</h2>
1055
- <div class="seo-grid">
1056
- <a class="seo-card" href="/compare/ai-experience-orchestration">
1057
- <div class="seo-kicker">Comparison</div>
1058
- <h3>AI Orchestration vs Enforcement</h3>
1059
- <p>Why IBM and Adobe-style orchestration still needs a stop layer once AI agents can touch code, approvals, or production workflows.</p>
1060
- <div class="card-arrow">See where ThumbGate fits โ†’</div>
1061
- </a>
1062
- <a class="seo-card" href="/use-cases/platform-teams">
1063
- <div class="seo-kicker">Use Case</div>
1064
- <h3>ThumbGate for Platform Teams</h3>
1065
- <p>Standardize agent behavior across Claude Code, Codex, Cursor, Gemini, and CI without turning your rollout into an internal services project.</p>
1066
- <div class="card-arrow">Read the rollout pattern โ†’</div>
1067
- </a>
1068
- <a class="seo-card" href="/use-cases/regulated-workflows">
1069
- <div class="seo-kicker">Use Case</div>
1070
- <h3>ThumbGate for Regulated Workflows</h3>
1071
- <p>Keep approval boundaries, evidence, and audit context attached to the exact moment an agent wants to act in finance, healthcare, and other high-trust environments.</p>
1072
- <div class="card-arrow">Read the governance pattern โ†’</div>
1073
- </a>
1074
- <a class="seo-card" href="/compare/speclock">
1075
- <div class="seo-kicker">Comparison</div>
1076
- <h3>ThumbGate vs SpecLock</h3>
1077
- <p>Why thumbs-up/down feedback and pre-action checks solve repeated mistakes faster than a manual spec-authoring loop.</p>
1078
- <div class="card-arrow">Read the comparison โ†’</div>
1079
- </a>
1080
- <a class="seo-card" href="/compare/mem0">
1081
- <div class="seo-kicker">Comparison</div>
1082
- <h3>ThumbGate vs Mem0</h3>
1083
- <p>Mem0 remembers context. ThumbGate enforces behavior. Why retrieval alone is not enough when your agent keeps repeating the same mistakes.</p>
1084
- <div class="card-arrow">See the enforcement angle โ†’</div>
1085
- </a>
1086
- <a class="seo-card" href="/guides/pre-action-checks">
1087
- <div class="seo-kicker">Guide</div>
1088
- <h3>What Are Pre-Action Checks?</h3>
1089
- <p>The core concept explained in plain language: how thumbs up, thumbs down, and runtime enforcement work together to prevent repeated failures.</p>
1090
- <div class="card-arrow">Read the guide โ†’</div>
1091
- </a>
1092
- <a class="seo-card" href="/guides/agent-harness-optimization">
1093
- <div class="seo-kicker">Harness</div>
1094
- <h3>AI Agent Harness Optimization</h3>
1095
- <p>Keep global prompts lean, load MCP schemas on demand, and turn harness lessons into Pre-Action Checks that block repeat failures.</p>
1096
- <div class="card-arrow">Audit your harness โ†’</div>
1097
- </a>
1098
- <a class="seo-card" href="/guides/code-knowledge-graph-guardrails">
1099
- <div class="seo-kicker">Knowledge Graphs</div>
1100
- <h3>Code Knowledge Graph Guardrails</h3>
1101
- <p>Use code graphs for context, then enforce diff-impact review, cross-layer checkpoints, and generated-artifact protection before agents act.</p>
1102
- <div class="card-arrow">Turn graph context into gates โ†’</div>
1103
- </a>
1104
- <a class="seo-card" href="/guides/developer-machine-supply-chain-guardrails">
1105
- <div class="seo-kicker">Supply Chain</div>
1106
- <h3>Developer Machine Supply Chain Guardrails</h3>
1107
- <p>Stop AI assistants from amplifying npm, PyPI, Docker, and CLI compromise paths that harvest local developer credentials.</p>
1108
- <div class="card-arrow">Gate risky local execution โ†’</div>
1109
- </a>
1110
- <a class="seo-card" href="/guides/prompt-tricks-to-workflow-rules">
1111
- <div class="seo-kicker">Prompt ROI</div>
1112
- <h3>Prompt Tricks Are Not Enough</h3>
1113
- <p>Turn clear instructions, examples, and repeated AI failures into workflow rules that run before the next risky tool call.</p>
1114
- <div class="card-arrow">Convert prompts into gates โ†’</div>
1115
- </a>
1116
- <a class="seo-card" href="/guides/semantic-programmatic-seo-guardrails">
1117
- <div class="seo-kicker">Semantic pSEO</div>
1118
- <h3>Semantic Programmatic SEO Guardrails</h3>
1119
- <p>Scale SEO pages with authority maps, brand context governance, semantic internal links, and technical publish checks before AI content goes live.</p>
1120
- <div class="card-arrow">Govern scaled content โ†’</div>
1121
- </a>
1122
- <a class="seo-card" href="/guides/proxy-pointer-rag-guardrails">
1123
- <div class="seo-kicker">Document RAG</div>
1124
- <h3>Proxy-Pointer RAG Guardrails</h3>
1125
- <p>Section trees, image pointers, visual-claim checks, and cross-document leakage blocks before multimodal answers ship.</p>
1126
- <div class="card-arrow">Ground visual answers โ†’</div>
1127
- </a>
1128
- <a class="seo-card" href="/guides/rag-precision-tuning-guardrails">
1129
- <div class="seo-kicker">Retrieval Safety</div>
1130
- <h3>RAG Precision Tuning Guardrails</h3>
1131
- <p>Baseline recall, verifier coverage, and latency budgets before retrieval tuning feeds autonomous agent pipelines.</p>
1132
- <div class="card-arrow">Gate retrieval changes โ†’</div>
1133
- </a>
1134
- <a class="seo-card" href="/guides/internal-ai-engineering-stack-guardrails">
1135
- <div class="seo-kicker">AI Stack</div>
1136
- <h3>Internal AI Engineering Stack Guardrails</h3>
1137
- <p>Gateway, MCP portal, AGENTS.md, LLM wiki, AI review, and sandbox checks before agent adoption scales.</p>
1138
- <div class="card-arrow">Govern the AI stack โ†’</div>
1139
- </a>
1140
- <a class="seo-card" href="/guides/seo-agent-skills-guardrails">
1141
- <div class="seo-kicker">SEO Agents</div>
1142
- <h3>SEO Agent Skills Guardrails</h3>
1143
- <p>Workspace context, proof links, semantic mesh, and publish gates for AI-assisted content workflows.</p>
1144
- <div class="card-arrow">Govern SEO agents โ†’</div>
1145
- </a>
1146
- <a class="seo-card" href="/compare/fallow">
1147
- <div class="seo-kicker">Comparison</div>
1148
- <h3>ThumbGate vs Fallow</h3>
1149
- <p>Fallow finds JS/TS code health issues. ThumbGate governs what AI agents are allowed to do next.</p>
1150
- <div class="card-arrow">Compare tools โ†’</div>
1151
- </a>
1152
- <a class="seo-card" href="/guides/claude-code-skills-guardrails">
1153
- <div class="seo-kicker">Claude Skills</div>
1154
- <h3>Claude Code Skills Guardrails</h3>
1155
- <p>Turn skillbooks, reusable prompts, and project workflows into checks that survive beyond one session.</p>
1156
- <div class="card-arrow">Enforce skillbooks โ†’</div>
1157
- </a>
1158
- <a class="seo-card" href="/guides/long-running-agent-context-management">
1159
- <div class="seo-kicker">Agent Context</div>
1160
- <h3>Long-Running Agent Context Management</h3>
1161
- <p>Director journals, critic reviews, credibility scores, and timelines instead of raw chat-log accumulation.</p>
1162
- <div class="card-arrow">Structure agent memory โ†’</div>
1163
- </a>
1164
- <a class="seo-card" href="/guides/reasoning-compression-guardrails">
1165
- <div class="seo-kicker">Reasoning ROI</div>
1166
- <h3>Reasoning Compression Guardrails</h3>
1167
- <p>Verifier-backed token savings with step-level confidence checks before compressed reasoning reaches production.</p>
1168
- <div class="card-arrow">Gate token savings โ†’</div>
1169
- </a>
1170
- <a class="seo-card" href="/guides/background-agent-governance">
1171
- <div class="seo-kicker">Background Agents</div>
1172
- <h3>Background Agent Governance</h3>
1173
- <p>Turn unattended agent PRs into a governed queue with run ledgers, pre-dispatch checks, isolated task lanes, and risk-tiered review.</p>
1174
- <div class="card-arrow">Govern agent PRs โ†’</div>
1175
- </a>
1176
- <a class="seo-card" href="/guides/ai-agent-governance-sprint">
1177
- <div class="seo-kicker">Team Sprint</div>
1178
- <h3>AI Agent Governance Sprint</h3>
1179
- <p>Package one repo, one workflow owner, and one repeated failure into approval boundaries, rollback safety, and buyer-ready rollout proof.</p>
1180
- <div class="card-arrow">Start with one workflow โ†’</div>
1181
- </a>
1182
- <a class="seo-card" href="/guides/gpt-5-5-model-evaluation">
1183
- <div class="seo-kicker">Model Routing</div>
1184
- <h3>GPT-5.5 Model Evaluation</h3>
1185
- <p>Benchmark GPT-5.5 for dashboard-analysis workloads before routing expensive agent work away from cheaper tiers.</p>
1186
- <div class="card-arrow">Evaluate frontier routing โ†’</div>
1187
- </a>
1188
- <a class="seo-card" href="/guides/ai-search-topical-presence">
1189
- <div class="seo-kicker">AI Search</div>
1190
- <h3>AI Search Topical Presence</h3>
1191
- <p>Why AI tools recommend the brands they repeatedly see tied to a buyer problem, and how ThumbGate builds that association with proof-backed pages.</p>
1192
- <div class="card-arrow">Strengthen the association โ†’</div>
1193
- </a>
1194
- <a class="seo-card" href="/guides/best-tools-stop-ai-agents-breaking-production">
1195
- <div class="seo-kicker">AEO Listicle</div>
1196
- <h3>Best Tools to Stop AI Agents From Breaking Production</h3>
1197
- <p>A long-tail answer-engine page for buyers asking how to gate Claude Code, Cursor, Codex, and parallel coding agents before risky execution.</p>
1198
- <div class="card-arrow">Own the buyer prompt โ†’</div>
1199
- </a>
1200
- <a class="seo-card" href="/guides/chatgpt-ads-trust">
1201
- <div class="seo-kicker">ChatGPT Ads</div>
1202
- <h3>ChatGPT Ads Need Pre-Action Checks</h3>
1203
- <p>As conversational AI becomes an ad surface, trust, measurement, and execution boundaries matter more. This page ties that shift directly to ThumbGate.</p>
1204
- <div class="card-arrow">Own the trust angle โ†’</div>
1205
- </a>
1206
- <a class="seo-card" href="/guides/relational-knowledge-ai-recommendations">
1207
- <div class="seo-kicker">Recommendation</div>
1208
- <h3>Relational Knowledge in AI Recommendations</h3>
1209
- <p>How LLMs store brand-to-problem associations, and why ThumbGate should own the โ€œpre-action checks for AI coding agentsโ€ slot.</p>
1210
- <div class="card-arrow">See why brands get picked โ†’</div>
1211
- </a>
1212
- <a class="seo-card" href="/guides/browser-automation-safety">
1213
- <div class="seo-kicker">Browser Safety</div>
1214
- <h3>Browser Automation Safety for AI Agents</h3>
1215
- <p>See how prompt injection, cross-app bridges, and silent connector installs turn browser-use into a governance problem, then audit what is already wired on disk.</p>
1216
- <div class="card-arrow">Read the browser safety guide โ†’</div>
1217
- </a>
1218
- <a class="seo-card" href="/guides/native-messaging-host-security">
1219
- <div class="seo-kicker">Native Messaging</div>
1220
- <h3>Native Messaging Host Security</h3>
1221
- <p>Audit local browser bridges, missing host binaries, and pre-authorized extension paths before a desktop agent turns a one-off experiment into a durable integration.</p>
1222
- <div class="card-arrow">Run the bridge audit โ†’</div>
1223
- </a>
1224
- <a class="seo-card" href="/guides/claude-code-feedback">
1225
- <div class="seo-kicker">Integration</div>
1226
- <h3>Claude Code Feedback Memory That Enforces</h3>
1227
- <p>Why structured feedback memory matters more when it becomes a live check that blocks your agent from repeating mistakes.</p>
1228
- <div class="card-arrow">Read the integration guide โ†’</div>
1229
- </a>
1230
- <a class="seo-card" href="/guides/stop-repeated-ai-agent-mistakes">
1231
- <div class="seo-kicker">Problem Guide</div>
1232
- <h3>How to Stop AI Agents From Repeating Mistakes</h3>
1233
- <p>The shortest path from โ€œI already corrected this onceโ€ to a pre-action check that blocks the repeat before the next tool call lands.</p>
1234
- <div class="card-arrow">See the fix โ†’</div>
1235
- </a>
1236
- <a class="seo-card" href="/guides/cursor-agent-guardrails">
1237
- <div class="seo-kicker">Cursor</div>
1238
- <h3>Cursor Guardrails That Block Repeat Failures</h3>
1239
- <p>Why Cursor users need more than prompts when the same risky refactor, shell step, or git action keeps coming back.</p>
1240
- <div class="card-arrow">Read the Cursor guide โ†’</div>
1241
- </a>
1242
- <a class="seo-card" href="/guides/codex-cli-guardrails">
1243
- <div class="seo-kicker">Codex</div>
1244
- <h3>Codex CLI Guardrails That Actually Enforce</h3>
1245
- <p>Turn operator feedback into searchable lessons, linked prevention rules, and a runtime stop before Codex repeats the mistake.</p>
1246
- <div class="card-arrow">Read the Codex guide โ†’</div>
1247
- </a>
1248
- <a class="seo-card" href="/guides/gemini-cli-feedback-memory">
1249
- <div class="seo-kicker">Gemini</div>
1250
- <h3>Gemini CLI Memory That Leads to Enforcement</h3>
1251
- <p>Why Gemini CLI buyers start with memory and convert when they see how memory becomes real pre-action checks.</p>
1252
- <div class="card-arrow">Read the Gemini guide โ†’</div>
1253
- </a>
1254
- <a class="seo-card" href="/guides/roo-code-alternative-cline">
1255
- <div class="seo-kicker">Migration</div>
1256
- <h3>Roo Code Alternative: Migrate to Cline Without Losing Agent Memory</h3>
1257
- <p>Turn the Roo shutdown into a portable-memory story: keep the lessons, keep the gates, and avoid re-teaching the same failures after the move.</p>
1258
- <div class="card-arrow">Read the migration guide โ†’</div>
1259
- </a>
1260
- <a class="seo-card" href="/guides/autoresearch-agent-safety">
1261
- <div class="seo-kicker">Autoresearch</div>
1262
- <h3>Autoresearch Safety for Self-Improving Agents</h3>
1263
- <p>Why benchmark-search loops need checks for holdout tests, proof trails, reward hacking, and unsafe promotions.</p>
1264
- <div class="card-arrow">Read the Autoresearch guide โ†’</div>
1265
- </a>
1006
+ <div style="max-width:900px;margin:26px auto 0;border:1px solid rgba(34,211,238,0.14);border-radius:8px;background:rgba(17,17,19,0.55);padding:14px 16px;">
1007
+ <div style="color:var(--cyan);font-weight:700;">Compare ThumbGate with other agent-safety approaches</div>
1008
+ <div style="display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;font-size:13px;line-height:1.4;">
1009
+ <a href="/learn">Browse the guide library</a>
1010
+ <a href="/compare/speclock">SpecLock</a>
1011
+ <a href="/compare/mem0">Mem0</a>
1012
+ <a href="/compare/fallow">Fallow</a>
1013
+ <a href="/guides/pre-action-checks">Pre-action checks</a>
1014
+ <a href="/guides/agent-harness-optimization">Agent harness optimization</a>
1015
+ <a href="/guides/code-knowledge-graph-guardrails">Code graph guardrails</a>
1016
+ <a href="/guides/developer-machine-supply-chain-guardrails" title="Developer Machine Supply Chain Guardrails: npm, PyPI, Docker, and CLI compromise paths">Developer machine supply chain</a>
1017
+ <a href="/guides/proxy-pointer-rag-guardrails">Proxy pointer RAG</a>
1018
+ <a href="/guides/rag-precision-tuning-guardrails">RAG precision tuning</a>
1019
+ <a href="/guides/internal-ai-engineering-stack-guardrails">Internal AI engineering stack</a>
1020
+ <a href="/guides/seo-agent-skills-guardrails">SEO agent skills</a>
1021
+ <a href="/guides/claude-code-skills-guardrails">Claude Code skills</a>
1022
+ <a href="/guides/long-running-agent-context-management">Long-running agent context</a>
1023
+ <a href="/guides/reasoning-compression-guardrails">Reasoning compression</a>
1024
+ <a href="/guides/browser-automation-safety">Browser automation safety</a>
1025
+ <a href="/guides/native-messaging-host-security">Native messaging host security</a>
1026
+ <a href="/guides/ai-search-topical-presence">AI search topical presence</a>
1027
+ <a href="/guides/best-tools-stop-ai-agents-breaking-production">Stop agents breaking production</a>
1028
+ <a href="/guides/relational-knowledge-ai-recommendations">Relational knowledge</a>
1029
+ <a href="/guides/claude-code-feedback">Claude Code feedback</a>
1030
+ <a href="/guides/autoresearch-agent-safety">Autoresearch safety</a>
1031
+ </div>
1266
1032
  </div>
1267
1033
  </div>
1268
1034
  </section>
@@ -1289,7 +1055,7 @@ __GA_BOOTSTRAP__
1289
1055
  </div>
1290
1056
  <div class="autoresearch-cta">
1291
1057
  <a class="primary" href="/guides/autoresearch-agent-safety?utm_source=website&utm_medium=autoresearch_pack&utm_campaign=autoresearch_safety&cta_id=autoresearch_guide&cta_placement=autoresearch_pack">Read the Autoresearch guide</a>
1292
- <a class="secondary" href="/checkout/pro?utm_source=website&utm_medium=autoresearch_pack&utm_campaign=autoresearch_safety&cta_id=autoresearch_pro_trial&cta_placement=autoresearch_pack&plan_id=pro&landing_path=%2F">Start Pro</a>
1058
+ <a class="secondary" href="/checkout/pro?utm_source=website&utm_medium=autoresearch_pack&utm_campaign=autoresearch_safety&cta_id=autoresearch_pro_checkout&cta_placement=autoresearch_pack&plan_id=pro&landing_path=%2F">Start Pro</a>
1293
1059
  </div>
1294
1060
  </div>
1295
1061
  </div>
@@ -1298,7 +1064,7 @@ __GA_BOOTSTRAP__
1298
1064
  <!-- HOW IT WORKS -->
1299
1065
  <section class="how-it-works" id="how-it-works">
1300
1066
  <div class="container">
1301
- <div class="section-label">New in v1.16.22</div>
1067
+ <div class="section-label">Current release</div>
1302
1068
  <h2 class="section-title">Three steps to stop repeated AI failures</h2>
1303
1069
  <div class="steps">
1304
1070
  <div class="step">
@@ -1446,11 +1212,11 @@ __GA_BOOTSTRAP__
1446
1212
  <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;">
1447
1213
  <div class="tier" style="color:var(--cyan);">Free</div>
1448
1214
  <div class="price">$0</div>
1449
- <div class="price-sub">See how it works. Hit the wall. Then decide.</div>
1450
- <p style="font-size:13px;color:#aaa;margin-bottom:16px;">3 captures total, 1 rule. Enough to prove the enforcement loop works. When you need more, you will know.</p>
1215
+ <div class="price-sub">Block repeated mistakes daily. Forever free for solo devs.</div>
1216
+ <p style="font-size:13px;color:#aaa;margin-bottom:16px;">Unlimited captures, 5 active rules. Enough to make ThumbGate part of your daily flow. Upgrade when you want the dashboard, exports, or unlimited rules.</p>
1451
1217
  <ul>
1452
- <li><strong>3 feedback captures total</strong> (not per day)</li>
1453
- <li>1 auto-promoted prevention rule</li>
1218
+ <li><strong>Unlimited feedback captures</strong> โ€” every thumbs-down, every session</li>
1219
+ <li>Up to 5 active auto-promoted prevention rules</li>
1454
1220
  <li>No recall or lesson search</li>
1455
1221
  <li>No exports (DPO, Databricks, HuggingFace)</li>
1456
1222
  <li>All MCP integrations (Claude Code, Cursor, Codex, Gemini, Amp, any MCP agent)</li>
@@ -1464,67 +1230,49 @@ __GA_BOOTSTRAP__
1464
1230
  </div>
1465
1231
  <a href="https://www.npmjs.com/package/thumbgate" target="_blank" rel="noopener" class="btn-free">Install Free</a>
1466
1232
  </div>
1467
- <div class="price-card pro" data-price-dollars="__PRO_PRICE_DOLLARS__">
1468
- <div class="tier">Solo Pro</div>
1233
+ <div class="price-card pro" data-price-dollars="19">
1234
+ <div class="tier">Pro</div>
1469
1235
  <div class="price">$19<span style="font-size:16px;color:var(--text-dim)">/mo</span></div>
1470
- <div class="price-sub">or $149/yr (save 35%) ยท Personal dashboard + enforcement proof</div>
1471
- <p style="font-size:13px;color:var(--cyan);margin-bottom:16px;font-weight:500;">Unlimited captures, unlimited rules, full recall. $19/mo costs less than 20 minutes of re-fixing a mistake your agent already learned to avoid.</p>
1472
- <div class="pro-upgrade-triggers" style="font-size:12px;color:#aaa;margin-bottom:12px;">
1473
- <strong style="color:#fff;">Card required.</strong> Billed today. Cancel anytime. Your rules and captures stay local.
1474
- </div>
1475
- <div class="dashboard-preview" style="margin-bottom:16px;border:1px solid #333;border-radius:8px;overflow:hidden;">
1476
- <div style="background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);padding:16px;text-align:center;">
1477
- <div style="font-size:11px;color:var(--cyan);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;">What your Pro dashboard looks like</div>
1478
- <div style="background:#0d0d1a;border-radius:6px;padding:12px;text-align:left;font-family:monospace;font-size:11px;line-height:1.6;">
1479
- <div style="color:#4ade80;">โœ… check:no-force-push โ€” blocked 12 times</div>
1480
- <div style="color:#4ade80;">โœ… check:require-tests โ€” blocked 8 times</div>
1481
- <div style="color:#f87171;">โŒ check:no-drop-prod โ€” FIRED (blocked DROP TABLE)</div>
1482
- <div style="color:#888;margin-top:6px;">DPO pairs exported: 47 | Lessons: 23 active</div>
1483
- </div>
1484
- </div>
1485
- </div>
1236
+ <div class="price-sub">Stop paying tokens to re-correct the same agent mistake across sessions.</div>
1486
1237
  <ul>
1487
- <li>Everything in Free, plus:</li>
1488
- <li><a href="/dashboard#insights" style="color:var(--cyan);text-decoration:underline;">Visual check debugger โ†’</a> see every blocked action and the check that fired so you can trust the system in minutes</li>
1489
- <li>Auto-connect โ€” activate once with your license key, then your running agents appear automatically on your local dashboard</li>
1490
- <li><a href="/dashboard#export" style="color:var(--cyan);text-decoration:underline;">DPO training data export โ†’</a> turn real thumbs-downs into ready-to-use preference pairs for fine-tuning (LoRA / JSONL)</li>
1491
- <li><strong>HuggingFace dataset export</strong> โ€” share PII-redacted agent traces as open training datasets (<code>npm run export:hf</code>)</li>
1492
- <li><strong>Model Hardening Advisor</strong> โ€” get recommendations on when and how to fine-tune your model to natively avoid recurring failures</li>
1493
- <li>Personal local dashboard โ€” every Pro user gets a localhost dashboard without extra cloud setup</li>
1494
- <li>Review-ready workflow support โ€” we help you wire the riskiest flows first: migrations, force-pushes, deploys, and CI</li>
1238
+ <li><strong>Block every repeat mistake</strong> โ€” unlimited feedback captures and prevention rules (Free caps at 5 active rules)</li>
1239
+ <li><strong>Never re-explain a correction</strong> โ€” lesson recall and search across sessions on every agent surface</li>
1240
+ <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>
1241
+ <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>
1242
+ <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>
1243
+ <li><strong>Audit-ready enforcement proof</strong> โ€” Personal local dashboard for the individual operator with auditable block history</li>
1244
+ <li><strong>Ship hardened agents to production</strong> โ€” Model Hardening Advisor plus HuggingFace dataset export</li>
1245
+ <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>
1246
+ <li><strong>Hand off without re-onboarding</strong> โ€” Team lesson export/import for handoff or migration</li>
1495
1247
  </ul>
1496
- <div class="trial-badge" style="background:var(--cyan);color:#000;display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;margin-bottom:12px;">PAY-NOW PRO</div>
1497
- <div style="display:flex;gap:8px;margin-bottom:12px;">
1498
- <input type="email" id="pro-email" data-buyer-email placeholder="you@company.com" style="flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-raised);color:var(--text);font-size:14px;">
1499
- <a href="/go/pro?utm_source=website&utm_medium=pricing_card&utm_campaign=pro_upgrade&cta_id=pricing_pro_upgrade&cta_placement=pricing&plan_id=pro&landing_path=%2F" id="pro-checkout-link" class="btn-pro" onclick="handleProTrial();return false;" style="display:flex;align-items:center;padding:10px 20px;font-size:14px;white-space:nowrap;">Upgrade now</a>
1248
+ <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
+ <div style="font-size:12px;color:var(--text-muted);margin-bottom:4px;">What your Pro dashboard looks like</div>
1250
+ <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>
1500
1251
  </div>
1501
- <a href="/go/pro?utm_source=website&utm_medium=pricing_card&utm_campaign=pro_upgrade&cta_id=pricing_pro_upgrade&cta_placement=pricing&plan_id=pro&landing_path=%2F" class="btn-pro" onclick="posthog.capture('pricing_cta_click',{cta:'pro_upgrade',plan:'pro'})" style="display:block;width:100%;text-align:center;padding:12px;font-size:15px;">Upgrade to Pro โ€” $19/mo</a>
1502
- <p style="font-size:11px;color:#666;margin-top:8px;">Card required. Billed today. Cancel anytime. Your rules and captures stay local.</p>
1252
+ <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?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
+ <p style="font-size:11px;color:var(--text-muted);margin-top:8px;text-align:center;">Billed today ยท cancel anytime.</p>
1255
+ <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;">
1503
1256
  </div>
1504
1257
  <div class="price-card team">
1505
1258
  <div class="tier">Team</div>
1506
1259
  <div class="price">$49<span style="font-size:16px;color:var(--text-dim)">/seat/mo</span></div>
1507
- <div class="price-sub">3-seat minimum ยท One engineer's correction protects the whole team</div>
1508
- <p style="font-size:13px;color:var(--green);margin-bottom:16px;font-weight:500;">When one engineer teaches the agent not to delete staging data, that lesson applies to every agent on the team. Stop paying the same mistake tax across different developers.</p>
1509
- <div class="pro-upgrade-triggers" style="font-size:12px;color:#aaa;margin-bottom:12px;">
1510
- No self-serve trial. Start with one repo, one workflow, and one repeated failure through the sprint intake.
1511
- </div>
1260
+ <div class="price-sub">Shared enforcement memory for one team workflow first.</div>
1512
1261
  <ul>
1513
- <li>AI Agent Governance Sprint โ€” map one painful workflow, one repeated failure, approval boundaries, rollback safety, and one buyer proof review before wider rollout</li>
1514
- <li>Shared enforcement memory โ€” a shared lesson database where one developer's ๐Ÿ‘Ž on a bad migration protects every agent on the team</li>
1515
- <li>Team lesson export/import โ€” export lessons from one project, import into another. Deduplication, provenance tracking, and <code>team-import</code> tagging built in. One team's hard-won lessons become every team's prevention rules</li>
1516
- <li>Org dashboard โ€” active agents, check hit rates, risk agents, and proof-backed team metrics in one place</li>
1517
- <li>Hosted review views โ€” constrained cards, lists, and callouts for rollout, incident, and audit visibility</li>
1518
- <li>Check template library โ€” pre-built guardrails for force-pushes, skipped tests, destructive SQL, and evidence-before-done</li>
1519
- <li>Docker Sandboxes guidance โ€” route risky local autonomy into an isolated microVM-backed lane instead of running it directly on a shared host</li>
1520
- <li>Signed hosted sandbox dispatch โ€” isolated execution path for team automations that do not need repo-bound local access</li>
1521
- <li>Release confidence story โ€” Changesets, SemVer, version sync, and verification evidence keep publishes and rollout claims inspectable</li>
1522
- <li>Proof pack โ€” attach verification evidence and rollout diagnostics so the buyer does not have to trust a demo</li>
1262
+ <li>Everything in Pro for each seat</li>
1263
+ <li>Shared lesson database for Team seats, with export/import and shared workflow rules</li>
1264
+ <li>Org dashboard visibility across agent surfaces</li>
1265
+ <li>Hosted review views for team verification evidence</li>
1266
+ <li>Check template library for deploys, publish, refunds, and DB work</li>
1267
+ <li>Workflow hardening sprint intake for approval boundaries and rollback safety</li>
1268
+ <li>Email support during pilot rollout</li>
1523
1269
  </ul>
1524
- <a href="#workflow-sprint-intake" class="btn-team">Start Workflow Hardening Sprint</a>
1525
- <p style="font-size:11px;color:#666;margin-top:8px;">$49/seat/mo with a 3-seat minimum. Start with a 30-minute intake around one real blocker.</p>
1270
+ <a href="/checkout/pro?plan_id=team&amp;seat_count=3&amp;confirm=1&amp;utm_source=website&amp;utm_medium=pricing&amp;utm_campaign=team_self_serve&amp;cta_id=pricing_team_self_serve&amp;cta_placement=pricing&amp;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>
1271
+ <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>
1272
+ <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>
1526
1273
  </div>
1527
1274
  </div>
1275
+ <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>
1528
1276
  </div>
1529
1277
  </section>
1530
1278
 
@@ -1653,7 +1401,7 @@ __GA_BOOTSTRAP__
1653
1401
  </div>
1654
1402
  <div class="faq-item">
1655
1403
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">Do I need a cloud account?</div>
1656
- <div class="faq-a">No. Free keeps local enforcement on your machine with 3 feedback captures total, 1 auto-promoted prevention rule, built-in safety checks, and hook blocking. Recall, lesson search, and exports open up on Pro. No cloud account is required. The business starts when a team wants shared rules, approval boundaries, hosted review views, org dashboard visibility, and proof that survives handoffs. Pro is the optional solo side lane for a personal dashboard, DPO export, and team lesson export/import โ€” share lessons across projects so one team's mistakes become every team's prevention rules.</div>
1404
+ <div class="faq-a">No. Free keeps local enforcement on your machine with unlimited feedback captures, up to 5 active auto-promoted prevention rules, built-in safety checks, and hook blocking. Recall, lesson search, unlimited rules, and exports open up on Pro. No cloud account is required. The business starts when a team wants shared rules, approval boundaries, hosted review views, org dashboard visibility, and proof that survives handoffs. Pro is the optional solo side lane for a personal dashboard, DPO export, and team lesson export/import โ€” share lessons across projects so one team's mistakes become every team's prevention rules.</div>
1657
1405
  </div>
1658
1406
  <div class="faq-item">
1659
1407
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What if my thumbs-down is vague?</div>
@@ -1665,7 +1413,7 @@ __GA_BOOTSTRAP__
1665
1413
  </div>
1666
1414
  <div class="faq-item">
1667
1415
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What does Pro cost?</div>
1668
- <div class="faq-a">Pro is $19/mo or $149/yr for individual operators and bills immediately through Stripe so the self-serve path can create revenue today. Team is $49/seat/mo with a 3-seat minimum and starts with the Workflow Hardening Sprint intake, not a self-serve trial.</div>
1416
+ <div class="faq-a">Pro is $19/mo or $149/yr for individual operators and bills immediately through Stripe. Team is $49/seat/mo with a 3-seat minimum and starts through the workflow intake so scope, shared rules, and rollout proof are explicit before a team rollout.</div>
1669
1417
  </div>
1670
1418
  </div>
1671
1419
  </div>
@@ -1696,7 +1444,7 @@ __GA_BOOTSTRAP__
1696
1444
  <span class="cmd">npx thumbgate init</span>
1697
1445
  <span class="copy-hint">click to copy</span>
1698
1446
  </div>
1699
- <a href="/go/install?utm_source=website&utm_medium=homepage_final&utm_campaign=install_free&cta_id=final_install_cli&cta_placement=final_cta" onclick="posthog.capture('final_install_click',{cta:'install_cli'})" class="btn-pro btn-install-link" style="padding:14px 36px;font-size:16px;">Install Free CLI</a>
1447
+ <a href="/go/install?utm_source=website&utm_medium=homepage_final&utm_campaign=install_free&cta_id=final_install_cli&cta_placement=final_cta" 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('final_install_click',{cta:'install_cli'})}catch(_){}" class="btn-pro btn-install-link" style="padding:14px 36px;font-size:16px;" title="Click to copy: npx thumbgate init">Install Free CLI</a>
1700
1448
  </div>
1701
1449
  <div style="display:flex;gap:10px;justify-content:center;flex-wrap:wrap;align-items:center;margin-top:12px;opacity:0.7;">
1702
1450
  <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" class="btn-gpt-page" target="_blank" rel="noopener" onclick="posthog.capture('final_claude_extension_click',{cta:'install_claude_extension'})" style="padding:8px 16px;font-size:12px;background:#d97706;color:#fff;">Install Claude Extension</a>
@@ -1717,7 +1465,7 @@ __GA_BOOTSTRAP__
1717
1465
  <a href="https://www.linkedin.com/in/igorganapolsky" target="_blank" rel="noopener">LinkedIn</a>
1718
1466
  <a href="/blog">Blog</a>
1719
1467
  </div>
1720
- <span class="footer-copy">ยฉ 2026 Max Smith KDP LLC ยท MIT License ยท v1.16.22</span>
1468
+ <span class="footer-copy">ยฉ 2026 ThumbGate ยท MIT License ยท npm v1.18.0</span>
1721
1469
  </div>
1722
1470
  </footer>
1723
1471
 
@@ -2017,11 +1765,10 @@ function copyInstall(el) {
2017
1765
  { selector: '#faq', sectionId: 'faq', sectionLabel: 'FAQ' }
2018
1766
  ],
2019
1767
  ctaImpressions: [
2020
- { selector: '#pro-checkout-link', ctaId: 'pricing_pro_trial', ctaPlacement: 'pricing', planId: 'pro' },
1768
+ { selector: '#pro-checkout-link', ctaId: 'pricing_pro_checkout', ctaPlacement: 'pricing', planId: 'pro' },
2021
1769
  { selector: '.price-card.pro .btn-pro', ctaId: 'pricing_pro_monthly', ctaPlacement: 'pricing', planId: 'pro' },
2022
- { selector: '.hero-actions .btn-pro-page', ctaId: 'hero_go_pro', ctaPlacement: 'hero', planId: 'pro' },
1770
+ { selector: '.hero-actions .btn-pro-page', ctaId: 'hero_workflow_intake', ctaPlacement: 'hero', planId: 'team' },
2023
1771
  { selector: '.hero-paid-actions .diagnostic', ctaId: 'hero_workflow_sprint_diagnostic_checkout', ctaPlacement: 'hero_paid_path', planId: 'team' },
2024
- { selector: '.hero-paid-actions .sprint', ctaId: 'hero_workflow_sprint_checkout', ctaPlacement: 'hero_paid_path', planId: 'team' },
2025
1772
  { selector: '.hero-paid-actions .intake', ctaId: 'hero_workflow_sprint_recovery_intake', ctaPlacement: 'hero_paid_path', planId: 'team' },
2026
1773
  { selector: '.sticky-cta .btn-pro', ctaId: 'sticky_go_pro', ctaPlacement: 'sticky_cta', planId: 'pro' },
2027
1774
  { selector: '.price-card.team .btn-team', ctaId: 'team_workflow_sprint', ctaPlacement: 'pricing', planId: 'team' },
@@ -2035,7 +1782,7 @@ initializeBuyerIntentForms();
2035
1782
  initializePaidSprintPath();
2036
1783
  initializeTeamIntakeTelemetry();
2037
1784
 
2038
- async function handleProTrial() {
1785
+ async function handleProCheckout() {
2039
1786
  var buyerIntent = globalThis.ThumbGateBuyerIntent;
2040
1787
  var email = document.getElementById('pro-email');
2041
1788
  var normalizedEmail = buyerIntent.normalizeBuyerEmail(email && email.value);
@@ -2055,7 +1802,7 @@ async function handleProTrial() {
2055
1802
  var checkoutLink = document.getElementById('pro-checkout-link');
2056
1803
  var checkoutUrl = checkoutLink ? checkoutLink.href : '/checkout/pro';
2057
1804
  if (typeof plausible === 'function') {
2058
- plausible('trial_email_captured', { props: { page: 'homepage', intent: 'checkout' } });
1805
+ plausible('pro_email_captured', { props: { page: 'homepage', intent: 'checkout' } });
2059
1806
  }
2060
1807
  try {
2061
1808
  await buyerIntent.submitNewsletterSignup(normalizedEmail);