thumbgate 1.28.0 → 1.28.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.
@@ -25,7 +25,7 @@
25
25
  "alternateName": "thumbgate",
26
26
  "applicationCategory": "DeveloperApplication",
27
27
  "operatingSystem": "Cross-platform, Node.js >=18.18.0",
28
- "softwareVersion": "1.28.0",
28
+ "softwareVersion": "1.28.1",
29
29
  "url": "https://thumbgate.ai/numbers",
30
30
  "dateModified": "2026-05-07",
31
31
  "creator": {
@@ -202,7 +202,7 @@
202
202
  <main class="container">
203
203
  <h1>The Numbers</h1>
204
204
  <p class="subtitle">Generated first-party operational snapshot from the ThumbGate runtime. This is not customer traction, install volume, revenue, or proof that a configured gate has fired.</p>
205
- <div class="freshness">Updated: 2026-05-07 · Version 1.28.0</div>
205
+ <div class="freshness">Updated: 2026-05-07 · Version 1.28.1</div>
206
206
  <div class="truth-note"><strong>Read this first:</strong> configured checks are inventory. Recorded blocks and warnings are usage evidence. This snapshot currently reports 0 recorded hard-block event(s) and 0 recorded warning event(s).</div>
207
207
 
208
208
  <h2>Gate enforcement</h2>
@@ -0,0 +1,198 @@
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">
6
+ <title>ThumbGate Partner Workflow Intake</title>
7
+ <meta name="description" content="Submit one failing AI-agent workflow for fit review before implementation.">
8
+ <meta name="robots" content="noindex,nofollow">
9
+ <link rel="canonical" href="__APP_ORIGIN__/partner-intake">
10
+ <link rel="alternate" type="text/markdown" title="ThumbGate LLM context" href="__APP_ORIGIN__/llm-context.md">
11
+ <meta property="og:title" content="ThumbGate Partner Workflow Intake">
12
+ <meta property="og:description" content="Describe one repeated AI-agent workflow failure and the proof gap around it.">
13
+ <meta property="og:url" content="__APP_ORIGIN__/partner-intake">
14
+ <meta property="og:type" content="website">
15
+ __GOOGLE_SITE_VERIFICATION_META__
16
+ __GA_BOOTSTRAP__
17
+ <style>
18
+ :root {
19
+ color-scheme: dark;
20
+ --bg: #070a0c;
21
+ --panel: #10161a;
22
+ --line: #2a3941;
23
+ --text: #edf7f8;
24
+ --muted: #a7b5ba;
25
+ --cyan: #2fd2e6;
26
+ }
27
+ * { box-sizing: border-box; }
28
+ body {
29
+ margin: 0;
30
+ min-height: 100vh;
31
+ background: var(--bg);
32
+ color: var(--text);
33
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
34
+ line-height: 1.5;
35
+ }
36
+ header, main, footer { width: min(1040px, calc(100% - 32px)); margin: 0 auto; }
37
+ header {
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: space-between;
41
+ gap: 20px;
42
+ padding: 24px 0;
43
+ }
44
+ .brand {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: 10px;
48
+ color: var(--text);
49
+ font-weight: 800;
50
+ text-decoration: none;
51
+ }
52
+ .brand img { display: block; width: 28px; height: 28px; }
53
+ .partner-label { color: var(--muted); font-size: 14px; }
54
+ .layout {
55
+ display: grid;
56
+ grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
57
+ gap: 48px;
58
+ align-items: start;
59
+ padding: 56px 0 64px;
60
+ }
61
+ .eyebrow {
62
+ color: var(--cyan);
63
+ font-size: 13px;
64
+ font-weight: 800;
65
+ text-transform: uppercase;
66
+ letter-spacing: .08em;
67
+ }
68
+ h1 {
69
+ margin: 14px 0 18px;
70
+ max-width: 620px;
71
+ font-size: 52px;
72
+ line-height: 1;
73
+ letter-spacing: 0;
74
+ }
75
+ .lede { max-width: 600px; color: var(--muted); font-size: 19px; }
76
+ .signals {
77
+ display: grid;
78
+ gap: 12px;
79
+ margin-top: 30px;
80
+ padding: 0;
81
+ list-style: none;
82
+ }
83
+ .signals li { padding-left: 18px; border-left: 3px solid var(--cyan); color: var(--muted); }
84
+ .signals strong { color: var(--text); }
85
+ .intake-card {
86
+ border: 1px solid var(--line);
87
+ border-radius: 8px;
88
+ background: var(--panel);
89
+ padding: 24px;
90
+ }
91
+ .intake-card h2 { margin: 0 0 8px; font-size: 24px; }
92
+ .intake-card > p { margin: 0 0 18px; color: var(--muted); }
93
+ label { display: block; margin: 14px 0 7px; font-size: 14px; font-weight: 750; }
94
+ input, textarea, select {
95
+ width: 100%;
96
+ border: 1px solid #35464e;
97
+ border-radius: 7px;
98
+ background: #080c0f;
99
+ color: var(--text);
100
+ padding: 12px;
101
+ font: inherit;
102
+ }
103
+ textarea { min-height: 124px; resize: vertical; }
104
+ button {
105
+ width: 100%;
106
+ min-height: 50px;
107
+ margin-top: 18px;
108
+ border: 0;
109
+ border-radius: 7px;
110
+ background: var(--cyan);
111
+ color: #041014;
112
+ font: inherit;
113
+ font-weight: 900;
114
+ cursor: pointer;
115
+ }
116
+ .hint { margin: 12px 0 0; color: var(--muted); font-size: 13px; }
117
+ footer { padding: 28px 0 40px; border-top: 1px solid var(--line); color: var(--muted); }
118
+ @media (max-width: 800px) {
119
+ header { align-items: flex-start; flex-direction: column; }
120
+ .layout { grid-template-columns: 1fr; padding-top: 36px; }
121
+ h1 { font-size: 40px; }
122
+ }
123
+ </style>
124
+ </head>
125
+ <body>
126
+ <header>
127
+ <a class="brand" href="/">
128
+ <img src="/assets/brand/thumbgate-mark-inline-v3.svg" alt="ThumbGate" width="28" height="28">
129
+ <span>ThumbGate</span>
130
+ </a>
131
+ <span class="partner-label">Partner workflow intake</span>
132
+ </header>
133
+ <main>
134
+ <div class="layout">
135
+ <section aria-labelledby="partner-intake-title">
136
+ <div class="eyebrow">Workflow fit review</div>
137
+ <h1 id="partner-intake-title">Send one failing AI-agent workflow.</h1>
138
+ <p class="lede">Describe the repeated action, the agent involved, and the proof gap. We will review whether the workflow is a fit and return the next concrete step through the referring partner.</p>
139
+ <ul class="signals">
140
+ <li><strong>One workflow:</strong> keep the review narrow enough to verify.</li>
141
+ <li><strong>One owner:</strong> identify who can approve the resulting boundary.</li>
142
+ <li><strong>One proof target:</strong> state what must be true before the action runs again.</li>
143
+ </ul>
144
+ </section>
145
+ <form class="intake-card" action="/v1/intake/workflow-sprint" method="POST" data-partner-intake-form>
146
+ <h2>Submit workflow</h2>
147
+ <p>Use a work email so we can return the fit review to the right owner.</p>
148
+ <input type="hidden" name="ctaId" value="partner_intake_submit">
149
+ <input type="hidden" name="ctaPlacement" value="partner_intake">
150
+ <input type="hidden" name="planId" value="diagnostic">
151
+ <input type="hidden" name="page" value="/partner-intake">
152
+ <input type="hidden" name="source" value="__SERVER_ATTRIBUTION_SOURCE__">
153
+ <input type="hidden" name="utmSource" value="__SERVER_UTM_SOURCE__">
154
+ <input type="hidden" name="utmMedium" value="__SERVER_UTM_MEDIUM__">
155
+ <input type="hidden" name="utmCampaign" value="__SERVER_UTM_CAMPAIGN__">
156
+ <input type="hidden" name="utmContent" value="__SERVER_UTM_CONTENT__">
157
+ <label for="partner-name">Name</label>
158
+ <input id="partner-name" name="name" autocomplete="name" required>
159
+ <label for="partner-email">Work email</label>
160
+ <input id="partner-email" name="email" type="email" autocomplete="email" required>
161
+ <label for="partner-company">Company or project</label>
162
+ <input id="partner-company" name="company" autocomplete="organization">
163
+ <label for="partner-workflow">What workflow keeps failing?</label>
164
+ <textarea id="partner-workflow" name="workflow" required placeholder="Example: the agent sends a customer update before the evidence and approver are confirmed."></textarea>
165
+ <label for="partner-urgency">Urgency</label>
166
+ <select id="partner-urgency" name="urgency">
167
+ <option>Repeated failure already cost us time</option>
168
+ <option>We are about to roll this workflow out</option>
169
+ <option>We need an independent proof checklist first</option>
170
+ </select>
171
+ <button type="submit">Send workflow for review</button>
172
+ <p class="hint">The next page confirms receipt and provides the review references.</p>
173
+ </form>
174
+ </div>
175
+ </main>
176
+ <footer>ThumbGate reviews one concrete agent workflow at a time so the resulting boundary can be tested.</footer>
177
+ <script>
178
+ (function () {
179
+ const form = document.querySelector('[data-partner-intake-form]');
180
+ if (!form) return;
181
+
182
+ const search = new URLSearchParams(window.location.search);
183
+ const fields = {
184
+ source: search.get('utm_source') || search.get('source') || 'partner',
185
+ utmSource: search.get('utm_source') || search.get('source') || 'partner',
186
+ utmMedium: search.get('utm_medium') || 'partner',
187
+ utmCampaign: search.get('utm_campaign') || 'hosted_listing',
188
+ utmContent: search.get('utm_content') || 'partner_intake'
189
+ };
190
+
191
+ for (const [name, value] of Object.entries(fields)) {
192
+ const input = form.querySelector(`input[name="${name}"]`);
193
+ if (input && value.trim()) input.value = value.trim();
194
+ }
195
+ }());
196
+ </script>
197
+ </body>
198
+ </html>
@@ -5,9 +5,9 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  __GOOGLE_SITE_VERIFICATION_META__
7
7
  <title>Pricing — ThumbGate</title>
8
- <meta name="description" content="ThumbGate pricing: free CLI forever, $19/mo Pro dashboard, and custom Enterprise enforcement scoped after intake. One clear subscription path.">
8
+ <meta name="description" content="ThumbGate pricing: free CLI, $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ diagnostic, $__WORKFLOW_SPRINT_PRICE_DOLLARS__ workflow sprint, $19/mo Pro, and Enterprise after scope. Paid services first.">
9
9
  <meta property="og:title" content="Pricing — ThumbGate">
10
- <meta property="og:description" content="Free CLI, Pro self-serve, and Enterprise after workflow scope. No mixed consulting checkout maze.">
10
+ <meta property="og:description" content="Buy a $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ diagnostic or $__WORKFLOW_SPRINT_PRICE_DOLLARS__ sprint today. Free CLI forever. Pro $19/mo for solo operators.">
11
11
  <meta property="og:type" content="website">
12
12
  <meta property="og:url" content="__APP_ORIGIN__/pricing">
13
13
  <meta property="og:image" content="/og.png">
@@ -89,6 +89,8 @@ __GA_BOOTSTRAP__
89
89
  "url": "__APP_ORIGIN__/pricing",
90
90
  "offers": [
91
91
  { "@type": "Offer", "name": "ThumbGate CLI (Free)", "price": "0", "priceCurrency": "USD" },
92
+ { "@type": "Offer", "name": "Workflow Hardening Diagnostic", "price": "__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__", "priceCurrency": "USD", "url": "__APP_ORIGIN__/go/diagnostic" },
93
+ { "@type": "Offer", "name": "Workflow Hardening Sprint", "price": "__WORKFLOW_SPRINT_PRICE_DOLLARS__", "priceCurrency": "USD", "url": "__APP_ORIGIN__/go/sprint" },
92
94
  { "@type": "Offer", "name": "ThumbGate Pro Monthly", "price": "__PRO_PRICE_DOLLARS__", "priceCurrency": "USD", "url": "__APP_ORIGIN__/checkout/pro?confirm=1&plan_id=pro&billing_cycle=monthly&landing_path=%2Fpricing" },
93
95
  { "@type": "Offer", "name": "ThumbGate Pro Annual", "price": "149", "priceCurrency": "USD", "url": "__APP_ORIGIN__/checkout/pro?confirm=1&plan_id=pro&billing_cycle=annual&landing_path=%2Fpricing" },
94
96
  { "@type": "Offer", "name": "ThumbGate Enterprise", "priceCurrency": "USD", "url": "__APP_ORIGIN__/#workflow-sprint-intake" }
@@ -165,8 +167,14 @@ __GA_BOOTSTRAP__
165
167
  .pricing-hero .lede { color: var(--text-muted); font-size: 17px; max-width: 560px; margin: 0 auto; }
166
168
 
167
169
  /* GRID */
168
- .pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 40px 0 32px; }
170
+ .pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin: 40px 0 32px; }
169
171
  @media (max-width: 768px) { .pricing-grid { grid-template-columns: 1fr; } }
172
+ .price-card.money { border-color: rgba(74,222,128,0.45); box-shadow: 0 0 0 1px rgba(74,222,128,0.15); }
173
+ .price-card.money .tier { color: var(--green, #4ade80); }
174
+ .btn-money {
175
+ display: block; width: 100%; text-align: center; padding: 12px 16px; border-radius: 8px;
176
+ background: var(--green, #4ade80); color: #06120a; font-weight: 800; text-decoration: none;
177
+ }
170
178
 
171
179
  /* CARDS */
172
180
  .price-card {
@@ -259,7 +267,7 @@ __GA_BOOTSTRAP__
259
267
  <a href="/pricing" style="color:var(--text);">Pricing</a>
260
268
  <a href="/guide">Guide</a>
261
269
  <a href="/dashboard">Dashboard</a>
262
- <a class="nav-cta" href="/checkout/pro?confirm=1&utm_source=pricing&utm_medium=nav&utm_campaign=pricing_page&cta_id=pricing_nav_start_pro&cta_placement=nav&plan_id=pro&landing_path=%2Fpricing" data-pricing-cta data-cta-id="pricing_nav_start_pro" data-cta-placement="nav" data-tier="pro" data-plan-id="pro" data-billing-cycle="monthly" data-price="19">Start Pro</a>
270
+ <a class="nav-cta" href="/go/diagnostic?utm_source=pricing&utm_medium=nav&utm_campaign=money_today&cta_id=pricing_nav_diagnostic&cta_placement=nav&plan_id=sprint_diagnostic" data-pricing-cta data-cta-id="pricing_nav_diagnostic" data-cta-placement="nav" data-tier="service" data-plan-id="sprint_diagnostic" data-price="__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__">Pay $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ diagnostic</a>
263
271
  </div>
264
272
  </div>
265
273
  </nav>
@@ -267,13 +275,41 @@ __GA_BOOTSTRAP__
267
275
  <section class="pricing-hero">
268
276
  <div class="container">
269
277
  <h1>Stop paying for the same AI mistake twice.</h1>
270
- <p class="lede">One self-serve paid path for solo operators. Teams start with workflow scope so shared enforcement is mapped before checkout.</p>
278
+ <p class="lede">Paid services first: harden one AI-agent workflow with a <strong>$__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ diagnostic</strong> or <strong>$__WORKFLOW_SPRINT_PRICE_DOLLARS__ sprint</strong>. Free CLI forever. Pro is the solo self-serve lane. Enterprise is intake after proof.</p>
271
279
  </div>
272
280
  </section>
273
281
 
274
282
  <section class="container">
275
283
  <div class="pricing-grid">
276
284
 
285
+ <div class="price-card money highlight" id="diagnostic">
286
+ <div class="tier">Diagnostic</div>
287
+ <div class="price">$__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__</div>
288
+ <div class="price-sub"><strong>Fastest path to cash + proof.</strong> Map one repeated agent failure: block / warn / human-review split and a shippable proof checklist. Credited toward the sprint when you continue.</div>
289
+ <ul>
290
+ <li>One workflow, one owner, one failure pattern</li>
291
+ <li>Gate split + proof checklist deliverable</li>
292
+ <li>Stripe checkout — pay today</li>
293
+ <li>Credit toward $__WORKFLOW_SPRINT_PRICE_DOLLARS__ sprint when implementation follows</li>
294
+ </ul>
295
+ <a class="btn-money" href="/go/diagnostic?utm_source=pricing&utm_medium=hero_card&utm_campaign=money_today&cta_id=pricing_diagnostic&cta_placement=pricing&plan_id=sprint_diagnostic" data-pricing-cta data-cta-id="pricing_diagnostic" data-cta-placement="pricing" data-tier="service" data-plan-id="sprint_diagnostic" data-price="__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__" onclick="try{posthog.capture('pricing_cta_click',{cta:'pay_diagnostic',tier:'service',placement:'pricing_page',price:__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__})}catch(_){};try{plausible('pricing_cta_click',{props:{cta:'pay_diagnostic',tier:'service'}})}catch(_){}">Pay $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ diagnostic</a>
296
+ <p class="btn-sub"><a href="/diagnostic" style="color:var(--cyan);text-decoration:none;font-weight:600;">Or open the diagnostic page →</a></p>
297
+ </div>
298
+
299
+ <div class="price-card money" id="sprint">
300
+ <div class="tier">Workflow Hardening Sprint</div>
301
+ <div class="price">$__WORKFLOW_SPRINT_PRICE_DOLLARS__</div>
302
+ <div class="price-sub"><strong>Primary commercial motion.</strong> Wire gates for one workflow, promote prevention rules, deliver verification evidence and a rollout checklist.</div>
303
+ <ul>
304
+ <li>Workflow map + approval boundaries</li>
305
+ <li>Memory / gate wiring plan</li>
306
+ <li>Proof pack for the next production-facing iteration</li>
307
+ <li>Expands into Enterprise when shared lessons matter</li>
308
+ </ul>
309
+ <a class="btn-money" href="/go/sprint?utm_source=pricing&utm_medium=hero_card&utm_campaign=money_today&cta_id=pricing_sprint&cta_placement=pricing&plan_id=workflow_sprint" data-pricing-cta data-cta-id="pricing_sprint" data-cta-placement="pricing" data-tier="service" data-plan-id="workflow_sprint" data-price="__WORKFLOW_SPRINT_PRICE_DOLLARS__" onclick="try{posthog.capture('pricing_cta_click',{cta:'pay_sprint',tier:'service',placement:'pricing_page',price:__WORKFLOW_SPRINT_PRICE_DOLLARS__})}catch(_){};try{plausible('pricing_cta_click',{props:{cta:'pay_sprint',tier:'service'}})}catch(_){}">Pay $__WORKFLOW_SPRINT_PRICE_DOLLARS__ sprint</a>
310
+ <p class="btn-sub"><a href="/?utm_source=pricing&utm_medium=sprint_intake#workflow-sprint-intake" style="color:var(--cyan);text-decoration:none;font-weight:600;">Need fit review first? Send the workflow →</a></p>
311
+ </div>
312
+
277
313
  <div class="price-card">
278
314
  <div class="tier" style="color:var(--cyan);">Free</div>
279
315
  <div class="price">$0</div>
@@ -282,17 +318,17 @@ __GA_BOOTSTRAP__
282
318
  <li>2 feedback captures/day (10 total) — enough to see the value</li>
283
319
  <li>Up to 3 active prevention rules</li>
284
320
  <li>All MCP integrations (Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode)</li>
285
- <li>PreToolUse hook flags and logs risky calls — hard-blocks the catastrophic classes (secret exfil, rm -rf, supply-chain) by default; full hard enforcement in strict mode</li>
321
+ <li>PreToolUse hook flags and logs risky calls — hard-blocks secret exfiltration and guardrail-tampering by default; rm -rf, force-push, and supply-chain warn by default and hard-block in strict mode</li>
286
322
  <li>Runs 100% local — no account, no signup, no data leaves your machine</li>
287
323
  </ul>
288
324
  <a class="btn-install" href="/go/install?utm_source=pricing&utm_medium=free_card&cta_id=pricing_install_free&cta_placement=free_card" data-pricing-cta data-cta-id="pricing_install_free" data-cta-placement="free_card" data-tier="free" data-plan-id="free" data-price="0" onclick="try{posthog.capture('pricing_cta_click',{cta:'install_free',tier:'free',placement:'pricing_page'})}catch(_){};try{plausible('pricing_cta_click',{props:{cta:'install_free',tier:'free'}})}catch(_){}">Install free</a>
289
325
  </div>
290
326
 
291
- <div class="price-card highlight" id="pro">
327
+ <div class="price-card" id="pro">
292
328
  <div class="tier">Pro</div>
293
329
  <div class="price">$19<span>/mo</span></div>
294
330
  <div class="price-sub">
295
- <strong>Don't buy a tool — buy proof + compatibility insurance.</strong> The free CLI runs your gates locally. Pro removes the solo caps and adds the personal dashboard, recall, exports, and active adapter maintenance to stay compatible with weekly breaking updates in Claude Code, Cursor, and Cline. Shared hosted lesson databases are Enterprise.
331
+ <strong>Solo self-serve side lane.</strong> After one real caught repeat: personal dashboard, recall, exports, managed adapters. Shared hosted lessons are Enterprise.
296
332
  </div>
297
333
  <ul>
298
334
  <li><strong>Personal lesson recall</strong> — search and reuse your own corrections across sessions</li>
@@ -309,8 +345,8 @@ __GA_BOOTSTRAP__
309
345
 
310
346
  <div class="price-card enterprise-card" id="enterprise">
311
347
  <div class="tier">Enterprise</div>
312
- <div class="price">Custom<span> / scoped after intake</span></div>
313
- <div class="price-sub">Shared enforcement for the whole team and regulated workflows. One engineer's save protects every agent.</div>
348
+ <div class="price">Custom<span> / after sprint proof</span></div>
349
+ <div class="price-sub">Shared enforcement for the whole team and regulated workflows. Start with a paid diagnostic or sprint — then expand.</div>
314
350
  <ul>
315
351
  <li>Everything in Pro, for every developer and agent</li>
316
352
  <li><strong>Shared lesson database</strong> — one engineer's fix protects every agent on the team</li>
@@ -321,15 +357,16 @@ __GA_BOOTSTRAP__
321
357
  <li>Custom policy layers, compliance audit export, approval boundaries, SSO, and dedicated onboarding with SLA</li>
322
358
  <li>Rollout starts only after workflow and proof review are explicit</li>
323
359
  </ul>
324
- <a class="btn-team" href="/?utm_source=pricing&utm_medium=enterprise_card&utm_campaign=enterprise_intake&cta_id=pricing_enterprise_intake&cta_placement=pricing&plan_id=enterprise#workflow-sprint-intake" data-pricing-cta data-cta-id="pricing_enterprise_intake" data-cta-placement="pricing" data-tier="enterprise" data-plan-id="enterprise" data-price="0" onclick="try{posthog.capture('pricing_cta_click',{cta:'enterprise_intake',tier:'enterprise',placement:'pricing_page',price:0})}catch(_){};try{plausible('pricing_cta_click',{props:{cta:'enterprise_intake',tier:'enterprise'}})}catch(_){}">Talk to us</a>
325
- <p class="btn-sub">Custom pricing, scoped through intake so the workflow is explicit before checkout.</p>
360
+ <a class="btn-team" href="/go/sprint?utm_source=pricing&utm_medium=enterprise_card&utm_campaign=money_today&cta_id=pricing_enterprise_sprint&cta_placement=pricing&plan_id=workflow_sprint" data-pricing-cta data-cta-id="pricing_enterprise_sprint" data-cta-placement="pricing" data-tier="service" data-plan-id="workflow_sprint" data-price="__WORKFLOW_SPRINT_PRICE_DOLLARS__" onclick="try{posthog.capture('pricing_cta_click',{cta:'enterprise_sprint',tier:'service',placement:'pricing_page',price:__WORKFLOW_SPRINT_PRICE_DOLLARS__})}catch(_){};try{plausible('pricing_cta_click',{props:{cta:'enterprise_sprint',tier:'service'}})}catch(_){}">Start with $__WORKFLOW_SPRINT_PRICE_DOLLARS__ sprint</a>
361
+ <p class="btn-sub"><a href="/?utm_source=pricing&utm_medium=enterprise_intake&utm_campaign=enterprise_intake&cta_id=pricing_enterprise_intake&cta_placement=pricing&plan_id=enterprise#workflow-sprint-intake" data-pricing-cta data-cta-id="pricing_enterprise_intake" data-cta-placement="pricing" data-tier="enterprise" data-plan-id="enterprise" data-price="0" style="color:var(--cyan);text-decoration:none;font-weight:600;">Or send workflow intake →</a></p>
326
362
  </div>
327
363
 
328
364
  </div>
329
365
 
330
366
  <div style="text-align:center;margin:32px 0;color:var(--text-muted);font-size:14px;">
331
- Need founder help? Do not buy a blind diagnostic from a pricing table.
332
- <a href="/?utm_source=pricing&utm_medium=scope_first&utm_campaign=enterprise_intake&cta_id=pricing_scope_first&cta_placement=pricing_note&plan_id=enterprise#workflow-sprint-intake" data-pricing-cta data-cta-id="pricing_scope_first" data-cta-placement="pricing_note" data-tier="enterprise" data-plan-id="enterprise" data-price="0" style="color:var(--cyan);text-decoration:none;font-weight:600;" onclick="try{posthog.capture('pricing_cta_click',{cta:'scope_first',tier:'enterprise',price:0})}catch(_){};try{plausible('pricing_cta_click',{props:{cta:'scope_first',tier:'enterprise'}})}catch(_){}">Send the workflow first</a> — then we scope the smallest paid rollout that can prove one repeated failure is blocked.
367
+ Prefer a scoped conversation before Stripe?
368
+ <a href="/?utm_source=pricing&utm_medium=scope_first&utm_campaign=enterprise_intake&cta_id=pricing_scope_first&cta_placement=pricing_note&plan_id=enterprise#workflow-sprint-intake" data-pricing-cta data-cta-id="pricing_scope_first" data-cta-placement="pricing_note" data-tier="enterprise" data-plan-id="enterprise" data-price="0" style="color:var(--cyan);text-decoration:none;font-weight:600;" onclick="try{posthog.capture('pricing_cta_click',{cta:'scope_first',tier:'enterprise',price:0})}catch(_){};try{plausible('pricing_cta_click',{props:{cta:'scope_first',tier:'enterprise'}})}catch(_){}">Send the workflow first</a>
369
+ — or pay the diagnostic today if you already know the failure.
333
370
  </div>
334
371
  </section>
335
372