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.
Files changed (112) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.well-known/llms.txt +1 -2
  3. package/.well-known/mcp/server-card.json +1 -1
  4. package/README.md +0 -2
  5. package/adapters/claude/.mcp.json +2 -2
  6. package/adapters/mcp/server-stdio.js +1 -1
  7. package/adapters/opencode/opencode.json +1 -1
  8. package/bin/cli.js +259 -78
  9. package/package.json +12 -19
  10. package/public/blog.html +30 -0
  11. package/public/compare/adopt-ai.html +219 -0
  12. package/public/compare/agentix-labs.html +197 -0
  13. package/public/compare/ai-experience-orchestration.html +216 -0
  14. package/public/compare/anthropic-claude-for-legal.html +260 -0
  15. package/public/compare/anthropic-containment.html +280 -0
  16. package/public/compare/arcade.html +175 -0
  17. package/public/compare/arcjet.html +239 -0
  18. package/public/compare/bumblebee.html +307 -0
  19. package/public/compare/claude-code-hooks.html +294 -0
  20. package/public/compare/databricks-unity-ai-gateway.html +215 -0
  21. package/public/compare/fallow.html +351 -0
  22. package/public/compare/heidi.html +233 -0
  23. package/public/compare/mem0.html +342 -0
  24. package/public/compare/oak-and-sparrow-gatekeeper.html +289 -0
  25. package/public/compare/rein.html +236 -0
  26. package/public/compare/sigmashake.html +256 -0
  27. package/public/compare/speclock.html +342 -0
  28. package/public/compare.html +2 -0
  29. package/public/guides/agent-harness-optimization.html +342 -0
  30. package/public/guides/agentic-web-governance.html +406 -0
  31. package/public/guides/ai-agent-governance-sprint.html +415 -0
  32. package/public/guides/ai-agent-pre-action-approval-gates.html +401 -0
  33. package/public/guides/ai-agent-workflow-migration-checklist.html +392 -0
  34. package/public/guides/ai-deployment-readiness.html +415 -0
  35. package/public/guides/ai-mode-ads-agent-governance.html +401 -0
  36. package/public/guides/ai-search-topical-presence.html +342 -0
  37. package/public/guides/autoresearch-agent-safety.html +342 -0
  38. package/public/guides/background-agent-governance.html +358 -0
  39. package/public/guides/best-tools-stop-ai-agents-breaking-production.html +363 -0
  40. package/public/guides/browser-automation-safety.html +342 -0
  41. package/public/guides/chatgpt-ads-trust.html +353 -0
  42. package/public/guides/claude-code-feedback.html +339 -0
  43. package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
  44. package/public/guides/claude-code-skills-guardrails.html +343 -0
  45. package/public/guides/claude-desktop.html +356 -0
  46. package/public/guides/code-knowledge-graph-guardrails.html +365 -0
  47. package/public/guides/codex-cli-guardrails.html +339 -0
  48. package/public/guides/cursor-agent-guardrails.html +339 -0
  49. package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
  50. package/public/guides/database-agent-safety.html +406 -0
  51. package/public/guides/deepseek-v4-runtime-guardrails.html +346 -0
  52. package/public/guides/developer-machine-supply-chain-guardrails.html +358 -0
  53. package/public/guides/gcp-mcp-guardrails.html +147 -0
  54. package/public/guides/gemini-cli-feedback-memory.html +339 -0
  55. package/public/guides/gpt-5-5-model-evaluation.html +358 -0
  56. package/public/guides/internal-ai-engineering-stack-guardrails.html +348 -0
  57. package/public/guides/long-running-agent-context-management.html +346 -0
  58. package/public/guides/mcp-tool-governance.html +401 -0
  59. package/public/guides/multica-thumbgate-setup.html +134 -0
  60. package/public/guides/native-messaging-host-security.html +342 -0
  61. package/public/guides/policy-engine-pre-action-gates.html +346 -0
  62. package/public/guides/pre-action-checks.html +342 -0
  63. package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +342 -0
  64. package/public/guides/prompt-tricks-to-workflow-rules.html +365 -0
  65. package/public/guides/proxy-pointer-rag-guardrails.html +352 -0
  66. package/public/guides/rag-precision-tuning-guardrails.html +352 -0
  67. package/public/guides/reasoning-compression-guardrails.html +346 -0
  68. package/public/guides/relational-knowledge-ai-recommendations.html +342 -0
  69. package/public/guides/roo-code-alternative-cline.html +339 -0
  70. package/public/guides/semantic-programmatic-seo-guardrails.html +352 -0
  71. package/public/guides/seo-agent-skills-guardrails.html +344 -0
  72. package/public/guides/stop-repeated-ai-agent-mistakes.html +342 -0
  73. package/public/index.html +12 -50
  74. package/public/learn/ac-dc-runtime-enforcement.html +277 -0
  75. package/public/learn/agent-harness-pattern.html +181 -0
  76. package/public/learn/agent-swarms-shared-gates.html +173 -0
  77. package/public/learn/agentic-enterprise-context-brain.html +117 -0
  78. package/public/learn/agentic-os-team-governance.html +146 -0
  79. package/public/learn/ai-agent-governance.html +158 -0
  80. package/public/learn/ai-agent-persistent-memory.html +211 -0
  81. package/public/learn/background-agent-control-layer.html +184 -0
  82. package/public/learn/claude-code-goal-with-rubrics.html +205 -0
  83. package/public/learn/codex-role-plugins-need-governance.html +125 -0
  84. package/public/learn/cost-aware-agent-gate-routing.html +173 -0
  85. package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +157 -0
  86. package/public/learn/deterministic-agent-workflows.html +185 -0
  87. package/public/learn/feedback-loop-vs-decision-layer.html +283 -0
  88. package/public/learn/from-prototype-to-production.html +223 -0
  89. package/public/learn/learn.css +51 -0
  90. package/public/learn/mcp-pre-action-checks-explained.html +172 -0
  91. package/public/learn/pretix-stripe-connect-marketplaces.html +161 -0
  92. package/public/learn/regulated-agent-execution-boundary.html +196 -0
  93. package/public/learn/spec-driven-development.html +168 -0
  94. package/public/learn/stop-ai-agent-force-push.html +134 -0
  95. package/public/learn/vibe-coding-safety-net.html +142 -0
  96. package/public/learn.html +6 -50
  97. package/public/numbers.html +2 -2
  98. package/public/pro.html +6 -6
  99. package/scripts/cli-schema.js +10 -22
  100. package/scripts/dashboard-chat.js +1 -2
  101. package/scripts/document-intake.js +49 -1
  102. package/scripts/gemini-embedding-policy.js +1 -2
  103. package/scripts/hosted-config.js +12 -0
  104. package/scripts/plausible-domain-config.js +1 -3
  105. package/scripts/reddit-browser-notification-watch.js +230 -0
  106. package/scripts/seo-gsd.js +0 -239
  107. package/scripts/vector-store.js +0 -44
  108. package/scripts/workspace-evolver.js +2 -62
  109. package/src/api/server.js +124 -335
  110. package/adapters/policy-engine/ethicore-guardian-client.js +0 -68
  111. package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +0 -260
  112. 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>Codex CLI Guardrails | Prevent Repeated Mistakes with ThumbGate</title>
7
+ <meta name="description" content="Codex CLI can move quickly through repo tasks, but buyers need more than good intentions. ThumbGate adds a reliability gateway so repeated mistakes become se..." />
8
+ <meta property="og:title" content="Codex CLI Guardrails | Prevent Repeated Mistakes with ThumbGate" />
9
+ <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 so repeated mistakes become se..." />
10
+ <meta property="og:type" content="article" />
11
+ <meta property="og:url" content="https://thumbgate.ai/guides/codex-cli-guardrails" />
12
+ <link rel="canonical" href="https://thumbgate.ai/guides/codex-cli-guardrails" />
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": "Codex CLI Guardrails That Actually Enforce",
215
+ "description": "Codex CLI can move quickly through repo tasks, but buyers need more than good intentions. ThumbGate adds a reliability gateway so repeated mistakes become se...",
216
+ "about": [
217
+ "codex cli guardrails"
218
+ ],
219
+ "url": "https://thumbgate.ai/guides/codex-cli-guardrails",
220
+ "publisher": {
221
+ "@type": "Organization",
222
+ "name": "ThumbGate",
223
+ "url": "https://thumbgate.ai"
224
+ },
225
+ "mainEntityOfPage": "https://thumbgate.ai/guides/codex-cli-guardrails"
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": "Is ThumbGate only for Codex CLI?",
236
+ "acceptedAnswer": {
237
+ "@type": "Answer",
238
+ "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."
239
+ }
240
+ },
241
+ {
242
+ "@type": "Question",
243
+ "name": "How are Codex CLI guardrails different from prompt instructions?",
244
+ "acceptedAnswer": {
245
+ "@type": "Answer",
246
+ "text": "Prompt instructions are advisory. ThumbGate pre-action checks intercept the tool call itself and block the known-bad pattern before execution."
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 | codex cli guardrails</div>
264
+ <h1>Codex CLI Guardrails That Actually Enforce</h1>
265
+ <p>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.</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>Codex CLI buyers are usually looking for safe autonomy, not just more prompts.</li><li>ThumbGate sits in the critical gap between feedback and execution.</li><li>This page should rank for people who want guardrails without giving up CLI speed.</li></ul>
277
+ </div>
278
+
279
+ <section class="detail-section">
280
+ <h2>What Codex CLI users usually need</h2>
281
+ <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>
282
+
283
+ </section>
284
+ <section class="detail-section">
285
+ <h2>What ThumbGate adds</h2>
286
+
287
+ <ul><li>Feedback capture with explicit thumbs-up/down signals.</li><li>Searchable lessons and linked prevention rules.</li><li>Pre-action checks that block repeated bad commands before they run.</li><li>Verification evidence that gives teams something concrete to audit.</li></ul>
288
+ </section>
289
+ <section class="detail-section">
290
+ <h2>Why this matters for revenue</h2>
291
+ <p>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.</p>
292
+
293
+ </section>
294
+ <div class="detail-section">
295
+ <h2>FAQ</h2>
296
+
297
+ <details class="faq-item">
298
+ <summary>Is ThumbGate only for Codex CLI?</summary>
299
+ <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>
300
+ </details>
301
+ <details class="faq-item">
302
+ <summary>How are Codex CLI guardrails different from prompt instructions?</summary>
303
+ <p>Prompt instructions are advisory. ThumbGate pre-action checks intercept the tool call itself and block the known-bad pattern before execution.</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 codex cli guardrails 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> codex-builder</p>
318
+ <p><strong>Keyword cluster:</strong> codex cli guardrails</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&amp;utm_medium=seo_page&amp;utm_campaign=guides_codex-cli-guardrails&amp;cta_placement=seo_brief&amp;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,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>Cursor Agent Guardrails | Stop Repeated Mistakes with ThumbGate</title>
7
+ <meta name="description" content="Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action c..." />
8
+ <meta property="og:title" content="Cursor Agent Guardrails | Stop Repeated Mistakes with ThumbGate" />
9
+ <meta property="og:description" content="Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action c..." />
10
+ <meta property="og:type" content="article" />
11
+ <meta property="og:url" content="https://thumbgate.ai/guides/cursor-agent-guardrails" />
12
+ <link rel="canonical" href="https://thumbgate.ai/guides/cursor-agent-guardrails" />
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": "Cursor Guardrails That Block Repeated Mistakes",
215
+ "description": "Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action c...",
216
+ "about": [
217
+ "cursor prevent repeated mistakes"
218
+ ],
219
+ "url": "https://thumbgate.ai/guides/cursor-agent-guardrails",
220
+ "publisher": {
221
+ "@type": "Organization",
222
+ "name": "ThumbGate",
223
+ "url": "https://thumbgate.ai"
224
+ },
225
+ "mainEntityOfPage": "https://thumbgate.ai/guides/cursor-agent-guardrails"
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": "Do I need to leave Cursor to use ThumbGate?",
236
+ "acceptedAnswer": {
237
+ "@type": "Answer",
238
+ "text": "No. ThumbGate is designed to sit alongside existing coding-agent workflows so you can add enforcement without switching tools."
239
+ }
240
+ },
241
+ {
242
+ "@type": "Question",
243
+ "name": "What kind of mistakes can Cursor guardrails stop?",
244
+ "acceptedAnswer": {
245
+ "@type": "Answer",
246
+ "text": "Repeated failures like risky git actions, destructive scripts, skipped verification, or any other known-bad pattern you have already corrected once."
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 | cursor prevent repeated mistakes</div>
264
+ <h1>Cursor Guardrails That Block Repeated Mistakes</h1>
265
+ <p>Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action checks before the next risky step fires.</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>Cursor users want speed without trusting the agent blindly.</li><li>ThumbGate adds enforcement without forcing a platform switch.</li><li>The page should answer the buyer question in one line: how do I stop Cursor from doing the same bad thing again?</li></ul>
277
+ </div>
278
+
279
+ <section class="detail-section">
280
+ <h2>The Cursor workflow problem</h2>
281
+ <p>Cursor can move from idea to edits quickly, but the failure mode is familiar: the same wrong refactor, risky shell command, or skipped check comes back in the next session because nothing hardened the workflow.</p>
282
+
283
+ </section>
284
+ <section class="detail-section">
285
+ <h2>How ThumbGate fits into Cursor</h2>
286
+
287
+ <ul><li>Capture thumbs-up/down feedback on agent behavior.</li><li>Promote repeated failures into prevention rules.</li><li>Block known-bad commands with pre-action checks before execution.</li><li>Keep the memory and gates local-first so the operator retains control.</li></ul>
288
+ </section>
289
+ <section class="detail-section">
290
+ <h2>What makes this different from a rule file</h2>
291
+ <p>Static rules help on day one. ThumbGate helps on day two and day twenty because it keeps learning from live corrections instead of relying on a fixed checklist that drifts out of date.</p>
292
+
293
+ </section>
294
+ <div class="detail-section">
295
+ <h2>FAQ</h2>
296
+
297
+ <details class="faq-item">
298
+ <summary>Do I need to leave Cursor to use ThumbGate?</summary>
299
+ <p>No. ThumbGate is designed to sit alongside existing coding-agent workflows so you can add enforcement without switching tools.</p>
300
+ </details>
301
+ <details class="faq-item">
302
+ <summary>What kind of mistakes can Cursor guardrails stop?</summary>
303
+ <p>Repeated failures like risky git actions, destructive scripts, skipped verification, or any other known-bad pattern you have already corrected once.</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 cursor prevent repeated mistakes 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> cursor-builder</p>
318
+ <p><strong>Keyword cluster:</strong> cursor prevent repeated mistakes</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&amp;utm_medium=seo_page&amp;utm_campaign=guides_cursor-agent-guardrails&amp;cta_placement=seo_brief&amp;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/stop-repeated-ai-agent-mistakes">
327
+ <span class="related-label">Related page</span>
328
+ <strong>How to Stop AI Coding Agents From Repeating Mistakes</strong>
329
+ </a>
330
+ <a class="related-card" href="/guides/pre-action-checks">
331
+ <span class="related-label">Related page</span>
332
+ <strong>What Are Pre-Action Checks?</strong>
333
+ </a>
334
+ </div>
335
+ </aside>
336
+ </section>
337
+ </main>
338
+ </body>
339
+ </html>