thumbgate 1.18.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -120,6 +120,11 @@ const HIGH_ROI_QUERY_SEEDS = [
120
120
  95,
121
121
  'Bottom-of-funnel service query that turns background-agent governance demand into a paid 48-hour Team intake and implementation wedge.',
122
122
  ),
123
+ querySeed(
124
+ 'ai deployment readiness',
125
+ 95,
126
+ 'Production AI deployment demand maps directly to ThumbGate readiness audits, pre-action gates, rollout proof, and paid workflow hardening services.',
127
+ ),
123
128
  querySeed(
124
129
  'gpt-5.5 model evaluation',
125
130
  94,
@@ -1064,6 +1069,69 @@ function buildAiAgentGovernanceSprintGuide() {
1064
1069
  };
1065
1070
  }
1066
1071
 
1072
+ const AI_DEPLOYMENT_READINESS_GUIDE_SPEC = Object.freeze({
1073
+ slug: 'ai-deployment-readiness',
1074
+ meta: {
1075
+ query: 'ai deployment readiness',
1076
+ title: 'AI Deployment Readiness | Production Workflow Gates Before Rollout',
1077
+ heroTitle: 'AI Deployment Readiness Before Agents Touch Production',
1078
+ heroSummary: 'Deployment-company demand proves the buyer problem: teams need help moving AI into real workflows. ThumbGate is the governance and proof layer that makes one priority workflow ready for production with pre-action gates, rollout evidence, and paid sprint paths.',
1079
+ },
1080
+ takeaways: [
1081
+ 'AI deployment readiness is about workflow controls, not just prompts, demos, or model selection.',
1082
+ 'The high-ROI starting point is one priority workflow with mapped tools, data, owners, risky actions, and proof-backed gates.',
1083
+ 'ThumbGate turns deployment demand into revenue through a $499 diagnostic, a $1500 Workflow Hardening Sprint, and Team seats at $49/seat/mo.',
1084
+ ],
1085
+ sections: [
1086
+ ['paragraphs', 'Why deployment is now the buying category', [
1087
+ 'OpenAI-style deployment companies validate a practical market shift: buyers do not only want a model or chatbot. They want AI systems embedded into messy production workflows where data, tools, approvals, and rollback paths already exist.',
1088
+ 'That creates a clean ThumbGate wedge. A forward deployment team can map the workflow and build the automation; ThumbGate defines what the automation is allowed to execute, what evidence must exist before it acts, and what proof the buyer can review after rollout.',
1089
+ ]],
1090
+ ['bullets', 'What ThumbGate adds to AI deployment readiness', [
1091
+ 'Intake for one workflow owner, one priority workflow, one repeated failure, and one production rollout target.',
1092
+ 'A governance map for data access, tools, protected files, risky commands, approval boundaries, review tiers, and rollback expectations.',
1093
+ 'Pre-action gates that stop repeated mistakes before the next shell command, PR, release, or production automation step.',
1094
+ 'Background-agent risk checks through npx thumbgate background-governance --check --json before unattended work reaches review.',
1095
+ 'A proof pack with blocked-repeat examples, run evidence, verification notes, and rollout decisions the buyer can share internally.',
1096
+ ]],
1097
+ ['paragraphs', 'How this makes money', [
1098
+ 'The page should convert deployment curiosity into concrete buying motion. The $499 Workflow Hardening Diagnostic validates one repeated failure and produces a readiness map. The $1500 sprint implements the first gates and proof pack. Team seats expand the same enforcement path across more repos and workflow owners.',
1099
+ 'This keeps the offer honest. ThumbGate does not claim to be the deployment company or a generic AI consultancy. It is the enforcement, governance, and proof layer that lets deployment work survive contact with production.',
1100
+ ]],
1101
+ ],
1102
+ faq: [
1103
+ [
1104
+ 'Is ThumbGate competing with AI deployment companies?',
1105
+ 'No. Deployment companies help buyers embed AI into real operations. ThumbGate complements that work by adding the governance and proof layer before AI agents or automations touch production systems.',
1106
+ ],
1107
+ [
1108
+ 'What should an AI deployment readiness audit produce?',
1109
+ 'A useful audit should produce one workflow map, named owners, tool and data boundaries, risky actions, approval rules, rollback expectations, pre-action gates, and proof that the first rollout can be reviewed.',
1110
+ ],
1111
+ [
1112
+ 'Can this start before procurement?',
1113
+ 'Yes. Start with one $499 diagnostic or the Workflow Hardening Sprint intake. The point is to prove one workflow before asking a buyer to fund a broad platform rollout.',
1114
+ ],
1115
+ ],
1116
+ relatedPaths: ['/guides/ai-agent-governance-sprint', '/guides/background-agent-governance', '/guides/pre-action-checks'],
1117
+ });
1118
+
1119
+ function buildAiDeploymentReadinessGuide() {
1120
+ return {
1121
+ ...preActionGuide(AI_DEPLOYMENT_READINESS_GUIDE_SPEC.slug, {
1122
+ ...AI_DEPLOYMENT_READINESS_GUIDE_SPEC.meta,
1123
+ takeaways: AI_DEPLOYMENT_READINESS_GUIDE_SPEC.takeaways,
1124
+ sections: AI_DEPLOYMENT_READINESS_GUIDE_SPEC.sections.map(([kind, heading, entries]) => buildSectionFromSpec(kind, heading, entries)),
1125
+ faq: AI_DEPLOYMENT_READINESS_GUIDE_SPEC.faq.map(([question, text]) => answer(question, text)),
1126
+ relatedPaths: AI_DEPLOYMENT_READINESS_GUIDE_SPEC.relatedPaths,
1127
+ }),
1128
+ cta: {
1129
+ label: 'Start deployment readiness intake',
1130
+ href: '/?utm_source=website&utm_medium=seo_page&utm_campaign=ai_deployment_readiness&cta_placement=seo_brief&plan_id=team#workflow-sprint-intake',
1131
+ },
1132
+ };
1133
+ }
1134
+
1067
1135
  const MODEL_UPGRADE_EVALUATION_GUIDE_SPEC = Object.freeze({
1068
1136
  slug: 'gpt-5-5-model-evaluation',
1069
1137
  meta: {
@@ -1590,6 +1658,7 @@ const PAGE_BLUEPRINTS = [
1590
1658
  buildPromptTricksToWorkflowRulesGuide(),
1591
1659
  buildBackgroundAgentGovernanceGuide(),
1592
1660
  buildAiAgentGovernanceSprintGuide(),
1661
+ buildAiDeploymentReadinessGuide(),
1593
1662
  buildModelUpgradeEvaluationGuide(),
1594
1663
  {
1595
1664
  query: 'stop ai coding agents from repeating mistakes',
@@ -2102,7 +2171,7 @@ function classifyIntent(query) {
2102
2171
  if (!normalized) return 'informational';
2103
2172
  if (/\b(vs|versus|alternative|compare|comparison|better than)\b/.test(normalized)) return 'comparison';
2104
2173
  if (/\b(price|pricing|buy|checkout|purchase|cost)\b/.test(normalized)) return 'transactional';
2105
- if (/\b(autoresearch|self-improving|benchmark|reward hacking|agent safety|governance|sprint)\b/.test(normalized)) return 'commercial';
2174
+ if (/\b(autoresearch|self-improving|benchmark|reward hacking|agent safety|governance|deployment readiness|sprint)\b/.test(normalized)) return 'commercial';
2106
2175
  if (/\b(claude code|cursor|codex|gemini|amp|opencode|integration|plugin|setup|install)\b/.test(normalized)) {
2107
2176
  return 'commercial';
2108
2177
  }
@@ -2594,7 +2663,11 @@ function renderWebPageJsonLd(page, runtimeConfig) {
2594
2663
  }
2595
2664
 
2596
2665
  function renderPaidSprintCheckoutCard(page) {
2597
- if (page.path !== '/guides/ai-agent-governance-sprint') return '';
2666
+ const paidSprintGuidePaths = new Set([
2667
+ '/guides/ai-agent-governance-sprint',
2668
+ '/guides/ai-deployment-readiness',
2669
+ ]);
2670
+ if (!paidSprintGuidePaths.has(page.path)) return '';
2598
2671
 
2599
2672
  return `<div class="sidebar-card paid-sprint-card">
2600
2673
  <h2>Ready to buy the sprint?</h2>
@@ -99,6 +99,8 @@ function launchLocalServer(options = {}) {
99
99
  THUMBGATE_LOCAL_API_ORIGIN: origin.origin,
100
100
  THUMBGATE_PROJECT_DIR: projectDir,
101
101
  THUMBGATE_PRO_MODE: '1',
102
+ THUMBGATE_BUILD_SHA: env.THUMBGATE_BUILD_SHA || 'local-runtime',
103
+ THUMBGATE_BUILD_GENERATED_AT: env.THUMBGATE_BUILD_GENERATED_AT || new Date().toISOString(),
102
104
  };
103
105
 
104
106
  if (resolvedKey && resolvedKey.key) {
@@ -330,6 +330,7 @@ function sanitizeTelemetryPayload(payload = {}, headers = {}) {
330
330
  failureCode: pickFirstText(raw.failureCode),
331
331
  httpStatus: normalizeInteger(raw.httpStatus),
332
332
  userAgent: pickFirstText(raw.userAgent, headers['user-agent']),
333
+ isBot: pickFirstText(raw.isBot),
333
334
  attributionTagged: Boolean(
334
335
  pickFirstText(raw.utmSource, raw.utmMedium, raw.utmCampaign, raw.utmContent, raw.utmTerm)
335
336
  ),