thumbgate 1.27.8 → 1.27.9
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/plugin.json +1 -1
- package/.well-known/llms.txt +1 -2
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +0 -2
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +259 -78
- package/package.json +12 -19
- package/public/blog.html +30 -0
- package/public/compare/adopt-ai.html +219 -0
- package/public/compare/agentix-labs.html +197 -0
- package/public/compare/ai-experience-orchestration.html +216 -0
- package/public/compare/anthropic-claude-for-legal.html +260 -0
- package/public/compare/anthropic-containment.html +280 -0
- package/public/compare/arcade.html +175 -0
- package/public/compare/arcjet.html +239 -0
- package/public/compare/bumblebee.html +307 -0
- package/public/compare/claude-code-hooks.html +294 -0
- package/public/compare/databricks-unity-ai-gateway.html +215 -0
- package/public/compare/fallow.html +351 -0
- package/public/compare/heidi.html +233 -0
- package/public/compare/mem0.html +342 -0
- package/public/compare/oak-and-sparrow-gatekeeper.html +289 -0
- package/public/compare/rein.html +236 -0
- package/public/compare/sigmashake.html +256 -0
- package/public/compare/speclock.html +342 -0
- package/public/compare.html +2 -0
- package/public/guides/agent-harness-optimization.html +342 -0
- package/public/guides/agentic-web-governance.html +406 -0
- package/public/guides/ai-agent-governance-sprint.html +415 -0
- package/public/guides/ai-agent-pre-action-approval-gates.html +401 -0
- package/public/guides/ai-agent-workflow-migration-checklist.html +392 -0
- package/public/guides/ai-deployment-readiness.html +415 -0
- package/public/guides/ai-mode-ads-agent-governance.html +401 -0
- package/public/guides/ai-search-topical-presence.html +342 -0
- package/public/guides/autoresearch-agent-safety.html +342 -0
- package/public/guides/background-agent-governance.html +358 -0
- package/public/guides/best-tools-stop-ai-agents-breaking-production.html +363 -0
- package/public/guides/browser-automation-safety.html +342 -0
- package/public/guides/chatgpt-ads-trust.html +353 -0
- package/public/guides/claude-code-feedback.html +339 -0
- package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
- package/public/guides/claude-code-skills-guardrails.html +343 -0
- package/public/guides/claude-desktop.html +356 -0
- package/public/guides/code-knowledge-graph-guardrails.html +365 -0
- package/public/guides/codex-cli-guardrails.html +339 -0
- package/public/guides/cursor-agent-guardrails.html +339 -0
- package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
- package/public/guides/database-agent-safety.html +406 -0
- package/public/guides/deepseek-v4-runtime-guardrails.html +346 -0
- package/public/guides/developer-machine-supply-chain-guardrails.html +358 -0
- package/public/guides/gcp-mcp-guardrails.html +147 -0
- package/public/guides/gemini-cli-feedback-memory.html +339 -0
- package/public/guides/gpt-5-5-model-evaluation.html +358 -0
- package/public/guides/internal-ai-engineering-stack-guardrails.html +348 -0
- package/public/guides/long-running-agent-context-management.html +346 -0
- package/public/guides/mcp-tool-governance.html +401 -0
- package/public/guides/multica-thumbgate-setup.html +134 -0
- package/public/guides/native-messaging-host-security.html +342 -0
- package/public/guides/policy-engine-pre-action-gates.html +346 -0
- package/public/guides/pre-action-checks.html +342 -0
- package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +342 -0
- package/public/guides/prompt-tricks-to-workflow-rules.html +365 -0
- package/public/guides/proxy-pointer-rag-guardrails.html +352 -0
- package/public/guides/rag-precision-tuning-guardrails.html +352 -0
- package/public/guides/reasoning-compression-guardrails.html +346 -0
- package/public/guides/relational-knowledge-ai-recommendations.html +342 -0
- package/public/guides/roo-code-alternative-cline.html +339 -0
- package/public/guides/semantic-programmatic-seo-guardrails.html +352 -0
- package/public/guides/seo-agent-skills-guardrails.html +344 -0
- package/public/guides/stop-repeated-ai-agent-mistakes.html +342 -0
- package/public/index.html +12 -50
- package/public/learn/ac-dc-runtime-enforcement.html +277 -0
- package/public/learn/agent-harness-pattern.html +181 -0
- package/public/learn/agent-swarms-shared-gates.html +173 -0
- package/public/learn/agentic-enterprise-context-brain.html +117 -0
- package/public/learn/agentic-os-team-governance.html +146 -0
- package/public/learn/ai-agent-governance.html +158 -0
- package/public/learn/ai-agent-persistent-memory.html +211 -0
- package/public/learn/background-agent-control-layer.html +184 -0
- package/public/learn/claude-code-goal-with-rubrics.html +205 -0
- package/public/learn/codex-role-plugins-need-governance.html +125 -0
- package/public/learn/cost-aware-agent-gate-routing.html +173 -0
- package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +157 -0
- package/public/learn/deterministic-agent-workflows.html +185 -0
- package/public/learn/feedback-loop-vs-decision-layer.html +283 -0
- package/public/learn/from-prototype-to-production.html +223 -0
- package/public/learn/learn.css +51 -0
- package/public/learn/mcp-pre-action-checks-explained.html +172 -0
- package/public/learn/pretix-stripe-connect-marketplaces.html +161 -0
- package/public/learn/regulated-agent-execution-boundary.html +196 -0
- package/public/learn/spec-driven-development.html +168 -0
- package/public/learn/stop-ai-agent-force-push.html +134 -0
- package/public/learn/vibe-coding-safety-net.html +142 -0
- package/public/learn.html +6 -50
- package/public/numbers.html +2 -2
- package/public/pro.html +6 -6
- package/scripts/cli-schema.js +10 -22
- package/scripts/dashboard-chat.js +1 -2
- package/scripts/document-intake.js +49 -1
- package/scripts/gemini-embedding-policy.js +1 -2
- package/scripts/hosted-config.js +12 -0
- package/scripts/plausible-domain-config.js +1 -3
- package/scripts/reddit-browser-notification-watch.js +230 -0
- package/scripts/seo-gsd.js +0 -239
- package/scripts/vector-store.js +0 -44
- package/scripts/workspace-evolver.js +2 -62
- package/src/api/server.js +124 -335
- package/adapters/policy-engine/ethicore-guardian-client.js +0 -68
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +0 -260
- package/scripts/hook-stop-anti-claim.js +0 -227
|
@@ -0,0 +1,339 @@
|
|
|
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</title>
|
|
7
|
+
<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..." />
|
|
8
|
+
<meta property="og:title" content="Claude Code Feedback Memory with Thumbs Up and Thumbs Down" />
|
|
9
|
+
<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. That is..." />
|
|
10
|
+
<meta property="og:type" content="article" />
|
|
11
|
+
<meta property="og:url" content="https://thumbgate.ai/guides/claude-code-feedback" />
|
|
12
|
+
<link rel="canonical" href="https://thumbgate.ai/guides/claude-code-feedback" />
|
|
13
|
+
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
+
<link rel="icon" type="image/svg+xml" href="/thumbgate-icon.png" />
|
|
15
|
+
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
|
|
16
|
+
<meta property="og:image" content="/og.png" />
|
|
17
|
+
<style>
|
|
18
|
+
:root {
|
|
19
|
+
--bg: #0a0a0b;
|
|
20
|
+
--bg-raised: #111113;
|
|
21
|
+
--bg-card: #161618;
|
|
22
|
+
--line: #222225;
|
|
23
|
+
--text: #e8e8ec;
|
|
24
|
+
--muted: #8b8b96;
|
|
25
|
+
--cyan: #22d3ee;
|
|
26
|
+
--green: #4ade80;
|
|
27
|
+
--red: #f87171;
|
|
28
|
+
}
|
|
29
|
+
* { box-sizing: border-box; }
|
|
30
|
+
body {
|
|
31
|
+
margin: 0;
|
|
32
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
33
|
+
background: var(--bg);
|
|
34
|
+
color: var(--text);
|
|
35
|
+
line-height: 1.65;
|
|
36
|
+
}
|
|
37
|
+
a { color: var(--cyan); text-decoration: none; }
|
|
38
|
+
a:hover { text-decoration: underline; }
|
|
39
|
+
.container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
|
|
40
|
+
.topbar {
|
|
41
|
+
position: sticky;
|
|
42
|
+
top: 0;
|
|
43
|
+
z-index: 20;
|
|
44
|
+
backdrop-filter: blur(12px);
|
|
45
|
+
background: rgba(10, 10, 11, 0.88);
|
|
46
|
+
border-bottom: 1px solid var(--line);
|
|
47
|
+
}
|
|
48
|
+
.topbar .container {
|
|
49
|
+
display: flex;
|
|
50
|
+
justify-content: space-between;
|
|
51
|
+
align-items: center;
|
|
52
|
+
padding-top: 14px;
|
|
53
|
+
padding-bottom: 14px;
|
|
54
|
+
}
|
|
55
|
+
.brand {
|
|
56
|
+
font-weight: 700;
|
|
57
|
+
color: var(--text);
|
|
58
|
+
display: inline-flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
gap: 8px;
|
|
61
|
+
text-decoration: none;
|
|
62
|
+
}
|
|
63
|
+
.brand .logo-mark { width: 28px; height: 28px; display: block; }
|
|
64
|
+
.hero { padding: 72px 0 32px; }
|
|
65
|
+
.eyebrow {
|
|
66
|
+
display: inline-flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
gap: 8px;
|
|
69
|
+
padding: 6px 12px;
|
|
70
|
+
border-radius: 999px;
|
|
71
|
+
border: 1px solid rgba(34, 211, 238, 0.22);
|
|
72
|
+
background: rgba(34, 211, 238, 0.1);
|
|
73
|
+
color: var(--cyan);
|
|
74
|
+
text-transform: uppercase;
|
|
75
|
+
letter-spacing: 0.08em;
|
|
76
|
+
font-size: 12px;
|
|
77
|
+
font-weight: 700;
|
|
78
|
+
}
|
|
79
|
+
h1 {
|
|
80
|
+
font-size: clamp(34px, 5vw, 56px);
|
|
81
|
+
line-height: 1.06;
|
|
82
|
+
letter-spacing: -0.04em;
|
|
83
|
+
margin: 16px 0;
|
|
84
|
+
max-width: 760px;
|
|
85
|
+
}
|
|
86
|
+
.hero p {
|
|
87
|
+
max-width: 720px;
|
|
88
|
+
color: var(--muted);
|
|
89
|
+
font-size: 18px;
|
|
90
|
+
}
|
|
91
|
+
.signal-row {
|
|
92
|
+
display: flex;
|
|
93
|
+
flex-wrap: wrap;
|
|
94
|
+
gap: 12px;
|
|
95
|
+
margin: 28px 0 0;
|
|
96
|
+
}
|
|
97
|
+
.signal-pill {
|
|
98
|
+
display: inline-flex;
|
|
99
|
+
align-items: center;
|
|
100
|
+
gap: 8px;
|
|
101
|
+
padding: 10px 14px;
|
|
102
|
+
border-radius: 999px;
|
|
103
|
+
border: 1px solid var(--line);
|
|
104
|
+
background: var(--bg-raised);
|
|
105
|
+
font-weight: 600;
|
|
106
|
+
font-size: 14px;
|
|
107
|
+
}
|
|
108
|
+
.signal-pill.up {
|
|
109
|
+
border-color: rgba(74, 222, 128, 0.28);
|
|
110
|
+
color: #b8f7c8;
|
|
111
|
+
background: rgba(74, 222, 128, 0.1);
|
|
112
|
+
}
|
|
113
|
+
.signal-pill.down {
|
|
114
|
+
border-color: rgba(248, 113, 113, 0.28);
|
|
115
|
+
color: #ffc0c0;
|
|
116
|
+
background: rgba(248, 113, 113, 0.1);
|
|
117
|
+
}
|
|
118
|
+
.grid {
|
|
119
|
+
display: grid;
|
|
120
|
+
grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
|
|
121
|
+
gap: 24px;
|
|
122
|
+
padding-bottom: 72px;
|
|
123
|
+
}
|
|
124
|
+
.card, .detail-section, .sidebar-card {
|
|
125
|
+
background: var(--bg-card);
|
|
126
|
+
border: 1px solid var(--line);
|
|
127
|
+
border-radius: 16px;
|
|
128
|
+
}
|
|
129
|
+
.card { padding: 24px; }
|
|
130
|
+
.detail-section { padding: 24px; margin-bottom: 18px; }
|
|
131
|
+
.detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
|
|
132
|
+
.detail-section p { color: var(--muted); }
|
|
133
|
+
.detail-section ul, .card ul { padding-left: 18px; color: var(--muted); }
|
|
134
|
+
.card h2 { margin-top: 0; }
|
|
135
|
+
.sidebar {
|
|
136
|
+
display: flex;
|
|
137
|
+
flex-direction: column;
|
|
138
|
+
gap: 18px;
|
|
139
|
+
}
|
|
140
|
+
.sidebar-card {
|
|
141
|
+
padding: 20px;
|
|
142
|
+
}
|
|
143
|
+
/* Only the first sidebar card sticks. Stacking multiple stickies at the
|
|
144
|
+
same top offset makes them overlap each other on scroll. The related-
|
|
145
|
+
pages card flows normally below. */
|
|
146
|
+
.sidebar-card:first-child {
|
|
147
|
+
position: sticky;
|
|
148
|
+
top: 84px;
|
|
149
|
+
max-height: calc(100vh - 104px);
|
|
150
|
+
overflow-y: auto;
|
|
151
|
+
-webkit-overflow-scrolling: touch;
|
|
152
|
+
}
|
|
153
|
+
.proof-links {
|
|
154
|
+
display: flex;
|
|
155
|
+
flex-wrap: wrap;
|
|
156
|
+
gap: 12px;
|
|
157
|
+
margin-top: 16px;
|
|
158
|
+
}
|
|
159
|
+
.cta-button {
|
|
160
|
+
display: inline-flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
justify-content: center;
|
|
163
|
+
margin-top: 18px;
|
|
164
|
+
padding: 12px 16px;
|
|
165
|
+
border-radius: 10px;
|
|
166
|
+
background: var(--cyan);
|
|
167
|
+
color: #071116;
|
|
168
|
+
font-weight: 700;
|
|
169
|
+
text-decoration: none;
|
|
170
|
+
}
|
|
171
|
+
.faq-item {
|
|
172
|
+
border-top: 1px solid var(--line);
|
|
173
|
+
padding: 14px 0;
|
|
174
|
+
}
|
|
175
|
+
.faq-item summary {
|
|
176
|
+
cursor: pointer;
|
|
177
|
+
font-weight: 600;
|
|
178
|
+
}
|
|
179
|
+
.faq-item p {
|
|
180
|
+
color: var(--muted);
|
|
181
|
+
}
|
|
182
|
+
.related-card {
|
|
183
|
+
display: block;
|
|
184
|
+
padding: 14px;
|
|
185
|
+
border-radius: 12px;
|
|
186
|
+
border: 1px solid var(--line);
|
|
187
|
+
background: var(--bg-raised);
|
|
188
|
+
margin-top: 12px;
|
|
189
|
+
color: var(--text);
|
|
190
|
+
}
|
|
191
|
+
.related-label {
|
|
192
|
+
display: block;
|
|
193
|
+
color: var(--muted);
|
|
194
|
+
font-size: 12px;
|
|
195
|
+
text-transform: uppercase;
|
|
196
|
+
letter-spacing: 0.08em;
|
|
197
|
+
margin-bottom: 4px;
|
|
198
|
+
}
|
|
199
|
+
@media (max-width: 860px) {
|
|
200
|
+
.grid {
|
|
201
|
+
grid-template-columns: 1fr;
|
|
202
|
+
}
|
|
203
|
+
.sidebar-card:first-child {
|
|
204
|
+
position: static;
|
|
205
|
+
max-height: none;
|
|
206
|
+
overflow: visible;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
</style>
|
|
210
|
+
<script type="application/ld+json">
|
|
211
|
+
{
|
|
212
|
+
"@context": "https://schema.org",
|
|
213
|
+
"@type": "TechArticle",
|
|
214
|
+
"headline": "Claude Code Feedback Memory That Actually Enforces",
|
|
215
|
+
"description": "Claude Code can remember more when the memory is structured, but reliability improves when thumbs-up/down feedback also becomes enforceable behavior. That is...",
|
|
216
|
+
"about": [
|
|
217
|
+
"claude code feedback memory"
|
|
218
|
+
],
|
|
219
|
+
"url": "https://thumbgate.ai/guides/claude-code-feedback",
|
|
220
|
+
"publisher": {
|
|
221
|
+
"@type": "Organization",
|
|
222
|
+
"name": "ThumbGate",
|
|
223
|
+
"url": "https://thumbgate.ai"
|
|
224
|
+
},
|
|
225
|
+
"mainEntityOfPage": "https://thumbgate.ai/guides/claude-code-feedback"
|
|
226
|
+
}
|
|
227
|
+
</script>
|
|
228
|
+
<script type="application/ld+json">
|
|
229
|
+
{
|
|
230
|
+
"@context": "https://schema.org",
|
|
231
|
+
"@type": "FAQPage",
|
|
232
|
+
"mainEntity": [
|
|
233
|
+
{
|
|
234
|
+
"@type": "Question",
|
|
235
|
+
"name": "Does this only work with Claude Code?",
|
|
236
|
+
"acceptedAnswer": {
|
|
237
|
+
"@type": "Answer",
|
|
238
|
+
"text": "No. Claude Code is a strong entry point, but the same thumbs-up/down feedback loop and pre-action checks work across other MCP-compatible coding agents too."
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"@type": "Question",
|
|
243
|
+
"name": "Why mention thumbs up as well as thumbs down?",
|
|
244
|
+
"acceptedAnswer": {
|
|
245
|
+
"@type": "Answer",
|
|
246
|
+
"text": "Because reinforcement matters. Good behavior should become easier to repeat, not only bad behavior harder to repeat."
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
]
|
|
250
|
+
}
|
|
251
|
+
</script>
|
|
252
|
+
</head>
|
|
253
|
+
<body>
|
|
254
|
+
<div class="topbar">
|
|
255
|
+
<div class="container">
|
|
256
|
+
<a class="brand" href="/"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
257
|
+
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<main class="container">
|
|
262
|
+
<section class="hero">
|
|
263
|
+
<div class="eyebrow">integration | claude code feedback memory</div>
|
|
264
|
+
<h1>Claude Code Feedback Memory That Actually Enforces</h1>
|
|
265
|
+
<p>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.</p>
|
|
266
|
+
<div class="signal-row">
|
|
267
|
+
<div class="signal-pill up">👍 Thumbs up reinforces good behavior</div>
|
|
268
|
+
<div class="signal-pill down">👎 Thumbs down blocks repeated mistakes</div>
|
|
269
|
+
</div>
|
|
270
|
+
</section>
|
|
271
|
+
|
|
272
|
+
<section class="grid">
|
|
273
|
+
<div>
|
|
274
|
+
<div class="card">
|
|
275
|
+
<h2>Why this page exists</h2>
|
|
276
|
+
<ul><li>Claude Code users usually feel the pain as repeated mistakes across sessions.</li><li>ThumbGate captures the thumbs-up/down signal and turns it into memory, rules, and gates.</li><li>The page should convert Claude Code searchers into a product trial or a comparison-page reader.</li></ul>
|
|
277
|
+
</div>
|
|
278
|
+
|
|
279
|
+
<section class="detail-section">
|
|
280
|
+
<h2>The Claude Code problem</h2>
|
|
281
|
+
<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>
|
|
282
|
+
|
|
283
|
+
</section>
|
|
284
|
+
<section class="detail-section">
|
|
285
|
+
<h2>The ThumbGate angle</h2>
|
|
286
|
+
|
|
287
|
+
<ul><li>Thumbs up reinforces good behavior.</li><li>Thumbs down becomes a prevention rule.</li><li>Pre-action gates stop the repeated mistake before the next command executes.</li><li>The same flow works across Cursor, Codex, Gemini, Amp, and OpenCode.</li></ul>
|
|
288
|
+
</section>
|
|
289
|
+
<section class="detail-section">
|
|
290
|
+
<h2>What to show on this page</h2>
|
|
291
|
+
<p>Compatibility proof, install speed, and verification evidence matter more than generic "memory" copy. The buyer should leave knowing that ThumbGate is the enforcement layer for Claude Code, not just another notebook of past context.</p>
|
|
292
|
+
|
|
293
|
+
</section>
|
|
294
|
+
<div class="detail-section">
|
|
295
|
+
<h2>FAQ</h2>
|
|
296
|
+
|
|
297
|
+
<details class="faq-item">
|
|
298
|
+
<summary>Does this only work with Claude Code?</summary>
|
|
299
|
+
<p>No. Claude Code is a strong entry point, but the same thumbs-up/down feedback loop and pre-action checks work across other MCP-compatible coding agents too.</p>
|
|
300
|
+
</details>
|
|
301
|
+
<details class="faq-item">
|
|
302
|
+
<summary>Why mention thumbs up as well as thumbs down?</summary>
|
|
303
|
+
<p>Because reinforcement matters. Good behavior should become easier to repeat, not only bad behavior harder to repeat.</p>
|
|
304
|
+
</details>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
|
|
308
|
+
<aside class="sidebar">
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
<div class="sidebar-card">
|
|
314
|
+
<h2>GSD execution brief</h2>
|
|
315
|
+
<p>This page was prioritized because it captures high-intent demand around claude code feedback memory and feeds directly into ThumbGate's proof-led conversion path.</p>
|
|
316
|
+
<p><strong>Opportunity score:</strong> 89</p>
|
|
317
|
+
<p><strong>Primary persona:</strong> claude-code-builder</p>
|
|
318
|
+
<p><strong>Keyword cluster:</strong> claude code feedback memory</p>
|
|
319
|
+
<p><strong>Pricing:</strong> Pro $19/mo or $149/yr. Team $49/seat/mo.</p>
|
|
320
|
+
<div class="proof-links"><a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a><a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/proof/automation/report.json" target="_blank" rel="noopener">Automation proof</a><a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub repository</a></div>
|
|
321
|
+
<a class="cta-button" href="/checkout/pro?utm_source=website&utm_medium=seo_page&utm_campaign=guides_claude-code-feedback&cta_placement=seo_brief&plan_id=pro" target="_blank" rel="noopener">Go Pro — $19/mo</a>
|
|
322
|
+
</div>
|
|
323
|
+
<div class="sidebar-card">
|
|
324
|
+
<h2>Related pages</h2>
|
|
325
|
+
|
|
326
|
+
<a class="related-card" href="/guides/pre-action-checks">
|
|
327
|
+
<span class="related-label">Related page</span>
|
|
328
|
+
<strong>What Are Pre-Action Checks?</strong>
|
|
329
|
+
</a>
|
|
330
|
+
<a class="related-card" href="/compare/mem0">
|
|
331
|
+
<span class="related-label">Related page</span>
|
|
332
|
+
<strong>ThumbGate vs Mem0</strong>
|
|
333
|
+
</a>
|
|
334
|
+
</div>
|
|
335
|
+
</aside>
|
|
336
|
+
</section>
|
|
337
|
+
</main>
|
|
338
|
+
</body>
|
|
339
|
+
</html>
|
|
@@ -0,0 +1,161 @@
|
|
|
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.ai" 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 checks, 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.ai/guides/claude-code-prevent-repeated-mistakes">
|
|
14
|
+
<link rel="canonical" href="https://thumbgate.ai/guides/claude-code-prevent-repeated-mistakes">
|
|
15
|
+
<link rel="llm-context" href="/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 checks.",
|
|
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.ai"
|
|
32
|
+
},
|
|
33
|
+
"datePublished": "2026-04-09",
|
|
34
|
+
"dateModified": "2026-04-09",
|
|
35
|
+
"mainEntityOfPage": "https://thumbgate.ai/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 checks"}
|
|
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 checks 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 checks 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 checks 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 checks 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 checks 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 checks 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 checks 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 checks. Pro is $19/mo or $149/yr for the personal dashboard and exports. Team rollout anchors at $49/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-checks">What Are Pre-Action Checks? →</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>
|