thumbgate 1.28.4 → 1.29.2

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 (87) hide show
  1. package/.claude/commands/dashboard.md +11 -1
  2. package/.claude/commands/thumbgate-dashboard.md +23 -8
  3. package/.claude-plugin/plugin.json +1 -1
  4. package/.well-known/llms.txt +18 -10
  5. package/.well-known/mcp/server-card.json +1 -1
  6. package/README.md +66 -3
  7. package/adapters/claude/.mcp.json +2 -2
  8. package/adapters/forge/forge.yaml +3 -3
  9. package/adapters/mcp/server-stdio.js +88 -2
  10. package/adapters/opencode/opencode.json +1 -1
  11. package/bin/cli.js +8 -8
  12. package/bin/postinstall.js +4 -13
  13. package/commands/dashboard.md +11 -1
  14. package/commands/thumbgate-dashboard.md +23 -8
  15. package/config/agent-outcome-monitor-thresholds.json +63 -0
  16. package/config/evals/agent-outcomes-baseline.json +17 -0
  17. package/config/evals/agent-outcomes-golden.json +412 -0
  18. package/config/evals/prompt-eval-baseline.json +23 -0
  19. package/config/github-about.json +5 -4
  20. package/config/post-deploy-marketing-pages.json +6 -6
  21. package/config/schemas/task-outcome-receipt.schema.json +296 -0
  22. package/docs/integrations/grafana/README.md +109 -0
  23. package/docs/integrations/grafana/thumbgate-revenue-evidence-dashboard.json +1930 -0
  24. package/openapi/openapi.yaml +475 -5
  25. package/package.json +75 -22
  26. package/public/agent-manager.html +10 -11
  27. package/public/agents-cost-savings.html +2 -2
  28. package/public/assets/brand/thumbgate-logo-transparent.svg +6 -11
  29. package/public/assets/brand/thumbgate-mark-inline-v3.svg +11 -10
  30. package/public/assets/brand/thumbgate-mark.svg +10 -11
  31. package/public/blog/inside-your-boundary.html +114 -0
  32. package/public/blog/process-over-outcome-gates.html +119 -0
  33. package/public/blog.html +296 -402
  34. package/public/brand/thumbgate-mark.svg +5 -9
  35. package/public/codex-enterprise.html +2 -2
  36. package/public/compare.html +12 -3
  37. package/public/diagnostic.html +79 -29
  38. package/public/guide.html +4 -4
  39. package/public/index.html +1090 -2098
  40. package/public/install.html +3 -3
  41. package/public/js/buyer-intent.js +33 -18
  42. package/public/numbers.html +2 -2
  43. package/public/pricing.html +268 -408
  44. package/public/pro.html +4 -4
  45. package/scripts/agent-outcome-eval.js +130 -0
  46. package/scripts/agent-outcome-monitor.js +261 -0
  47. package/scripts/agent-reasoning-traces.js +8 -9
  48. package/scripts/async-job-runner.js +107 -13
  49. package/scripts/billing.js +456 -126
  50. package/scripts/buyer-paths.js +102 -0
  51. package/scripts/cli-feedback.js +2 -2
  52. package/scripts/commercial-offer.js +18 -10
  53. package/scripts/durability/step.js +121 -12
  54. package/scripts/external-customer-audit.js +881 -0
  55. package/scripts/feedback-loop.js +26 -0
  56. package/scripts/gates-engine.js +554 -19
  57. package/scripts/grafana-revenue-evidence.js +856 -0
  58. package/scripts/human-escalation.js +265 -0
  59. package/scripts/hybrid-feedback-context.js +93 -50
  60. package/scripts/jsonl-window.js +89 -0
  61. package/scripts/judge-reward-function.js +30 -18
  62. package/scripts/lesson-embedding-index.js +3 -7
  63. package/scripts/meta-agent-loop.js +20 -2
  64. package/scripts/observability-env.js +139 -0
  65. package/scripts/observability-setup.js +55 -0
  66. package/scripts/plausible-domain-config.js +4 -0
  67. package/scripts/prompt-eval.js +81 -4
  68. package/scripts/provider-live-evidence.js +1290 -0
  69. package/scripts/provider-payment-reconciler.js +442 -0
  70. package/scripts/provider-revenue-evidence.js +249 -0
  71. package/scripts/rate-limiter.js +1 -5
  72. package/scripts/revenue-action-eligibility.js +414 -0
  73. package/scripts/revenue-evidence-remediation.js +694 -0
  74. package/scripts/revenue-offer-system.js +709 -0
  75. package/scripts/sales-pipeline.js +1117 -0
  76. package/scripts/schedule-manager.js +249 -0
  77. package/scripts/seo-gsd.js +8 -4
  78. package/scripts/stripe-credentials.js +37 -0
  79. package/scripts/stripe-revenue-catalog-audit.js +363 -0
  80. package/scripts/stripe-revenue-catalog.js +164 -0
  81. package/scripts/task-outcomes.js +425 -0
  82. package/scripts/telemetry-analytics.js +23 -3
  83. package/scripts/tool-contract-validator.js +287 -59
  84. package/scripts/tool-registry.js +143 -0
  85. package/scripts/vector-store.js +83 -7
  86. package/scripts/workflow-intake-queue.js +483 -0
  87. package/src/api/server.js +647 -118
@@ -1,6 +1,6 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
2
2
  <title id="title">ThumbGate</title>
3
- <desc id="desc">ThumbGate premium shield and thumbs-up mark.</desc>
3
+ <desc id="desc">ThumbGate TG gate monogram.</desc>
4
4
  <defs>
5
5
  <linearGradient id="tg-frame" x1="8" y1="8" x2="56" y2="56" gradientUnits="userSpaceOnUse">
6
6
  <stop offset="0" stop-color="#8cf5d1"/>
@@ -8,12 +8,8 @@
8
8
  </linearGradient>
9
9
  </defs>
10
10
  <rect width="64" height="64" rx="14" fill="#061015"/>
11
- <!-- Outer Shield / Gate -->
12
- <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"
13
- fill="#0b1820" stroke="url(#tg-frame)" stroke-width="3.5" stroke-linejoin="round"/>
14
-
15
- <!-- Proportional Thumbs Up -->
16
- <g transform="translate(19, 17) scale(1.1)" stroke="#8cf5d1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none">
17
- <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"/>
18
- </g>
11
+ <rect x="9" y="9" width="46" height="46" rx="12" fill="#0b1820" stroke="url(#tg-frame)" stroke-width="3.5"/>
12
+ <path d="M19 44V25c0-5.5 4.5-10 10-10h6c5.5 0 10 4.5 10 10v19" fill="none" stroke="#8cf5d1" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
13
+ <text x="32" y="39" text-anchor="middle" fill="#e7fbff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="19" font-weight="900">TG</text>
14
+ <rect x="18" y="44" width="28" height="4" rx="2" fill="#22d3ee"/>
19
15
  </svg>
@@ -101,9 +101,9 @@
101
101
  <p>This wires the Codex hook, sets up the local lesson DB, and gives you the capture/promote/block loop without a hosted account. If you want the standalone Codex plugin as a self-contained zip — for offline distribution to Dell-managed machines or for security review — grab it from <a href="https://github.com/IgorGanapolsky/ThumbGate/releases" target="_blank" rel="noopener" style="color:var(--cyan)">GitHub releases</a> (look for <code>codex-plugin-*.zip</code>).</p>
102
102
 
103
103
  <div class="card">
104
- <p><strong>The free CLI is real. Pro adds the personal dashboard, recall, exports, and managed adapters. Enterprise is the hosted dashboard, the org-wide rule library, and the operator the Agent Manager doesn't have to be themselves.</strong></p>
104
+ <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>
105
105
  <p>
106
- <a href="/#workflow-sprint-intake?utm_source=website&amp;utm_medium=codex_enterprise_page&amp;utm_campaign=codex_enterprise_sprint&amp;cta_id=codex_enterprise_sprint_intake&amp;cta_placement=codex_enterprise_page" class="cta">Start the Workflow Hardening Sprint</a>
106
+ <a href="/diagnostic?utm_source=website&amp;utm_medium=codex_enterprise_page&amp;utm_campaign=managed_workflow_gate&amp;cta_id=codex_enterprise_managed_gate&amp;cta_placement=codex_enterprise_page" class="cta">Get the managed workflow gate</a>
107
107
  <a href="/checkout/pro?utm_source=website&amp;utm_medium=codex_enterprise_page&amp;utm_campaign=pro_upgrade&amp;cta_id=codex_enterprise_pro_checkout&amp;cta_placement=codex_enterprise_page&amp;plan_id=pro" class="secondary">Or start Pro at $19/mo →</a>
108
108
  </p>
109
109
  </div>
@@ -62,7 +62,7 @@
62
62
  "name": "Is ThumbGate free?",
63
63
  "acceptedAnswer": {
64
64
  "@type": "Answer",
65
- "text": "ThumbGate free includes local enforcement with 2 captures/day, 10 total captures, 3 active auto-promoted prevention rules, and pre-action blocking. Pro ($19/mo or $149/yr) adds personal recall, search, a local dashboard, managed adapters, unlimited captures/rules, and DPO export. Enterprise adds a shared hosted lesson DB and org dashboard."
65
+ "text": "ThumbGate's free CLI includes bounded local feedback capture, prevention rules, and pre-action blocking. The public managed offer is a $499 one-time implementation: one supported workflow review, one configured gate, a regression test, and written rollout and rollback proof."
66
66
  }
67
67
  },
68
68
  {
@@ -218,7 +218,7 @@
218
218
  </tr>
219
219
  <tr>
220
220
  <td>Cost</td>
221
- <td>Free tier + Pro $19/mo</td>
221
+ <td>Free CLI + $499 one-time managed gate</td>
222
222
  <td>Engineer time per review</td>
223
223
  <td>Time lost + recovery cost</td>
224
224
  <td>Free</td>
@@ -255,6 +255,12 @@
255
255
  <p><a href="/compare/agentix-labs" class="cta">Read ThumbGate vs Agentix Labs</a></p>
256
256
  </div>
257
257
 
258
+ <div class="card">
259
+ <h3>Comparing intent-aware workspace security?</h3>
260
+ <p>Ent validates the move from alerting after damage to intervention before a breach. Ent covers broad workforce and endpoint activity; ThumbGate owns the narrower, inspectable AI-agent tool-call boundary.</p>
261
+ <p><a href="/compare/ent" class="cta">Read ThumbGate vs Ent</a></p>
262
+ </div>
263
+
258
264
  <div class="card">
259
265
  <h3>Already using a supply-chain scanner?</h3>
260
266
  <p>HEIDI (Meterian) catches AI assistants suggesting vulnerable npm/pip/maven packages — the supply-chain half of AI coding safety. ThumbGate is the behavior half: it blocks the agent's tool call before it fires a known-bad pattern. Different threat surfaces, both local-first, both free at base. Run both.</p>
@@ -272,6 +278,7 @@
272
278
  <ul class="compare-index">
273
279
  <li><a href="/compare/sigmashake">ThumbGate vs SigmaShake</a> — learns the rule from your thumbs-down vs a hand-picked ruleset hub</li>
274
280
  <li><a href="/compare/claude-code-hooks">ThumbGate vs claude-code-hooks</a> — personal recall, exports, and managed adapters on top of local shell-script hooks</li>
281
+ <li><a href="/compare/ent">ThumbGate vs Ent (ent.ai)</a> — coding-agent PreToolUse gate vs endpoint pre-breach security</li>
275
282
  <li><a href="/compare/arcjet">ThumbGate vs Arcjet</a> — agent-outbound gate pairs with an app-inbound firewall</li>
276
283
  <li><a href="/compare/bumblebee">ThumbGate vs Bumblebee</a> — runtime enforcement pairs with static inventory</li>
277
284
  <li><a href="/compare/anthropic-containment">ThumbGate vs Anthropic's Claude Containment</a> — an IDE-agent extension of Anthropic's published architecture</li>
@@ -284,6 +291,7 @@
284
291
  <li><a href="/compare/speclock">ThumbGate vs SpecLock</a> — thumbs-feedback enforcement vs manual specs</li>
285
292
  <li><a href="/compare/ai-experience-orchestration">ThumbGate vs AI Experience Orchestration</a> — orchestration vs execution enforcement</li>
286
293
  <li><a href="/compare/agentix-labs">ThumbGate vs Agentix Labs</a> — productized enforcement vs custom AI-agent services</li>
294
+ <li><a href="/compare/ent">ThumbGate vs Ent</a> — AI-agent tool-call enforcement vs broad intent-aware workspace security</li>
287
295
  <li><a href="/compare/adopt-ai">ThumbGate vs Adopt AI</a> — pre-execution firewall vs evals-first gating for production blast radius</li>
288
296
  <li><a href="/compare/arcade">ThumbGate vs Arcade</a> — coding-agent guardrails vs enterprise API auth delegation</li>
289
297
  <li><a href="/compare/databricks-unity-ai-gateway">ThumbGate vs Databricks Unity AI Gateway</a> — enterprise gateway vs local pre-action gates</li>
@@ -310,6 +318,7 @@
310
318
  </div>
311
319
 
312
320
  <h2>Get Started</h2>
321
+ <p><strong>Availability boundary:</strong> hosted Enterprise capabilities are not generally available. The public paid offer is the $499 one-time managed workflow gate described below.</p>
313
322
  <div class="card">
314
323
  <p>Install ThumbGate in one command:</p>
315
324
  <pre><code>npx thumbgate init</code></pre>
@@ -334,7 +343,7 @@
334
343
 
335
344
  <div class="card">
336
345
  <h3>Is ThumbGate free?</h3>
337
- <p>ThumbGate free includes local enforcement with 2 captures/day, 10 total captures, 3 active auto-promoted prevention rules, and pre-action blocking. Pro ($19/mo or $149/yr) adds personal recall, search, a local dashboard, managed adapters, unlimited captures/rules, and DPO export. Enterprise adds a shared hosted lesson DB and org dashboard.</p>
346
+ <p>ThumbGate's free CLI includes bounded local feedback capture, prevention rules, and pre-action blocking. The public managed offer is a $499 one-time implementation: one supported workflow review, one configured gate, a regression test, and written rollout and rollback proof.</p>
338
347
  </div>
339
348
 
340
349
  <div class="card">
@@ -3,12 +3,12 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>ThumbGate Workflow Hardening Diagnostic</title>
7
- <meta name="description" content="A focused diagnostic for one repeated AI-agent workflow failure. ThumbGate maps the failure taxonomy, block/warn/human-review split, and proof checklist before rollout.">
6
+ <title>ThumbGate Enterprise Workflow Gate — $499 | Self-Improving Firewall</title>
7
+ <meta name="description" content="Self-improving firewall for AI agents. Managed implementation for one repeated AI-agent workflow failure: one configured local gate, one regression test, and rollout and rollback proof.">
8
8
  <link rel="canonical" href="__APP_ORIGIN__/diagnostic">
9
9
  <link rel="alternate" type="text/markdown" title="ThumbGate LLM context" href="__APP_ORIGIN__/llm-context.md">
10
- <meta property="og:title" content="ThumbGate Workflow Hardening Diagnostic">
11
- <meta property="og:description" content="Send one repeated AI-agent workflow failure. Get the gate/review split and proof checklist before implementation.">
10
+ <meta property="og:title" content="ThumbGate Enterprise Workflow Gate — $499">
11
+ <meta property="og:description" content="Send one repeated AI-agent workflow failure. Get one configured gate, a regression test, and rollout and rollback proof.">
12
12
  <meta property="og:url" content="__APP_ORIGIN__/diagnostic">
13
13
  <meta property="og:type" content="website">
14
14
  <style>
@@ -84,6 +84,16 @@ h1 {
84
84
  font-size: 20px;
85
85
  }
86
86
  .actions { display: flex; flex-wrap: wrap; gap: 12px; }
87
+ .diagnostic-pay-form {
88
+ width: min(100%, 520px);
89
+ padding: 16px;
90
+ border: 1px solid var(--line);
91
+ border-radius: 8px;
92
+ background: var(--panel);
93
+ }
94
+ .diagnostic-pay-form label { margin-top: 0; }
95
+ .diagnostic-pay-form button { margin-top: 10px; }
96
+ .diagnostic-pay-form .hint { display: block; margin-top: 8px; }
87
97
  .button {
88
98
  min-height: 48px;
89
99
  display: inline-flex;
@@ -183,13 +193,13 @@ footer { padding: 32px 0 44px; color: var(--muted); }
183
193
  {
184
194
  "@context": "https://schema.org",
185
195
  "@type": "Service",
186
- "name": "ThumbGate Workflow Hardening Diagnostic",
196
+ "name": "ThumbGate Enterprise Workflow Gate",
187
197
  "provider": {
188
198
  "@type": "Organization",
189
199
  "name": "ThumbGate",
190
200
  "url": "__APP_ORIGIN__"
191
201
  },
192
- "description": "A focused diagnostic for one repeated AI-agent workflow failure, including failure taxonomy, block/warn/human-review split, and proof checklist.",
202
+ "description": "A managed implementation for one repeated AI-agent workflow failure, including one configured local gate, a regression test, and rollout and rollback proof.",
193
203
  "offers": {
194
204
  "@type": "Offer",
195
205
  "price": "__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__",
@@ -207,7 +217,7 @@ footer { padding: 32px 0 44px; color: var(--muted); }
207
217
  <span>ThumbGate</span>
208
218
  </a>
209
219
  <nav aria-label="Primary">
210
- <a href="/pro">Pro</a>
220
+ <a href="/">Home</a>
211
221
  <a href="/pricing">Pricing</a>
212
222
  <a href="/llm-context.md">LLM Context</a>
213
223
  </nav>
@@ -215,22 +225,34 @@ footer { padding: 32px 0 44px; color: var(--muted); }
215
225
  <main>
216
226
  <div class="hero">
217
227
  <div>
218
- <div class="eyebrow">Workflow Hardening Diagnostic</div>
228
+ <div class="eyebrow">Enterprise Workflow Gate · $499 entry offer</div>
219
229
  <h1>Turn one repeated AI-agent failure into a gate you can prove.</h1>
220
- <p class="lede">Send the workflow that keeps failing. ThumbGate maps what should block, warn, or route to human review before an agent writes, sends, deploys, or spends.</p>
230
+ <p class="lede">Send the workflow that keeps failing. ThumbGate configures what should allow, warn, or deny before an agent writes, sends, deploys, or spends—and adds the regression proof.</p>
221
231
  <div class="actions">
222
- <a class="button primary" href="/go/diagnostic?utm_source=diagnostic_page&amp;utm_medium=onsite&amp;utm_campaign=workflow_hardening_diagnostic&amp;utm_content=hero_paid_diagnostic" data-revenue-cta data-cta-id="diagnostic_hero_paid" data-cta-placement="hero">Pay $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ diagnostic</a>
223
- <a class="button" href="#intake" data-revenue-cta data-cta-id="diagnostic_hero_intake" data-cta-placement="hero">Send workflow first</a>
232
+ <form class="diagnostic-pay-form" action="/go/diagnostic-pay" method="POST" data-diagnostic-pay-form>
233
+ <input type="hidden" name="utm_source" value="diagnostic_page">
234
+ <input type="hidden" name="utm_medium" value="diagnostic_confirmation">
235
+ <input type="hidden" name="utm_campaign" value="workflow_hardening_diagnostic">
236
+ <input type="hidden" name="utm_content" value="hero_paid_diagnostic">
237
+ <input type="hidden" name="cta_id" value="diagnostic_hero_paid">
238
+ <input type="hidden" name="cta_placement" value="hero">
239
+ <input type="hidden" name="plan_id" value="sprint_diagnostic">
240
+ <label for="diagnostic-pay-email">Work email for the receipt</label>
241
+ <input id="diagnostic-pay-email" type="email" name="customer_email" autocomplete="email" required placeholder="you@company.com">
242
+ <button class="button primary" type="submit" data-revenue-cta data-cta-id="diagnostic_hero_paid" data-cta-placement="hero">Buy the $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ enterprise gate</button>
243
+ <span class="hint">No Stripe session is created until you submit this form.</span>
244
+ </form>
245
+ <a class="button" href="#intake" data-revenue-cta data-cta-id="diagnostic_hero_intake" data-cta-placement="hero">Check workflow fit first</a>
224
246
  </div>
225
247
  <div class="proof-strip" aria-label="Diagnostic proof points">
226
- <div class="proof"><strong>$__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__</strong><span>Credited toward a sprint when implementation follows.</span></div>
227
- <div class="proof"><strong>One workflow</strong><span>Scoped tightly so the proof is shippable.</span></div>
228
- <div class="proof"><strong>Fit fallback</strong><span>Use the intake if the workflow needs scoping first.</span></div>
248
+ <div class="proof"><strong>$__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__</strong><span>One fixed-price managed implementation.</span></div>
249
+ <div class="proof"><strong>One workflow</strong><span>One configured local gate and regression test.</span></div>
250
+ <div class="proof"><strong>Two business days</strong><span>Rollout and rollback proof after access is available.</span></div>
229
251
  </div>
230
252
  </div>
231
253
  <form id="intake" class="intake-card" action="/v1/intake/workflow-sprint" method="POST" data-team-intake-form data-diagnostic-intake-form>
232
- <h2>Submit for diagnostic scope</h2>
233
- <p>Use this when an AI-assisted workflow has already caused rework, review drag, or release risk.</p>
254
+ <h2>Check workflow fit</h2>
255
+ <p>Use this before checkout if you are unsure the repeated action can be reduced to one supported local gate.</p>
234
256
  <input type="hidden" name="ctaId" value="diagnostic_page_intake">
235
257
  <input type="hidden" name="ctaPlacement" value="diagnostic_page">
236
258
  <input type="hidden" name="utmMedium" value="diagnostic_intake">
@@ -251,10 +273,33 @@ footer { padding: 32px 0 44px; color: var(--muted); }
251
273
  <option>We are about to roll this workflow out</option>
252
274
  <option>We need an independent proof checklist first</option>
253
275
  </select>
254
- <button type="submit" data-revenue-cta data-cta-id="diagnostic_page_submit" data-cta-placement="intake">Submit for diagnostic scope</button>
255
- <p class="hint" data-diagnostic-payment-hint>Ready to pay now? Use the $499 diagnostic checkout above. If the workflow needs fit review first, submit it here and we will route you to the diagnostic or sprint only when the scope is real.</p>
276
+ <button type="submit" data-revenue-cta data-cta-id="diagnostic_page_submit" data-cta-placement="intake">Submit for fit check</button>
277
+ <p class="hint" data-diagnostic-payment-hint>Ready to pay now? Use the $499 managed-gate checkout above. If the workflow is not a supported fit, we refund the order instead of opening a larger consulting scope.</p>
256
278
  </form>
257
279
  </div>
280
+ <section>
281
+ <h2>Exactly what the $499 Enterprise Workflow Gate includes</h2>
282
+ <p class="lede" style="font-size:17px;">One workflow, one 60-minute working review, one configured local gate and regression test, plus rollout and rollback proof within two business days after access and the agreed workflow materials are available.</p>
283
+ <div class="grid" data-diagnostic-offer-contract>
284
+ <div class="box">
285
+ <h3>You provide</h3>
286
+ <p>A short intake, the accountable workflow owner, and non-secret examples or logs that show the repeated failure. Submit first if fit is unclear; an out-of-scope workflow does not require checkout.</p>
287
+ </div>
288
+ <div class="box">
289
+ <h3>You receive</h3>
290
+ <p>A workflow and failure map, one configured local gate, its regression test, and written rollout, rollback, and verification proof for the agreed workflow.</p>
291
+ </div>
292
+ <div class="box">
293
+ <h3>Boundaries</h3>
294
+ <p>The offer does not include multi-system implementation, legal or compliance certification, guaranteed savings, guaranteed incident prevention, or uncontracted hosted-team features.</p>
295
+ </div>
296
+ </div>
297
+ <div class="intake-card" style="margin-top:16px;" data-diagnostic-fit-terms>
298
+ <h3 style="margin-top:0;">Fit and refund boundary</h3>
299
+ <p>If the repeated failure cannot be reduced to one supported ThumbGate gate, the $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ order is refunded instead of being silently converted into a larger service.</p>
300
+ <p class="hint">This is the enterprise entry offer for one workflow. Multi-workflow rollout, ongoing monitoring, shared hosting, compliance work, and hosted Enterprise capabilities are not included or generally available.</p>
301
+ </div>
302
+ </section>
258
303
  <section>
259
304
  <div class="grid">
260
305
  <div class="box">
@@ -290,31 +335,36 @@ footer { padding: 32px 0 44px; color: var(--muted); }
290
335
  </section>
291
336
  </main>
292
337
  <footer>
293
- ThumbGate is local-first agent governance. Use <a href="/pro">Pro</a> for self-serve operator proof, or submit one workflow above for a diagnostic.
338
+ ThumbGate is local-first agent governance. <a href="/pricing">Buy the managed workflow gate</a> or submit one workflow above for a fit check.
294
339
  </footer>
295
340
  <script>
296
341
  (function () {
297
342
  const search = new URLSearchParams(window.location.search);
298
- const paidCta = document.querySelector('[data-cta-id="diagnostic_hero_paid"]');
343
+ const paidForm = document.querySelector('[data-diagnostic-pay-form]');
299
344
  const inboundSource = search.get('utm_source') || search.get('source');
300
345
  const isAiventyxTraffic = String(inboundSource || '').trim().toLowerCase() === 'aiventyx';
301
- if (paidCta && isAiventyxTraffic) {
302
- paidCta.remove();
346
+ if (paidForm && isAiventyxTraffic) {
347
+ paidForm.remove();
303
348
  const paymentHint = document.querySelector('[data-diagnostic-payment-hint]');
304
349
  if (paymentHint) {
305
- paymentHint.textContent = 'Submit the workflow here. Aiventyx will collect payment on its checkout once the scope is accepted.';
350
+ paymentHint.textContent = 'The Aiventyx payment path is paused while seller fees and downstream obligations remain unverified. Submit the workflow here without entering a marketplace payment or revenue-share commitment.';
306
351
  }
307
- } else if (paidCta) {
308
- const href = new URL(paidCta.getAttribute('href'), window.location.origin);
352
+ } else if (paidForm) {
309
353
  const passthrough = /^(utm_(source|medium|campaign|content|term)|source|acquisition_id|visitor_id|session_id|visitor_session_id|install_id|trace_id|creator|community|post_id|comment_id|campaign_variant|offer_code|referrer_host)$/i;
310
354
  for (const [key, value] of search.entries()) {
311
355
  if (!passthrough.test(key) || !value.trim()) continue;
312
- href.searchParams.set(key, value.trim());
356
+ let input = paidForm.querySelector(`input[name="${CSS.escape(key)}"]`);
357
+ if (!input) {
358
+ input = document.createElement('input');
359
+ input.type = 'hidden';
360
+ input.name = key;
361
+ paidForm.appendChild(input);
362
+ }
363
+ input.value = value.trim();
313
364
  }
314
365
  if (inboundSource && inboundSource.trim()) {
315
- href.searchParams.set('utm_source', inboundSource.trim());
366
+ paidForm.querySelector('input[name="utm_source"]').value = inboundSource.trim();
316
367
  }
317
- paidCta.setAttribute('href', `${href.pathname}${href.search}${href.hash}`);
318
368
  }
319
369
 
320
370
  const form = document.querySelector('[data-diagnostic-intake-form]');
@@ -334,7 +384,7 @@ footer { padding: 32px 0 44px; color: var(--muted); }
334
384
 
335
385
  function telemetry(eventName, props) {
336
386
  try {
337
- navigator.sendBeacon && navigator.sendBeacon('/v1/telemetry/event', JSON.stringify({
387
+ navigator.sendBeacon && navigator.sendBeacon('/v1/telemetry/ping', JSON.stringify({
338
388
  event: eventName,
339
389
  page: '/diagnostic',
340
390
  source: 'diagnostic_page',
package/public/guide.html CHANGED
@@ -330,7 +330,7 @@ npx thumbgate init --agent gemini</code></pre>
330
330
  <tr><td>Auto-generates rules</td><td>Yes — from repeated failures</td><td>No</td><td>No</td></tr>
331
331
  <tr><td>Agent support</td><td>Claude Code, Codex, Gemini, Amp, Cursor, OpenCode</td><td>Claude Code, Cursor, Windsurf, Cline</td><td>Claude, Cursor</td></tr>
332
332
  <tr><td>Install</td><td><code>npx thumbgate init</code></td><td><code>npx speclock setup</code></td><td>Cloud signup</td></tr>
333
- <tr><td>Cost</td><td>Free (Pro $19/mo or $149/yr, Enterprise custom pricing)</td><td>Free</td><td>Free tier + paid</td></tr>
333
+ <tr><td>Cost</td><td>Free (Pro $19/mo or $149/yr; proposal-only services at $3k/mo, $15k pilot, or $10k/mo after pilot)</td><td>Free</td><td>Free tier + paid</td></tr>
334
334
  </table>
335
335
 
336
336
  <h2>Common Scenarios</h2>
@@ -372,10 +372,10 @@ npx thumbgate init --agent gemini</code></pre>
372
372
  <pre><code>npx thumbgate init</code></pre>
373
373
  <p>One command. Works with Claude Code, Cursor, Codex, Gemini, Amp, and OpenCode. Claude Code can also call Codex for review, adversarial review, and second-pass handoffs through the repo-local bridge plugin.</p>
374
374
  <a href="https://thumbgate.ai/checkout/pro?utm_source=guide&utm_medium=cta_button&utm_campaign=pro_pack" class="cta">Get Pro — $19/mo or $149/yr</a>
375
- <a href="__SPRINT_DIAGNOSTIC_CHECKOUT_URL__" class="cta cta-secondary">Pay $499 diagnostic</a>
376
- <a href="__WORKFLOW_SPRINT_CHECKOUT_URL__" class="cta cta-secondary">Pay $1500 sprint</a>
375
+ <a href="/diagnostic?utm_source=guide&amp;utm_medium=cta_button&amp;utm_campaign=workflow_diagnostic" class="cta cta-secondary">Start $499 diagnostic</a>
376
+ <a href="/go/sprint?utm_source=guide&amp;utm_medium=cta_button&amp;utm_campaign=workflow_sprint" class="cta cta-secondary">Scope $1500 sprint</a>
377
377
  <a href="https://thumbgate.ai/#workflow-sprint-intake" class="cta cta-secondary">Send workflow first</a>
378
- <p style="color:var(--muted); font-size:0.85rem;">Free: 2 captures/day, 10 total captures, 3 active prevention rules, hook blocking. Pro: personal dashboard, recall, search, unlimited captures/rules, managed adapters, DPO export. Enterprise: shared hosted lessons, org visibility, custom rollout support.</p>
378
+ <p style="color:var(--muted); font-size:0.85rem;">Free: 2 captures/day, 10 total captures, 3 active prevention rules, hook blocking. Pro: personal local dashboard, recall, search, unlimited captures/rules, managed adapters, DPO export. Enterprise service work is qualified and signed after intake; hosted team sync and a hosted org dashboard are not generally available.</p>
379
379
 
380
380
  </div>
381
381
  <script src="/js/buyer-intent.js"></script>