thumbgate 1.4.3 → 1.4.5

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 (270) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.well-known/llms.txt +12 -8
  4. package/.well-known/mcp/server-card.json +1 -1
  5. package/README.md +18 -8
  6. package/adapters/README.md +1 -1
  7. package/adapters/claude/.mcp.json +2 -2
  8. package/adapters/codex/config.toml +2 -2
  9. package/adapters/mcp/server-stdio.js +1 -1
  10. package/adapters/opencode/opencode.json +1 -1
  11. package/config/github-about.json +2 -2
  12. package/package.json +158 -10
  13. package/scripts/billing.js +5 -2
  14. package/scripts/statusline.sh +1 -0
  15. package/src/api/server.js +113 -16
  16. package/src/index.js +3 -0
  17. package/.claude-plugin/bundle/icon.png +0 -0
  18. package/.claude-plugin/bundle/icon.svg +0 -18
  19. package/.claude-plugin/bundle/server/index.js +0 -24
  20. package/adapters/chatgpt/INSTALL.md +0 -158
  21. package/adapters/perplexity/.mcp.json +0 -36
  22. package/adapters/perplexity/config.toml +0 -16
  23. package/adapters/perplexity/opencode.json +0 -29
  24. package/bin/memory.sh +0 -64
  25. package/bin/obsidian-sync.sh +0 -20
  26. package/plugins/amp-skill/INSTALL.md +0 -52
  27. package/plugins/amp-skill/SKILL.md +0 -64
  28. package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +0 -22
  29. package/plugins/claude-codex-bridge/.mcp.json +0 -14
  30. package/plugins/claude-codex-bridge/INSTALL.md +0 -43
  31. package/plugins/claude-codex-bridge/README.md +0 -46
  32. package/plugins/claude-codex-bridge/scripts/codex-bridge.js +0 -286
  33. package/plugins/claude-codex-bridge/skills/adversarial-review/SKILL.md +0 -24
  34. package/plugins/claude-codex-bridge/skills/result/SKILL.md +0 -22
  35. package/plugins/claude-codex-bridge/skills/review/SKILL.md +0 -28
  36. package/plugins/claude-codex-bridge/skills/second-pass/SKILL.md +0 -27
  37. package/plugins/claude-codex-bridge/skills/setup/SKILL.md +0 -21
  38. package/plugins/claude-codex-bridge/skills/status/SKILL.md +0 -19
  39. package/plugins/claude-skill/INSTALL.md +0 -55
  40. package/plugins/claude-skill/SKILL.md +0 -46
  41. package/plugins/codex-profile/.codex-plugin/plugin.json +0 -43
  42. package/plugins/codex-profile/.mcp.json +0 -14
  43. package/plugins/codex-profile/AGENTS.md +0 -20
  44. package/plugins/codex-profile/INSTALL.md +0 -89
  45. package/plugins/codex-profile/README.md +0 -61
  46. package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +0 -23
  47. package/plugins/cursor-marketplace/CHANGELOG.md +0 -30
  48. package/plugins/cursor-marketplace/LICENSE +0 -21
  49. package/plugins/cursor-marketplace/README.md +0 -124
  50. package/plugins/cursor-marketplace/agents/reliability-reviewer.md +0 -31
  51. package/plugins/cursor-marketplace/assets/logo-400x400.png +0 -0
  52. package/plugins/cursor-marketplace/commands/capture-feedback.md +0 -33
  53. package/plugins/cursor-marketplace/commands/check-gates.md +0 -25
  54. package/plugins/cursor-marketplace/commands/show-lessons.md +0 -27
  55. package/plugins/cursor-marketplace/hooks/hooks.json +0 -10
  56. package/plugins/cursor-marketplace/mcp.json +0 -14
  57. package/plugins/cursor-marketplace/rules/feedback-capture.mdc +0 -34
  58. package/plugins/cursor-marketplace/rules/pre-action-gates.mdc +0 -30
  59. package/plugins/cursor-marketplace/rules/session-continuity.mdc +0 -28
  60. package/plugins/cursor-marketplace/scripts/gate-check.sh +0 -21
  61. package/plugins/cursor-marketplace/skills/capture-feedback/SKILL.md +0 -48
  62. package/plugins/cursor-marketplace/skills/prevention-rules/SKILL.md +0 -31
  63. package/plugins/cursor-marketplace/skills/recall-context/SKILL.md +0 -30
  64. package/plugins/cursor-marketplace/skills/search-lessons/SKILL.md +0 -33
  65. package/plugins/gemini-extension/INSTALL.md +0 -92
  66. package/plugins/gemini-extension/gemini_prompt.txt +0 -14
  67. package/plugins/gemini-extension/tool_contract.json +0 -45
  68. package/plugins/opencode-profile/INSTALL.md +0 -57
  69. package/public/assets/instagram-card.png +0 -0
  70. package/public/assets/tiktok-agent-memory.mp4 +0 -0
  71. package/public/blog.html +0 -474
  72. package/public/compare/mem0.html +0 -189
  73. package/public/compare/speclock.html +0 -180
  74. package/public/compare.html +0 -310
  75. package/public/dashboard.html +0 -1100
  76. package/public/guide.html +0 -317
  77. package/public/guides/claude-code-prevent-repeated-mistakes.html +0 -161
  78. package/public/guides/codex-cli-guardrails.html +0 -158
  79. package/public/guides/cursor-prevent-repeated-mistakes.html +0 -161
  80. package/public/guides/pre-action-gates.html +0 -162
  81. package/public/guides/stop-repeated-ai-agent-mistakes.html +0 -159
  82. package/public/index.html +0 -1225
  83. package/public/js/buyer-intent.js +0 -252
  84. package/public/learn/agent-harness-pattern.html +0 -180
  85. package/public/learn/ai-agent-persistent-memory.html +0 -203
  86. package/public/learn/learn.css +0 -45
  87. package/public/learn/mcp-pre-action-gates-explained.html +0 -172
  88. package/public/learn/stop-ai-agent-force-push.html +0 -134
  89. package/public/learn/vibe-coding-safety-net.html +0 -142
  90. package/public/learn.html +0 -274
  91. package/public/lessons.html +0 -967
  92. package/public/llm-context.md +0 -156
  93. package/public/pro.html +0 -1087
  94. package/public/vercel.json +0 -8
  95. package/scripts/a2ui-engine.js +0 -73
  96. package/scripts/adk-consolidator.js +0 -274
  97. package/scripts/agent-security-hardening.js +0 -225
  98. package/scripts/ai-search-visibility.js +0 -116
  99. package/scripts/autonomous-sales-agent.js +0 -39
  100. package/scripts/autoresearch-runner.js +0 -216
  101. package/scripts/background-agent-governance.js +0 -229
  102. package/scripts/behavioral-extraction.js +0 -93
  103. package/scripts/budget-enforcer.js +0 -173
  104. package/scripts/budget-guard.js +0 -173
  105. package/scripts/build-claude-mcpb.js +0 -255
  106. package/scripts/build-codex-plugin.js +0 -152
  107. package/scripts/capture-railway-diagnostics.sh +0 -97
  108. package/scripts/changeset-check.js +0 -372
  109. package/scripts/check-congruence.js +0 -443
  110. package/scripts/computer-use-firewall.js +0 -280
  111. package/scripts/content-engine/linkedin-content-generator.js +0 -154
  112. package/scripts/content-engine/output/linkedin-memento-validation.md +0 -17
  113. package/scripts/content-engine/output/linkedin-posts-2026-04-09.md +0 -175
  114. package/scripts/content-engine/reddit-thread-finder.js +0 -154
  115. package/scripts/context-engine.js +0 -710
  116. package/scripts/daily-digest.js +0 -11
  117. package/scripts/data-governance.js +0 -173
  118. package/scripts/deploy-gcp.sh +0 -44
  119. package/scripts/deploy-policy.js +0 -249
  120. package/scripts/disagreement-mining.js +0 -315
  121. package/scripts/dpo-optimizer.js +0 -206
  122. package/scripts/ensure-repo-bootstrap.js +0 -130
  123. package/scripts/ephemeral-agent-store.js +0 -212
  124. package/scripts/eval-harness.js +0 -56
  125. package/scripts/export-kto-pairs.js +0 -309
  126. package/scripts/export-training.js +0 -446
  127. package/scripts/feedback-fallback.js +0 -111
  128. package/scripts/feedback-inbox-read.js +0 -162
  129. package/scripts/feedback-root-consolidator.js +0 -233
  130. package/scripts/feedback-to-memory.js +0 -185
  131. package/scripts/gate-satisfy.js +0 -42
  132. package/scripts/generate-paperbanana-diagrams.sh +0 -99
  133. package/scripts/generate-pretool-hook.sh +0 -40
  134. package/scripts/github-about.js +0 -430
  135. package/scripts/github-outreach.js +0 -65
  136. package/scripts/gtm-revenue-loop.js +0 -535
  137. package/scripts/hallucination-detector.js +0 -226
  138. package/scripts/hf-papers.js +0 -317
  139. package/scripts/hook-auto-capture.sh +0 -100
  140. package/scripts/hook-stop-pr-thread-check.sh +0 -68
  141. package/scripts/hook-stop-self-score.sh +0 -51
  142. package/scripts/hook-stop-verify-deploy.sh +0 -31
  143. package/scripts/hook-verify-before-done.sh +0 -20
  144. package/scripts/managed-dpo-export.js +0 -91
  145. package/scripts/markdown-escape.js +0 -12
  146. package/scripts/marketing-experiment.js +0 -657
  147. package/scripts/memalign-recall.js +0 -111
  148. package/scripts/memory-migration.js +0 -296
  149. package/scripts/meta-policy.js +0 -190
  150. package/scripts/metered-billing.js +0 -16
  151. package/scripts/model-tier-router.js +0 -310
  152. package/scripts/money-watcher.js +0 -218
  153. package/scripts/multi-hop-recall.js +0 -240
  154. package/scripts/per-step-scoring.js +0 -163
  155. package/scripts/perplexity-command-center.js +0 -644
  156. package/scripts/perplexity-marketing.js +0 -454
  157. package/scripts/pii-scanner.js +0 -153
  158. package/scripts/plan-gate.js +0 -154
  159. package/scripts/post-everywhere.js +0 -341
  160. package/scripts/post-to-x-retry.sh +0 -22
  161. package/scripts/post-to-x.js +0 -369
  162. package/scripts/pr-manager.js +0 -421
  163. package/scripts/principle-extractor.js +0 -162
  164. package/scripts/pro-features.js +0 -41
  165. package/scripts/prompt-dlp.js +0 -222
  166. package/scripts/prove-adapters.js +0 -860
  167. package/scripts/prove-attribution.js +0 -361
  168. package/scripts/prove-automation.js +0 -651
  169. package/scripts/prove-autoresearch.js +0 -304
  170. package/scripts/prove-claim-verification.js +0 -277
  171. package/scripts/prove-cloudflare-sandbox.js +0 -161
  172. package/scripts/prove-data-pipeline.js +0 -408
  173. package/scripts/prove-data-quality.js +0 -227
  174. package/scripts/prove-evolution.js +0 -352
  175. package/scripts/prove-harnesses.js +0 -287
  176. package/scripts/prove-intelligence.js +0 -257
  177. package/scripts/prove-lancedb.js +0 -425
  178. package/scripts/prove-local-intelligence.js +0 -340
  179. package/scripts/prove-loop-closure.js +0 -263
  180. package/scripts/prove-packaged-runtime.js +0 -327
  181. package/scripts/prove-predictive-insights.js +0 -355
  182. package/scripts/prove-runtime.js +0 -363
  183. package/scripts/prove-seo-gsd.js +0 -234
  184. package/scripts/prove-settings.js +0 -279
  185. package/scripts/prove-subway-upgrades.js +0 -277
  186. package/scripts/prove-tessl.js +0 -229
  187. package/scripts/prove-training-export.js +0 -325
  188. package/scripts/prove-workflow-contract.js +0 -112
  189. package/scripts/prove-xmemory.js +0 -332
  190. package/scripts/publish-decision.js +0 -159
  191. package/scripts/ralph-loop.js +0 -376
  192. package/scripts/ralph-mode-ci.js +0 -434
  193. package/scripts/reddit-dm-outreach.js +0 -192
  194. package/scripts/reddit-monitor-cron.sh +0 -26
  195. package/scripts/reminder-engine.js +0 -132
  196. package/scripts/revenue-status.js +0 -472
  197. package/scripts/rotate-stripe-webhook-secret.js +0 -314
  198. package/scripts/schedule-manager.js +0 -249
  199. package/scripts/self-healing-check.js +0 -193
  200. package/scripts/session-analyzer.js +0 -533
  201. package/scripts/shieldcortex-memory-firewall-runner.mjs +0 -53
  202. package/scripts/skill-exporter.js +0 -260
  203. package/scripts/skill-materializer.js +0 -134
  204. package/scripts/skill-packs.js +0 -136
  205. package/scripts/skill-proposer.js +0 -99
  206. package/scripts/skill-quality-tracker.js +0 -282
  207. package/scripts/slow-loop.js +0 -72
  208. package/scripts/social-analytics/db/marketing-db.js +0 -179
  209. package/scripts/social-analytics/db/schema.sql +0 -55
  210. package/scripts/social-analytics/digest.js +0 -256
  211. package/scripts/social-analytics/engagement-audit.js +0 -185
  212. package/scripts/social-analytics/generate-instagram-card.js +0 -123
  213. package/scripts/social-analytics/generate-slides.js +0 -268
  214. package/scripts/social-analytics/instagram-thumbgate-post.js +0 -111
  215. package/scripts/social-analytics/install-growth-automation.js +0 -114
  216. package/scripts/social-analytics/load-env.js +0 -77
  217. package/scripts/social-analytics/mcp-server.js +0 -289
  218. package/scripts/social-analytics/normalizer.js +0 -580
  219. package/scripts/social-analytics/notify.js +0 -162
  220. package/scripts/social-analytics/poll-all.js +0 -107
  221. package/scripts/social-analytics/pollers/github.js +0 -195
  222. package/scripts/social-analytics/pollers/instagram.js +0 -253
  223. package/scripts/social-analytics/pollers/linkedin.js +0 -340
  224. package/scripts/social-analytics/pollers/plausible.js +0 -245
  225. package/scripts/social-analytics/pollers/reddit.js +0 -306
  226. package/scripts/social-analytics/pollers/threads.js +0 -233
  227. package/scripts/social-analytics/pollers/tiktok.js +0 -203
  228. package/scripts/social-analytics/pollers/x.js +0 -227
  229. package/scripts/social-analytics/pollers/youtube.js +0 -304
  230. package/scripts/social-analytics/pollers/zernio.js +0 -183
  231. package/scripts/social-analytics/post-video.js +0 -316
  232. package/scripts/social-analytics/publish-instagram-thumbgate.js +0 -104
  233. package/scripts/social-analytics/publish-thumbgate-launch.js +0 -322
  234. package/scripts/social-analytics/publishers/devto.js +0 -122
  235. package/scripts/social-analytics/publishers/instagram.js +0 -317
  236. package/scripts/social-analytics/publishers/linkedin.js +0 -294
  237. package/scripts/social-analytics/publishers/reddit.js +0 -385
  238. package/scripts/social-analytics/publishers/threads.js +0 -275
  239. package/scripts/social-analytics/publishers/tiktok.js +0 -217
  240. package/scripts/social-analytics/publishers/x.js +0 -259
  241. package/scripts/social-analytics/publishers/youtube.js +0 -223
  242. package/scripts/social-analytics/publishers/zernio.js +0 -568
  243. package/scripts/social-analytics/reconcile-thumbgate-campaign.js +0 -165
  244. package/scripts/social-analytics/run-digest.js +0 -34
  245. package/scripts/social-analytics/schedule-thumbgate-campaign.js +0 -275
  246. package/scripts/social-analytics/store.js +0 -455
  247. package/scripts/social-analytics/sync-launch-assets.js +0 -185
  248. package/scripts/social-analytics/utm.js +0 -143
  249. package/scripts/social-pipeline.js +0 -2626
  250. package/scripts/social-post-hourly.js +0 -228
  251. package/scripts/social-quality-gate.js +0 -134
  252. package/scripts/social-reply-monitor.js +0 -592
  253. package/scripts/status-dashboard.js +0 -155
  254. package/scripts/stripe-live-status.js +0 -115
  255. package/scripts/subagent-profiles.js +0 -79
  256. package/scripts/sync-branch-protection.js +0 -340
  257. package/scripts/sync-gh-secrets-from-env.sh +0 -70
  258. package/scripts/sync-github-about.js +0 -55
  259. package/scripts/sync-version.js +0 -479
  260. package/scripts/synthetic-dpo.js +0 -234
  261. package/scripts/tessl-export.js +0 -369
  262. package/scripts/test-coverage.js +0 -128
  263. package/scripts/thumbgate-bench.js +0 -494
  264. package/scripts/thumbgate_session_start.sh +0 -32
  265. package/scripts/train_from_feedback.py +0 -929
  266. package/scripts/validate-feedback.js +0 -581
  267. package/scripts/verify-obsidian-setup.sh +0 -269
  268. package/scripts/verify-run.js +0 -269
  269. package/scripts/weekly-auto-post.js +0 -124
  270. package/scripts/x-autonomous-marketing.js +0 -139
package/public/guide.html DELETED
@@ -1,317 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>How to Stop AI Coding Agents From Repeating Mistakes — ThumbGate Guide</title>
7
- <!-- Privacy-friendly analytics by Plausible -->
8
- <script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
9
- <meta name="description" content="The complete guide to preventing AI coding agent mistakes with pre-action gates, history-aware lesson distillation, and automatic prevention rules.">
10
- <meta name="keywords" content="AI agent mistakes, Claude Code force push, AI coding agent memory, MCP server guardrails, pre-action gates, vibe coding safety, PreToolUse hooks, ThumbGate, SpecLock alternative, Mem0 alternative">
11
- <meta property="og:title" content="How to Stop AI Coding Agents From Repeating Mistakes">
12
- <meta property="og:description" content="Pre-action gates that physically block AI agents from repeating known mistakes. The complete guide.">
13
- <meta property="og:type" content="article">
14
- <meta property="og:url" content="https://thumbgate-production.up.railway.app/guide">
15
- <link rel="canonical" href="https://thumbgate-production.up.railway.app/guide">
16
-
17
- <script type="application/ld+json">
18
- {
19
- "@context": "https://schema.org",
20
- "@type": "TechArticle",
21
- "headline": "How to Stop AI Coding Agents From Repeating Mistakes",
22
- "description": "Complete guide to preventing AI agent mistakes with pre-action gates, feedback capture, history-aware lesson distillation, and automatic prevention rule generation.",
23
- "author": {
24
- "@type": "Person",
25
- "name": "Igor Ganapolsky",
26
- "url": "https://github.com/IgorGanapolsky"
27
- },
28
- "publisher": {
29
- "@type": "Organization",
30
- "name": "ThumbGate",
31
- "url": "https://thumbgate-production.up.railway.app"
32
- },
33
- "datePublished": "2026-03-27",
34
- "dateModified": "2026-03-27",
35
- "mainEntityOfPage": "https://thumbgate-production.up.railway.app/guide",
36
- "about": [
37
- {"@type": "Thing", "name": "AI coding agents"},
38
- {"@type": "Thing", "name": "Model Context Protocol"},
39
- {"@type": "Thing", "name": "pre-action gates"}
40
- ]
41
- }
42
- </script>
43
-
44
- <script type="application/ld+json">
45
- {
46
- "@context": "https://schema.org",
47
- "@type": "HowTo",
48
- "name": "How to install ThumbGate and prevent AI agent mistakes",
49
- "description": "Install ThumbGate in one command to stop your AI coding agent from repeating known mistakes.",
50
- "step": [
51
- {
52
- "@type": "HowToStep",
53
- "position": 1,
54
- "name": "Install ThumbGate",
55
- "text": "Run npx thumbgate init to auto-detect your agent and configure hooks."
56
- },
57
- {
58
- "@type": "HowToStep",
59
- "position": 2,
60
- "name": "Give feedback when your agent makes a mistake",
61
- "text": "Say thumbs down with context about what went wrong. In the current Claude auto-capture path, vague negative signals can reuse up to 8 prior recorded entries and stay linked to a 60-second feedback session."
62
- },
63
- {
64
- "@type": "HowToStep",
65
- "position": 3,
66
- "name": "Feedback auto-promotes to prevention rules",
67
- "text": "After repeated failures, ThumbGate generates a prevention rule and wires it as a pre-action gate."
68
- },
69
- {
70
- "@type": "HowToStep",
71
- "position": 4,
72
- "name": "Gates block mistakes before they happen",
73
- "text": "PreToolUse hooks intercept tool calls and check them against known failure patterns. Bad actions are blocked before execution."
74
- }
75
- ]
76
- }
77
- </script>
78
-
79
- <script type="application/ld+json">
80
- {
81
- "@context": "https://schema.org",
82
- "@type": "FAQPage",
83
- "mainEntity": [
84
- {
85
- "@type": "Question",
86
- "name": "How do I stop my AI coding agent from repeating mistakes?",
87
- "acceptedAnswer": {
88
- "@type": "Answer",
89
- "text": "Install ThumbGate (npx thumbgate init). When your agent makes a mistake, give it a thumbs-down with context. ThumbGate captures the feedback, and after repeated failures, auto-generates a prevention rule. Pre-action gates then block the same mistake before it executes in future sessions."
90
- }
91
- },
92
- {
93
- "@type": "Question",
94
- "name": "Why does my Claude Code agent keep force-pushing to main?",
95
- "acceptedAnswer": {
96
- "@type": "Answer",
97
- "text": "Because prompt rules are suggestions the agent can ignore. ThumbGate solves this with enforcement: a PreToolUse hook fires before every tool call and checks it against known failure patterns. If the action matches a gate (like git push --force to main), it is physically blocked before execution."
98
- }
99
- },
100
- {
101
- "@type": "Question",
102
- "name": "What is the difference between pre-action gates and prompt rules?",
103
- "acceptedAnswer": {
104
- "@type": "Answer",
105
- "text": "Prompt rules (like CLAUDE.md or .cursorrules) are instructions the agent may ignore. Pre-action gates are enforcement: they intercept the tool call at the PreToolUse hook level and block it before execution. Gates are auto-generated from feedback and use Thompson Sampling to adapt their sensitivity."
106
- }
107
- },
108
- {
109
- "@type": "Question",
110
- "name": "How does ThumbGate compare to SpecLock?",
111
- "acceptedAnswer": {
112
- "@type": "Answer",
113
- "text": "SpecLock requires manually writing constraints or compiling them from a PRD. ThumbGate learns automatically from thumbs-up/down feedback and auto-generates prevention rules from repeated failures. SpecLock locks files from modification; ThumbGate blocks specific actions before they execute."
114
- }
115
- },
116
- {
117
- "@type": "Question",
118
- "name": "How does ThumbGate compare to Mem0?",
119
- "acceptedAnswer": {
120
- "@type": "Answer",
121
- "text": "Mem0 is cloud-hosted memory for AI apps. ThumbGate is local-first enforcement. Mem0 remembers context but cannot block actions. ThumbGate captures feedback, promotes it to prevention rules, and physically blocks tool calls that match known failure patterns."
122
- }
123
- },
124
- {
125
- "@type": "Question",
126
- "name": "Does AI agent memory persist across sessions?",
127
- "acceptedAnswer": {
128
- "@type": "Answer",
129
- "text": "With ThumbGate, yes. Feedback is stored in a local SQLite database with FTS5 indexing. Prevention rules and gates persist across sessions. The recall tool injects relevant context at session start, and session handoff preserves continuity."
130
- }
131
- },
132
- {
133
- "@type": "Question",
134
- "name": "How do I set up PreToolUse hooks in Claude Code?",
135
- "acceptedAnswer": {
136
- "@type": "Answer",
137
- "text": "Run npx thumbgate init --agent claude-code. This auto-configures PreToolUse hooks in your .claude/settings.json. The hooks fire before every tool call and check it against your prevention rules and gates."
138
- }
139
- },
140
- {
141
- "@type": "Question",
142
- "name": "What AI coding agents does ThumbGate work with?",
143
- "acceptedAnswer": {
144
- "@type": "Answer",
145
- "text": "ThumbGate works with Claude Code, Cursor, Codex, Gemini CLI, Amp, OpenCode, and any MCP-compatible agent. Install with npx thumbgate init to auto-detect your agent."
146
- }
147
- }
148
- ]
149
- }
150
- </script>
151
-
152
- <style>
153
- *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
154
- :root {
155
- --bg: #0a0a0b;
156
- --bg-card: #161618;
157
- --border: #222225;
158
- --text: #e8e8ec;
159
- --muted: #8b8b94;
160
- --cyan: #22d3ee;
161
- --green: #34d399;
162
- --red: #f87171;
163
- }
164
- body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: var(--bg); color: var(--text); line-height: 1.7; }
165
- .container { max-width: 780px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
166
- nav { padding: 1rem 2rem; border-bottom: 1px solid var(--border); display: flex; gap: 1.5rem; align-items: center; }
167
- nav a { color: var(--muted); text-decoration: none; font-size: 0.9rem; }
168
- nav a:hover { color: var(--cyan); }
169
- nav .brand { color: var(--text); font-weight: 700; font-size: 1.1rem; }
170
- h1 { font-size: 2.2rem; line-height: 1.2; margin: 2rem 0 1rem; }
171
- h2 { font-size: 1.5rem; margin: 2.5rem 0 1rem; color: var(--cyan); }
172
- h3 { font-size: 1.15rem; margin: 1.5rem 0 0.5rem; }
173
- p, li { color: var(--text); margin-bottom: 0.75rem; }
174
- ul { padding-left: 1.5rem; }
175
- li { margin-bottom: 0.5rem; }
176
- code { background: #1a1a1e; padding: 0.15em 0.4em; border-radius: 4px; font-size: 0.9em; color: var(--cyan); }
177
- pre { background: #111113; border: 1px solid var(--border); border-radius: 8px; padding: 1rem; overflow-x: auto; margin: 1rem 0; }
178
- pre code { background: none; padding: 0; color: var(--text); }
179
- .highlight { color: var(--cyan); }
180
- .card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; margin: 1.5rem 0; }
181
- .comparison-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9rem; }
182
- .comparison-table th, .comparison-table td { padding: 0.75rem; border: 1px solid var(--border); text-align: left; }
183
- .comparison-table th { background: #111113; color: var(--cyan); }
184
- .comparison-table td:first-child { font-weight: 600; }
185
- .cta { display: inline-block; background: var(--cyan); color: #000; padding: 0.75rem 1.5rem; border-radius: 8px; text-decoration: none; font-weight: 600; margin: 1rem 0; }
186
- .cta:hover { opacity: 0.9; }
187
- .breadcrumb { color: var(--muted); font-size: 0.85rem; margin-bottom: 0.5rem; }
188
- .breadcrumb a { color: var(--muted); }
189
- @media (max-width: 600px) { h1 { font-size: 1.6rem; } .container { padding: 1rem; } }
190
- </style>
191
- </head>
192
- <body>
193
- <nav>
194
- <a href="/" class="brand">ThumbGate</a>
195
- <a href="/guide">Guide</a>
196
- <a href="/dashboard">Dashboard</a>
197
- <a href="https://github.com/IgorGanapolsky/ThumbGate">GitHub</a>
198
- </nav>
199
-
200
- <div class="container">
201
- <p class="breadcrumb"><a href="/">Home</a> / Guide</p>
202
-
203
- <h1>How to Stop AI Coding Agents From Repeating Mistakes</h1>
204
- <p style="color:var(--muted);">The complete guide to pre-action gates, feedback capture, history-aware lesson distillation, and automatic prevention rules.</p>
205
-
206
- <h2>The Problem</h2>
207
- <p>Your AI coding agent force-pushes to main. You correct it. Next session, it force-pushes again. You add a rule to CLAUDE.md. It ignores it. You lose an afternoon reverting.</p>
208
- <p>This happens because <strong>prompt rules are suggestions</strong>. The agent can read them, forget them, or override them. There is no enforcement at the tool-call level.</p>
209
-
210
- <h2>The Fix: Pre-Action Gates</h2>
211
- <p>ThumbGate adds an enforcement layer between your agent and its tools. When the agent tries to execute a tool call, a <code>PreToolUse</code> hook fires <em>before</em> the action runs. The hook checks the call against known failure patterns. If it matches a gate, the action is blocked.</p>
212
-
213
- <div class="card">
214
- <h3>Before ThumbGate</h3>
215
- <pre><code>Agent: git push --force origin main
216
- Result: Force-pushed. You lose 3 commits. Again.</code></pre>
217
- <h3>After ThumbGate</h3>
218
- <pre><code>Agent: git push --force origin main
219
- [gate] Blocked: no-force-push (confidence: 0.94)
220
- Agent: git push origin feature-branch
221
- [gate] Passed</code></pre>
222
- </div>
223
-
224
- <h2>Install (One Command)</h2>
225
- <pre><code># Auto-detect your agent and configure hooks
226
- npx thumbgate init
227
-
228
- # Or specify your agent directly
229
- npx thumbgate init --agent claude-code
230
- npx thumbgate init --agent codex
231
- npx thumbgate init --agent cursor
232
- npx thumbgate init --agent gemini</code></pre>
233
-
234
- <h2>How It Works</h2>
235
-
236
- <h3>1. You give feedback</h3>
237
- <p>When your agent makes a mistake, tell it. ThumbGate captures the feedback as structured data with context, tags, and domain. In the current Claude auto-capture path, if the thumbs-down is vague, it can reuse up to 8 prior recorded entries and the failed tool call to propose a better lesson instead of discarding the feedback.</p>
238
- <pre><code># Your agent force-pushed. You say:
239
- "thumbs down — force-pushed to main, lost commits"
240
-
241
- # ThumbGate captures:
242
- {
243
- signal: "negative",
244
- context: "force-pushed to main, lost commits",
245
- tags: ["git", "force-push", "destructive"],
246
- domain: "version-control"
247
- }</code></pre>
248
-
249
- <h3>2. Feedback auto-promotes to prevention rules</h3>
250
- <p>After repeated failures with the same pattern, ThumbGate generates a prevention rule automatically. No manual rule writing needed.</p>
251
-
252
- <h3>3. Rules become gates</h3>
253
- <p>Prevention rules are enforced as pre-action gates. The gate fires at the <code>PreToolUse</code> hook level — inside the agent's runtime, before the tool call executes.</p>
254
-
255
- <h3>4. Gates adapt via Thompson Sampling</h3>
256
- <p>Gates that block too aggressively (high false-positive rate) get their confidence reduced automatically. Gates that catch real mistakes get reinforced. This is Bayesian multi-armed bandit optimization, not static rules.</p>
257
-
258
- <h2>Memory That Persists Across Sessions</h2>
259
- <p>ThumbGate stores feedback in a local SQLite database with FTS5 full-text indexing. Lookups are sub-millisecond even at tens of thousands of entries. Old entries that contradict newer evidence are auto-pruned via Bayesian belief decay.</p>
260
- <ul>
261
- <li><code>recall</code> — injects relevant context at session start</li>
262
- <li><code>search_lessons</code> — finds promoted lessons with corrective actions</li>
263
- <li><code>retrieve_lessons</code> — surfaces lessons for the tool or action you are about to run</li>
264
- <li><code>session_handoff</code> — preserves continuity across sessions</li>
265
- </ul>
266
-
267
- <h2>History-Aware Feedback Sessions</h2>
268
- <p>ThumbGate supports linked feedback sessions for the messy reality of AI debugging. In the current Claude flow, accepted feedback opens a 60-second follow-up session. You can append more context, reset the timer, and finalize once the lesson is clear.</p>
269
- <ul>
270
- <li><code>open_feedback_session</code> starts a linked correction thread.</li>
271
- <li><code>append_feedback_context</code> adds later notes, failed tool output, or user corrections to the same thread.</li>
272
- <li><code>finalize_feedback_session</code> promotes the combined evidence into one reusable lesson.</li>
273
- <li><code>reflect_on_feedback</code> proposes a reusable rule from the same transcript when the failure pattern is obvious.</li>
274
- </ul>
275
-
276
- <h2>Pre-Action Gates vs Prompt Rules</h2>
277
- <table class="comparison-table">
278
- <tr><th>Feature</th><th>Prompt Rules</th><th>Pre-Action Gates</th></tr>
279
- <tr><td>Where they live</td><td>CLAUDE.md, .cursorrules</td><td>PreToolUse hooks</td></tr>
280
- <tr><td>Enforcement</td><td>Suggestion (can be ignored)</td><td>Blocks execution</td></tr>
281
- <tr><td>When they fire</td><td>At prompt load</td><td>Before every tool call</td></tr>
282
- <tr><td>Auto-generated</td><td>No — hand-written</td><td>Yes — from feedback</td></tr>
283
- <tr><td>Adaptive</td><td>No</td><td>Yes — Thompson Sampling</td></tr>
284
- <tr><td>Persist across sessions</td><td>Only if in a file</td><td>SQLite + JSONL</td></tr>
285
- </table>
286
-
287
- <h2>ThumbGate vs Alternatives</h2>
288
- <table class="comparison-table">
289
- <tr><th>Feature</th><th>ThumbGate</th><th>SpecLock</th><th>Mem0</th></tr>
290
- <tr><td>Blocks mistakes before execution</td><td>Yes — PreToolUse gates</td><td>Yes — Patch Firewall</td><td>No</td></tr>
291
- <tr><td>Learns from feedback</td><td>Yes — thumbs up/down</td><td>No — manual specs</td><td>Yes — auto-capture</td></tr>
292
- <tr><td>Auto-generates rules</td><td>Yes — from repeated failures</td><td>No</td><td>No</td></tr>
293
- <tr><td>Agent support</td><td>Claude Code, Codex, Gemini, Amp, Cursor, OpenCode</td><td>Claude Code, Cursor, Windsurf, Cline</td><td>Claude, Cursor</td></tr>
294
- <tr><td>Install</td><td><code>npx thumbgate init</code></td><td><code>npx speclock setup</code></td><td>Cloud signup</td></tr>
295
- <tr><td>Cost</td><td>Free (Pro $19/mo or $149/yr, Team rollout $99/seat/mo)</td><td>Free</td><td>Free tier + paid</td></tr>
296
- </table>
297
-
298
- <h2>Common Scenarios</h2>
299
-
300
- <h3>Agent keeps deleting files</h3>
301
- <p>Give a thumbs-down: "deleted production config file." After 2-3 occurrences, ThumbGate generates a gate that blocks <code>rm</code> commands targeting config files.</p>
302
-
303
- <h3>Agent ignores test failures</h3>
304
- <p>Give a thumbs-down: "committed code with failing tests." ThumbGate learns the pattern and gates future commits when test results show failures.</p>
305
-
306
- <h3>Agent uses wrong API endpoint</h3>
307
- <p>Give a thumbs-down: "called staging API in production code." The gate blocks tool calls that reference staging URLs in production contexts.</p>
308
-
309
- <h2>Get Started</h2>
310
- <pre><code>npx thumbgate init</code></pre>
311
- <p>One command. Works with Claude Code, Cursor, Codex, Gemini, Amp, and OpenCode. Claude Code can also call Codex for review, adversarial review, and second-pass handoffs through the repo-local bridge plugin.</p>
312
- <a href="https://thumbgate-production.up.railway.app/checkout/pro?utm_source=guide&utm_medium=cta_button&utm_campaign=pro_pack" class="cta">Get Pro — $19/mo or $149/yr</a>
313
- <p style="color:var(--muted); font-size:0.85rem;">Free keeps local enforcement with 3 daily feedback captures, 5 lesson searches, unlimited recall, blocking, and history-aware lesson distillation. Pro is $19/mo or $149/yr for a personal local dashboard and DPO export. Team rollout starts intake-first at $99/seat/mo with a 3-seat minimum for the hosted shared lesson DB, org dashboard, and generated review views.</p>
314
-
315
- </div>
316
- </body>
317
- </html>
@@ -1,161 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Claude Code Feedback Memory with Thumbs Up and Thumbs Down | ThumbGate</title>
7
- <script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
8
- <meta name="description" content="Claude Code can remember more when the memory is structured, but reliability improves when thumbs-up/down feedback also becomes enforceable behavior. That is ThumbGate.">
9
- <meta name="keywords" content="Claude Code feedback, Claude Code memory, prevent repeated mistakes, ThumbGate, pre-action gates, Claude Code guardrails">
10
- <meta property="og:title" content="Claude Code Feedback Memory That Actually Enforces">
11
- <meta property="og:description" content="Claude Code can remember more when the memory is structured, but reliability improves when thumbs-up/down feedback also becomes enforceable behavior.">
12
- <meta property="og:type" content="article">
13
- <meta property="og:url" content="https://thumbgate-production.up.railway.app/guides/claude-code-prevent-repeated-mistakes">
14
- <link rel="canonical" href="https://thumbgate-production.up.railway.app/guides/claude-code-prevent-repeated-mistakes">
15
- <link rel="llm-context" href="/public/llm-context.md" type="text/markdown">
16
-
17
- <script type="application/ld+json">
18
- {
19
- "@context": "https://schema.org",
20
- "@type": "TechArticle",
21
- "headline": "Claude Code Feedback Memory That Actually Enforces",
22
- "description": "Claude Code can remember more when the memory is structured, but reliability improves when thumbs-up/down feedback also becomes enforceable behavior via ThumbGate pre-action gates.",
23
- "author": {
24
- "@type": "Person",
25
- "name": "Igor Ganapolsky",
26
- "url": "https://github.com/IgorGanapolsky"
27
- },
28
- "publisher": {
29
- "@type": "Organization",
30
- "name": "ThumbGate",
31
- "url": "https://thumbgate-production.up.railway.app"
32
- },
33
- "datePublished": "2026-04-09",
34
- "dateModified": "2026-04-09",
35
- "mainEntityOfPage": "https://thumbgate-production.up.railway.app/guides/claude-code-prevent-repeated-mistakes",
36
- "about": [
37
- {"@type": "Thing", "name": "Claude Code memory"},
38
- {"@type": "Thing", "name": "feedback enforcement"},
39
- {"@type": "Thing", "name": "pre-action gates"}
40
- ]
41
- }
42
- </script>
43
-
44
- <script type="application/ld+json">
45
- {
46
- "@context": "https://schema.org",
47
- "@type": "FAQPage",
48
- "mainEntity": [
49
- {
50
- "@type": "Question",
51
- "name": "Does this only work with Claude Code?",
52
- "acceptedAnswer": {
53
- "@type": "Answer",
54
- "text": "No. Claude Code is a strong entry point, but the same thumbs-up/down feedback loop and pre-action gates work across other MCP-compatible coding agents too."
55
- }
56
- },
57
- {
58
- "@type": "Question",
59
- "name": "Why mention thumbs up as well as thumbs down?",
60
- "acceptedAnswer": {
61
- "@type": "Answer",
62
- "text": "Because reinforcement matters. Good behavior should become easier to repeat, not only bad behavior harder to repeat."
63
- }
64
- },
65
- {
66
- "@type": "Question",
67
- "name": "How does ThumbGate differ from Claude Code CLAUDE.md rules?",
68
- "acceptedAnswer": {
69
- "@type": "Answer",
70
- "text": "CLAUDE.md rules are advisory and can be overridden by context overflow or chain-of-thought reasoning. ThumbGate pre-action gates intercept tool calls at the hook layer and physically block them before execution."
71
- }
72
- },
73
- {
74
- "@type": "Question",
75
- "name": "Can ThumbGate prevent Claude Code from repeating the same mistake across sessions?",
76
- "acceptedAnswer": {
77
- "@type": "Answer",
78
- "text": "Yes. ThumbGate persists lessons and prevention rules in a local SQLite+FTS5 database, so gates survive across sessions and prevent repeat failures even when the conversation context resets."
79
- }
80
- }
81
- ]
82
- }
83
- </script>
84
-
85
- <link rel="stylesheet" href="/learn/learn.css">
86
- </head>
87
- <body>
88
-
89
- <nav>
90
- <a href="/" class="brand">ThumbGate</a>
91
- <a href="/guide">Setup Guide</a>
92
- <a href="/learn">Learn</a>
93
- <a href="/dashboard">Dashboard</a>
94
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
95
- </nav>
96
-
97
- <div class="container">
98
- <div class="breadcrumb"><a href="/learn">Learn</a> / <a href="/guides/claude-code-prevent-repeated-mistakes">Guides</a> / Claude Code Feedback</div>
99
- <h1>Claude Code Feedback Memory That Actually Enforces</h1>
100
- <p style="color:var(--muted);">3 min read &middot; Designed for Claude Code, works across all MCP agents</p>
101
-
102
- <div class="tldr"><strong>TL;DR:</strong> Claude Code can remember more when the memory is structured, but reliability improves when thumbs-up/down feedback also becomes enforceable behavior. That is ThumbGate's angle.</div>
103
-
104
- <h2>The Claude Code problem</h2>
105
- <p>Claude Code is strongest when the context is fresh, but teams still hit repeated mistakes, compaction drift, and re-explaining constraints. A memory file alone helps, but it does not physically stop the next bad move.</p>
106
-
107
- <div class="callout callout-red">
108
- <strong>Common pattern:</strong> You add a rule to CLAUDE.md. The agent follows it for two sessions. Then context fills up, the rule gets compressed, and the same mistake happens again. Memory without enforcement is a suggestion, not a guarantee.
109
- </div>
110
-
111
- <h2>The ThumbGate angle</h2>
112
- <ul>
113
- <li>Thumbs up reinforces good behavior.</li>
114
- <li>Thumbs down becomes a prevention rule.</li>
115
- <li>Pre-action gates stop the repeated mistake before the next command executes.</li>
116
- <li>The same flow works across Cursor, Codex, Gemini, Amp, and OpenCode.</li>
117
- </ul>
118
-
119
- <h2>Install for Claude Code</h2>
120
- <pre><code>npx thumbgate init --agent claude-code</code></pre>
121
- <p>Auto-detects Claude Code and configures the PreToolUse hook. No build step, no cloud account.</p>
122
-
123
- <h2>What to expect</h2>
124
- <p>Compatibility proof, install speed, and verification evidence matter more than generic "memory" copy. ThumbGate is the enforcement layer for Claude Code, not just another notebook of past context.</p>
125
-
126
- <h2>Frequently Asked Questions</h2>
127
- <h3>Does this only work with Claude Code?</h3>
128
- <p>No. Claude Code is a strong entry point, but the same thumbs-up/down feedback loop and pre-action gates work across other MCP-compatible coding agents too.</p>
129
-
130
- <h3>Why mention thumbs up as well as thumbs down?</h3>
131
- <p>Because reinforcement matters. Good behavior should become easier to repeat, not only bad behavior harder to repeat.</p>
132
-
133
- <h3>How does ThumbGate differ from Claude Code CLAUDE.md rules?</h3>
134
- <p>CLAUDE.md rules are advisory and can be overridden by context overflow or chain-of-thought reasoning. ThumbGate pre-action gates intercept tool calls at the hook layer and physically block them before execution.</p>
135
-
136
- <h3>Can ThumbGate prevent Claude Code from repeating the same mistake across sessions?</h3>
137
- <p>Yes. ThumbGate persists lessons and prevention rules in a local SQLite+FTS5 database, so gates survive across sessions and prevent repeat failures even when the conversation context resets.</p>
138
-
139
- <div class="cta-box">
140
- <h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Pro for operators, Team for governance</h2>
141
- <p>Start free with local gates. Pro is $19/mo or $149/yr for the personal dashboard and exports. Team rollout anchors at $99/seat/mo when shared lessons and org visibility matter.</p>
142
- <div class="cta-install">$ npx thumbgate init --agent claude-code</div>
143
- <p style="margin-top:8px;"><a href="/pro">See Pro and Team pricing &rarr;</a></p>
144
- </div>
145
-
146
- <div class="related">
147
- <h3>Related</h3>
148
- <a href="/guides/pre-action-gates">What Are Pre-Action Gates? &rarr;</a>
149
- <a href="/compare/mem0">ThumbGate vs Mem0 &rarr;</a>
150
- <a href="/guides/stop-repeated-ai-agent-mistakes">Stop Repeated AI Agent Mistakes &rarr;</a>
151
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub &rarr;</a>
152
- </div>
153
- </div>
154
-
155
- <div class="sticky-cta">
156
- <span style="color:var(--muted)">Try it now:</span>
157
- <code>npx thumbgate init --agent claude-code</code>
158
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub &rarr;</a>
159
- </div>
160
- </body>
161
- </html>
@@ -1,158 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Codex CLI Guardrails | Prevent Repeated Mistakes with ThumbGate</title>
7
- <script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
8
- <meta name="description" content="Codex CLI can move quickly through repo tasks, but buyers need more than good intentions. ThumbGate adds a reliability gateway with pre-action enforcement.">
9
- <meta name="keywords" content="Codex CLI guardrails, Codex CLI safety, prevent Codex mistakes, ThumbGate, pre-action gates, AI coding agent feedback">
10
- <meta property="og:title" content="Codex CLI Guardrails That Actually Enforce">
11
- <meta property="og:description" content="Codex CLI can move quickly through repo tasks, but buyers need more than good intentions. ThumbGate adds a reliability gateway with pre-action enforcement.">
12
- <meta property="og:type" content="article">
13
- <meta property="og:url" content="https://thumbgate-production.up.railway.app/guides/codex-cli-guardrails">
14
- <link rel="canonical" href="https://thumbgate-production.up.railway.app/guides/codex-cli-guardrails">
15
- <link rel="llm-context" href="/public/llm-context.md" type="text/markdown">
16
-
17
- <script type="application/ld+json">
18
- {
19
- "@context": "https://schema.org",
20
- "@type": "TechArticle",
21
- "headline": "Codex CLI Guardrails That Actually Enforce",
22
- "description": "Codex CLI can move quickly through repo tasks, but buyers need more than good intentions. ThumbGate adds a reliability gateway with pre-action enforcement.",
23
- "author": {
24
- "@type": "Person",
25
- "name": "Igor Ganapolsky",
26
- "url": "https://github.com/IgorGanapolsky"
27
- },
28
- "publisher": {
29
- "@type": "Organization",
30
- "name": "ThumbGate",
31
- "url": "https://thumbgate-production.up.railway.app"
32
- },
33
- "datePublished": "2026-04-09",
34
- "dateModified": "2026-04-09",
35
- "mainEntityOfPage": "https://thumbgate-production.up.railway.app/guides/codex-cli-guardrails",
36
- "about": [
37
- {"@type": "Thing", "name": "Codex CLI guardrails"},
38
- {"@type": "Thing", "name": "AI coding agent safety"},
39
- {"@type": "Thing", "name": "pre-action gates"}
40
- ]
41
- }
42
- </script>
43
-
44
- <script type="application/ld+json">
45
- {
46
- "@context": "https://schema.org",
47
- "@type": "FAQPage",
48
- "mainEntity": [
49
- {
50
- "@type": "Question",
51
- "name": "Is ThumbGate only for Codex CLI?",
52
- "acceptedAnswer": {
53
- "@type": "Answer",
54
- "text": "No. Codex CLI is one supported workflow, but the same feedback and enforcement loop also works across Claude Code, Cursor, Gemini, Amp, and OpenCode."
55
- }
56
- },
57
- {
58
- "@type": "Question",
59
- "name": "How are Codex CLI guardrails different from prompt instructions?",
60
- "acceptedAnswer": {
61
- "@type": "Answer",
62
- "text": "Prompt instructions are advisory. ThumbGate pre-action gates intercept the tool call itself and block the known-bad pattern before execution."
63
- }
64
- },
65
- {
66
- "@type": "Question",
67
- "name": "Can ThumbGate work with Codex CLI sandbox mode?",
68
- "acceptedAnswer": {
69
- "@type": "Answer",
70
- "text": "Yes. ThumbGate adds an additional layer of enforcement on top of any existing sandbox or permission model, so guardrails apply even when sandbox restrictions are relaxed."
71
- }
72
- },
73
- {
74
- "@type": "Question",
75
- "name": "What happens when a gate blocks a Codex CLI command?",
76
- "acceptedAnswer": {
77
- "@type": "Answer",
78
- "text": "The agent receives a rejection with the reason and the linked prevention rule, then adapts its approach. The blocked command never executes."
79
- }
80
- }
81
- ]
82
- }
83
- </script>
84
-
85
- <link rel="stylesheet" href="/learn/learn.css">
86
- </head>
87
- <body>
88
-
89
- <nav>
90
- <a href="/" class="brand">ThumbGate</a>
91
- <a href="/guide">Setup Guide</a>
92
- <a href="/learn">Learn</a>
93
- <a href="/dashboard">Dashboard</a>
94
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
95
- </nav>
96
-
97
- <div class="container">
98
- <div class="breadcrumb"><a href="/learn">Learn</a> / <a href="/guides/codex-cli-guardrails">Guides</a> / Codex CLI Guardrails</div>
99
- <h1>Codex CLI Guardrails That Actually Enforce</h1>
100
- <p style="color:var(--muted);">3 min read &middot; Designed for Codex CLI, works across all MCP agents</p>
101
-
102
- <div class="tldr"><strong>TL;DR:</strong> Codex CLI can move quickly through repo tasks, but buyers need more than good intentions. ThumbGate adds a reliability gateway so repeated mistakes become searchable lessons, linked rules, and pre-action enforcement.</div>
103
-
104
- <h2>What Codex CLI users usually need</h2>
105
- <p>The problem is rarely a single bad command. It is the cost of the same failure pattern showing up across branches, sessions, or rushed workflows. Once that pattern is obvious, the buyer wants a durable control point.</p>
106
-
107
- <h2>What ThumbGate adds</h2>
108
- <ul>
109
- <li>Feedback capture with explicit thumbs-up/down signals.</li>
110
- <li>Searchable lessons and linked prevention rules.</li>
111
- <li>Pre-action gates that block repeated bad commands before they run.</li>
112
- <li>Verification evidence that gives teams something concrete to audit.</li>
113
- </ul>
114
-
115
- <div class="callout">
116
- <strong>Why this matters:</strong> Guardrails are easier to buy when the outcome is obvious: less rework, fewer repeated failures, and a visible chain from operator feedback to enforced behavior.
117
- </div>
118
-
119
- <h2>Install for Codex CLI</h2>
120
- <pre><code>npx thumbgate init --agent codex</code></pre>
121
- <p>Auto-detects Codex CLI and configures the PreToolUse hook. No build step, no cloud account.</p>
122
-
123
- <h2>Frequently Asked Questions</h2>
124
- <h3>Is ThumbGate only for Codex CLI?</h3>
125
- <p>No. Codex CLI is one supported workflow, but the same feedback and enforcement loop also works across Claude Code, Cursor, Gemini, Amp, and OpenCode.</p>
126
-
127
- <h3>How are Codex CLI guardrails different from prompt instructions?</h3>
128
- <p>Prompt instructions are advisory. ThumbGate pre-action gates intercept the tool call itself and block the known-bad pattern before execution.</p>
129
-
130
- <h3>Can ThumbGate work with Codex CLI sandbox mode?</h3>
131
- <p>Yes. ThumbGate adds an additional layer of enforcement on top of any existing sandbox or permission model, so guardrails apply even when sandbox restrictions are relaxed.</p>
132
-
133
- <h3>What happens when a gate blocks a Codex CLI command?</h3>
134
- <p>The agent receives a rejection with the reason and the linked prevention rule, then adapts its approach. The blocked command never executes.</p>
135
-
136
- <div class="cta-box">
137
- <h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Pro for operators, Team for governance</h2>
138
- <p>Start free with local gates. Pro is $19/mo or $149/yr for the personal dashboard and exports. Team rollout anchors at $99/seat/mo when shared lessons and org visibility matter.</p>
139
- <div class="cta-install">$ npx thumbgate init --agent codex</div>
140
- <p style="margin-top:8px;"><a href="/pro">See Pro and Team pricing &rarr;</a></p>
141
- </div>
142
-
143
- <div class="related">
144
- <h3>Related</h3>
145
- <a href="/guides/pre-action-gates">What Are Pre-Action Gates? &rarr;</a>
146
- <a href="/compare/mem0">ThumbGate vs Mem0 &rarr;</a>
147
- <a href="/guides/stop-repeated-ai-agent-mistakes">Stop Repeated AI Agent Mistakes &rarr;</a>
148
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub &rarr;</a>
149
- </div>
150
- </div>
151
-
152
- <div class="sticky-cta">
153
- <span style="color:var(--muted)">Try it now:</span>
154
- <code>npx thumbgate init --agent codex</code>
155
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub &rarr;</a>
156
- </div>
157
- </body>
158
- </html>