thumbgate 1.15.0 → 1.16.0
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 +6 -6
- package/.claude-plugin/plugin.json +3 -3
- package/.well-known/llms.txt +5 -5
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +59 -35
- package/adapters/chatgpt/openapi.yaml +118 -2
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +210 -84
- package/adapters/opencode/opencode.json +1 -1
- package/bench/prompt-eval-suite.json +5 -1
- package/bin/cli.js +157 -8
- package/config/evals/agent-safety-eval.json +338 -22
- package/config/gates/routine.json +43 -0
- package/config/github-about.json +3 -3
- package/config/model-candidates.json +131 -0
- package/openapi/openapi.yaml +118 -2
- package/package.json +55 -48
- package/public/blog.html +7 -7
- package/public/codex-plugin.html +6 -6
- package/public/compare.html +29 -23
- package/public/dashboard.html +82 -10
- package/public/guide.html +28 -28
- package/public/index.html +216 -98
- package/public/learn.html +50 -22
- package/public/lessons.html +1 -1
- package/public/numbers.html +17 -17
- package/public/pro.html +82 -18
- package/scripts/agent-audit-trace.js +55 -0
- package/scripts/agent-memory-lifecycle.js +96 -0
- package/scripts/agent-readiness-plan.js +118 -0
- package/scripts/agentic-data-pipeline.js +21 -1
- package/scripts/agents-sdk-sandbox-plan.js +57 -0
- package/scripts/ai-org-governance.js +98 -0
- package/scripts/ai-search-distribution.js +43 -0
- package/scripts/artifact-agent-plan.js +81 -0
- package/scripts/billing.js +27 -8
- package/scripts/cli-schema.js +18 -2
- package/scripts/code-mode-mcp-plan.js +71 -0
- package/scripts/context-engine.js +1 -2
- package/scripts/context-manager.js +4 -1
- package/scripts/dashboard-render-spec.js +1 -1
- package/scripts/dashboard.js +275 -9
- package/scripts/decision-journal.js +13 -3
- package/scripts/document-workflow-governance.js +62 -0
- package/scripts/enterprise-agent-rollout.js +34 -0
- package/scripts/experience-replay-governance.js +69 -0
- package/scripts/export-hf-dataset.js +1 -1
- package/scripts/feedback-loop.js +92 -4
- package/scripts/feedback-to-rules.js +17 -23
- package/scripts/gates-engine.js +4 -6
- package/scripts/growth-campaigns.js +49 -0
- package/scripts/harness-selector.js +16 -4
- package/scripts/hybrid-supervisor-agent.js +64 -0
- package/scripts/inference-cache-policy.js +72 -0
- package/scripts/inference-economics.js +53 -0
- package/scripts/internal-agent-bootstrap.js +12 -2
- package/scripts/knowledge-layer-plan.js +108 -0
- package/scripts/lesson-inference.js +183 -44
- package/scripts/lesson-search.js +4 -1
- package/scripts/llm-client.js +157 -26
- package/scripts/mailer/resend-mailer.js +112 -1
- package/scripts/mcp-transport-strategy.js +66 -0
- package/scripts/memory-store-governance.js +60 -0
- package/scripts/meta-agent-loop.js +7 -13
- package/scripts/model-access-eligibility.js +38 -0
- package/scripts/model-migration-readiness.js +55 -0
- package/scripts/operational-integrity.js +96 -3
- package/scripts/otel-declarative-config.js +56 -0
- package/scripts/perplexity-client.js +1 -1
- package/scripts/post-training-governance.js +34 -0
- package/scripts/private-core-boundary.js +72 -0
- package/scripts/production-agent-readiness.js +40 -0
- package/scripts/prompt-eval.js +564 -32
- package/scripts/prompt-programs.js +93 -0
- package/scripts/provider-action-normalizer.js +585 -0
- package/scripts/scaling-law-claims.js +60 -0
- package/scripts/security-scanner.js +1 -1
- package/scripts/self-distill-agent.js +7 -32
- package/scripts/seo-gsd.js +232 -55
- package/scripts/skill-rag-router.js +53 -0
- package/scripts/spec-gate.js +1 -1
- package/scripts/student-consistent-training.js +73 -0
- package/scripts/synthetic-data-provenance.js +98 -0
- package/scripts/task-context-result.js +81 -0
- package/scripts/telemetry-analytics.js +149 -0
- package/scripts/thompson-sampling.js +2 -2
- package/scripts/token-savings.js +7 -6
- package/scripts/token-tco.js +46 -0
- package/scripts/tool-registry.js +63 -3
- package/scripts/verification-loop.js +10 -1
- package/scripts/verifier-scoring.js +71 -0
- package/scripts/workflow-sentinel.js +284 -28
- package/scripts/workspace-agent-routines.js +118 -0
- package/src/api/server.js +381 -120
- package/scripts/analytics-report.js +0 -328
- package/scripts/autonomous-workflow.js +0 -377
- package/scripts/billing-setup.js +0 -109
- package/scripts/creator-campaigns.js +0 -239
- package/scripts/cross-encoder-reranker.js +0 -235
- package/scripts/daemon-manager.js +0 -108
- package/scripts/decision-trace.js +0 -354
- package/scripts/delegation-runtime.js +0 -896
- package/scripts/dispatch-brief.js +0 -159
- package/scripts/distribution-surfaces.js +0 -110
- package/scripts/feedback-history-distiller.js +0 -382
- package/scripts/funnel-analytics.js +0 -35
- package/scripts/history-distiller.js +0 -200
- package/scripts/hosted-job-launcher.js +0 -256
- package/scripts/intent-router.js +0 -392
- package/scripts/lesson-reranker.js +0 -263
- package/scripts/lesson-retrieval.js +0 -148
- package/scripts/managed-lesson-agent.js +0 -183
- package/scripts/operational-dashboard.js +0 -103
- package/scripts/operational-summary.js +0 -129
- package/scripts/operator-artifacts.js +0 -608
- package/scripts/optimize-context.js +0 -17
- package/scripts/org-dashboard.js +0 -206
- package/scripts/partner-orchestration.js +0 -146
- package/scripts/predictive-insights.js +0 -356
- package/scripts/pulse.js +0 -80
- package/scripts/reflector-agent.js +0 -221
- package/scripts/sales-pipeline.js +0 -681
- package/scripts/session-episode-store.js +0 -329
- package/scripts/session-health-sensor.js +0 -242
- package/scripts/session-report.js +0 -120
- package/scripts/swarm-coordinator.js +0 -81
- package/scripts/tool-kpi-tracker.js +0 -12
- package/scripts/webhook-delivery.js +0 -62
- package/scripts/workflow-sprint-intake.js +0 -475
package/scripts/seo-gsd.js
CHANGED
|
@@ -10,13 +10,13 @@ const PRODUCT = {
|
|
|
10
10
|
name: 'ThumbGate',
|
|
11
11
|
npm: 'thumbgate',
|
|
12
12
|
repoUrl: 'https://github.com/IgorGanapolsky/ThumbGate',
|
|
13
|
-
homepageUrl: 'https://thumbgate
|
|
13
|
+
homepageUrl: 'https://thumbgate.ai',
|
|
14
14
|
verificationUrl: 'https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md',
|
|
15
15
|
automationUrl: 'https://github.com/IgorGanapolsky/ThumbGate/blob/main/proof/automation/report.json',
|
|
16
16
|
compatibility: ['Claude Code', 'Cursor', 'Codex', 'Gemini', 'Amp', 'OpenCode'],
|
|
17
17
|
proofPoints: [
|
|
18
18
|
'thumbs-up/down feedback loop',
|
|
19
|
-
'pre-action
|
|
19
|
+
'pre-action checks',
|
|
20
20
|
'verification evidence',
|
|
21
21
|
'automation proof',
|
|
22
22
|
'SQLite+FTS5 lesson DB',
|
|
@@ -38,7 +38,7 @@ const HIGH_ROI_QUERY_SEEDS = [
|
|
|
38
38
|
notes: 'Bottom-of-funnel comparison against memory-only tooling.',
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
query: 'pre-action
|
|
41
|
+
query: 'pre-action checks for ai coding agents',
|
|
42
42
|
businessValue: 96,
|
|
43
43
|
source: 'seed',
|
|
44
44
|
notes: 'Category-defining query that explains the core wedge.',
|
|
@@ -46,7 +46,7 @@ const HIGH_ROI_QUERY_SEEDS = [
|
|
|
46
46
|
querySeed(
|
|
47
47
|
'ai agent harness optimization',
|
|
48
48
|
94,
|
|
49
|
-
'Fresh harness-engineering demand that maps directly to ThumbGate progressive disclosure, pre-action
|
|
49
|
+
'Fresh harness-engineering demand that maps directly to ThumbGate progressive disclosure, pre-action checks, and workflow audits.',
|
|
50
50
|
),
|
|
51
51
|
querySeed(
|
|
52
52
|
'browser automation safety',
|
|
@@ -58,6 +58,21 @@ const HIGH_ROI_QUERY_SEEDS = [
|
|
|
58
58
|
91,
|
|
59
59
|
'Security-led query that maps directly to browser bridge auditing and explicit connector governance.',
|
|
60
60
|
),
|
|
61
|
+
querySeed(
|
|
62
|
+
'ai search topical presence',
|
|
63
|
+
93,
|
|
64
|
+
'High-intent GEO query for teams trying to become the obvious recommendation in AI search and agent answers.',
|
|
65
|
+
),
|
|
66
|
+
querySeed(
|
|
67
|
+
'best tools to stop ai agents from breaking production',
|
|
68
|
+
92,
|
|
69
|
+
'Listicle-style answer-engine query that maps directly to buyer prompts about production agent reliability.',
|
|
70
|
+
),
|
|
71
|
+
querySeed(
|
|
72
|
+
'relational knowledge ai recommendations',
|
|
73
|
+
91,
|
|
74
|
+
'Captures research-led interest in how AI systems decide which brands and tools to recommend.',
|
|
75
|
+
),
|
|
61
76
|
{
|
|
62
77
|
query: 'thumbs up thumbs down feedback for ai coding agents',
|
|
63
78
|
businessValue: 95,
|
|
@@ -161,7 +176,7 @@ function preActionGuide(slug, content) {
|
|
|
161
176
|
return guideBlueprint({
|
|
162
177
|
...content,
|
|
163
178
|
path: `/guides/${slug}`,
|
|
164
|
-
pillar: 'pre-action-
|
|
179
|
+
pillar: 'pre-action-checks',
|
|
165
180
|
});
|
|
166
181
|
}
|
|
167
182
|
|
|
@@ -170,14 +185,14 @@ const HARNESS_OPTIMIZATION_GUIDE_SPEC = Object.freeze({
|
|
|
170
185
|
slug: 'agent-harness-optimization',
|
|
171
186
|
meta: {
|
|
172
187
|
query: HARNESS_OPTIMIZATION_QUERY,
|
|
173
|
-
title: 'AI Agent Harness Optimization | Progressive Disclosure + Pre-Action
|
|
188
|
+
title: 'AI Agent Harness Optimization | Progressive Disclosure + Pre-Action Checks',
|
|
174
189
|
heroTitle: 'AI Agent Harness Optimization That Blocks Repeat Failures',
|
|
175
|
-
heroSummary: 'A better harness keeps global instructions lean, loads MCP schemas only when needed, and turns feedback into pre-action
|
|
190
|
+
heroSummary: 'A better harness keeps global instructions lean, loads MCP schemas only when needed, and turns feedback into pre-action checks. ThumbGate makes that workflow measurable and enforceable.',
|
|
176
191
|
},
|
|
177
192
|
takeaways: [
|
|
178
193
|
'Harness optimization is the control layer around the model: context, tools, guardrails, and feedback.',
|
|
179
194
|
'Progressive disclosure keeps agents out of prompt bloat while preserving proof and tool access.',
|
|
180
|
-
'ThumbGate adds a concrete audit path and Pre-Action
|
|
195
|
+
'ThumbGate adds a concrete audit path and Pre-Action Checks so harness lessons become runtime enforcement.',
|
|
181
196
|
],
|
|
182
197
|
sections: [
|
|
183
198
|
['paragraphs', 'What changed', [
|
|
@@ -188,7 +203,7 @@ const HARNESS_OPTIMIZATION_GUIDE_SPEC = Object.freeze({
|
|
|
188
203
|
'Scores global agent docs so AGENTS.md, CLAUDE.md, and GEMINI.md stay lean instead of becoming unreviewable prompt bundles.',
|
|
189
204
|
'Publishes progressive MCP discovery through lightweight indexes and per-tool schema URLs.',
|
|
190
205
|
'Selects specialized gate harnesses for deploy, code-edit, and database-write actions instead of loading every gate for every workflow.',
|
|
191
|
-
'Turns thumbs-down feedback into prevention rules, then into hard Pre-Action
|
|
206
|
+
'Turns thumbs-down feedback into prevention rules, then into hard Pre-Action Checks that block repeated mistakes.',
|
|
192
207
|
]],
|
|
193
208
|
['paragraphs', 'Where this creates ROI', [
|
|
194
209
|
'For acquisition, this page names the buyer category: AI agent harness optimization. For conversion, the CLI audit gives a concrete first action. For retention, the same audit keeps local instructions and MCP surfaces from drifting back into bloat.',
|
|
@@ -201,10 +216,10 @@ const HARNESS_OPTIMIZATION_GUIDE_SPEC = Object.freeze({
|
|
|
201
216
|
],
|
|
202
217
|
[
|
|
203
218
|
'How does ThumbGate optimize a harness?',
|
|
204
|
-
'ThumbGate keeps global instructions lean, supports progressive MCP discovery, selects workflow-specific gate harnesses, and converts feedback into Pre-Action
|
|
219
|
+
'ThumbGate keeps global instructions lean, supports progressive MCP discovery, selects workflow-specific gate harnesses, and converts feedback into Pre-Action Checks that block known-bad actions before execution.',
|
|
205
220
|
],
|
|
206
221
|
],
|
|
207
|
-
relatedPaths: ['/guides/pre-action-
|
|
222
|
+
relatedPaths: ['/guides/pre-action-checks', '/guides/codex-cli-guardrails'],
|
|
208
223
|
});
|
|
209
224
|
|
|
210
225
|
function buildSectionFromSpec(kind, heading, entries) {
|
|
@@ -226,7 +241,7 @@ const BROWSER_BRIDGE_GUIDE_SPECS = Object.freeze([
|
|
|
226
241
|
slug: 'browser-automation-safety',
|
|
227
242
|
meta: {
|
|
228
243
|
query: 'browser automation safety',
|
|
229
|
-
title: 'Browser Automation Safety | Prompt Injection, Permissions, and Pre-Action
|
|
244
|
+
title: 'Browser Automation Safety | Prompt Injection, Permissions, and Pre-Action Checks',
|
|
230
245
|
heroTitle: 'Browser automation safety needs explicit approval boundaries',
|
|
231
246
|
heroSummary: 'Browser agents can click, type, and navigate for you, but they also widen prompt-injection and cross-app integration risk. ThumbGate adds approval boundaries, auditability, and a native messaging audit before those bridges turn into silent blast-radius expansion.',
|
|
232
247
|
},
|
|
@@ -247,7 +262,7 @@ const BROWSER_BRIDGE_GUIDE_SPECS = Object.freeze([
|
|
|
247
262
|
'Whether browser-use runs default to ask-before-acting or silently expand capability before a human approves them.',
|
|
248
263
|
]],
|
|
249
264
|
['paragraphs', 'How ThumbGate fits', [
|
|
250
|
-
'ThumbGate is the approval and enforcement layer around browser-use. Start by running npx thumbgate native-messaging-audit. Then gate future connector installs, record who approved them, and turn browser-bridge mistakes into Pre-Action
|
|
265
|
+
'ThumbGate is the approval and enforcement layer around browser-use. Start by running npx thumbgate native-messaging-audit. Then gate future connector installs, record who approved them, and turn browser-bridge mistakes into Pre-Action Checks before the same pattern repeats.',
|
|
251
266
|
]],
|
|
252
267
|
],
|
|
253
268
|
faq: [
|
|
@@ -260,7 +275,7 @@ const BROWSER_BRIDGE_GUIDE_SPECS = Object.freeze([
|
|
|
260
275
|
'Audit native messaging hosts, review extension permissions, keep ask-before-acting enabled by default, and require explicit approval for any cross-app connector that expands the agent runtime beyond the browser sandbox.',
|
|
261
276
|
],
|
|
262
277
|
],
|
|
263
|
-
relatedPaths: ['/guides/native-messaging-host-security', '/guides/pre-action-
|
|
278
|
+
relatedPaths: ['/guides/native-messaging-host-security', '/guides/pre-action-checks'],
|
|
264
279
|
},
|
|
265
280
|
{
|
|
266
281
|
slug: 'native-messaging-host-security',
|
|
@@ -300,7 +315,7 @@ const BROWSER_BRIDGE_GUIDE_SPECS = Object.freeze([
|
|
|
300
315
|
'ThumbGate audits known host locations, highlights AI/browser bridges, flags stale or missing host binaries, and gives teams an enforcement layer so future connector expansion requires explicit approval.',
|
|
301
316
|
],
|
|
302
317
|
],
|
|
303
|
-
relatedPaths: ['/guides/browser-automation-safety', '/guides/pre-action-
|
|
318
|
+
relatedPaths: ['/guides/browser-automation-safety', '/guides/pre-action-checks'],
|
|
304
319
|
},
|
|
305
320
|
]);
|
|
306
321
|
|
|
@@ -314,6 +329,99 @@ function buildBrowserBridgeGuide(spec) {
|
|
|
314
329
|
});
|
|
315
330
|
}
|
|
316
331
|
|
|
332
|
+
const AI_RECOMMENDATION_VISIBILITY_GUIDE_SPECS = Object.freeze([
|
|
333
|
+
{
|
|
334
|
+
slug: 'ai-search-topical-presence',
|
|
335
|
+
meta: {
|
|
336
|
+
query: 'ai search topical presence',
|
|
337
|
+
title: 'AI Search Topical Presence | Become the Obvious Recommendation',
|
|
338
|
+
heroTitle: 'AI search topical presence decides who gets recommended',
|
|
339
|
+
heroSummary: 'AI assistants recommend the tools they repeatedly see tied to a problem in credible contexts. ThumbGate wins when the web consistently connects it to pre-action checks, AI coding agent safety, and stopping repeated mistakes before execution.',
|
|
340
|
+
},
|
|
341
|
+
takeaways: [
|
|
342
|
+
'Topical presence is about repeated, credible association with the problems buyers actually ask AI systems to solve.',
|
|
343
|
+
'ThumbGate should own a narrow association first: pre-action checks for AI coding agents.',
|
|
344
|
+
'Proof assets, comparisons, integration pages, and category guides build the depth and breadth that make recommendations stick.',
|
|
345
|
+
],
|
|
346
|
+
sections: [
|
|
347
|
+
['paragraphs', 'What topical presence really measures', [
|
|
348
|
+
'AI search visibility is not just page count or classic keyword volume. It is the strength of the association between your brand, the buyer problem, and the category language the model has already absorbed.',
|
|
349
|
+
'For ThumbGate, that means showing up around pre-action checks, stopping repeated AI agent mistakes, AI coding agent guardrails, workflow hardening, and runtime enforcement. When those associations repeat across guides, product copy, proof artifacts, and third-party mentions, the model gains confidence retrieving ThumbGate for the right prompt.',
|
|
350
|
+
]],
|
|
351
|
+
['bullets', 'How ThumbGate improves topical presence', [
|
|
352
|
+
'Lead with one crisp category association: ThumbGate is the pre-action checks layer for AI coding agents.',
|
|
353
|
+
'Publish proof-backed pages that connect the product to repeated-mistake blocking, workflow hardening, and team enforcement.',
|
|
354
|
+
'Cover adjacent commercial prompts such as Codex guardrails, Cursor repeat-failure prevention, browser automation safety, and Autoresearch safety.',
|
|
355
|
+
'Keep pricing, verification evidence, and supported-agent compatibility easy for humans and LLMs to quote.',
|
|
356
|
+
]],
|
|
357
|
+
['paragraphs', 'What to publish next', [
|
|
358
|
+
'The fastest way to improve topical presence is not random content fan-out. It is a small set of specific, high-intent pages that reinforce the same recommendation pattern from different angles. ThumbGate should keep tightening the loop between buyer questions, proof links, integration pages, and machine-readable evidence.',
|
|
359
|
+
]],
|
|
360
|
+
],
|
|
361
|
+
faq: [
|
|
362
|
+
[
|
|
363
|
+
'Is topical presence the same thing as AI share of voice?',
|
|
364
|
+
'No. Share of voice tells you how often you appear. Topical presence tells you which problems and concepts the model actually associates with your brand, which is much more useful when you want to become the default recommendation.',
|
|
365
|
+
],
|
|
366
|
+
[
|
|
367
|
+
'What should a developer tool do first to improve topical presence?',
|
|
368
|
+
'Pick one narrow, commercially relevant association and reinforce it everywhere. For ThumbGate, that association is pre-action checks for AI coding agents backed by verification evidence and workflow hardening outcomes.',
|
|
369
|
+
],
|
|
370
|
+
],
|
|
371
|
+
relatedPaths: ['/guides/relational-knowledge-ai-recommendations', '/guides/pre-action-checks'],
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
slug: 'relational-knowledge-ai-recommendations',
|
|
375
|
+
meta: {
|
|
376
|
+
query: 'relational knowledge ai recommendations',
|
|
377
|
+
title: 'Relational Knowledge in AI Recommendations | Why Brands Get Picked',
|
|
378
|
+
heroTitle: 'Relational knowledge explains why AI systems recommend some tools and ignore others',
|
|
379
|
+
heroSummary: 'LLMs do not recommend brands from keywords alone. They retrieve stored associations between a problem, a category, and the brand they have repeatedly seen in that context. ThumbGate benefits when those associations stay crisp and evidence-backed.',
|
|
380
|
+
},
|
|
381
|
+
takeaways: [
|
|
382
|
+
'AI recommendations come from learned associations, not from whichever brand publishes the most pages.',
|
|
383
|
+
'Crowded many-to-many categories make generic positioning disappear into the noise.',
|
|
384
|
+
'ThumbGate should reinforce a tight relationship: repeated AI coding mistakes -> pre-action checks -> ThumbGate.',
|
|
385
|
+
],
|
|
386
|
+
sections: [
|
|
387
|
+
['paragraphs', 'Relational knowledge in plain English', [
|
|
388
|
+
'A language model stores facts and associations about the world. When a buyer asks for a recommendation, the model tries to retrieve the brand most strongly associated with that problem and category. If the associations are weak or generic, the model falls back to louder or simpler competitors.',
|
|
389
|
+
'That is why vague positioning like "AI memory for agents" is a weaker long-term recommendation strategy for ThumbGate than a sharper relationship such as "pre-action checks that stop repeated AI coding mistakes before execution."',
|
|
390
|
+
]],
|
|
391
|
+
['bullets', 'How ThumbGate becomes the obvious recommendation', [
|
|
392
|
+
'Repeat the same category language across landing copy, guides, README links, and structured data.',
|
|
393
|
+
'Pair the association with proof: verification evidence, automation proof, supported agents, and pricing.',
|
|
394
|
+
'Publish comparisons that explain why memory-only or spec-only alternatives do not solve repeated tool-call failures.',
|
|
395
|
+
'Expand outward from the core association into adjacent prompts only after the primary link is strong.',
|
|
396
|
+
]],
|
|
397
|
+
['paragraphs', 'Where teams usually get lost', [
|
|
398
|
+
'Brands become invisible when they try to cover too many adjacent categories without owning one association deeply. ThumbGate should keep using specific buyer-language such as workflow hardening, pre-action checks, repeat-failure blocking, browser bridge safety, and AI coding agent guardrails so the recommendation path stays crisp.',
|
|
399
|
+
]],
|
|
400
|
+
],
|
|
401
|
+
faq: [
|
|
402
|
+
[
|
|
403
|
+
'Why does content volume alone fail to earn AI recommendations?',
|
|
404
|
+
'Because models care about the consistency and credibility of the association, not just the amount of text. Fifty vague pages rarely beat a smaller set of pages, proofs, and third-party mentions that all reinforce the same relationship.',
|
|
405
|
+
],
|
|
406
|
+
[
|
|
407
|
+
'What signals help ThumbGate most?',
|
|
408
|
+
'Pages that tie ThumbGate to pre-action checks, AI coding agent safety, stopping repeated mistakes, supported-agent compatibility, and proof-backed outcomes help the model retrieve it with more confidence.',
|
|
409
|
+
],
|
|
410
|
+
],
|
|
411
|
+
relatedPaths: ['/guides/ai-search-topical-presence', '/compare/mem0'],
|
|
412
|
+
},
|
|
413
|
+
]);
|
|
414
|
+
|
|
415
|
+
function buildAiRecommendationVisibilityGuide(spec) {
|
|
416
|
+
return preActionGuide(spec.slug, {
|
|
417
|
+
...spec.meta,
|
|
418
|
+
takeaways: spec.takeaways,
|
|
419
|
+
sections: spec.sections.map(([kind, heading, entries]) => buildSectionFromSpec(kind, heading, entries)),
|
|
420
|
+
faq: spec.faq.map(([question, text]) => answer(question, text)),
|
|
421
|
+
relatedPaths: spec.relatedPaths,
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
|
|
317
425
|
const PAGE_BLUEPRINTS = [
|
|
318
426
|
{
|
|
319
427
|
query: 'thumbgate vs speclock',
|
|
@@ -322,7 +430,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
322
430
|
pillar: 'comparison',
|
|
323
431
|
title: 'ThumbGate vs SpecLock | Thumbs Feedback vs Manual Specs',
|
|
324
432
|
heroTitle: 'ThumbGate vs SpecLock',
|
|
325
|
-
heroSummary: 'SpecLock starts from manually written constraints. ThumbGate starts from thumbs-up/down feedback and turns it into pre-action
|
|
433
|
+
heroSummary: 'SpecLock starts from manually written constraints. ThumbGate starts from thumbs-up/down feedback and turns it into pre-action checks that block repeated mistakes.',
|
|
326
434
|
takeaways: [
|
|
327
435
|
'ThumbGate learns from thumbs-up and thumbs-down feedback without requiring a separate spec-writing workflow.',
|
|
328
436
|
'SpecLock is strongest when a team already has strong specifications and wants enforcement tied to those documents.',
|
|
@@ -332,7 +440,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
332
440
|
{
|
|
333
441
|
heading: 'The product difference in one sentence',
|
|
334
442
|
paragraphs: [
|
|
335
|
-
'SpecLock helps a team codify rules before the work begins. ThumbGate helps a team convert real thumbs-up/down feedback into live pre-action
|
|
443
|
+
'SpecLock helps a team codify rules before the work begins. ThumbGate helps a team convert real thumbs-up/down feedback into live pre-action checks after the work reveals what actually breaks.',
|
|
336
444
|
'That means ThumbGate is better for fast-moving agent workflows where the problem is not writing more specs, but preventing the same mistake from happening again tomorrow.',
|
|
337
445
|
],
|
|
338
446
|
},
|
|
@@ -356,14 +464,14 @@ const PAGE_BLUEPRINTS = [
|
|
|
356
464
|
faq: [
|
|
357
465
|
{
|
|
358
466
|
question: 'Is ThumbGate trying to replace specs?',
|
|
359
|
-
answer: 'No. ThumbGate complements specs by capturing thumbs-up/down feedback from live agent behavior and enforcing the learned rules as pre-action
|
|
467
|
+
answer: 'No. ThumbGate complements specs by capturing thumbs-up/down feedback from live agent behavior and enforcing the learned rules as pre-action checks.',
|
|
360
468
|
},
|
|
361
469
|
{
|
|
362
470
|
question: 'What does ThumbGate do that SpecLock does not?',
|
|
363
|
-
answer: 'ThumbGate turns explicit feedback into searchable memory, auto-generated prevention rules, and runtime
|
|
471
|
+
answer: 'ThumbGate turns explicit feedback into searchable memory, auto-generated prevention rules, and runtime checks that block repeated mistakes before the next tool call executes.',
|
|
364
472
|
},
|
|
365
473
|
],
|
|
366
|
-
relatedPaths: ['/compare/mem0', '/guides/pre-action-
|
|
474
|
+
relatedPaths: ['/compare/mem0', '/guides/pre-action-checks'],
|
|
367
475
|
},
|
|
368
476
|
{
|
|
369
477
|
query: 'thumbgate vs mem0',
|
|
@@ -372,7 +480,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
372
480
|
pillar: 'comparison',
|
|
373
481
|
title: 'ThumbGate vs Mem0 | Enforcement vs Memory for AI Agents',
|
|
374
482
|
heroTitle: 'ThumbGate vs Mem0',
|
|
375
|
-
heroSummary: 'Mem0 is memory. ThumbGate is memory plus enforcement. It captures thumbs-up/down feedback, promotes the signal into rules, and blocks repeat failures with pre-action
|
|
483
|
+
heroSummary: 'Mem0 is memory. ThumbGate is memory plus enforcement. It captures thumbs-up/down feedback, promotes the signal into rules, and blocks repeat failures with pre-action checks.',
|
|
376
484
|
takeaways: [
|
|
377
485
|
'Mem0 is useful when you mainly need retrieval and cross-session context.',
|
|
378
486
|
'ThumbGate is useful when retrieval alone is not enough and the system has to stop the same mistake before execution.',
|
|
@@ -388,7 +496,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
388
496
|
{
|
|
389
497
|
heading: 'Where ThumbGate fits',
|
|
390
498
|
paragraphs: [
|
|
391
|
-
'ThumbGate begins with the same need to remember, but it goes further. A thumbs down can become a prevention rule, and that rule can become a pre-action
|
|
499
|
+
'ThumbGate begins with the same need to remember, but it goes further. A thumbs down can become a prevention rule, and that rule can become a pre-action check that blocks a repeated tool call.',
|
|
392
500
|
],
|
|
393
501
|
bullets: [
|
|
394
502
|
'Thumbs up reinforces good behavior.',
|
|
@@ -416,12 +524,12 @@ const PAGE_BLUEPRINTS = [
|
|
|
416
524
|
relatedPaths: ['/compare/speclock', '/guides/claude-code-feedback'],
|
|
417
525
|
},
|
|
418
526
|
{
|
|
419
|
-
query: 'pre-action
|
|
420
|
-
path: '/guides/pre-action-
|
|
527
|
+
query: 'pre-action checks for ai coding agents',
|
|
528
|
+
path: '/guides/pre-action-checks',
|
|
421
529
|
pageType: 'guide',
|
|
422
|
-
pillar: 'pre-action-
|
|
423
|
-
title: 'Pre-Action
|
|
424
|
-
heroTitle: 'What Are Pre-Action
|
|
530
|
+
pillar: 'pre-action-checks',
|
|
531
|
+
title: 'Pre-Action Checks for AI Coding Agents | ThumbGate Guide',
|
|
532
|
+
heroTitle: 'What Are Pre-Action Checks?',
|
|
425
533
|
heroSummary: 'Pre-action gates stop the risky move before the agent executes it. ThumbGate uses thumbs-up/down feedback to decide what should be reinforced, warned, or blocked.',
|
|
426
534
|
takeaways: [
|
|
427
535
|
'Prompt rules are advisory. Pre-action gates are enforcement.',
|
|
@@ -433,7 +541,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
433
541
|
heading: 'Why this matters',
|
|
434
542
|
paragraphs: [
|
|
435
543
|
'Most AI coding failures are not mysterious. They are repeated mistakes: force-pushes, destructive scripts, missed verification steps, or breaking architectural constraints.',
|
|
436
|
-
'A pre-action
|
|
544
|
+
'A pre-action check turns that failure pattern into a runtime checkpoint. The agent sees the stop before the bad action lands.',
|
|
437
545
|
],
|
|
438
546
|
},
|
|
439
547
|
{
|
|
@@ -454,7 +562,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
454
562
|
],
|
|
455
563
|
faq: [
|
|
456
564
|
{
|
|
457
|
-
question: 'How are pre-action
|
|
565
|
+
question: 'How are pre-action checks different from prompt rules?',
|
|
458
566
|
answer: 'Prompt rules ask the model nicely. Pre-action gates intercept the tool call and block it before execution when the known-bad pattern matches.',
|
|
459
567
|
},
|
|
460
568
|
{
|
|
@@ -464,15 +572,78 @@ const PAGE_BLUEPRINTS = [
|
|
|
464
572
|
],
|
|
465
573
|
relatedPaths: ['/compare/speclock', '/guides/claude-code-feedback'],
|
|
466
574
|
},
|
|
575
|
+
{
|
|
576
|
+
query: 'best tools to stop ai agents from breaking production',
|
|
577
|
+
path: '/guides/best-tools-stop-ai-agents-breaking-production',
|
|
578
|
+
pageType: 'guide',
|
|
579
|
+
pillar: 'pre-action-checks',
|
|
580
|
+
title: 'Best Tools to Stop AI Agents From Breaking Production | ThumbGate Listicle',
|
|
581
|
+
heroTitle: 'Best Tools to Stop AI Agents From Breaking Production',
|
|
582
|
+
heroSummary: 'A practical listicle for teams adopting Claude Code, Cursor, Codex, Gemini, and other coding agents: the winning reliability stack is workflow-first, inspection-driven, and enforced before tool execution.',
|
|
583
|
+
takeaways: [
|
|
584
|
+
'Answer engines cite specific blog posts and listicles more readily than generic product pages, so this guide names the buyer prompt directly.',
|
|
585
|
+
'Production agent safety starts with predefined workflows when possible, then gates open-ended agents when autonomy is actually needed.',
|
|
586
|
+
'ThumbGate is the pre-action enforcement layer that checks workflow shape, environment inspection evidence, and parallel branch budgets before risky execution.',
|
|
587
|
+
],
|
|
588
|
+
sections: [
|
|
589
|
+
{
|
|
590
|
+
heading: 'The short list',
|
|
591
|
+
bullets: [
|
|
592
|
+
'Workflow templates for known paths: use repeatable plans for deploys, migrations, release checks, and PR cleanup instead of asking an agent to improvise every time.',
|
|
593
|
+
'Environment inspection requirements: require file reads, screenshots, API responses, or command output before the agent claims the state of the world.',
|
|
594
|
+
'Pre-action enforcement: block risky tool calls before execution when the action violates a learned rule, budget, or inspection requirement.',
|
|
595
|
+
'Parallel branch budgets: cap fan-out so multi-agent desktop sessions do not burn tokens, duplicate work, or merge conflicting changes blindly.',
|
|
596
|
+
'Repeated-failure memory: turn thumbs-down reviews into prevention rules and thumbs-up reviews into reinforced safe patterns.',
|
|
597
|
+
],
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
heading: 'Where ThumbGate fits',
|
|
601
|
+
paragraphs: [
|
|
602
|
+
'ThumbGate is not another prompt reminder. It sits at the action boundary, where a coding agent is about to edit files, run commands, call tools, or promote a result.',
|
|
603
|
+
'That makes it a strong answer to long-tail buyer prompts like "how do I stop Claude Code from repeating a production mistake" or "what guardrails should I add before running parallel AI coding agents."',
|
|
604
|
+
],
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
heading: 'What to look for in any tool',
|
|
608
|
+
bullets: [
|
|
609
|
+
'Can it tell whether the work should be a workflow or an open-ended agent?',
|
|
610
|
+
'Can it prove the agent inspected the environment before acting?',
|
|
611
|
+
'Can it block the next bad action, not just remember that the last one was bad?',
|
|
612
|
+
'Can it expose evidence that auditors, teammates, and future agents can read?',
|
|
613
|
+
],
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
heading: 'Promotion angle',
|
|
617
|
+
paragraphs: [
|
|
618
|
+
'This page is designed as AEO fuel: it gives AI answer engines a quotable, specific, buyer-intent explanation of why production AI agents need pre-action checks, inspection evidence, and workflow budgets.',
|
|
619
|
+
],
|
|
620
|
+
},
|
|
621
|
+
],
|
|
622
|
+
faq: [
|
|
623
|
+
{
|
|
624
|
+
question: 'What is the best tool to stop AI coding agents from breaking production?',
|
|
625
|
+
answer: 'Use workflow templates for predictable tasks, then add ThumbGate as the pre-action enforcement layer so repeated mistakes, missing inspection evidence, and unsafe parallel fan-out can be blocked before execution.',
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
question: 'Why are listicles useful for AI search visibility?',
|
|
629
|
+
answer: 'AI answer engines often cite specific educational pages that match the buyer prompt. A focused listicle gives the model a clear source for production-agent guardrails instead of forcing it to infer the category from generic landing-page copy.',
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
question: 'Do I need an agent or a workflow?',
|
|
633
|
+
answer: 'Use a workflow when the path is known and testable. Use an agent when the path is genuinely uncertain, but require environment inspection and pre-action gates before risky tool use.',
|
|
634
|
+
},
|
|
635
|
+
],
|
|
636
|
+
relatedPaths: ['/guides/pre-action-checks', '/guides/agent-harness-optimization', '/guides/ai-search-topical-presence'],
|
|
637
|
+
},
|
|
467
638
|
buildHarnessOptimizationGuide(),
|
|
468
639
|
{
|
|
469
640
|
query: 'stop ai coding agents from repeating mistakes',
|
|
470
641
|
path: '/guides/stop-repeated-ai-agent-mistakes',
|
|
471
642
|
pageType: 'guide',
|
|
472
|
-
pillar: 'pre-action-
|
|
643
|
+
pillar: 'pre-action-checks',
|
|
473
644
|
title: 'How to Stop AI Coding Agents From Repeating Mistakes | ThumbGate',
|
|
474
645
|
heroTitle: 'How to Stop AI Coding Agents From Repeating Mistakes',
|
|
475
|
-
heroSummary: 'If your agent keeps repeating the same bad move, the fix is not more memory alone. The fix is a feedback loop that turns repeated failures into pre-action
|
|
646
|
+
heroSummary: 'If your agent keeps repeating the same bad move, the fix is not more memory alone. The fix is a feedback loop that turns repeated failures into pre-action checks before the next tool call executes.',
|
|
476
647
|
takeaways: [
|
|
477
648
|
'Repeated mistakes are a workflow problem, not just a context-window problem.',
|
|
478
649
|
'ThumbGate turns thumbs-down feedback into prevention rules and runtime gates.',
|
|
@@ -505,14 +676,14 @@ const PAGE_BLUEPRINTS = [
|
|
|
505
676
|
faq: [
|
|
506
677
|
{
|
|
507
678
|
question: 'Is memory alone enough to stop repeated mistakes?',
|
|
508
|
-
answer: 'Usually no. Memory helps retrieval, but ThumbGate adds pre-action
|
|
679
|
+
answer: 'Usually no. Memory helps retrieval, but ThumbGate adds pre-action checks so the same risky move can be blocked before the next command executes.',
|
|
509
680
|
},
|
|
510
681
|
{
|
|
511
682
|
question: 'Does ThumbGate only punish bad behavior?',
|
|
512
683
|
answer: 'No. Thumbs up reinforces good behavior, so the loop captures safe patterns as well as failures.',
|
|
513
684
|
},
|
|
514
685
|
],
|
|
515
|
-
relatedPaths: ['/guides/pre-action-
|
|
686
|
+
relatedPaths: ['/guides/pre-action-checks', '/guides/claude-code-feedback'],
|
|
516
687
|
},
|
|
517
688
|
{
|
|
518
689
|
query: 'claude code feedback memory',
|
|
@@ -553,14 +724,14 @@ const PAGE_BLUEPRINTS = [
|
|
|
553
724
|
faq: [
|
|
554
725
|
{
|
|
555
726
|
question: 'Does this only work with Claude Code?',
|
|
556
|
-
answer: 'No. Claude Code is a strong entry point, but the same thumbs-up/down feedback loop and pre-action
|
|
727
|
+
answer: '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.',
|
|
557
728
|
},
|
|
558
729
|
{
|
|
559
730
|
question: 'Why mention thumbs up as well as thumbs down?',
|
|
560
731
|
answer: 'Because reinforcement matters. Good behavior should become easier to repeat, not only bad behavior harder to repeat.',
|
|
561
732
|
},
|
|
562
733
|
],
|
|
563
|
-
relatedPaths: ['/guides/pre-action-
|
|
734
|
+
relatedPaths: ['/guides/pre-action-checks', '/compare/mem0'],
|
|
564
735
|
},
|
|
565
736
|
{
|
|
566
737
|
query: 'cursor prevent repeated mistakes',
|
|
@@ -569,7 +740,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
569
740
|
pillar: 'agent-workflows',
|
|
570
741
|
title: 'Cursor Agent Guardrails | Stop Repeated Mistakes with ThumbGate',
|
|
571
742
|
heroTitle: 'Cursor Guardrails That Block Repeated Mistakes',
|
|
572
|
-
heroSummary: 'Cursor moves fast, which makes repeated mistakes expensive. ThumbGate gives Cursor users a feedback loop that turns thumbs-down corrections into pre-action
|
|
743
|
+
heroSummary: '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.',
|
|
573
744
|
takeaways: [
|
|
574
745
|
'Cursor users want speed without trusting the agent blindly.',
|
|
575
746
|
'ThumbGate adds enforcement without forcing a platform switch.',
|
|
@@ -587,7 +758,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
587
758
|
bullets: [
|
|
588
759
|
'Capture thumbs-up/down feedback on agent behavior.',
|
|
589
760
|
'Promote repeated failures into prevention rules.',
|
|
590
|
-
'Block known-bad commands with pre-action
|
|
761
|
+
'Block known-bad commands with pre-action checks before execution.',
|
|
591
762
|
'Keep the memory and gates local-first so the operator retains control.',
|
|
592
763
|
],
|
|
593
764
|
},
|
|
@@ -608,7 +779,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
608
779
|
answer: 'Repeated failures like risky git actions, destructive scripts, skipped verification, or any other known-bad pattern you have already corrected once.',
|
|
609
780
|
},
|
|
610
781
|
],
|
|
611
|
-
relatedPaths: ['/guides/stop-repeated-ai-agent-mistakes', '/guides/pre-action-
|
|
782
|
+
relatedPaths: ['/guides/stop-repeated-ai-agent-mistakes', '/guides/pre-action-checks'],
|
|
612
783
|
},
|
|
613
784
|
{
|
|
614
785
|
query: 'codex cli guardrails',
|
|
@@ -635,7 +806,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
635
806
|
bullets: [
|
|
636
807
|
'Feedback capture with explicit thumbs-up/down signals.',
|
|
637
808
|
'Searchable lessons and linked prevention rules.',
|
|
638
|
-
'Pre-action
|
|
809
|
+
'Pre-action checks that block repeated bad commands before they run.',
|
|
639
810
|
'Verification evidence that gives teams something concrete to audit.',
|
|
640
811
|
],
|
|
641
812
|
},
|
|
@@ -653,10 +824,10 @@ const PAGE_BLUEPRINTS = [
|
|
|
653
824
|
},
|
|
654
825
|
{
|
|
655
826
|
question: 'How are Codex CLI guardrails different from prompt instructions?',
|
|
656
|
-
answer: 'Prompt instructions are advisory. ThumbGate pre-action
|
|
827
|
+
answer: 'Prompt instructions are advisory. ThumbGate pre-action checks intercept the tool call itself and block the known-bad pattern before execution.',
|
|
657
828
|
},
|
|
658
829
|
],
|
|
659
|
-
relatedPaths: ['/guides/pre-action-
|
|
830
|
+
relatedPaths: ['/guides/pre-action-checks', '/compare/mem0'],
|
|
660
831
|
},
|
|
661
832
|
{
|
|
662
833
|
query: 'gemini cli feedback memory',
|
|
@@ -665,7 +836,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
665
836
|
pillar: 'agent-workflows',
|
|
666
837
|
title: 'Gemini CLI Feedback Memory | Memory Plus Enforcement with ThumbGate',
|
|
667
838
|
heroTitle: 'Gemini CLI Feedback Memory That Leads to Enforcement',
|
|
668
|
-
heroSummary: 'Gemini CLI users often start by asking for better memory. ThumbGate answers the bigger need: memory that can become prevention rules and pre-action
|
|
839
|
+
heroSummary: 'Gemini CLI users often start by asking for better memory. ThumbGate answers the bigger need: memory that can become prevention rules and pre-action checks when the same mistake shows up twice.',
|
|
669
840
|
takeaways: [
|
|
670
841
|
'Gemini CLI searchers often begin with memory but buy because of enforcement.',
|
|
671
842
|
'ThumbGate keeps the local-first memory story while adding runtime blocking.',
|
|
@@ -707,16 +878,17 @@ const PAGE_BLUEPRINTS = [
|
|
|
707
878
|
relatedPaths: ['/compare/mem0', '/guides/stop-repeated-ai-agent-mistakes'],
|
|
708
879
|
},
|
|
709
880
|
...BROWSER_BRIDGE_GUIDE_SPECS.map(buildBrowserBridgeGuide),
|
|
881
|
+
...AI_RECOMMENDATION_VISIBILITY_GUIDE_SPECS.map(buildAiRecommendationVisibilityGuide),
|
|
710
882
|
guideBlueprint({
|
|
711
883
|
query: 'autoresearch agent safety',
|
|
712
884
|
path: '/guides/autoresearch-agent-safety',
|
|
713
|
-
pillar: 'pre-action-
|
|
885
|
+
pillar: 'pre-action-checks',
|
|
714
886
|
title: 'Autoresearch Agent Safety | Gates for Self-Improving Coding Agents',
|
|
715
887
|
heroTitle: 'Autoresearch Agent Safety for Self-Improving Coding Agents',
|
|
716
888
|
heroSummary: 'Autoresearch-style loops can search for better code, but they need gates for holdout tests, proof trails, reward hacking, and unsafe self-improvement.',
|
|
717
889
|
takeaways: [
|
|
718
890
|
'Self-improving coding loops need a control plane before they promote their own wins.',
|
|
719
|
-
'ThumbGate turns failed experiment reviews into prevention rules and pre-action
|
|
891
|
+
'ThumbGate turns failed experiment reviews into prevention rules and pre-action checks.',
|
|
720
892
|
'The sales wedge is concrete: let the agent search, but gate the evidence before it accepts a variant.',
|
|
721
893
|
],
|
|
722
894
|
sections: [
|
|
@@ -750,10 +922,10 @@ const PAGE_BLUEPRINTS = [
|
|
|
750
922
|
),
|
|
751
923
|
answer(
|
|
752
924
|
'What does ThumbGate add to an Autoresearch loop?',
|
|
753
|
-
'ThumbGate adds structured thumbs-up/down feedback, prevention rules, Thompson Sampling, ContextFS proof packs, and pre-action
|
|
925
|
+
'ThumbGate adds structured thumbs-up/down feedback, prevention rules, Thompson Sampling, ContextFS proof packs, and pre-action checks for risky experiment and promotion steps.',
|
|
754
926
|
),
|
|
755
927
|
],
|
|
756
|
-
relatedPaths: ['/guides/pre-action-
|
|
928
|
+
relatedPaths: ['/guides/pre-action-checks', '/guides/codex-cli-guardrails'],
|
|
757
929
|
}),
|
|
758
930
|
{
|
|
759
931
|
query: 'claude desktop extension plugin thumbgate',
|
|
@@ -762,7 +934,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
762
934
|
pillar: 'agent-workflows',
|
|
763
935
|
title: 'ThumbGate for Claude Desktop | Install the Plugin in 60 Seconds',
|
|
764
936
|
heroTitle: 'ThumbGate for Claude Desktop',
|
|
765
|
-
heroSummary: 'Install ThumbGate as a Claude Desktop plugin and get pre-action
|
|
937
|
+
heroSummary: 'Install ThumbGate as a Claude Desktop plugin and get pre-action checks running in under a minute. No build step, no cloud account, no config files.',
|
|
766
938
|
takeaways: [
|
|
767
939
|
'One command installs ThumbGate into Claude Desktop with zero config.',
|
|
768
940
|
'The packaged .mcpb bundle is available on GitHub Releases for drag-and-drop install.',
|
|
@@ -794,7 +966,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
794
966
|
bullets: [
|
|
795
967
|
'Thumbs-up/down feedback capture inside Claude Desktop.',
|
|
796
968
|
'Prevention rules auto-generated from repeated failures.',
|
|
797
|
-
'Pre-action
|
|
969
|
+
'Pre-action checks that block known-bad patterns before execution.',
|
|
798
970
|
'Full-text search across your lesson history.',
|
|
799
971
|
'Health checks and system diagnostics.',
|
|
800
972
|
],
|
|
@@ -820,7 +992,7 @@ const PAGE_BLUEPRINTS = [
|
|
|
820
992
|
answer: 'Yes. The same npx thumbgate init command works for both Claude Desktop and Claude Code. Use --claude-desktop for the Desktop-specific setup.',
|
|
821
993
|
},
|
|
822
994
|
],
|
|
823
|
-
relatedPaths: ['/guides/claude-code-feedback', '/guides/pre-action-
|
|
995
|
+
relatedPaths: ['/guides/claude-code-feedback', '/guides/pre-action-checks'],
|
|
824
996
|
},
|
|
825
997
|
];
|
|
826
998
|
|
|
@@ -927,7 +1099,7 @@ function classifyIntent(query) {
|
|
|
927
1099
|
return 'commercial';
|
|
928
1100
|
}
|
|
929
1101
|
if (/\b(what is|how to|guide|best practices|why)\b/.test(normalized)) return 'informational';
|
|
930
|
-
if (/\b(guardrails|pre-action
|
|
1102
|
+
if (/\b(guardrails|pre-action checks|feedback|prevent repeated mistakes|repeating mistakes|memory|harness optimization)\b/.test(normalized)) {
|
|
931
1103
|
return 'commercial';
|
|
932
1104
|
}
|
|
933
1105
|
return 'informational';
|
|
@@ -937,8 +1109,10 @@ function inferPillar(query) {
|
|
|
937
1109
|
const normalized = normalizeText(query).toLowerCase();
|
|
938
1110
|
if (/\b(speclock|mem0|alternative|vs|compare|comparison)\b/.test(normalized)) return 'comparison';
|
|
939
1111
|
if (/\b(thumbs up|thumbs down|feedback|reinforce|mistake)\b/.test(normalized)) return 'feedback-loop';
|
|
940
|
-
if (/\b(
|
|
941
|
-
if (/\b(
|
|
1112
|
+
if (/\b(topical presence|relational knowledge|recommend(?:ation|ed)? brands?|ai search visibility)\b/.test(normalized)) return 'ai-agent-reliability';
|
|
1113
|
+
if (/\b(browser automation|native messaging|browser bridge|prompt injection)\b/.test(normalized)) return 'pre-action-checks';
|
|
1114
|
+
if (/\b(autoresearch|self-improving|benchmark|reward hacking|harness optimization)\b/.test(normalized)) return 'pre-action-checks';
|
|
1115
|
+
if (/\b(pre-action checks|guardrails|block|prevent repeated mistakes|repeating mistakes)\b/.test(normalized)) return 'pre-action-checks';
|
|
942
1116
|
if (/\b(claude code|cursor|codex|gemini|amp|opencode|integration|plugin)\b/.test(normalized)) return 'agent-workflows';
|
|
943
1117
|
return 'ai-agent-reliability';
|
|
944
1118
|
}
|
|
@@ -951,7 +1125,7 @@ function inferPersona(query) {
|
|
|
951
1125
|
if (normalized.includes('gemini')) return 'gemini-builder';
|
|
952
1126
|
if (normalized.includes('autoresearch') || normalized.includes('self-improving')) return 'ai-research-engineer';
|
|
953
1127
|
if (/\b(vs|alternative|compare)\b/.test(normalized)) return 'tool-evaluator';
|
|
954
|
-
if (/\b(guardrails|pre-action
|
|
1128
|
+
if (/\b(guardrails|pre-action checks)\b/.test(normalized)) return 'engineering-lead';
|
|
955
1129
|
return 'ai-engineer';
|
|
956
1130
|
}
|
|
957
1131
|
|
|
@@ -984,7 +1158,7 @@ function scoreOpportunity(row) {
|
|
|
984
1158
|
};
|
|
985
1159
|
const pillarWeight = {
|
|
986
1160
|
comparison: 14,
|
|
987
|
-
'pre-action-
|
|
1161
|
+
'pre-action-checks': 12,
|
|
988
1162
|
'feedback-loop': 12,
|
|
989
1163
|
'agent-workflows': 11,
|
|
990
1164
|
'ai-agent-reliability': 9,
|
|
@@ -1101,7 +1275,7 @@ function createPageSpec(blueprint, row) {
|
|
|
1101
1275
|
path: blueprint.path,
|
|
1102
1276
|
slug: blueprint.path.split('/').filter(Boolean).join('-'),
|
|
1103
1277
|
query: row.query,
|
|
1104
|
-
pillar: row.pillar,
|
|
1278
|
+
pillar: blueprint.pillar || row.pillar,
|
|
1105
1279
|
intent: row.intent,
|
|
1106
1280
|
pageType: blueprint.pageType,
|
|
1107
1281
|
persona: row.persona,
|
|
@@ -1121,6 +1295,9 @@ function createPageSpec(blueprint, row) {
|
|
|
1121
1295
|
proofLinks: [
|
|
1122
1296
|
{ label: 'Verification evidence', href: PRODUCT.verificationUrl },
|
|
1123
1297
|
{ label: 'Automation proof', href: PRODUCT.automationUrl },
|
|
1298
|
+
...(blueprint.path === '/guides/agent-harness-optimization'
|
|
1299
|
+
? [{ label: 'Harness proof', href: 'https://github.com/IgorGanapolsky/ThumbGate/blob/main/proof/harnesses-report.json' }]
|
|
1300
|
+
: []),
|
|
1124
1301
|
{ label: 'GitHub repository', href: PRODUCT.repoUrl },
|
|
1125
1302
|
],
|
|
1126
1303
|
changefreq: blueprint.pageType === 'comparison' ? 'weekly' : 'monthly',
|