Landing Page Generator
Generate landing pages using proven copywriting frameworks (PAS, AIDA, StoryBrand). One skill,
two modes: write conversion-focused marketing copy from a product brief, or transform an existing
project README into a scannable, visual landing page.
Two Modes
Pick the mode that matches the input and deliverable:
| Mode | Use when | Input | Output | Where |
|---|
| A — Landing copy | You need marketing copy for a sales/landing page | Product/service brief | Conversion-focused copy (hero → CTA) + A/B notes, in chat | This file, below |
| B — README landing page | You have an existing project README.md to make persuasive and scannable | Repo README.md + project files | Rewritten README.md (mermaid, tables, collapsed details) + README.backup.md | references/readme-mode.md |
If the user asks to "turn my README into a landing page", "make my GitHub page sell the project",
or similar, follow Mode B in references/readme-mode.md. Otherwise use Mode A below. When
unsure which applies, ask.
Anti-Slop Rules
AI-generated marketing copy has predictable tells that kill credibility. See references/anti-slop-rules.md for banned phrases and structural patterns to avoid.
Quick test: read each sentence and ask "does this give the reader information they didn't already have?" If not, cut it.
Default Quality Bar
In both modes, the final deliverable (Mode A copy and its structure; Mode B README layout) must be professional, production-ready, elegant, and premium, even when the user never asks. The brief or project voice decides the tone; this bar decides the finish:
- Professional: precise and credible; no hype
- Production-ready: ship-ready, every section complete; the only allowed gaps are labeled
[proof needed] (Mode A) or [placeholder] (Mode B) markers
- Elegant: concise, one consistent voice, clean scannable hierarchy
- Premium: confident restraint, specific claims, polished formatting
These are qualities of the output, never words to put in it: do not write "premium", "elegant", or "world-class" into the copy.
Prerequisites
Before writing, confirm the user supplied enough detail to make specific claims:
- Product/service name and target audience
- Problem solved and primary desired action
- Proof points, metrics, testimonials, or named differentiators
- Pricing/trial/guarantee details if a pricing section is requested
If proof is missing, write placeholders clearly labeled [proof needed]; never invent customers,
metrics, guarantees, scarcity, or compliance claims.
Repo Sync Before Edits (mandatory)
Mode B rewrites README.md inside the repo. Sync before that write to avoid clobbering remote work. If the working tree is not clean, stash first, sync, then restore:
branch="$(git rev-parse --abbrev-ref HEAD)"
dirty=0
if [ -n "$(git status --porcelain)" ]; then
git stash push -u -m "pre-sync"
dirty=1
fi
git fetch origin
git pull --rebase origin "$branch"
if [ "$dirty" -eq 1 ]; then
git stash pop
fi
If origin is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing. Skip this section for Mode A, which emits copy in chat and writes nothing.
Workflow (Mode A — Landing copy)
Mode B (README landing page) has its own self-contained workflow in references/readme-mode.md.
Step 1: Gather Product/Service Information
Collect before writing:
| Input | Purpose |
|---|
| Product/service name | Anchor all copy |
| Target audience | Tone, pain points, vocabulary |
| Problem solved | Core value prop |
| Competitive advantage | Differentiation |
| Desired visitor action | Primary CTA |
| Social proof | Testimonials, metrics, logos |
If any core input is missing—product/service name, target audience, problem solved, or primary
CTA—ask before proceeding. For missing proof, pricing, or guarantee details, proceed with [proof needed]
placeholders per Prerequisites and guardrails.
Step 2: Choose Copywriting Framework
| Framework | Best for | Structure |
|---|
| PAS | Pain-driven B2B, productivity tools | Problem → Agitate → Solution |
| AIDA | Consumer apps, broad audiences | Attention → Interest → Desire → Action |
| StoryBrand | Narrative brands, coaching, services | Hero → Guide → Plan → CTA → Success/Failure |
Tell the user which framework you picked. Let them override.
Step 3: Generate Landing Page Sections
Populate every section in the framework-specific template from references/section-templates.md
that matches the framework chosen in Step 2. Use that template's section names and order exactly—do not
substitute a generic Hero/Problem/Solution layout when another framework applies.
Content quality (all frameworks):
- Headlines: 10 words or fewer, value-led, specific to the audience
- Subheadlines: 1–2 sentences that expand the headline without repeating it
- Body copy: active voice, benefit-led; address pain points with concrete scenarios where the template calls for them
- Features: 3–5 items described as outcomes, not feature lists
- How It Works: 3–4 simple steps; icon concept + description per step; CTA at the end
- Social proof: quote + name + role + company, or
[proof needed] when proof is unavailable
- Pricing (if applicable): feature comparison, recommended plan callout, guarantee copy or
[proof needed]
- FAQ: 5–7 common objections with clear, confident answers
- CTAs: follow CTA Button Rules; place primary and secondary CTAs where the template specifies
- Final CTA: risk reversal (guarantee, trial); urgency or scarcity only when genuine; button text reinforces value
Step 4: Format Output
Use the template matching the chosen framework in references/section-templates.md (PAS, AIDA, or
StoryBrand). Keep large reusable structures in references to protect the agent's context budget; read
only the reference needed for the requested output. End with optimization notes: A/B test ideas and
conversion tips.
Step 5: Copywriting Best Practices
- Active voice, present tense
- Benefits over features
- Specific numbers and data where available
- Address objections directly
- Urgency without pressure tactics
- Short, scannable sentences
- "You" language (customer-focused)
- Multiple CTAs throughout the page
CTA Button Rules
- Start with an action verb
- Be specific about the outcome
- First person when appropriate ("Start My Free Trial")
- Genuine urgency ("Get Instant Access")
- Never generic ("Submit", "Click Here")
Example Triggers
- "Write landing page copy for a B2B SaaS tool"
- "Create sales page content using PAS framework"
- "Generate hero section copy for my product"
- "Write conversion-optimized CTAs"
- "Help me with landing page headlines"
Expected Output Example
Example input:
Generate a landing page for AcmeDesk, a helpdesk for solo founders. Audience: indie SaaS founders.
Primary CTA: Start free trial. Differentiator: setup in 10 minutes, shared inbox + AI drafts.
Expected output:
LANDING PAGE COPY
Product/Service: AcmeDesk
Framework: PAS
HERO SECTION
Headline: Answer Every Customer Without Hiring Support
Subheadline: AcmeDesk gives solo founders a shared inbox and AI draft replies that are ready in 10 minutes, not weeks.
CTA Button: "Start My Free Trial"
Trust Bar: [proof needed — add user count, testimonial, or response-time metric]
...
OPTIMIZATION NOTES
A/B Test Ideas: test speed-focused vs founder-control headlines.
Safety & Guardrails
- Confirm missing inputs before generating a full page; if the user wants speed, proceed with clearly
marked assumptions.
- Treat unsupported claims as an error: add
[proof needed] instead of fabricating metrics, logos,
testimonials, awards, guarantees, medical/legal/financial outcomes, or fake urgency.
- Validate every CTA against the CTA Button Rules before delivery.
- Warn when the requested copy depends on regulated claims, competitor comparisons, or scarcity that
requires legal or factual review.
Edge Cases
- If the user asks for only one section, generate that section and a short note on how it fits the page.
- If the product is vague, ask 2–4 targeted questions rather than writing generic copy.
- If the user requests HTML, design, wireframes, SEO strategy, or UX critique, explain that this skill
only generates landing-page copy and offer a copy-only structure.
- If social proof is unavailable, write a proof slot rather than a fake testimonial.
Final Report
End every run, stops included, with this compact text block. Status is COMPLETE (the deliverable is produced and every applicable check passes — Mode A: the full-page copy follows the chosen framework's template, or the requested single section plus its fit note is delivered; Mode B: README.md is rewritten, README.backup.md exists, and the Step 6 Self-Review Checklist passes), PARTIAL (a deliverable was produced but a check still fails), or BLOCKED (no deliverable: a required question went unanswered and the user ended the run, Mode B found no README.md and the user declined creating one, or Repo Sync stopped on a conflict). A question that awaits the user's answer does not end the run. Fill rules, PARTIAL and BLOCKED examples, and reader checks: references/final-report.md. Example:
Result: COMPLETE. Delivered full PAS landing copy for AcmeDesk (hero through final CTA) plus A/B test ideas.
Evidence: Framework PAS named and applied via references/section-templates.md; hero headline 8 words; every CTA starts with an action verb; two proof slots labeled [proof needed]; anti-slop check passed.
Uncertainty: Assumed a setup-time objection belongs in the FAQ; no competitor information was supplied.
Decision: No approval needed. Replace the two [proof needed] markers with real metrics before publishing.
Acceptance Criteria
Verify before delivering:
- Output follows the framework-specific template in
references/section-templates.md or a user-specified
subset.
- Chosen framework is named and consistently applied.
- Hero headline is 10 words or fewer, specific, and value-led.
- Every CTA starts with an action verb and states the outcome.
- Unsupported proof is labeled
[proof needed]; no fake claims are present.
- Copy passes
references/anti-slop-rules.md.
- Output meets the Default Quality Bar (professional, production-ready, elegant, premium) without the user asking.
- Final response includes A/B test ideas and conversion tips unless the user asked for a single section.
- The run closes with a Final Report:
Result: and its status first, then Evidence:, Uncertainty:, and Decision: lines; Evidence: cites only checks that ran.
- The Final Report passes the four reader checks in
references/final-report.md (result findable, facts and assumptions separated, claims traceable, next decision clear). Without a human reviewer's answer, human understanding is unconfirmed.
Step Completion Reports
After each major step, emit a compact status block — per-check √/× lines and a closing Result: PASS | FAIL | PARTIAL line. Mode A uses the format and per-step checks in references/step-reports.md; Mode B uses references/readme-step-reports.md.