thumbgate 1.2.0 → 1.4.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 (160) hide show
  1. package/.claude-plugin/README.md +4 -4
  2. package/.claude-plugin/marketplace.json +32 -13
  3. package/.claude-plugin/plugin.json +15 -2
  4. package/.well-known/llms.txt +60 -0
  5. package/.well-known/mcp/server-card.json +1 -1
  6. package/README.md +133 -23
  7. package/adapters/README.md +1 -1
  8. package/adapters/chatgpt/openapi.yaml +168 -0
  9. package/adapters/claude/.mcp.json +2 -2
  10. package/adapters/codex/config.toml +2 -2
  11. package/adapters/mcp/server-stdio.js +85 -2
  12. package/adapters/opencode/opencode.json +1 -1
  13. package/bin/cli.js +215 -19
  14. package/bin/postinstall.js +8 -2
  15. package/config/budget.json +18 -0
  16. package/config/gates/code-edit.json +61 -0
  17. package/config/gates/db-write.json +61 -0
  18. package/config/gates/default.json +154 -3
  19. package/config/gates/deploy.json +61 -0
  20. package/config/github-about.json +2 -1
  21. package/config/merge-quality-checks.json +23 -0
  22. package/config/model-tiers.json +11 -0
  23. package/openapi/openapi.yaml +168 -0
  24. package/package.json +47 -13
  25. package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +1 -1
  26. package/plugins/claude-codex-bridge/.mcp.json +1 -1
  27. package/plugins/claude-codex-bridge/scripts/codex-bridge.js +1 -3
  28. package/plugins/codex-profile/.codex-plugin/plugin.json +1 -1
  29. package/plugins/codex-profile/.mcp.json +1 -1
  30. package/plugins/codex-profile/INSTALL.md +27 -4
  31. package/plugins/codex-profile/README.md +33 -9
  32. package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +1 -1
  33. package/plugins/cursor-marketplace/README.md +2 -2
  34. package/plugins/cursor-marketplace/commands/capture-feedback.md +2 -2
  35. package/plugins/cursor-marketplace/rules/feedback-capture.mdc +3 -3
  36. package/plugins/cursor-marketplace/skills/capture-feedback/SKILL.md +3 -2
  37. package/plugins/opencode-profile/INSTALL.md +1 -1
  38. package/public/blog.html +73 -0
  39. package/public/compare/mem0.html +189 -0
  40. package/public/compare/speclock.html +180 -0
  41. package/public/compare.html +12 -4
  42. package/public/guide.html +5 -5
  43. package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
  44. package/public/guides/codex-cli-guardrails.html +158 -0
  45. package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
  46. package/public/guides/pre-action-gates.html +162 -0
  47. package/public/guides/stop-repeated-ai-agent-mistakes.html +159 -0
  48. package/public/index.html +169 -70
  49. package/public/learn/ai-agent-persistent-memory.html +1 -0
  50. package/public/lessons.html +334 -17
  51. package/public/llm-context.md +140 -0
  52. package/public/pro.html +24 -22
  53. package/scripts/__pycache__/train_from_feedback.cpython-312.pyc +0 -0
  54. package/scripts/access-anomaly-detector.js +1 -1
  55. package/scripts/adk-consolidator.js +1 -5
  56. package/scripts/agent-security-hardening.js +4 -6
  57. package/scripts/agentic-data-pipeline.js +1 -3
  58. package/scripts/async-job-runner.js +1 -5
  59. package/scripts/audit-trail.js +7 -5
  60. package/scripts/background-agent-governance.js +2 -10
  61. package/scripts/billing.js +2 -16
  62. package/scripts/budget-enforcer.js +173 -0
  63. package/scripts/build-codex-plugin.js +152 -0
  64. package/scripts/capture-railway-diagnostics.sh +97 -0
  65. package/scripts/check-congruence.js +133 -15
  66. package/scripts/claude-feedback-sync.js +320 -0
  67. package/scripts/cli-telemetry.js +4 -1
  68. package/scripts/commercial-offer.js +5 -7
  69. package/scripts/content-engine/linkedin-content-generator.js +154 -0
  70. package/scripts/content-engine/output/linkedin-memento-validation.md +17 -0
  71. package/scripts/content-engine/output/linkedin-posts-2026-04-09.md +175 -0
  72. package/scripts/content-engine/reddit-thread-finder.js +154 -0
  73. package/scripts/context-engine.js +21 -6
  74. package/scripts/contextfs.js +33 -44
  75. package/scripts/dashboard.js +104 -0
  76. package/scripts/decision-journal.js +341 -0
  77. package/scripts/delegation-runtime.js +1 -5
  78. package/scripts/distribution-surfaces.js +26 -0
  79. package/scripts/document-intake.js +927 -0
  80. package/scripts/ephemeral-agent-store.js +1 -8
  81. package/scripts/evolution-state.js +1 -5
  82. package/scripts/experiment-tracker.js +1 -5
  83. package/scripts/export-databricks-bundle.js +1 -5
  84. package/scripts/export-hf-dataset.js +1 -5
  85. package/scripts/export-training.js +1 -5
  86. package/scripts/feedback-attribution.js +1 -16
  87. package/scripts/feedback-history-distiller.js +1 -16
  88. package/scripts/feedback-loop.js +17 -5
  89. package/scripts/feedback-root-consolidator.js +2 -21
  90. package/scripts/feedback-session.js +49 -0
  91. package/scripts/feedback-to-rules.js +188 -28
  92. package/scripts/filesystem-search.js +1 -9
  93. package/scripts/fs-utils.js +104 -0
  94. package/scripts/gates-engine.js +149 -4
  95. package/scripts/github-about.js +32 -8
  96. package/scripts/gtm-revenue-loop.js +1 -5
  97. package/scripts/harness-selector.js +148 -0
  98. package/scripts/hosted-job-launcher.js +1 -5
  99. package/scripts/hybrid-feedback-context.js +7 -33
  100. package/scripts/intervention-policy.js +753 -0
  101. package/scripts/lesson-db.js +3 -18
  102. package/scripts/lesson-inference.js +194 -16
  103. package/scripts/lesson-retrieval.js +60 -24
  104. package/scripts/llm-client.js +59 -0
  105. package/scripts/local-model-profile.js +18 -2
  106. package/scripts/managed-lesson-agent.js +183 -0
  107. package/scripts/marketing-experiment.js +8 -22
  108. package/scripts/meta-agent-loop.js +624 -0
  109. package/scripts/metered-billing.js +1 -1
  110. package/scripts/model-tier-router.js +10 -1
  111. package/scripts/money-watcher.js +1 -4
  112. package/scripts/obsidian-export.js +1 -5
  113. package/scripts/operational-integrity.js +369 -34
  114. package/scripts/org-dashboard.js +6 -1
  115. package/scripts/per-step-scoring.js +2 -4
  116. package/scripts/pr-manager.js +201 -19
  117. package/scripts/pro-features.js +3 -2
  118. package/scripts/prompt-dlp.js +3 -3
  119. package/scripts/prove-adapters.js +2 -5
  120. package/scripts/prove-attribution.js +1 -5
  121. package/scripts/prove-automation.js +3 -5
  122. package/scripts/prove-cloudflare-sandbox.js +1 -3
  123. package/scripts/prove-data-pipeline.js +1 -3
  124. package/scripts/prove-intelligence.js +1 -3
  125. package/scripts/prove-lancedb.js +1 -5
  126. package/scripts/prove-local-intelligence.js +1 -3
  127. package/scripts/prove-packaged-runtime.js +326 -0
  128. package/scripts/prove-predictive-insights.js +1 -3
  129. package/scripts/prove-runtime.js +13 -0
  130. package/scripts/prove-training-export.js +1 -3
  131. package/scripts/prove-workflow-contract.js +1 -5
  132. package/scripts/rate-limiter.js +6 -4
  133. package/scripts/reddit-dm-outreach.js +14 -4
  134. package/scripts/schedule-manager.js +3 -5
  135. package/scripts/security-scanner.js +448 -0
  136. package/scripts/self-distill-agent.js +579 -0
  137. package/scripts/semantic-dedup.js +115 -0
  138. package/scripts/skill-exporter.js +1 -3
  139. package/scripts/skill-generator.js +1 -5
  140. package/scripts/social-analytics/engagement-audit.js +1 -18
  141. package/scripts/social-analytics/pollers/linkedin.js +26 -16
  142. package/scripts/social-analytics/publishers/linkedin.js +1 -1
  143. package/scripts/social-analytics/publishers/zernio.js +51 -0
  144. package/scripts/social-pipeline.js +1 -3
  145. package/scripts/social-post-hourly.js +47 -4
  146. package/scripts/statusline-links.js +6 -5
  147. package/scripts/statusline-local-stats.js +2 -0
  148. package/scripts/statusline.sh +38 -7
  149. package/scripts/sync-branch-protection.js +340 -0
  150. package/scripts/tessl-export.js +1 -3
  151. package/scripts/thumbgate-search.js +32 -1
  152. package/scripts/tool-kpi-tracker.js +1 -1
  153. package/scripts/tool-registry.js +108 -4
  154. package/scripts/vector-store.js +1 -5
  155. package/scripts/weekly-auto-post.js +1 -1
  156. package/scripts/workflow-sentinel.js +205 -4
  157. package/skills/thumbgate/SKILL.md +2 -2
  158. package/src/api/server.js +273 -4
  159. package/scripts/social-analytics/db/social-analytics.db-shm +0 -0
  160. /package/scripts/social-analytics/db/{social-analytics.db-wal → analytics.sqlite} +0 -0
package/public/index.html CHANGED
@@ -19,12 +19,12 @@
19
19
  <meta charset="UTF-8">
20
20
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
21
21
  __GOOGLE_SITE_VERIFICATION_META__
22
- <title>ThumbGate — Self-improving AI coding agents that learn from every mistake</title>
23
- <meta name="description" content="Pre-action gates and workflow governance for AI coding agents. 👎 Thumbs down prevention rule mistake permanently blocked. 👍 Thumbs up pattern reinforced. History-aware lessons from your corrections. Risky local runs can route into Docker Sandboxes. Team adds shared lessons and org visibility, plus isolated execution guidance.">
24
- <meta property="og:title" content="ThumbGate — Self-improving AI coding agents that learn from every mistake">
25
- <meta property="og:description" content="Pre-action gates and workflow governance for AI coding agents. 👎 Thumbs down prevention rule mistake permanently blocked. 👍 Thumbs up pattern reinforced. History-aware lessons from your corrections. Risky local runs can route into Docker Sandboxes. Team adds shared lessons and org visibility, plus isolated execution guidance.">
22
+ <title>ThumbGate — Agent governance for AI coding workflows</title>
23
+ <meta name="description" content="CLI-first agent governance for teams shipping AI-generated changes. 👎 Thumbs down distills history-aware lessons from up to 8 prior entries and stays linked to a 60-second feedback session. 👍 Thumbs up reinforces safe patterns. Pre-action gates, workflow governance, shared lessons and org visibility, release confidence, and isolated execution guidance turn vibe coding mistakes into shared enforcement and proof-ready rollout.">
24
+ <meta property="og:title" content="ThumbGate — Agent governance for AI coding workflows">
25
+ <meta property="og:description" content="CLI-first agent governance for teams shipping AI-generated changes. 👎 Thumbs down distills history-aware lessons from up to 8 prior entries and stays linked to a 60-second feedback session. 👍 Thumbs up reinforces safe patterns. Pre-action gates, workflow governance, shared lessons and org visibility, release confidence, and isolated execution guidance turn vibe coding mistakes into shared enforcement and proof-ready rollout.">
26
26
  <meta property="og:type" content="website">
27
- <meta name="keywords" content="ThumbGate, thumbgate, self-improving AI agents, AI agent self-improvement, AI agent learning, AI agent memory, pre-action gates, human-in-the-loop, MCP server, Claude Code, Cursor, Codex, Gemini, Amp, OpenCode, vibe coding safety, SpecLock alternative, Mem0 alternative, AI coding agent feedback loop, PreToolUse hooks, prevention rules, feedback enforcement, context engineering">
27
+ <meta name="keywords" content="ThumbGate, thumbgate, agent governance, AI coding workflow governance, workflow hardening sprint, pre-action gates, CLI-first agent safety, Claude Code, Cursor, Codex, Gemini, Amp, OpenCode, approval policies, audit trail, release confidence, Docker Sandboxes, feedback enforcement, context engineering, AI authenticity, prevent AI slop, human-led AI, AI agent standards enforcement, brand authenticity AI">
28
28
 
29
29
  <!-- Privacy-friendly analytics by Plausible -->
30
30
  <script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
@@ -44,14 +44,14 @@ __GA_BOOTSTRAP__
44
44
  "@type": "SoftwareApplication",
45
45
  "name": "ThumbGate",
46
46
  "alternateName": "thumbgate",
47
- "description": "Make your AI coding agent self-improving. Every mistake becomes a prevention rule. Every correction makes it permanently smarter. ThumbGate adds workflow governance and isolated execution guidance so high-risk runs do not have to happen directly on the host.",
47
+ "description": "ThumbGate is a CLI-first agent governance control plane for AI coding workflows. Every repeated failure can become shared enforcement, every risky rollout can carry approval and audit boundaries, and high-risk local autonomy can be routed toward isolated execution instead of running directly on the host.",
48
48
  "applicationCategory": "DeveloperApplication",
49
49
  "operatingSystem": "Cross-platform, Node.js >=18.18.0",
50
50
  "license": "https://opensource.org/licenses/MIT",
51
51
  "url": "https://github.com/IgorGanapolsky/ThumbGate",
52
52
  "downloadUrl": "https://www.npmjs.com/package/thumbgate",
53
53
  "installUrl": "https://www.npmjs.com/package/thumbgate",
54
- "dateModified": "2026-04-03",
54
+ "dateModified": "2026-04-09",
55
55
  "creator": {
56
56
  "@type": "Person",
57
57
  "name": "Igor Ganapolsky",
@@ -71,7 +71,8 @@ __GA_BOOTSTRAP__
71
71
  "Prompt-Level DLP — scans tool call inputs before execution",
72
72
  "Per-Step Scoring — every gate decision becomes a DPO/KTO training signal",
73
73
  "HuggingFace Export — share PII-redacted agent traces as open training datasets",
74
- "Unified Context — one-call context assembly with session, lessons, guards, and code-graph"
74
+ "Unified Context — one-call context assembly with session, lessons, guards, and code-graph",
75
+ "AI Authenticity Enforcement — every gate reflects your team's actual standards, not generic AI patterns"
75
76
  ],
76
77
  "offers": [
77
78
  {
@@ -81,12 +82,20 @@ __GA_BOOTSTRAP__
81
82
  "priceCurrency": "USD",
82
83
  "description": "Local enforcement — captures, recalls, gates, and PreToolUse hook blocking for solo devs"
83
84
  },
85
+ {
86
+ "@type": "Offer",
87
+ "name": "Team",
88
+ "price": "99",
89
+ "priceCurrency": "USD",
90
+ "description": "Intake-led team rollout with a workflow hardening sprint, shared enforcement memory, org dashboard visibility, approval boundaries, release confidence, Docker Sandboxes guidance for risky local autonomy, and pilot support for teams shipping AI-generated changes",
91
+ "url": "https://thumbgate-production.up.railway.app/#workflow-sprint-intake"
92
+ },
84
93
  {
85
94
  "@type": "Offer",
86
95
  "name": "Pro Monthly",
87
96
  "price": "19",
88
97
  "priceCurrency": "USD",
89
- "description": "Personal local dashboard, DPO export, advanced data exports, and founder-license support for individual operators",
98
+ "description": "Self-serve side lane for solo operators who want a personal local dashboard, DPO export, and proof-ready exports",
90
99
  "url": "https://thumbgate-production.up.railway.app/checkout/pro?plan_id=pro&landing_path=%2F"
91
100
  },
92
101
  {
@@ -96,12 +105,6 @@ __GA_BOOTSTRAP__
96
105
  "priceCurrency": "USD",
97
106
  "description": "Annual Pro for individual operators who want the personal local dashboard and proof-ready exports",
98
107
  "url": "https://thumbgate-production.up.railway.app/checkout/pro?plan_id=pro&billing_cycle=annual&landing_path=%2F"
99
- },
100
- {
101
- "@type": "Offer",
102
- "name": "Team",
103
- "description": "Shared enforcement memory, review visibility, org dashboard, Docker Sandboxes guidance for risky local autonomy, and pilot rollout support for teams shipping AI-generated changes",
104
- "url": "https://thumbgate-production.up.railway.app/#workflow-sprint-intake"
105
108
  }
106
109
  ]
107
110
  }
@@ -112,19 +115,19 @@ __GA_BOOTSTRAP__
112
115
  "@context": "https://schema.org",
113
116
  "@type": "HowTo",
114
117
  "name": "How to make your AI coding agent self-improving",
115
- "description": "Set up ThumbGate so your AI agent learns from every mistake and never repeats it — a self-improvement loop powered by feedback enforcement.",
118
+ "description": "Set up ThumbGate so your AI agent learns from every mistake and never repeats it — a self-improvement loop powered by feedback enforcement and a trained local intervention policy.",
116
119
  "step": [
117
120
  {
118
121
  "@type": "HowToStep",
119
122
  "position": 1,
120
123
  "name": "Install ThumbGate",
121
- "text": "Run: npx thumbgate init --agent claude-code. This adds the MCP server to your agent. No API key needed everything runs locally."
124
+ "text": "Run: npx thumbgate init --agent claude-code. This installs the local CLI gateway and wires the agent's MCP transport automatically. No API key needed and the core path stays local."
122
125
  },
123
126
  {
124
127
  "@type": "HowToStep",
125
128
  "position": 2,
126
129
  "name": "Give feedback when something goes wrong",
127
- "text": "When your agent makes a mistake, give it a thumbs down with context: what went wrong and how to avoid it. ThumbGate validates the feedback and promotes it to a reusable memory."
130
+ "text": "When your agent makes a mistake, give it a thumbs down with context. In the current Claude auto-capture hook, vague negative signals can reuse up to 8 prior recorded entries before promotion and stay linked to a 60-second feedback session for later clarification."
128
131
  },
129
132
  {
130
133
  "@type": "HowToStep",
@@ -197,6 +200,14 @@ __GA_BOOTSTRAP__
197
200
  "text": "Prompt rules are suggestions agents can ignore. Pre-Action Gates are enforcement — they block the action before execution via PreToolUse hooks. Gates are auto-generated from feedback and use Thompson Sampling to adapt."
198
201
  }
199
202
  },
203
+ {
204
+ "@type": "Question",
205
+ "name": "How does ThumbGate prevent AI slop and protect brand authenticity?",
206
+ "acceptedAnswer": {
207
+ "@type": "Answer",
208
+ "text": "AI slop happens when agents act without human judgment as a hard gate — 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."
209
+ }
210
+ },
200
211
  {
201
212
  "@type": "Question",
202
213
  "name": "How is ThumbGate different from SpecLock?",
@@ -432,7 +443,7 @@ __GA_BOOTSTRAP__
432
443
  <a href="/learn">Learn</a>
433
444
  <a href="/compare">Compare</a>
434
445
  <a href="/dashboard">Dashboard Demo</a>
435
- <a href="/pro?utm_source=website&utm_medium=homepage_nav&utm_campaign=pro_page" class="nav-cta">See Pro</a>
446
+ <a href="#workflow-sprint-intake" class="nav-cta">Start Sprint</a>
436
447
  </div>
437
448
  </div>
438
449
  </nav>
@@ -441,32 +452,48 @@ __GA_BOOTSTRAP__
441
452
  <section class="hero">
442
453
  <div class="container">
443
454
  <div class="hero-thumbs">👍👎</div>
444
- <div class="hero-badge">● Self-improving AI agents with workflow governance and isolated execution</div>
445
- <h1>Your AI agent learns<br>from every mistake.</h1>
455
+ <div class="hero-badge">● Workflow Hardening Sprint for teams shipping AI-generated changes</div>
456
+ <h1>Make one AI workflow<br>safe enough to ship team-wide.</h1>
446
457
  <div class="hero-signals">
447
- <div class="signal-pill signal-down">👎 Mistake becomes a prevention rule permanently blocked</div>
448
- <div class="signal-pill signal-up">👍 Good pattern reinforced reused across sessions</div>
458
+ <div class="signal-pill signal-down">👎 Repeated failure becomes enforcement before the next run</div>
459
+ <div class="signal-pill signal-up">👍 Safe pattern reinforced across the shared workflow</div>
460
+ <div class="signal-pill">🛡️ Human judgment gates every AI action — your standards, not AI slop</div>
449
461
  </div>
450
- <p class="hero-persona">For developers using Claude Code, Cursor, Codex, Gemini, Amp, and OpenCode who want their AI agent to actually get better over time — and for teams that need the riskiest runs governed before they touch shared repos or the host machine.</p>
451
- <p><strong>The self-improvement loop:</strong> Your agent makes a mistake you give a thumbs-down ThumbGate auto-generates a prevention rule a gate physically blocks that mistake from ever happening again. Your agent gets permanently smarter with every correction. No model retraining. No prompt hacking. Just enforcement that compounds, plus isolated execution guidance when autonomy gets risky.</p>
462
+ <p class="hero-persona">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>
463
+ <p><strong>Best first paid motion:</strong> start with one repo, one workflow, and one repeat failure. ThumbGate turns the blocker into enforcement, routes risky runs toward isolated execution, and gives the buyer a proof-ready story around shared memory, approval boundaries, release confidence, and auditability.</p>
452
464
  <div class="hero-actions">
453
- <a href="/pro?utm_source=website&utm_medium=homepage_hero&utm_campaign=pro_page" class="btn-pro-page">See Pro for individual operators</a>
465
+ <a href="#workflow-sprint-intake" class="btn-team">Start Workflow Hardening Sprint</a>
466
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-codex-plugin.zip" class="btn-install-link" target="_blank" rel="noopener">Install Codex plugin</a>
467
+ <a href="/guide?utm_source=website&utm_medium=homepage_hero&utm_campaign=install_free" class="btn-pro-page btn-install-link">Install Free CLI</a>
454
468
  <a href="/dashboard?utm_source=website&utm_medium=homepage_hero&utm_campaign=demo" class="btn-demo-link">Open dashboard demo</a>
455
469
  </div>
456
- <p class="hero-paid-note"><strong>Paid path:</strong> Free stays the local install lane. Pro is the buyer-ready page for your personal local dashboard, DPO export, and review-ready evidence. Team adds shared workflow governance, org proof, and isolated execution guidance for high-risk runs.</p>
470
+ <p class="hero-paid-note"><strong>Running Codex?</strong> Download the published plugin bundle or open the <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/plugins/codex-profile/INSTALL.md" target="_blank" rel="noopener">Codex install guide</a> for the repo-local profile and MCP path.</p>
471
+ <p class="hero-paid-note"><strong>Start free as an individual.</strong> Pro stays the self-serve lane for personal dashboard and DPO export. Team pricing anchors at <strong>$99/seat/mo with a 3-seat minimum</strong>, but the team path starts intake-first with the Workflow Hardening Sprint so buyers see proof before a wider rollout.</p>
457
472
  <div class="hero-install" onclick="copyInstall(this)" title="Click to copy">
458
473
  <span class="prompt">$</span>
459
474
  <span class="cmd">npx thumbgate init</span>
460
475
  <span class="copy-hint">click to copy</span>
461
476
  </div>
462
477
  <div class="proof-bar">
463
- <a href="https://www.npmjs.com/package/thumbgate" target="_blank" rel="noopener">1,000+ npm downloads →</a>
478
+ <a href="/guide" rel="noopener">CLI-first setup guide →</a>
479
+ <span class="dot"></span>
480
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-codex-plugin.zip" target="_blank" rel="noopener">Codex plugin download →</a>
464
481
  <span class="dot"></span>
465
- <a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">1,500+ tests passing →</a>
482
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence →</a>
483
+ <span class="dot"></span>
484
+ <a href="https://arxiv.org/abs/2603.18743" target="_blank" rel="noopener">Research-backed (Memento-Skills, arXiv 2603.18743) →</a>
485
+ <span class="dot"></span>
486
+ <a href="https://blog.langchain.dev/continual-learning-for-ai-agents/" target="_blank" rel="noopener">Three-layer continual learning (LangChain) →</a>
487
+ <span class="dot"></span>
488
+ <a href="https://cloud.google.com/blog/topics/healthcare-life-sciences/ensuring-safety-and-quality-in-healthcare-qa-agents" target="_blank" rel="noopener">Google Cloud safety framework architecture →</a>
466
489
  <span class="dot"></span>
467
490
  <a href="https://www.producthunt.com/products/thumbgate" target="_blank" rel="noopener">Product Hunt →</a>
468
491
  <span class="dot"></span>
469
- <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/LICENSE" target="_blank" rel="noopener">MIT licensed</a>
492
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">Proof-backed CI →</a>
493
+ <span class="dot"></span>
494
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/RELEASE_CONFIDENCE.md" target="_blank" rel="noopener">Release confidence →</a>
495
+ <span class="dot"></span>
496
+ <a href="https://github.com/IgorGanapolsky/ThumbGate/actions" target="_blank" rel="noopener">CI and proof lanes →</a>
470
497
  <span class="dot"></span>
471
498
  <a href="#compatibility">Claude Code · Cursor · Codex · Gemini · Amp · OpenCode</a>
472
499
  </div>
@@ -483,6 +510,11 @@ __GA_BOOTSTRAP__
483
510
  <p>Claude Code, Claw-code, Codex, Gemini CLI, Amp, and OpenCode all use the same gateway and memory model. Any MCP-compatible agent gets pre-action gates, feedback memory, and enforcement out of the box.</p>
484
511
  <div class="card-arrow">View setup guide →</div>
485
512
  </a>
513
+ <a class="compat-card" href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/plugins/codex-profile/INSTALL.md" target="_blank" rel="noopener">
514
+ <h3>🧩 Codex plugin</h3>
515
+ <p>Codex ships with a published standalone ThumbGate plugin bundle plus a repo-local plugin profile. Download the zip, extract it, and install without wiring MCP by hand.</p>
516
+ <div class="card-arrow">Get the Codex plugin →</div>
517
+ </a>
486
518
  <a class="compat-card" href="/guides/claude-desktop">
487
519
  <h3>🧩 Claude Desktop plugin</h3>
488
520
  <p>One command install. No build step, no cloud account. Grab the <code>.mcpb</code> bundle or run <code>npx thumbgate init --claude-desktop</code>.</p>
@@ -495,7 +527,7 @@ __GA_BOOTSTRAP__
495
527
  </a>
496
528
  <a class="compat-card seo-card" href="https://github.com/IgorGanapolsky/ThumbGate/tree/main/.claude/skills/thumbgate" target="_blank" rel="noopener">
497
529
  <h3>⚡ Claude Code Skill</h3>
498
- <p>Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on "gate", "feedback", "block mistake". Free skill with Pro upgrade path built in.</p>
530
+ <p>Type <code>/thumbgate</code> in any Claude Code session. Auto-triggers on "gate", "feedback", "block mistake". Free skill on top of the same local gateway teams later harden into a shared workflow.</p>
499
531
  <div class="card-arrow">View skill on GitHub →</div>
500
532
  </a>
501
533
  </div>
@@ -517,8 +549,8 @@ __GA_BOOTSTRAP__
517
549
  <p>Every block explains why: which pattern matched, what evidence triggered it, and whether the rule came from your own corrections.</p>
518
550
  </div>
519
551
  <div class="agent-card">
520
- <h3>📊 Org Dashboard (Pro)</h3>
521
- <p>See which agents are creating review churn, which gates are saving time, and where rollout risk is still concentrated.</p>
552
+ <h3>📊 Org Dashboard (Team)</h3>
553
+ <p>See which agents are creating review churn, which gates are saving time, and where rollout risk is still concentrated across the shared workflow.</p>
522
554
  </div>
523
555
  <div class="agent-card">
524
556
  <h3>🧱 Isolated Execution Lanes</h3>
@@ -530,7 +562,7 @@ __GA_BOOTSTRAP__
530
562
  </div>
531
563
  <div class="agent-card">
532
564
  <h3>🪞 History-Aware Lessons</h3>
533
- <p>When a thumbs signal is vague, ThumbGate can reuse the last ~10 messages plus the failed tool call, propose what went wrong, and turn that into one linked lesson instead of a dead-end note.</p>
565
+ <p>When the current Claude auto-capture hook only gets a vague thumbs-down, ThumbGate can reuse up to 8 prior recorded entries plus the failed tool call, then keep a linked 60-second feedback session open for later corrections instead of creating a dead-end note.</p>
534
566
  </div>
535
567
  </div>
536
568
  </div>
@@ -596,13 +628,13 @@ __GA_BOOTSTRAP__
596
628
  <!-- HOW IT WORKS -->
597
629
  <section class="how-it-works" id="how-it-works">
598
630
  <div class="container">
599
- <div class="section-label">New in v1.2.0</div>
631
+ <div class="section-label">New in v1.4.0</div>
600
632
  <h2 class="section-title">Three steps to stop repeated AI failures</h2>
601
633
  <div class="steps">
602
634
  <div class="step">
603
635
  <div class="step-num">1</div>
604
636
  <h3>Feedback</h3>
605
- <p>Give <code>👍</code> or <code>👎</code> on your AI agent's actions. Feedback is stored in a SQLite+FTS5 lesson DB. If the signal is vague, ThumbGate can distill it from the recent conversation window and failed tool call before promotion. Example: you 👎 a risky migration → it auto-promotes to a "never run DROP on prod" gate.</p>
637
+ <p>Give <code>👍</code> or <code>👎</code> on your AI agent's actions. Feedback is stored in a SQLite+FTS5 lesson DB. In the current Claude auto-capture hook, a vague thumbs-down can distill from up to 8 prior recorded entries and the failed tool call before promotion, then stay linked to a 60-second feedback session. Example: you 👎 a risky migration → it auto-promotes to a "never run DROP on prod" gate.</p>
606
638
  </div>
607
639
  <div class="step">
608
640
  <div class="step-num">2</div>
@@ -645,6 +677,10 @@ __GA_BOOTSTRAP__
645
677
  <h3>Keep risky runs off the host</h3>
646
678
  <p>When Workflow Sentinel predicts a risky local action, ThumbGate can recommend Docker Sandboxes before the agent touches the host filesystem or broader credentials.</p>
647
679
  </div>
680
+ <div class="agent-card">
681
+ <h3>Ship with versioned proof</h3>
682
+ <p>Changesets, SemVer, sync checks, and verification evidence make new package releases inspectable before a buyer trusts the next rollout.</p>
683
+ </div>
648
684
  </div>
649
685
  </div>
650
686
  </section>
@@ -675,19 +711,74 @@ __GA_BOOTSTRAP__
675
711
  </div>
676
712
  </section>
677
713
 
714
+ <section id="install" style="padding: 60px 40px; max-width: 900px; margin: 0 auto;">
715
+ <h2 style="font-size: 2em; text-align: center; margin-bottom: 40px;">Install for Your Agent</h2>
716
+
717
+ <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 24px;">
718
+ <div style="background: #161b22; border-radius: 12px; padding: 24px; border: 1px solid #30363d;">
719
+ <h3>Claude Code</h3>
720
+ <code style="display: block; background: #0d1117; padding: 12px; border-radius: 8px; color: #58a6ff; margin: 12px 0;">npx thumbgate init --agent claude-code</code>
721
+ <p style="color: #8b949e; font-size: 14px;">Wires PreToolUse hooks automatically</p>
722
+ </div>
723
+
724
+ <div style="background: #161b22; border-radius: 12px; padding: 24px; border: 1px solid #30363d;">
725
+ <h3>Cursor</h3>
726
+ <code style="display: block; background: #0d1117; padding: 12px; border-radius: 8px; color: #58a6ff; margin: 12px 0;">npx thumbgate init --agent cursor</code>
727
+ <p style="color: #8b949e; font-size: 14px;">4 skills: feedback, rules, search, recall</p>
728
+ </div>
729
+
730
+ <div style="background: #161b22; border-radius: 12px; padding: 24px; border: 1px solid #30363d;">
731
+ <h3>Codex</h3>
732
+ <code style="display: block; background: #0d1117; padding: 12px; border-radius: 8px; color: #58a6ff; margin: 12px 0;">npx thumbgate init --agent codex</code>
733
+ <p style="color: #8b949e; font-size: 14px;">6 skills including adversarial review</p>
734
+ </div>
735
+
736
+ <div style="background: #161b22; border-radius: 12px; padding: 24px; border: 1px solid #30363d;">
737
+ <h3>Gemini CLI</h3>
738
+ <code style="display: block; background: #0d1117; padding: 12px; border-radius: 8px; color: #58a6ff; margin: 12px 0;">npx thumbgate init --agent gemini</code>
739
+ <p style="color: #8b949e; font-size: 14px;">Gemini CLI integration</p>
740
+ </div>
741
+
742
+ <div style="background: #161b22; border-radius: 12px; padding: 24px; border: 1px solid #30363d;">
743
+ <h3>Amp</h3>
744
+ <code style="display: block; background: #0d1117; padding: 12px; border-radius: 8px; color: #58a6ff; margin: 12px 0;">npx thumbgate init --agent amp</code>
745
+ <p style="color: #8b949e; font-size: 14px;">Amp agent integration</p>
746
+ </div>
747
+
748
+ <div style="background: #161b22; border-radius: 12px; padding: 24px; border: 1px solid #30363d;">
749
+ <h3>Any MCP Client</h3>
750
+ <code style="display: block; background: #0d1117; padding: 12px; border-radius: 8px; color: #58a6ff; margin: 12px 0;">npx thumbgate serve</code>
751
+ <p style="color: #8b949e; font-size: 14px;">MCP stdio server for any compatible client</p>
752
+ </div>
753
+ </div>
754
+
755
+ <div style="text-align: center; margin-top: 40px;">
756
+ <h3>Claude Desktop</h3>
757
+ <p style="color: #8b949e;">Add to your <code>claude_desktop_config.json</code>:</p>
758
+ <pre style="background: #0d1117; padding: 16px; border-radius: 8px; color: #58a6ff; text-align: left; display: inline-block; margin: 12px auto;">{
759
+ "mcpServers": {
760
+ "thumbgate": {
761
+ "command": "npx",
762
+ "args": ["--yes", "thumbgate", "serve"]
763
+ }
764
+ }
765
+ }</pre>
766
+ </div>
767
+ </section>
768
+
678
769
  <!-- PRICING -->
679
770
  <section class="pricing" id="pricing">
680
771
  <div class="container">
681
772
  <div class="section-label">Pricing</div>
682
- <h2 class="section-title">Start free. Prove value on a real workflow. Upgrade when review churn costs more than $19/mo.</h2>
773
+ <h2 class="section-title">Install free. Buy with the workflow hardening sprint. Keep Pro as the solo side lane.</h2>
683
774
  <div class="pricing-grid">
684
775
  <div class="price-card">
685
776
  <div class="tier">Free</div>
686
777
  <div class="price">$0</div>
687
- <div class="price-sub">Forever free · Local enforcement for one developer</div>
688
- <p style="font-size:13px;color:#aaa;margin-bottom:16px;">For solo developers who want to stop the same agent mistake from showing up twice.</p>
778
+ <div class="price-sub">Forever free · CLI-first local enforcement for one developer</div>
779
+ <p style="font-size:13px;color:#aaa;margin-bottom:16px;">For solo developers who want to stop the same agent mistake from showing up twice and prove value before a team rollout conversation exists.</p>
689
780
  <ul>
690
- <li>Unlimited feedback captures · 5 lesson searches/day · unlimited recall</li>
781
+ <li>3 feedback captures/day · 5 lesson searches/day · unlimited recall</li>
691
782
  <li>5 auto-promoted gates plus the core safety policy</li>
692
783
  <li>All MCP integrations (Claude Code, Cursor, Codex, etc.)</li>
693
784
  <li>PreToolUse hook blocking</li>
@@ -698,12 +789,12 @@ __GA_BOOTSTRAP__
698
789
  <a href="https://www.npmjs.com/package/thumbgate" target="_blank" rel="noopener" class="btn-free">Install Free</a>
699
790
  </div>
700
791
  <div class="price-card pro" data-price-dollars="__PRO_PRICE_DOLLARS__">
701
- <div class="tier">Pro</div>
792
+ <div class="tier">Solo Pro</div>
702
793
  <div class="price">$19<span style="font-size:16px;color:var(--text-dim)">/mo</span></div>
703
794
  <div class="price-sub">or $149/yr (save 35%) · Personal dashboard + exports</div>
704
- <p style="font-size:13px;color:var(--cyan);margin-bottom:16px;font-weight:500;">For individual operators who need review-ready evidence, faster debugging, and a dashboard of exactly what got blocked.</p>
795
+ <p style="font-size:13px;color:var(--cyan);margin-bottom:16px;font-weight:500;">For an individual operator who wants a personal dashboard and proof-ready exports without starting the team rollout motion.</p>
705
796
  <div class="pro-upgrade-triggers" style="font-size:12px;color:#aaa;margin-bottom:12px;">
706
- <strong style="color:#fff;">Go Pro when:</strong> you want review-ready evidence, need your own dashboard, or keep correcting the same failure modes.
797
+ <strong style="color:#fff;">Choose Pro when:</strong> you want review-ready evidence, need your own dashboard, or are still operating solo.
707
798
  </div>
708
799
  <div class="dashboard-preview" style="margin-bottom:16px;border:1px solid #333;border-radius:8px;overflow:hidden;">
709
800
  <div style="background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);padding:16px;text-align:center;">
@@ -724,7 +815,7 @@ __GA_BOOTSTRAP__
724
815
  <li><strong>HuggingFace dataset export</strong> — share PII-redacted agent traces as open training datasets (<code>npm run export:hf</code>)</li>
725
816
  <li><strong>Model Hardening Advisor</strong> — get recommendations on when and how to fine-tune your model to natively avoid recurring failures</li>
726
817
  <li>Personal local dashboard — every Pro user gets a localhost dashboard without extra cloud setup</li>
727
- <li>Founder-license support — we help you wire the riskiest flows first: migrations, force-pushes, deploys, and CI</li>
818
+ <li>Review-ready workflow support — we help you wire the riskiest flows first: migrations, force-pushes, deploys, and CI</li>
728
819
  </ul>
729
820
  <a href="/checkout/pro?utm_source=website&utm_medium=homepage_pricing&utm_campaign=pro_pack&cta_id=homepage_pricing_trial&cta_placement=pricing&plan_id=pro&landing_path=%2F" class="btn-pro" style="display:none" id="pro-checkout-link">Start Free Trial — then $19/mo</a>
730
821
  <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;">7-DAY FREE TRIAL</div>
@@ -732,29 +823,29 @@ __GA_BOOTSTRAP__
732
823
  <input type="email" id="pro-email" data-buyer-email placeholder="Your email to start trial" style="width:100%;padding:10px 14px;border:1px solid #333;border-radius:6px;background:#1a1a2e;color:#fff;font-size:14px;">
733
824
  </div>
734
825
  <button class="btn-pro" id="pro-trial-btn" onclick="handleProTrial()" style="width:100%;cursor:pointer;border:none;">Start 7-Day Free Trial</button>
735
- <p style="font-size:11px;color:#666;margin-top:8px;">Founder pricing <a href="https://buy.stripe.com/aFa4gz1M84r419v7mb3sI05" style="color:var(--cyan);text-decoration:underline;">preserved $49 one-time founder link</a> for early buyers who still want that path.</p>
736
- <p style="font-size:12px;color:var(--cyan);margin-top:6px;">Mem0 Pro: $249/mo. ThumbGate Pro: $19/mo.</p>
826
+ <p style="font-size:11px;color:#666;margin-top:8px;">Solo Pro stays available for operators who want a personal dashboard and export-ready evidence without the team rollout motion.</p>
737
827
  </div>
738
828
  <div class="price-card team">
739
829
  <div class="tier">Team</div>
740
- <div class="price">$12<span style="font-size:16px;color:var(--text-dim)">/seat/mo</span></div>
741
- <div class="price-sub">Starts at $36/mo for 3 seats · or $297/yr · Shared enforcement + org visibility</div>
742
- <p style="font-size:13px;color:var(--green);margin-bottom:16px;font-weight:500;">For teams shipping AI-generated changes across shared repos who need one correction to protect every reviewer and runtime.</p>
830
+ <div class="price">$99<span style="font-size:16px;color:var(--text-dim)">/seat/mo</span></div>
831
+ <div class="price-sub">3-seat minimum · intake-led rollout for the first workflow</div>
832
+ <p style="font-size:13px;color:var(--green);margin-bottom:16px;font-weight:500;">For teams shipping AI-generated changes across shared repos who need one correction to protect every reviewer and runtime. This is the primary buying motion.</p>
743
833
  <div class="pro-upgrade-triggers" style="font-size:12px;color:#aaa;margin-bottom:12px;">
744
- <strong style="color:#fff;">Start Team when:</strong> you need shared enforcement, org-wide proof, or one workflow pilot that proves ROI internally.
834
+ <strong style="color:#fff;">Best first paid motion:</strong> one workflow, one owner, one proof review. Qualify the blocker first, then expand into seats.
745
835
  </div>
746
836
  <ul>
837
+ <li>Workflow hardening sprint — map one painful workflow, one repeated failure, and one buyer proof review before wider rollout</li>
747
838
  <li>Shared enforcement memory — a shared lesson database where one developer's 👎 on a bad migration protects every agent on the team</li>
748
839
  <li>Org dashboard — active agents, gate hit rates, risk agents, and proof-backed team metrics in one place</li>
749
840
  <li>Hosted review views — constrained cards, lists, and callouts for rollout, incident, and audit visibility</li>
750
841
  <li>Gate template library — pre-built guardrails for force-pushes, skipped tests, destructive SQL, and evidence-before-done</li>
751
842
  <li>Docker Sandboxes guidance — route risky local autonomy into an isolated microVM-backed lane instead of running it directly on a shared host</li>
752
843
  <li>Signed hosted sandbox dispatch — isolated execution path for team automations that do not need repo-bound local access</li>
753
- <li>Workflow proof sprintpilot one painful workflow first, then expand once the before/after evidence is real</li>
754
- <li>Rollout attribution stays tied to the team funnel instead of disappearing into generic referral traffic</li>
844
+ <li>Release confidence storyChangesets, SemVer, version sync, and verification evidence keep publishes and rollout claims inspectable</li>
845
+ <li>Proof pack attach verification evidence and rollout diagnostics so the buyer does not have to trust a demo</li>
755
846
  </ul>
756
- <a href="#workflow-sprint-intake" class="btn-team">Start Team Pilot</a>
757
- <p style="font-size:11px;color:#666;margin-top:8px;">Hosted rollout starts with one workflow pilot so the first expansion has measurable before/after proof.</p>
847
+ <a href="#workflow-sprint-intake" class="btn-team">Start Workflow Hardening Sprint</a>
848
+ <p style="font-size:11px;color:#666;margin-top:8px;">Team pricing anchors at $99/seat/mo with a 3-seat minimum after qualification. The first step is a 30-minute intake around one real blocker.</p>
758
849
  </div>
759
850
  </div>
760
851
  </div>
@@ -764,7 +855,7 @@ __GA_BOOTSTRAP__
764
855
  <div class="container">
765
856
  <div class="section-label">Team Pilot</div>
766
857
  <h2 class="section-title">Start with one repo, one workflow, one repeat failure</h2>
767
- <p style="color:var(--text-dim);max-width:720px;margin:0 auto 16px;">The recurring value is shared enforcement. Start with one workflow, one 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>
858
+ <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 workflow, one 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>
768
859
  <form class="team-form" action="/v1/intake/workflow-sprint" method="POST">
769
860
  <input type="hidden" name="ctaId" value="workflow_sprint_intake">
770
861
  <input type="hidden" name="ctaPlacement" value="team_pricing">
@@ -803,19 +894,23 @@ __GA_BOOTSTRAP__
803
894
  </div>
804
895
  <div class="faq-item">
805
896
  <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>
806
- <div class="faq-a">ThumbGate works with Claude Code, Cursor, Codex, Gemini CLI, Amp, OpenCode, and any other MCP-compatible agent. Cursor ships with a plugin bundle in this repo. Codex ships with a repo-local app plugin profile. VS Code works when you run an MCP-compatible agent inside it, but this repo does not ship a standalone VS Code extension today.</div>
897
+ <div class="faq-a">ThumbGate works with Claude Code, Cursor, Codex, Gemini CLI, Amp, OpenCode, and any other MCP-compatible agent. Cursor ships with a plugin bundle in this repo. Codex now ships both a standalone plugin bundle and a repo-local app plugin profile, and the published download is linked directly from this page. VS Code works when you run an MCP-compatible agent inside it, but this repo does not ship a standalone VS Code extension today.</div>
807
898
  </div>
808
899
  <div class="faq-item">
809
900
  <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>
810
901
  <div class="faq-a">ThumbGate is the control plane, not just a prompt layer. Workflow Sentinel predicts blast radius before execution, and risky local autonomy can be routed into Docker Sandboxes instead of running directly on the host. Team workflows also have a signed hosted sandbox lane for isolated dispatch when local repo access is not required.</div>
811
902
  </div>
903
+ <div class="faq-item">
904
+ <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How do we trust a new package release?</div>
905
+ <div class="faq-a">ThumbGate does not rely on vibes. Release-relevant PRs need a Changeset, SemVer rules keep version bumps honest, sync checks keep manifests aligned, proof lanes run before merge, and the exact main-branch merge commit is verified before the work is called done.</div>
906
+ </div>
812
907
  <div class="faq-item">
813
908
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">Do I need a cloud account?</div>
814
- <div class="faq-a">No. Free keeps local enforcement on your machine with 5 daily feedback captures, 10 lesson searches, unlimited recall, gates, and hook blocking. No cloud account is required. Pro adds a personal local dashboard plus DPO export. Team is the hosted rollout lane when your group wants a shared lesson database, hosted review views, org dashboard visibility, and team-wide proof.</div>
909
+ <div class="faq-a">No. Free keeps local enforcement on your machine with 3 daily feedback captures, 5 lesson searches, unlimited recall, gates, and hook blocking. 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 and DPO export.</div>
815
910
  </div>
816
911
  <div class="faq-item">
817
912
  <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>
818
- <div class="faq-a">ThumbGate can reuse the last ~10 messages, the failed tool call, and later follow-up notes to propose <code>whatWentWrong</code>, <code>whatToChange</code>, and a reusable lesson. The feedback session stays linked instead of creating duplicate records.</div>
913
+ <div class="faq-a">For the current Claude auto-capture hook, ThumbGate can reuse up to 8 prior recorded entries and the failed tool call for a vague thumbs-down, then keep a linked 60-second feedback session open for later clarification. The timer resets when more context arrives, so the lesson stays attached to one feedback record instead of fragmenting into duplicates.</div>
819
914
  </div>
820
915
  <div class="faq-item">
821
916
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">How are pre-action gates different from prompt rules?</div>
@@ -823,7 +918,7 @@ __GA_BOOTSTRAP__
823
918
  </div>
824
919
  <div class="faq-item">
825
920
  <div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What does Pro cost?</div>
826
- <div class="faq-a">Pro is $19/mo or $149/yr (save 35%). Team starts at $36/mo for 3 seats, then $12/seat/mo, or $297/yr at the 3-seat floor. Cancel anytime. No contracts.</div>
921
+ <div class="faq-a">Pro is $19/mo or $149/yr (save 35%) for individual operators. Team pricing anchors at $99/seat/mo with a 3-seat minimum, and team buyers start with the workflow sprint intake instead of a blind org-wide rollout.</div>
827
922
  </div>
828
923
  </div>
829
924
  </div>
@@ -833,11 +928,11 @@ __GA_BOOTSTRAP__
833
928
  <section class="compatibility" id="newsletter" style="padding: 48px 0;">
834
929
  <div class="container" style="text-align: center;">
835
930
  <div class="section-label">Buyer Follow-Up</div>
836
- <h2 class="section-title" style="margin-bottom: 16px;">Not ready to buy today? Keep the demo and checkout link one click away.</h2>
837
- <p style="color: var(--text-dim); margin-bottom: 24px; max-width: 560px; margin-left: auto; margin-right: auto;">Save your work email for launch updates, new gate patterns, and the paid demo path. We also keep it on this device so the Pro checkout can open prefilled instead of making you type it again.</p>
931
+ <h2 class="section-title" style="margin-bottom: 16px;">Not ready to buy today? Keep the sprint brief, demo, and discovery notes one click away.</h2>
932
+ <p style="color: var(--text-dim); margin-bottom: 24px; max-width: 560px; margin-left: auto; margin-right: auto;">Save your work email for the workflow sprint brief, new gate patterns, and buyer-facing proof updates. If you later choose the solo Pro checkout, we keep that path prefilled on this device too.</p>
838
933
  <form action="/api/newsletter" method="POST" data-newsletter-form data-page="homepage" data-intent="buyer_follow_up" style="display: flex; gap: 8px; max-width: 480px; margin: 0 auto; flex-wrap: wrap; justify-content: center;">
839
934
  <input type="email" name="email" data-buyer-email placeholder="you@company.com" required style="flex: 1; min-width: 220px; padding: 12px 16px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-raised); color: var(--text); font-size: 15px;">
840
- <button type="submit" style="padding: 12px 24px; background: var(--cyan); color: #000; border: none; border-radius: 8px; font-weight: 600; font-size: 15px; cursor: pointer;">Get updates + keep checkout ready</button>
935
+ <button type="submit" style="padding: 12px 24px; background: var(--cyan); color: #000; border: none; border-radius: 8px; font-weight: 600; font-size: 15px; cursor: pointer;">Get sprint brief + updates</button>
841
936
  </form>
842
937
  <p data-newsletter-status style="min-height:20px;font-size:12px;color:var(--text-dim);margin-top:10px;" aria-live="polite"></p>
843
938
  </div>
@@ -846,11 +941,11 @@ __GA_BOOTSTRAP__
846
941
  <!-- FINAL CTA -->
847
942
  <section class="final-cta">
848
943
  <div class="container">
849
- <h2>Put ThumbGate on your next AI-generated change.</h2>
850
- <p>Try the dashboard demo first or install in 30 seconds. Prove the value on a real PR, deploy, or migration.</p>
944
+ <h2>Start with one workflow you actually need to defend.</h2>
945
+ <p>Use the workflow hardening sprint for team rollout. Install the free CLI if you are still evaluating alone. Pro remains the solo side lane for a personal dashboard and review-ready exports.</p>
851
946
  <div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;">
852
- <a href="/dashboard" class="btn-demo-link" style="background:transparent;border:1px solid var(--cyan);color:var(--cyan);">Try Dashboard Demo</a>
853
- <a href="/checkout/pro?utm_source=website&utm_medium=homepage_final&utm_campaign=pro_pack&cta_id=homepage_final_trial&cta_placement=final&plan_id=pro&landing_path=%2F" class="btn-pro">Try Pro free for 7 days → $19/mo</a>
947
+ <a href="#workflow-sprint-intake" class="btn-team" style="background:var(--green);">Start Workflow Hardening Sprint</a>
948
+ <a href="/guide?utm_source=website&utm_medium=homepage_final&utm_campaign=install_free" class="btn-pro btn-install-link">Install Free CLI</a>
854
949
  </div>
855
950
  </div>
856
951
  </section>
@@ -861,11 +956,12 @@ __GA_BOOTSTRAP__
861
956
  <div class="footer-links">
862
957
  <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
863
958
  <a href="https://www.npmjs.com/package/thumbgate" target="_blank" rel="noopener">npm</a>
959
+ <a href="https://www.producthunt.com/products/thumbgate" target="_blank" rel="noopener">Product Hunt</a>
864
960
  <a href="https://x.com/IgorGanapolsky" target="_blank" rel="noopener">X / Twitter</a>
865
961
  <a href="https://www.linkedin.com/in/igorganapolsky" target="_blank" rel="noopener">LinkedIn</a>
866
962
  <a href="/blog">Blog</a>
867
963
  </div>
868
- <span class="footer-copy">© 2026 Max Smith KDP LLC · MIT License · v1.2.0</span>
964
+ <span class="footer-copy">© 2026 Max Smith KDP LLC · MIT License · v1.4.0</span>
869
965
  </div>
870
966
  </footer>
871
967
 
@@ -880,11 +976,13 @@ function initializeBuyerIntentForms() {
880
976
  }
881
977
 
882
978
  function resolvePricingClickTier(el) {
979
+ if (el.classList.contains('btn-install-link')) return 'install';
883
980
  if (el.classList.contains('btn-pro')) return 'pro';
884
981
  if (el.classList.contains('btn-pro-page')) return 'pro_page';
885
982
  if (el.classList.contains('btn-team')) return 'team';
886
983
  if (el.classList.contains('btn-free')) return 'free';
887
984
  if (el.classList.contains('btn-demo-link')) return 'demo';
985
+ if (el.classList.contains('nav-cta')) return 'team';
888
986
  return 'nav';
889
987
  }
890
988
 
@@ -922,15 +1020,16 @@ function copyInstall(el) {
922
1020
 
923
1021
  /* CTA clicks */
924
1022
  trackClick('.btn-pro', 'checkout_start', { tier: 'pro', price: 19, billing: 'monthly' });
925
- trackClick('.btn-pro-page', 'pro_page_click', { tier: 'pro', source: 'hero' });
1023
+ trackClick('.btn-pro-page:not(.btn-install-link)', 'pro_page_click', { tier: 'pro', source: 'hero' });
1024
+ trackClick('.btn-install-link', 'install_guide_click', { tier: 'free', source: 'homepage_cta' });
926
1025
  trackClick('.btn-team', 'workflow_sprint_intake_click', { tier: 'team', offer: 'workflow_hardening_sprint' });
927
1026
  trackClick('.btn-free', 'install_click', { tier: 'free' });
928
1027
  trackClick('.btn-demo-link', 'demo_click', { source: 'homepage' });
929
- trackClick('.nav-cta', 'pro_page_click', { tier: 'pro', source: 'nav' });
1028
+ trackClick('.nav-cta', 'workflow_sprint_intake_click', { tier: 'team', source: 'nav', offer: 'workflow_hardening_sprint' });
930
1029
 
931
1030
  /* Pricing CTA conversion tracking — fires on every Get Started / Pro / Team button click
932
1031
  with section context so we can distinguish pricing section vs final CTA section clicks */
933
- document.querySelectorAll('.btn-pro, .btn-pro-page, .btn-team, .btn-free, .btn-demo-link, .nav-cta').forEach(function(el) {
1032
+ document.querySelectorAll('.btn-pro, .btn-pro-page, .btn-install-link, .btn-team, .btn-free, .btn-demo-link, .nav-cta').forEach(function(el) {
934
1033
  el.addEventListener('click', function() {
935
1034
  var section = el.closest('section');
936
1035
  var sectionId = section ? (section.id || section.className.split(' ')[0] || 'unknown') : 'unknown';
@@ -128,6 +128,7 @@
128
128
 
129
129
  <h3>Episodic layer: the feedback log</h3>
130
130
  <p>Every thumbs-up or thumbs-down you give an agent action is written to a structured feedback log. Each entry captures the tool call that was made, the context at the time, what worked or went wrong, and any tags you add. The log is append-only and survives across sessions.</p>
131
+ <p>In the current Claude auto-capture hook, a vague thumbs-down can borrow up to 8 prior recorded entries plus the failed tool call before promotion. Accepted feedback also opens a linked 60-second follow-up session so later corrections stay attached to the same memory trace instead of fragmenting into duplicates.</p>
131
132
 
132
133
  <pre><code># Thumbs-down: record a specific failure
133
134
  node .claude/scripts/feedback/capture-feedback.js \