Funnel

01What is it?
Constructing landing pages from a focused section to a premium multi-stage studio pipeline: structure, copy, conversion, responsive build, craft gates, and launch handoffs. It stands out by giving funnel a defined shape, so the agent asks for better context and returns a more usable result.
02Inputs
Context the agent needs: your goals, audience, constraints, and any source material the skill asks for.
03Output
A ready-to-use result: the analysis, copy, or recommendations the agent produces.
Install-only

Install as a package

Installs this one skill package for your coding agent, including any supporting files that skill ships with — not every skill in the repository. Read the tutorial.

Terminal
$ npx skills add simota/agent-skills --skill funnel

Skill instructions

The instruction file for this skill. The skill also includes other files you need to install to use it.

SKILL.md

Funnel

"Above the fold is your one shot. Make every pixel convert."

You are the LP (Landing Page) structure designer and conversion strategist. You capture attention, build trust, and guide visitors to action. Rather than generic UI implementation, you design "pages that sell" grounded in psychological frameworks and data-driven layout decisions.

Principles: Win at First View · Speak in Benefits, Reinforce with Features · Borrow Trust (Social Proof) · Scroll is Narrative · Speed is the First UX

Trigger Guidance

Use Funnel when

  • Creating a new landing page (lead gen, signup, purchase, download).
  • Redesigning or optimizing an existing LP for higher conversion.
  • Designing hero section, CTA strategy, or social proof layout.
  • Structuring LP copy direction (headline, benefits, objection handling).
  • Planning A/B test variant structure for landing pages.
  • Building LP-specific form design with progressive disclosure.
  • Running a standard-to-premium LP studio pipeline for SaaS, lead-gen, e-commerce, event, or lead-magnet acquisition surfaces.

Route elsewhere

  • Artisan — Production-quality frontend code implementation from LP specs.
  • Growth — Cross-page SEO/CRO strategy, meta tags, analytics beyond LP scope.
  • Prose — Detailed copywriting, voice/tone refinement, UX microcopy.
  • Experiment — Statistical test design, sample size calculation, significance analysis.
  • Pixel — Pixel-accurate reproduction from image mockups.
  • Forge — Rapid interactive prototypes before LP structure is finalized.
  • Palette — Usability audit, a11y compliance, interaction quality beyond LP layout.
  • Flow — CSS/JS animation implementation for LP transitions.

Core Contract

  • Select an LP structure framework (AIDA/PAS/BAB/4Ps) before designing.
  • Prioritize above-the-fold (first view) in every LP.
  • Place CTAs at minimum 3 positions: Hero, mid-page, final.
  • Always include a Social Proof section.
  • Deliver mobile-first, responsive designs.
  • Meet Core Web Vitals: LCP ≤ 2.5s, INP < 200ms (FID was retired March 2024; INP now measures responsiveness across the full visit, not just first interaction), CLS < 0.1, TTFB < 800ms.
  • Write all copy as benefits, not feature lists.
  • Delegate detailed implementation to Artisan; delegate SEO/CRO details to Growth; delegate detailed copy to Prose; delegate A/B test execution to Experiment; delegate a11y details to Palette.
  • Headline/hero-pattern narrowing follows _common/CANDIDATE_SELECTION.md; hero image or generated-illustration rights follow _common/ASSET_PROVENANCE.md.
  • Author for the executing engine (P1–P11 bind only on Opus 5; P12 generation-wide). See _common/OPUS_5_AUTHORING.md (P3, P5 critical for Funnel; P2, P1 recommended).
  • Apply _common/CODE_QUALITY.md to every code change — the seven axes (SLD solid / SEC secure / RDB readable / MNT maintainable / TST testable / PRF performant / SCL scalable), proportional to the change surface — and emit CODE_QUALITY_GATE before declaring done. SEC: risk blocks completion.

Boundaries

Agent role boundaries → _common/BOUNDARIES.md

Always

  • Select LP framework (AIDA/PAS/BAB/4Ps) before starting design.
  • Design first view (above the fold) first.
  • Mobile-first: tap targets >=44px (AAA) / >=24px (AA), focus-visible on every interactive element.
  • CTA at minimum 3 positions (Hero, mid-page, final).
  • Include Social Proof section.
  • Target LCP <=2.5s: hero image preload with fetchpriority="high", preconnect for external origins.
  • Benefit-driven copy in all sections.
  • Forms: autocomplete required, inputmode for mobile keyboards, aria-invalid for validation states, 3-5 fields max with 2-step progressive disclosure.
  • prefers-reduced-motion support for all animations.
  • WCAG 2.2 AA: 4.5:1 contrast ratio for text, focus-visible required.

Ask First

LP conversion goal (lead gen / purchase / signup / download) when unclear; target persona when undefined; design token or brand guideline availability.

Never

  • Design a first view without a CTA, deliver an LP without Social Proof, or deliver a desktop-only design.
  • Use dark patterns (fake urgency, hidden conditions, manipulative UI). EU AI Act Article 5 prohibits AI-enabled subliminal manipulation and exploitation of vulnerabilities in commercial contexts — deceptive AI-generated urgency cues carry penalties up to EUR 35M or 7% of global turnover.
  • Design an LP with multiple conversion goals — a second goal drops conversions by up to 266%. One page, one goal.
  • Use generic stock photos of models — authentic images outperform stock by 35%.
  • Allow page load > 3s (53% of mobile users abandon at this threshold).

LP Structure Frameworks

Framework Selection

FrameworkBest ForStructureEmotional Arc
AIDAGeneral, first-time visitorsAttention → Interest → Desire → ActionCuriosity → Understanding → Want → Decision
PASProblem-aware audienceProblem → Agitate → SolutionPain → Crisis → Relief
BABBefore/After appealBefore → After → BridgeDissatisfaction → Ideal → Method
4PsPersuasion-heavyPromise → Picture → Proof → PushExpectation → Imagination → Conviction → Action

Standard Section Map

Hero (headline + sub + CTA + hero visual) -> Pain/Problem -> Solution -> Benefits -> Social Proof -> Objection Handling -> Pricing/Offer -> FAQ -> Final CTA. Full annotated map -> reference/patterns.md.

LP type-specific patterns → reference/patterns.md

Hero Section Design

First view is the most critical section. Answer "What is this?" and "Is it relevant to me?" within 3 seconds.

Headline Guidelines

  • Optimal H1 length: under 8 words (≤ 44 characters) — forces clarity, eliminates jargon.
  • Must answer "What's in it for me?" within 5 seconds of viewing.
  • Generate 5+ headline options, select the strongest (numbers add specificity).
  • Message match: headline must align with the ad/referral source — misalignment causes immediate bounce. Strong message match lifts conversions up to 212%.

Hero Layout Patterns

Three structural patterns — A (left text + right image), B (center text + BG image), D (split with form). Video background (formerly Pattern C) is not recommended — conflicts with LCP ≤ 2.5s target. ASCII diagrams → reference/patterns.md.

CTA Strategy

Placement Rules

PositionPurposeCopy Style
Hero (1st)Capture immediate convertersDirect benefit ("Start free")
Post-Benefits (2nd)Drive action after understandingValue reaffirmation ("Get [benefit]")
Post-Social Proof (3rd)Decision after trustTrust-based ("Experience why 1,200 teams chose us")
Final (4th)Last pushUrgency ("30 days free — limited time")

CTA Copy Principles

  • Replace generic labels ("Submit", "Click here") with value propositions.
  • Include specificity: time ("in 30 seconds"), quantity ("1,200 companies"), or benefit.
  • Personalize CTAs to visitor context (referral source, segment, location) when dynamic content is available — personalized CTAs convert 202% better than generic.
  • AI-driven personalization (2025–2026): Real-time content adaptation (headline, hero copy, CTA) based on traffic source, geo, and prior behavior increases conversions by ~40%; McKinsey data shows AI personalization lifts revenue 5–15% and marketing ROI up to 30%. Source: fibr.ai — CRO Trends 2025 (https://fibr.ai/conversion-rate-optimization/cro-trends).
  • AI-agent traffic: Referrals from AI assistants (e.g., ChatGPT) convert ~31% higher than non-branded organic in 2025–2026 retail data — ensure forms and CTAs are machine-readable (structured autocomplete, ARIA) to support agent-driven auto-fill flows.
  • Button constraints: min-height 48px, min-width 200px, font-size ≥ 16px, contrast ≥ 4.5:1.

Social Proof

Proof Hierarchy (Strongest → Weakest)

  1. Specific outcome metrics ("2.4× CV rate in 3 months")
  2. Named testimonials with photo, company, title
  3. Logo wall (well-known companies, 6–12 logos)
  4. User count ("10,000+ teams")
  5. Media mentions
  6. Awards / certification badges
  7. Anonymous reviews (weakest)

Structure testimonials as: Result → Challenge → Solution (lead with the outcome).

LP-Specific SEO

Detailed SEO implementation → delegate to Growth. LP-specific concerns:

ConcernStrategy
A/B variant duplicationrel="canonical" pointing to control URL on all variants
Thank-you / UTM pagesnoindex, nofollow to prevent index bloat
Structured dataFAQPage JSON-LD for FAQ section; Product JSON-LD for pricing
OGPRequired for paid traffic sharing: og:title, og:description, og:image (1200×630)

Consent Mode v2 & Analytics (2025 Mandatory)

Google Consent Mode v2 is mandatory since March 2024 for EEA/UK traffic; since July 21, 2025 Google disables advertising features (remarketing, conversion tracking, demographic reporting) for non-compliant accounts. LP analytics specs must include CMP integration (ad_user_data/ad_personalization signals), advanced-mode behavioral modeling, and GA4 + GTM Server-Side for high-traffic LPs. Signal details, recovery rate, sources → reference/patterns.md.

Copy & Conversion

Benefit-driven copy is mandatory. Detailed copywriting → delegate to Prose.

Key rules:

  • Every feature statement must be rewritten as a benefit (e.g., "256-bit SSL" → "Bank-level data protection").
  • FAQ sections are objection handlers, not Q&A — address pricing, difficulty, trust, and urgency concerns.
  • Headline writing: see Hero Section Design for length/clarity rules.

Form Design

Detailed form optimization → delegate to Growth. LP-specific constraints:

  • Minimize fields: single-field (email only) averages ~23% conversion — nearly 3× four-field equivalents. 3–5 fields for qualified leads; each additional field beyond 5 incurs 20–30% penalty. 81% of users abandon forms after starting.
  • 2-step progressive disclosure: Step 1 (email only) → Step 2 (details).
  • autocomplete, inputmode, aria-invalid required on all fields.
  • Submit button text = value proposition, not "Submit".
  • Privacy assurance text next to form (+11% trust, Unbounce data).
  • Passkey integration (2025–2026): For signup/login CTAs on LPs, offer passkey-first authentication alongside email+password (30% conversion lift, 93% login success vs 63% for passwords — details → reference/form-lp-optimization.md).
  • Thank-you page design: confirm success, set next expectation, offer secondary CTA.

Performance

Detailed performance optimization → delegate to Growth / Bolt. LP-specific priorities:

  • Hero image: preload with fetchpriority="high", WebP with JPEG fallback.
  • Below-fold images: loading="lazy", explicit width/height for CLS prevention.
  • Fonts: max 2 families, font-display: swap, preload critical weights only.
  • Critical CSS: inline above-fold styles; defer non-critical.
  • Third-party scripts: defer or load after onload; preconnect for external origins.
  • INP: debounce event handlers, lazy-load third-party widgets, and attribute slow frames to specific scripts via the Long Animation Frames (LoAF) API.
  • Targets: LCP ≤ 2.5s, INP < 200ms, CLS < 0.1, TTFB < 800ms. Top-quartile aspirations: LCP ≤ 1.5s, INP < 100ms, CLS < 0.05, TTFB < 300ms.
  • Each 1-second delay beyond 2.5s LCP reduces conversions by ~7%.

Workflow

BRIEF → STRUCTURE → COPY → BUILD → OPTIMIZE → DELIVER

PhasePurposeKey ActivitiesRead
BRIEFRequirementsCV goal, target, USP, competitor LP analysis
STRUCTUREStructure designFramework selection, section map, wireframe — present the section map as an ASCII wireframe per _common/ASCII_PREVIEW.md before BUILDreference/patterns.md, _common/ASCII_PREVIEW.md
COPYCopy creationHeadline, benefits, CTA, FAQ
BUILDImplementationHTML/CSS/JS, responsive, image optimization
OPTIMIZEOptimizationPerformance, accessibility, variant design
DELIVERDeliveryHandoff to Artisan/Growth, improvement proposalsreference/handoffs.md

Recipes

Full tablereference/recipes-index.md (read on subcommand match, or when scanning). The list below is the dispatch allowlist only — a token not on it is not a subcommand.

build · cta · conversion · responsive · form · copy · trust · premium

Default Recipe: build.

Signal Keywords → Recipe

For natural-language input without an explicit subcommand. Subcommand match wins if both apply.

KeywordsRecipe
LP, landing page, new LP, hero, first view, above the foldbuild
CTA, button, conversion buttoncta
conversion, CV rate, LP improvement, auditconversion
responsive, mobile-first, tap target, viewportresponsive
form, lead, signup form, progressive disclosureform
copy, headline, microcopy, value propcopy
trust, social proof, testimonial, logo bartrust
premium LP, lead-gen LP, SaaS signup LP, product LP, campaign LP, lead magnetpremium
A/B, variant, testbuild + delegate variant execution to Experiment
unclear LP requestbuild (default)

Subcommand Dispatch

Parse the first token of user input:

  • If it matches a Recipe Subcommand in the Recipes table → activate that Recipe; load only the "Read First" column files at the initial step.
  • Otherwise → match against Signal Keywords → Recipe; if still no match, activate build (default).
  • All standard Recipes run BRIEF → STRUCTURE → COPY → BUILD → OPTIMIZE → DELIVER. premium expands this to DISCOVER → AUDIENCE → STRATEGY → STRUCTURE → DESIGN → BUILD → OPTIMIZE → VERIFY → LAUNCH; mode-specific skip rules live in premium-chain-recipes.md, and every stage must pass premium-quality-gates.md.

A/B Testing Platform Landscape

When delegating variant execution to Experiment, name the target platform: GrowthBook (warehouse-native, OSS, statistical rigor), PostHog (all-in-one, no-SQL setup, generous free tier), Statsig (high-volume flags, fewer samples), Optimizely (enterprise, WYSIWYG for non-devs). Architecture, fit, and pricing detail -> reference/patterns.md.

Output Requirements

A complete deliverable carries the following — a ceiling, not a floor. Emit only what the task exercised; never pad with N/A:

  • Framework selection with rationale (AIDA/PAS/BAB/4Ps).
  • Section map with purpose for each section.
  • CTA placement (minimum 3 positions) with copy.
  • Responsive specifications (mobile-first, breakpoints).
  • Performance targets (LCP/CLS/INP/TTFB).
  • Social proof section design.
  • Recommended next agent for handoff.

Collaboration

Receives: Nexus (premium LP delegation) · Vision (design direction) · Cast (persona data) · Prose (copy drafts) · Muse (design tokens) · Pixel (mockup base) · Forge (prototype base)

Sends: Artisan (LP structure + copy + responsive specs) · Growth (SEO/CRO optimization requests) · Echo (persona validation) · Experiment (A/B variant specs) · Flow (animation specs) · Builder (backend integration)

Handoff formats → reference/handoffs.md

Overlap boundaries:

  • vs Artisan: Funnel = LP structure design and conversion strategy; Artisan = production code implementation.
  • vs Growth: Funnel = LP-specific structure/CTA; Growth = SEO meta, CRO metrics, cross-page optimization.
  • vs Prose: Funnel = copy direction and constraints; Prose = detailed copywriting and voice/tone.
  • vs Experiment: Funnel = variant design; Experiment = statistical test design and execution.
  • vs Palette: Funnel = conversion-focused layout; Palette = usability and a11y implementation details.
  • build vs premium vs Nexus marquee: build owns one routine LP or section; premium owns a repeatable standard-to-premium studio pipeline; marquee remains the ceiling-quality tournament for a flagship acquisition LP.

Reference Map

FileRead when
reference/patterns.mdLP type pattern, section-level design, standard section map, A/B platform landscape
reference/handoffs.mdSending to or receiving from another agent
reference/form-lp-optimization.mdField-count sizing, single vs multi-step, autofill contract, blur-time validation, submit friction.
reference/copy-lp-authoring.mdHeadline formulas, hero copy anatomy, value-prop clarity tests, microcopy shells, tone calibration.
reference/trust-signal-placement.mdPlacement map, testimonial shape/quantity, logo bars, case-study length, review aggregation, dark-pattern line.
reference/premium-chain-recipes.mdSelecting premium, lead-gen, SaaS, e-commerce, event, or lead-magnet stage coverage.
reference/premium-quality-gates.mdEnforcing per-stage craft, conversion, CWV, WCAG, trust, and launch exit criteria.
reference/premium-agent-roster.mdSelecting the minimum specialist set and avoiding redundant delegates.
reference/premium-handoff-protocols.mdEmitting and consuming stage bundles, stage reports, escalation, and resume state.
reference/premium-craft-standards.mdScoring the six craft axes and preserving brand/motion/IA coherence.
reference/premium-ia-blueprint.mdIntegrating IA, technical SEO, content SEO, and GEO as one structural axis.
_common/ASSET_PROVENANCE.mdHero image or generated illustration enters BUILD — rights, source, and state discipline before shipping.
_common/CANDIDATE_SELECTION.mdNarrowing 5+ headline options or multiple hero layout patterns to one — stage funnel and Gate/Trade-off/Preference classification for the selection.
_common/OPUS_5_AUTHORING.mdSizing the LP spec, thinking depth at section/CTA design, front-loading type/audience/goal at FRAME. Critical: P3, P5.
_common/GROWTH_BRAND_PROOF.mdGenerating channel_proof / funnel_proof in nexus growth-acceptance Phase 2. LP authoring is bound by Brand Compiler B.hard + B.pattern; LP copy by copy_proof + tone_proof.
reference/autorun-schema.mdEmitting the AUTORUN _STEP_COMPLETE block — Funnel-specific Output/Next schema.
_common/CODE_QUALITY.mdAbout to write or modify code — 7-axis bar (SLD/SEC/RDB/MNT/TST/PRF/SCL) + CODE_QUALITY_GATE.

Operational

Spine contracts — in effect on every run, precedence in _common/OPERATIONAL.md § Contract Precedence: _common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md.

  • Journal LP design insights in .agents/funnel.md; create if missing. Record patterns and learnings worth preserving (effective structures, high-impact CTA/copy discoveries, performance techniques).
  • After significant work, append to .agents/PROJECT.md: | YYYY-MM-DD | Funnel | (action) | (files) | (outcome) |

AUTORUN Support

See _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling). Funnel-specific _STEP_COMPLETE.Output schema lives in reference/autorun-schema.md.

Nexus Hub Mode

When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).

Funnel-specific findings to surface in handoff:

  • Framework selected (AIDA/PAS/BAB/4Ps) + reason
  • Copy decisions + performance considerations
  • Conversion risks identified

Supporting file: reference/autorun-schema.md

Funnel — AUTORUN _STEP_COMPLETE Schema

When invoked with _AGENT_CONTEXT, parse task scope and constraints, execute BRIEF → STRUCTURE → COPY → BUILD → OPTIMIZE workflow, skip verbose explanations, and return _STEP_COMPLETE.

_STEP_COMPLETE

_STEP_COMPLETE:
  Agent: Funnel
  Status: SUCCESS | PARTIAL | BLOCKED | FAILED
  Output:
    framework: "[AIDA/PAS/BAB/4Ps]"
    sections: "[list of sections with purpose]"
    headline: "[main headline]"
    cta_primary: "[primary CTA copy]"
    files_changed:
      - path: "[file path]"
        type: "[created / modified]"
        changes: "[brief description]"
  Handoff:
    Format: FUNNEL_TO_[NEXT]_HANDOFF
    Content: "[Full handoff for next agent]"
  Risks:
    - "[Identified conversion risks]"
  Next: Artisan | Growth | Echo | Experiment | DONE
  Reason: "[Why this next step]"

Supporting file: reference/copy-lp-authoring.md

LP Copy Authoring Reference

Purpose: Author LP copy that converts — headline, hero body, value prop, benefit blocks, microcopy. Copy is the LP's load-bearing element; layout is scaffolding for words. This reference covers headline formulas (PAS / BAB / 4U), hero-section copy anatomy, value-prop clarity tests, microcopy patterns (button text, tooltips, helper text), readability targets, and LP-context tone and voice.

2026 traffic mix: LPs are read by AI agents, not only humans. A meaningful share of LP visits comes from generative engines (ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews) summarising the page to answer a user query elsewhere. Published 2025–2026 retail data shows AI-driven traffic up ~693% YoY and ChatGPT referrals converting ~31% higher than non-branded organic. Two implications for LP copy:

  1. Lead with the answer. The headline + sub-head + first benefit block must be self-contained enough to be quoted verbatim by an AI engine without context. PAS / BAB / 4U formulas still apply; the cut-off for "summarisable answer" is the first 80–120 visible words.
  2. Attribute every claim. Statistics need a named source, testimonials need a real name + title + company. Unsourced claims are silently demoted by AI summarisers and never make it into the citation. See trust-signal-placement.md for the source-attribution rules.

Scope Boundary

  • Funnel copy: LP headline, sub-head, hero body, benefit-block copy, section-level framing, CTA label drafting, and microcopy shells authored to conversion goals.
  • Prose (elsewhere): authoritative microcopy voice/tone system, design-system-wide error/empty/success copy, exact final wording polished to brand-voice guidelines.
  • Growth (elsewhere): copy frameworks applied across funnel stages (ads → LP → email nurture), SEO-driven headline formulas, keyword integration, GEO/AI-citation copy optimization.
  • Muse (elsewhere): typographic tokens (font size, weight, line-height, text-wrap: balance) — not the words themselves.
  • Vision (elsewhere): brand positioning, master-narrative, category framing upstream of any LP copy.

If the question is "what does the headline need to do?" → copy. If it's "what is our brand voice across every surface?" → Prose. If it's "how do we say this same benefit in the Google Ad and nurture email?" → Growth.

Headline Formulas

Pick one formula. Generate 5+ candidates before selecting. The winner is the one that passes the 5-second test: can a stranger restate the value prop after 5 seconds of exposure?

PAS — Problem · Agitate · Solution

Use when audience is problem-aware (knows the pain, searching for relief).

[Problem statement] → [Consequence / urgency] → [Solution framing]

Example:

  • Problem: Your team is still chasing invoices in spreadsheets.
  • Agitate: Every lost invoice is revenue that walks away.
  • Solution: [Product] automates collections so you get paid on time.

Headline candidate: "Stop losing revenue to lost invoices."

BAB — Before · After · Bridge

Use when transformation is tangible and demonstrable (before-state and after-state are visually or numerically different).

[Before — current painful state] → [After — desired state] → [Bridge — the product]

Example:

  • Before: 4 hours of weekly reporting.
  • After: Reports auto-generated in 3 minutes.
  • Bridge: AI-driven reporting that learns your metrics.

Headline candidate: "From 4-hour reports to 3 minutes."

4U — Urgent · Unique · Useful · Ultra-specific

Use when competing in a crowded category and differentiation is the blocker.

DimensionTest
UrgentIs there a time element?
UniqueCan a competitor say the same sentence? (If yes, rewrite.)
UsefulDoes the reader get a concrete outcome?
Ultra-specificIs there a number, name, or timeframe?

Headline candidate: "Ship a production Stripe integration in 30 minutes — without touching webhooks."

Formula Selection by Audience State

Audience stateBest formula
UnawareCuriosity hook or stat (PAS / BAB assume existing pain)
Problem-awarePAS
Solution-awareBAB
Product-aware4U
Most-awareOffer-led ("50% off until Friday")

Hero-Section Copy Anatomy

┌─────────────────────────────────────────────┐
│ [Eyebrow]  ← optional category / social proof│
│ [Headline] ← main value prop, ≤ 8 words      │
│ [Sub-head] ← expansion, ≤ 20 words, who + how│
│ [CTA copy] ← value-restating action          │
│ [Trust line] ← optional, "no credit card" etc│
└─────────────────────────────────────────────┘

Headline constraints:

  • ≤ 8 words / ≤ 44 characters (forces clarity, removes jargon).
  • Answers "What's in it for me?" in one pass.
  • No brand name in the headline unless the brand itself is the value (e.g., "Notion for teams" only works when Notion is already known).
  • Use text-wrap: balance in CSS so line breaks favor readability.

Sub-head constraints:

  • ≤ 20 words, one sentence.
  • Completes the picture: who it's for + how it works + why it's different.
  • Do not restate the headline — expand it.

Example pairing:

  • Headline: "Ship Stripe in 30 minutes."
  • Sub-head: "For indie devs and 2-person startups who need payments live today — no webhook handling, no compliance tickets, one SDK call."

Value-Prop Clarity Tests

Run the draft through all four before committing.

TestMethodFail condition
5-second testShow a stranger for 5s, remove, ask "what does it do?"Cannot restate core value
Grandma testRead to a non-domain readerAny jargon unexplained
Competitor-swap testReplace your product with a competitor's — does the copy still fit?If yes, it's not differentiated
So-what testAfter every benefit claim, ask "so what?" recursively until you hit an outcomeEnds at a feature, not an outcome

Benefit vs Feature Conversion

Every feature statement must be rewritten as a benefit. A feature describes the product; a benefit describes the reader's post-purchase life.

Feature (what it has)Benefit (what the reader gets)
"256-bit SSL encryption""Bank-level data protection for your customers"
"OAuth 2.0 support""Users log in with Google — one less password to forget"
"99.99% uptime SLA""Your store stays open even when we push updates"
"10M-row data exports""Export an entire year of analytics to a CSV — without chunking"
"Realtime sync""Your team sees the same data at the same time, no refresh"

Rule: Feature is fine as a supporting detail under the benefit, never as the benefit itself.

Microcopy Patterns

Button text

  • State the value, not the mechanism. "Get my report" beats "Submit form".
  • Possessive framing ("my") outperforms neutral ("your" / none) by ~10% in LP A/B.
  • Under 5 words; verb-first.

Helper text (under input labels)

  • Tell the reader what format to use before they guess.
  • Example: We'll send your receipt here. Use a work email for team access.
  • Never duplicate the label. If the label is "Email", do not also write "Enter your email".

Tooltip copy

  • One sentence. If it needs two, redesign the UI.
  • Start with the answer, not context. Annual billing saves 20% beats About annual billing: you save 20%.

Trust-line copy (near CTA / form)

  • Remove specific risk objections: No credit card required · Cancel anytime · We never share your email.
  • Keep to 3 items max, pipe-separated. More reads as defensive.

Error-message shells

Funnel drafts the shell. Prose polishes the final wording.

ContextShell pattern
Field-level validation[Field] [what's wrong]. [How to fix it].
Server-side failureWe couldn't [verb]. [Likely cause]. [Next action].
Network / retrySomething went wrong on our end. [Retry action].

Readability Targets

LP copy is skimmed, not read.

MetricLP target
Flesch Reading Ease60-70 (8th-grade level)
Average sentence length12-18 words
Paragraph length1-3 sentences
Passive voice< 10%

Rule: If the headline Flesch score is below 50, rewrite. Technical LPs (dev tools, finance) may reach 50-60, but never below.

Tone and Voice for LP Context

LPs live on a compressed trust timeline — every word must earn the next. Default LP tone:

DimensionLP defaultWhy
FormalityMid-casualToo formal reads as corporate fluff; too casual reads as unserious for B2B
ConfidenceHigh, unhedged"Ship in 30 minutes" beats "Helps you potentially ship faster"
SpecificityNumbers and names"Join 1,247 teams" beats "Join thousands"
PerspectiveSecond person ("you")First-person ("we help") centers the company, not the reader
CertaintyDeclarativeAvoid "may" / "might" / "can help" — they leak into every weak headline

Voice shifts by LP type:

  • B2B SaaS → confident, data-specific, outcome-framed.
  • Consumer product → warmer, sensory, story-adjacent.
  • Developer tool → precise, code-literate, jargon-OK when accurate.
  • Enterprise → measured, compliance-aware, risk-reducing.

Anti-Patterns

  • ❌ Headline with two value props connected by "and" — forces the reader to choose what matters.
  • ❌ Starting the headline with the company name.
  • ❌ Adjective-stacked benefits: "revolutionary, innovative, best-in-class platform" (all three words do zero work).
  • ❌ "The [category] for [audience]" as the only positioning. Copies every competitor.
  • ❌ Sub-head that repeats the headline with different words.
  • ❌ Feature-listing where benefits are required (pricing page is fine; LP hero is not).
  • ❌ "We" / "our" dominance — count pronouns; if "we" > "you", rewrite.
  • ❌ Passive-voice testimonials: "This product was found useful" → "I cut my close time in half."
  • ❌ CTA copy as a direction ("Click here", "Scroll down") — direction is the UI's job, not the copy's.
  • ❌ Jargon in the first paragraph of the LP. Jargon in paragraph 3 under a features heading is acceptable.

Handoff

To Prose (voice polish):

  • Draft copy with section-by-section rationale (what each block must accomplish).
  • Tone calibration notes (B2B SaaS / consumer / dev-tool / enterprise).
  • Terms deliberately chosen vs brand-voice defaults (flag for review).
  • Error/empty/success shells needing final wording.

To Growth (cross-stage framework):

  • Headline formula selected (PAS / BAB / 4U) and the one-sentence value prop.
  • Primary benefit list ranked by importance — Growth reuses in Google Ads, social, nurture email.
  • SEO-target keywords that must appear in H1 / H2 (if constrained).

To Artisan (implementation):

  • Final copy with section anchors (#hero, #benefits, #cta-final).
  • Character-count budget per field (for responsive truncation handling).
  • text-wrap: balance flag on headline and sub-head.

Supporting file: reference/form-lp-optimization.md

LP Form Optimization Reference

Purpose: Design LP-context forms that maximize completion without eroding lead quality. Every field is a conversion tax — quantify it, justify it, or cut it. This reference covers field minimization, progressive disclosure, autofill/password-manager cooperation, real-time validation, error-prevention patterns, and submit-button friction specifically for LPs (lead gen, signup, download, trial).

2026 traffic mix: passkey + AI agent flows are baseline. Two shifts to factor into form design:

  1. Passkey-first signup is now table-stakes for consumer LPs. Offer "Sign in with passkey" alongside email + password, prefer it for first-time creation when the platform supports it (navigator.credentials WebAuthn). Email-only fallback remains for cross-device portability. FIDO Alliance's Passkey Index (2025) reports a 30% conversion lift and 93% login success vs 63% for passwords; average auth time drops from 31.2s (password) to 8.5s (passkey). Use WebAuthn Conditional UI ("passkey autofill") to surface passkeys without interrupting form flow. Source: FIDO Alliance Passkey Index (https://idtechwire.com/fido-alliance-launches-passkey-index-proving-30-conversion-lift-over-passwords/).
  2. AI shopping / agent-driven flows convert at higher rates than non-branded organic (ChatGPT referrals ~31% higher in 2025–2026 retail data). Forms reached by an AI agent on the user's behalf must auto-fill cleanly from structured data the agent already has — that means the same machine-readable autocomplete + ARIA discipline as in the autofill section below, applied as a hard requirement rather than a nice-to-have.

Scope Boundary

  • Funnel form: LP form spec (field count, step split, validation strategy, submit-button value prop, autofill contract).
  • Artisan (elsewhere): React/Vue production implementation of the form, state management, network submission, error boundary integration.
  • Prose (elsewhere): exact field-label wording, error-message voice/tone, placeholder microcopy authored to the design system.
  • Growth (elsewhere): CRO experimentation on field count, cross-page form analytics, drop-off funnel instrumentation, exit-intent recovery.
  • Muse (elsewhere): input / label / error-state design tokens (spacing, radius, color, focus-ring).

If the question is "how many fields and in what order?" → form. If it's "what exact words go in the error?" → Prose. If it's "which framework component and how is state wired?" → Artisan.

Field-Count Cost Model

Each field beyond the minimum incurs measurable conversion tax. Budget fields against the downstream value.

Field countTypical CV rateUse when
1 (email only)~23%Top-of-funnel: newsletter, guide download, waitlist
2-3~18%Lead magnet with mild qualification (email + name, email + company)
4-5~13-15%Qualified lead for sales handoff (email, name, company, role, team size)
6+<10%Strongly discourage. Split with progressive disclosure or move to post-conversion.

Rules:

  • Every field must answer "does the 20-30% CV penalty pay for itself downstream?" If the sales team ignores the field, cut it.
  • Phone number is the single highest-friction standard field — ask only if sales calls are the follow-up motion.
  • Never ask for data you can enrich (company size, industry, revenue) from Clearbit / ZoomInfo / BuiltWith on the email domain.
  • Optional fields should be visually de-emphasized and labeled (optional) — unlabeled optionals are treated as required and abandoned.

Progressive Disclosure: Single vs Multi-Step

PatternConversion profilePick when
Single-step (all fields visible)Higher completion when ≤ 3 fieldsSimple lead-gen, email-only, download gate
2-step (email → details)Higher completion when ≥ 4 fields; foot-in-the-door effectTrial signup, demo request, qualified lead form
Multi-step (3+ steps with progress bar)Higher qualified-lead rate when 5+ fields; feels lighterEnterprise demo, onboarding-as-form, pricing calculator

2-step pattern (default for 4+ fields):

Step 1: Email only ──► [Continue]
                       │
                       ▼
Step 2: Name, Company, Role ──► [Get my demo]

Why it works: Step 1 commitment captures a partial lead (recoverable via email) even if Step 2 is abandoned. Commitment-consistency bias raises Step 2 completion by 15-30%.

Progress indicator rules:

  • Show progress only when ≥ 3 steps. For 2-step, omit — indicator adds cognitive cost.
  • Label steps by meaning (Your email · About you · Your team), not numbers (1 / 3).
  • Never hide the final step count — "just one more step" surprises erode trust.

Autofill and Password-Manager Cooperation

LP forms must be machine-readable. Browsers and password managers complete forms 3-5× faster than typing; blocking them is a self-inflicted conversion wound.

Required attributes:

Fieldautocompleteinputmodetype
Emailemailemailemail
First namegiven-nametexttext
Last namefamily-nametexttext
Full namenametexttext
Companyorganizationtexttext
Job titleorganization-titletexttext
Phonetelteltel
Countrycountry-nametexttext
Postal codepostal-codenumerictext
New password (signup)new-passwordpassword
Current password (login)current-passwordpassword

Password-manager cooperation:

  • Use standard <label> bound via for / id — custom label implementations (aria-only, floating divs) break 1Password / LastPass / Bitwarden detection.
  • Never use a single <input> for email+password. Browsers cannot save credentials from non-standard forms.
  • Signup forms with a password field: autocomplete="new-password" enables suggested-strong-password prompts. Using off here is a common anti-pattern that kills signup conversion.

Real-Time Validation Strategy

Validate on blur, not on keystroke. Keystroke validation fires errors before the user finishes typing — experienced as nagging, not helpful.

Validation momentUse forWhy
On blur (field loses focus)Format checks: email syntax, phone pattern, postal codeUser completed intent, feedback is timely
On submitCross-field and server-side: password match, email uniqueness, captchaCannot be checked without full context or network
On keystrokeOnly: password strength meter, character counter, live previewFeedback is additive, not corrective

aria-invalid contract:

  • Set aria-invalid="true" only after the first blur-validation fails, not on initial render.
  • Pair with aria-describedby pointing to the error element's id.
  • Clear aria-invalid on next valid blur — do not wait until submit.

Success-state feedback:

  • For non-obvious fields (password strength, username availability), show inline success (checkmark + "Available") within 400ms.
  • Never show success on trivial fields (email format) — confirms nothing the user doesn't already know.

Error-Prevention Patterns

Prevent errors before they occur. The cheapest error message is the one never shown.

  • Constrain inputs at the source: date pickers over free-text dates, country dropdowns over free-text, <input type="number"> with min/max over post-hoc validation.
  • Smart defaults: detect country from IP / browser locale, pre-fill to avoid the field entirely when acceptable.
  • Format hints inline (not in placeholder): Format: +81 90 1234 5678 beneath the label, visible while typing. Placeholder text disappears on focus and is lost.
  • Character counters for free-text fields with limits: show remaining, not used (120 characters remaining beats 30 / 150).
  • Forgiving parsing: strip spaces from credit-card numbers, normalize phone formats server-side. Do not reject input the user clearly intended.

Submit-Button Friction

The submit button is the last opportunity to reassure or lose the lead. Treat it as a value-prop micro-LP, not a UI control.

Button copy:

Anti-patternReplacementWhy
"Submit""Get my free guide"Generic = assumes shared context. Specific = restates value.
"Sign up""Start my 14-day trial"Commitment feels smaller when reversible / time-bounded is surfaced.
"Register""Reserve my seat"Possession framing (my) outperforms neutral (your / none).
"Send""Request demo"Action verb aligned to downstream flow, not form mechanics.

Button state contract:

  • Disabled state only when form is demonstrably invalid (post-blur, not on initial render). Pre-blur disabled buttons feel locked and cause rage-click.
  • Loading state: swap text to "Submitting…" and show a spinner. Never leave the button silent during network latency — users re-click and create duplicates.
  • Success state: button disappears or transforms into "✓ Sent — check your inbox". Do not rely only on a redirect.

Friction around the button:

  • Privacy line beneath the button (+11% trust): We never share your email. Unsubscribe anytime.
  • No secondary CTA adjacent ("Or continue with Google"). Dual CTAs split attention and drop primary CV by 10-15%. If SSO is required, stack it above with a divider, not beside.
  • Never include a reset / clear button on LP forms. Users rage-click it by mistake and abandon.

Anti-Patterns

  • ❌ Asking for phone number when follow-up is email-only.
  • ❌ Keystroke-level email validation firing "Invalid email" before the user finishes typing.
  • autocomplete="off" on signup password fields (blocks password managers, kills completion).
  • ❌ Submit button disabled on initial render with no indication of what is required.
  • ❌ Red border + "Required" on every empty field at page load — treats the user as already wrong.
  • ❌ CAPTCHA before the user has tried to submit (adds friction unconditionally; use only after abuse signals).
  • ❌ Multi-step form without save-on-step-1 — a Step 2 abandon loses the lead entirely.
  • ❌ "Please fill in all required fields" as the only error on a 6-field form — must point to the specific fields.
  • ❌ Placeholder text as the only label (disappears on focus, WCAG-fail).
  • ❌ Optional fields styled identically to required fields.

Handoff

To Artisan (production build):

  • Final field list with types, autocomplete, inputmode, required/optional, validation-moment spec.
  • Step structure (single / 2-step / multi-step) with transition behavior.
  • Submit-button copy, disabled-state contract, loading-state contract, success-state contract.
  • Error-message pattern (inline vs summary, aria-invalid wiring, error id scheme).

To Prose (copy polish):

  • Field labels, placeholder hints, error-message shells. Prose returns voice/tone-aligned final wording.

To Growth (experimentation):

  • Baseline field count and completion rate. Growth owns A/B variants (field removal, step-split, button-copy variants) and statistical readout.

To Muse (tokens):

  • Input states needed: default, focus, filled, invalid, disabled, loading. Muse returns spacing / radius / color / focus-ring tokens.

Supporting file: reference/handoffs.md

Funnel Handoff Templates

Purpose: Standardized handoff formats for inter-agent communication. Read when: Receiving input from or sending output to another agent.


Incoming Handoffs

From Vision (Design Direction)

VISION_TO_FUNNEL_HANDOFF:
  design_direction:
    mood: "[modern/clean/bold/minimal]"
    color_palette: "[primary, secondary, accent]"
    typography: "[font family, scale]"
    imagery_style: "[photo/illustration/3D/abstract]"
  brand_guidelines:
    logo_usage: "[placement rules]"
    brand_voice: "[formal/casual/technical]"
    restrictions: "[prohibitions]"
  target_impression: "[desired first impression]"

From Cast (Persona Data)

CAST_TO_FUNNEL_HANDOFF:
  persona:
    name: "[persona name]"
    demographics: "[age, job, industry]"
    pain_points: ["[pain 1]", "[pain 2]", "[pain 3]"]
    goals: ["[goal 1]", "[goal 2]"]
    objections: ["[objection 1]", "[objection 2]"]
    decision_factors: ["[factor 1]", "[factor 2]"]
    device_preference: "[mobile/desktop/both]"

From Prose (Copy Drafts)

PROSE_TO_FUNNEL_HANDOFF:
  copy:
    headline_options: ["[option 1]", "[option 2]", "[option 3]"]
    subheadline: "[subheadline]"
    benefit_statements: ["[benefit 1]", "[benefit 2]"]
    cta_options: ["[CTA 1]", "[CTA 2]"]
    voice_tone: "[tone setting]"

Outgoing Handoffs

To Artisan (Production Implementation)

This is the primary handoff — Funnel's main deliverable.

FUNNEL_TO_ARTISAN_HANDOFF:
  lp_spec:
    framework: "[AIDA/PAS/BAB/4Ps]"
    section_map:
      - section: hero
        purpose: "[first view — attention capture]"
        copy:
          headline: "[headline]"
          subheadline: "[subheadline]"
          cta: "[CTA text]"
        layout: "[Pattern A/B/D]"
      - section: pain
        purpose: "[problem statement]"
        copy: "[section copy]"
      # ... all sections
    responsive:
      breakpoints: [375, 768, 1024, 1440]
      mobile_specific:
        - "Sticky CTA bar"
        - "Image hidden or reduced"
        - "Single-column stack"
    performance:
      LCP_target: "≤ 2.5s"
      CLS_target: "< 0.1"
      INP_target: "< 200ms"
      TTFB_target: "< 800ms"
      preload: ["[hero image]", "[critical font]"]
      preconnect: ["[external origins]"]
    accessibility:
      focus_visible: required
      tap_target: "≥ 44px"
      contrast: "≥ 4.5:1"
      autocomplete: required on all form fields
      prefers_reduced_motion: required
    assets:
      images: ["[image list]"]
      fonts: ["[font list]"]
    seo:
      canonical: "[canonical URL]"
      noindex_pages: ["[thank-you page]", "[UTM variants]"]
      json_ld: ["FAQPage", "Product (if pricing section)"]

To Growth (SEO/CRO Optimization)

FUNNEL_TO_GROWTH_HANDOFF:
  lp_context:
    url: "[LP URL]"
    cv_goal: "[conversion goal]"
    current_metrics:
      bounce_rate: "[rate]"
      conversion_rate: "[rate]"
    optimization_requests:
      - type: seo
        detail: "[meta/OGP/JSON-LD setup]"
      - type: cro
        detail: "[CTA/form optimization]"

To Echo (Persona Validation)

FUNNEL_TO_ECHO_HANDOFF:
  validation_request:
    lp_url: "[URL or file path]"
    target_persona: "[persona name/definition]"
    validation_focus:
      - "Headline resonance"
      - "CTA clarity"
      - "Form ease of completion"
      - "Mobile usability"

To Experiment (A/B Variants)

FUNNEL_TO_EXPERIMENT_HANDOFF:
  ab_test_request:
    hypothesis: "[changing X will improve CV rate]"
    control:
      description: "[control description]"
      key_elements:
        headline: "[current headline]"
        cta: "[current CTA]"
    variants:
      - id: "variant_a"
        changes: ["[change 1]", "[change 2]"]
    metrics:
      primary: conversion_rate
      secondary: [scroll_depth, bounce_rate]

To Flow (Animation Specs)

FUNNEL_TO_FLOW_HANDOFF:
  animation_requests:
    - element: "[element name]"
      type: "[fade_in_up/stagger/pulse]"
      trigger: "[on_load/scroll_into_view]"
      duration: "[duration]"
  constraints:
    - "Must not cause CLS"
    - "prefers-reduced-motion support required"
    - "Lightweight on mobile"

Supporting file: reference/patterns.md

LP Design Patterns

Purpose: LP structure and layout patterns by LP type and section. Read when: Selecting LP structure, choosing section-level design patterns.

Headline formulas (PAS / BAB / 4U / 4Ps) referenced below are defined in copy-lp-authoring.md (sections "Headline Formulas" and "Formula Selection by Audience State"). This file specifies which formula fits each LP type and the section flow around it — not the formula mechanics.


LP Type Patterns

1. SaaS Product LP

Framework: AIDA (first-time visitors) or PAS (problem-aware audience) — see copy-lp-authoring.md#headline-formulas Hero layout: Pattern A (left text + right screenshot) CTA: "Start free" / "14-day free trial"

Section flow:

  1. Hero — product screenshot + value proposition
  2. Pain Points — 3 key challenges
  3. Solution — product intro + demo video
  4. Benefits — 3–5 with icons
  5. Social Proof — logo wall + testimonials
  6. How It Works — 3-step process
  7. Features — grid or tabs
  8. Pricing — 3-tier comparison
  9. FAQ — 5–7 objection handlers
  10. Final CTA — free trial push

2. Lead Generation LP

Framework: PAS — see copy-lp-authoring.md#pas--problem--agitate--solution Hero layout: Pattern D (split with form) CTA: "Download free guide" Form: 2–3 fields maximum

Section flow:

  1. Hero — problem headline + inline form
  2. Pain Amplification — data/statistics to concretize the problem
  3. Solution Teaser — overview of what they'll get
  4. What You Get — content preview (TOC, sample pages)
  5. Author/Expert Proof — credentials, qualifications
  6. Testimonials — from existing downloaders
  7. Final CTA + Form — repeat form

3. Event / Webinar LP

Framework: 4Ps (Promise → Picture → Proof → Push) — 4Ps is event-LP-specific; for general formula selection see copy-lp-authoring.md#formula-selection-by-audience-state Urgency elements: countdown timer + remaining seats CTA: "Register free" / "Reserve your seat"

Section flow:

  1. Hero — event name + date/time + registration CTA
  2. What You'll Learn — 3–5 takeaways
  3. Speaker Profiles — bios and credentials
  4. Agenda — timeline
  5. Past Event Proof — attendee testimonials + metrics
  6. FAQ — logistics (how to join, recording availability)
  7. Countdown + Final CTA

4. E-commerce Product LP

Framework: BAB — see copy-lp-authoring.md#bab--before--after--bridge Trust: money-back guarantee badge required CTA: "Buy now" / "Add to cart"

Section flow:

  1. Hero — product image + price + purchase CTA
  2. Problem/Before — life without the product
  3. Product Benefits — life with the product
  4. Product Demo — usage video/GIF
  5. Social Proof — reviews + star ratings
  6. Comparison — vs competitors table
  7. Guarantee — refund/quality guarantee
  8. Bundle/Upsell — set offers
  9. Final CTA + Urgency

Calm UI Landing Page Design

Principles

PrincipleDoDon't
Cognitive ClarityClear value proposition, generous whitespace, typographic hierarchyCompeting CTAs, information overload, visual noise
Trust Through CalmReal testimonials, transparent pricing, honest copyFake urgency timers, "only 3 left" fabrications, hidden fees
Functional Minimalism1 primary CTA per viewport, restrained color paletteRainbow gradients, auto-playing video, notification pop-ups
Progressive InformationReveal detail on demand, scannable sectionsWall-of-text hero, collapsible FAQ hiding critical info

Calm UI vs Traditional LP

ElementTraditionalCalm UI
Hero CTA"BUY NOW — 50% OFF ENDS TODAY!""Start your free trial"
Social proofAnimated counter, pop-up notificationsStatic testimonials with names and roles
UrgencyCountdown timer, scarcity badges"Join 2,000+ teams" — factual, not pressured
Form8+ fields with asterisks2-3 fields, progressive disclosure

View Transitions for LP Navigation

/* Multi-step form transitions */
::view-transition-old(form-step) { animation: slide-out-left 0.3s ease; }
::view-transition-new(form-step) { animation: slide-in-right 0.3s ease; }

/* Section-to-section smooth scroll */
.lp-section { view-transition-name: lp-section; }

Scroll-Driven LP Effects (CSS-Only)

/* Reading progress bar */
.progress-bar {
  animation: grow-width linear both;
  animation-timeline: scroll(root);
}
@keyframes grow-width { from { width: 0; } to { width: 100%; } }

/* Section fade-in on scroll */
.reveal-section {
  animation: fade-up linear both;
  animation-timeline: view();
  animation-range: entry 0% entry 100%;
}
@keyframes fade-up { from { opacity: 0; translate: 0 30px; } }

Rule: CSS scroll-driven effects improve INP vs JS scroll listeners. Always provide @supports fallback.

Modern CSS for LP

FeatureLP Use Case
text-wrap: balanceHeadline auto-balancing (≤6 lines)
color-mix()Button hover/active states from single color token
Popover APIFAQ expandable answers, feature tooltips
@scopeSection-isolated styles preventing bleed

Hero Section Visual Patterns (2025-2026)

Hero Layout Structures (ASCII)

Pattern A: Left Text + Right Image      Pattern B: Center Text + BG Image
┌──────────┬──────────┐                 ┌─────────────────────┐
│ Headline │          │                 │    ░░░░░░░░░░░░░    │
│ Sub      │  Hero    │                 │    Headline         │
│ CTA [█]  │  Image   │                 │    Sub              │
│          │          │                 │    CTA [█]          │
└──────────┴──────────┘                 └─────────────────────┘

Pattern D: Split with Form
┌──────────┬──────────┐
│ Headline │ [Form]   │
│ Sub      │ Name     │
│ Bullets  │ Email    │
│          │ [Submit] │
└──────────┴──────────┘

Note: Video background hero (formerly Pattern C) is not recommended — conflicts with LCP ≤ 2.5s target.

Gradient Mesh Hero Background

.hero-bg {
  background:
    radial-gradient(at 40% 20%, hsla(228,100%,74%,1) 0px, transparent 50%),
    radial-gradient(at 80% 0%, hsla(189,100%,56%,1) 0px, transparent 50%),
    radial-gradient(at 0% 50%, hsla(355,85%,63%,1) 0px, transparent 50%);
  animation: meshMove 20s ease-in-out infinite alternate;
}

Rule: Hero only — never on repeated components. Slow animation (15-30s). Ensure text contrast with semi-transparent overlay. Products: Stripe, Vercel, Linear.

Large Typography Hero

.hero-headline {
  font-size: clamp(3rem, 8vw, 8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

Text-only hero (no image) with oversized headline. 37% higher reading completion. Pair with text-wrap: balance for clean line breaks.

Dark Mode LP Default

Design LP dark-first: #0C1120 background, single bright accent for CTAs, muted text for descriptions. 82% of mobile users prefer dark mode. Reduce visual fatigue, increase perceived premium quality.

Pill Button CTA

.cta-pill {
  border-radius: 999px;
  padding: 12px 32px;
  font-weight: 600;
  transition: transform 0.2s, box-shadow 0.2s;
}
.cta-pill:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.15); }

Bento Grid LP Layout

Use asymmetric Bento Grid for feature showcase sections as an alternative to card grids:

.features-bento {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-areas: "main side1 side1" "main side2 side3";
  gap: 1rem;
}
@media (max-width: 768px) {
  .features-bento { grid-template-columns: 1fr; grid-template-areas: "main" "side1" "side2" "side3"; }
}

Rule: Largest cell = primary feature. CTR improves when visual hierarchy matches content priority. 67% of top SaaS sites now use Bento Grid.

Scroll-Driven Storytelling for LP

Narrative-style LPs using CSS scroll-driven animations:

/* Data-journalism style: number counter on scroll */
.stat-number {
  animation: count-up linear both;
  animation-timeline: view();
  animation-range: entry 20% cover 60%;
}

/* Sequential section reveal */
.story-section {
  animation: fade-slide-up linear both;
  animation-timeline: view();
  animation-range: entry 0% entry 80%;
}
@keyframes fade-slide-up {
  from { opacity: 0; transform: translateY(40px); }
  to { opacity: 1; transform: translateY(0); }
}

Rule: Scrollytelling converts 23% better than static LPs for complex products (data-heavy, multi-step). Keep each "scene" to 1 viewport height. Provide non-scroll fallback.


Section-Level Patterns

Pain Section

PatternStructureBest for
Statistics-DrivenLarge number + supporting text (e.g., "73% of companies still use spreadsheets")B2B, data-oriented audience
Checklist☑ list of pain points + transition CTA ("If any apply, we have a solution →")Broad audience, quick scanning

Benefits Section

PatternStructureBest for
Icon Grid3–5 cards: icon + title + 1-line descriptionMost LPs
Before/AfterTwo-column comparison (❌ before vs ✅ after)Transformation-focused products

How It Works

  • Always 3 steps (cognitive simplicity).
  • Structure: step number → title → 1-line description.
  • Connect steps visually with arrows or a progress line.

Pricing Section

  • Highlight recommended plan visually (border, badge, background).
  • Show annual billing toggle with discount percentage.
  • CTA button on every plan.
  • 3-tier is standard: Free / Pro (recommended) / Enterprise.

FAQ Section

  • Design as objection handlers, not generic Q&A.
  • Map objections to FAQ format:
    • "Too expensive" → "Tell me about pricing plans" → respond with ROI.
    • "Seems hard" → "How long to set up?" → emphasize simplicity.
    • "Can I trust you?" → "Is it secure?" → certifications and track record.
    • "Not urgent" → "When should I start?" → frame opportunity cost.

A/B Testing Platform Landscape

Referenced from SKILL.md -> Subcommand Dispatch.

When delegating variant execution to Experiment, specify the target platform from current options:

PlatformArchitectureBest ForPricing model
GrowthBookWarehouse-native; open sourceData/engineering teams with existing data warehouse; statistical rigor (CUPED, post-stratification)Free (OSS self-hosted); $20/user/mo Pro
PostHogAll-in-one (analytics + experiments + session replay)Product teams wanting no-SQL setup; generous free tierUsage-based; 1M events/mo free
StatsigAcquired by OpenAI 2025; large-scale feature flagsHigh-volume experimentation; faster insights with fewer samplesContact sales
OptimizelyEnterprise; visual editorMarketing/non-dev teams; WYSIWYG variant creationEnterprise contract

Source: GrowthBook — Best A/B Platforms 2025 (https://blog.growthbook.io/the-best-a-b-testing-platforms-of-2025/).

LP Framework Guidance (2025–2026)

FrameworkLP FitKey LP Features
Astro 5+Best for static/content LPsZero JS by default; View Transitions API built-in (2 lines); Islands architecture for interactive CTAs; top CWV scores out-of-box
Next.js 15/16SaaS LPs with dynamic personalizationPartial Prerendering (PPR) GA in 2025; React View Transitions integration; Turbopack stable production builds
SvelteKit 2+Performance-sensitive LPs, smaller bundleSvelte 5 runes; excellent INP profile; CSS scroll-driven animations native support

View Transitions API: Browser support exceeded 85% in 2025 (Chrome 111+, Edge 111+, Safari 18+). Use for multi-step form transitions and hero-to-content navigation without full page reload — eliminates layout jank and improves perceived performance. Source: Astro Docs — View Transitions (https://docs.astro.build/en/guides/view-transitions/).

CSS Scroll-Driven Animations: Use animation-timeline: scroll() / view() for progress bars, fade-ins, and parallax — zero JS scroll listeners, direct INP benefit. Delegate implementation to Flow or Artisan; specify in LP performance requirements.

Consent Mode v2 & Analytics (2025 Mandatory)

Google Consent Mode v2 is mandatory since March 2024 for EEA/UK traffic. From July 21, 2025, Google began disabling advertising features (remarketing, conversion tracking, demographic reporting) for accounts without compliant implementation. LP analytics specs must include:

  • CMP integration with ad_user_data and ad_personalization signals (two parameters added in v2).
  • Advanced mode (behavioral modeling): recovers up to 70% of lost attribution data from non-consenting users — specify this in analytics requirements handed off to Growth.
  • GA4 + GTM Server-Side: for high-traffic LPs, server-side tagging reduces client-side script load and improves INP.

Source: Secure Privacy — Consent Mode GA4 2025 (https://secureprivacy.ai/blog/google-consent-mode-ga4-cmp-requirements-2025), Google Tag Platform — Consent setup (https://developers.google.com/tag-platform/security/guides/consent).


Standard Section Map

Referenced from SKILL.md -> LP Structure Frameworks.

Standard Section Map

┌─────────────────────────────────────────────┐
│ 1. HERO (First View)                        │
│    Headline + Sub + CTA + Hero Image/Video  │
├─────────────────────────────────────────────┤
│ 2. PAIN / PROBLEM                           │
│    Target's current frustration              │
├─────────────────────────────────────────────┤
│ 3. SOLUTION OVERVIEW                        │
│    What you offer (high level)               │
├─────────────────────────────────────────────┤
│ 4. BENEFITS (not features)                  │
│    3-5 benefit blocks with icons             │
├─────────────────────────────────────────────┤
│ 5. SOCIAL PROOF                             │
│    Testimonials / logos / numbers             │
├─────────────────────────────────────────────┤
│ 6. HOW IT WORKS                             │
│    3-step process visualization              │
├─────────────────────────────────────────────┤
│ 7. FEATURES (detail)                        │
│    Feature grid or comparison table          │
├─────────────────────────────────────────────┤
│ 8. PRICING / OFFER                          │
│    Pricing table or special offer            │
├─────────────────────────────────────────────┤
│ 9. FAQ                                      │
│    Objection-handling disguised as FAQ        │
├─────────────────────────────────────────────┤
│ 10. FINAL CTA                               │
│     Urgency + last push + form/button        │
└─────────────────────────────────────────────┘

Supporting file: reference/premium-agent-roster.md

Agent Roster

The complete delegate roster for the funnel premium LP studio chain, organized by stage. Each entry names the role, the artifact returned to funnel premium, and the overlap watch-out so funnel premium does not double-book responsibilities.

funnel premium itself never writes copy, designs pixels, or ships code. It selects delegates and brokers handoffs.


Stage 1 · DISCOVER

AgentRole in chainReturnsOverlap watch
fieldMarket and trend intel for the product categoryTop-3 insights, market size signals, sub-segmentsSkip if brand+market are mature
competeCompetitor LP teardown (top 3–5), feature matrix, positioning mapBattle card, differentiation hooks, AI brand visibilityDon't ask compete to write copy — that's prose/funnel
voiceExisting-customer feedback synthesis (reviews, NPS, support tickets)Sentiment themes, top pain quotesSkip if no prior customers (greenfield product)

Parallel fan-out: yes (3 concurrent). Field is independent. Compete and Voice can both run alongside.


Stage 2 · AUDIENCE

AgentRole in chainReturnsOverlap watch
castPersona generation (1–3 personas, ICP first)Persona cards with goals, frictions, jobs-to-be-doneCast persists personas in registry — reuse across runs
echoCognitive walkthrough of the proposed flow per personaConfusion points, emotional friction scoreRun only when a draft structure or wireframe exists
echo[demand]Unmet-need surfacing, authentic feature-request voice5+ unmet needs ranked by intensityDon't confuse with voice (real feedback); echo[demand] is synthetic advocacy

Parallel fan-out: Cast first (other agents need persona IDs), then Echo + Echo[demand] in parallel.


Stage 3 · STRATEGY

AgentRole in chainReturnsOverlap watch
pulseKPI definition, funnel events, North-Star metric, dashboard specKPI tree, event taxonomy, CVR target referencePulse owns metrics design end-to-end; growth handles SEO/CRO measurement
magiMulti-perspective deliberation for high-stakes strategic callsLogos/Pathos/Sophia view + recommendationUse for objection-handling framing, price-anchoring, urgency vs. clarity trade

Parallel fan-out: Serial (Pulse → Magi). Magi consumes Pulse's KPI tree.


Stage 4 · STRUCTURE & COPY

AgentRole in chainReturnsOverlap watch
funnelLP structure (above-fold, sections, CTA strategy, form design, A/B variant outline)Wireframe outline + copy direction briefFunnel is the LP-section specialist; funnel premium orchestrates it, not replaces it
proseUX writing — headlines, microcopy, error states, button labelsCopy v1 (hero, sub, CTA micro, FAQ, error)Prose owns voice and tone; funnel owns positioning. Prose also writes TL;DR / citable units per ia-blueprint §4.1 (Growth supplies structural brief, never the words).
sagaTwo roles — (1) at STRATEGY: Brand Story arc (Hero/Guide/Problem/Plan/Success/Failure) for the Brand System record; (2) at STRUCTURE: narrative-copy application onto wireframe sectionsStrategy: brand_story.md; Structure: section-level narrative passesUse only when narrative is the right framework (B2B, complex products, heritage brand)

Parallel fan-out: Funnel first, then Prose ↔ Saga in parallel (or Saga skip for SaaS / magnet).


Stage 5 · DESIGN

AgentRole in chainReturnsOverlap watch
visionCreative direction, mood, archetype, design rationaledirection.md with tokens hint, type direction, palette intentVision decides, doesn't implement; never skip when brand-touching
museDesign tokens (color, type, spacing, radius, motion) — DTCG-alignedToken JSON + apply planReuse existing system if brand is mature; create only when needed
paletteUsability and a11y polish (contrast, focus, cognitive load)A11y baseline + interaction recommendationsPalette also re-walks at Verify stage
frameFigma context extraction or Code Connect mapping if Figma source existsDesign context bundle for ArtisanSkip if no Figma source
inkVector icons, illustrations, sprite assetsSVG asset bundleFor icon-heavy LPs only
builderAI image generation (hero, lifestyle, abstract)Generated images + prompt logExternal paid API — Ask First
atelier (optional)Whole design pipeline delegation when LP is part of a multi-artifact bundle (LP + slide + 1-pager + marketing captures)Bundled handoff packageUse ONLY when multi-artifact bundling; single-LP direct delegation is faster

Parallel fan-out: Vision first (direction is upstream). Then Muse + Palette + Frame + Ink in parallel. Builder serial (paid API).

Decision: delegate to Atelier if the LP is part of a 3+ artifact design bundle. Otherwise call Vision/Muse/Palette/Frame directly to avoid double-orchestration overhead.


Stage 6 · BUILD

AgentRole in chainReturnsOverlap watch
forgeRapid prototype (working UI on tokens, no production polish)Prototype code + Lighthouse prototype scorePrototype-only; Artisan does production
pixelMockup-faithful reproduction from PNG/JPGPixel-accurate HTML/CSS + diff verificationUse only when high-fidelity mockup exists
artisanProduction frontend (React/Vue/Svelte) on tokensProduction code, type-safe, test-readyConvert forge prototype, don't re-architect
flowAnimations and motion (CSS/JS), scroll-driven effectsMotion implementation + perf-safe verificationINP budget — coordinate with Bolt
polygloti18n and l10n (string extraction, Intl API, RTL)Translation keys, runtime locale switchingSkip if single-locale; otherwise must be in scope from Structure. Polyglot starts AFTER Prose copy v1 is frozen — earlier starts cause key re-extraction and double-wrapped t() calls.

Parallel fan-out: Forge → Artisan serial. Pixel only if mockup. Flow in parallel with Artisan once structure is stable. Polyglot waits for Prose copy v1 freeze.


Stage 7 · OPTIMIZE

AgentRole in chainReturnsOverlap watch
growthSEO (meta/OGP/JSON-LD/headings), SMO (social share), CRO (CTA/form/exit-intent), GEO (AI citation readiness)SEO + GEO score, CRO recommendations, structured-data specGrowth covers four pillars; don't split prematurely
boltFrontend perf — re-render reduction, lazy loading, image optimization, CWV tuningLighthouse Perf ≥ 90, LCP/INP/CLS in budgetCoordinate with Flow on motion-driven INP cost
experimentA/B variant design (hypothesis, variant spec, sample size, decision criteria)First variant queued + measurement planExperiment designs; growth and bolt implement

Parallel fan-out: Growth + Bolt in parallel, then Experiment when first variant is being designed.


Stage 8 · VERIFY

AgentRole in chainReturnsOverlap watch
judgeTri-engine code review (Codex + Antigravity + Claude) on production codeP1/P2/P3 findings with groundingJudge is the gate; don't ship under unresolved P1/P2
voyagerE2E tests (happy path + form / CTA flows, visual regression, a11y test)Test suite + green runVoyager covers E2E; Radar covers unit/integration if needed
attestSpec compliance — BDD scenarios, traceability matrix vs. structure specCompliance verdict ≥ 95% AC coverageAttest is evidence-based; reject hand-waving
sentinelStatic security scan — secrets, input validation, headers, CVESecurity verdictForm-driven LPs especially must pass Sentinel
echo (re-walk)Persona re-walk on shipped codeFriction score delta vs. Audience-stage EchoCompare against earlier echo to confirm improvement

Parallel fan-out: yes, all 5 in parallel (fan-out cap = 5).


Stage 9 · LAUNCH

AgentRole in chainReturnsOverlap watch
launchRelease plan, versioning, CHANGELOG, rollback plan, feature flagRelease dossierLaunch owns release coordination end-to-end
guardianCommit/PR strategy, granularity, naming, branch hygienePR ready for reviewDon't bypass — even a one-page LP needs a clean PR trail
beaconObservability — analytics events wired, dashboard live, alerts armedLive dashboard + alert rulesBeacon validates Pulse's KPI spec is actually emitting (incl. GEO Mention/Citation/SoV KPIs)
funnel (thank-you pass)Thank-you / post-conversion page design — confirmation copy, next-step CTA (related resource / share / referral), upsell where appropriateThank-you page mockup + copyMandatory for lead-gen / magnet / event recipes; skip only for transactional ecom (use order-confirmation flow instead)

Parallel fan-out: Serial (Launch → Guardian → Beacon).


Cross-Stage Specialists

These agents may be invoked at any stage based on signal, not stage:

AgentWhen funnel premium invokes it
canonCompliance audit if WCAG 2.2 AA, OpenAPI for embedded forms, or sector-specific standard (HIPAA, PCI) applies
canonIf the LP carries Terms / Privacy / Tokushoho text, route to canon before Launch
cloakIf the LP collects PII (forms, cookies, tracking) — privacy review
canvasJourney-map visualization for stakeholder review, ERD-like flow diagrams
scribeFormat conversion if a 1-pager / PDF / Word artifact is part of the brief
scribeSpec doc for the LP if the team requires PRD / LLD before Build
omenPre-mortem for high-stakes launches — what could fail in production
siegeLoad test if the LP is expected to absorb a campaign spike
cueDemo video of the LP for sales enablement / onboarding
vectorQuick browser checks during Build (visual sanity, console errors)

Fan-out cap discipline: cross-stage specialists count toward the 5-concurrent cap. If a stage already runs 5 primary delegates (e.g., VERIFY = Judge + Voyager + Attest + Sentinel + Echo) and PII / Tokushoho / a11y compliance requires Cloak + Canon + Canon, sequence those after the primary batch — never run 6–8 concurrently.


Overlap with Adjacent Orchestrators

OrchestratorOverlap with funnel premiumDifferentiation
funnelStage 4 (Structure)Funnel is the LP-section specialist; funnel premium is the chain. Funnel[premium] invokes funnel.
atelierStage 5 (Design)Atelier handles design pipeline for multi-artifact bundles; funnel premium for single LP handles design directly. Funnel[premium] invokes atelier on bundle requests.
nexus deliverStage 6 (Build)Nexus[deliver] delivers product-wide build; funnel premium scopes to a single LP. If the LP is part of a product release, funnel premium escalates to nexus deliver or coordinates via nexus.
nexusGeneric multi-domainFunnel[premium] is LP-axis only. If the request crosses LP axis (security + data + infra + LP), escalate to nexus with the LP slice as a sub-task.

funnel premium ≈ 30% capability overlap with the union of (funnel + atelier + portions of nexus deliver). The 70% unique surface is research-to-launch coordination, recipe selection, and quality-gate enforcement specific to landing pages.


Axis Ownership Map

Six quality axes mapped to agent clusters. funnel premium is the conductor; each axis has a lead and supporting cast. Rubrics live in craft-standards.md and ia-blueprint.md.

Design Axis

RoleAgentResponsibility
LeadVisionArchetype, mood, type direction, palette intent, motion intent → direction.md
Token authorityMuseDTCG tokens (color/type/space/radius/motion), apply plan, dark mode
A11y & feelPaletteContrast (AA/AAA stretch), focus rings, cognitive load, interaction quality
Figma sourceFrameDesign context extraction, Code Connect mapping
Asset (vector)InkIcon system, illustrations, sprites
Asset (raster / AI)BuilderHero, lifestyle, atmospheric imagery (paid API — Ask First)
Fidelity QAPixelMockup-to-code visual diff verification

Pattern: Vision (decide) → Muse (encode) → Palette (humanize) → Frame/Ink/Builder (asset) → Pixel (verify). funnel premium scores Design Rubric ≥ 18/24 at DESIGN gate.

Animation Axis

RoleAgentResponsibility
LeadFlowMotion implementation (CSS / WAAPI / View Transitions / scroll-driven)
Token authorityMuseMotion tokens (duration / easing / stagger) under motion.*
DirectionVisionMotion story consistent with brand archetype
Perf guardrailBoltINP budget enforcement (motion contribution ≤ 50ms)
A11yPaletteprefers-reduced-motion alternative path

Pattern: Vision sets motion story → Muse tokenizes → Flow implements → Palette validates reduced-motion → Bolt enforces INP budget. funnel premium scores Motion Rubric ≥ 15/20 at DESIGN gate.

Branding Axis

RoleAgentResponsibility
Lead (visual)VisionArchetype, visual identity, mood, design direction
Lead (narrative)SagaBrand story arc (customer-as-hero, problem, plan, success/failure)
Lead (positioning)CompeteCategory, differentiator, against-whom, positioning map
Voice executionProseVoice & tone realization in copy across all surfaces
Strategy arbitrationMagiTone-spectrum trade-offs (clarity vs urgency, formal vs casual)

Pattern: Vision + Saga + Compete jointly author the Brand System record at STRATEGY → Prose carries voice into copy → Vision validates visual coherence → funnel premium runs Three-Channel Coherence Audit (visual / voice / experience) at VERIFY. Score Brand Rubric ≥ 14/20.

Marketing Axis

RoleAgentResponsibility
Lead (structure)FunnelLP structure, CTA strategy, form design, messaging hierarchy (Big Idea → Headline → Sub → Proof)
Lead (KPI)PulseCVR target, funnel events, North-Star, dashboard spec
Lead (acquisition)GrowthSEO/SMO/CRO/GEO four-pillar optimization
Variant designExperimentA/B hypothesis, variant spec, sample size, decision criteria
Strategic arbitrationMagiPricing, urgency, primary objection framing
Voice & evidenceVoiceCustomer feedback themes → copy proof points

Pattern: Pulse + Magi set CVR target → Funnel structures + Growth optimizes acquisition → Experiment designs first variant → Voice + Saga supply proof. funnel premium enforces CVR target met, messaging hierarchy clean, variant queued, analytics live.

SEO Axis

RoleAgentResponsibility
LeadGrowthTechnical SEO + content SEO + GEO + SMO four pillars
Perf couplingBoltCore Web Vitals (LCP/INP/CLS all Green), image / font / JS budgets
Schema authorityGrowthOrganization, WebSite, WebPage, schema choice per LP type (Product / Event / SoftwareApplication / FAQPage etc.)
Heading craftFunnel + ProseH1/H2/H3 tree that serves SEO + Brand voice + a11y simultaneously
Multi-localePolyglothreflang, locale routing, schema per locale

Pattern: Growth audits + applies → Bolt enforces perf → Funnel + Prose author heading tree → Polyglot localizes. funnel premium enforces Technical SEO checklist 100%, Lighthouse SEO ≥ 95, GEO Rubric ≥ 15/20.

IA Axis

RoleAgentResponsibility
LeadFunnelVisual hierarchy, scan-pattern choice (F/Z/Layer-cake/Centered/Card-grid), section sequence, content chunking
Heading craftProseH tree as meaningful claims (not labels), microcopy IA
Cognitive validationEchoPersona walk through scan pattern; emotional friction score
Journey vizCanvasJourney map, emotion-score chart, scroll-arc diagram
Navigation designFunnel + PaletteSticky CTA, anchor TOC, mobile bottom-bar

Pattern: Funnel designs structure → Prose writes headings as claims → Echo walks through with persona → Canvas visualizes journey → funnel premium scores IA Rubric ≥ 15/20 at STRUCTURE gate.

Axis Coordination

funnel premium runs a coherence audit at each major gate:

  • STRATEGY exit: Brand System record locked, CVR target locked. Brand precedes tokens.
  • STRUCTURE exit: IA rubric ≥ 15/20. Headings serve all 4 readers (human / Google / LLM / screen reader).
  • DESIGN exit: Design + Motion + Brand rubrics all pass. Motion story matches archetype.
  • OPTIMIZE exit: SEO + GEO + Marketing axes all pass. Perf + motion + a11y stayed coherent.
  • VERIFY exit: Three-Channel Brand Coherence Audit (visual / voice / experience) passes. No axis regressed since DESIGN.

Supporting file: reference/premium-chain-recipes.md

Chain Recipes

LP-type-aware recipes that compose the existing agent roster into a contracted, stage-gated pipeline. Each recipe is a minimum viable stage subset for a specific LP class — not a budget slider.


Recipe Selection Decision Tree

Brief intake
├── Highest-stakes new product / primary acquisition surface?
│   └── premium (full 9-stage chain)
├── B2B form-driven conversion (demo, contact, qualified lead)?
│   └── lead-gen
├── Free trial / freemium signup with onboarding downstream?
│   └── saas
├── Single product or limited collection page in an existing brand?
│   └── ecom
├── Time-boxed campaign (webinar, launch event, conference)?
│   └── event
├── Whitepaper / ebook / template / checklist download?
│   └── magnet
└── Existing LP, single concern (perf / SEO / a11y / copy)?
    └── Route out (not funnel premium) — call bolt / growth / palette / prose directly

Choose ONE recipe. Recipe choice is locked at the RECIPE phase and logged to .agents/funnel-premium/{project}.json.


Recipe 1: premium — Premium Custom LP (default)

Use when: New product launch, primary acquisition surface, top 1–3 LPs by revenue contribution, brand-defining page, or any request where the user says "best/highest-quality LP".

Stage Coverage: all 9 stages, no skips.

StagePrimary DelegatesParallel TracksTime Hint
DISCOVERField, Compete, Voiceyes (3 parallel)M
AUDIENCECast, Echo, Echo[demand]yes (Cast first, then Echo+Echo[demand] parallel)M
STRATEGYPulse, Magiserial (Pulse → Magi)S
STRUCTUREFunnel, Prose, Sagaserial (Funnel → Prose ↔ Saga)M
DESIGNVision → Muse → Palette → Frame → Ink/Buildermixed (or delegate whole bundle to Atelier)L
BUILDForge → Pixel → Artisan → Flow → Polyglotserial with Polyglot parallelizableL
OPTIMIZEGrowth, Bolt, Experimentyes (Growth + Bolt parallel, then Experiment)M
VERIFYJudge, Voyager, Attest, Sentinel, Echoyes (all 5 parallel, cap at 5)M
LAUNCHLaunch, Guardian, Beaconserial (Launch → Guardian → Beacon)S

Skip rules: none. If a stage is genuinely irrelevant (e.g., monolingual LP → no Polyglot), the delegate is skipped within the stage, but the stage gate still runs.

Quality bar: Lighthouse all ≥ 90, CWV all Green, WCAG 2.2 AA, GEO ≥ 90, Judge no P1/P2, first A/B variant queued.


Recipe 2: lead-gen — Lead-Gen LP

Use when: B2B demo request, contact form, qualified lead capture, sales-assisted funnel.

Stage Coverage: all 9, with Discover compressed.

StageAdjustments vs premium
DISCOVERCompete only (skip Field unless new market); Voice if existing customers
AUDIENCECast (single ICP persona) + Echo[demand]; skip Echo unless complex form
STRATEGYPulse heavy (funnel events, MQL → SQL → CW), Magi for objection-handling decision
STRUCTUREFunnel + Prose; Saga only if testimonial-driven
DESIGNDirect delegation (Vision → Muse → Palette → Frame); skip Atelier for single-page
BUILDForge → Artisan → Flow; skip Pixel unless mockup-driven, skip Polyglot if EN-only
OPTIMIZEGrowth (heavy on form-field reduction CRO), Bolt, Experiment (variant on form length)
VERIFYJudge, Voyager (form submission flow), Attest, Sentinel (form input validation), Echo (re-walk)
LAUNCHLaunch + Guardian + Beacon (lead-event tracking)

Skip rules: Field skip when product/market is established. Pixel skip when no high-fidelity mockup exists.

Conversion focus: form completion rate, qualified lead %, time-to-MQL.


Recipe 3: saas — SaaS Signup LP

Use when: Free trial / freemium signup with product-led downstream onboarding.

Stage Coverage: 9 stages, Optimize stage extended.

StageAdjustments vs premium
DISCOVERCompete (feature matrix), Voice (churn reasons); Field light
AUDIENCECast (ICP + power-user persona), Echo (pricing-page cognitive walkthrough), Echo[demand]
STRATEGYPulse (activation events, North-Star = WAU/PMF metric), Magi (free vs trial vs freemium)
STRUCTUREFunnel (above-fold = product screenshot + signup CTA), Prose (feature copy)
DESIGNVision → Muse → Frame (design system reuse); avoid bespoke unless brand-defining
BUILDForge → Artisan → Flow (signup interaction); Polyglot if multi-region
OPTIMIZEGrowth (SEO for category terms, GEO for AI search), Bolt (sub-2s LCP), Experiment (3+ variants)
VERIFYJudge, Voyager (signup happy-path + edge cases), Attest, Sentinel (auth flow), Echo
LAUNCHLaunch + Guardian + Beacon (signup event + activation event)

Skip rules: Saga skip (SaaS LPs rarely benefit from narrative arc — feature + proof + CTA dominates).

Conversion focus: signup CVR + activation rate downstream (not just signup).


Recipe 4: ecom — E-commerce Product LP

Use when: Single product, limited collection, DTC product launch.

Stage Coverage: 8 stages (skip Discover if brand is established).

StageAdjustments vs premium
DISCOVERSkip if existing brand; run Compete only if competitive category
AUDIENCECast (purchase-intent persona), Echo[demand] (unmet need = differentiation), Echo (cart-abandonment walk)
STRATEGYPulse (AOV, CVR, return rate), Magi (price-anchoring decision)
STRUCTUREFunnel (hero image + benefit + trust + reviews + FAQ + sticky CTA), Prose (product copy)
DESIGNVision → Muse → Frame; Ink/Builder heavy (product photography, lifestyle assets)
BUILDForge → Pixel (photo fidelity) → Artisan → Flow (image gallery, variant selector); Polyglot for multi-region
OPTIMIZEGrowth (product-schema JSON-LD, GEO for shopping AI), Bolt (image perf budget), Experiment (variant on price display, urgency)
VERIFYJudge, Voyager (add-to-cart + checkout entry flow), Attest, Sentinel, Echo
LAUNCHLaunch + Guardian + Beacon (add-to-cart, purchase event)

Skip rules: Saga skip unless storytelling-driven brand (e.g., heritage / craft). Field skip for established brand.

Conversion focus: add-to-cart CVR, checkout entry CVR, AOV.


Recipe 5: event — Event / Campaign LP

Use when: Webinar registration, product launch event, conference, time-boxed campaign.

Stage Coverage: 8 stages — Discover skipped (event context = brief), Audience compressed, Verify lightweight.

StageAdjustments vs premium
DISCOVERSkip (event context is the brief)
AUDIENCECast (attendee persona); skip Echo unless complex form
STRATEGYPulse (registration → attendance → conversion), Magi for date/urgency framing
STRUCTUREFunnel (above-fold = date + speakers + register CTA), Prose, Saga (speaker authority + agenda narrative)
DESIGNReuse brand tokens (Muse + Frame); minimal Vision unless brand-defining event
BUILDForge → Artisan → Flow (countdown, scarcity); skip Polyglot if single-region
OPTIMIZEGrowth (event schema, social share OGP), Bolt; skip Experiment if single-shot
VERIFYJudge, Voyager (registration flow), Sentinel (form), Echo light
LAUNCHLaunch + Guardian + Beacon (registration + reminder funnel)

Skip rules: Discover skip (event scope = brief). Experiment skip for single-shot campaigns.

Conversion focus: registration CVR + attendance rate.


Recipe 6: magnet — Lead Magnet LP

Use when: Whitepaper / ebook / template / checklist / free-resource download.

Stage Coverage: 8 stages — Discover skipped (magnet context = brief), Audience compressed, design lightweight.

StageAdjustments vs premium
DISCOVERSkip (magnet context is the brief)
AUDIENCECast (download-intent persona); skip Echo, Echo[demand]
STRATEGYPulse (download → email engagement → MQL); skip Magi unless strategic positioning
STRUCTUREFunnel (above-fold = title + cover + email form), Prose; skip Saga
DESIGNReuse brand tokens (Muse only); minimal Vision; Ink/Builder for cover image only
BUILDForge → Artisan; skip Pixel, Flow (motion), Polyglot
OPTIMIZEGrowth (organic + GEO citation pickup), Bolt; skip Experiment for first launch
VERIFYJudge, Voyager (form submission + email confirmation), Sentinel (email validation)
LAUNCHLaunch + Beacon (download event + email-engagement tracking)

Skip rules: Most aggressive skip set. Magnet LPs win on copy clarity + low friction, not on production polish.

Conversion focus: download CVR (20–30% baseline), follow-up email open rate.


Time and Quality Trade-offs

RecipeApprox. Pipeline DepthQuality Ceiling
premiumDeepest (all 9 stages, full fan-out)Highest — top-of-funnel brand-defining LP
lead-genDeep (9 stages, compressed Discover)High — B2B sales conversion
saasDeep (9 stages, extended Optimize)High — product-led growth
ecomMedium-deep (8 stages, skip Discover often)High — DTC product CVR
eventMedium (8 stages, Discover skipped)Medium-high — time-boxed campaign
magnetShallow (8 stages, Discover skipped + aggressive compression)Medium — friction-minimized download

Recipe is not "budget tier" — it is "LP-type-appropriate depth." A magnet recipe done well is higher quality than a premium recipe applied to a lead-magnet brief.


Recipe Switching

A recipe is locked at RECIPE phase. If mid-pipeline the brief turns out to be a different LP class:

  1. Stop current stage.
  2. Snapshot state to .agents/funnel-premium/{project}.json.
  3. Ask user to confirm recipe switch.
  4. Resume from the latest equivalent stage in the new recipe (don't restart).

Supporting file: reference/premium-conversion-playbook.md

Conversion Playbook

Industry-calibrated CVR baselines, copy frameworks, CTA strategy, and per-section heuristics. The playbook drives Strategy-stage CVR target setting and Structure-stage copy framework choice.

This is a reference, not a script. funnel premium uses it to brief Funnel / Prose / Growth — those agents own the craft.


CVR Baselines by LP Type

Source: synthesis of public benchmarks (Unbounce, WordStream, HubSpot, Databox 2024–2025) + practitioner calibration. Numbers assume warm or mixed traffic unless noted; cold paid traffic typically halves the median. Use as a starting point and calibrate against the client's own baseline.

LP TypeMedian CVRTop QuartileTop DecileTraffic QualifierFriction Profile
SaaS Free Trial2.0%4–5%7%+warm/mixedEmail-only signup (lowest friction trial path)
SaaS Demo Request1.5–3%5%8%+warm/mixed5–7 form fields, qualification gate
SaaS Freemium Signup4–8%12%18%+warm/mixedEmail + password, immediate product access
E-com Product1.5%3%5%+mixedTrust + reviews + scarcity dominant
E-com Cart Recovery LP8–15% of recovery clickers20%30%+warmReminder + incentive (clarify denominator: % of clickers, NOT % of cart abandoners)
Lead Magnet — warm traffic20–30%40%50%+warm (email/retargeting)Email-for-content, very low friction
Lead Magnet — cold paid5–10%15%25%+cold paidSame form, lower intent
Webinar / Event Registration10–20%25%35%+warm/mixedUrgency + speaker authority
Newsletter Signup1–3%5%8%+mixedValue preview + frequency clarity
B2B Contact / Enterprise — warm2–4%5%8%+warmTrust badges + case studies + named accounts
B2B Contact / Enterprise — cold1–2%3%5%+coldSame with longer trust-build
App Install (mobile web → app)1–2%4%6%+mixedSmart App Banner + value-first hero
Course / Education Signup3–6%10%15%+warm/mixedOutcome promise + syllabus preview
Real-Estate Lead2–5%8%12%+mixedGeo-specific + virtual tour
Pricing Page3–6% (next-step click)9%15%+warmPlan-tier psychology + anchor pricing + comparison clarity
Service / Consulting2–4%6%10%+mixedCase studies + trust + clear scope

Use: lock the CVR target during Strategy stage. Communicate it to Funnel (structure decisions), Growth (CRO priority), Experiment (variant hypothesis).


Copy Framework Choice

FrameworkWhen it fitsSection Order
AIDA (Attention / Interest / Desire / Action)Default for consumer LPs, broad funnelsHook hero → benefit interest → desire (proof) → CTA
PAS (Problem / Agitate / Solve)B2B pain-driven products, security, complianceName pain → amplify cost → present solve
BAB (Before / After / Bridge)Transformational products (fitness, productivity, education)State before → show after → bridge = product
4Ps (Promise / Picture / Proof / Push)High-CVR direct response, lead magnets, sales pagesBold promise → vivid picture → social/numeric proof → strong push
StoryBrand SB7Brand-driven B2B with hero-arc fitCustomer = hero, brand = guide, plan, call, success vs. failure
JTBD-firstProduct-led SaaS where job is well-definedName the job → friction of current solutions → product as new way → proof

Rule: choose ONE framework per LP. Mixing dilutes. Magi can arbitrate when two frameworks tie.

Recipe → Framework Default Map

When the Recipe is known but the framework is ambiguous, default to this map (override only with Magi arbitration logged):

RecipeDefault frameworkWhy
premiumMagi arbitration required (no default — brand-defining surface)Stakes too high for default
lead-genPAS (Problem / Agitate / Solve)B2B pain-driven decision
saas (free trial)JTBD-firstProduct-led; job is the wedge
saas (demo request)PAS or StoryBrand SB7Sales-assisted; objection-heavy
ecomAIDA with strong proof blockConsumer impulse + trust
event4Ps (Promise / Picture / Proof / Push)Time-boxed; urgency + speaker authority
magnet4Ps with stripped PushEmail-for-content; low friction

Section Sequence Heuristics

High-converting default (consumer, ~1500 words)

  1. Hero: headline + sub + primary CTA + hero asset (image/video/illustration) + optional trust strip (logos or numbers)
  2. Benefit block 1: top benefit framed as outcome
  3. Benefit block 2: second benefit framed as outcome
  4. Social proof block: testimonials, case studies, numbers ("10,000+ teams")
  5. Objection handling: FAQ-style or comparison table
  6. Benefit block 3: third benefit (often "how it works" mini-explainer)
  7. Final CTA: stronger close, urgency or risk-reversal
  8. FAQ: 3–5 Q/A, scannable
  9. Footer with trust signals: privacy, terms, contact, security badges

B2B / Enterprise

  1. Hero with named-account logo wall in trust strip
  2. Pain framing (PAS) + cost of inaction
  3. Solution overview with 3 capability pillars
  4. Case study spotlight (specific customer, named numbers)
  5. ROI / value calculator (if applicable)
  6. Integration / security / compliance section
  7. Demo request CTA
  8. Resources (whitepapers, analyst reports)

E-com Product

  1. Hero with main product image + add-to-cart sticky
  2. Key benefits + key specs (above the fold for mobile)
  3. Image gallery + variant selector
  4. Customer reviews + ratings (verified)
  5. Use-case storytelling
  6. FAQ
  7. Cross-sell / related products
  8. Trust footer (returns, shipping, warranty)

Lead Magnet

  1. Hero: cover image + title + email form (above the fold)
  2. What's inside (3–5 bullet points)
  3. Author credibility / brand authority
  4. Sample preview (1–2 page snippets)
  5. Final email form (repeat CTA)

Event / Webinar

  1. Hero: title + date + speakers + register CTA + countdown
  2. Agenda
  3. Speaker bios with social proof
  4. Why attend (3 takeaways)
  5. Past-event highlights or testimonials
  6. Repeat register CTA + add-to-calendar

CTA Strategy

DecisionHeuristic
Primary CTA count above fold1 (one). Decision fatigue is real.
Repeat CTA frequencyEvery ~2 sections after benefit blocks; absolutely after social proof and after FAQ
CTA microcopyVerb + outcome ("Start free trial", "Get the playbook", "Book a demo"). Avoid "Submit", "Click here".
CTA button colorHigh contrast vs. surrounding palette; aligned with brand accent. Test color in Experiment, not Strategy.
Secondary CTASingle low-commitment option (e.g., "Watch a 2-min demo") if primary is high-friction
Sticky CTAMobile: yes for E-com and lead-gen. Desktop: optional for very long pages (>2500 words).
Exit-intent CTALead-magnet downgrade or discount; A/B test before adopting (can hurt brand)

Form Design

DecisionHeuristic
Field countLead magnet: 1 (email). Free trial: 1–2. Demo request: 5–7 with qualification. Enterprise: 7–10.
Progressive disclosureIf >3 fields, break into 2–3 steps with progress indicator. Step 1 ≤ 2 fields.
Label positionTop-aligned (faster scan, accessibility friendly)
ValidationInline, on blur; success-state microcopy
Required-field markingMark optional fields, not required (when most are required)
Error microcopySpecific ("Email format looks off — example: name@company.com (mailto:name@company.com)"), never "Invalid input"
CAPTCHAAvoid unless bot traffic is verified pain. Bot Manager or invisible reCAPTCHA preferred.

Social Proof Hierarchy

In order of impact (highest first):

  1. Specific outcome from named customer: "Acme cut onboarding time 67% in 30 days"
  2. Named-account logo wall: well-known logos > unknown logos
  3. Numbers: "10,000+ teams", "$1B+ processed", "4.8/5 from 12,000 reviews"
  4. Recognizable awards / press: G2 Leader, Gartner Magic Quadrant, TechCrunch coverage
  5. Star-rating block with review snippets
  6. Founder / leadership credibility: when brand is early, founder authority can substitute
  7. Open-source / community signals: GitHub stars, npm downloads, Discord member count (B2D)

Anti-pattern: avatar grid with no names ("our happy customers"). Reads as stock photo bingo.


Trust Mechanics

Pick AT LEAST ONE trust mechanic per LP:

  • Named-account social proof
  • Money-back guarantee
  • Free trial / no credit card
  • Open-source / transparency
  • Security badges (SOC 2, ISO 27001, GDPR)
  • Press logos (only if Tier-1)
  • Verified review platforms (G2, Capterra, Trustpilot, ProductHunt)
  • Founder authority (B2D / B2SMB)
  • Industry endorsement (when applicable)

Urgency vs. Clarity Trade-off

ApproachWhen it worksWhen it backfires
Time scarcity ("Offer ends Friday")Real deadlines, events, launchesManufactured urgency hurts brand long-term
Quantity scarcity ("3 spots left")Cohort-based products, services with capacityVisible-only-on-some-pages reads as dark pattern
Loss framing ("Stop losing X")Cost-of-inaction is concrete and measurableGeneric loss framing reads as fearmongering
Clarity ("Calm UI")Premium / trust-driven / B2B-enterpriseWhen CVR target is high and audience is action-ready, can underperform

Magi arbitrates urgency vs. clarity during Strategy stage when persona signals are mixed.


Common LP Failure Modes

SymptomLikely root causeRepair
Dual-promise drift (hero says one thing, section 5 says another)Two unrelated value props leaked past UNDERSTANDStop chain; return to UNDERSTAND; lock one promise; second promise becomes a separate LP
Low CVR + high bounceHero fails 5-second test (Hero-Contract Legibility ≤ 1/3)Re-write hero in Structure stage
Low CVR + low bounceTrust gap (Trust-Signal Density ≤ 1/4)Strengthen social proof + guarantee + author authority
High click-through + low form submitForm frictionReduce field count, progressive disclosure
Inconsistent mobileAbove-fold breaks on common viewports / tap targets < 44pxBolt + Voyager regression sweep
AI search not citing the pageGEO weakness; check per-platform tactic tableGrowth — structured data, AI-friendly headings, citation-ready facts, AI bot crawl policy
Strong CVR but low quality leadsTargeting / qualification mismatchAdd qualification fields; tighten persona in Audience stage
Strong CVR + high refund/churnQualification gap (separate from low-quality leads)Move qualification upstream; add deselect-friendly copy in objection block
Spike CVR then collapseBurnt audience / scarcity overuse / FTC dark-pattern riskRotate creative, restore clarity-led variant; audit per FTC dark-pattern guidance

Calibration Workflow

  1. Read the brief: identify LP type → look up baseline.
  2. Adjust for context: brand maturity, traffic source, audience temperature.
  3. Set Strategy CVR target: usually median × 1.5 → top-quartile range.
  4. Communicate to Funnel + Prose: target drives copy aggression (calm vs. direct response).
  5. Lock in handoff bundle: CVR_Target field in PREMIUM_LP_STAGE_BUNDLE.
  6. Validate post-launch in Beacon dashboard: actual CVR vs. target; feedback loop to next iteration.

Supporting file: reference/premium-craft-standards.md

Craft Standards

The super-quality bar for Design, Animation, and Branding axes. These are the standards funnel premium enforces upstream of and across Stages 4–7. Lighthouse and WCAG are the floor — this document defines the ceiling.

A landing page that hits the perf budget but feels generic loses to a landing page that hits the same budget and feels inevitable. Craft is the difference.


Design Discipline

1. Visual Hierarchy Rubric

Score each LP from 0–3 per criterion. Ship target: ≥ 20/27.

Criterion3 — Excellent2 — Good1 — Weak0 — Broken
Hero-Contract LegibilityWhat / for whom / why-now answerable in ≤ 5 seconds6–8 seconds8–12 secondsNot answerable
Primary focal pointSingle, unmistakable focal point above foldOne focal point with some competitionMultiple competing elementsNo focal point
Scale contrastHero element ≥ 3× secondary2× contrast1.5× contrastFlat
Weight contrastBold vs. regular vs. light used purposefullyTwo weights with clear rolesInconsistent weight useSingle weight everywhere
Color hierarchyAccent reserved for actions/highlights; neutral palette carries bodyMostly disciplinedAccent overusedAccent everywhere
Whitespace rhythmSection padding follows tokens; breathing room around CTAsMostly consistentCramped or arbitraryNo system
Scan-pattern coherenceLayout matches chosen pattern (F / Z / Layer-cake / Centered / Card-grid) per ia-blueprint.mdMostly alignedSome misalignmentRandom placement
Section identityEach section visually distinct yet cohesiveMostly distinctSections blur into each otherAll sections look the same
Mobile fidelityMobile is designed, not shrunk; tap targets ≥ 44×44 px; thumb-zone awareAdapted; targets ≥ 40 pxReactive onlyBroken on mobile

2. Typography Craft

  • Type scale: modular (e.g., 1.25, 1.333, 1.5 ratio). Document the ratio in tokens.json. No off-scale sizes.
  • Display headline: 1 family, 1–2 weights. Optical sizing if variable font. Pair with body for clear contrast (serif↔sans or display↔text).
  • Body line-height: 1.5–1.7 for paragraphs, 1.2–1.35 for headlines, 1.1 for display.
  • Measure (line length): 45–75 characters for body. Enforce max-width per breakpoint.
  • Kerning + balance: text-wrap: balance on headlines; text-wrap: pretty on paragraphs (where supported, with fallback).
  • Variable font axes: use weight/optical-size/slant axes when available; ship single woff2 file under 100KB subsetted.
  • Numerical typography: tabular numerals for pricing, stats, dashboards (font-variant-numeric: tabular-nums).
  • 2026 trend awareness: kinetic typography on hero (animated weight/width shift), pair with reduced-motion fallback.

3. Color Discipline

  • Token-only: zero hardcoded color values in production code. Enforced at Build gate.
  • Semantic naming: --color-action-primary not --color-blue-500. Surface vs. ink vs. accent vs. status.
  • Contrast ratios:
    • Body text: ≥ 4.5:1 (AA)
    • Large text (18px+ bold or 24px+): ≥ 3:1 (AA)
    • UI components / focus indicators: ≥ 3:1 (AA)
    • Stretch target: AAA where feasible (7:1 body, 4.5:1 UI)
  • Color blindness: verify against Deuteranopia + Protanopia + Tritanopia simulators; never rely on color alone for state.
  • Dark mode: if in scope, use color-mix() for tonal variants; preserve hierarchy across modes.
  • Gradient usage: purposeful, brand-coherent. Banned: rainbow gradients without semantic anchor. Encouraged: 2-stop subtle gradients on hero, mesh gradients with motion budget.

4. Whitespace Rhythm

  • Section vertical rhythm: based on a spacing scale (4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96 / 128 px). Tokenized.
  • Above-fold spacing: hero copy ↔ CTA ≥ 24px; CTA ↔ trust strip ≥ 32px.
  • Section padding: 64–128px desktop, 40–80px mobile, scaled by content density.
  • Microspacing: 4/8/12px between elements within a card; never arbitrary margin: 11px.

5. Detail Craft

The differentiator between B+ and A+ LPs:

  • Cursor states: every interactive element has a hover + focus + active state. No cursor: default on buttons.
  • Focus rings: visible, branded, AA contrast against any background.
  • Empty states: every list / search / filter has an explicit empty state with copy + illustration.
  • Loading states: skeleton screens for any content > 100ms; spinner only for genuine indeterminate wait.
  • Error states: every form field has specific error microcopy (Prose), never "Invalid input".
  • Icon system: single icon family (Ink-produced or curated set). Stroke weight matches typography weight. Pixel-aligned at 16/20/24/32.
  • Image craft: every hero / lifestyle / illustration has intentional crop, focal point, exposure consistency. No stock-photo bingo.

6. 2026 Design Trend Calibration

Read awareness, not mandatory adoption. Apply only when brand and audience justify.

TrendWhen to adoptWhen to skip
Liquid Glass / dimensional UIPremium hardware / consumer apps / luxury B2CTrust-critical B2B (banking, healthcare)
Kinetic typography on heroBrand-led launches, creative-industry, design toolsCalm UI / clarity-led / accessibility-critical
Mesh gradients + organic shapesModern SaaS, creator economy, lifestyleEnterprise SaaS / professional services
Brutalist editorialStrong-POV brands, agencies, niche communitiesMass market / conversion-first
Calm UI / generous whitespaceTrust-critical (legal, finance, health, premium)Direct-response / high-urgency campaigns
3D / Spline / interactive demosProduct-led demos, hardware showcasesPerformance-budget-constrained pages
AI-driven adaptive UISaaS with rich behavioral data, ecom personalizationTrust-critical / fixed-message brand launches
Variable-font dynamic typographyModern editorial, brand-led design toolsMulti-locale LPs (subsetting complexity)
Spatial / Z-axis layering (non-XR depth)Premium hardware, creative tools, design portfoliosInformation-dense B2B / dashboards
Anti-AI-look / human craft signalingHeritage brands, craft / artisanal, anti-tech positioningAI-native products (counter-message)

Mandatory rule: when adopting AI-driven adaptive UI, an explainability affordance ("Why am I seeing this?") must be present and tested. This is gate-checked at DESIGN exit when the trend is in scope.


Animation Discipline

1. Motion Tokens

Define in tokens.json under motion.*:

{
  "motion": {
    "duration": {
      "instant": "75ms",
      "fast": "150ms",
      "base": "250ms",
      "slow": "400ms",
      "deliberate": "600ms"
    },
    "easing": {
      "standard": "cubic-bezier(0.4, 0, 0.2, 1)",
      "decelerate": "cubic-bezier(0, 0, 0.2, 1)",
      "accelerate": "cubic-bezier(0.4, 0, 1, 1)",
      "emphasized": "cubic-bezier(0.2, 0, 0, 1)",
      "spring-snappy": "linear(0, 0.5 25%, 1 50%, 0.85 65%, 1)"
    },
    "stagger": {
      "tight": "30ms",
      "comfortable": "60ms",
      "dramatic": "120ms"
    }
  }
}

2. Motion Principles

PrincipleRule
PurposeEvery animation answers: orient (where I am), feedback (what happened), delight (brand). No motion without one of these.
SpeedUI feedback < 200ms. Section transitions 250–400ms. Hero/atmospheric ≤ 600ms. Never longer unless cinematic and skippable.
EasingStandard easing for most. Decelerate for entrances. Accelerate for exits. Emphasized for hero moments. Spring for playful brand. Never linear (except progress).
ChoreographyCoordinated, not chaotic. Stagger reveals 30–120ms; one element starts, the next begins as the first crosses ~60% progress.
DirectionMotion direction matches information flow. Top-to-bottom for new content; left-to-right for forward; right-to-left for back.
Reduced motion@media (prefers-reduced-motion: reduce) removes parallax, autoplay, infinite loops, attention-grabbing motion. Functional transitions can keep 100ms cross-fades.
PerformanceAnimate only transform, opacity, filter. Never layout-triggering properties (width/height/top/left).
INP budget (HARD CEILING)Motion contribution to INP ≤ 50ms is a hard ceiling, not a rubric criterion. Failure to meet it triggers immediate Flow+Bolt repair (see quality-gates.md Oscillation Guard); motion rubric scoring continues only after the ceiling is met.

3. Motion Patterns (named, reusable)

PatternUseImplementation
Hero entranceAbove-fold revealStagger headline → sub → CTA → hero asset; decelerate 400ms
Section enterScroll-into-viewIntersectionObserver fade-up 24px, decelerate 300ms, once
Scroll-driven progressPage progress, parallaxCSS animation-timeline: scroll() — no JS scroll listeners
CTA hoverButtons / cards150ms transform scale 1.02 + shadow lift
Form feedbackInput focus / error200ms outline + 75ms shake (errors only, 1 cycle, low amplitude)
Modal / sheetOverlay panelsView Transitions API where supported; fallback to 250ms slide+fade
Loading skeletonAsync contentSubtle linear gradient sweep, 1.5s loop, paused under reduced-motion
Counter / stat revealNumbers in social proofrequestAnimationFrame ease-out 800–1200ms, observed once
Microinteraction confirmSuccessful submit / copy / save250ms checkmark draw + 600ms bloom + auto-dismiss

4. Tool & Format Choice

AssetToolFormatWhen
Simple UI motionCSS / WAAPIn/aDefault for transforms, opacity, focus, hover
Scroll-drivenNative CSS animation-timelinen/aModern browsers; no JS scroll listeners
Complex character / illustrationLottie.lottie (dotLottie)Hero motion, brand mascot
Interactive vectorRive.rivState-machine driven, lightweight
Page transitionsView Transitions APIn/aSPA navigation, multi-step forms
3D / dimensionalSpline / Three.jsembed / canvasPremium product demos only
Video background.mp4 + posterh.264 + AV1Atmospheric hero, with reduced-motion fallback

5. Motion Quality Rubric

Ship target: ≥ 15/20.

Criterion4 — Excellent3 — Good2 — Weak1 — Broken
Purpose clarityEvery animation has a reasonMost doSome decorative-onlyMotion for motion's sake
ChoreographySequenced reveals feel composedMostly coordinatedSome clashesEverything moves at once
Easing fitEasing matches motion typeMostlySome linearAll linear
Reduced-motion respectFull alternative pathMost pathsPartialIgnored
PerformanceAll on compositor; INP ≤ 200msMostlySome layout-triggeringJank visible

Branding Discipline

1. Brand System Anatomy

Before any LP design, the brand system must be defined or referenced. Missing pieces → ask user or escalate to Vision/Saga. Vision authors the Voice_Spectrum; Prose executes voice in copy.

BRAND_SYSTEM:
  Promise:
    Statement: "<the one-sentence outcome the brand delivers>"
    Type: "Functional | Emotional | Self-Expressive | Aspirational"
  Story:
    Hero: "<customer is the hero — OR — guide-as-hero for technical-developer / category-creator brands>"
    Guide: "<brand is the guide>"
    Problem: "<external + internal + philosophical>"
    Plan: "<3-step path>"
    Success: "<vivid after-state>"
    Failure: "<vivid stakes>"
  Positioning:
    Category: "<the category the brand competes in>"
    Differentiator: "<what makes it different>"
    For_Whom: "<primary audience>"
    Against_Whom: "<the alternative being displaced>"
    Anti_Archetype: "<what the brand explicitly is NOT — sharpens differentiation>"
  Verbal_Identity:
    Tagline: "<≤7 words, ownable, brand-voice-loaded — Saga + Prose>"
    Naming_Pattern: "<product nomenclature rule — e.g., verb-led, mythic, kebab-noun>"
    Claim_Ladder: ["<top claim>", "<supporting claim>", "<proof point>"]
    Big_Idea_Owner: "Compete + Funnel"
    Tagline_Owner: "Saga + Prose"
    Visual_Claim_Owner: "Vision"
  Voice_and_Tone:
    Personality: ["<3-5 adjectives>"]
    Voice_Spectrum:                          # Vision authors
      Formal_to_Casual: "<0..10>"
      Reserved_to_Enthusiastic: "<0..10>"
      Serious_to_Playful: "<0..10>"
      Mainstream_to_Bold: "<0..10>"
    Always_Say: ["<patterns>"]
    Never_Say: ["<anti-patterns>"]
    Tone_Variants:                           # Prose executes — DESIGN gate verifies all 5 are drafted
      Hero: "<bold, declarative>"
      Pricing: "<clear, no hedging>"
      Errors: "<helpful, never shaming>"
      Empty_State: "<warm, directive>"
      Legal: "<plain, scannable>"
  Visual_Identity:
    Archetype: "<Magi | Hero | Outlaw | Magician | Everyman | Lover | Jester | Caregiver | Ruler | Creator | Innocent | Explorer | Oracle/Agent | Operator>"
    Secondary_Archetype: { archetype: "<one of above>", mix_ratio: "70:30 | 60:40 | none" }
    Mood: ["<3-5 keywords>"]
    Color_Story: "<warm/cool/neutral + accent strategy>"
    Type_Story: "<display + body pairing rationale>"
    Image_Style: "<photography vs illustration vs 3D + treatment>"
    Image_License_Posture: "Commissioned | Licensed-stock | AI-generated | Mixed"
    Motion_Story: "<calm vs energetic vs precise vs playful>"
  Accessibility_Stance:
    Baseline: "WCAG 2.2 AA"
    Stretch: "AAA where feasible"
    Motion_Budget: "<reduced-motion mandatory; rich-motion default = on/off>"
  Evidence_Bank:
    Numeric_Proof: ["<stat with source and date>", ...]
    Named_Customers: ["<logo + outcome>", ...]
    Awards_Press: ["<source>", ...]
    Author_Authority: { person: "<name>", credentials: "<list>", sameAs: ["<LinkedIn>", "<ORCID>", "<Wikidata>"] }

Two added archetypes for 2026 LPs:

  • Oracle / Agent — AI-native brands whose promise is autonomous outcomes; requires explainability affordance ("Why am I seeing this?") in any AI-driven adaptive surface.
  • Operator — Linear / Stripe / Vercel cluster: Magi authority + Creator precision with deliberate personality restraint. Distinct from Magi in restraint discipline.

2. direction.md Minimum Payload Contract

When Vision emits direction.md to Muse, the file MUST contain (else Muse rejects and returns to Vision with a brand recipe):

# direction.md

## Archetype
Primary: <archetype>
Secondary (optional): <archetype> mix <ratio>
Rationale: <2-3 sentences>

## Mood
Keywords: <3-5>
Reference moodboard: <path or links>

## Type Direction
Display family + weights: <names>
Body family + weights: <names>
Scale ratio: <e.g., 1.25 / 1.333 / 1.5>
Variable-axis usage (if any): <wght / opsz / slnt>
Kinetic typography: <on/off + scope>

## Palette Intent
Strategy: <warm/cool/neutral + accent strategy>
Surface ↔ ink contrast target: <AA / AAA>
Dark-mode posture: <single-mode | auto-switch | manual-toggle>

## Motion Intent
Motion story: <calm | energetic | precise | playful>
Weave: <duration baseline e.g., 250ms>
Reduced-motion alternative declared: yes/no

## Scan-Pattern Preference
Primary pattern: <F / Z / Layer-cake / Centered axis / Card grid>
Rationale: <why this matches archetype + persona>

## Asset Direction
Image style: <photography / illustration / 3D / mixed>
License posture: <commissioned / licensed-stock / AI-generated>
AI-driven adaptive UI: <on/off; if on, explainability indicator location declared>

2. Brand Voice Application

Voice = consistent personality across all copy. Tone = situational adjustment.

  • Hero: highest brand voice expression. Bold, distilled, memorable.
  • Body benefits: voice slightly dialed back for clarity. Specifics + outcomes.
  • Microcopy / errors: tone shifts to helpful + warm. Voice still present but quiet.
  • Legal / footer: plain language, voice barely visible, but never robotic.

Prose owns voice execution. funnel premium confirms the brand system is referenced.

3. Positioning Discipline

Use Compete's positioning map output. The LP must:

  1. Name the category the brand operates in (explicit or implicit, never both unclear).
  2. Make the differentiator visible above the fold or by section 2.
  3. Address the "against whom" frame in objection handling.

Anti-pattern: feature-list LP that competes on parity instead of positioning.

4. Brand Coherence Check (Verify stage)

Three-channel coherence audit:

ChannelWhat to check
VisualToken usage matches brand archetype. Imagery treatment matches image style. Motion matches motion story.
VoiceSample 10 copy strings across LP. Score each on the voice spectrum. Variance < 1.5 points per axis.
ExperienceForm fields, micro-interactions, success states all reinforce brand personality. Errors don't break voice.

A regression on any channel = repair before Launch.

5. Brand Quality Rubric

Ship target: ≥ 17/24 (6 criteria × 4 points).

Criterion4 — Excellent3 — Good2 — Weak1 — Broken
Promise clarityOne-sentence test passes in 5 secondsMostly clearHedged or genericNo discernible promise
Voice consistencyAll copy reads as one author (variance < 1.5 per spectrum axis)MostlySome inconsistency (variance 1.5–2.5)Multiple voices clash (variance > 2.5)
Positioning crispnessCategory + differentiator + against-whom + anti-archetype clearMostlyTwo of fourNone visible
Visual coherenceArchetype (incl. secondary mix) reads in <3 secondsMostlyMixed signalsNo archetype
Story echoHero arc visible (customer-as-hero by default; guide-as-hero acceptable for technical-developer brands when declared in Brand System)MostlyImplicit onlyBrand-as-hero anti-pattern
Trust-signal density≥3 trust mechanics surfaced by section 2 (named-customer outcome / numeric proof / press / open-source / guarantee / author authority)2 mechanics1 mechanicNone — brand asks for action without credibility

Cross-Discipline Coordination

These rules govern how Design, Animation, and Branding stay aligned:

  1. Brand system precedes design tokens. Vision + Saga define brand before Muse generates tokens. Tokens must encode brand decisions, not the inverse.
  2. Motion story comes from brand archetype. A "Magi" brand uses deliberate, calm motion; a "Jester" brand uses snappy, playful motion. Flow consults Vision's direction.md before authoring motion tokens.
  3. Design rubric scoring happens before Build. No production code on a < 18/24 design or < 15/20 motion or < 14/20 brand score. Repair or escalate.
  4. Detail craft is the Verify checklist's secret tier. Judge re-walks for cursor states, focus rings, empty states, loading states, error states, icon consistency, image craft. Anything missing = P2 finding.

Six-Axis Ownership + Ship Rubrics (SKILL.md excerpt)

AxisPrimary ownersShip rubricWhere the bar lives
DesignVision (direction) + Muse (tokens) + Palette (a11y/feel) + Frame (Figma) + Pixel (fidelity); or Atelier when multi-artifact bundle — rubric still enforcedVisual hierarchy ≥ 20/27 (incl. Hero-Contract Legibility); typography craft; color discipline; whitespace rhythm; tap targets ≥ 44px; detail craft (cursor / focus / empty / loading / error / icon / image)craft-standards.md § Design Discipline
AnimationFlow (impl) + Muse (motion tokens) + Bolt (INP budget)Motion rubric ≥ 15/20; tokenized duration / easing / stagger; reduced-motion alternative path; INP ≤ 50ms is a hard ceiling — not a rubric criterioncraft-standards.md § Animation Discipline
BrandingVision (archetype + visual identity, voice spectrum) + Saga (story arc at Strategy, narrative copy at Structure) + Compete (positioning + anti-archetype) + Prose (voice execution)Brand rubric ≥ 17/24 (incl. Trust-Signal Density); Brand System record (Promise+Type / Story / Verbal_Identity / Voice & Tone / Positioning / Visual Identity / Accessibility Stance / Evidence Bank); voice consistency variance < 1.5 / spectrum axiscraft-standards.md § Branding Discipline
MarketingFunnel (structure) + Pulse (KPI) + Growth (CRO) + Experiment (variants) + Magi (strategy)CVR target met (industry-calibrated, recipe-aligned, traffic-source-qualified per playbook); messaging hierarchy (Big Idea → Headline → Sub → Proof); copy framework chosen via Recipe→Framework map; first A/B variant queued (≥1000 conv/variant, 95% sig, ≥14 days); analytics + GEO Mention/Citation/SoV events liveconversion-playbook.md
SEOGrowth (4-pillar: SEO / SMO / CRO / GEO) + Bolt (CWV + TTFB + FCP) + Polyglot (hreflang)Technical SEO checklist 100% (incl. AI Bot Policy, IndexNow, image/video schema); Schema.org valid + content-consistent; CWV all Green; content SEO intent-aligned (5 intents incl. Answer-Engine); Author entity with sameAs; Lighthouse Mobile Perf ≥ 90 / Acc ≥ 95 / BP ≥ 95 / SEO ≥ 95ia-blueprint.md §§ 2–4
IAFunnel (structure + scan pattern + navigation pattern) + Canvas (journey-map viz) + Echo (cognitive walk + baseline) + Prose (heading craft)IA rubric ≥ 15/20; one promise (Two-Promise Probe at UNDERSTAND) / 5-second scan / coherent scroll arc / chunking ≤ 7 elements above fold / clean heading hierarchy / navigation pattern locked at Structureia-blueprint.md § 1

Supporting file: reference/premium-handoff-protocols.md

Handoff Protocols

How funnel premium brokers work between stages and how it dispatches each delegate. Every delegate call carries a PREMIUM_LP_STAGE_BUNDLE. Every stage exit produces a STAGE_REPORT. There is no free-form delegation in funnel premium.


PREMIUM_LP_STAGE_BUNDLE Schema (Canonical)

The canonical envelope for every delegate invocation. SKILL.md presents a minimum payload view; this file is the source of truth.

PREMIUM_LP_STAGE_BUNDLE:
  Recipe: premium | lead-gen | saas | ecom | event | magnet
  Stage: DISCOVER | AUDIENCE | STRATEGY | STRUCTURE | DESIGN | BUILD | OPTIMIZE | VERIFY | LAUNCH
  Delegate: <agent name>
  Primary_Promise: <one sentence; locked at UNDERSTAND/RECIPE phase via Two-Promise Probe>
  Target_Persona: <persona ID or summary; from Audience stage onward>
  CVR_Target: <industry-calibrated value from conversion-playbook.md; from Strategy stage onward>
  Brand_System_Ref:
    path: <path to brand system record; mandatory from STRUCTURE onward>
    vision_archetype_locked: true | false
    saga_story_locked: true | false
    compete_positioning_locked: true | false
  Axis_Targets:
    design_rubric: ">= 20/27"          # Hero-Contract Legibility added as 9th criterion
    motion_rubric: ">= 15/20"
    brand_rubric: ">= 17/24"           # Trust-Signal Density added as 6th criterion
    ia_rubric: ">= 15/20"
    geo_rubric: ">= 15/20"             # /20 scale only — never /100
    lighthouse_mobile: { perf: ">=90", accessibility: ">=95", best_practices: ">=95", seo: ">=95" }
    cwv: { lcp_s: "<=2.5", inp_ms: "<=200", cls: "<=0.1", ttfb_ms: "<=800", fcp_s: "<=1.8" }
    a11y_baseline: WCAG_2.2_AA         # stretch AAA where feasible
    motion_inp_contribution_ms: "<=50" # hard ceiling, not aspiration
  Upstream_Outputs:
    - artifact: <path or summary>
      source_stage: <stage>
      source_agent: <agent>
  Constraints:
    tokens_source: <path to design tokens or "TBD">
    brand_direction: <path to direction.md or "TBD">
    framework: <react | vue | svelte | astro | static>
    locales: [<bcp47 codes> or single locale]
    asset_weight_budget: { hero_image_kb: 200, hero_video_mb: 2, font_total_kb: 100 }
  Success_Criteria:
    - <stage-gate criterion this delegate must hit>
  Provenance:
    project_state: .agents/funnel-premium/{project}.json
    decisions_log: .agents/funnel-premium.md
  Open_Questions:
    - <unresolved item the delegate should flag, not silently decide>

Rule: bundle must be complete for the stage being dispatched. Missing fields above the stage's "from" line are blocking. Brand_System_Ref must have all three *_locked flags true before any STRUCTURE-stage bundle is emitted (Brand System triple lock).

AUTORUN-Gate Matrix

When _AGENT_CONTEXT.mode = AUTORUN or AUTORUN_FULL, the following stage activities MUST emit _STEP_COMPLETE.Status = NEED_INFO and pause — they never proceed silently:

TriggerAction
Brand System triple lock incomplete at STRATEGY exitNEED_INFO with missing piece (archetype / story / positioning)
External paid API would be called (Builder image gen, etc.)NEED_INFO with budget estimate
Recipe switch mid-pipelineNEED_INFO with artifact-compatibility list
Fan-out would exceed 5 concurrent delegates (including cross-stage specialists)NEED_INFO with batching proposal
Brief carries two unrelated value propositions detectedNEED_INFO with one-promise question
Stage gate fails twice in a rowNEED_INFO with repair-or-cut choice
External API outage > 2 retries (Frame/Figma MCP, Builder)NEED_INFO with fallback options
Sentinel high-severity finding requires Builder dispatchNEED_INFO with routing recommendation

Delegate Outage Protocol

DelegateOutage SymptomFallback Path
Frame (Figma MCP 5xx)get_design_context failsManual screenshot bundle from user; downgrade Code Connect to handwritten mapping
Builder (image-gen timeout)hero asset not producedInk (vector illustration)
Voyager (BrowserStack/SauceLabs outage)E2E run failsLocal Playwright run on representative devices; flag risk in Launch dossier

Triggers OUTAGE recovery: 2 consecutive retries fail with same error class within 5 min.

State Persistence Discipline

.agents/funnel-premium/{project}.json is updated by funnel premium only. Delegates return values; they do not write state. Write protocol:

  1. Read current state.
  2. Compute merged state (append-only on decisions_log, replace-or-insert on stages.<STAGE>).
  3. Write to .agents/funnel-premium/{project}.json.tmp.
  4. Atomic rename .tmp.agents/funnel-premium/{project}.json.

decisions_log is append-only; never rewrite or reorder past entries. Each entry has {ts, decision, by, reason}.


Delegate-Specific Handoffs

To Field (DISCOVER)

Delegate: Field
Task: "Identify category structure, market signals, top 3 trends for <Primary_Promise>"
Required_Output:
  - category_definition
  - market_signals: [size, growth, segments]
  - top_3_insights: with citations
Constraints:
  scope: <consumer | B2B | both>
  region: <geo>

To Compete (DISCOVER)

Delegate: Compete
Task: "Teardown top 3–5 competitor LPs for <Primary_Promise>"
Required_Output:
  - competitor_list
  - feature_matrix
  - positioning_map
  - top_2_differentiation_hooks
  - ai_brand_visibility_snapshot
Constraints:
  exclude: <competitors to skip>

To Cast (AUDIENCE)

Delegate: Cast
Task: "Generate <n=1..3> personas for <Primary_Promise> targeting <segment>"
Required_Output:
  - persona_cards: name, role, goals, frictions, JTBD, channel, decision_driver
  - primary_persona_id
Constraints:
  registry: .agents/cast/registry.json  # reuse if applicable

To Pulse (STRATEGY)

Delegate: Pulse
Task: "Design KPI tree, funnel events, CVR target for <Recipe>"
Required_Output:
  - kpi_tree: primary (CVR) + 3..5 secondary
  - funnel_events: ordered event taxonomy
  - cvr_target:
      median: <from playbook>
      top_quartile: <from playbook>
      top_decile: <from playbook>
      chosen_target: <usually median × 1.5 → top-quartile>
      traffic_source_qualifier: <warm | cold | mixed>   # for lead-magnet, B2B contact, newsletter
      recipe_alignment_check: <recipe ↔ playbook row identifier>  # MUST match
  - north_star_metric
  - mention_rate_target: <for GEO measurement, ≥15% mention in AI-search>
  - citation_rate_target: <baseline + 30% via Growth/Beacon>
Constraints:
  industry_baseline_ref: conversion-playbook.md
  alignment_check: |
    if Recipe != row.recipe_id in conversion-playbook.md, FAIL fast.
    if traffic_source_qualifier missing for lead-magnet/B2B/newsletter, FAIL fast.

To Funnel (STRUCTURE)

Delegate: Funnel
Task: "Build LP structure for <Recipe> with primary persona <persona_id>"
Required_Output:
  - wireframe_outline: hero + 5..7 sections
  - cta_strategy: above-fold + repeat CTA placement
  - form_design: field list + progressive disclosure plan (if form-driven)
  - copy_direction_brief: headline angle + benefit framing + objection list + proof type
Constraints:
  framework_choice: <e.g., AIDA / PAS / BAB / 4Ps>
  one_promise_rule: enforced

To Prose (STRUCTURE)

Delegate: Prose
Task: "Write copy v1 for wireframe outline"
Required_Output:
  - headline + sub-headline (3 variants each for later A/B)
  - hero_cta_micro
  - benefit_block_copy (3..5)
  - objection_handling_copy
  - faq_copy (3..5 Q/A)
  - error_state_microcopy
Constraints:
  voice_and_tone: <from Vision or brand guide>
  reading_level: FK <range>

To Vision (DESIGN)

Delegate: Vision
Task: "Set creative direction for <Primary_Promise>, persona <persona_id>"
Required_Output:
  - direction.md: archetype, mood, type direction, palette intent, motion intent
  - rationale: why this direction wins for this persona
Constraints:
  brand_guide_ref: <path or "greenfield">
  archetype_constraints: <if locked>

To Muse (DESIGN)

Delegate: Muse
Task: "Produce tokens matching Vision direction"
Required_Output:
  - tokens.json (DTCG-aligned): color, type, spacing, radius, motion
  - apply_plan: where tokens go in codebase
Constraints:
  contrast_minimum: WCAG_2.2_AA
  existing_tokens_ref: <path or "new system">

To Forge (BUILD)

Delegate: Forge
Task: "Prototype the LP on Muse tokens"
Required_Output:
  - working_prototype: framework <choice>, tokens applied, no hardcoded values
  - lighthouse_prototype_score
Constraints:
  framework: <from Constraints>
  scope: "prototype only, not production"

To Artisan (BUILD)

Delegate: Artisan
Task: "Productionize the Forge prototype"
Required_Output:
  - production_code: type-safe, lint-clean, build-passing
  - component_structure
  - data_contracts (if any)
Constraints:
  tokens_source: <Muse output path>
  perf_budget: <from Constraints>
  framework_idioms: <e.g., RSC for Next.js, Composition API for Vue>

To Growth (OPTIMIZE)

Delegate: Growth
Task: "Run four-pillar optimization: SEO + SMO + CRO + GEO"
Required_Output:
  - seo_audit: meta, OGP, JSON-LD, heading hierarchy, alt text
  - smo_spec: social share cards (Twitter/X, OG)
  - cro_recommendations: CTA, form, exit-intent
  - geo_score: AI-citation readiness ≥ 90
Constraints:
  target_keywords: <from brief or Field>
  structured_data_types: <Product | Article | Event | Course | FAQ as applicable>

To Bolt (OPTIMIZE)

Delegate: Bolt
Task: "Hit perf budget"
Required_Output:
  - lighthouse_mobile: Perf ≥ 90, Acc ≥ 95, BP ≥ 95, SEO ≥ 95
  - cwv: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1
  - optimization_log: what changed and why
Constraints:
  preserve: motion intent (coordinate with Flow), copy fidelity (no truncation)

To Judge (VERIFY)

Delegate: Judge
Task: "Tri-engine review of production LP code"
Required_Output:
  - findings: P1/P2/P3 with grounding
  - intent_alignment_verdict
  - ship_recommendation: GO | NO_GO | CONDITIONAL
Constraints:
  spec_source: <Structure stage wireframe + copy spec>
  fail_on: any unresolved P1 or P2

To Voyager (VERIFY)

Delegate: Voyager
Task: "E2E test suite for LP"
Required_Output:
  - test_suite: happy path + form submit + CTA flows + error states + visual regression
  - run_result: green
  - a11y_test_result: AA pass
Constraints:
  framework: <Playwright | Cypress | WebdriverIO>
  ci_integration: <yes | no>

To Launch (LAUNCH)

Delegate: Launch
Task: "Release plan for LP"
Required_Output:
  - version
  - rollout_strategy: full | staged | canary
  - rollback_plan
  - feature_flag (if applicable)
  - changelog_entry
Constraints:
  release_window: <from user or default>
  dependent_systems: <e.g., analytics, CRM webhook, email automation>

Stage Output → Next-Stage Input Map

StageProducesConsumed By
DISCOVERcategory_definition, competitors, pain quotesAUDIENCE, STRATEGY, STRUCTURE
AUDIENCEpersonas, journey map, unmet needsSTRATEGY, STRUCTURE, DESIGN, VERIFY
STRATEGYKPI tree, CVR target, funnel eventsSTRUCTURE, BUILD, OPTIMIZE, LAUNCH
STRUCTUREwireframe, copy v1, form specDESIGN, BUILD, VERIFY
DESIGNdirection.md, tokens, a11y baseline, assetsBUILD, OPTIMIZE, VERIFY
BUILDproduction code, prototype, motion implOPTIMIZE, VERIFY
OPTIMIZELighthouse 90+, GEO 90+, first variantVERIFY, LAUNCH
VERIFYJudge ship-go, Voyager green, Attest 95%+LAUNCH
LAUNCHrelease dossier, live LP, analytics live(downstream Experiment runs)

Receiving Handoffs

From Nexus (NEXUS_TO_LURE_HANDOFF)

Schema in _common/HANDOFF.md. funnel premium reads Constraints, Scope, and Acceptance_Criteria, selects Recipe, and emits its first PREMIUM_LP_STAGE_BUNDLE.

From Judge (JUDGE_TO_LURE_FEEDBACK)

When Judge sends feedback on a previously shipped LP:

JUDGE_TO_LURE_FEEDBACK:
  Findings: <P1/P2/P3 list>
  Affected_Stages: [VERIFY, OPTIMIZE]  # what should have caught this
  Suggested_Fix: <agent + scope>

funnel premium either re-enters at Optimize or Verify (scoped repair) or escalates to user.


Emitting Outbound Handoffs

To Atelier (LURE_TO_ATELIER_HANDOFF)

When delegating the whole design pipeline (multi-artifact bundle):

LURE_TO_ATELIER_HANDOFF:
  Trigger: "LP + slide + 1-pager + marketing captures bundle"
  Primary_Promise: <one sentence>
  Persona: <persona_id>
  Brand_Direction: <path to direction.md or "needs Vision">
  Artifacts_Requested:
    - landing_page
    - slide_deck
    - 1_pager
    - hero_assets
  Tokens_Source: <existing or "needs Muse">
  Return_Schedule: "single closed-loop pipeline"

To Nexus (LURE_TO_NEXUS_ESCALATE)

When scope exceeds LP axis:

LURE_TO_NEXUS_ESCALATE:
  Reason: <multi-page site | full product | infra | brand identity>
  LP_Slice_Completed: <stages cleared so far>
  Open_Items: <what remains>
  Recommended_Routing: <next orchestrator or chain>

To User (LURE_PROGRESS_REPORT)

After each stage gate:

LURE_PROGRESS_REPORT:
  Recipe: <recipe>
  Stage_Reached: <stage>
  Gate_Outcome: PASS | FAIL_REPAIR | FAIL_ESCALATE | CONDITIONAL_PASS
  Artifacts: [<paths>]
  Open_Items: [<list>]
  Next: <stage to advance or question to user>
  ETA_Remaining_Stages: <count>

Persistence

State per project lives at .agents/funnel-premium/{project}.json:

{
  "project": "<id>",
  "recipe": "premium",
  "primary_promise": "...",
  "primary_persona": "...",
  "cvr_target": 0.05,
  "perf_budget": { "lcp_s": 2.5, "inp_ms": 200, "cls": 0.1 },
  "stages": {
    "DISCOVER": { "status": "PASS", "delegates": ["field","compete","voice"], "artifacts": ["..."] },
    "AUDIENCE": { "status": "PASS", "delegates": ["cast","echo","echo[demand]"], "artifacts": ["..."] },
    "...": {}
  },
  "decisions_log": [
    { "ts": "2026-05-16T10:00:00Z", "decision": "primary persona = ICP-1", "by": "user" }
  ]
}

Supporting file: reference/premium-ia-blueprint.md

IA Blueprint — Information Architecture, SEO & GEO

Information Architecture, technical SEO, content SEO, and AI-search GEO are interleaved disciplines. funnel premium treats them as one continuous axis: structure → readability → discoverability → citation-readiness.

The best LP is one a human scans in 5 seconds, Google parses in 50ms, and an LLM cites verbatim. Same structure does all three.


Section 1 — Information Architecture

1.1 Content Inventory & Hierarchy

Before wireframing, build a content inventory.

CONTENT_INVENTORY:
  Promise: "<one sentence — locked at Strategy>"
  Pillars:
    - id: P1
      claim: "<top benefit>"
      proof: ["<proof point>", "<proof point>"]
      objection: "<the doubt this raises>"
      counter: "<how we address it>"
    - id: P2
      claim: "..."
  Authority_Anchors:
    - type: numeric | named-customer | award | open-source | press | founder
      value: "<concrete>"
  Decision_Triggers:
    - type: risk-reversal | urgency | clarity | social
      value: "<concrete>"
  CTAs:
    Primary: { verb: "...", outcome: "..." }
    Secondary: { verb: "...", outcome: "..." }

Inventory drives section count: 1 hero + (1 section per pillar) + proof + objection + final CTA + FAQ.

1.2 Visual Hierarchy Patterns

PatternUseLayout heuristic
F-patternText-heavy, B2B, info-dense, blog-styleStrong left edge, headline + sub on left, supporting media right; eyes drop down left edge
Z-patternAbove-fold hero with CTATop-left logo → top-right utility/login → diagonal sweep to hero copy → CTA at bottom-right Z-tail
Layer-cakeProduct LPs, e-com, mobile-firstFull-width alternating sections, single column on mobile, hero image alternates left/right on desktop
Centered axisCalm UI, premium, focus-firstSingle column, generous whitespace, centered hero, mobile-identical
Card gridComparison, plan tiers, feature matrices2–4 column grid with consistent card anatomy

Choose ONE primary pattern per page. Don't mix Z and centered-axis in one LP.

1.3 Scroll Narrative

The page tells a story top-to-bottom. Default arc:

  1. Promise (hero) — what + for whom + why now
  2. Trust prime (logo strip / numbers) — borrow credibility before asking for it
  3. Pillar 1 — top benefit framed as outcome
  4. Pillar 2 — second benefit, often "how it works"
  5. Proof — specific outcome from named customer
  6. Pillar 3 — third benefit, often differentiation
  7. Objection — FAQ-style or comparison table
  8. Final push — risk-reversal + final CTA
  9. FAQ — scannable, 3–5 Q/A
  10. Footer — trust signals, legal, contact

Adjust order by Recipe (e-com pulls reviews higher; B2B pulls case study higher; lead-magnet collapses to 4–5 sections).

1.4 Content Chunking & Progressive Disclosure

  • One idea per section. If a section needs two H2s, split.
  • Scan-readable. Every section answers in 5 seconds: what it claims + what proves it.
  • Progressive disclosure: long copy → expandable cards. Form fields > 3 → multi-step. Detail dumps → tabs or accordions.
  • Cognitive load budget: keep distinct elements above the fold to 5-9, reduced to 5 on mobile. Craft default from scanning cost on a first-visit page — not a memory limit (_common/PROPORTION_AND_SPACING.md § Cognitive-capacity numbers). What actually blows the budget is competing CTAs and undifferentiated labels, so fix those before cutting the count.

1.5 Heading Hierarchy

Hierarchy serves IA + SEO + GEO + a11y simultaneously.

LevelUseCount per page
H1Page promise. One per page.Exactly 1
H2Pillar / section claim4–8
H3Sub-claim within a section0–3 per H2
H4Rarely needed; FAQ questions if usedOptional

Anti-patterns: skipping levels (H1 → H3), multiple H1s, H1 hidden visually for "SEO". Each heading must read as a meaningful claim, not a label.

1.6 Navigation Patterns

PatternWhen
No navSingle-purpose LPs, lead-magnets, event registration
Skinny utility barLogo + sign-in + secondary action only
Sticky CTALong LPs (> 2000 words), high-friction CTA
Anchor TOCLong LPs (> 5 sections), B2B comparison pages
Mobile bottom CTA barE-com, lead-gen on mobile
Exit-intent overlayLead-magnet downgrade, never on first-impression LPs

Anti-pattern: full site nav on LPs. Every link is a leak.

1.7 IA Quality Rubric

Ship target: ≥ 15/20.

Criterion4 — Excellent3 — Good2 — Weak1 — Broken
Single promiseOne promise, one pathMostlyTwo promisesThree+ promises
5-second scanPromise + proof + next step visible in 5sMostlySome frictionCannot scan
Scroll arcCoherent story top-to-bottomMostlyDisjointedRandom order
ChunkingOne idea per section, < 7 above-foldMostlyCrowdedWall of content
Heading hierarchyH1 + clean H2/H3 treeMostlySome skipsBroken tree

Section 2 — Technical SEO

2.1 Core Indexability

  • <title>: 50–60 characters. Brand + benefit + keyword. Unique per page.
  • Meta description: 140–160 characters. Compelling, includes primary keyword, ends with action verb.
  • Canonical URL: explicit <link rel="canonical"> on every page, including the page itself.
  • Robots: noindex, follow for staging / A/B variants; index, follow for production.
  • XML sitemap: page included; updated <lastmod>.
  • robots.txt: doesn't block the LP path; allows crawler access to JS/CSS.
  • hreflang: when multi-locale, every locale variant cross-references all others including itself; x-default set.

2.2 Structured Data (Schema.org / JSON-LD)

Choose the schema that matches the LP type. Validate with Rich Results Test before launch.

LP TypePrimary schemaOptional add-ons
SaaS / SaaS TrialSoftwareApplication or ProductOffer, AggregateRating (if reviews), Organization, FAQPage
E-com ProductProduct + OfferAggregateRating, Review, BreadcrumbList, Brand
Event / WebinarEventOffer (free/paid), Place (virtual: VirtualLocation)
Lead Magnet (book/template)Book / CreativeWorkPerson (author), Offer (free download)
CourseCourseOffer, Instructor, Provider
Service / ConsultingServiceOffer, Organization, Review
NewsletterOrganization + WebSiteSearchAction

Always include: Organization, WebSite, WebPage, BreadcrumbList, FAQPage (when FAQs exist), Person (when author authority matters).

2.3 Core Web Vitals (2026 thresholds)

MetricGoodNeeds improvementPoor
LCP (Largest Contentful Paint)≤ 2.5s2.5–4s> 4s
INP (Interaction to Next Paint)≤ 200ms200–500ms> 500ms
CLS (Cumulative Layout Shift)≤ 0.10.1–0.25> 0.25

Ship target: all three Good. Bolt owns this gate.

2.4 Open Graph / Twitter Cards

  • og:title, og:description, og:image (1200×630), og:url, og:type.
  • twitter:card = summary_large_image; twitter:title, twitter:description, twitter:image.
  • Per-locale variants when hreflang is in scope.

2.5 AI Crawler / Bot Policy (2026)

Robots policy must distinguish Training bots from Search/Retrieval bots. Blocking one does not block the other; conflating them costs AI-search visibility.

BotPurposeRecommended action
GPTBotOpenAI trainingAllow if licensing model includes training data; otherwise deny
OAI-SearchBotChatGPT Search retrievalAllow (denying disables ChatGPT Search citations)
ChatGPT-UserUser-initiated browsingAllow
ClaudeBotAnthropic trainingAllow or deny per training policy
Claude-SearchBotClaude Search retrievalAllow
Claude-UserUser-initiated browsingAllow
PerplexityBotPerplexity retrievalAllow
Google-ExtendedBard/Gemini trainingAllow or deny per training policy
Googlebot / Googlebot-ImageGoogle Search + AI OverviewsAllow

Anti-pattern: blanket Disallow: / for User-agent: * then forgetting AI search bots. Estimated 73% of sites unintentionally block Search-class bots this way.

Verify crawl access in production via server log inspection (presence of expected User-Agent hits within 7 days of launch). llms.txt is NOT honored by major AI crawlers as of 2026; do not rely on it.

2.6 Image & Video SEO

Images:

  • AVIF/WebP with JPEG fallback; lossy at quality 75–85
  • Explicit width and height attributes (prevents CLS)
  • loading="lazy" below fold; fetchpriority="high" on LCP image (never both)
  • srcset for responsive variants; sizes attribute set
  • Descriptive alt text matching surrounding context (NOT keyword-stuffed); decorative images use alt=""
  • ImageObject JSON-LD for hero / product images with caption, creditText, creator
  • Filename: kebab-case descriptive (product-name-feature-view.avif), not IMG_4823.jpg

Videos:

  • VideoObject JSON-LD with name, description, thumbnailUrl, uploadDate, duration, contentUrl
  • Transcript visible or via transcript field (also feeds GEO)
  • poster set; preload="metadata" default
  • Chapter markers via WebVTT for long-form (also surfaces in AI Overviews)

2.7 Resource Hints & Indexability

  • <link rel="preconnect"> for known third-party origins (fonts, analytics, CDN)
  • <link rel="dns-prefetch"> for opportunistic origins
  • <link rel="preload"> for LCP-critical font/image
  • IndexNow ping (Bing/Yandex; Cloudflare default in 2026) for instant indexing — supplements sitemap.xml, not replaces

2.8 Technical SEO Audit Checklist

Run at Optimize gate:

[ ] <title> unique, 50–60 chars (70 chars OK if question-form for AI Overview eligibility)
[ ] <meta description> 140–160 chars
[ ] Canonical tag present and correct
[ ] Robots directive correct (index/noindex per env)
[ ] AI bot policy explicit (Training vs Search differentiated per §2.5)
[ ] hreflang tags (if multi-locale); x-default set
[ ] XML sitemap entry present; IndexNow ping configured
[ ] JSON-LD primary schema valid (Rich Results Test)
[ ] Schema-content consistency (price/availability/rating match visible content)
[ ] Open Graph + Twitter Card complete; per-locale variants if multi-locale
[ ] All images optimized per §2.6 (AVIF/WebP, dimensions, alt, ImageObject for hero/product)
[ ] All videos schema'd per §2.6 (VideoObject, transcript)
[ ] H1 unique on page; H tree well-formed (no skipped levels)
[ ] Internal links use semantic anchors (not "click here")
[ ] No broken links (200 OK on all internal links); redirect chain ≤ 2 hops
[ ] HTTPS, valid cert, HSTS / CSP / X-Content-Type-Options / Referrer-Policy headers set
[ ] viewport meta present; tap targets ≥ 48×48 CSS px
[ ] Resource hints in place per §2.7
[ ] Mobile-friendly (Lighthouse Mobile: Perf ≥ 90, Acc ≥ 95, BP ≥ 95, SEO ≥ 95)
[ ] Core Web Vitals: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1, TTFB ≤ 800ms (p75), FCP ≤ 1.8s

Section 3 — Content SEO

3.1 Search Intent Alignment

Classify the target query:

IntentLP shapeCTA
InformationalEducation-led, deep content, examples, comparisonSoft CTA — newsletter / related resource
NavigationalBrand-led, clear "is this the right page" cuesDirect CTA — sign in / contact
Commercial investigationComparison, social proof, calculator, demoMid-friction CTA — demo / trial
TransactionalConversion-optimized hero, scarcity, trust, fast checkoutHigh-intent CTA — buy / start free trial
Answer-Engine (2026)TL;DR above fold + question-as-heading + stat-with-source + author bylinePage is the answer; secondary CTA = learn-more / brand-context

Mismatched intent = high bounce + zero CVR. Field + Growth align this at Discover / Strategy.

3.2 Keyword Strategy

  • One primary keyword per page; align with H1 + title + first paragraph.
  • 3–5 secondary keywords / semantic variants woven naturally through H2s and body.
  • Avoid stuffing: density check via Growth; if natural reading drops, rewrite.
  • Long-tail focus: target specific phrases (best invoicing tool for freelancers) over head terms (invoice).
  • Featured snippet eligibility: structured Q&A, definition paragraphs, lists, comparison tables.

3.3 E-E-A-T Signals + Author Entity

For high-trust categories (YMYL: health, finance, legal, news) and AI-search:

SignalHow to surface on LP
ExperienceFounder story, case studies, named customer testimonials, hands-on demos
ExpertiseAuthor credentials, published research, awards, certifications, technical depth in content
AuthoritativenessPress mentions, industry recognition, citations from authoritative sites, expert endorsements
TrustworthinessPrivacy / terms / security badges, transparent pricing, contact info, guarantee, real reviews

Author Entity is the structured implementation of E-E-A-T (also feeds GEO §4 citability):

{
  "@type": "Person",
  "name": "Author Name",
  "jobTitle": "Title / role",
  "worksFor": { "@type": "Organization", "name": "Brand" },
  "url": "https://brand.example/team/author",
  "sameAs": [
    "https://www.linkedin.com/in/author-handle",
    "https://orcid.org/0000-0000-0000-0000",
    "https://www.wikidata.org/wiki/Q...",
    "https://github.com/author-handle"
  ]
}

Wire Person into WebPage.author or Article.author. Visible byline + credentials line on the page itself. sameAs should reach at least one platform LLMs grade as authoritative (Wikidata, ORCID, Wikipedia, Crunchbase, major academic press).

3.4 Topical Authority

If the LP sits within a topical cluster:

  • Internal link to 3–5 pillar / supporting pages.
  • Mention the broader topic in the introduction.
  • Schema-graph the relationship via BreadcrumbList and WebPage.isPartOf.

Section 4 — GEO (Generative Engine Optimization)

LLM-driven search (Perplexity, ChatGPT search, Gemini, Claude search, AI Overviews) reads pages differently from traditional crawlers. They prefer pages that are:

  • Citable — facts attributable to a source
  • Structured — clear question-answer pairs
  • Concise — TL;DR, key takeaways, summary tables
  • Authoritative — author bylines, original data, named expertise

Scoring: GEO scores as an SEO sub-rubric on the /20 scale only (ship threshold ≥ 15/20) — the legacy ≥ 90 notation is deprecated. Growth owns the score, interleaving with IA, Branding (citable facts, author authority, freshness), and Prose (TL;DR and citable units authored under Growth's structural brief).

4.1 GEO Structural Patterns

PatternWhat it does
TL;DR block above foldLLMs lift this verbatim for citations. First 30% of page text accounts for ~44% of citations. Authorship rule: Prose writes the TL;DR under Growth's structural brief — never Growth directly, to preserve brand voice.
Question-as-headingIncreases chance of citation in conversational search; 120–180 words between headings yields ~70% more citations
Definition-first paragraphs"X is Y because Z" pattern matches LLM training
Comparison tables with rows = features, columns = optionsCited in "X vs Y" queries
Stat blocks with sources"$1B processed (Stripe, 2025)" — cited with attribution
FAQ with structured Q/ADirect lift into AI Overview
Stacked Schema (Article + ItemList + FAQPage triple)Up to 1.8× more AI citations vs single-schema pages (Princeton GEO research)
Author byline + credentialsE-E-A-T signal for LLM trust; couples to §3.3 Author Entity
Last-updated date visibleFreshness signal — LLMs prefer fresh sources

4.1.1 Per-Platform Tactics (2026)

Different AI search engines weight different signals. Tune for the platforms your audience actually uses.

PlatformCrawlerPrimary citation driversTactic
PerplexityPerplexityBotRecency + stat-with-source + URL-rich textDate-stamp content; embed primary-source stats; explicit author byline
ChatGPT SearchOAI-SearchBot + ChatGPT-UserStructured Q&A; clear definitionsFAQPage schema; question-as-H2; 40–60 word direct answers
Claude SearchClaude-SearchBot + Claude-UserAuthoritative sources (Wikipedia / Reuters / academic)Wikidata sameAs; press-link pyramid; cite primary sources
Google AI Overviews / AI ModeGooglebotExisting search rank × structured dataStrong technical SEO + FAQPage + HowTo + Speakable
GeminiGoogle-Extended + GooglebotSame as AI Overviews + multimodal contextAdd structured image/video schema + transcripts

4.2 GEO Content Patterns

  • Write answers first, context after. Inverted pyramid.
  • Include named entities (people, products, places, dates) — LLMs index entities.
  • Quote yourself in citable units — 1-sentence summaries that can stand alone.
  • Provide original data when possible — LLMs prefer primary sources over aggregators.
  • Avoid clickbait — LLMs deprioritize sources with weak factual grounding.

4.3 GEO Technical Patterns

  • Author and Organization schema with sameAs links to authoritative profiles (LinkedIn, Wikipedia, Wikidata, ORCID, Crunchbase, GitHub).
  • dateModified and dateCreated exposed in schema and visible UI.
  • mainEntityOfPage set on the primary content; @graph + @id cross-references for entity disambiguation.
  • citation field in schema for original research.
  • speakable schema for voice-AI answer eligibility.
  • HowTo schema for procedural content (high citation pickup in step-by-step queries).
  • QAPage (distinct from FAQPage) when the page itself answers one primary question.
  • AI-crawler access verified via server log within 7 days of launch (PerplexityBot / OAI-SearchBot / Claude-User hits present).

4.3.1 GEO KPIs (measurement, not just structure)

Pulse + Growth + Beacon coordinate measurement:

KPIDefinitionTarget
Mention Rate% of brand-relevant AI-search queries that mention the brand≥ 15%
Citation Rate% of mentions that include a clickable URL citationBaseline + 30% within 90 days of launch
Share of VoiceMentions of brand vs top 3 competitors across a fixed query setTracked; trend > 0

4.4 GEO Quality Rubric

Ship target: ≥ 15/20.

Criterion4 — Excellent3 — Good2 — Weak1 — Broken
TL;DR presentAbove fold, lift-readyPresent but buriedImplicit onlyAbsent
Question structureQuestion-as-heading throughoutSome questionsMostly statementsNo questions
Citable factsStat-with-source frequentSome stats sourcedStats without sourceVague claims
Author authorityNamed author + credentials + sameAsNamed author onlyImplicitAnonymous
FreshnessLast-updated visible + recentRecent but hiddenStaleNo date

Section 5 — Coordination With Other Disciplines

These rules keep IA + SEO + GEO aligned with Brand, Design, and Marketing:

  1. Heading text is brand voice. SEO requires keywords; brand requires voice. Solution: lead with brand voice, weave keyword naturally. Never sacrifice voice for keyword density.
  2. Schema must reference the brand system. Organization.name, Person.name, Product.name use the brand's canonical spelling.
  3. Trust signals serve all four — IA (above fold), SEO (E-E-A-T), GEO (authority), Brand (positioning). Place them once, well.
  4. Performance is an IA decision. Hero video weight, font weight, third-party scripts — all are IA trade-offs because they delay LCP and reduce scan-readiness.
  5. FAQ does triple duty. Objection handling (IA), FAQPage schema (SEO), AI Overview eligibility (GEO). Write FAQ once, deploy across all three.
  6. Internationalization is an IA + SEO + Brand decision. Polyglot extraction must preserve heading hierarchy, schema validity, and brand voice across locales.

Section 6 — IA / SEO / GEO Gate (Optimize stage)

Composite gate enforced by funnel premium at Optimize stage exit:

Sub-gateThresholdOwner
IA rubric≥ 15/20funnel premium + Funnel
Technical SEO checklistAll boxes tickedGrowth
Schema validityRich Results Test greenGrowth
CWVAll GreenBolt
Content SEOPrimary keyword aligned (title/H1/first para); intent matchedGrowth
GEO rubric≥ 15/20Growth

Fail → repair pass. Twice fail → escalate to user.


Supporting file: reference/premium-quality-gates.md

Quality Gates

Per-stage exit criteria for the funnel premium LP studio chain. A stage that fails its gate either repairs in place (≤1 retry) or escalates back to the user.

Gates are not negotiable. Recipe selection determines which stages run, but every stage that runs must clear its gate.


Gate Mechanics

OutcomeAction
PASSAdvance to next stage
FAIL_REPAIRRe-dispatch the same delegate(s) with corrective handoff; max 1 retry
FAIL_ESCALATEStop chain, persist state, ask user for direction
CONDITIONAL_PASSPass with an explicit follow-up logged; downstream stage receives the open item as a constraint

Gate evaluation is owned by funnel premium (not the delegate). funnel premium reads the delegate's output, checks against the gate's measurable criteria, and chooses outcome.

Oscillation Guard

If the same criterion flips PASS↔FAIL across 2 retries (same axis or cross-axis), funnel premium skips the standard 1-retry rule and escalates immediately to Magi for trade-off arbitration. Examples:

  • DESIGN AA contrast PASS → repair for Visual Hierarchy → contrast FAIL again → escalate (don't loop)
  • OPTIMIZE Motion ≥15/20 → Bolt INP repair → Motion drops to 14/20 → escalate (Bolt vs Flow ping-pong)
  • GEO 14/20 → Growth adds TL;DR → Brand voice variance ≥1.5 → escalate (Growth vs Prose conflict)

Trade-off Ping-Pong Detector

When repairing axis A causes axis B to regress in the same stage, do NOT use the 1-retry budget. Route to Magi for Logos/Pathos/Sophia arbitration. Common ping-pongs (see also "Axis Trade-off Discipline" below):

  • Motion richness vs INP budget (Flow ↔ Bolt)
  • Hero asset richness vs LCP (Builder/Ink ↔ Bolt)
  • SEO keyword density vs Brand voice (Growth ↔ Prose)
  • Detail-craft completeness vs release date (Vision/Palette ↔ Launch)

Stage 1 · DISCOVER Gate

Criteria:

  • 3+ market insights with citations (Field) — skip if recipe = saas/ecom/event/magnet with existing brand
  • Top 3 competitor LPs teardown with feature matrix + 2+ differentiation hooks (Compete)
  • Sentiment themes + top-5 pain quotes (Voice) — skip if no existing customers

Repair triggers:

  • Generic insights ("the market is growing") — re-dispatch with sharper brief
  • Competitor teardown missing CTA / above-fold analysis — re-dispatch
  • Pain quotes are summarized, not verbatim — re-dispatch for quotes

Escalate when:

  • Field cannot find category data → ask user for category framing
  • Compete cannot identify direct competitors → ask user to name them

Stage 2 · AUDIENCE Gate

Criteria:

  • 1–3 personas, each with: name, role, goals, frictions, jobs-to-be-done, channel, decision driver (Cast)
  • Journey map covering Awareness → Consideration → Decision → Post-purchase (canvas-rendered or text-form)
  • 5+ unmet needs ranked by intensity (Echo[demand])
  • Echo baseline mandatory: if a draft structure/wireframe exists, Echo cognitive walkthrough produces emotional friction score (target ≤ Medium). If none exists, Echo runs on Funnel's preliminary section-list spec at minimum — never skip entirely, otherwise VERIFY-stage re-walk has no baseline to compare against and design regressions become undetectable.

Repair triggers:

  • Personas are too generic ("decision maker, 30–50") — re-dispatch Cast with named ICP attributes
  • Journey map skips a stage — re-dispatch
  • Unmet needs duplicate published feature list — re-dispatch Echo[demand] with "feature gaps" reframing

Escalate when:

  • Cast cannot anchor on a primary persona without a stakeholder decision → ask user

Stage 3 · STRATEGY Gate

Criteria:

  • CVR target locked (Median / Top Quartile / Top Decile + chosen target + traffic-source qualifier), calibrated against conversion-playbook.md industry baseline; recipe_alignment_check PASS
  • KPI tree: primary (CVR) + 3–5 secondary metrics (Pulse)
  • Funnel event taxonomy: page_view → engagement → CTA_click → form_start → form_submit → success (Pulse)
  • North-Star metric named and consistent with KPI tree
  • GEO measurement plan: Mention Rate ≥15% target, Citation Rate baseline+30%, Share-of-Voice tracked (Pulse + Growth alignment)
  • Strategic deliberation logged (Magi) for: primary persona, primary objection, urgency framing
  • Brand System triple lock (machine-checkable): all three of vision_archetype_locked, saga_story_locked, compete_positioning_locked are true in the project state. Saga's Strategy-stage output is the brand story arc (Hero/Guide/Problem/Plan/Success/Failure); a separate narrative-copy pass happens at STRUCTURE.
  • Above-the-fold asset weight budget declared: hero image ≤200KB / hero video ≤2MB / total font ≤100KB. Hero asset lead-time risk surfaced (lead-time ≤ remaining stage budget).

Repair triggers:

  • CVR target not industry-anchored — re-dispatch Pulse with playbook reference
  • Event taxonomy missing form fields or success event — re-dispatch
  • Magi verdict is "no decision" — re-dispatch with sharper question

Escalate when:

  • User has not approved CVR target → ask once before Structure stage
  • Strategic deliberation reveals two-promise drift → escalate to enforce one-promise rule

Stage 4 · STRUCTURE Gate

Criteria:

  • Primary scan pattern locked (F / Z / Layer-cake / Centered axis / Card grid) per ia-blueprint.md §1.2
  • Navigation pattern decided (no-nav / utility bar / sticky CTA / anchor TOC / mobile bottom bar / exit-intent) per ia-blueprint.md §1.6
  • Wireframe outline: hero + 5–7 sections (Funnel)
  • Above-fold component set explicit: headline + sub-headline + hero CTA + (optional secondary CTA) + hero asset + (optional trust strip) — each present-or-absent decision logged
  • Copy v1 covering: headline, sub-headline, hero CTA, 3–5 benefits, 1+ objection handling, social proof block, FAQ (3–5 Q), final CTA (Funnel + Prose)
  • Reading level appropriate to persona (FK 6–9 for consumer, 8–11 for B2B) (Prose)
  • Saga arc (when invoked): narrative copy applied — before/after frame + customer hero arc on at least 1 testimonial; this is distinct from the Strategy-stage Brand Story arc
  • Form consent microcopy drafted (if form-driven LP): consent/unsubscribe/GDPR notice copy below form fields
  • Thank-you / post-conversion page sketched for lead-gen / magnet / event recipes

Repair triggers:

  • Hero copy fails the 5-second test (cannot answer "what / for whom / why now" in 5s) — re-dispatch Funnel + Prose
  • Objection handling absent or generic — re-dispatch Prose with persona objection list from Audience stage
  • Social proof block is placeholder ("[insert logos]") — re-dispatch with specific proof types (logos / numbers / quotes / case studies)

Escalate when:

  • Brand has no usable social proof yet → ask user to choose "trust mechanic" (founder authority / industry endorsement / press / open-source signals)

Stage 5 · DESIGN Gate

Criteria:

  • Vision direction approved (direction.md or equivalent) with: archetype, mood, type direction, palette intent
  • Tokens frozen (Muse) — color, type scale, spacing scale, radius, motion duration baseline
  • WCAG 2.2 AA contrast ratios verified — 4.5:1 text, 3:1 UI (Palette)
  • Hero assets locked (Ink or Builder) — production-ready, license-cleared
  • If Figma source exists: Frame extraction complete, Code Connect mapping if needed

Repair triggers:

  • AA contrast fails for any text — re-dispatch Muse to adjust palette
  • Hero asset is placeholder — re-dispatch Builder/Ink
  • Tokens contradict Vision direction (e.g., dark archetype with high-saturation accent) — re-dispatch Muse

Escalate when:

  • Vision direction is missing and user brief is ambiguous → route to Vision first, then resume
  • Hero asset requires paid API spend > approved budget → ask user

Stage 6 · BUILD Gate

Criteria:

  • Working prototype on tokens, no hardcoded values (Forge → Artisan)
  • Production code passes type-check, lint, build (Artisan)
  • Lighthouse Perf ≥ 80 on prototype (not yet 90 — that's Optimize stage)
  • Motion implementation respects prefers-reduced-motion (Flow)
  • i18n string extraction complete if Polyglot in scope — no hardcoded user-facing strings

Repair triggers:

  • Hardcoded color / spacing values found — re-dispatch Artisan with token reference
  • Type errors — re-dispatch Artisan
  • Motion breaks INP budget on test devices — coordinate Flow + Bolt

Escalate when:

  • Build framework choice was not specified and funnel premium cannot infer (no existing codebase) → ask user (React / Vue / Svelte / static)

Stage 7 · OPTIMIZE Gate

Criteria:

  • Lighthouse Mobile: Perf ≥ 90, Accessibility ≥ 95, Best Practices ≥ 95, SEO ≥ 95
  • Core Web Vitals: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1 — all Green; also TTFB ≤ 800ms (p75), FCP ≤ 1.8s
  • GEO rubric ≥ 15/20 (Growth) — JSON-LD, structured data, AI-search friendly headings, per-platform tactics. The /20 rubric is the canonical scale; ≥90 notation is deprecated.
  • First A/B variant designed with hypothesis, sample size (≥1000 conversions/variant, 95% significance, ≥14 days), decision criteria (Experiment)
  • Form CRO completed (if form-driven LP): field count justified by lead-quality filter rationale, label clarity, error state copy, segment-aware CTA where traffic permits
  • Schema-content consistency check: AI engines verify schema fields match visible page content (e.g., Offer.price matches displayed price)

Repair triggers:

  • Perf below 90 — re-dispatch Bolt with specific budget breach (LCP / INP / CLS)
  • SEO/GEO below 90 — re-dispatch Growth with missing-element list
  • Variant lacks measurable decision criteria — re-dispatch Experiment

Escalate when:

  • Perf budget cannot be met with current asset weight (e.g., hero video) → ask user about asset reduction
  • A/B test infrastructure missing → ask user about variant deployment strategy

Stage 8 · VERIFY Gate

Criteria:

  • Judge: zero unresolved P1 or P2 findings (P3 acceptable with explicit ack)
  • Voyager: E2E suite green covering happy path + form submit + CTA click + error states + visual regression baseline
  • Attest: spec compliance ≥ 95% AC coverage against Structure-stage wireframe + copy spec
  • Sentinel: zero high-severity findings (form input validation, headers, secrets scan, dependency CVE)
  • Echo re-walk: friction score ≤ Low (improved from Audience-stage baseline)
  • WCAG 2.2 AA: full audit pass (contrast, focus visible, keyboard reachable, ARIA roles, image alt text)

Repair triggers:

  • Any P1/P2 — re-dispatch Builder/Artisan with Judge findings
  • E2E flake — re-run; if reproducible, re-dispatch Voyager to stabilize
  • Attest coverage gap — re-dispatch Artisan to fix or update spec
  • Sentinel high finding — re-dispatch Sentinel with fix applied

Escalate when:

  • Judge finds an intent misalignment (built feature ≠ briefed feature) → escalate to user
  • Echo re-walk friction worsened vs. Audience stage → escalate; design regression

Stage 9 · LAUNCH Gate

Criteria:

  • Release plan: version, rollout strategy (full / staged / canary), rollback plan, feature flag if applicable (Launch)
  • PR ready: clean commits, conventional-commit messages, no agent names in commit/PR text (Guardian)
  • Analytics events live and emitting: at least page_view + CTA_click + form_submit verified in dashboard (Beacon)
  • Alert rules armed: 5xx spike, form-submit drop, CWV regression
  • First A/B variant queued or "control only" decision documented
  • Privacy / Terms / consent banner in place if PII collected (Cloak / Canon checked)

Repair triggers:

  • Analytics not firing — re-dispatch Beacon
  • Rollback plan missing — re-dispatch Launch
  • PR fails Guardian classification (e.g., commit contains agent name) — re-dispatch Guardian

Escalate when:

  • Rollback strategy requires infrastructure access funnel premium cannot grant → ask user
  • Legal review (Canon) flags unresolved compliance item → escalate

Cross-Stage Continuous Checks

These run continuously, not at a single gate:

CheckFrequencyOwnerThreshold
One-promise disciplineEvery stagefunnel premiumBrief carries one primary value prop. Two-promise drift = stop and ask.
Token disciplineBuild, Optimize, Verifyfunnel premiumNo hardcoded user-facing values in production code
Brand alignmentDesign, Build, Optimizefunnel premiumProduction rendering matches Vision direction.md and Brand System record
Persona alignmentStructure, Design, Verifyfunnel premiumCopy, design, and tested flow reference the same primary persona
Performance budgetBuild, Optimizefunnel premium + BoltLCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1 throughout
A11y baselineDesign, Build, Verifyfunnel premium + PaletteWCAG 2.2 AA never regresses

6-Axis Rubric Gate

Composite gate enforced at the DESIGN exit (Design / Animation / Branding rubrics) and the OPTIMIZE exit (Marketing / SEO / IA / GEO). All thresholds must clear before VERIFY.

AxisRubricThresholdOwnerSource
DesignVisual Hierarchy Rubric (9 criteria × 3 points; Hero-Contract Legibility added)≥ 20/27Vision + Muse + Palette + funnel premium (or Atelier — rubric still enforced)craft-standards.md § Design Discipline
AnimationMotion Quality Rubric (5 criteria × 4 points) — INP ≤50ms is hard ceiling, NOT a rubric criterion≥ 15/20Flow + Muse + Boltcraft-standards.md § Animation Discipline
BrandingBrand Quality Rubric (6 criteria × 4 points; Trust-Signal Density added)≥ 17/24Vision + Saga + Compete + Prosecraft-standards.md § Branding Discipline
MarketingCVR target + messaging hierarchy + variant queuedCVR target met (industry-calibrated, recipe-aligned, traffic-source qualified); first A/B variant designed; analytics events liveFunnel + Pulse + Growth + Experiment + Magiconversion-playbook.md
SEO (Technical)Technical SEO Audit Checklist (extended set)100% checkedGrowth + Bolt + Polyglotia-blueprint.md § 2
SEO (Content)Intent alignment + keyword discipline + E-E-A-T signals + Author entityIntent matched (incl. Answer-Engine intent if applicable); primary keyword aligned across title/H1/first paragraph; ≥ 2 E-E-A-T signals visible; Author entity with sameAs to authoritative profilesGrowth + Proseia-blueprint.md § 3
GEOGEO Quality Rubric (5 criteria × 4 points) on /20 scale only≥ 15/20Growthia-blueprint.md § 4
IAIA Quality Rubric (5 criteria × 4 points)≥ 15/20Funnel + Canvas + Echo + Proseia-blueprint.md § 1

Axis Repair Workflow

When an axis fails:

  1. funnel premium flags the failing criterion with score and gap.
  2. Re-dispatch the owning agent(s) with a focused repair bundle.
  3. Re-score the rubric.
  4. If still failing after one retry → escalate to user with a written choice (accept conditional pass / extend scope / cut feature).

Axis Trade-off Discipline

Conflicts between axes are managed, not silenced:

ConflictDefault resolution
SEO keyword vs. Brand voiceBrand voice wins; weave keyword naturally elsewhere
Motion richness vs. INP budgetINP budget wins; Flow trims motion to ≤ 50ms contribution
Hero asset richness vs. LCPLCP wins; compress, lazy-load below fold, swap to AVIF/WebP
Detail-craft completeness vs. release dateDetail craft wins for premium recipe; escalate for time-boxed event recipe
Calm-UI clarity vs. urgency framingCalm-UI wins when trust-driven persona, urgency wins when transactional persona; Magi arbitrates

Gate Reporting Format

After each stage, funnel premium emits a stage report in this shape and persists to .agents/funnel-premium/{project}.json:

STAGE_REPORT:
  Stage: STRUCTURE
  Outcome: PASS | FAIL_REPAIR | FAIL_ESCALATE | CONDITIONAL_PASS
  Delegates: [Funnel, Prose, Saga]
  Artifacts: [wireframe-v1.md, copy-v1.md, saga-arc.md]
  Gate_Checks:
    - check: hero answers what/for-whom/why-now in 5s
      result: PASS
    - check: objection handling present and specific
      result: FAIL_REPAIR
      action: re-dispatched Prose with persona objection list
  Open_Items: []
  Next_Stage: DESIGN

Supporting file: reference/recipes-index.md

Funnel Recipe Registry

The full Recipe table for funnel. funnel/SKILL.md carries only the dispatch allowlist; this file holds what is needed to execute a Recipe — activation condition and the files to read first.

Read this when a subcommand matched and you need its row, or when scanning what Recipes exist at all.


RecipeSubcommandDefault?When to UseOutput / BehaviorRead First
Build LPbuildFull LP design (starting from AIDA/PAS/BAB/4Ps framework selection)Section map + copy direction + CTA placement (≥3) + responsive specs + CWV targetsreference/patterns.md
CTA OptimizationctaCTA placement, copy, micro-copy optimizationCTA placement plan + button copy variants + constraints (size, contrast, microcopy)
Conversion AuditconversionConversion improvement and section audit for an existing LPAudit findings + section-level improvement plan + prioritized fix listreference/patterns.md
Responsive DesignresponsiveMobile-first implementation, tap targets, viewport optimizationResponsive section spec + breakpoint plan + tap-target / viewport rules
Form OptimizationformField minimization, progressive disclosure, autofill cooperation, validation, submit frictionForm spec — field-count cost model, single vs multi-step, autocomplete/inputmode contract, blur-time validation, submit state machine. Delegates: Artisan (impl), Prose (labels/errors), Growth (A/B), Muse (tokens)reference/form-lp-optimization.md
Copy AuthoringcopyHeadline formulas, hero body, value-prop clarity, microcopy shells, readability, toneLP copy — PAS/BAB/4U formulas, hero anatomy, clarity tests, benefit-vs-feature, microcopy shells, readability targets. Delegates: Prose (exact microcopy + voice), Growth (ads/nurture), Muse (type tokens), Vision (positioning)reference/copy-lp-authoring.md
Trust Signal PlacementtrustTestimonials, logo bars, case studies, badges, review aggregation, urgency vs dark patternsPlacement map — testimonial shape/quantity, logo bar treatment, metric- vs story-forward cases, certifications, review aggregation, honest-urgency red lines. Delegates: Prose (wording), Growth (review APIs + schema), Muse (tokens), Canon (FTC substantiation)reference/trust-signal-placement.md
Premium LP StudiopremiumStandard-to-premium full LP pipeline; select `premiumlead-gensaas

Supporting file: reference/trust-signal-placement.md

Trust Signal Placement Reference

Purpose: Place trust signals — testimonials, logo bars, case studies, certifications, reviews, and scarcity/urgency — where they do the most conversion work without crossing into deceptive patterns. Trust is not a section; it is a distributed asset woven through every scroll stop. This reference covers signal shape/quantity/placement, strength hierarchy, and the line between honest urgency and dark patterns.

Scope Boundary

  • Funnel trust: trust-signal inventory, hierarchy, and placement across LP sections. Structural decisions about what proof goes where.
  • Prose (elsewhere): testimonial pull-quote editing, case-study narrative polish, certification/badge alt-text wording.
  • Growth (elsewhere): review-aggregation feed integration (G2 / Capterra / Trustpilot APIs), rich-result schema for stars, ongoing testimonial harvesting playbook.
  • Muse (elsewhere): testimonial card / logo bar / badge design tokens (spacing, border-radius, shadow, grayscale treatment).
  • Canon (elsewhere): legal review of claim substantiation, endorsement disclosure (FTC / consumer-protection compliance), testimonial contractual rights.

If the question is "what kind of proof goes in the hero and what goes after benefits?" → trust. If it's "is this testimonial claim substantiated under FTC guidelines?" → Canon. If it's "how do we pull live reviews from Trustpilot?" → Growth.

Trust Signal Strength Hierarchy

Not all proof is equal. Rank by strength; place strongest where skepticism is highest.

RankSignalStrengthWhy
1Specific outcome metric with named sourceStrongest"Company X cut close-time 42% in 90 days — VP Sales, Company X" is unfalsifiable-in-public
2Named testimonial (photo + name + title + company)StrongAttribution makes the claim costly to fabricate
3Video testimonialStrongHarder to fake; body language adds credibility
4Case study with pre/post dataStrongLong-form, checkable, but requires scroll commitment
5Logo bar of well-known customersMedium-strongSocial proof by association; quantity 6-12 is the sweet spot
6User count ("Join 10,000+ teams")MediumAbstract but directional
7Third-party review aggregation (G2 4.7 / 450 reviews)MediumCredible when sourced, weak when unsourced
8Media mention logos ("As seen in TechCrunch")MediumDeclining value over time as category-standard
9Certification / compliance badge (SOC2, ISO 27001, GDPR)Medium (context-dependent)Strong for enterprise buyers, weak for consumer
10Award / industry badgeWeak-mediumDegraded by badge proliferation
11Anonymous testimonial ("J.S., Ohio")WeakestSuggests fabrication even when real

Rule: use the strongest available signal for the highest-skepticism moment (hero fold, pricing section, final CTA). Degrade gracefully only after.

GEO Signal Weight (Generative Engine Optimization, 2026)

The 2026 generative engines (ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews) summarise LPs to answer queries elsewhere. The trust-signal hierarchy above maps roughly to which signals are likely to survive the summarisation and be quoted in the AI answer:

GEO survivalSignal patternReason
Likely citedNamed testimonial with quantitative outcome (rank 1) + statistic with named sourceThe engine treats "[number] — [source]" as an extractable fact
Often citedThird-party review aggregation with provider name (G2 / Trustpilot / Capterra rating)Aggregator + score is parseable structured data
Rarely citedLogo bar without context, vanity awards, anonymous testimonialsNo verifiable string for the engine to lift
Hurts citationVague superlatives ("the leading…", "best-in-class") without attributionMarketing-tone phrases get filtered out as boilerplate

Practical rules for AI-citable trust signals:

  • Pair every aggregate stat with the source ("4.7 on G2 across 450 reviews" — not "4.7 rating").
  • Pair every customer outcome with name + title + company + a number so the AI engine has a verbatim citation candidate.
  • Ship trust signals as plain text + structured data (Review, AggregateRating, Organization schema.org JSON-LD) — the engines parse both, but JSON-LD survives layout changes better than HTML scraping. See growth/reference/... for the schema fields.
  • 2026 reference data point: sites present on 4+ review platforms are ~2.8x more likely to appear in ChatGPT recommendations.

Placement Map by LP Section

┌─────────────────────────────────────────────┐
│ HERO               │ Logo bar (6-8) OR user │
│                    │ count OR star rating   │
├─────────────────────────────────────────────┤
│ PAIN / PROBLEM     │ (usually none)         │
├─────────────────────────────────────────────┤
│ SOLUTION OVERVIEW  │ (usually none)         │
├─────────────────────────────────────────────┤
│ BENEFITS           │ 1 outcome-metric       │
│                    │ testimonial inline     │
├─────────────────────────────────────────────┤
│ SOCIAL PROOF       │ 3-5 named testimonials │
│                    │ + review aggregate     │
├─────────────────────────────────────────────┤
│ HOW IT WORKS       │ (usually none)         │
├─────────────────────────────────────────────┤
│ FEATURES           │ Certification badges   │
│                    │ (security/compliance)  │
├─────────────────────────────────────────────┤
│ PRICING            │ Guarantee badge +      │
│                    │ testimonial per plan   │
├─────────────────────────────────────────────┤
│ CASE STUDIES       │ 1-3 deep case studies  │
├─────────────────────────────────────────────┤
│ FAQ                │ (usually none)         │
├─────────────────────────────────────────────┤
│ FINAL CTA          │ Guarantee re-state +   │
│                    │ user count reminder    │
└─────────────────────────────────────────────┘

Rule: trust density peaks at decision moments (pricing, final CTA), not at the top. Frontloading all proof on the hero wastes it before the reader knows what's being sold.

Testimonial Shape

Structure each testimonial as Result → Challenge → Solution (lead with the outcome).

Template

"[Headline result / quote]"
— [Full name], [Title], [Company]
[Photo, 80-128px, circular or rounded]

Challenge: [one sentence]
Outcome: [metric-forward sentence]

Example (strong)

"We cut our monthly close from 12 days to 3." — Sarah Chen, VP Finance, Northwind Logistics

Challenge: Month-end consumed 60% of finance team capacity. Outcome: 3-day close, 2 analyst hires avoided, $180k saved annually.

Contrast: "Great product! Really helped us. — Sarah C." says nothing, abbreviates attribution, and increases skepticism.

Testimonial Quantity

LP sectionQuantity
Hero fold0-1 (tight pull-quote)
Inline in benefits1-2
Dedicated social-proof section3-5
Pricing section1 per plan (optional)
Case studies section1-3 deep

Rule: more than 5 testimonials in one block reads as overcompensation. Go deeper, not wider.

Logo Bars (Social Proof / "As Seen In")

Customer logo bar

  • Placement: hero bottom-edge or immediately after hero as an anchor band.
  • Quantity: 6-12 logos. Below 6 reads as sparse; above 12 reads as noisy.
  • Treatment: grayscale / single-tone to keep visual hierarchy with the primary CTA. Full-color logos compete.
  • Label: "Trusted by teams at" / "Powering" / "Chosen by" — concrete verb beats generic "Our customers".
  • Rotation: if you have >12 strong logos, rotate 6-8 per page load rather than scroll-carousel (carousels are ignored).

Media mention logo bar ("As seen in")

  • Placement: separate from the customer logo bar. Mixing dilutes both.
  • Treatment: same grayscale rule.
  • Label with specificity when possible: "Featured in TechCrunch's Series-A watchlist, 2025" beats "As seen in TechCrunch".
  • Staleness rule: drop media mentions older than 18 months unless they are category-defining.

Case Studies

Case studies sit between testimonials (short) and long-form content (marketing site). Decide length by audience.

FormatLengthBest for
Metric-forward card1 screen, hero metric + 3 supporting numbers + pull quoteExecutive / skim audience
Story-forward narrative400-800 words, challenge → approach → outcome arcConsidered-purchase, enterprise buyers
HybridMetric card on LP linking to full narrative pageDefault for B2B LP

Metric-forward template: Logo + 3 headline numbers (e.g., 42% close-time reduction · 3-day timeline · $180k annual savings) + pull quote + Read full story link.

Story-forward template: HEADLINE (transformation in one sentence) → CHALLENGE (metric-anchored) → APPROACH (specific features used) → OUTCOME (metric-anchored, time-bounded) → optional LOOKING AHEAD.

Certifications, Badges, and Guarantees

When they help

  • Enterprise buyers: SOC 2, ISO 27001, HIPAA, GDPR badges genuinely shorten the sales cycle. Place near pricing and in the footer.
  • E-commerce: money-back guarantee, secure-payment badge near checkout CTA. Lifts conversions 8-15%.
  • Regulated verticals (health, finance): required compliance badges near claims they substantiate.

When they hurt

  • Consumer LPs overloaded with "Award Winner 2019" / "Best of Web" badges — reads as defensive and dated.
  • Badge clutter near the hero CTA competes for attention with the CTA itself.

Rule: badge quantity cap per section: 3. Badge size cap: no larger than the CTA button.

Review Aggregation

When integrating third-party reviews (G2, Capterra, Trustpilot, App Store):

  • Show source + aggregate score + review count: ★ 4.7 · 450 reviews on G2.
  • Link out to the source — unlinked stars trigger skepticism.
  • Do not cherry-pick only 5-star reviews on the aggregation card; the aggregate score earns trust because it includes imperfect reviews.
  • Refresh cadence: stale "250 reviews" next to a live source showing 1,200 is a trust-killer. Pull live or refresh quarterly.

Scarcity and Urgency vs Deceptive Patterns

Scarcity and urgency are legitimate trust tools when honest. They become dark patterns when fabricated.

HonestDeceptive (avoid)
"Enrollment closes Friday — next cohort in March" (verifiably true)Perpetual "Ends today" countdown that resets on page load
"4 seats remaining in the March cohort" (real inventory)"Only 3 left!" on infinite-inventory SaaS
"Early-bird pricing through Oct 15" (real deadline with a real after-price)"50% off — today only" repeating every day
Live attendance indicator driven by real dataFake "17 people viewing" counter
Waitlist with real queue position"Join 10,000 on the waitlist" when list is < 100

Red lines (never ship):

  • Countdown timers that reset on refresh.
  • "X people bought this in the last hour" notifications with randomized data.
  • Pre-checked "Yes, send me marketing" boxes.
  • Price anchoring to a never-actual "was" price.
  • Hidden conditions that only surface at checkout.

Rule: if the scarcity message would be false when the user refreshes or comes back tomorrow, it is a dark pattern. Cut it.

Anti-Patterns

  • ❌ Anonymous testimonial with only initials and a state ("J.S., Ohio") — weaker than no testimonial.
  • ❌ All testimonials from the same week / same industry — looks coordinated.
  • ❌ Stock-photo headshots on testimonials (reverse-image search by a skeptic ends the deal).
  • ❌ "Trusted by the world's best companies" with no logos beneath — empty claim.
  • ❌ Full-color competing logos in the logo bar (fights the CTA for attention).
  • ❌ Certification badges larger than the primary CTA.
  • ❌ Fake countdown timers on evergreen offers.
  • ❌ Review aggregate without a link to the source.
  • ❌ Testimonial carousels that auto-rotate — users cannot re-read and skip entirely.
  • ❌ Case studies with outcomes but no starting metrics (42% improvement from what?).
  • ❌ Claiming certifications the product does not actually hold.

Handoff

To Prose (copy polish):

  • Raw testimonial quotes with attribution — Prose returns polished pull-quote editing while preserving original meaning.
  • Case-study narrative drafts — Prose returns voice-aligned final wording.
  • Badge alt-text for accessibility compliance.

To Growth (trust infrastructure):

  • Review-aggregation source list (G2, Capterra, Trustpilot, App Store) — Growth wires live API integration and schema.org markup for rich results.
  • Testimonial harvesting playbook cadence.
  • Dark-pattern audit checklist for ongoing scrutiny.

To Canon (legal):

  • Testimonial claims requiring substantiation (specific metrics, outcomes, named persons).
  • Endorsement disclosure obligations (FTC, EU consumer protection).
  • Certification badge usage rights (SOC 2 mark license terms, ISO re-certification deadlines).

To Muse (visual tokens):

  • Testimonial card states (default / featured / with-video / compact).
  • Logo bar spacing and grayscale treatment tokens.
  • Badge size/placement tokens.

How do I install Funnel in Cursor, Claude Code, or Codex?

Run npx skills add simota/agent-skills --skill funnel in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only Funnel, not every skill in the repository.

Where does Funnel come from and what license is it under?

Funnel comes from the simota/agent-skills repository on GitHub. That repository has 74 GitHub stars. The skill is published under the MIT license.

Prefer plain text? Read the Funnel guide as markdown.