thumbgate 1.27.12 → 1.27.14

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 (133) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.well-known/llms.txt +2 -1
  3. package/.well-known/mcp/server-card.json +1 -1
  4. package/README.md +2 -4
  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/adapters/policy-engine/ethicore-guardian-client.js +68 -0
  9. package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +260 -0
  10. package/bin/cli.js +78 -259
  11. package/config/gate-templates.json +0 -228
  12. package/config/gates/claim-verification.json +0 -18
  13. package/package.json +35 -25
  14. package/public/assets/brand/thumbgate-logo-transparent.svg +22 -0
  15. package/public/assets/brand/thumbgate-mark-inline-v3.svg +19 -0
  16. package/public/assets/brand/thumbgate-mark.svg +11 -5
  17. package/public/blog.html +0 -30
  18. package/public/brand/thumbgate-mark.svg +9 -5
  19. package/public/chatgpt-app.html +2 -2
  20. package/public/compare.html +2 -1
  21. package/public/dashboard.html +1 -1
  22. package/public/federal.html +1 -1
  23. package/public/index.html +95 -216
  24. package/public/learn.html +59 -35
  25. package/public/lessons.html +1 -1
  26. package/public/numbers.html +2 -2
  27. package/public/pro.html +7 -7
  28. package/scripts/agent-readiness.js +142 -0
  29. package/scripts/aws-blocks-guardrails.js +228 -0
  30. package/scripts/cli-schema.js +22 -10
  31. package/scripts/dashboard-chat.js +2 -1
  32. package/scripts/document-intake.js +1 -49
  33. package/scripts/durability/step.js +3 -3
  34. package/scripts/gate-stats.js +5 -11
  35. package/scripts/gates-engine.js +0 -49
  36. package/scripts/gemini-embedding-policy.js +2 -1
  37. package/scripts/hook-stop-anti-claim.js +116 -184
  38. package/scripts/hosted-config.js +0 -12
  39. package/scripts/lesson-search.js +1 -15
  40. package/scripts/llm-client.js +187 -5
  41. package/scripts/plausible-domain-config.js +3 -1
  42. package/scripts/seo-gsd.js +240 -1
  43. package/scripts/tool-registry.js +2 -2
  44. package/scripts/vector-store.js +44 -0
  45. package/scripts/workspace-evolver.js +62 -2
  46. package/src/api/server.js +340 -131
  47. package/public/assets/brand/thumbgate-mark-inline.svg +0 -15
  48. package/public/compare/adopt-ai.html +0 -219
  49. package/public/compare/agentix-labs.html +0 -197
  50. package/public/compare/ai-experience-orchestration.html +0 -216
  51. package/public/compare/anthropic-claude-for-legal.html +0 -260
  52. package/public/compare/anthropic-containment.html +0 -280
  53. package/public/compare/arcade.html +0 -175
  54. package/public/compare/arcjet.html +0 -239
  55. package/public/compare/bumblebee.html +0 -307
  56. package/public/compare/claude-code-hooks.html +0 -294
  57. package/public/compare/databricks-unity-ai-gateway.html +0 -215
  58. package/public/compare/fallow.html +0 -351
  59. package/public/compare/heidi.html +0 -233
  60. package/public/compare/mem0.html +0 -342
  61. package/public/compare/oak-and-sparrow-gatekeeper.html +0 -289
  62. package/public/compare/rein.html +0 -236
  63. package/public/compare/sigmashake.html +0 -256
  64. package/public/compare/speclock.html +0 -342
  65. package/public/guides/agent-harness-optimization.html +0 -342
  66. package/public/guides/agentic-web-governance.html +0 -406
  67. package/public/guides/ai-agent-governance-sprint.html +0 -415
  68. package/public/guides/ai-agent-pre-action-approval-gates.html +0 -401
  69. package/public/guides/ai-agent-workflow-migration-checklist.html +0 -392
  70. package/public/guides/ai-deployment-readiness.html +0 -415
  71. package/public/guides/ai-mode-ads-agent-governance.html +0 -401
  72. package/public/guides/ai-search-topical-presence.html +0 -342
  73. package/public/guides/autoresearch-agent-safety.html +0 -342
  74. package/public/guides/background-agent-governance.html +0 -358
  75. package/public/guides/best-tools-stop-ai-agents-breaking-production.html +0 -363
  76. package/public/guides/browser-automation-safety.html +0 -342
  77. package/public/guides/chatgpt-ads-trust.html +0 -353
  78. package/public/guides/claude-code-feedback.html +0 -339
  79. package/public/guides/claude-code-prevent-repeated-mistakes.html +0 -161
  80. package/public/guides/claude-code-skills-guardrails.html +0 -343
  81. package/public/guides/claude-desktop.html +0 -356
  82. package/public/guides/code-knowledge-graph-guardrails.html +0 -365
  83. package/public/guides/codex-cli-guardrails.html +0 -339
  84. package/public/guides/cursor-agent-guardrails.html +0 -339
  85. package/public/guides/cursor-prevent-repeated-mistakes.html +0 -161
  86. package/public/guides/database-agent-safety.html +0 -406
  87. package/public/guides/deepseek-v4-runtime-guardrails.html +0 -346
  88. package/public/guides/developer-machine-supply-chain-guardrails.html +0 -358
  89. package/public/guides/gcp-mcp-guardrails.html +0 -147
  90. package/public/guides/gemini-cli-feedback-memory.html +0 -339
  91. package/public/guides/gpt-5-5-model-evaluation.html +0 -358
  92. package/public/guides/internal-ai-engineering-stack-guardrails.html +0 -348
  93. package/public/guides/long-running-agent-context-management.html +0 -346
  94. package/public/guides/mcp-tool-governance.html +0 -401
  95. package/public/guides/multica-thumbgate-setup.html +0 -134
  96. package/public/guides/native-messaging-host-security.html +0 -342
  97. package/public/guides/policy-engine-pre-action-gates.html +0 -346
  98. package/public/guides/pre-action-checks.html +0 -342
  99. package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +0 -342
  100. package/public/guides/prompt-tricks-to-workflow-rules.html +0 -365
  101. package/public/guides/proxy-pointer-rag-guardrails.html +0 -352
  102. package/public/guides/rag-precision-tuning-guardrails.html +0 -352
  103. package/public/guides/reasoning-compression-guardrails.html +0 -346
  104. package/public/guides/relational-knowledge-ai-recommendations.html +0 -342
  105. package/public/guides/roo-code-alternative-cline.html +0 -339
  106. package/public/guides/semantic-programmatic-seo-guardrails.html +0 -352
  107. package/public/guides/seo-agent-skills-guardrails.html +0 -344
  108. package/public/guides/stop-repeated-ai-agent-mistakes.html +0 -342
  109. package/public/learn/ac-dc-runtime-enforcement.html +0 -277
  110. package/public/learn/agent-harness-pattern.html +0 -181
  111. package/public/learn/agent-identity-connector-governance.html +0 -146
  112. package/public/learn/agent-swarms-shared-gates.html +0 -173
  113. package/public/learn/agentic-enterprise-context-brain.html +0 -117
  114. package/public/learn/agentic-os-team-governance.html +0 -146
  115. package/public/learn/ai-agent-governance.html +0 -158
  116. package/public/learn/ai-agent-persistent-memory.html +0 -211
  117. package/public/learn/anthropomorphic-claim-gates.html +0 -180
  118. package/public/learn/background-agent-control-layer.html +0 -184
  119. package/public/learn/claude-code-goal-with-rubrics.html +0 -205
  120. package/public/learn/codex-role-plugins-need-governance.html +0 -125
  121. package/public/learn/cost-aware-agent-gate-routing.html +0 -173
  122. package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +0 -157
  123. package/public/learn/deterministic-agent-workflows.html +0 -185
  124. package/public/learn/feedback-loop-vs-decision-layer.html +0 -283
  125. package/public/learn/from-prototype-to-production.html +0 -223
  126. package/public/learn/learn.css +0 -51
  127. package/public/learn/mcp-pre-action-checks-explained.html +0 -172
  128. package/public/learn/pretix-stripe-connect-marketplaces.html +0 -161
  129. package/public/learn/regulated-agent-execution-boundary.html +0 -196
  130. package/public/learn/spec-driven-development.html +0 -168
  131. package/public/learn/stop-ai-agent-force-push.html +0 -134
  132. package/public/learn/vibe-coding-safety-net.html +0 -142
  133. package/scripts/reddit-browser-notification-watch.js +0 -230
@@ -1,211 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>How to Give Your AI Coding Agent Persistent Memory Across Sessions — ThumbGate</title>
7
- <script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
8
- <meta name="description" content="AI coding agents forget everything when a session ends. Learn how to give Claude Code, Cursor, Codex, and Gemini persistent memory using an MCP memory server that survives restarts.">
9
- <meta name="keywords" content="ai agent memory, persistent memory, claude code memory, cursor agent memory, MCP memory server, session persistence, agent context, episodic memory, semantic memory">
10
- <meta property="og:title" content="How to Give Your AI Coding Agent Persistent Memory Across Sessions">
11
- <meta property="og:description" content="Context windows are ephemeral. Real memory persists. Here is how to build durable memory for any MCP-compatible AI coding agent.">
12
- <meta property="og:type" content="article">
13
- <meta property="og:url" content="https://thumbgate.ai/learn/ai-agent-persistent-memory">
14
- <link rel="canonical" href="https://thumbgate.ai/learn/ai-agent-persistent-memory">
15
-
16
- <script type="application/ld+json">
17
- {
18
- "@context": "https://schema.org",
19
- "@type": "TechArticle",
20
- "headline": "How to Give Your AI Coding Agent Persistent Memory Across Sessions",
21
- "description": "AI coding agents forget everything when a session ends. Learn how to give Claude Code, Cursor, Codex, and Gemini persistent memory using an MCP memory server that survives restarts.",
22
- "author": {
23
- "@type": "Person",
24
- "name": "Igor Ganapolsky",
25
- "url": "https://github.com/IgorGanapolsky"
26
- },
27
- "publisher": {
28
- "@type": "Organization",
29
- "name": "ThumbGate",
30
- "url": "https://thumbgate.ai"
31
- },
32
- "datePublished": "2026-04-02",
33
- "dateModified": "2026-04-02",
34
- "mainEntityOfPage": "https://thumbgate.ai/learn/ai-agent-persistent-memory",
35
- "about": [
36
- {"@type": "Thing", "name": "ai agent memory"},
37
- {"@type": "Thing", "name": "persistent memory"},
38
- {"@type": "Thing", "name": "MCP memory server"},
39
- {"@type": "Thing", "name": "session persistence"}
40
- ]
41
- }
42
- </script>
43
-
44
- <link rel="stylesheet" href="/learn/learn.css">
45
- <style>
46
- table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
47
- th, td { text-align: left; padding: 0.6rem 0.8rem; border-bottom: 1px solid var(--border); font-size: 0.9rem; }
48
- th { color: var(--cyan); font-weight: 600; }
49
- .memory-row td:first-child { color: var(--green); font-weight: 500; }
50
- </style>
51
- </head>
52
- <body>
53
-
54
- <nav>
55
- <a href="/" class="brand"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
56
- <a href="/guide">Setup Guide</a>
57
- <a href="/learn">Learn</a>
58
- <a href="/dashboard">Dashboard</a>
59
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
60
- </nav>
61
-
62
- <div class="container">
63
- <div class="breadcrumb"><a href="/learn">Learn</a> / AI Agent Persistent Memory</div>
64
- <h1>How to Give Your AI Coding Agent Persistent Memory Across Sessions</h1>
65
- <p style="color:var(--muted);">6 min read &middot; For developers using Claude Code, Cursor, Codex, or Gemini who are tired of re-explaining context every session</p>
66
-
67
- <div class="tldr"><strong>TL;DR:</strong> Your AI agent forgets everything between sessions. Give it a SQLite+FTS5 memory that stores lessons, retrieves relevant context, and blocks known-bad actions automatically.</div>
68
-
69
- <h2>The problem: agents forget everything when you close the tab</h2>
70
- <p>You spend twenty minutes explaining your codebase to your AI coding agent. You tell it about the monorepo structure, the deployment conventions, the one branch it must never force-push to. The session ends. You come back tomorrow and it has no memory of any of it.</p>
71
- <p>You are not doing anything wrong. This is how context windows work. Every session starts with a blank slate. The agent has no continuity of experience — no record of past mistakes, no accumulated knowledge of your project, no recollection of the rules you established last week.</p>
72
- <p>The frustration is real and widespread. Developers using Claude Code, Cursor, Codex, and Gemini all hit the same wall. The agents are capable — they just cannot remember.</p>
73
-
74
- <div class="callout">
75
- <strong>The distinction that matters:</strong> A context window holds information for one session. Memory holds information across sessions. Most agents have the former. Almost none have the latter by default.
76
- </div>
77
-
78
- <h2>Why context windows are not memory</h2>
79
- <p>Context windows are large and getting larger. That solves a different problem. A big context window means the agent can reason over more information at once within a single session. It does not mean that information survives when the session ends.</p>
80
- <p>Think of the difference this way: a context window is RAM — fast, capacious, gone when the power cuts. Memory is disk — slower to query, but persistent. You need both. Right now, AI coding agents only ship with RAM.</p>
81
- <p>The consequences compound over time. An agent with no persistent memory will:</p>
82
- <ul>
83
- <li>Repeat mistakes it made last week because it has no record of them</li>
84
- <li>Re-ask you for project conventions it has already learned once</li>
85
- <li>Ignore prevention rules you painstakingly wrote into a prompt — because that prompt is gone</li>
86
- <li>Treat every session as if it is the first day on the job</li>
87
- </ul>
88
- <p>Stuffing facts into a <code>CLAUDE.md</code> file helps, but it is a manual workaround. You are the memory. You remember what to put in the file. You update it when things change. That is not a solution — it is delegation of a machine problem back to a human.</p>
89
-
90
- <div class="callout callout-red">
91
- <strong>The hidden cost:</strong> Re-explaining context is not just annoying. Every token you spend re-establishing what the agent already knew is a token not spent on the actual task. And re-explained rules are still just prompt rules — the agent can reason around them.
92
- </div>
93
-
94
- <h2>Three types of agent memory</h2>
95
- <p>Cognitive science distinguishes several memory types. The same taxonomy maps cleanly onto what AI coding agents need. Here is how each type works and what it looks like in practice:</p>
96
-
97
- <table>
98
- <thead>
99
- <tr>
100
- <th>Memory Type</th>
101
- <th>What It Stores</th>
102
- <th>Concrete Example</th>
103
- </tr>
104
- </thead>
105
- <tbody>
106
- <tr class="memory-row">
107
- <td>Episodic</td>
108
- <td>Records of specific past events — what happened, when, and what the outcome was</td>
109
- <td>The agent tried to force-push to main. You gave thumbs-down. That event is stored with context, timestamp, and failure description.</td>
110
- </tr>
111
- <tr class="memory-row">
112
- <td>Semantic</td>
113
- <td>Generalised knowledge extracted from episodes — rules, patterns, facts about the world</td>
114
- <td>From multiple thumbs-down events, the system derives: "force-pushing to main causes broken deploys in this repo." That becomes a prevention rule.</td>
115
- </tr>
116
- <tr class="memory-row">
117
- <td>Procedural</td>
118
- <td>Encoded behaviours — checks that fire before actions without requiring the agent to reason about them</td>
119
- <td>A PreToolUse hook that checks every <code>git push</code> command against the prevention rule and blocks the dangerous pattern automatically.</td>
120
- </tr>
121
- </tbody>
122
- </table>
123
-
124
- <p>Most "persistent memory" proposals for AI agents stop at episodic: they store a log of past conversations. That is useful, but insufficient. The signal gets diluted in a sea of raw events. What agents need is the full pipeline: episodes promote to semantic rules, semantic rules compile into procedural checks.</p>
125
-
126
- <h2>How ThumbGate implements persistent memory</h2>
127
- <p>ThumbGate is built around this three-tier memory architecture. Here is each layer in concrete terms.</p>
128
-
129
- <h3>Episodic layer: the feedback log</h3>
130
- <p>Every thumbs-up or thumbs-down you give an agent action is written to a structured feedback log. Each entry captures the tool call that was made, the context at the time, what worked or went wrong, and any tags you add. The log is append-only and survives across sessions.</p>
131
- <p>In the current Claude auto-capture hook, a vague thumbs-down can borrow up to 8 prior recorded entries plus the failed tool call before promotion. Accepted feedback also opens a linked 60-second follow-up session so later corrections stay attached to the same memory trace instead of fragmenting into duplicates.</p>
132
-
133
- <pre><code># Thumbs-down: record a specific failure
134
- node .claude/scripts/feedback/capture-feedback.js \
135
- --feedback=down \
136
- --context="deploying to production" \
137
- --what-went-wrong="agent ran db migration without backup" \
138
- --what-to-change="always checkpoint before schema changes" \
139
- --tags="database,migrations,safety"</code></pre>
140
-
141
- <p>You do not need to write this manually for every interaction. The MCP server captures tool calls automatically. Manual feedback is for adding nuance that the agent could not observe on its own.</p>
142
-
143
- <h3>Semantic layer: the lesson database</h3>
144
- <p>Raw feedback events are processed into a SQLite database with full-text search (FTS5). This is not a flat file — it is a queryable knowledge store. When a new session starts, the system retrieves lessons relevant to the current task by similarity, not by recency.</p>
145
- <p>The FTS5 index means retrieval is fast even as the database grows. You are not loading the entire history into context. You are loading the lessons most likely to matter right now. That is the difference between a knowledge base and a memory dump.</p>
146
-
147
- <h3>Procedural layer: prevention rules and checks</h3>
148
- <p>Promoted lessons generate prevention rules in <code>prevention-rules.md</code>. Rules are not prompt instructions — they are checked by a PreToolUse hook that fires before every tool call. The agent cannot reason around a check. The check runs outside the agent's context.</p>
149
-
150
- <div class="callout callout-green">
151
- <strong>The promotion pipeline:</strong> Thumbs-down event &rarr; feedback log entry &rarr; lesson promoted to SQLite &rarr; prevention rule generated &rarr; PreToolUse check active for every future session, with no additional setup.
152
- </div>
153
-
154
- <h2>Thompson Sampling for memory-informed decisions</h2>
155
- <p>Not every prevention rule has the same confidence level. A rule derived from one thumbs-down event is weaker than a rule reinforced by a dozen. ThumbGate uses Thompson Sampling — a multi-armed bandit algorithm — to handle this uncertainty.</p>
156
- <p>For each check, the system maintains a Beta distribution over outcomes. As thumbs-up and thumbs-down feedback accumulates, the distribution tightens. A check with high confidence becomes a hard block. A check still gathering signal issues a warning and lets the agent reconsider.</p>
157
- <p>This matters for memory because it means the system learns your preferences rather than requiring you to manually tune thresholds. You give feedback. The check calibrates. The agent adapts.</p>
158
- <p>Thompson Sampling also prevents over-blocking. If a pattern that was once dangerous stops being a problem — because the codebase changed, or you updated your workflow — thumbs-up feedback on future calls will widen the distribution back toward allowing. Memory is not one-way.</p>
159
-
160
- <h2>Setup: persistent memory in two minutes</h2>
161
- <p>ThumbGate ships as an MCP server. Any agent that speaks MCP — Claude Code, Cursor, Codex, Gemini, Amp, OpenCode — can connect to it. You initialize once and the memory layer is active for every subsequent session.</p>
162
-
163
- <pre><code>npx thumbgate init</code></pre>
164
-
165
- <p>That command sets up:</p>
166
- <ul>
167
- <li>The SQLite+FTS5 lesson database in <code>.claude/memory/</code></li>
168
- <li>The feedback log at <code>.claude/memory/feedback/feedback-log.jsonl</code></li>
169
- <li>Prevention rules at <code>.claude/memory/feedback/prevention-rules.md</code></li>
170
- <li>A PreToolUse hook that reads checks on every tool call</li>
171
- <li>The MCP server adapter for your agent runtime</li>
172
- </ul>
173
-
174
- <p>After init, your agent starts each session with context assembled from relevant past lessons. It does not start blank. It starts informed.</p>
175
-
176
- <h3>What memory looks like on day one vs. day thirty</h3>
177
- <p>On day one, the database is empty. The agent behaves the same as it always has. You give feedback on its actions.</p>
178
- <p>By day thirty, the database has accumulated dozens of lessons. The agent's context at session start includes the most relevant ones. Prevention rules have tightened around patterns that caused problems. Patterns that worked have been reinforced. The agent makes fewer mistakes — not because it was retrained, but because the checks learned from your feedback.</p>
179
- <p>That is persistent memory in practice: not a bigger context window, not a longer system prompt, but a feedback loop that accumulates signal and converts it into durable enforcement.</p>
180
-
181
- <div class="cta-box">
182
- <h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Give your agent memory that survives restarts</h2>
183
- <p>One command. Works with Claude Code, Cursor, Codex, Gemini, Amp, and any MCP-compatible agent.</p>
184
- <div class="cta-install">$ npx thumbgate init</div>
185
- <div class="cta-actions" aria-label="Paid ThumbGate options">
186
- <a class="cta-link" href="/checkout/pro?utm_source=learn&amp;utm_medium=persistent_memory_article&amp;utm_campaign=memory_to_pro&amp;cta_id=learn_persistent_memory_pro&amp;cta_placement=article_cta&amp;plan_id=pro&amp;billing_cycle=monthly">Get Pro — $19/mo or $149/yr</a>
187
- <a class="cta-link cta-link-secondary" rel="nofollow noopener noreferrer" target="_blank" href="https://buy.stripe.com/00w14neyUcXA5pL5e33sI0e">Pay $499 diagnostic</a>
188
- <a class="cta-link cta-link-secondary" href="/#workflow-sprint-intake">Send workflow first</a>
189
- </div>
190
- <p style="font-size:0.85rem;margin-top:0.9rem;">Free is enough for a solo proof. Pro adds dashboard, recall, lesson search, unlimited captures/rules, and DPO export. Use the diagnostic when a team needs a workflow review before rollout.</p>
191
- </div>
192
-
193
- <div class="related">
194
- <h3>Related articles</h3>
195
- <a href="/learn/agent-harness-pattern">The Agent Harness Pattern: Why Your AI Needs a Seatbelt &rarr;</a>
196
- <a href="/learn/mcp-pre-action-checks-explained">MCP Pre-Action Checks Explained &rarr;</a>
197
- <a href="/learn/stop-ai-agent-force-push">How to Stop AI Agents From Force-Pushing to Main &rarr;</a>
198
- <a href="/learn/vibe-coding-safety-net">The Vibe Coding Safety Net You Are Missing &rarr;</a>
199
- </div>
200
- </div>
201
-
202
-
203
- <div class="sticky-cta">
204
- <span style="color:var(--muted)">Try it now:</span>
205
- <code>npx thumbgate init</code>
206
- <a href="/checkout/pro?utm_source=learn&amp;utm_medium=sticky&amp;utm_campaign=memory_to_pro&amp;cta_id=learn_persistent_memory_sticky_pro&amp;cta_placement=sticky&amp;plan_id=pro&amp;billing_cycle=monthly">Pro &rarr;</a>
207
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub &rarr;</a>
208
- </div>
209
- <script src="/js/buyer-intent.js"></script>
210
- </body>
211
- </html>
@@ -1,180 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Anthropomorphic Claim Gates for AI Agents — ThumbGate</title>
7
- <meta name="description" content="How ThumbGate turns AI anthropomorphism research into a pre-action claim gate: do not let agents claim models understand, know, decide, or act human-like without measurement criteria and evidence.">
8
- <link rel="canonical" href="https://thumbgate.ai/learn/anthropomorphic-claim-gates">
9
- <link rel="llm-context" href="/llm-context.md" type="text/markdown">
10
- <link rel="icon" type="image/png" href="/thumbgate-icon.png">
11
- <script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
12
- <meta property="og:title" content="Anthropomorphic Claim Gates for AI Agents">
13
- <meta property="og:description" content="Stop agents from smuggling human-like claims into production decisions without explicit measurement criteria and evidence.">
14
- <meta property="og:type" content="article">
15
- <meta property="og:url" content="https://thumbgate.ai/learn/anthropomorphic-claim-gates">
16
- <script type="application/ld+json">
17
- {
18
- "@context": "https://schema.org",
19
- "@type": "TechArticle",
20
- "headline": "Anthropomorphic Claim Gates for AI Agents",
21
- "description": "A ThumbGate implementation pattern for blocking unsupported human-like or cognitive claims about AI systems until explicit measurement criteria and evidence are attached.",
22
- "datePublished": "2026-06-20",
23
- "dateModified": "2026-06-20",
24
- "author": {
25
- "@type": "Person",
26
- "name": "Igor Ganapolsky",
27
- "url": "https://github.com/IgorGanapolsky"
28
- },
29
- "publisher": {
30
- "@type": "Organization",
31
- "name": "ThumbGate",
32
- "url": "https://thumbgate.ai"
33
- },
34
- "about": [
35
- "AI agent governance",
36
- "claim verification",
37
- "anthropomorphism",
38
- "pre-action gates"
39
- ],
40
- "url": "https://thumbgate.ai/learn/anthropomorphic-claim-gates"
41
- }
42
- </script>
43
- <script type="application/ld+json">
44
- {
45
- "@context": "https://schema.org",
46
- "@type": "FAQPage",
47
- "mainEntity": [
48
- {
49
- "@type": "Question",
50
- "name": "What is an anthropomorphic claim gate?",
51
- "acceptedAnswer": {
52
- "@type": "Answer",
53
- "text": "It is a pre-action check that blocks claims such as an AI agent understands, knows, decides, wants, or behaves human-like until the operator records explicit measurement criteria and evidence."
54
- }
55
- },
56
- {
57
- "@type": "Question",
58
- "name": "Why does this matter for AI agent governance?",
59
- "acceptedAnswer": {
60
- "@type": "Answer",
61
- "text": "Unsupported cognitive claims can make teams over-trust an agent. ThumbGate turns those claims into verifiable gates before they influence production actions, audits, or buyer promises."
62
- }
63
- }
64
- ]
65
- }
66
- </script>
67
- <style>
68
- *, *::before, *::after { box-sizing: border-box; }
69
- body {
70
- margin: 0;
71
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
72
- background: #0a0a0b;
73
- color: #ececf0;
74
- line-height: 1.65;
75
- }
76
- nav {
77
- display: flex;
78
- gap: 22px;
79
- align-items: center;
80
- padding: 16px 28px;
81
- border-bottom: 1px solid #242428;
82
- }
83
- nav a { color: #a7a7b1; text-decoration: none; font-size: 0.95rem; }
84
- nav a:hover { color: #22d3ee; }
85
- .brand { color: #fff; font-weight: 700; display: inline-flex; gap: 8px; align-items: center; }
86
- .brand img { width: 28px; height: 28px; }
87
- main { max-width: 860px; margin: 0 auto; padding: 48px 22px 72px; }
88
- h1 { font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1.05; margin: 0 0 18px; max-width: 760px; }
89
- h2 { color: #22d3ee; font-size: 1.45rem; margin: 42px 0 14px; }
90
- p { margin: 0 0 16px; color: #d6d6de; }
91
- a { color: #67e8f9; }
92
- .lede { color: #a7a7b1; font-size: 1.15rem; max-width: 720px; }
93
- .callout {
94
- margin: 30px 0;
95
- border: 1px solid #303039;
96
- background: #151518;
97
- border-radius: 8px;
98
- padding: 22px;
99
- }
100
- .grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 24px 0; }
101
- .card {
102
- border: 1px solid #26262c;
103
- background: #111114;
104
- border-radius: 8px;
105
- padding: 18px;
106
- }
107
- .card strong { display: block; margin-bottom: 8px; color: #fff; }
108
- code, pre {
109
- font-family: "SF Mono", "Cascadia Code", "JetBrains Mono", Consolas, monospace;
110
- }
111
- pre {
112
- overflow-x: auto;
113
- background: #050506;
114
- border: 1px solid #25252a;
115
- border-radius: 8px;
116
- padding: 18px;
117
- color: #d7f9ff;
118
- }
119
- .source-note { color: #8f8f99; font-size: 0.92rem; }
120
- .cta {
121
- display: inline-block;
122
- margin-top: 16px;
123
- padding: 11px 18px;
124
- border-radius: 8px;
125
- background: #22d3ee;
126
- color: #031114;
127
- text-decoration: none;
128
- font-weight: 700;
129
- }
130
- @media (max-width: 720px) {
131
- nav { padding: 14px 18px; gap: 14px; flex-wrap: wrap; }
132
- main { padding-top: 32px; }
133
- .grid { grid-template-columns: 1fr; }
134
- }
135
- </style>
136
- </head>
137
- <body>
138
- <nav>
139
- <a href="/" class="brand"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" width="28" height="28">ThumbGate</a>
140
- <a href="/guide">Setup Guide</a>
141
- <a href="/learn">Learn</a>
142
- <a href="/compare/databricks-unity-ai-gateway">Databricks comparison</a>
143
- </nav>
144
- <main>
145
- <h1>Anthropomorphic claim gates for AI agents</h1>
146
- <p class="lede">A model may produce useful work. That does not mean it understands, knows, decides, wants, or behaves human-like. ThumbGate now treats those phrases as claims that need measurement criteria before they can influence a production decision.</p>
147
-
148
- <div class="callout">
149
- <p><strong>The high-ROI lesson:</strong> stop debating whether the agent is smart. Gate the claim. If an operator or agent says an AI system has a human-like attribute, require a tested attribute, interface/substrate context, evaluator, and evidence before accepting the statement.</p>
150
- <p class="source-note">Research anchor: Adrian de Wynter's arXiv paper, <a href="https://arxiv.org/abs/2605.31514" rel="noopener">If LLMs Have Human-Like Attributes, Then So Does Age of Empires II</a>. A public X post by Rohan Paul surfaced the paper as a reminder to avoid treating LLMs as human-like without clear tests and narrower claims.</p>
151
- </div>
152
-
153
- <h2>What changes in ThumbGate</h2>
154
- <p>ThumbGate's default claim-verification config now includes an anthropomorphic AI claim gate. It catches unsupported statements like:</p>
155
- <div class="grid">
156
- <div class="card"><strong>Blocked without evidence</strong> "The agent understands the user's intent."</div>
157
- <div class="card"><strong>Blocked without evidence</strong> "The model decided this was safe."</div>
158
- <div class="card"><strong>Blocked without evidence</strong> "This assistant is human-like on workflow judgment."</div>
159
- <div class="card"><strong>Accepted after proof</strong> "The model matched human annotators on this narrow benchmark, with criteria and evaluator recorded."</div>
160
- </div>
161
-
162
- <h2>The rule shape</h2>
163
- <p>The gate does not ban research or careful measurement. It blocks vague cognitive language until a proof action is recorded.</p>
164
- <pre><code>track_action("anthropomorphic_claim_verified", {
165
- criteria: "attribute under test",
166
- interface: "where and how the model was evaluated",
167
- evaluator: "script, benchmark, reviewer, or study",
168
- evidence: "report, paper, trace, or benchmark output"
169
- })</code></pre>
170
-
171
- <h2>Why buyers care</h2>
172
- <p>Unsupported human-like claims create audit risk. They make it easy for a team to over-trust a chatbot, agent, or orchestration layer and then explain a bad outcome with vibes instead of evidence.</p>
173
- <p>For regulated, enterprise, and customer-facing workflows, this is a governance gap. ThumbGate turns the gap into a small deterministic check before the next claim is accepted.</p>
174
-
175
- <h2>Where this fits</h2>
176
- <p>Enterprise AI gateways can govern models, traffic, credentials, spend, and observability. ThumbGate handles the local pre-action surface: the moment an agent tries to claim something, execute a tool, publish a result, or tell the operator the work is safe.</p>
177
- <p><a class="cta" href="/guide">Install ThumbGate locally</a></p>
178
- </main>
179
- </body>
180
- </html>
@@ -1,184 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Background Agents Need a Control Layer Outside the Model - ThumbGate</title>
7
- <script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
8
- <meta name="description" content="Engineering teams are shipping background agents, but the operating system around them is the real bottleneck. Learn where ThumbGate fits: pre-action controls, evidence, and local enforcement outside the model context.">
9
- <meta name="keywords" content="background agents, AI SDLC, agent control layer, pre-action checks, agent governance, agent operating system, AI software engineering agents, ThumbGate">
10
- <meta property="og:title" content="Background Agents Need a Control Layer Outside the Model">
11
- <meta property="og:description" content="Agents can produce work. Production teams still need triggers, isolated runs, context, visibility, and controls. ThumbGate owns the controls and evidence layer.">
12
- <meta property="og:type" content="article">
13
- <meta property="og:url" content="https://thumbgate.ai/learn/background-agent-control-layer">
14
- <link rel="canonical" href="https://thumbgate.ai/learn/background-agent-control-layer">
15
- <link rel="stylesheet" href="/learn/learn.css">
16
- <script type="application/ld+json">
17
- {
18
- "@context": "https://schema.org",
19
- "@type": "TechArticle",
20
- "headline": "Background Agents Need a Control Layer Outside the Model",
21
- "description": "A practical map of the control and evidence layer teams need around background AI software engineering agents.",
22
- "author": {
23
- "@type": "Person",
24
- "name": "Igor Ganapolsky",
25
- "url": "https://github.com/IgorGanapolsky"
26
- },
27
- "publisher": {
28
- "@type": "Organization",
29
- "name": "ThumbGate",
30
- "url": "https://thumbgate.ai"
31
- },
32
- "datePublished": "2026-05-25",
33
- "dateModified": "2026-05-25",
34
- "mainEntityOfPage": "https://thumbgate.ai/learn/background-agent-control-layer",
35
- "about": [
36
- { "@type": "Thing", "name": "background agents" },
37
- { "@type": "Thing", "name": "AI SDLC" },
38
- { "@type": "Thing", "name": "pre-action checks" },
39
- { "@type": "Thing", "name": "agent governance" }
40
- ]
41
- }
42
- </script>
43
- <style>
44
- table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
45
- th, td { text-align: left; padding: 0.7rem 0.8rem; border-bottom: 1px solid var(--border); vertical-align: top; font-size: 0.92rem; }
46
- th { color: var(--cyan); font-weight: 700; }
47
- .layer strong { color: var(--green); }
48
- .mini-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.25rem 0; }
49
- .mini-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1rem; }
50
- .mini-card h3 { margin-top: 0; color: var(--text); }
51
- .mini-card p { color: var(--muted); }
52
- @media (max-width: 700px) { .mini-grid { grid-template-columns: 1fr; } }
53
- </style>
54
- </head>
55
- <body>
56
- <nav>
57
- <a href="/" class="brand"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
58
- <a href="/guide">Setup Guide</a>
59
- <a href="/learn">Learn</a>
60
- <a href="/dashboard">Dashboard</a>
61
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
62
- </nav>
63
-
64
- <div class="container">
65
- <div class="breadcrumb"><a href="/learn">Learn</a> / Background Agent Control Layer</div>
66
- <h1>Background agents need a control layer outside the model.</h1>
67
- <p style="color:var(--muted);">5 min read &middot; For engineering leaders moving from individual AI coding to team-scale background agents</p>
68
-
69
- <div class="tldr"><strong>TL;DR:</strong> The hard part is no longer proving an agent can open a pull request. The hard part is the system around it: what starts the work, where it runs, what context it gets, what evidence it leaves, and which controls run outside the model context.</div>
70
-
71
- <h2>The buyer problem changed</h2>
72
- <p>Most AI coding rollouts begin with individual acceleration. A developer uses Claude Code, Cursor, Codex, Gemini, or a background agent and gets faster at producing diffs. Then the team hits the next bottleneck: review queues, CI pressure, release routing, credential scope, and unclear accountability.</p>
73
- <p>That is the moment agent adoption stops being a prompt-engineering problem and becomes an operating-system problem. The question shifts from "can the agent write code?" to "can the organization safely receive, constrain, inspect, and improve the work?"</p>
74
-
75
- <div class="callout">
76
- <strong>ThumbGate's position:</strong> memory and context help the agent know more. A control layer decides what the agent is allowed to do next, records why, and turns repeated failures into enforceable rules.
77
- </div>
78
-
79
- <h2>The five layers around a production agent</h2>
80
- <p>For teams running agents beyond the IDE, the system usually decomposes into five layers. ThumbGate does not need to replace all five. It wins by being the enforcement and evidence layer that composes with the rest.</p>
81
-
82
- <table>
83
- <thead>
84
- <tr>
85
- <th>Layer</th>
86
- <th>Buyer question</th>
87
- <th>ThumbGate role</th>
88
- </tr>
89
- </thead>
90
- <tbody>
91
- <tr class="layer">
92
- <td><strong>Triggers</strong></td>
93
- <td>What starts the work: ticket, PR, incident, CVE, scheduled migration, or human request?</td>
94
- <td>Attach a contract: repo scope, allowed tools, done criteria, review threshold, and blocked-action policy.</td>
95
- </tr>
96
- <tr class="layer">
97
- <td><strong>Isolated runs</strong></td>
98
- <td>Where does the agent execute, and which credentials, repos, network paths, and files can it touch?</td>
99
- <td>Run pre-action checks in the execution boundary before privileged tools fire.</td>
100
- </tr>
101
- <tr class="layer">
102
- <td><strong>Context</strong></td>
103
- <td>What does the agent need beyond the prompt: ownership, CI logs, docs, conventions, and prior failures?</td>
104
- <td>Promote feedback and failures into local lessons, then compile trusted lessons into rules.</td>
105
- </tr>
106
- <tr class="layer">
107
- <td><strong>Visibility</strong></td>
108
- <td>What evidence can reviewers inspect: logs, diffs, tests, blocked actions, overrides, and decisions?</td>
109
- <td>Emit structured evidence for allow, warn, block, override, and handoff decisions.</td>
110
- </tr>
111
- <tr class="layer">
112
- <td><strong>Controls</strong></td>
113
- <td>Which governance rules live outside the model so the agent cannot reason around them?</td>
114
- <td>Enforce PreToolUse gates, policy bundles, local allowlists, and repeated-failure prevention rules.</td>
115
- </tr>
116
- </tbody>
117
- </table>
118
-
119
- <h2>Why controls outside context matter</h2>
120
- <p>A prompt rule is useful until the model forgets it, compresses it away, misunderstands it, or decides a new situation is an exception. A pre-action control does not depend on the model remembering the rule. It sees the proposed tool call and returns allow, warn, block, or review.</p>
121
- <p>That is a different category of safety. It is not a bigger memory. It is a runtime boundary.</p>
122
-
123
- <div class="mini-grid">
124
- <div class="mini-card">
125
- <h3>Memory answers what happened</h3>
126
- <p>It stores prior runs, feedback, conventions, and task context so the agent stops starting from zero.</p>
127
- </div>
128
- <div class="mini-card">
129
- <h3>Controls answer whether this may run</h3>
130
- <p>They block known-bad actions before execution and preserve proof that the decision happened.</p>
131
- </div>
132
- </div>
133
-
134
- <h2>The high-ROI starting workflows</h2>
135
- <p>Start with work that already has clear, verifiable criteria. That gives the control layer a concrete success standard instead of a vague promise.</p>
136
- <ul>
137
- <li><strong>CVE remediation:</strong> trigger from advisory, limit repo scope, run tests, block unsafe dependency changes, create PR evidence.</li>
138
- <li><strong>CI/CD migrations:</strong> enforce branch, environment, and secret boundaries before the agent edits pipelines.</li>
139
- <li><strong>Test generation:</strong> require failing-before/passing-after proof before marking a run complete.</li>
140
- <li><strong>Documentation updates:</strong> block edits that cite unsupported claims, stale endpoints, or missing proof links.</li>
141
- <li><strong>Legal or regulated intake:</strong> block advice-shaped responses, confidential egress, and unapproved model calls before they happen.</li>
142
- </ul>
143
-
144
- <h2>How ThumbGate fits next to background-agent platforms</h2>
145
- <p>Background-agent platforms provide orchestration, environments, and fleet execution. ThumbGate should not pretend to replace that stack. It should attach as the local enforcement and proof layer across agents, models, repos, and workflows.</p>
146
- <p>The integration shape is simple: when an agent proposes an action, ThumbGate evaluates the action against local rules and prior failures. If the action is safe, it proceeds and logs evidence. If the action matches a known-bad pattern, it blocks or routes to review before the tool runs.</p>
147
-
148
- <div class="callout callout-green">
149
- <strong>Sales line:</strong> If your team already has agents, ThumbGate helps you ship the system around them: pre-action controls, reviewable evidence, and local rules that survive model churn.
150
- </div>
151
-
152
- <h2>What to show in a buyer demo</h2>
153
- <ol>
154
- <li>One trigger with a clear contract: repo, task, allowed tools, and done criteria.</li>
155
- <li>One proposed risky action stopped before execution.</li>
156
- <li>One safe action allowed with evidence attached.</li>
157
- <li>One failure converted into a reusable rule.</li>
158
- <li>One export that a reviewer, security lead, or risk officer can inspect later.</li>
159
- </ol>
160
-
161
- <div class="cta-box">
162
- <h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Add the control layer before agents scale</h2>
163
- <p>Install local pre-action gates, then decide which workflows deserve hosted evidence, team rules, and audit exports.</p>
164
- <div class="cta-install">$ npx thumbgate init</div>
165
- </div>
166
-
167
- <div class="related">
168
- <h3>Related articles</h3>
169
- <a href="/learn/mcp-pre-action-checks-explained">MCP Pre-Action Checks Explained &rarr;</a>
170
- <a href="/learn/ai-agent-persistent-memory">AI Agent Persistent Memory &rarr;</a>
171
- <a href="/learn/regulated-agent-execution-boundary">Regulated Agent Execution Boundary &rarr;</a>
172
- <a href="/learn/ac-dc-runtime-enforcement">AC/DC Runtime Enforcement &rarr;</a>
173
- <a href="/learn/feedback-loop-vs-decision-layer">The Feedback Loop vs the Decision Layer &rarr;</a>
174
- <a href="/ai-malpractice-prevention">Pre-Execution Controls for Legal AI Agents &rarr;</a>
175
- </div>
176
- </div>
177
-
178
- <div class="sticky-cta">
179
- <span style="color:var(--muted)">Try it now:</span>
180
- <code>npx thumbgate init</code>
181
- <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub &rarr;</a>
182
- </div>
183
- </body>
184
- </html>