@growthub/cli 0.3.52 → 0.3.53
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.
- package/assets/worker-kits/growthub-geo-seo-v1/.env.example +12 -0
- package/assets/worker-kits/growthub-geo-seo-v1/QUICKSTART.md +138 -0
- package/assets/worker-kits/growthub-geo-seo-v1/brands/NEW-CLIENT.md +104 -0
- package/assets/worker-kits/growthub-geo-seo-v1/brands/_template/brand-kit.md +116 -0
- package/assets/worker-kits/growthub-geo-seo-v1/brands/growthub/brand-kit.md +117 -0
- package/assets/worker-kits/growthub-geo-seo-v1/bundles/growthub-geo-seo-v1.json +54 -0
- package/assets/worker-kits/growthub-geo-seo-v1/docs/geo-seo-fork-integration.md +244 -0
- package/assets/worker-kits/growthub-geo-seo-v1/docs/pdf-report-layer.md +139 -0
- package/assets/worker-kits/growthub-geo-seo-v1/docs/scoring-methodology.md +230 -0
- package/assets/worker-kits/growthub-geo-seo-v1/docs/subagent-dispatch.md +273 -0
- package/assets/worker-kits/growthub-geo-seo-v1/examples/citability-sample.md +155 -0
- package/assets/worker-kits/growthub-geo-seo-v1/examples/geo-audit-sample.md +126 -0
- package/assets/worker-kits/growthub-geo-seo-v1/examples/pdf-report-sample.md +207 -0
- package/assets/worker-kits/growthub-geo-seo-v1/examples/prospect-proposal-sample.md +184 -0
- package/assets/worker-kits/growthub-geo-seo-v1/growthub-meta/README.md +124 -0
- package/assets/worker-kits/growthub-geo-seo-v1/growthub-meta/kit-standard.md +116 -0
- package/assets/worker-kits/growthub-geo-seo-v1/kit.json +102 -0
- package/assets/worker-kits/growthub-geo-seo-v1/output/README.md +114 -0
- package/assets/worker-kits/growthub-geo-seo-v1/output-standards.md +143 -0
- package/assets/worker-kits/growthub-geo-seo-v1/runtime-assumptions.md +175 -0
- package/assets/worker-kits/growthub-geo-seo-v1/setup/check-deps.sh +80 -0
- package/assets/worker-kits/growthub-geo-seo-v1/setup/clone-fork.sh +56 -0
- package/assets/worker-kits/growthub-geo-seo-v1/setup/verify-env.mjs +152 -0
- package/assets/worker-kits/growthub-geo-seo-v1/skills.md +359 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/brand-visibility-report.md +101 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/citability-analysis.md +131 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/client-proposal.md +172 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/content-analysis.md +136 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/crawler-access-report.md +115 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/geo-audit-brief.md +114 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/geo-score-summary.md +113 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/llmstxt-plan.md +173 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/remediation-roadmap.md +150 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/schema-validation.md +177 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/technical-foundations.md +108 -0
- package/assets/worker-kits/growthub-geo-seo-v1/validation-checklist.md +139 -0
- package/assets/worker-kits/growthub-geo-seo-v1/workers/geo-seo-operator/CLAUDE.md +320 -0
- package/package.json +1 -1
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# PDF Report Input Data — Sample (GrowthHub.com)
|
|
2
|
+
|
|
3
|
+
> Example: `examples/pdf-report-sample.md`
|
|
4
|
+
> This shows the input data structure passed to `scripts/generate_pdf_report.py` to produce a branded PDF.
|
|
5
|
+
> In local-fork mode, this JSON is written to `output/<client-slug>/<project-slug>/geo_score_data.json`
|
|
6
|
+
> and then consumed by the ReportLab PDF generator.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## How to Trigger PDF Generation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# From your geo-seo-claude fork directory:
|
|
14
|
+
python scripts/generate_pdf_report.py \
|
|
15
|
+
--input output/growthub/studio-launch-reference/geo_score_data.json \
|
|
16
|
+
--output output/growthub/studio-launch-reference/GrowthHub_GeoScoreReport_v1_20260414.pdf \
|
|
17
|
+
--brand "Growthub" \
|
|
18
|
+
--logo brands/growthub/assets/logo.png
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
In agent-only mode: skip PDF generation and produce the Markdown equivalent instead (GeoScoreSummary).
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Input Data Structure (geo_score_data.json)
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"report_meta": {
|
|
30
|
+
"client_name": "Growthub",
|
|
31
|
+
"client_slug": "growthub",
|
|
32
|
+
"target_url": "https://thegrowthub.com",
|
|
33
|
+
"audit_date": "2026-04-14",
|
|
34
|
+
"report_version": "1",
|
|
35
|
+
"prepared_by": "Antonio",
|
|
36
|
+
"execution_mode": "local-fork"
|
|
37
|
+
},
|
|
38
|
+
"geo_score": {
|
|
39
|
+
"composite": 68,
|
|
40
|
+
"grade": "C",
|
|
41
|
+
"previous_composite": null,
|
|
42
|
+
"score_change": null
|
|
43
|
+
},
|
|
44
|
+
"components": [
|
|
45
|
+
{
|
|
46
|
+
"name": "AI Citability & Visibility",
|
|
47
|
+
"weight": 0.25,
|
|
48
|
+
"raw_score": 58,
|
|
49
|
+
"weighted_score": 14.5,
|
|
50
|
+
"grade": "C",
|
|
51
|
+
"status": "weak",
|
|
52
|
+
"primary_issue": "No llms.txt — AI crawlers have no explicit content guidance. GPTBot not explicitly permitted."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "Brand Authority",
|
|
56
|
+
"weight": 0.20,
|
|
57
|
+
"raw_score": 66,
|
|
58
|
+
"weighted_score": 13.2,
|
|
59
|
+
"grade": "C",
|
|
60
|
+
"status": "adequate",
|
|
61
|
+
"primary_issue": "LinkedIn company page exists but has <200 followers. No Wikipedia presence. GitHub absent."
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "Content Quality & E-E-A-T",
|
|
65
|
+
"weight": 0.20,
|
|
66
|
+
"raw_score": 71,
|
|
67
|
+
"weighted_score": 14.2,
|
|
68
|
+
"grade": "B",
|
|
69
|
+
"status": "adequate",
|
|
70
|
+
"primary_issue": "Statistical density low (7.0 data points per 1,000 words). No published original research."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "Technical Foundations",
|
|
74
|
+
"weight": 0.15,
|
|
75
|
+
"raw_score": 84,
|
|
76
|
+
"weighted_score": 12.6,
|
|
77
|
+
"grade": "B",
|
|
78
|
+
"status": "strong",
|
|
79
|
+
"primary_issue": "Strong overall. Minor issue: Sitemap directive missing from robots.txt."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "Structured Data",
|
|
83
|
+
"weight": 0.10,
|
|
84
|
+
"raw_score": 42,
|
|
85
|
+
"weighted_score": 4.2,
|
|
86
|
+
"grade": "D",
|
|
87
|
+
"status": "weak",
|
|
88
|
+
"primary_issue": "Only Organization schema present. Missing FAQPage, Article, BreadcrumbList, WebSite."
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"name": "Platform Optimization",
|
|
92
|
+
"weight": 0.10,
|
|
93
|
+
"raw_score": 61,
|
|
94
|
+
"weighted_score": 6.1,
|
|
95
|
+
"grade": "C",
|
|
96
|
+
"status": "adequate",
|
|
97
|
+
"primary_issue": "Google AI Overviews readiness limited by missing FAQPage schema. Perplexity readiness moderate."
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"citability": {
|
|
101
|
+
"score": 71,
|
|
102
|
+
"grade": "B",
|
|
103
|
+
"components": {
|
|
104
|
+
"answer_block_quality": 82,
|
|
105
|
+
"self_containment": 74,
|
|
106
|
+
"structural_readability": 79,
|
|
107
|
+
"statistical_density": 47,
|
|
108
|
+
"uniqueness_signals": 52
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"crawler_access": {
|
|
112
|
+
"total_crawlers": 14,
|
|
113
|
+
"fully_allowed": 10,
|
|
114
|
+
"partially_blocked": 2,
|
|
115
|
+
"blocked": 0,
|
|
116
|
+
"not_mentioned": 2,
|
|
117
|
+
"llms_txt_present": false,
|
|
118
|
+
"llms_full_txt_present": false
|
|
119
|
+
},
|
|
120
|
+
"top_findings": [
|
|
121
|
+
{
|
|
122
|
+
"rank": 1,
|
|
123
|
+
"title": "No llms.txt file",
|
|
124
|
+
"description": "thegrowthub.com does not have an llms.txt file. AI crawlers are using robots.txt rules only, with no explicit content guidance. This is the highest-impact single fix available.",
|
|
125
|
+
"component": "AI Citability & Visibility",
|
|
126
|
+
"priority": "P0",
|
|
127
|
+
"expected_score_gain": 8,
|
|
128
|
+
"effort": "Low"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"rank": 2,
|
|
132
|
+
"title": "Missing FAQPage and Article schema",
|
|
133
|
+
"description": "Only Organization schema is present. FAQPage schema would directly feed Google AI Overviews. Article schema is required for blog post citation by AI systems.",
|
|
134
|
+
"component": "Structured Data",
|
|
135
|
+
"priority": "P0",
|
|
136
|
+
"expected_score_gain": 12,
|
|
137
|
+
"effort": "Medium"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"rank": 3,
|
|
141
|
+
"title": "Low statistical density on homepage",
|
|
142
|
+
"description": "Homepage averages 7.0 data points per 1,000 words (target: 8–15). Adding quantified client results and performance benchmarks would improve citability score.",
|
|
143
|
+
"component": "Content Quality & E-E-A-T",
|
|
144
|
+
"priority": "P1",
|
|
145
|
+
"expected_score_gain": 6,
|
|
146
|
+
"effort": "Medium"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"rank": 4,
|
|
150
|
+
"title": "11 paragraph openers with unresolved pronouns",
|
|
151
|
+
"description": "Paragraphs beginning with 'It,' 'This,' or 'They' without a prior noun anchor reduce self-containment score. Quick rewrite task.",
|
|
152
|
+
"component": "Content Quality & E-E-A-T",
|
|
153
|
+
"priority": "P1",
|
|
154
|
+
"expected_score_gain": 4,
|
|
155
|
+
"effort": "Low"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"rank": 5,
|
|
159
|
+
"title": "No Wikipedia or GitHub presence",
|
|
160
|
+
"description": "Brand authority is limited by absence of Wikipedia article and GitHub organization. These are high-authority signals for AI brand knowledge graphs.",
|
|
161
|
+
"component": "Brand Authority",
|
|
162
|
+
"priority": "P2",
|
|
163
|
+
"expected_score_gain": 5,
|
|
164
|
+
"effort": "High"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"remediation_summary": {
|
|
168
|
+
"score_before": 68,
|
|
169
|
+
"score_after_projected": 83,
|
|
170
|
+
"grade_before": "C",
|
|
171
|
+
"grade_after_projected": "B",
|
|
172
|
+
"sprint_weeks": 4,
|
|
173
|
+
"rescore_date": "2026-05-14"
|
|
174
|
+
},
|
|
175
|
+
"pdf_config": {
|
|
176
|
+
"template": "branded-audit",
|
|
177
|
+
"color_primary": "#1A1A2E",
|
|
178
|
+
"color_accent": "#E94560",
|
|
179
|
+
"logo_path": "brands/growthub/assets/logo.png",
|
|
180
|
+
"include_charts": true,
|
|
181
|
+
"include_roadmap": true,
|
|
182
|
+
"include_code_snippets": false,
|
|
183
|
+
"page_size": "Letter"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## PDF Sections Generated
|
|
191
|
+
|
|
192
|
+
The `generate_pdf_report.py` script produces the following sections in the output PDF:
|
|
193
|
+
|
|
194
|
+
| Section | Pages | Content |
|
|
195
|
+
|---|---|---|
|
|
196
|
+
| Cover page | 1 | Client logo, GEO Score gauge, grade, date |
|
|
197
|
+
| Executive summary | 1 | 3-bullet summary, score vs. benchmark |
|
|
198
|
+
| Component breakdown | 2 | Visual bar chart for 6 components |
|
|
199
|
+
| Citability analysis | 1 | 5-metric breakdown with letter grade |
|
|
200
|
+
| Crawler access matrix | 1 | 14-crawler table with color-coded status |
|
|
201
|
+
| Top 5 findings | 2 | Ranked findings with impact and effort |
|
|
202
|
+
| 4-week roadmap | 1 | Sprint table with actions and owners |
|
|
203
|
+
| Back cover | 1 | Growthub contact, next steps |
|
|
204
|
+
|
|
205
|
+
**Total pages:** 10
|
|
206
|
+
|
|
207
|
+
**Output file:** `GrowthHub_GeoScoreReport_v1_20260414.pdf`
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Client Proposal — Sample (UrbanCycle.com)
|
|
2
|
+
|
|
3
|
+
> Example: `examples/prospect-proposal-sample.md`
|
|
4
|
+
> This is a filled sample proposal for a fictitious e-commerce client, UrbanCycle.com.
|
|
5
|
+
> Use this as a reference for what a completed ClientProposal looks like in production.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Prospect
|
|
10
|
+
|
|
11
|
+
| Field | Value |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Company | UrbanCycle Co. |
|
|
14
|
+
| Website | https://urbancycle.com |
|
|
15
|
+
| Industry | E-commerce — Urban Mobility / Electric Bikes |
|
|
16
|
+
| Contact | Sarah Chen, Head of Marketing |
|
|
17
|
+
| Proposal Date | 2026-04-14 |
|
|
18
|
+
| Prepared By | Antonio |
|
|
19
|
+
| Proposal Valid Until | 2026-05-14 |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## GEO Audit Summary
|
|
24
|
+
|
|
25
|
+
We ran a preliminary GEO (Generative Engine Optimization) scan on `urbancycle.com`. Here is what we found at a glance:
|
|
26
|
+
|
|
27
|
+
| Metric | Score | Grade | Benchmark Average |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| Overall GEO Score | 44 / 100 | D | 58 / 100 |
|
|
30
|
+
| AI Citability | 38 / 100 | F | 54 / 100 |
|
|
31
|
+
| Crawler Access | 6 / 14 crawlers | | 9 / 14 |
|
|
32
|
+
| Schema Coverage | 1 type found (WebSite only) | | 3 types |
|
|
33
|
+
| llms.txt Present | No | | 22% of sites |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Why GEO Matters Now
|
|
38
|
+
|
|
39
|
+
AI search is changing where e-commerce traffic comes from — and urban mobility is one of the fastest-growing query categories in AI search.
|
|
40
|
+
|
|
41
|
+
- **"Best electric bike for commuting"** now returns an AI-generated answer in Google AI Overviews for 89% of US searchers (Q1 2026) — bypassing traditional organic results entirely.
|
|
42
|
+
- **ChatGPT Shopping** (launched Q4 2025) now surfaces product recommendations directly in chat — and it cites pages, not ads.
|
|
43
|
+
- **Perplexity AI** drove 41% more e-commerce referral traffic to its cited sources in Q1 2026 vs. Q3 2025. Sites not optimized for citability received zero of this traffic.
|
|
44
|
+
- Sites with a GEO Score above 75 receive **5.27× more AI-referred traffic** than sites scoring below 55 — a 527% gap that compounds monthly as AI search adoption grows.
|
|
45
|
+
|
|
46
|
+
UrbanCycle is currently a D-grade site for AI search visibility. Competitors like ElectrifyBikes.com (GEO Score: 79) and UrbanVolt.co (GEO Score: 71) are already capturing the AI-referred traffic that UrbanCycle is leaving on the table.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Current Visibility Gap
|
|
51
|
+
|
|
52
|
+
Based on our preliminary scan of `urbancycle.com`:
|
|
53
|
+
|
|
54
|
+
**What AI systems can access:**
|
|
55
|
+
- 6 of 14 AI crawlers have explicit access — GPTBot (ChatGPT), ClaudeBot (Anthropic), PerplexityBot, and Google-Extended are **blocked** by a wildcard Disallow rule in robots.txt that was likely added to block scraper bots but inadvertently blocks AI systems as well.
|
|
56
|
+
|
|
57
|
+
**What AI systems can cite:**
|
|
58
|
+
- Citability score of 38/100 (F grade) — product pages use heavy JavaScript rendering that Playwright confirms is not crawler-readable. Page descriptions are thin (avg. 47 words per product page) with high pronoun density. No answer blocks found.
|
|
59
|
+
|
|
60
|
+
**Structured data gaps:**
|
|
61
|
+
- Only `WebSite` schema detected. No `Product`, `BreadcrumbList`, `FAQPage`, or `Organization` schema — meaning Google AI Overviews and ChatGPT Shopping cannot surface UrbanCycle product data in structured format.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## What We Found — 3 Critical Issues
|
|
66
|
+
|
|
67
|
+
### Issue 1: GPTBot and Major AI Crawlers Are Blocked
|
|
68
|
+
|
|
69
|
+
A wildcard rule in `robots.txt` (`User-agent: * Disallow: /products/`) prevents GPTBot, ClaudeBot, PerplexityBot, and Google-Extended from accessing product pages — the most valuable content on the site for AI citation.
|
|
70
|
+
|
|
71
|
+
**Impact:** ChatGPT, Claude, and Perplexity cannot see UrbanCycle products. When a user asks "what's the best e-bike under $2,000?", UrbanCycle will never appear — even if the products are objectively competitive.
|
|
72
|
+
|
|
73
|
+
### Issue 2: Product Pages Are Not AI-Citable
|
|
74
|
+
|
|
75
|
+
Product page copy averages 47 words with high pronoun density ("It features," "This model includes," "They are designed for"). There are no answer blocks — no self-contained paragraphs that AI systems can quote as authoritative product descriptions.
|
|
76
|
+
|
|
77
|
+
**Impact:** Even when AI crawlers can access the pages, they cannot extract clean, quotable product information. The AI system skips to a competitor whose product pages contain specific, data-rich descriptions ("The UrbanVolt S3 delivers 65Nm of torque and a 55-mile range on a single charge").
|
|
78
|
+
|
|
79
|
+
### Issue 3: No Product Schema — ChatGPT Shopping Cannot Surface Products
|
|
80
|
+
|
|
81
|
+
The site uses zero `Product` schema markup. ChatGPT Shopping, Google AI Overviews for commerce, and Perplexity's product finder all require structured `Product` schema (name, price, availability, description, image, brand, rating) to include a product in AI-generated shopping results.
|
|
82
|
+
|
|
83
|
+
**Impact:** UrbanCycle is invisible to every AI-powered shopping surface — a growing channel that drove $2.1B in AI-attributed e-commerce revenue in Q1 2026 (Similarweb AI Commerce Report, March 2026).
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Recommended Engagement
|
|
88
|
+
|
|
89
|
+
### Option A — Quick GEO Audit
|
|
90
|
+
|
|
91
|
+
**Best for:** Validating the scope of the problem before committing to a full engagement.
|
|
92
|
+
|
|
93
|
+
| Deliverable | Details |
|
|
94
|
+
|---|---|
|
|
95
|
+
| GEO Score Snapshot | Composite score with all 6 components |
|
|
96
|
+
| Crawler Unblock Plan | Exact robots.txt edits needed, ready to implement |
|
|
97
|
+
| Top 3 Critical Gaps | Product schema, citability, llms.txt |
|
|
98
|
+
| Quick Wins Checklist | Fixes executable in under 2 hours by your dev team |
|
|
99
|
+
| Delivery Format | Markdown report |
|
|
100
|
+
| Turnaround | 48 hours |
|
|
101
|
+
|
|
102
|
+
**Investment: $1,800**
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### Option B — Full GEO + SEO Audit
|
|
107
|
+
|
|
108
|
+
**Best for:** Teams ready to act with a complete, implementation-ready remediation plan.
|
|
109
|
+
|
|
110
|
+
| Deliverable | Details |
|
|
111
|
+
|---|---|
|
|
112
|
+
| Full GEO Score Report | All 6 components, all 14 crawlers checked |
|
|
113
|
+
| Citability Analysis | Page-by-page breakdown for top 10 product pages |
|
|
114
|
+
| Crawler Access Report | Full robots.txt review and rewrite recommendation |
|
|
115
|
+
| Product Schema Package | Code-ready JSON-LD for top 20 products |
|
|
116
|
+
| llms.txt + llms-full.txt | Files ready to deploy at domain root |
|
|
117
|
+
| Technical Foundations | Server headers, Core Web Vitals, HTTPS status |
|
|
118
|
+
| Remediation Roadmap | 4-week sprint with owner assignments |
|
|
119
|
+
| PDF Report | Branded deliverable for stakeholder presentation |
|
|
120
|
+
| Turnaround | 7 business days |
|
|
121
|
+
|
|
122
|
+
**Investment: $3,500**
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### Option C — Monthly GEO Monitoring + Remediation Retainer
|
|
127
|
+
|
|
128
|
+
**Best for:** E-commerce teams launching new products regularly who need continuous AI search visibility management.
|
|
129
|
+
|
|
130
|
+
| Included Monthly | Details |
|
|
131
|
+
|---|---|
|
|
132
|
+
| GEO Rescore | Full audit run each month — track score trend |
|
|
133
|
+
| Product Page Citability Reviews | Up to 10 product pages reviewed and improved per month |
|
|
134
|
+
| Schema Maintenance | New product schema as SKUs are added |
|
|
135
|
+
| Crawler Access Monitoring | Weekly automated check — alerts on blocks |
|
|
136
|
+
| Brand Authority Tasks | Platform seeding, mention monitoring (Reddit, YouTube) |
|
|
137
|
+
| Monthly Report | Score trend, wins, next month plan |
|
|
138
|
+
| Slack Access | Async support Mon–Fri |
|
|
139
|
+
|
|
140
|
+
**Investment: $2,800 / month**
|
|
141
|
+
**Minimum term: 3 months**
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## ROI Projection
|
|
146
|
+
|
|
147
|
+
Based on UrbanCycle's current D-grade GEO Score and the identified gaps, completing the Full Audit remediation roadmap is projected to produce:
|
|
148
|
+
|
|
149
|
+
| Metric | Current State | After Remediation | Change |
|
|
150
|
+
|---|---|---|---|
|
|
151
|
+
| GEO Score | 44 / 100 (D) | 76 / 100 (B) | +32 points |
|
|
152
|
+
| AI-referred traffic | ~0.3% of total | ~2.1% of total | +600% |
|
|
153
|
+
| Product pages citable by AI | ~0 of top pages | ~18 of top 20 pages | +18 pages |
|
|
154
|
+
| AI crawlers with full access | 6 / 14 | 13 / 14 | +7 crawlers |
|
|
155
|
+
| ChatGPT Shopping visibility | None | Active (Product schema live) | New channel |
|
|
156
|
+
|
|
157
|
+
**Conservative AI traffic uplift estimate:** If UrbanCycle currently receives 40,000 monthly visitors, moving from 0.3% to 2.1% AI-referred traffic = **+720 additional monthly visitors** from AI search alone — at $0 ad spend. At a 2.8% e-commerce conversion rate and an average order value of $1,400, that is **$28,224 in incremental monthly revenue potential** (rough estimate, results depend on implementation quality and product competitiveness).
|
|
158
|
+
|
|
159
|
+
> Projection grounded in geo-seo-claude audit data and Similarweb AI Commerce Report Q1 2026. Actual results vary by site, category, and implementation speed.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Next Steps
|
|
164
|
+
|
|
165
|
+
1. **Review and sign** the proposal by 2026-05-14
|
|
166
|
+
2. **Kickoff call** (30 min) — Sarah + Antonio confirm scope, target pages, and delivery format
|
|
167
|
+
3. **Audit begins** — operator runs `/geo audit https://urbancycle.com` with all secondary commands
|
|
168
|
+
4. **Week 1 delivery** — Crawler Access Report and Quick Wins delivered first for immediate action
|
|
169
|
+
5. **Full delivery** — Complete audit package delivered within 7 business days
|
|
170
|
+
|
|
171
|
+
To proceed, reply to this proposal or email antonio@thegrowthub.com.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Guarantee / Risk Reversal
|
|
176
|
+
|
|
177
|
+
If we complete the Full GEO Audit and your development team implements all P0 and P1 remediation items within 30 days without seeing measurable improvement in AI crawler access (verifiable via `/geo crawlers` rescore), we will provide a second full audit at no charge.
|
|
178
|
+
|
|
179
|
+
We do not produce generic SEO advice. Every finding is backed by data from your actual pages, your robots.txt, and your live site structure — verified by geo-seo-claude running against the real URL.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
*Prepared by Antonio · Growthub · 2026-04-14*
|
|
184
|
+
*geo-seo-claude audit run: 2026-04-14 14:03 UTC · Execution mode: local-fork · GEO Score: 44/100 (D)*
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Growthub Meta — growthub-geo-seo-v1
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Kit Identity
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Kit ID | `growthub-geo-seo-v1` |
|
|
10
|
+
| Version | `1.0.0` |
|
|
11
|
+
| Schema Version | `2` |
|
|
12
|
+
| Type | `worker` |
|
|
13
|
+
| Family | `studio` |
|
|
14
|
+
| Execution Mode | `export` |
|
|
15
|
+
| Activation Modes | `["export"]` |
|
|
16
|
+
| Visibility | `public-open-source` |
|
|
17
|
+
| Source Repo | `growthub-local` |
|
|
18
|
+
| Frozen At | `2026-04-14T00:00:00.000Z` |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## What This Kit Does
|
|
23
|
+
|
|
24
|
+
The Growthub GEO SEO Studio is a worker kit that wraps the `geo-seo-claude` open-source tool (https://github.com/zubair-trabzada/geo-seo-claude) to produce AI search visibility audits, citability scores, and remediation roadmaps for websites.
|
|
25
|
+
|
|
26
|
+
The kit provides a self-contained local execution environment. An operator exports the kit, points Claude Code's Working Directory at the kit root, and the `geo-seo-operator` worker handles the complete 10-step audit workflow.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Folder Structure
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
growthub-geo-seo-v1/
|
|
34
|
+
kit.json ← Kit manifest (schemaVersion: 2)
|
|
35
|
+
QUICKSTART.md ← Setup guide
|
|
36
|
+
.env.example ← Environment template
|
|
37
|
+
skills.md ← Master methodology doc (read at every session)
|
|
38
|
+
output-standards.md ← Output naming, structure, quality bar
|
|
39
|
+
runtime-assumptions.md ← Frozen upstream assumptions
|
|
40
|
+
validation-checklist.md ← Pre-session + kit validation checklists
|
|
41
|
+
bundles/
|
|
42
|
+
growthub-geo-seo-v1.json ← Bundle manifest
|
|
43
|
+
workers/
|
|
44
|
+
geo-seo-operator/
|
|
45
|
+
CLAUDE.md ← Agent operating instructions (entrypoint)
|
|
46
|
+
brands/
|
|
47
|
+
_template/
|
|
48
|
+
brand-kit.md ← Blank client brand kit template
|
|
49
|
+
growthub/
|
|
50
|
+
brand-kit.md ← Growthub internal reference example
|
|
51
|
+
NEW-CLIENT.md ← Instructions for adding new clients
|
|
52
|
+
setup/
|
|
53
|
+
clone-fork.sh ← Clones geo-seo-claude fork
|
|
54
|
+
verify-env.mjs ← Verifies fork, API key, env config
|
|
55
|
+
check-deps.sh ← Verifies Python, Playwright, git, node
|
|
56
|
+
output/
|
|
57
|
+
README.md ← Output directory structure and naming
|
|
58
|
+
templates/ ← 11 production-quality audit templates
|
|
59
|
+
geo-audit-brief.md
|
|
60
|
+
citability-analysis.md
|
|
61
|
+
crawler-access-report.md
|
|
62
|
+
brand-visibility-report.md
|
|
63
|
+
geo-score-summary.md
|
|
64
|
+
content-analysis.md
|
|
65
|
+
schema-validation.md
|
|
66
|
+
technical-foundations.md
|
|
67
|
+
llmstxt-plan.md
|
|
68
|
+
remediation-roadmap.md
|
|
69
|
+
client-proposal.md
|
|
70
|
+
examples/ ← 4 filled samples for reference
|
|
71
|
+
geo-audit-sample.md
|
|
72
|
+
citability-sample.md
|
|
73
|
+
pdf-report-sample.md
|
|
74
|
+
prospect-proposal-sample.md
|
|
75
|
+
docs/ ← 4 technical reference documents
|
|
76
|
+
geo-seo-fork-integration.md
|
|
77
|
+
subagent-dispatch.md
|
|
78
|
+
scoring-methodology.md
|
|
79
|
+
pdf-report-layer.md
|
|
80
|
+
growthub-meta/
|
|
81
|
+
README.md ← This file
|
|
82
|
+
kit-standard.md ← Kit rules and required-files contract
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Activation
|
|
88
|
+
|
|
89
|
+
This kit is activated in `export` mode:
|
|
90
|
+
|
|
91
|
+
1. CLI exports the kit to a local folder
|
|
92
|
+
2. User points Claude Code's Working Directory at the exported folder root
|
|
93
|
+
3. `workers/geo-seo-operator/CLAUDE.md` is the agent entrypoint
|
|
94
|
+
|
|
95
|
+
No server-side activation is required. The kit is fully self-contained.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Supported Output Categories
|
|
100
|
+
|
|
101
|
+
| Category | Templates | Examples |
|
|
102
|
+
|---|---|---|
|
|
103
|
+
| GEO Audit Briefs | `templates/geo-audit-brief.md` | `examples/geo-audit-sample.md` |
|
|
104
|
+
| Citability Analysis | `templates/citability-analysis.md` | `examples/citability-sample.md` |
|
|
105
|
+
| Crawler Access Reports | `templates/crawler-access-report.md` | — |
|
|
106
|
+
| Brand Visibility Reports | `templates/brand-visibility-report.md` | — |
|
|
107
|
+
| GEO Score Summaries | `templates/geo-score-summary.md` | — |
|
|
108
|
+
| Content Analyses | `templates/content-analysis.md` | — |
|
|
109
|
+
| Schema Validation Reports | `templates/schema-validation.md` | — |
|
|
110
|
+
| Technical Foundations Reports | `templates/technical-foundations.md` | — |
|
|
111
|
+
| llms.txt Plans | `templates/llmstxt-plan.md` | — |
|
|
112
|
+
| Remediation Roadmaps | `templates/remediation-roadmap.md` | — |
|
|
113
|
+
| Client Proposals | `templates/client-proposal.md` | `examples/prospect-proposal-sample.md` |
|
|
114
|
+
| PDF Reports | (generated by `scripts/generate_pdf_report.py`) | `examples/pdf-report-sample.md` |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Related Kits
|
|
119
|
+
|
|
120
|
+
| Kit | Family | Purpose |
|
|
121
|
+
|---|---|---|
|
|
122
|
+
| `creative-strategist-v1` | workflow | Campaign strategy and creative briefs |
|
|
123
|
+
| `growthub-email-marketing-v1` | operator | Email marketing campaigns |
|
|
124
|
+
| `growthub-open-higgsfield-studio-v1` | studio | AI video generation via Open Higgsfield |
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Kit Standard — growthub-geo-seo-v1
|
|
2
|
+
|
|
3
|
+
**These rules govern the kit's structure, agent behavior, and output contract. All operators and maintainers must follow them.**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Required Files Contract
|
|
8
|
+
|
|
9
|
+
The following files must be present in every valid kit installation. Any missing file constitutes a broken kit.
|
|
10
|
+
|
|
11
|
+
| File | Purpose | Can Be Empty? |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `kit.json` | Kit manifest | No — must be valid JSON with schemaVersion: 2 |
|
|
14
|
+
| `QUICKSTART.md` | User-facing setup guide | No |
|
|
15
|
+
| `.env.example` | Environment template | No |
|
|
16
|
+
| `skills.md` | Master methodology doc | No — must contain all 10 steps |
|
|
17
|
+
| `output-standards.md` | Output rules | No |
|
|
18
|
+
| `runtime-assumptions.md` | Upstream assumptions | No |
|
|
19
|
+
| `validation-checklist.md` | Pre-session checklist | No |
|
|
20
|
+
| `workers/geo-seo-operator/CLAUDE.md` | Agent entrypoint | No |
|
|
21
|
+
| `brands/_template/brand-kit.md` | Blank brand kit template | No |
|
|
22
|
+
| `brands/growthub/brand-kit.md` | Example brand kit | No |
|
|
23
|
+
| `brands/NEW-CLIENT.md` | New client instructions | No |
|
|
24
|
+
| `setup/clone-fork.sh` | Fork installation script | No |
|
|
25
|
+
| `setup/verify-env.mjs` | Environment verification | No |
|
|
26
|
+
| `setup/check-deps.sh` | Dependency check | No |
|
|
27
|
+
| `output/README.md` | Output directory guide | No |
|
|
28
|
+
| All 11 template files | Audit output templates | No — each must have all sections |
|
|
29
|
+
| All 4 example files | Reference samples | No — must contain realistic filled data |
|
|
30
|
+
| All 4 doc files | Technical reference | No |
|
|
31
|
+
| `bundles/growthub-geo-seo-v1.json` | Bundle manifest | No |
|
|
32
|
+
| `growthub-meta/README.md` | Kit metadata | No |
|
|
33
|
+
| `growthub-meta/kit-standard.md` | This file | No |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Bundle Contract
|
|
38
|
+
|
|
39
|
+
| Requirement | Rule |
|
|
40
|
+
|---|---|
|
|
41
|
+
| Bundle ID | Must match kit ID: `growthub-geo-seo-v1` |
|
|
42
|
+
| Kit ID in bundle | Must be `growthub-geo-seo-v1` |
|
|
43
|
+
| Worker ID in bundle | Must be `geo-seo-operator` |
|
|
44
|
+
| Schema version | Must be `2` |
|
|
45
|
+
| `requiredFrozenAssets` | Must list all files in `kit.json` `frozenAssetPaths` |
|
|
46
|
+
| Export folder name | `growthub-agent-worker-kit-geo-seo-v1` |
|
|
47
|
+
| Export zip name | `growthub-agent-worker-kit-geo-seo-v1.zip` |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Agent Rules
|
|
52
|
+
|
|
53
|
+
### Workflow Order
|
|
54
|
+
The operator must follow the 10-step workflow in `workers/geo-seo-operator/CLAUDE.md` strictly. Steps must not be skipped or reordered. The environment gate (Step 0) must run before anything else.
|
|
55
|
+
|
|
56
|
+
### Fork Inspection
|
|
57
|
+
In local-fork mode, the operator must inspect the actual fork files before producing any audit plan or command selection. Assumptions cannot substitute for inspection. If the fork is unavailable, the session must be marked `agent-only` and every output file must note the execution mode.
|
|
58
|
+
|
|
59
|
+
### One Primary Command Path
|
|
60
|
+
Each audit session must select one primary `/geo` command. Mixed-mode outputs (e.g., simultaneously running `/geo audit` and `/geo quick`) are not permitted without explicit transition notes.
|
|
61
|
+
|
|
62
|
+
### Scoring Formula
|
|
63
|
+
The GEO Score must always use the exact formula defined in `docs/scoring-methodology.md`. Component weights must not be adjusted per-session. A different weighting scheme is not a valid substitution.
|
|
64
|
+
|
|
65
|
+
### Citability Algorithm
|
|
66
|
+
The citability score must apply all 5 metrics. Shortcutting to 2 or 3 metrics is not acceptable. If data for a metric is unavailable, use 50 as the neutral default and flag the metric as `data-gap`.
|
|
67
|
+
|
|
68
|
+
### No Secrets in Outputs
|
|
69
|
+
The operator must never include `ANTHROPIC_API_KEY`, `FLASK_SECRET_KEY`, or any other secret value in any output file. If a brand kit contains sensitive context in `crm_notes`, that section must not be included verbatim in client-facing outputs.
|
|
70
|
+
|
|
71
|
+
### Template-Bound Outputs
|
|
72
|
+
All output artifacts must use the templates in `templates/`. The operator must not invent new template schemas or change the required section structure.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Runtime Rules
|
|
77
|
+
|
|
78
|
+
### No Secrets in Kit
|
|
79
|
+
The kit itself must never contain a real API key, password, or credential. `.env.example` uses placeholder comments only. The `.env` file (which may contain real keys) must never be committed or included in kit exports.
|
|
80
|
+
|
|
81
|
+
### geo-seo-claude Is the Reference Substrate
|
|
82
|
+
The Python scripts, CLI skills, and subagent definitions in geo-seo-claude are the source of truth for tool behavior. The kit documents and wraps that behavior — it does not redefine it. When the upstream fork changes, `runtime-assumptions.md` must be updated.
|
|
83
|
+
|
|
84
|
+
### Three Execution Modes Are First-Class
|
|
85
|
+
`local-fork`, `agent-only`, and `hybrid` are all valid execution modes. The kit must never require local-fork mode for a session to produce valid outputs. Agent-only mode is always a valid fallback.
|
|
86
|
+
|
|
87
|
+
### Markdown Is the Primary Output Format
|
|
88
|
+
All audit artifacts are Markdown files. PDF output is generated on request from `geo_score_data.json` using `generate_pdf_report.py`. Markdown is the canonical record — PDFs are presentation layers.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Versioning Rules
|
|
93
|
+
|
|
94
|
+
| Scenario | Action |
|
|
95
|
+
|---|---|
|
|
96
|
+
| Bug fix in a template or doc file | Patch version bump: `1.0.0` → `1.0.1` |
|
|
97
|
+
| New template or command added | Minor version bump: `1.0.0` → `1.1.0` |
|
|
98
|
+
| Scoring formula changed or workflow restructured | Major version bump: `1.0.0` → `2.0.0` |
|
|
99
|
+
| Upstream fork adds new command | Minor bump + update `runtime-assumptions.md` |
|
|
100
|
+
| Upstream fork changes script API | Major bump if breaking + update `runtime-assumptions.md` |
|
|
101
|
+
|
|
102
|
+
Version bumps must update:
|
|
103
|
+
- `kit.json` → `kit.version`
|
|
104
|
+
- `bundles/growthub-geo-seo-v1.json` → `bundle.version`
|
|
105
|
+
- `growthub-meta/README.md` → Version field
|
|
106
|
+
- `runtime-assumptions.md` → Frozen date and changelog note
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## What Makes a Good Kit Contribution
|
|
111
|
+
|
|
112
|
+
- Every template section must be production-ready — no placeholder text except `<!-- fill in -->` markers
|
|
113
|
+
- Every example file must contain realistic, fictitious-but-plausible data — no Lorem ipsum
|
|
114
|
+
- Every doc file must be grounded in actual geo-seo-claude fork behavior at time of writing
|
|
115
|
+
- Scoring rules must be internally consistent — weights in `skills.md`, `docs/scoring-methodology.md`, and `docs/subagent-dispatch.md` must all match
|
|
116
|
+
- Setup scripts must be idempotent — running them twice must not break anything
|