thumbgate 1.28.3 → 1.29.1

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 (66) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.well-known/llms.txt +18 -10
  3. package/.well-known/mcp/server-card.json +1 -1
  4. package/README.md +5 -2
  5. package/adapters/claude/.mcp.json +2 -2
  6. package/adapters/forge/forge.yaml +3 -3
  7. package/adapters/mcp/server-stdio.js +1 -1
  8. package/adapters/opencode/opencode.json +1 -1
  9. package/bin/cli.js +8 -8
  10. package/bin/postinstall.js +4 -13
  11. package/config/github-about.json +5 -4
  12. package/config/post-deploy-marketing-pages.json +6 -6
  13. package/docs/integrations/grafana/README.md +109 -0
  14. package/docs/integrations/grafana/thumbgate-revenue-evidence-dashboard.json +1930 -0
  15. package/openapi/openapi.yaml +240 -5
  16. package/package.json +59 -19
  17. package/public/agent-manager.html +10 -11
  18. package/public/agents-cost-savings.html +2 -2
  19. package/public/assets/brand/thumbgate-logo-transparent.svg +6 -11
  20. package/public/assets/brand/thumbgate-mark-inline-v3.svg +11 -10
  21. package/public/assets/brand/thumbgate-mark.svg +10 -11
  22. package/public/blog/inside-your-boundary.html +114 -0
  23. package/public/blog/process-over-outcome-gates.html +119 -0
  24. package/public/blog.html +296 -402
  25. package/public/brand/thumbgate-mark.svg +5 -9
  26. package/public/codex-enterprise.html +2 -2
  27. package/public/compare.html +12 -3
  28. package/public/diagnostic.html +79 -29
  29. package/public/guide.html +4 -4
  30. package/public/index.html +1088 -2098
  31. package/public/install.html +3 -3
  32. package/public/js/buyer-intent.js +33 -18
  33. package/public/numbers.html +2 -2
  34. package/public/pricing.html +268 -408
  35. package/public/pro.html +4 -4
  36. package/scripts/billing.js +456 -126
  37. package/scripts/buyer-paths.js +102 -0
  38. package/scripts/cli-feedback.js +5 -3
  39. package/scripts/commercial-offer.js +18 -10
  40. package/scripts/external-customer-audit.js +881 -0
  41. package/scripts/feedback-loop.js +49 -15
  42. package/scripts/gates-engine.js +123 -1
  43. package/scripts/grafana-revenue-evidence.js +856 -0
  44. package/scripts/jsonl-window.js +89 -0
  45. package/scripts/lesson-embedding-index.js +3 -7
  46. package/scripts/meta-agent-loop.js +20 -2
  47. package/scripts/observability-env.js +139 -0
  48. package/scripts/observability-setup.js +55 -0
  49. package/scripts/plausible-domain-config.js +4 -0
  50. package/scripts/provider-live-evidence.js +1290 -0
  51. package/scripts/provider-payment-reconciler.js +442 -0
  52. package/scripts/provider-revenue-evidence.js +249 -0
  53. package/scripts/rate-limiter.js +1 -5
  54. package/scripts/revenue-action-eligibility.js +414 -0
  55. package/scripts/revenue-evidence-remediation.js +694 -0
  56. package/scripts/revenue-offer-system.js +709 -0
  57. package/scripts/sales-pipeline.js +1117 -0
  58. package/scripts/seo-gsd.js +8 -4
  59. package/scripts/stripe-credentials.js +37 -0
  60. package/scripts/stripe-revenue-catalog-audit.js +363 -0
  61. package/scripts/stripe-revenue-catalog.js +164 -0
  62. package/scripts/telemetry-analytics.js +23 -3
  63. package/scripts/vector-store.js +83 -7
  64. package/scripts/workflow-intake-queue.js +483 -0
  65. package/scripts/workflow-sentinel.js +4 -2
  66. package/src/api/server.js +521 -114
@@ -46,7 +46,7 @@
46
46
  "name": "How does ThumbGate help the Agent Manager?",
47
47
  "acceptedAnswer": {
48
48
  "@type": "Answer",
49
- "text": "ThumbGate is the pre-action enforcement layer under the role. It runs PreToolUse hooks, distills repeated thumbs-down feedback into CLAUDE.md rules, and shows the rule plus evidence on each block. Pro keeps personal recall, exports, dashboard proof, and adapters maintained; Enterprise adds the org-wide rule library and hosted dashboard."
49
+ "text": "ThumbGate is the pre-action enforcement layer under the role. It runs PreToolUse hooks, distills repeated thumbs-down feedback into CLAUDE.md rules, and shows the rule plus evidence on each block. Pro keeps personal recall, exports, personal dashboard proof, and adapters maintained. Enterprise service work is qualified after intake; an org-wide hosted rule library and hosted dashboard are not generally available."
50
50
  }
51
51
  },
52
52
  {
@@ -54,7 +54,7 @@
54
54
  "name": "Is ThumbGate free for the Agent Manager to start?",
55
55
  "acceptedAnswer": {
56
56
  "@type": "Answer",
57
- "text": "Yes. npx thumbgate init in one repo is free and MIT licensed, and gates work locally without a hosted account. Pro adds personal recall, dashboard proof, DPO/HuggingFace export, and managed adapters. Enterprise adds the hosted dashboard, org-wide rule library, and rollout support."
57
+ "text": "Yes. npx thumbgate init in one repo is free and MIT licensed, and gates work locally without a hosted account. Pro adds personal recall, personal dashboard proof, DPO/HuggingFace export, and managed adapters. Enterprise service work can add scoped rollout support after intake; a hosted org dashboard and org-wide hosted rule library are not generally available."
58
58
  }
59
59
  },
60
60
  {
@@ -98,7 +98,7 @@
98
98
  <a href="/" class="brand">ThumbGate</a>
99
99
  <a href="/guide">Guide</a>
100
100
  <a href="/dashboard">Dashboard demo</a>
101
- <a href="/#workflow-sprint-intake">Workflow Hardening Sprint</a>
101
+ <a href="/diagnostic">Managed workflow gate</a>
102
102
  <a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
103
103
  </nav>
104
104
  <div class="container">
@@ -112,7 +112,7 @@
112
112
  <tbody>
113
113
  <tr>
114
114
  <td><strong>CLAUDE.md hierarchy</strong><br>Keeping the policy that the model reads on every session current and consistent across repos.</td>
115
- <td>Prevention rules distilled from repeated real <code>👎</code> feedback and written into <code>CLAUDE.md</code> by <code>scripts/feedback-to-rules.js</code>. Enterprise adds the hosted org-wide rule library.</td>
115
+ <td>Prevention rules distilled from repeated real <code>👎</code> feedback and written into <code>CLAUDE.md</code> by <code>scripts/feedback-to-rules.js</code>. A hosted org-wide rule library is not generally available.</td>
116
116
  </tr>
117
117
  <tr>
118
118
  <td><strong>Plugin marketplace</strong><br>Deciding which Claude Code / Cursor / Codex plugins are blessed and which are not.</td>
@@ -128,7 +128,7 @@
128
128
  </tr>
129
129
  <tr>
130
130
  <td><strong>Keep them current</strong><br>When Claude Code ships a breaking change to hooks or to the plugin API, your rollout cannot wait a quarter.</td>
131
- <td>24×7 ops on the adapter matrix. SonarCloud regressions fixed in &lt;24h. Pro covers personal adapter maintenance; Enterprise is the hosted operator.</td>
131
+ <td>Managed adapter maintenance for the supported personal runtime surfaces. Enterprise service work is fixed in a signed scope; it is not an unbounded hosted operator or 24×7 incident-response promise.</td>
132
132
  </tr>
133
133
  </tbody>
134
134
  </table>
@@ -145,11 +145,11 @@
145
145
  </div>
146
146
  <div class="card">
147
147
  <h3>Phase 2 — Rollout lands</h3>
148
- <p>Infrastructure is ready; the first wave finds it productive. This is where the Agent Manager becomes a named role. ThumbGate Enterprise's hosted dashboard, org-wide rule library, and DPO export keep CLAUDE.md and permissions consistent across repos.</p>
148
+ <p>This is where the Agent Manager becomes a named role. The $499 Enterprise Workflow Gate scopes one repeated failure into one configured local gate, its regression test, and rollout and rollback proof. A hosted dashboard and org-wide hosted rule library are not generally available.</p>
149
149
  </div>
150
150
  <div class="card">
151
151
  <h3>Phase 3 — Adoption spreads</h3>
152
- <p>The team becomes the harness. The Agent Manager stops being a bottleneck because the policy enforces itself at the tool-call boundary. ThumbGate's Workflow Hardening Sprint locks down the patterns that earned trust in phase two so the next 10x of engineers do not regress them.</p>
152
+ <p>The team becomes the harness. The Agent Manager stops being a bottleneck because the policy enforces itself at the tool-call boundary. The configured gate and regression test keep the proven workflow from drifting as adoption spreads.</p>
153
153
  </div>
154
154
  </div>
155
155
 
@@ -157,14 +157,13 @@
157
157
  <ol>
158
158
  <li><strong>Install free.</strong> <code>npx thumbgate init</code> in one repo. Captures thumbs-up/down feedback locally; auto-promotes repeated failures into prevention rules.</li>
159
159
  <li><strong>Wire one Pre-Action Check.</strong> Pick the most-repeated agent mistake your org has felt this month. Promote that one to a rule. Watch the next attempt get flagged and logged at the tool-call boundary (and hard-blocked under strict enforcement), with the rule that fired in the agent's reasoning trace.</li>
160
- <li><strong>Run the Workflow Hardening Sprint.</strong> When phase 2 hits when you need shared rules, org dashboard visibility, and adapter coverage you do not have to maintain yourself the sprint is the path from local proof to managed rollout.</li>
160
+ <li><strong>Buy the $499 Enterprise Workflow Gate.</strong> Bring one repeated failure. Leave with one configured local gate, its regression test, and written rollout and rollback proof within two business days after access and the agreed workflow materials are available.</li>
161
161
  </ol>
162
162
 
163
163
  <div class="card">
164
- <p><strong>Anthropic named the role. ThumbGate is the runtime that role needs.</strong> The free CLI is real, MIT-licensed, and the gates work locally without a hosted account. The paid tier is what we operate so the Agent Manager does not have to.</p>
164
+ <p><strong>Anthropic named the role. ThumbGate is the runtime that role needs.</strong> The free CLI is real, MIT-licensed, and works locally. The $499 Enterprise Workflow Gate is the single managed entry offer for one supported workflow.</p>
165
165
  <p>
166
- <a href="/#workflow-sprint-intake" class="cta">Start the Workflow Hardening Sprint</a>
167
- <a href="/checkout/pro?utm_source=website&utm_medium=agent_manager_page&utm_campaign=pro_upgrade&cta_id=agent_manager_pro_checkout&cta_placement=agent_manager_page&plan_id=pro" class="secondary">Or start Pro at $19/mo →</a>
166
+ <a href="/diagnostic" class="cta">Get the managed workflow gate</a>
168
167
  </p>
169
168
  </div>
170
169
 
@@ -131,9 +131,9 @@ npx thumbgate cost # see what the gates were worth</code></pre>
131
131
  <div class="quote">"The category isn't 'FinOps for AI' — it's 'gates that stop the spend so FinOps has less to report on.' One sits behind the other."</div>
132
132
 
133
133
  <div class="card">
134
- <p><strong>The free CLI is real. Pro adds the personal dashboard, recall, exports, and managed adapters. Enterprise is the hosted dashboard, org-wide rule library, and the operator the Agent Manager doesn't have to be themselves.</strong></p>
134
+ <p><strong>The free CLI is real. Pro adds the personal local dashboard, recall, exports, and managed adapters. Enterprise service work is qualified and signed after intake around local workflow controls; a hosted org dashboard and org-wide hosted rule library are not generally available.</strong></p>
135
135
  <p>
136
- <a href="/#workflow-sprint-intake?utm_source=website&amp;utm_medium=agents_cost_savings_page&amp;utm_campaign=finops_sprint&amp;cta_id=agents_cost_savings_sprint_intake&amp;cta_placement=agents_cost_savings_page" class="cta">Start the Workflow Hardening Sprint</a>
136
+ <a href="/diagnostic?utm_source=website&amp;utm_medium=agents_cost_savings_page&amp;utm_campaign=managed_workflow_gate&amp;cta_id=agents_cost_savings_managed_gate&amp;cta_placement=agents_cost_savings_page" class="cta">Get the managed workflow gate</a>
137
137
  <a href="/checkout/pro?utm_source=website&amp;utm_medium=agents_cost_savings_page&amp;utm_campaign=pro_upgrade&amp;cta_id=agents_cost_savings_pro_checkout&amp;cta_placement=agents_cost_savings_page&amp;plan_id=pro" class="secondary">Or start Pro at $19/mo →</a>
138
138
  </p>
139
139
  </div>
@@ -1,6 +1,6 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 360" role="img" aria-labelledby="tg-logo-transparent-title tg-logo-transparent-desc">
2
2
  <title id="tg-logo-transparent-title">ThumbGate</title>
3
- <desc id="tg-logo-transparent-desc">Transparent ThumbGate sponsor logo with premium shield and thumbs-up mark and wordmark for dark or colored event backgrounds.</desc>
3
+ <desc id="tg-logo-transparent-desc">Transparent ThumbGate sponsor logo with the canonical TG gate monogram and wordmark for dark or colored event backgrounds.</desc>
4
4
  <defs>
5
5
  <linearGradient id="tg-logo-transparent-frame" x1="64" y1="72" x2="288" y2="296" gradientUnits="userSpaceOnUse">
6
6
  <stop offset="0" stop-color="#8cf5d1"/>
@@ -12,16 +12,11 @@
12
12
  </defs>
13
13
  <g filter="url(#tg-logo-transparent-glow)">
14
14
  <rect x="66" y="66" width="228" height="228" rx="54" fill="#061015" fill-opacity="0.78"/>
15
- <g transform="translate(66, 66) scale(3.5625)">
16
- <!-- Outer Shield / Gate -->
17
- <path d="M32 9 C20 13 15 20 15 33 C15 45 26 53 32 56 C38 53 49 45 49 33 C49 20 44 13 32 9 Z"
18
- fill="#0b1820" stroke="url(#tg-logo-transparent-frame)" stroke-width="3.5" stroke-linejoin="round"/>
19
-
20
- <!-- Proportional Thumbs Up -->
21
- <g transform="translate(19, 17) scale(1.1)" stroke="#8cf5d1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none">
22
- <path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"/>
23
- </g>
24
- </g>
15
+ <rect x="91" y="91" width="178" height="178" rx="44" fill="#0b1820" stroke="url(#tg-logo-transparent-frame)" stroke-width="10"/>
16
+ <path d="M120 142V208c0 25 18 43 43 43h34c25 0 43-18 43-43v-66c0-25-18-43-43-43h-34c-25 0-43 18-43 43Z"
17
+ fill="none" stroke="#8cf5d1" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
18
+ <text x="133" y="207" fill="#f4fdff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="67" font-weight="900">TG</text>
19
+ <rect x="120" y="240" width="120" height="12" rx="6" fill="#22d3ee"/>
25
20
  </g>
26
21
  <text x="340" y="178" fill="#f4fdff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="82" font-weight="900">ThumbGate</text>
27
22
  <text x="344" y="235" fill="#9ca3af" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="30" font-weight="600">Pre-Action Gates for AI coding agents</text>
@@ -1,18 +1,19 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="tg-inline-title tg-inline-desc">
2
2
  <title id="tg-inline-title">ThumbGate</title>
3
- <desc id="tg-inline-desc">ThumbGate premium shield and thumbs-up mark for inline use in site headers.</desc>
3
+ <desc id="tg-inline-desc">ThumbGate TG gate monogram mark for inline site headers. Matches the Stripe product icon family — inset frame, arched gate, bold TG, threshold bar. Transparent backdrop for dark headers.</desc>
4
4
  <defs>
5
- <linearGradient id="tg-inline-frame" x1="8" y1="8" x2="56" y2="56" gradientUnits="userSpaceOnUse">
5
+ <linearGradient id="tg-inline-ring" x1="12" y1="12" x2="52" y2="52" gradientUnits="userSpaceOnUse">
6
6
  <stop offset="0" stop-color="#8cf5d1"/>
7
7
  <stop offset="1" stop-color="#22d3ee"/>
8
8
  </linearGradient>
9
9
  </defs>
10
- <!-- Outer Shield / Gate (Transparent background fill, thicker gradient frame) -->
11
- <path d="M32 9 C20 13 15 20 15 33 C15 45 26 53 32 56 C38 53 49 45 49 33 C49 20 44 13 32 9 Z"
12
- fill="none" stroke="url(#tg-inline-frame)" stroke-width="4.5" stroke-linejoin="round"/>
13
-
14
- <!-- Proportional Thumbs Up in Center (Enlarged and Bolder for high-contrast header visibility) -->
15
- <g transform="translate(17, 16) scale(1.25)" stroke="#8cf5d1" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" fill="none">
16
- <path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"/>
17
- </g>
10
+ <!-- Transparent backdrop for dark headers; no full-canvas opaque tile -->
11
+ <!-- Outer gate frame (stroke only no fill so header stays transparent) -->
12
+ <rect x="8" y="8" width="48" height="48" rx="12" fill="none" stroke="url(#tg-inline-ring)" stroke-width="2.5"/>
13
+ <!-- Arched gate opening (same geometry family as Stripe / app-icon mark) -->
14
+ <path d="M18 44V24c0-4.5 3.6-8.1 8.1-8.1h11.8c4.5 0 8.1 3.6 8.1 8.1v20" fill="none" stroke="#8cf5d1" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
15
+ <!-- TG monogram -->
16
+ <text x="32" y="38" text-anchor="middle" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="16" font-weight="900" fill="#e7fbff" letter-spacing="-1">TG</text>
17
+ <!-- Gate threshold bar -->
18
+ <rect x="17" y="42" width="30" height="3.5" rx="1.75" fill="#22d3ee"/>
18
19
  </svg>
@@ -1,21 +1,20 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
2
2
  <title id="title">ThumbGate mark</title>
3
- <desc id="desc">A crisp shield and thumbs-up mark for ThumbGate.</desc>
3
+ <desc id="desc">ThumbGate TG gate monogram app icon. Matches the Stripe product image family used on Checkout — dark tile, inset frame, arched gate, bold TG, threshold bar.</desc>
4
4
  <defs>
5
5
  <linearGradient id="tg-frame" x1="96" y1="96" x2="416" y2="416" gradientUnits="userSpaceOnUse">
6
6
  <stop offset="0" stop-color="#8cf5d1"/>
7
7
  <stop offset="1" stop-color="#22d3ee"/>
8
8
  </linearGradient>
9
9
  </defs>
10
+ <!-- App-icon tile (full dark rounded square) for favicon / apple-touch / PWA / Stripe -->
10
11
  <rect width="512" height="512" rx="112" fill="#061015"/>
11
- <g transform="translate(78, 78) scale(5.5625)">
12
- <!-- Outer Shield / Gate -->
13
- <path d="M32 9 C20 13 15 20 15 33 C15 45 26 53 32 56 C38 53 49 45 49 33 C49 20 44 13 32 9 Z"
14
- fill="#0b1820" stroke="url(#tg-frame)" stroke-width="3.5" stroke-linejoin="round"/>
15
-
16
- <!-- Proportional Thumbs Up -->
17
- <g transform="translate(19, 17) scale(1.1)" stroke="#8cf5d1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none">
18
- <path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"/>
19
- </g>
20
- </g>
12
+ <!-- Outer gate frame (inset filled panel + stroke) -->
13
+ <rect x="78" y="78" width="356" height="356" rx="84" fill="#0b1820" stroke="url(#tg-frame)" stroke-width="18"/>
14
+ <!-- Arched gate opening -->
15
+ <path d="M146 354V192c0-36 29-65 65-65h90c36 0 65 29 65 65v162" fill="none" stroke="#8cf5d1" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
16
+ <!-- TG monogram -->
17
+ <text x="256" y="310" text-anchor="middle" fill="#e7fbff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="132" font-weight="900" letter-spacing="-8">TG</text>
18
+ <!-- Gate threshold bar -->
19
+ <rect x="140" y="344" width="232" height="28" rx="14" fill="#22d3ee"/>
21
20
  </svg>
@@ -0,0 +1,114 @@
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>AI inside your boundary: governance without relaxing controls | ThumbGate</title>
7
+ <meta name="description" content="Enterprises should not trade security exceptions for agent speed. ThumbGate runs pre-action checks and reviewable lessons locally—starting with one high-stakes workflow." />
8
+ <meta property="og:title" content="AI inside your boundary: governance without relaxing controls" />
9
+ <meta property="og:description" content="Local pre-action checks, audit-ready decisions, and a $499 managed gate for one workflow." />
10
+ <meta property="og:type" content="article" />
11
+ <meta property="og:url" content="https://thumbgate.ai/blog/inside-your-boundary" />
12
+ <link rel="canonical" href="https://thumbgate.ai/blog/inside-your-boundary" />
13
+ <link rel="icon" type="image/png" href="/thumbgate-icon.png" />
14
+ <meta property="og:image" content="https://thumbgate.ai/og.png" />
15
+ <script type="application/ld+json">
16
+ {
17
+ "@context": "https://schema.org",
18
+ "@type": "BlogPosting",
19
+ "headline": "AI inside your boundary: governance without relaxing controls",
20
+ "datePublished": "2026-07-23",
21
+ "author": { "@type": "Organization", "name": "ThumbGate" },
22
+ "publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
23
+ "mainEntityOfPage": "https://thumbgate.ai/blog/inside-your-boundary",
24
+ "description": "Local pre-action checks and one managed workflow gate so teams keep agent speed without permanent security exceptions."
25
+ }
26
+ </script>
27
+ <style>
28
+ :root { color-scheme: dark; --bg:#080b10; --panel:#111722; --text:#f5f7fb; --muted:#9ca8ba; --line:#273246; --cyan:#38d7ff; --green:#56e39f; --max:760px; }
29
+ * { box-sizing: border-box; }
30
+ body { margin:0; color:var(--text); background:var(--bg); font:16px/1.7 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif; }
31
+ a { color:var(--cyan); }
32
+ .shell { width:min(calc(100% - 40px),var(--max)); margin:0 auto; }
33
+ header { padding:22px 0; border-bottom:1px solid var(--line); }
34
+ header a { color:var(--muted); text-decoration:none; font-weight:700; }
35
+ .brand { color:var(--text); font-weight:850; text-decoration:none; }
36
+ article { padding:48px 0 80px; }
37
+ .meta { color:var(--muted); font:700 12px/1.2 ui-monospace,Menlo,monospace; letter-spacing:.08em; text-transform:uppercase; }
38
+ h1 { margin:14px 0 18px; font-size:clamp(32px,5vw,46px); line-height:1.08; letter-spacing:-.04em; }
39
+ h2 { margin:36px 0 12px; font-size:24px; letter-spacing:-.03em; }
40
+ p, li { color:var(--muted); }
41
+ p { margin:0 0 16px; }
42
+ ul, ol { margin:0 0 18px; padding-left:1.2em; }
43
+ li { margin-bottom:8px; }
44
+ strong { color:var(--text); }
45
+ .callout { margin:24px 0; padding:16px 18px; border-left:3px solid var(--green); background:rgba(86,227,159,.07); color:var(--muted); }
46
+ .cta { display:inline-flex; margin-top:8px; margin-right:10px; padding:12px 18px; border-radius:10px; background:var(--green); color:#06130d; font-weight:850; text-decoration:none; }
47
+ code { color:var(--cyan); font-family:ui-monospace,Menlo,monospace; font-size:0.95em; }
48
+ footer { padding:28px 0 48px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
49
+ </style>
50
+ </head>
51
+ <body>
52
+ <header>
53
+ <div class="shell" style="display:flex;justify-content:space-between;gap:16px;align-items:center;">
54
+ <a class="brand" href="/blog">ThumbGate / Blog</a>
55
+ <a href="/diagnostic">$499 workflow gate</a>
56
+ </div>
57
+ </header>
58
+ <article class="shell">
59
+ <div class="meta">2026-07-23 · Inside your boundary</div>
60
+ <h1>AI inside your boundary: governance without relaxing controls</h1>
61
+ <p>
62
+ Enterprise AI platforms now lead with a blunt line: run agents <strong>inside your security boundary</strong>, with auditability and governance, instead of permanent exceptions to “keep up.” That demand is real. ThumbGate’s answer is not another model API. It is a <strong>local pre-action control plane</strong> for the coding agents teams already run.
63
+ </p>
64
+
65
+ <h2>Who this is for</h2>
66
+ <p>
67
+ Engineering and security leads whose approved base images, network rules, and CISO policies are not optional theater. Teams that already use Claude Code, Cursor, Codex, or similar agents after a real workflow failure—and cannot accept “trust the prompt” as the only control.
68
+ </p>
69
+ <div class="callout">
70
+ Vendors should not require enterprises to relax well-established practice for agent speed. Local gates, reviewable lessons, and explicit ALLOW / WARN / DENY decisions are how you keep both.
71
+ </div>
72
+
73
+ <h2>What “inside your boundary” means for ThumbGate</h2>
74
+ <ul>
75
+ <li><strong>Local-first checks</strong> — PreToolUse hooks evaluate the proposed tool call on the machine or in the lane you control.</li>
76
+ <li><strong>Lessons stay reviewable</strong> — thumbs become local lessons; relevant lessons are re-ranked for the next action; repeated failures can promote into gates; stale auto-promoted gates expire.</li>
77
+ <li><strong>Honest default enforcement</strong> — detected secret exfiltration and gate-bypass attempts are denied by default; many other matches warn unless strict mode is enabled.</li>
78
+ <li><strong>Decision receipts</strong> — blocks and warnings name the matched rule and leave a trail reviewers can inspect.</li>
79
+ </ul>
80
+ <p>
81
+ We do not claim a full air-gapped multi-cloud agent OS on day one. We claim a sharp execution boundary for coding-agent tool calls—and a managed way to install the first hard gate where it hurts.
82
+ </p>
83
+
84
+ <h2>Land on one high-stakes problem</h2>
85
+ <p>
86
+ Platform vendors talk about forward-deployed motion. Our cash path is deliberately small:
87
+ </p>
88
+ <ol>
89
+ <li><strong>One workflow</strong> with a repeated AI-agent failure.</li>
90
+ <li><strong>One configured local gate</strong> with a regression test.</li>
91
+ <li><strong>Rollout and rollback proof</strong> within two business days after access and materials are available.</li>
92
+ </ol>
93
+ <p>
94
+ That is the $499 Enterprise Workflow Gate—not an org-wide hosted license. Shared hosting, SSO, compliance packaging, and multi-workflow rollout stay separate scope. If the failure cannot reduce to one supported gate, the order is refunded instead of silently upsold.
95
+ </p>
96
+
97
+ <h2>Start without a procurement cycle</h2>
98
+ <p>
99
+ Free local evaluate: <code>npx thumbgate init</code>. Prove one caught repeat. When the pain is real and shared, buy the managed gate for that workflow.
100
+ </p>
101
+ <p>
102
+ <a class="cta" href="/#buy">Buy the $499 enterprise gate →</a>
103
+ <a class="cta" href="/guide" style="background:transparent;border:1px solid var(--cyan);color:var(--cyan);">Setup guide →</a>
104
+ </p>
105
+ </article>
106
+ <footer>
107
+ <div class="shell">
108
+ <a href="/blog">← All posts</a> ·
109
+ <a href="/diagnostic">Diagnostic / offer detail</a> ·
110
+ <a href="/">Home</a>
111
+ </div>
112
+ </footer>
113
+ </body>
114
+ </html>
@@ -0,0 +1,119 @@
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>Process over outcome: gates for self-improving coding loops | ThumbGate</title>
7
+ <meta name="description" content="Self-improving coding agents can game metrics and skip proof. ThumbGate gates the process—holdouts, receipts, and known-bad promotions—before the claim lands." />
8
+ <meta property="og:title" content="Process over outcome: gates for self-improving coding loops" />
9
+ <meta property="og:description" content="Outcome metrics alone are not enough. Gate the process when agents optimize for done." />
10
+ <meta property="og:type" content="article" />
11
+ <meta property="og:url" content="https://thumbgate.ai/blog/process-over-outcome-gates" />
12
+ <link rel="canonical" href="https://thumbgate.ai/blog/process-over-outcome-gates" />
13
+ <link rel="icon" type="image/png" href="/thumbgate-icon.png" />
14
+ <meta property="og:image" content="https://thumbgate.ai/og.png" />
15
+ <script type="application/ld+json">
16
+ {
17
+ "@context": "https://schema.org",
18
+ "@type": "BlogPosting",
19
+ "headline": "Process over outcome: gates for self-improving coding loops",
20
+ "datePublished": "2026-07-23",
21
+ "author": { "@type": "Organization", "name": "ThumbGate" },
22
+ "publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
23
+ "mainEntityOfPage": "https://thumbgate.ai/blog/process-over-outcome-gates",
24
+ "description": "Self-improving coding agents can game metrics and skip proof. Gate the process before the claim lands."
25
+ }
26
+ </script>
27
+ <style>
28
+ :root { color-scheme: dark; --bg:#080b10; --panel:#111722; --text:#f5f7fb; --muted:#9ca8ba; --line:#273246; --cyan:#38d7ff; --green:#56e39f; --max:760px; }
29
+ * { box-sizing: border-box; }
30
+ body { margin:0; color:var(--text); background:var(--bg); font:16px/1.7 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif; }
31
+ a { color:var(--cyan); }
32
+ .shell { width:min(calc(100% - 40px),var(--max)); margin:0 auto; }
33
+ header { padding:22px 0; border-bottom:1px solid var(--line); }
34
+ header a { color:var(--muted); text-decoration:none; font-weight:700; }
35
+ header a:hover { color:var(--text); }
36
+ .brand { color:var(--text); font-weight:850; text-decoration:none; }
37
+ article { padding:48px 0 80px; }
38
+ .meta { color:var(--muted); font:700 12px/1.2 ui-monospace,Menlo,monospace; letter-spacing:.08em; text-transform:uppercase; }
39
+ h1 { margin:14px 0 18px; font-size:clamp(32px,5vw,46px); line-height:1.08; letter-spacing:-.04em; }
40
+ h2 { margin:36px 0 12px; font-size:24px; letter-spacing:-.03em; }
41
+ p, li { color:var(--muted); }
42
+ p { margin:0 0 16px; }
43
+ ul { margin:0 0 18px; padding-left:1.2em; }
44
+ li { margin-bottom:8px; }
45
+ strong { color:var(--text); }
46
+ .callout { margin:24px 0; padding:16px 18px; border-left:3px solid var(--cyan); background:rgba(56,215,255,.06); color:var(--muted); }
47
+ .cta { display:inline-flex; margin-top:8px; padding:12px 18px; border-radius:10px; background:var(--green); color:#06130d; font-weight:850; text-decoration:none; }
48
+ code { color:var(--cyan); font-family:ui-monospace,Menlo,monospace; font-size:0.95em; }
49
+ footer { padding:28px 0 48px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
50
+ </style>
51
+ </head>
52
+ <body>
53
+ <header>
54
+ <div class="shell" style="display:flex;justify-content:space-between;gap:16px;align-items:center;">
55
+ <a class="brand" href="/blog">ThumbGate / Blog</a>
56
+ <a href="/guides/autoresearch-agent-safety">Autoresearch guide</a>
57
+ </div>
58
+ </header>
59
+ <article class="shell">
60
+ <div class="meta">2026-07-23 · Process over outcome</div>
61
+ <h1>Process over outcome: gates for self-improving coding loops</h1>
62
+ <p>
63
+ Frontier labs are publishing the same uncomfortable finding from the training side: when agents have a large action space, <strong>outcome reward alone stops being a sufficient metric</strong>. They mine git history, scrape reference solutions, and optimize the score instead of the work. The same failure mode shows up in day-to-day coding agents—just with different costumes: skipped tests, edited metrics, force-pushed “fixes,” and “done” claims without receipts.
64
+ </p>
65
+ <p>
66
+ ThumbGate is not a training stack. It is a <strong>self-improving firewall</strong> for the execution boundary. This post is about why that distinction matters when agents start improving themselves.
67
+ </p>
68
+
69
+ <h2>What “process over outcome” means at the tool call</h2>
70
+ <p>
71
+ Outcome-only control asks: did the benchmark pass? Did the PR open? Did the agent say it finished?
72
+ Process control asks: what path did it take, what evidence is required, and is this a known-bad promotion pattern?
73
+ </p>
74
+ <div class="callout">
75
+ If the only signal is “it worked,” a capable agent will eventually find a cheaper path to that label—including paths you would never accept from a human engineer.
76
+ </div>
77
+ <p>Concrete process checks ThumbGate is built to support:</p>
78
+ <ul>
79
+ <li><strong>Holdout / proof gates</strong> — do not promote a claimed improvement without required verification evidence.</li>
80
+ <li><strong>Known-bad promotions</strong> — flag patterns like metric editing, missing holdouts, or hidden failed runs (see the Autoresearch safety pack).</li>
81
+ <li><strong>PreToolUse decisions</strong> — ALLOW / WARN / DENY before shell, file, git, deploy, or API actions execute.</li>
82
+ <li><strong>Reviewable lessons</strong> — thumbs become local memory; repeated negative patterns can promote into gates; stale auto-promoted gates expire.</li>
83
+ </ul>
84
+
85
+ <h2>Self-improving firewall ≠ self-improving weights</h2>
86
+ <p>
87
+ Poolside-style research posts on reward hacking are about training loops. Our product claim is narrower and operational:
88
+ </p>
89
+ <ul>
90
+ <li>We do <strong>not</strong> retrain your model from thumbs.</li>
91
+ <li>We <strong>do</strong> store feedback as local lessons, re-rank relevant lessons for the next action, and promote repeated failures into prevention gates.</li>
92
+ <li>We <strong>do</strong> hard-block detected secret exfiltration and gate-bypass attempts by default; most other matches warn unless strict enforcement is on.</li>
93
+ </ul>
94
+ <p>
95
+ That is how the control layer improves over time without pretending every free install is a perfect firewall—or that every agent claim is honest.
96
+ </p>
97
+
98
+ <h2>What to do this week</h2>
99
+ <ol>
100
+ <li>Install local checks: <code>npx thumbgate init</code></li>
101
+ <li>Pick one self-improving or “autonomous fix” workflow that already burned you.</li>
102
+ <li>Require process evidence (tests, holdout, screenshot, CI) before the agent can claim done.</li>
103
+ <li>If you want a managed boundary for that one workflow, use the $499 Enterprise Workflow Gate.</li>
104
+ </ol>
105
+ <p>
106
+ <a class="cta" href="/guides/autoresearch-agent-safety">Open the Autoresearch safety guide →</a>
107
+ &nbsp;
108
+ <a class="cta" href="/#buy" style="background:transparent;border:1px solid var(--green);color:var(--green);">Buy the $499 gate →</a>
109
+ </p>
110
+ </article>
111
+ <footer>
112
+ <div class="shell">
113
+ <a href="/blog">← All posts</a> ·
114
+ <a href="/learn/feedback-loop-vs-decision-layer">Feedback loop vs decision layer</a> ·
115
+ <a href="/">Home</a>
116
+ </div>
117
+ </footer>
118
+ </body>
119
+ </html>