thumbgate 1.4.3 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/adapters/README.md +1 -1
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/codex/config.toml +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/package.json +157 -9
- package/scripts/statusline.sh +1 -0
- package/src/api/server.js +113 -16
- package/src/index.js +3 -0
- package/.claude-plugin/bundle/icon.png +0 -0
- package/.claude-plugin/bundle/icon.svg +0 -18
- package/.claude-plugin/bundle/server/index.js +0 -24
- package/adapters/chatgpt/INSTALL.md +0 -158
- package/adapters/perplexity/.mcp.json +0 -36
- package/adapters/perplexity/config.toml +0 -16
- package/adapters/perplexity/opencode.json +0 -29
- package/bin/memory.sh +0 -64
- package/bin/obsidian-sync.sh +0 -20
- package/plugins/amp-skill/INSTALL.md +0 -52
- package/plugins/amp-skill/SKILL.md +0 -64
- package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +0 -22
- package/plugins/claude-codex-bridge/.mcp.json +0 -14
- package/plugins/claude-codex-bridge/INSTALL.md +0 -43
- package/plugins/claude-codex-bridge/README.md +0 -46
- package/plugins/claude-codex-bridge/scripts/codex-bridge.js +0 -286
- package/plugins/claude-codex-bridge/skills/adversarial-review/SKILL.md +0 -24
- package/plugins/claude-codex-bridge/skills/result/SKILL.md +0 -22
- package/plugins/claude-codex-bridge/skills/review/SKILL.md +0 -28
- package/plugins/claude-codex-bridge/skills/second-pass/SKILL.md +0 -27
- package/plugins/claude-codex-bridge/skills/setup/SKILL.md +0 -21
- package/plugins/claude-codex-bridge/skills/status/SKILL.md +0 -19
- package/plugins/claude-skill/INSTALL.md +0 -55
- package/plugins/claude-skill/SKILL.md +0 -46
- package/plugins/codex-profile/.codex-plugin/plugin.json +0 -43
- package/plugins/codex-profile/.mcp.json +0 -14
- package/plugins/codex-profile/AGENTS.md +0 -20
- package/plugins/codex-profile/INSTALL.md +0 -89
- package/plugins/codex-profile/README.md +0 -61
- package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +0 -23
- package/plugins/cursor-marketplace/CHANGELOG.md +0 -30
- package/plugins/cursor-marketplace/LICENSE +0 -21
- package/plugins/cursor-marketplace/README.md +0 -124
- package/plugins/cursor-marketplace/agents/reliability-reviewer.md +0 -31
- package/plugins/cursor-marketplace/assets/logo-400x400.png +0 -0
- package/plugins/cursor-marketplace/commands/capture-feedback.md +0 -33
- package/plugins/cursor-marketplace/commands/check-gates.md +0 -25
- package/plugins/cursor-marketplace/commands/show-lessons.md +0 -27
- package/plugins/cursor-marketplace/hooks/hooks.json +0 -10
- package/plugins/cursor-marketplace/mcp.json +0 -14
- package/plugins/cursor-marketplace/rules/feedback-capture.mdc +0 -34
- package/plugins/cursor-marketplace/rules/pre-action-gates.mdc +0 -30
- package/plugins/cursor-marketplace/rules/session-continuity.mdc +0 -28
- package/plugins/cursor-marketplace/scripts/gate-check.sh +0 -21
- package/plugins/cursor-marketplace/skills/capture-feedback/SKILL.md +0 -48
- package/plugins/cursor-marketplace/skills/prevention-rules/SKILL.md +0 -31
- package/plugins/cursor-marketplace/skills/recall-context/SKILL.md +0 -30
- package/plugins/cursor-marketplace/skills/search-lessons/SKILL.md +0 -33
- package/plugins/gemini-extension/INSTALL.md +0 -92
- package/plugins/gemini-extension/gemini_prompt.txt +0 -14
- package/plugins/gemini-extension/tool_contract.json +0 -45
- package/plugins/opencode-profile/INSTALL.md +0 -57
- package/public/assets/instagram-card.png +0 -0
- package/public/assets/tiktok-agent-memory.mp4 +0 -0
- package/public/blog.html +0 -474
- package/public/compare/mem0.html +0 -189
- package/public/compare/speclock.html +0 -180
- package/public/compare.html +0 -310
- package/public/dashboard.html +0 -1100
- package/public/guide.html +0 -317
- package/public/guides/claude-code-prevent-repeated-mistakes.html +0 -161
- package/public/guides/codex-cli-guardrails.html +0 -158
- package/public/guides/cursor-prevent-repeated-mistakes.html +0 -161
- package/public/guides/pre-action-gates.html +0 -162
- package/public/guides/stop-repeated-ai-agent-mistakes.html +0 -159
- package/public/index.html +0 -1225
- package/public/js/buyer-intent.js +0 -252
- package/public/learn/agent-harness-pattern.html +0 -180
- package/public/learn/ai-agent-persistent-memory.html +0 -203
- package/public/learn/learn.css +0 -45
- package/public/learn/mcp-pre-action-gates-explained.html +0 -172
- package/public/learn/stop-ai-agent-force-push.html +0 -134
- package/public/learn/vibe-coding-safety-net.html +0 -142
- package/public/learn.html +0 -274
- package/public/lessons.html +0 -967
- package/public/llm-context.md +0 -156
- package/public/pro.html +0 -1087
- package/public/vercel.json +0 -8
- package/scripts/a2ui-engine.js +0 -73
- package/scripts/adk-consolidator.js +0 -274
- package/scripts/agent-security-hardening.js +0 -225
- package/scripts/ai-search-visibility.js +0 -116
- package/scripts/autonomous-sales-agent.js +0 -39
- package/scripts/autoresearch-runner.js +0 -216
- package/scripts/background-agent-governance.js +0 -229
- package/scripts/behavioral-extraction.js +0 -93
- package/scripts/budget-enforcer.js +0 -173
- package/scripts/budget-guard.js +0 -173
- package/scripts/build-claude-mcpb.js +0 -255
- package/scripts/build-codex-plugin.js +0 -152
- package/scripts/capture-railway-diagnostics.sh +0 -97
- package/scripts/changeset-check.js +0 -372
- package/scripts/check-congruence.js +0 -443
- package/scripts/computer-use-firewall.js +0 -280
- package/scripts/content-engine/linkedin-content-generator.js +0 -154
- package/scripts/content-engine/output/linkedin-memento-validation.md +0 -17
- package/scripts/content-engine/output/linkedin-posts-2026-04-09.md +0 -175
- package/scripts/content-engine/reddit-thread-finder.js +0 -154
- package/scripts/context-engine.js +0 -710
- package/scripts/daily-digest.js +0 -11
- package/scripts/data-governance.js +0 -173
- package/scripts/deploy-gcp.sh +0 -44
- package/scripts/deploy-policy.js +0 -249
- package/scripts/disagreement-mining.js +0 -315
- package/scripts/dpo-optimizer.js +0 -206
- package/scripts/ensure-repo-bootstrap.js +0 -130
- package/scripts/ephemeral-agent-store.js +0 -212
- package/scripts/eval-harness.js +0 -56
- package/scripts/export-kto-pairs.js +0 -309
- package/scripts/export-training.js +0 -446
- package/scripts/feedback-fallback.js +0 -111
- package/scripts/feedback-inbox-read.js +0 -162
- package/scripts/feedback-root-consolidator.js +0 -233
- package/scripts/feedback-to-memory.js +0 -185
- package/scripts/gate-satisfy.js +0 -42
- package/scripts/generate-paperbanana-diagrams.sh +0 -99
- package/scripts/generate-pretool-hook.sh +0 -40
- package/scripts/github-about.js +0 -430
- package/scripts/github-outreach.js +0 -65
- package/scripts/gtm-revenue-loop.js +0 -535
- package/scripts/hallucination-detector.js +0 -226
- package/scripts/hf-papers.js +0 -317
- package/scripts/hook-auto-capture.sh +0 -100
- package/scripts/hook-stop-pr-thread-check.sh +0 -68
- package/scripts/hook-stop-self-score.sh +0 -51
- package/scripts/hook-stop-verify-deploy.sh +0 -31
- package/scripts/hook-verify-before-done.sh +0 -20
- package/scripts/managed-dpo-export.js +0 -91
- package/scripts/markdown-escape.js +0 -12
- package/scripts/marketing-experiment.js +0 -657
- package/scripts/memalign-recall.js +0 -111
- package/scripts/memory-migration.js +0 -296
- package/scripts/meta-policy.js +0 -190
- package/scripts/metered-billing.js +0 -16
- package/scripts/model-tier-router.js +0 -310
- package/scripts/money-watcher.js +0 -218
- package/scripts/multi-hop-recall.js +0 -240
- package/scripts/per-step-scoring.js +0 -163
- package/scripts/perplexity-command-center.js +0 -644
- package/scripts/perplexity-marketing.js +0 -454
- package/scripts/pii-scanner.js +0 -153
- package/scripts/plan-gate.js +0 -154
- package/scripts/post-everywhere.js +0 -341
- package/scripts/post-to-x-retry.sh +0 -22
- package/scripts/post-to-x.js +0 -369
- package/scripts/pr-manager.js +0 -421
- package/scripts/principle-extractor.js +0 -162
- package/scripts/pro-features.js +0 -41
- package/scripts/prompt-dlp.js +0 -222
- package/scripts/prove-adapters.js +0 -860
- package/scripts/prove-attribution.js +0 -361
- package/scripts/prove-automation.js +0 -651
- package/scripts/prove-autoresearch.js +0 -304
- package/scripts/prove-claim-verification.js +0 -277
- package/scripts/prove-cloudflare-sandbox.js +0 -161
- package/scripts/prove-data-pipeline.js +0 -408
- package/scripts/prove-data-quality.js +0 -227
- package/scripts/prove-evolution.js +0 -352
- package/scripts/prove-harnesses.js +0 -287
- package/scripts/prove-intelligence.js +0 -257
- package/scripts/prove-lancedb.js +0 -425
- package/scripts/prove-local-intelligence.js +0 -340
- package/scripts/prove-loop-closure.js +0 -263
- package/scripts/prove-packaged-runtime.js +0 -327
- package/scripts/prove-predictive-insights.js +0 -355
- package/scripts/prove-runtime.js +0 -363
- package/scripts/prove-seo-gsd.js +0 -234
- package/scripts/prove-settings.js +0 -279
- package/scripts/prove-subway-upgrades.js +0 -277
- package/scripts/prove-tessl.js +0 -229
- package/scripts/prove-training-export.js +0 -325
- package/scripts/prove-workflow-contract.js +0 -112
- package/scripts/prove-xmemory.js +0 -332
- package/scripts/publish-decision.js +0 -159
- package/scripts/ralph-loop.js +0 -376
- package/scripts/ralph-mode-ci.js +0 -434
- package/scripts/reddit-dm-outreach.js +0 -192
- package/scripts/reddit-monitor-cron.sh +0 -26
- package/scripts/reminder-engine.js +0 -132
- package/scripts/revenue-status.js +0 -472
- package/scripts/rotate-stripe-webhook-secret.js +0 -314
- package/scripts/schedule-manager.js +0 -249
- package/scripts/self-healing-check.js +0 -193
- package/scripts/session-analyzer.js +0 -533
- package/scripts/shieldcortex-memory-firewall-runner.mjs +0 -53
- package/scripts/skill-exporter.js +0 -260
- package/scripts/skill-materializer.js +0 -134
- package/scripts/skill-packs.js +0 -136
- package/scripts/skill-proposer.js +0 -99
- package/scripts/skill-quality-tracker.js +0 -282
- package/scripts/slow-loop.js +0 -72
- package/scripts/social-analytics/db/marketing-db.js +0 -179
- package/scripts/social-analytics/db/schema.sql +0 -55
- package/scripts/social-analytics/digest.js +0 -256
- package/scripts/social-analytics/engagement-audit.js +0 -185
- package/scripts/social-analytics/generate-instagram-card.js +0 -123
- package/scripts/social-analytics/generate-slides.js +0 -268
- package/scripts/social-analytics/instagram-thumbgate-post.js +0 -111
- package/scripts/social-analytics/install-growth-automation.js +0 -114
- package/scripts/social-analytics/load-env.js +0 -77
- package/scripts/social-analytics/mcp-server.js +0 -289
- package/scripts/social-analytics/normalizer.js +0 -580
- package/scripts/social-analytics/notify.js +0 -162
- package/scripts/social-analytics/poll-all.js +0 -107
- package/scripts/social-analytics/pollers/github.js +0 -195
- package/scripts/social-analytics/pollers/instagram.js +0 -253
- package/scripts/social-analytics/pollers/linkedin.js +0 -340
- package/scripts/social-analytics/pollers/plausible.js +0 -245
- package/scripts/social-analytics/pollers/reddit.js +0 -306
- package/scripts/social-analytics/pollers/threads.js +0 -233
- package/scripts/social-analytics/pollers/tiktok.js +0 -203
- package/scripts/social-analytics/pollers/x.js +0 -227
- package/scripts/social-analytics/pollers/youtube.js +0 -304
- package/scripts/social-analytics/pollers/zernio.js +0 -183
- package/scripts/social-analytics/post-video.js +0 -316
- package/scripts/social-analytics/publish-instagram-thumbgate.js +0 -104
- package/scripts/social-analytics/publish-thumbgate-launch.js +0 -322
- package/scripts/social-analytics/publishers/devto.js +0 -122
- package/scripts/social-analytics/publishers/instagram.js +0 -317
- package/scripts/social-analytics/publishers/linkedin.js +0 -294
- package/scripts/social-analytics/publishers/reddit.js +0 -385
- package/scripts/social-analytics/publishers/threads.js +0 -275
- package/scripts/social-analytics/publishers/tiktok.js +0 -217
- package/scripts/social-analytics/publishers/x.js +0 -259
- package/scripts/social-analytics/publishers/youtube.js +0 -223
- package/scripts/social-analytics/publishers/zernio.js +0 -568
- package/scripts/social-analytics/reconcile-thumbgate-campaign.js +0 -165
- package/scripts/social-analytics/run-digest.js +0 -34
- package/scripts/social-analytics/schedule-thumbgate-campaign.js +0 -275
- package/scripts/social-analytics/store.js +0 -455
- package/scripts/social-analytics/sync-launch-assets.js +0 -185
- package/scripts/social-analytics/utm.js +0 -143
- package/scripts/social-pipeline.js +0 -2626
- package/scripts/social-post-hourly.js +0 -228
- package/scripts/social-quality-gate.js +0 -134
- package/scripts/social-reply-monitor.js +0 -592
- package/scripts/status-dashboard.js +0 -155
- package/scripts/stripe-live-status.js +0 -115
- package/scripts/subagent-profiles.js +0 -79
- package/scripts/sync-branch-protection.js +0 -340
- package/scripts/sync-gh-secrets-from-env.sh +0 -70
- package/scripts/sync-github-about.js +0 -55
- package/scripts/sync-version.js +0 -479
- package/scripts/synthetic-dpo.js +0 -234
- package/scripts/tessl-export.js +0 -369
- package/scripts/test-coverage.js +0 -128
- package/scripts/thumbgate-bench.js +0 -494
- package/scripts/thumbgate_session_start.sh +0 -32
- package/scripts/train_from_feedback.py +0 -929
- package/scripts/validate-feedback.js +0 -581
- package/scripts/verify-obsidian-setup.sh +0 -269
- package/scripts/verify-run.js +0 -269
- package/scripts/weekly-auto-post.js +0 -124
- 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 · 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 →</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? →</a>
|
|
149
|
-
<a href="/compare/mem0">ThumbGate vs Mem0 →</a>
|
|
150
|
-
<a href="/guides/stop-repeated-ai-agent-mistakes">Stop Repeated AI Agent Mistakes →</a>
|
|
151
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub →</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 →</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 · 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 →</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? →</a>
|
|
146
|
-
<a href="/compare/mem0">ThumbGate vs Mem0 →</a>
|
|
147
|
-
<a href="/guides/stop-repeated-ai-agent-mistakes">Stop Repeated AI Agent Mistakes →</a>
|
|
148
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub →</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 →</a>
|
|
156
|
-
</div>
|
|
157
|
-
</body>
|
|
158
|
-
</html>
|