thumbgate 1.23.0 → 1.23.2

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 (40) hide show
  1. package/.claude-plugin/marketplace.json +5 -5
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.well-known/llms.txt +26 -11
  4. package/.well-known/mcp/server-card.json +8 -8
  5. package/README.md +69 -34
  6. package/adapters/claude/.mcp.json +2 -2
  7. package/adapters/mcp/server-stdio.js +1 -1
  8. package/adapters/opencode/opencode.json +1 -1
  9. package/bin/cli.js +57 -16
  10. package/bin/postinstall.js +11 -22
  11. package/config/gate-templates.json +72 -0
  12. package/config/github-about.json +1 -1
  13. package/config/post-deploy-marketing-pages.json +10 -0
  14. package/package.json +6 -6
  15. package/public/agent-manager.html +3 -3
  16. package/public/agents-cost-savings.html +3 -3
  17. package/public/ai-malpractice-prevention.html +726 -149
  18. package/public/blog.html +3 -3
  19. package/public/codex-enterprise.html +3 -3
  20. package/public/codex-plugin.html +4 -4
  21. package/public/compare.html +6 -6
  22. package/public/dashboard.html +211 -126
  23. package/public/guide.html +5 -5
  24. package/public/index.html +187 -47
  25. package/public/learn.html +24 -10
  26. package/public/lessons.html +2 -2
  27. package/public/numbers.html +6 -6
  28. package/public/pricing.html +6 -5
  29. package/public/pro.html +23 -0
  30. package/scripts/billing.js +17 -0
  31. package/scripts/commercial-offer.js +75 -0
  32. package/scripts/dashboard.js +53 -1
  33. package/scripts/gates-engine.js +3 -3
  34. package/scripts/plausible-server-events.js +2 -1
  35. package/scripts/rate-limiter.js +16 -12
  36. package/scripts/seo-gsd.js +167 -1
  37. package/scripts/telemetry-analytics.js +310 -0
  38. package/scripts/visitor-journey.js +172 -0
  39. package/src/api/server.js +65 -29
  40. package/adapters/chatgpt/openapi.yaml +0 -1705
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thumbgate-marketplace",
3
- "version": "1.23.0",
3
+ "version": "1.23.2",
4
4
  "owner": {
5
5
  "name": "Igor Ganapolsky",
6
6
  "email": "ig5973700@gmail.com"
@@ -9,18 +9,18 @@
9
9
  {
10
10
  "name": "thumbgate",
11
11
  "description": "One šŸ‘Ž becomes a hard rule the agent cannot bypass. Captures thumbs-down feedback, distills it into PreToolUse Pre-Action Checks, enforced across every future Claude Code session.",
12
- "longDescription": "ThumbGate is a tripwire, not a memory layer. When you thumbs-down an agent action — a force-push that overwrote a teammate's commit, a destructive SQL drop, a refactor you already rejected — ThumbGate captures the pattern, distills a one-sentence lesson, and installs it as a PreToolUse block. The next time the agent reaches for the same tool call shape, the hook fires before execution and Claude sees your own words back as the reason.\n\nThe enforcement lives in the hook, not in the model's context, so the agent cannot bypass it by forgetting, by being prompted around it, or by switching sessions. Same rule works in Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, and OpenCode.\n\n33 pre-action checks shipped (force-push, destructive SQL, mass-delete, npm publish from wrong branch, deploy without verification). Budget enforcement (action count + time limits) prevents runaway agent sessions. NIST / SOC2 / OWASP / CWE compliance tags on every rule for enterprise teams. DPO training-pair export for teams running their own fine-tunes.\n\nFree tier: unlimited local rules, fully offline. Pro ($19/mo): cloud sync across team, dashboard, audit export.",
12
+ "longDescription": "ThumbGate is a tripwire, not a memory layer. When you thumbs-down an agent action — a force-push that overwrote a teammate's commit, a destructive SQL drop, a refactor you already rejected — ThumbGate captures the pattern, distills a one-sentence lesson, and installs it as a PreToolUse block. The next time the agent reaches for the same tool call shape, the hook fires before execution and Claude sees your own words back as the reason.\n\nThe enforcement lives in the hook, not in the model's context, so the agent cannot bypass it by forgetting, by being prompted around it, or by switching sessions. Same rule works in Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, and OpenCode.\n\n33 pre-action checks shipped (force-push, destructive SQL, mass-delete, npm publish from wrong branch, deploy without verification). Budget enforcement (action count + time limits) prevents runaway agent sessions. NIST / SOC2 / OWASP / CWE compliance tags on every rule for enterprise teams. DPO training-pair export for teams running their own fine-tunes.\n\nFree tier: 5 feedback captures/day, 25 total captures, 3 active auto-promoted prevention rules, fully offline. Pro ($19/mo): hosted sync across machines and agent runtimes, dashboard, audit export.",
13
13
  "source": {
14
14
  "source": "npm",
15
15
  "package": "thumbgate"
16
16
  },
17
- "version": "1.23.0",
17
+ "version": "1.23.2",
18
18
  "author": {
19
19
  "name": "Igor Ganapolsky",
20
20
  "email": "ig5973700@gmail.com",
21
21
  "url": "https://thumbgate.ai"
22
22
  },
23
- "homepage": "https://thumbgate-production.up.railway.app",
23
+ "homepage": "https://thumbgate.ai",
24
24
  "repository": "https://github.com/IgorGanapolsky/ThumbGate",
25
25
  "license": "MIT",
26
26
  "category": "developer-tools",
@@ -60,7 +60,7 @@
60
60
  "installCommand": "/plugin install thumbgate@claude-plugins-official",
61
61
  "metadata": {
62
62
  "author": "Igor Ganapolsky",
63
- "homepage": "https://thumbgate-production.up.railway.app",
63
+ "homepage": "https://thumbgate.ai",
64
64
  "license": "MIT",
65
65
  "keywords": [
66
66
  "guardrails",
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "thumbgate",
3
3
  "description": "One šŸ‘Ž becomes a hard rule the agent cannot bypass. Captures thumbs-down feedback, distills it into PreToolUse Pre-Action Checks, enforced across every future Claude Code session.",
4
- "version": "1.23.0",
4
+ "version": "1.23.2",
5
5
  "author": {
6
6
  "name": "Igor Ganapolsky",
7
7
  "email": "ig5973700@gmail.com",
8
8
  "url": "https://thumbgate.ai"
9
9
  },
10
- "homepage": "https://thumbgate-production.up.railway.app",
10
+ "homepage": "https://thumbgate.ai",
11
11
  "repository": "https://github.com/IgorGanapolsky/ThumbGate",
12
12
  "license": "MIT",
13
13
  "category": "developer-tools",
@@ -1,5 +1,5 @@
1
1
  # ThumbGate — Stop AI agents before they make costly mistakes.
2
- # https://thumbgate-production.up.railway.app
2
+ # https://thumbgate.ai
3
3
  # https://github.com/IgorGanapolsky/ThumbGate
4
4
  # https://www.npmjs.com/package/thumbgate
5
5
 
@@ -24,6 +24,15 @@
24
24
  4. PreToolUse hooks block the pattern before it executes again
25
25
  5. Thompson Sampling adapts gate confidence over time
26
26
 
27
+ ## Agentic development cycle fit
28
+
29
+ ThumbGate maps to Guide, Generate, Verify, Solve by adding a pre-action execution gate:
30
+
31
+ - Guide: feedback and policies become concrete rules
32
+ - Generate: agents still produce plans, edits, and tool calls
33
+ - Verify: risky actions require evidence before execution
34
+ - Solve: blocked failures become reusable lessons and prevention gates
35
+
27
36
  ## Who it's for
28
37
 
29
38
  - Developers using Claude Code, Cursor, Codex, Gemini CLI, or any MCP-compatible agent
@@ -40,22 +49,28 @@ npx thumbgate init --agent claude-code
40
49
  ## Pricing
41
50
 
42
51
  - Free GPT: advice, checkpointing, and setup help in ChatGPT
43
- - Free local CLI: unlimited feedback captures, up to 5 active prevention rules, and local Pre-Action Checks after install (recall and lesson search are Pro-only)
44
- - Pro: $19/mo or $149/yr — personal enforcement proof, local dashboard, check debugger, DPO export, and review-ready exports
52
+ - Free local CLI: 5 captures/day, 25 total captures, up to 3 active auto-promoted prevention rules, and local Pre-Action Checks after install (recall and lesson search are Pro-only)
53
+ - Pro: $19/mo or $149/yr — personal enforcement proof, local dashboard, check debugger, DPO export, synced lessons/rules across machines, and review-ready exports
45
54
  - Team: $49/seat/mo, 3-seat minimum after intake — shared lessons, org visibility, approval boundaries, and rollout proof
46
55
 
47
56
  ## Links
48
57
 
49
- - Agent discovery: https://thumbgate-production.up.railway.app/.well-known/mcp.json
50
- - Progressive tool index: https://thumbgate-production.up.railway.app/.well-known/mcp/tools.json
51
- - Context footprint report: https://thumbgate-production.up.railway.app/.well-known/mcp/footprint.json
52
- - Agent skills: https://thumbgate-production.up.railway.app/.well-known/mcp/skills.json
53
- - MCP applications: https://thumbgate-production.up.railway.app/.well-known/mcp/applications.json
54
- - Documentation: https://thumbgate-production.up.railway.app/guide
55
- - Dashboard: https://thumbgate-production.up.railway.app/dashboard
58
+ - Home: https://thumbgate.ai/
59
+ - Pricing: https://thumbgate.ai/pricing
60
+ - Pro checkout: https://thumbgate.ai/checkout/pro
61
+ - Agent discovery: https://thumbgate.ai/.well-known/mcp.json
62
+ - Progressive tool index: https://thumbgate.ai/.well-known/mcp/tools.json
63
+ - Context footprint report: https://thumbgate.ai/.well-known/mcp/footprint.json
64
+ - AI Mode ads and agent governance: https://thumbgate.ai/guides/ai-mode-ads-agent-governance
65
+ - MCP tool governance: https://thumbgate.ai/guides/mcp-tool-governance
66
+ - AI agent pre-action approval gates: https://thumbgate.ai/guides/ai-agent-pre-action-approval-gates
67
+ - Agent skills: https://thumbgate.ai/.well-known/mcp/skills.json
68
+ - MCP applications: https://thumbgate.ai/.well-known/mcp/applications.json
69
+ - Documentation: https://thumbgate.ai/guide
70
+ - Dashboard: https://thumbgate.ai/dashboard
56
71
  - GitHub: https://github.com/IgorGanapolsky/ThumbGate
57
72
  - npm: https://www.npmjs.com/package/thumbgate
58
- - Full LLM context: https://thumbgate-production.up.railway.app/public/llm-context.md
73
+ - Full LLM context: https://thumbgate.ai/llm-context.md
59
74
 
60
75
  ## Compared to alternatives
61
76
 
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "thumbgate",
3
- "version": "1.23.0",
3
+ "version": "1.23.2",
4
4
  "description": "ThumbGate — šŸ‘šŸ‘Ž feedback that teaches your AI agent. Thumbs down a mistake, it never happens again.",
5
- "homepage": "https://thumbgate-production.up.railway.app",
5
+ "homepage": "https://thumbgate.ai",
6
6
  "transport": "stdio",
7
7
  "discovery": {
8
- "manifestUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp.json",
9
- "toolIndexUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp/tools.json",
10
- "toolSchemaUrlTemplate": "https://thumbgate-production.up.railway.app/.well-known/mcp/tools/{name}.json",
11
- "footprintUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp/footprint.json",
12
- "skillsUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp/skills.json",
13
- "applicationsUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp/applications.json"
8
+ "manifestUrl": "https://thumbgate.ai/.well-known/mcp.json",
9
+ "toolIndexUrl": "https://thumbgate.ai/.well-known/mcp/tools.json",
10
+ "toolSchemaUrlTemplate": "https://thumbgate.ai/.well-known/mcp/tools/{name}.json",
11
+ "footprintUrl": "https://thumbgate.ai/.well-known/mcp/footprint.json",
12
+ "skillsUrl": "https://thumbgate.ai/.well-known/mcp/skills.json",
13
+ "applicationsUrl": "https://thumbgate.ai/.well-known/mcp/applications.json"
14
14
  }
15
15
  }
package/README.md CHANGED
@@ -6,9 +6,11 @@
6
6
  </a>
7
7
  </p>
8
8
 
9
- **AI agents repeat mistakes. You pay for every retry.**
9
+ **AI agents repeat mistakes. In regulated industries, one wrong action is a liability event.**
10
10
 
11
- ThumbGate remembers what went wrong and permanently blocks it before it happens again. One thumbs-down becomes a prevention rule that fires across every session, every agent, every model — before a single token is spent on the repeat.
11
+ ThumbGate is deterministic pre-action governance for AI agents. From developer workflows to legal intake to financial compliance — one rule blocks unauthorized actions before they execute, across every session, every agent, every model.
12
+
13
+ The product is a self-improving enforcement layer: thumbs-down feedback, prompt evaluation, and proof from prior runs become prevention rules that permanently stop repeated failures before the next tool call.
12
14
 
13
15
  ```
14
16
  Agent tries: rm -rf tests/
@@ -22,7 +24,11 @@ ThumbGate remembers what went wrong and permanently blocks it before it happens
22
24
  npx thumbgate init # auto-detects your agent, wires hooks, 30 seconds
23
25
  ```
24
26
 
25
- Works with **Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode** and any MCP-compatible agent. Free tier: 5 active prevention rules. [Pro: $19/mo](https://thumbgate-production.up.railway.app/checkout/pro?utm_source=github&utm_medium=readme) — unlimited rules, dashboard, DPO export.
27
+ Works with **Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode** and any MCP-compatible agent.
28
+
29
+ **Free:** 5 feedback captures/day (25 total captures), 3 active auto-promoted prevention rules, all MCP integrations, local-first.
30
+ **[Pro — $19/mo or $149/yr](https://thumbgate.ai/checkout/pro?utm_source=github&utm_medium=readme):** no limits on captures or rules, history-aware lessons, feedback sessions, hosted dashboard, DPO export.
31
+ **Team — $49/seat/mo:** shared hosted lesson DB, org dashboard, approval boundaries.
26
32
 
27
33
  [![CI](https://github.com/IgorGanapolsky/ThumbGate/actions/workflows/ci.yml/badge.svg)](https://github.com/IgorGanapolsky/ThumbGate/actions/workflows/ci.yml)
28
34
  [![npm](https://img.shields.io/npm/v/thumbgate)](https://www.npmjs.com/package/thumbgate)
@@ -38,11 +44,24 @@ Works with **Claude Code, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode** and
38
44
 
39
45
  ---
40
46
 
47
+ ## Agentic development cycle fit
48
+
49
+ Agentic development is becoming a loop: **Guide → Generate → Verify → Solve**. ThumbGate gives that loop a hard execution boundary.
50
+
51
+ - **Guide:** standards, prior thumbs-downs, and approval policies become concrete context.
52
+ - **Generate:** Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and MCP agents keep producing plans and tool calls.
53
+ - **Verify:** risky actions need evidence before execution, not just after PR review.
54
+ - **Solve:** blocked failures become reusable lessons, shared prevention rules, DPO exports, and audit events.
55
+
56
+ In that stack, ThumbGate is the pre-action gate between generated intent and executed action.
57
+
58
+ ---
59
+
41
60
  ## šŸŽ¬ 90-second demo
42
61
 
43
62
  Watch the force-push scenario: agent tries to `git push --force`, one thumbs-down, next session it's blocked — zero tokens spent on the repeat.
44
63
 
45
- [**ā–¶ Watch the 90-second demo**](https://thumbgate-production.up.railway.app/#demo?utm_source=github&utm_medium=readme&utm_campaign=demo_video) Ā· [Script](docs/marketing/demo-video-script.md) Ā· [ElevenLabs narration: `npm run demo:voiceover`](scripts/generate-demo-voiceover.js)
64
+ [**ā–¶ Watch the 90-second demo**](https://thumbgate.ai/#demo?utm_source=github&utm_medium=readme&utm_campaign=demo_video) Ā· [Script](docs/marketing/demo-video-script.md) Ā· [ElevenLabs narration: `npm run demo:voiceover`](scripts/generate-demo-voiceover.js)
46
65
 
47
66
  <!-- Video embed lives on the landing page and YouTube. Script + voiceover automation ship with the repo so anyone can re-record. -->
48
67
 
@@ -52,7 +71,7 @@ Watch the force-push scenario: agent tries to `git push --force`, one thumbs-dow
52
71
 
53
72
  If someone is not already bought into ThumbGate, do not lead with architecture. Lead with one repeated mistake.
54
73
 
55
- 1. **Show the pain:** open the **[ThumbGate GPT](https://thumbgate-production.up.railway.app/go/gpt?utm_source=github&utm_medium=readme&utm_campaign=first_dollar_activation&cta_id=readme_first_dollar_open_gpt&cta_placement=readme_first_dollar)** and paste the bad answer, risky command, deploy, PR action, or agent plan before it runs again.
74
+ 1. **Show the pain:** open the **[ThumbGate GPT](https://thumbgate.ai/go/gpt?utm_source=github&utm_medium=readme&utm_campaign=first_dollar_activation&cta_id=readme_first_dollar_open_gpt&cta_placement=readme_first_dollar)** and paste the bad answer, risky command, deploy, PR action, or agent plan before it runs again.
56
75
  2. **Capture the lesson:** type `thumbs down:` or `thumbs up:` with one concrete sentence. Native ChatGPT rating buttons are not the ThumbGate capture path; typed feedback is.
57
76
  3. **Enforce the repeat:** run `npx thumbgate init` where the agent executes so the lesson can become one of your Pre-Action Checks instead of another reminder.
58
77
  4. **Upgrade only after proof:** Solo Pro is for the dashboard, DPO export, proof-ready evidence, and higher capture limits after one real blocked repeat. Team starts with the Workflow Hardening Sprint around one repeated failure, one owner, and one proof review.
@@ -210,7 +229,7 @@ Claude renders the live ThumbGate footer today. `npx thumbgate init --agent code
210
229
 
211
230
  Open the Codex plugin install page or download the standalone bundle from GitHub Releases. The Codex launcher resolves `thumbgate@latest` when MCP and hooks start, so published npm fixes reach active Codex installs without hand-editing `~/.codex/config.toml`.
212
231
 
213
- 1. Install page: [thumbgate-production.up.railway.app/codex-plugin](https://thumbgate-production.up.railway.app/codex-plugin)
232
+ 1. Install page: [thumbgate.ai/codex-plugin](https://thumbgate.ai/codex-plugin)
214
233
  2. Direct zip: [thumbgate-codex-plugin.zip](https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-codex-plugin.zip)
215
234
  3. Follow: [plugins/codex-profile/INSTALL.md](plugins/codex-profile/INSTALL.md)
216
235
 
@@ -246,6 +265,7 @@ ThumbGate sells three concrete outcomes:
246
265
 
247
266
  ## Use Cases
248
267
 
268
+ ### Developer Workflows
249
269
  - **Stop force-push to main** — Check blocks `git push --force` on protected branches before it runs
250
270
  - **Prevent repeated migration failures** — Each mistake becomes a searchable lesson that fires before the next attempt
251
271
  - **Block unauthorized file edits** — Control which files agents can touch with path-based rules
@@ -253,6 +273,14 @@ ThumbGate sells three concrete outcomes:
253
273
  - **Shared team safety** — One developer's thumbs-down protects the whole team
254
274
  - **Auto-improving without feedback** — Self-improvement mode evaluates outcomes and generates rules automatically
255
275
 
276
+ ### Enterprise & Regulated Industries
277
+ - **Legal AI intake governance** — Block unauthorized practice of law (ABA Rule 5.5), require conflict-of-interest clearance before fact collection (Rules 1.7/1.9/1.10), prevent privileged content from leaving firm boundaries (Rule 1.6)
278
+ - **Financial compliance** — Gate AI-generated trade recommendations, block unauthorized disclosures, enforce approval chains before customer-facing outputs
279
+ - **Healthcare** — Prevent AI agents from providing medical diagnoses, enforce HIPAA-compliant data routing, require clinician review before patient-facing content
280
+ - **Audit trail** — Every gate decision (block, allow, reroute) is preserved with rule version, timestamp, and reviewer path for compliance review
281
+
282
+ [See the legal-intake demo →](https://thumbgate.ai/dashboard)
283
+
256
284
  ---
257
285
 
258
286
  ## Built-in Checks
@@ -290,30 +318,34 @@ npx thumbgate bench --programbench-smoke # include cleanroom whole-repo proof l
290
318
 
291
319
  ## Pricing
292
320
 
293
- | | Free | Pro ($19/mo) | Team ($49/seat/mo) |
294
- |---|---|---|---|
295
- | Local CLI + enforced checks | āœ… | āœ… | āœ… |
296
- | Feedback captures (lifetime) | 3 | Unlimited | Unlimited |
297
- | Auto-promoted prevention rules | 1 | Unlimited | Unlimited |
298
- | MCP agent integrations | All | All | All |
299
- | Personal dashboard | — | āœ… | āœ… |
300
- | DPO export (model fine-tuning) | — | āœ… | āœ… |
301
- | Team lesson export/import | — | āœ… | āœ… |
302
- | Shared hosted lesson DB | — | — | āœ… |
303
- | Org-wide dashboard | — | — | āœ… |
304
- | Approval + audit proof | — | — | āœ… |
305
-
306
- The free tier gives you unlimited feedback captures and up to 5 active auto-promoted prevention rules — generous enough to make ThumbGate part of your daily flow. MCP integrations for all agents (Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode) ship free.
307
-
308
- Pro ($19/mo or $149/yr) removes the rule cap and adds history-aware lesson recall, lesson search, DPO export, and a personal dashboard. Team ($49/seat/mo) adds a shared hosted lesson DB, org dashboard, and shared enforcement across the org. Pro and Team include `open_feedback_session`, `append_feedback_context`, and `finalize_feedback_session` for structured multi-turn feedback capture.
309
-
310
- **Best first paid motion for teams:** the **Workflow Hardening Sprint** — qualify one repeated failure before committing to a full rollout. **[Start intake →](https://thumbgate-production.up.railway.app/?utm_source=github&utm_medium=readme&utm_campaign=team_rollout#workflow-sprint-intake)**
321
+ | | Free | Pro ($19/mo) | Team ($49/seat/mo) | Enterprise |
322
+ |---|---|---|---|---|
323
+ | Local CLI + enforced checks | āœ… | āœ… | āœ… | āœ… |
324
+ | Feedback captures | 5/day, 25 total | Unlimited | Unlimited | Unlimited |
325
+ | Auto-promoted prevention rules | 3 active | Unlimited | Unlimited | Unlimited |
326
+ | MCP agent integrations | All | All | All | All |
327
+ | Personal dashboard | — | āœ… | āœ… | āœ… |
328
+ | DPO export (model fine-tuning) | — | āœ… | āœ… | āœ… |
329
+ | Team lesson export/import | — | āœ… | āœ… | āœ… |
330
+ | Shared hosted lesson DB | — | — | āœ… | āœ… |
331
+ | Org-wide dashboard | — | — | āœ… | āœ… |
332
+ | Approval + audit proof | — | — | āœ… | āœ… |
333
+ | Regulatory gate templates | — | — | — | āœ… |
334
+ | Custom policy layers (firm/practice-area) | — | — | — | āœ… |
335
+ | Compliance audit export | — | — | — | āœ… |
336
+ | Dedicated onboarding + SLA | — | — | — | āœ… |
337
+
338
+ The free tier gives you 5 feedback captures/day, 25 total captures, and up to 3 active auto-promoted prevention rules — enough to prove value without replacing Pro for daily operators. MCP integrations for all agents (Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode) ship free.
339
+
340
+ Pro ($19/mo or $149/yr) removes the capture/rule caps and adds history-aware lesson recall, lesson search, DPO export, hosted sync, and a personal dashboard. Team ($49/seat/mo) adds a shared hosted lesson DB, org dashboard, and shared enforcement across the org. Enterprise adds regulatory gate templates (legal intake, financial compliance, healthcare), custom policy layers scoped to firm/practice-area, compliance audit export, and dedicated onboarding with SLA.
341
+
342
+ **Best first paid motion for teams:** the **Workflow Hardening Sprint** — qualify one repeated failure before committing to a full rollout. **[Start intake →](https://thumbgate.ai/?utm_source=github&utm_medium=readme&utm_campaign=team_rollout#workflow-sprint-intake)**
311
343
 
312
344
  **Best first technical motion:** install the CLI-first and let `init` wire hooks for the agent you already use.
313
345
 
314
- **Paid path for individual operators:** [ThumbGate Pro](https://thumbgate-production.up.railway.app/checkout/pro?utm_source=github&utm_medium=readme&utm_campaign=pro_page) is the self-serve side lane for a personal dashboard and export-ready evidence.
346
+ **Paid path for individual operators:** [ThumbGate Pro](https://thumbgate.ai/checkout/pro?utm_source=github&utm_medium=readme&utm_campaign=pro_page) is the self-serve side lane for a personal dashboard and export-ready evidence.
315
347
 
316
- **[Start free](https://thumbgate-production.up.railway.app/?utm_source=github&utm_medium=readme)** Ā· **[See Pro](https://thumbgate-production.up.railway.app/checkout/pro?utm_source=github&utm_medium=readme)** Ā· **[Team Sprint intake](https://thumbgate-production.up.railway.app/?utm_source=github&utm_medium=readme#workflow-sprint-intake)**
348
+ **[Start free](https://thumbgate.ai/?utm_source=github&utm_medium=readme)** Ā· **[See Pro](https://thumbgate.ai/checkout/pro?utm_source=github&utm_medium=readme)** Ā· **[Team Sprint intake](https://thumbgate.ai/?utm_source=github&utm_medium=readme#workflow-sprint-intake)**
317
349
 
318
350
  ---
319
351
 
@@ -394,7 +426,7 @@ curl -X POST http://localhost:3456/v1/dpo/export \
394
426
  | Layer | Technology |
395
427
  |-------|-----------|
396
428
  | **Storage** | SQLite + FTS5, LanceDB vectors, JSONL logs |
397
- | **Capture** | Unlimited feedback captures (free + Pro) |
429
+ | **Capture** | 10/day on Free; unlimited on Pro/Team |
398
430
  | **Intelligence** | MemAlign dual recall, Thompson Sampling |
399
431
  | **Enforcement** | PreToolUse hook engine, Checks config |
400
432
  | **Interfaces** | MCP stdio, HTTP API, CLI (Node.js >=18) |
@@ -406,17 +438,19 @@ Every Changeset is tied to the exact `main` merge commit and generates Verificat
406
438
 
407
439
  ---
408
440
 
409
- **Popular buyer questions:** **[AI search topical presence](https://thumbgate-production.up.railway.app/guides/ai-search-topical-presence?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Relational knowledge and AI recommendations](https://thumbgate-production.up.railway.app/guides/relational-knowledge-ai-recommendations?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Background agent governance](https://thumbgate-production.up.railway.app/guides/background-agent-governance?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[GPT-5.5 model evaluation](https://thumbgate-production.up.railway.app/guides/gpt-5-5-model-evaluation?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Stop repeated AI agent mistakes](https://thumbgate-production.up.railway.app/guides/stop-repeated-ai-agent-mistakes?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Browser automation safety](https://thumbgate-production.up.railway.app/guides/browser-automation-safety?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Native messaging host security](https://thumbgate-production.up.railway.app/guides/native-messaging-host-security?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Autoresearch agent safety](https://thumbgate-production.up.railway.app/guides/autoresearch-agent-safety?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Cursor guardrails](https://thumbgate-production.up.railway.app/guides/cursor-agent-guardrails?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Codex CLI guardrails](https://thumbgate-production.up.railway.app/guides/codex-cli-guardrails?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Gemini CLI memory + enforcement](https://thumbgate-production.up.railway.app/guides/gemini-cli-feedback-memory?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Google Cloud MCP guardrails](https://thumbgate-production.up.railway.app/guides/gcp-mcp-guardrails?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Roo Code alternative: migrate to Cline](https://thumbgate-production.up.railway.app/guides/roo-code-alternative-cline?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)**
441
+ **Popular buyer questions:** **[AI search topical presence](https://thumbgate.ai/guides/ai-search-topical-presence?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Relational knowledge and AI recommendations](https://thumbgate.ai/guides/relational-knowledge-ai-recommendations?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Background agent governance](https://thumbgate.ai/guides/background-agent-governance?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[GPT-5.5 model evaluation](https://thumbgate.ai/guides/gpt-5-5-model-evaluation?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Stop repeated AI agent mistakes](https://thumbgate.ai/guides/stop-repeated-ai-agent-mistakes?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Browser automation safety](https://thumbgate.ai/guides/browser-automation-safety?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Native messaging host security](https://thumbgate.ai/guides/native-messaging-host-security?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Autoresearch agent safety](https://thumbgate.ai/guides/autoresearch-agent-safety?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Cursor guardrails](https://thumbgate.ai/guides/cursor-agent-guardrails?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Codex CLI guardrails](https://thumbgate.ai/guides/codex-cli-guardrails?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Gemini CLI memory + enforcement](https://thumbgate.ai/guides/gemini-cli-feedback-memory?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Google Cloud MCP guardrails](https://thumbgate.ai/guides/gcp-mcp-guardrails?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[Roo Code alternative: migrate to Cline](https://thumbgate.ai/guides/roo-code-alternative-cline?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)**
442
+
443
+ **Conversational ad / AI-search answer assets:** **[AI Mode ads for agent governance](https://thumbgate.ai/guides/ai-mode-ads-agent-governance?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[MCP tool governance](https://thumbgate.ai/guides/mcp-tool-governance?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)** Ā· **[AI agent pre-action approval gates](https://thumbgate.ai/guides/ai-agent-pre-action-approval-gates?utm_source=github&utm_medium=readme&utm_campaign=buyer_questions)**
410
444
 
411
- **[Workflow Hardening Sprint](https://thumbgate-production.up.railway.app/?utm_source=github&utm_medium=readme&utm_campaign=top_cta#workflow-sprint-intake)** Ā· **[Live Dashboard](https://thumbgate-production.up.railway.app/dashboard?utm_source=github&utm_medium=readme&utm_campaign=top_cta)**
445
+ **[Workflow Hardening Sprint](https://thumbgate.ai/?utm_source=github&utm_medium=readme&utm_campaign=top_cta#workflow-sprint-intake)** Ā· **[Live Dashboard](https://thumbgate.ai/dashboard?utm_source=github&utm_medium=readme&utm_campaign=top_cta)**
412
446
 
413
447
  ---
414
448
 
415
449
  ## Integrations
416
450
 
417
- - **[Open ThumbGate GPT](https://thumbgate-production.up.railway.app/go/gpt?utm_source=github&utm_medium=readme&utm_campaign=readme_gpt)** — ThumbGate GPT: start here. Paste agent actions, get advice + checkpointing. No, users do not have to keep chatting inside the ThumbGate GPT to use ThumbGate — the hard enforcement layer still runs where the work happens.
451
+ - **[Open ThumbGate GPT](https://thumbgate.ai/go/gpt?utm_source=github&utm_medium=readme&utm_campaign=readme_gpt)** — ThumbGate GPT: start here. Paste agent actions, get advice + checkpointing. No, users do not have to keep chatting inside the ThumbGate GPT to use ThumbGate — the hard enforcement layer still runs where the work happens.
418
452
  - **[Claude Desktop Extension](https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb)** — One-click install for Claude Desktop
419
- - **[Codex Plugin](https://thumbgate-production.up.railway.app/codex-plugin)** — Auto-updating standalone bundle and install page for Codex CLI
453
+ - **[Codex Plugin](https://thumbgate.ai/codex-plugin)** — Auto-updating standalone bundle and install page for Codex CLI
420
454
  - **[VS Code / Open VSX Extension](plugins/vscode-extension/README.md)** — Marketplace-ready MCP provider and `.vscode/mcp.json` fallback for VS Code-compatible IDEs
421
455
  - **[Antigravity-compatible VSIX](plugins/antigravity-extension/INSTALL.md)** — Open VSX/direct VSIX install path while Antigravity-specific marketplace support is still unproven
422
456
  - **[JetBrains Plugin Scaffold](plugins/jetbrains-plugin/README.md)** — IntelliJ/PyCharm Marketplace path for the same `thumbgate@latest` runtime
@@ -455,15 +489,15 @@ Those are suggestions the agent can ignore. ThumbGate checks are enforced — th
455
489
  If it supports MCP or pre-action hooks, yes. Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI, Amp, Cline, OpenCode all work out of the box.
456
490
 
457
491
  **Is it free?**
458
- The free tier gives you unlimited feedback captures and up to 5 active auto-promoted prevention rules — generous enough for solo devs to use daily. MCP integrations ship free for every agent.
492
+ The free tier gives you 5 feedback captures/day, 25 total captures, and up to 3 active auto-promoted prevention rules. MCP integrations ship free for every agent.
459
493
 
460
- Pro ($19/mo or $149/yr) removes the rule cap and adds history-aware lesson recall, lesson search, and a personal dashboard. Team ($49/seat/mo) adds a shared hosted lesson DB, org dashboard, and shared enforcement.
494
+ Pro ($19/mo or $149/yr) removes the capture/rule caps and adds history-aware lesson recall, lesson search, hosted sync, and a personal dashboard. Team ($49/seat/mo) adds a shared hosted lesson DB, org dashboard, and shared enforcement.
461
495
 
462
496
  ---
463
497
 
464
498
  ## Docs
465
499
 
466
- - [**ThumbGate for Federal Agencies**](docs/FEDERAL.md) — pilot-ready posture, NIST 800-53 control mapping, OMB M-24-10 / EO 14110 alignment, ThumbGate-Core gov deployment mode, public/Core boundary invariants. Landing page: [thumbgate.ai/federal](https://thumbgate-production.up.railway.app/federal).
500
+ - [**ThumbGate for Federal Agencies**](docs/FEDERAL.md) — pilot-ready posture, NIST 800-53 control mapping, OMB M-24-10 / EO 14110 alignment, ThumbGate-Core gov deployment mode, public/Core boundary invariants. Landing page: [thumbgate.ai/federal](https://thumbgate.ai/federal).
467
501
  - [First Dollar Playbook](docs/FIRST_DOLLAR_PLAYBOOK.md) — turning one painful workflow into the next booked pilot
468
502
  - [Commercial Truth](docs/COMMERCIAL_TRUTH.md) — pricing, claims, what we don't say
469
503
  - [Goal Contracts](docs/GOAL_CONTRACTS.md) — evidence-before-done contracts for multi-agent handoffs
@@ -476,6 +510,7 @@ Pro ($19/mo or $149/yr) removes the rule cap and adds history-aware lesson recal
476
510
  - [SEO Guide: Claude Code Guardrails](docs/learn/claude-code-guardrails.md)
477
511
  - [Unsupervised Learning Signals](docs/UL.md) — silent-failure clustering (experimental, behind `THUMBGATE_SILENT_FAILURE_CLUSTERING=1`; only useful on workspaces with ≄ 50 tool calls/day)
478
512
  - [ThumbGate-Core](https://github.com/IgorGanapolsky/ThumbGate-Core) — private core for hosted overlays, ranking, policy synthesis, billing intelligence, and org/team workflows
513
+ - [mac-yolo-safeguards](https://github.com/IgorGanapolsky/mac-yolo-safeguards?utm_source=thumbgate&utm_medium=readme&utm_campaign=companion_kit) — OS-level companion kit (macOS). ThumbGate stops the agent from billing you for repeated mistakes (token-layer governance). mac-yolo-safeguards stops the agent from freezing your Mac when it spawns runaway processes (OS-layer blast-radius containment). Same author, MIT, no telemetry.
479
514
 
480
515
  ---
481
516
 
@@ -2,13 +2,13 @@
2
2
  "mcpServers": {
3
3
  "thumbgate": {
4
4
  "command": "npx",
5
- "args": ["--yes", "--package", "thumbgate@1.23.0", "thumbgate", "serve"]
5
+ "args": ["--yes", "--package", "thumbgate@1.23.2", "thumbgate", "serve"]
6
6
  }
7
7
  },
8
8
  "hooks": {
9
9
  "preToolUse": {
10
10
  "command": "npx",
11
- "args": ["--yes", "--package", "thumbgate@1.23.0", "thumbgate", "gate-check"]
11
+ "args": ["--yes", "--package", "thumbgate@1.23.2", "thumbgate", "gate-check"]
12
12
  }
13
13
  }
14
14
  }
@@ -216,7 +216,7 @@ const {
216
216
  finalizeSession: finalizeFeedbackSession,
217
217
  } = require('../../scripts/feedback-session');
218
218
 
219
- const SERVER_INFO = { name: 'thumbgate-mcp', version: '1.23.0' };
219
+ const SERVER_INFO = { name: 'thumbgate-mcp', version: '1.23.2' };
220
220
  const COMMERCE_CATEGORIES = [
221
221
  'product_recommendation',
222
222
  'brand_compliance',
@@ -7,7 +7,7 @@
7
7
  "npx",
8
8
  "--yes",
9
9
  "--package",
10
- "thumbgate@1.23.0",
10
+ "thumbgate@1.23.2",
11
11
  "thumbgate",
12
12
  "serve"
13
13
  ],
package/bin/cli.js CHANGED
@@ -50,9 +50,12 @@ const COMMAND = process.argv[2];
50
50
  const CWD = process.cwd();
51
51
  const PKG_ROOT = path.join(__dirname, '..');
52
52
 
53
- const PRO_URL = 'https://thumbgate-production.up.railway.app';
53
+ const PRO_URL = 'https://thumbgate.ai';
54
54
  const PRO_CHECKOUT_URL = PRO_MONTHLY_PAYMENT_LINK;
55
- const TRIAL_DAYS = 14;
55
+ // Mirrors scripts/rate-limiter.js TRIAL_DAYS — must stay in sync. Gitar
56
+ // caught a 14-vs-7 mismatch on PR #2337 (banner said "7-day trial" but
57
+ // the date label was computed 14 days out).
58
+ const TRIAL_DAYS = 7;
56
59
 
57
60
  function checkoutUrlFor(source, content) {
58
61
  try {
@@ -67,6 +70,19 @@ function checkoutUrlFor(source, content) {
67
70
  }
68
71
  }
69
72
 
73
+ function pricingUrlFor(source, content) {
74
+ try {
75
+ const url = new URL('/pricing', PRO_URL);
76
+ url.searchParams.set('utm_source', source || 'cli');
77
+ url.searchParams.set('utm_medium', 'cli');
78
+ url.searchParams.set('utm_campaign', 'pro_education');
79
+ if (content) url.searchParams.set('utm_content', content);
80
+ return url.toString();
81
+ } catch (_) {
82
+ return `${PRO_URL}/pricing`;
83
+ }
84
+ }
85
+
70
86
  function trialDeadlineLabel(now = new Date()) {
71
87
  const deadline = new Date(now.getTime() + (TRIAL_DAYS * 24 * 60 * 60 * 1000));
72
88
  return deadline.toISOString().slice(0, 10);
@@ -78,11 +94,13 @@ function upgradeNudge() {
78
94
  const { isProTier } = require(path.join(PKG_ROOT, 'scripts', 'rate-limiter'));
79
95
  if (isProTier()) return;
80
96
  } catch (_) { return; }
97
+ const pricingUrl = pricingUrlFor('cli_upgrade_nudge', COMMAND || 'general');
81
98
  process.stderr.write(
82
99
  '\n Team rollout: start with the Workflow Hardening Sprint\n' +
83
- ' https://thumbgate-production.up.railway.app/#workflow-sprint-intake\n' +
100
+ ' https://thumbgate.ai/#workflow-sprint-intake\n' +
84
101
  `\n Solo side lane: Pro — ${PRO_PRICE_LABEL}\n` +
85
- ` ${PRO_CHECKOUT_URL}\n\n`
102
+ ' Keeps lessons, rules, and the dashboard synced across machines and agent runtimes.\n' +
103
+ ` ${pricingUrl}\n\n`
86
104
  );
87
105
  }
88
106
 
@@ -139,7 +157,7 @@ function telemetryPing(installId) {
139
157
  timestamp: new Date().toISOString(),
140
158
  };
141
159
  appendLocalTelemetry(payloadObject);
142
- const apiUrl = process.env.THUMBGATE_API_URL || 'https://thumbgate-production.up.railway.app';
160
+ const apiUrl = process.env.THUMBGATE_API_URL || 'https://thumbgate.ai';
143
161
  const payload = JSON.stringify(payloadObject);
144
162
  try {
145
163
  const url = new URL('/v1/telemetry/ping', apiUrl);
@@ -159,10 +177,11 @@ function proNudge(context) {
159
177
  if (isProTier()) return;
160
178
  } catch (_) { /* if rate-limiter is unavailable, fall through and nudge */ }
161
179
  const checkoutUrl = checkoutUrlFor('cli_nudge', context || COMMAND || 'general');
180
+ const pricingUrl = pricingUrlFor('cli_nudge', context || COMMAND || 'general');
162
181
  const messages = [
163
- `\n šŸ’” Unlock Pro (${PRO_PRICE_LABEL}): searchable dashboard, DPO export, multi-repo sync\n ${checkoutUrl}\n`,
164
- `\n šŸ’” Pro tip: export your feedback as DPO training pairs to improve your models.\n Get Pro: ${checkoutUrl}\n`,
165
- `\n šŸ’” ThumbGate Pro: search, edit, and sync lessons across repos. ${PRO_PRICE_LABEL}.\n ${checkoutUrl}\n`,
182
+ `\n šŸ’” Pro (${PRO_PRICE_LABEL}): keep lessons, rules, and dashboard state synced across machines and agent runtimes.\n See pricing: ${pricingUrl}\n`,
183
+ `\n šŸ’” You just taught ThumbGate something locally. Pro keeps that lesson alive on every laptop, CI box, and agent runtime.\n See pricing: ${pricingUrl}\n`,
184
+ `\n šŸ’” ThumbGate Pro syncs lessons/rules across Claude, Codex, Cursor, containers, and CI. ${PRO_PRICE_LABEL}.\n Start Pro: ${checkoutUrl}\n`,
166
185
  ];
167
186
  // Rotate message daily — no Math.random (security policy)
168
187
  const msg = messages[Math.floor(Date.now() / 86400000) % messages.length];
@@ -191,8 +210,8 @@ function printInitConversionPrompt(email) {
191
210
  const checkoutUrl = checkoutUrlFor('cli_init', email ? 'init_email' : 'init_no_email');
192
211
  console.log('');
193
212
  console.log(' ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”');
194
- console.log(` │ 14-day Pro trial active through ${trialDeadlineLabel()}. │`);
195
- console.log(' │ Pro unlocks lesson search, recall, dashboard, exports. │');
213
+ console.log(` │ 7-day Pro trial active through ${trialDeadlineLabel()}. │`);
214
+ console.log(' │ Pro keeps lessons/rules/dashboard synced everywhere. │');
196
215
  console.log(' │ Add onboarding: npx thumbgate init --email you@company.com │');
197
216
  console.log(` │ Upgrade: ${checkoutUrl}`);
198
217
  console.log(' ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜');
@@ -757,8 +776,11 @@ function init(cliArgs = parseArgs(process.argv.slice(3))) {
757
776
  }
758
777
 
759
778
  // ChatGPT — cannot be automated
760
- const chatgptSpec = path.join(PKG_ROOT, 'adapters', 'chatgpt', 'openapi.yaml');
761
- if (fs.existsSync(chatgptSpec)) {
779
+ const chatgptSpec = [
780
+ path.join(PKG_ROOT, 'openapi', 'openapi.yaml'),
781
+ path.join(PKG_ROOT, 'adapters', 'chatgpt', 'openapi.yaml'),
782
+ ].find((candidate) => fs.existsSync(candidate));
783
+ if (chatgptSpec) {
762
784
  const projectChatgptSpec = path.join(thumbgateDir, 'chatgpt-openapi.yaml');
763
785
  fs.copyFileSync(chatgptSpec, projectChatgptSpec);
764
786
  console.log(` ChatGPT: import ${path.relative(CWD, projectChatgptSpec)} in GPT Builder > Actions`);
@@ -935,10 +957,21 @@ function capture() {
935
957
  const pct = Math.round((capLimit.used / capLimit.limit) * 100);
936
958
  console.log(` Usage : ${capLimit.used}/${capLimit.limit} captures today (${pct}%)`);
937
959
  if (capLimit.remaining <= 1) {
938
- console.log(` āš ļø Free tier limit reached. Upgrade to Pro for unlimited: https://thumbgate-production.up.railway.app/pro`);
960
+ console.log(` āš ļø Free tier limit reached. Upgrade to Pro for unlimited: https://thumbgate.ai/pro`);
939
961
  }
940
962
  }
941
963
  console.log('');
964
+ try {
965
+ const { buildCaptureReceipt } = require(path.join(PKG_ROOT, 'scripts', 'commercial-offer'));
966
+ console.log(buildCaptureReceipt({
967
+ signal: normalized,
968
+ feedbackId: ev.id,
969
+ memoryId: mem.id,
970
+ actionType: ev.actionType,
971
+ }));
972
+ } catch (_) {
973
+ // Receipt is a conversion aid, not part of feedback persistence.
974
+ }
942
975
  proNudge();
943
976
  } else {
944
977
  if (args.json) {
@@ -1017,11 +1050,18 @@ function stats() {
1017
1050
  console.log(` Estimated Operational Loss: $${payload.revenueAtRisk}`);
1018
1051
  console.log(' Action Required: Run "npx thumbgate rules" to generate guardrails.');
1019
1052
  console.log(' Strategic Recommendation: if this is a shared workflow problem, start the Workflow Hardening Sprint.');
1020
- console.log(' Team intake: https://thumbgate-production.up.railway.app/#workflow-sprint-intake');
1053
+ console.log(' Team intake: https://thumbgate.ai/#workflow-sprint-intake');
1021
1054
  console.log(' Solo side lane: npx thumbgate pro');
1022
1055
  } else {
1023
1056
  console.log('\nāœ… System is currently high-reliability. No immediate revenue loss detected.');
1024
1057
  }
1058
+ try {
1059
+ const { buildStatsReceipt } = require(path.join(PKG_ROOT, 'scripts', 'commercial-offer'));
1060
+ const receipt = buildStatsReceipt(payload);
1061
+ if (receipt) console.log(receipt);
1062
+ } catch (_) {
1063
+ // Keep stats resilient if the receipt helper is unavailable in old installs.
1064
+ }
1025
1065
  proNudge();
1026
1066
  }
1027
1067
 
@@ -1127,13 +1167,14 @@ function pro() {
1127
1167
  } = require(path.join(PKG_ROOT, 'scripts', 'pro-local-dashboard'));
1128
1168
 
1129
1169
  function printProInfo() {
1130
- const hostedUrl = 'https://thumbgate-production.up.railway.app';
1170
+ const hostedUrl = 'https://thumbgate.ai';
1131
1171
  const truthUrl = 'https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/COMMERCIAL_TRUTH.md';
1132
1172
  console.log('\nThumbGate Pro — Local Dashboard');
1133
1173
  console.log('─'.repeat(50));
1134
1174
  console.log('Self-serve side lane today: Pro ($19/mo or $149/yr).');
1135
1175
  console.log('Every licensed Pro user gets a personal local dashboard on localhost.');
1136
1176
  console.log('\nWhat is available:');
1177
+ console.log(' - Hosted sync: keep lessons, rules, and dashboard state aligned across laptops, CI, containers, and agent runtimes');
1137
1178
  console.log(' - Local Pro dashboard: your own browser dashboard for search, gates, and DPO export');
1138
1179
  console.log(' - Team rollout path: shared hosted lessons, org visibility, and workflow proof');
1139
1180
  console.log(' - Commercial truth doc: source of truth for traction, pricing, and proof claims');
@@ -2094,7 +2135,7 @@ function backgroundGovernance() {
2094
2135
  console.log(' - Run --check before dispatching an unattended PR job.');
2095
2136
  console.log(' - Route protected branches and large blast-radius jobs to human review.');
2096
2137
  console.log(' - Convert CI failures into thumbs-down lessons so repeats become Pre-Action Checks.');
2097
- console.log('\nGuide: https://thumbgate-production.up.railway.app/guides/background-agent-governance\n');
2138
+ console.log('\nGuide: https://thumbgate.ai/guides/background-agent-governance\n');
2098
2139
  }
2099
2140
 
2100
2141
  function optimize() {