/landing-gen
Generate landing page content from a project's PRD. Produces hero section, features, social proof, CTA, SEO meta tags, and A/B headline variants. If astro-static stack detected, can scaffold actual page files.
MCP Tools (use if available)
kb_search(query) — find related methodology (conversion, copywriting)
project_info(name) — get project stack and details
web_search(query) — competitor landing analysis
If MCP tools are not available, fall back to Glob + Grep + Read.
Steps
Parse project from $ARGUMENTS.
- Read PRD, README, or research.md for product info.
- If empty: ask via AskUserQuestion.
Detect stack:
- Check for
astro.config.* → astro-static (can scaffold page)
- Check for
next.config.* → Next.js (can scaffold route)
- Otherwise: generate content-only markdown
Extract landing inputs from PRD/README:
- Problem: 1 sentence pain statement
- Solution: 1 sentence product description
- ICP: Target user persona
- Features: Top 3-4 differentiating features with descriptions
- Competitors: From research.md (if exists) — for positioning
- Pricing: If available
Competitor landing analysis (optional, if MCP/WebSearch available):
- Search for top 3 competitor landing pages
- Note: headline patterns, CTA language, social proof types
- Identify positioning gaps
Forced reasoning — conversion strategy:
Before generating, write out:
- Primary conversion: What's the ONE action? (sign up / download / buy)
- Objections: Top 3 reasons someone wouldn't convert
- Trust signals: What overcomes each objection?
- Above the fold: Problem + Solution + CTA — nothing else
Generate landing content:
6a. Hero Section
- Headline: Problem-focused, benefit-driven (8-12 words)
- Subheadline: How the product solves it (15-25 words)
- CTA button: Action verb + outcome ("Start Free Trial", "Download Now")
- Visual: Describe what image/screenshot/demo should be shown
6b. A/B Headline Variants (5 options)
Generate 5 distinct headline approaches:
- Pain-focused: "Tired of {problem}?"
- Benefit-focused: "{Outcome} without {hassle}"
- Curiosity: "The {adjective} way to {action}"
- Social proof: "Join {N}+ {users} who {outcome}"
- Direct: "{Product}: {one-line value prop}"
6c. Features Section (3-4 features)
For each feature:
- Icon suggestion (emoji or icon name)
- Feature title (3-5 words)
- Feature description (1-2 sentences)
- Benefit framing (what user gains, not what product does)
6d. Social Proof Section
- Placeholder for testimonials (template with name, role, quote)
- Metrics placeholders ("X+ users", "Y% faster", "Z countries")
- Trust badges placeholder (App Store rating, awards, press)
6e. CTA Section
- Repeat headline (or variation)
- CTA button (same as hero)
- Risk reducer ("Free forever" / "No credit card" / "Cancel anytime")
6f. SEO Meta Tags
<title>{title — 50-60 chars}</title>
<meta name="description" content="{description — 150-160 chars}">
<meta property="og:title" content="{og title}">
<meta property="og:description" content="{og description}">
<meta property="og:image" content="{suggest image dimensions 1200x630}">
<meta property="og:type" content="website">
Write output:
If astro-static detected: scaffold page at src/pages/index.astro or new route.
Otherwise: write to docs/landing-content.md:
# Landing Page Content: {Project Name}
**Generated:** {YYYY-MM-DD}
**Primary CTA:** {action}
**Target ICP:** {persona}
## Hero
**Headline:** {headline}
**Subheadline:** {subheadline}
**CTA:** {button text}
**Visual:** {description}
## A/B Headlines
1. {variant 1}
2. {variant 2}
3. {variant 3}
4. {variant 4}
5. {variant 5}
## Features
{features with icons and descriptions}
## Social Proof
{templates and placeholders}
## Final CTA
{closing section}
## SEO Meta Tags
{html meta tags}
---
*Generated by /landing-gen. Fill in social proof, add visuals, then publish.*
Output summary — headline, CTA, and suggested next steps.
Notes
- Headline should be testable — run A/B with 2-3 variants
- "Above the fold" = hero only — don't overload
- Social proof is placeholder — fill with real data as it comes
- For fake-door tests: hero + CTA + email capture is enough (2-hour launch)
- Works with /seo-audit — generate content, then audit the deployed page
Common Issues
No PRD or product info found
Cause: Project lacks docs/prd.md or README with product description.
Fix: Run /validate to generate PRD first, or provide a README with problem/solution/features.
Headlines too generic
Cause: Weak problem statement or missing competitor differentiation.
Fix: Add research.md with competitive analysis. Specific pain points produce specific headlines.
Stack not detected for page scaffolding
Cause: No astro.config.* or next.config.* found.
Fix: Skill outputs content-only markdown by default. To get actual page files, ensure the project uses astro-static or nextjs-supabase stack.
1---2name: solo-landing-gen3description: Generate landing page content from PRD — hero section, features, A/B headline variants, CTA, and SEO meta tags. Use when user says "create landing page", "write landing copy", "hero section", "A/B headlines", or "landing content". Can scaffold actual pages for astro-static. Do NOT use for SEO auditing (use /seo-audit).4license: MIT5---6
7# /landing-gen
8
9Generate landing page content from a project's PRD. Produces hero section, features, social proof, CTA, SEO meta tags, and A/B headline variants. If astro-static stack detected, can scaffold actual page files.
10
11## MCP Tools (use if available)
12
13- `kb_search(query)` — find related methodology (conversion, copywriting)
14- `project_info(name)` — get project stack and details
15- `web_search(query)` — competitor landing analysis
16
17If MCP tools are not available, fall back to Glob + Grep + Read.
18
19## Steps
20
211. **Parse project** from `$ARGUMENTS`.
22 - Read PRD, README, or research.md for product info.
23 - If empty: ask via AskUserQuestion.
24
252. **Detect stack:**
26 - Check for `astro.config.*` → astro-static (can scaffold page)
27 - Check for `next.config.*` → Next.js (can scaffold route)
28 - Otherwise: generate content-only markdown
29
303. **Extract landing inputs** from PRD/README:
31 - **Problem:** 1 sentence pain statement
32 - **Solution:** 1 sentence product description
33 - **ICP:** Target user persona
34 - **Features:** Top 3-4 differentiating features with descriptions
35 - **Competitors:** From research.md (if exists) — for positioning
36 - **Pricing:** If available
37
384. **Competitor landing analysis** (optional, if MCP/WebSearch available):
39 - Search for top 3 competitor landing pages
40 - Note: headline patterns, CTA language, social proof types
41 - Identify positioning gaps
42
435. **Forced reasoning — conversion strategy:**
44 Before generating, write out:
45 - **Primary conversion:** What's the ONE action? (sign up / download / buy)
46 - **Objections:** Top 3 reasons someone wouldn't convert
47 - **Trust signals:** What overcomes each objection?
48 - **Above the fold:** Problem + Solution + CTA — nothing else
49
506. **Generate landing content:**
51
52 ### 6a. Hero Section
53 - **Headline:** Problem-focused, benefit-driven (8-12 words)
54 - **Subheadline:** How the product solves it (15-25 words)
55 - **CTA button:** Action verb + outcome ("Start Free Trial", "Download Now")
56 - **Visual:** Describe what image/screenshot/demo should be shown
57
58 ### 6b. A/B Headline Variants (5 options)
59 Generate 5 distinct headline approaches:
60 1. Pain-focused: "Tired of {problem}?"
61 2. Benefit-focused: "{Outcome} without {hassle}"
62 3. Curiosity: "The {adjective} way to {action}"
63 4. Social proof: "Join {N}+ {users} who {outcome}"
64 5. Direct: "{Product}: {one-line value prop}"
65
66 ### 6c. Features Section (3-4 features)
67 For each feature:
68 - Icon suggestion (emoji or icon name)
69 - Feature title (3-5 words)
70 - Feature description (1-2 sentences)
71 - Benefit framing (what user gains, not what product does)
72
73 ### 6d. Social Proof Section
74 - Placeholder for testimonials (template with name, role, quote)
75 - Metrics placeholders ("X+ users", "Y% faster", "Z countries")
76 - Trust badges placeholder (App Store rating, awards, press)
77
78 ### 6e. CTA Section
79 - Repeat headline (or variation)
80 - CTA button (same as hero)
81 - Risk reducer ("Free forever" / "No credit card" / "Cancel anytime")
82
83 ### 6f. SEO Meta Tags
84 ```html
85 <title>{title — 50-60 chars}</title>
86 <meta name="description" content="{description — 150-160 chars}">
87 <meta property="og:title" content="{og title}">
88 <meta property="og:description" content="{og description}">
89 <meta property="og:image" content="{suggest image dimensions 1200x630}">
90 <meta property="og:type" content="website">
91 ```
92
937. **Write output:**
94
95 **If astro-static detected:** scaffold page at `src/pages/index.astro` or new route.
96
97 **Otherwise:** write to `docs/landing-content.md`:
98
99 ```markdown
100 # Landing Page Content: {Project Name}
101
102 **Generated:** {YYYY-MM-DD}
103 **Primary CTA:** {action}
104 **Target ICP:** {persona}
105
106 ## Hero
107 **Headline:** {headline}
108 **Subheadline:** {subheadline}
109 **CTA:** {button text}
110 **Visual:** {description}
111
112 ## A/B Headlines
113 1. {variant 1}
114 2. {variant 2}
115 3. {variant 3}
116 4. {variant 4}
117 5. {variant 5}
118
119 ## Features
120 {features with icons and descriptions}
121
122 ## Social Proof
123 {templates and placeholders}
124
125 ## Final CTA
126 {closing section}
127
128 ## SEO Meta Tags
129 {html meta tags}
130
131 ---
132 *Generated by /landing-gen. Fill in social proof, add visuals, then publish.*
133 ```
134
1358. **Output summary** — headline, CTA, and suggested next steps.
136
137## Notes
138
139- Headline should be testable — run A/B with 2-3 variants
140- "Above the fold" = hero only — don't overload
141- Social proof is placeholder — fill with real data as it comes
142- For fake-door tests: hero + CTA + email capture is enough (2-hour launch)
143- Works with /seo-audit — generate content, then audit the deployed page
144
145## Common Issues
146
147### No PRD or product info found
148**Cause:** Project lacks `docs/prd.md` or README with product description.
149**Fix:** Run `/validate` to generate PRD first, or provide a README with problem/solution/features.
150
151### Headlines too generic
152**Cause:** Weak problem statement or missing competitor differentiation.
153**Fix:** Add `research.md` with competitive analysis. Specific pain points produce specific headlines.
154
155### Stack not detected for page scaffolding
156**Cause:** No `astro.config.*` or `next.config.*` found.
157**Fix:** Skill outputs content-only markdown by default. To get actual page files, ensure the project uses astro-static or nextjs-supabase stack.