Landing Page Director
Build a landing page the way a paid studio would for a client who has already rejected
templated pitches: one committed visual direction, grounded in the product's real brand
facts, verified in a real browser before it's called done. This skill does not replace
frontend-design — it sequences it correctly, adds a brand-facts gathering step so the
build starts from real constraints instead of invented ones, and adds a concrete
checklist for the specific patterns that make AI-built landing pages read as generated
rather than designed.
If this skill was invoked with an argument, that argument is the product/page/goal.
Otherwise, ask the user what surface this page is for before continuing.
1. Load the real design skill first — don't reinvent it
Before writing any markup, load Anthropic's own frontend-design skill
(Skill(skill: "frontend-design:frontend-design") if installed as a plugin here, or the
equivalent frontend-design skill if only the unscoped name is listed). That skill is
the authoritative source for typography pairing, color-token discipline, motion
restraint, and the brainstorm → critique → build → critique-again loop. This skill does
not restate it — it adds what that skill doesn't cover: brand-fact grounding, brief
structure, and a landing-page-specific anti-slop checklist.
2. Model tier: Fable for the creative passes, current tier for mechanical edits
Fable is this skill's default UI model for the creative build. Dispatch the actual
structural and creative passes (token system, layout, copy direction) through the
Agent tool with model: "fable" set explicitly, rather than building the page inline
on the current tier. Write the prompt as a self-contained brief per §4 — the subagent
has not seen this conversation.
If the brief is large (a full multi-section site, not one hero), consider asking for
extended/max effort in that one dispatch rather than splitting it into many small
follow-ups — one pass that covers the whole scope tends to hang together better, because
the model keeps one coherent token system in view the whole time. That fits best when
the scope and source of truth are already well-defined (a known brief, a reference to
match). For genuinely exploratory work — where the creative direction itself is still
being decided — a build-then-critique loop across several smaller passes tends to
converge better, because it leaves room to react to what actually got built instead of
pre-committing to a plan.
Once the creative direction is locked, drop back to the current tier for small
mechanical edits — nudging a spacing value, deleting a stray divider, adjusting one font
size. Paying premium-tier cost for that kind of edit is waste. (This Fable default is
this skill's own choice, not a rule inherited from the escalate skill's general table
— that table routes to opus for stakes/difficulty and doesn't cover model choice for
creative-direction work like this. Don't expect it to make this decision for you.)
3. Ground it in the product's actual brand facts, every time
Don't let the subagent invent brand identity — gather these fact types first and feed
them in, asking the user rather than guessing where the repo doesn't already answer them:
- Display name. How the product/brand is actually capitalized and written where a
human reads it — this is often not identical to a lowercase package/repo identifier.
- Mark/logo. The actual source file (SVG or otherwise) if one exists — read it,
don't approximate a gradient or shape from memory. If no mark exists yet, say so
rather than inventing one inline.
- Color source of truth. Find the project's actual design tokens (a
theme.css,
a Tailwind config, a CSS custom-property block) and read them directly rather than
trusting a written brand doc — token files drift faster than docs, and a stale doc
describing a superseded rule is a common trap. If both exist and disagree, the token
file wins; note the discrepancy to the user rather than silently picking one.
- The one real differentiator. What this product actually does that's true and
specific, not generic SaaS positioning — a real mechanism, workflow, or capability,
ideally with a real screenshot or mockup if one exists. This is what the hero should
show or simulate; don't let it default to a generic device mockup, abstract blob
illustration, or stock photo standing in for something real.
- Tone. How the brand actually talks — technical-confident, playful, enterprise,
etc. — and any positioning constraints (e.g. tool-agnostic language that shouldn't
imply an exclusive partnership that doesn't exist).
Mark anything genuinely unknown as unknown instead of letting the model invent stats,
testimonials, pricing, or metrics.
4. Brief structure that gets a non-generic result
Use this shape when writing the subagent prompt in §2:
- Goal — exact page type and what it needs to accomplish (ship a first-look landing
page for X, produce N genuinely different directions to choose between, etc).
- Context — the brand facts from §3, audience, tone.
- Inputs — real assets: the actual mark/logo file, actual copy fragments if any
exist, actual screenshots of the product if any exist.
- Constraints — brand rules that must hold (which colors are reserved for the mark
vs. general UI, no invented metrics, self-contained file, no external requests beyond
system fonts if the target is an Artifact).
- Process — ask for the two-pass loop: brainstorm a compact token system (color,
type, layout, one signature element) and self-critique it against generic-AI-design
defaults (§5) before writing any code.
- Output format — sections required (hero, feature highlights tied to real product
truths, CTA, footer), and whether it's a standalone HTML file or an Artifact.
- Quality check — see §5.
- Next action — usually: produce 2–3 real directions, not variations on one theme,
for the human to react to.
5. Quality check — concrete anti-slop list
Beyond what the loaded frontend-design skill already screens for (templated palettes,
generic type pairing, decorative-marker overuse, over-animation), check specifically for
patterns that read as generated rather than designed:
- Decorative grid-line backgrounds — a hairline hatch tiled by a fixed-pixel cell
behind ordinary content is a recurring tell. Reserve it for content that's actually a
blueprint/canvas/measurement surface; if the hero already carries a real grid motif
(a dashboard, a table, a multi-pane layout), it doesn't need a decorative echo behind
it too.
- Purple gradient on a light/cream background as the reflexive "modern SaaS" choice.
- Numbered markers (01 / 02 / 03) used as pure decoration where the content isn't
actually an ordered sequence.
- One accent color used everywhere instead of a deliberate dominant + sharp-accent
pairing.
- Uniform, scattered micro-animation on every element instead of one orchestrated
moment (page load, or a scroll-driven sequence, chosen deliberately) plus restrained,
purposeful micro-interactions elsewhere.
- Decorative strokes/borders added by default — an outline plus a fill on the same
card, a divider rule between every section regardless of whether it's earning its
keep. This is one of the most common things people end up asking the model to remove
after a first draft — check for it as a matter of course rather than waiting to notice
it.
- Hierarchy drift — a stat, badge, or secondary label sized or weighted so it
competes with the actual headline or primary CTA for attention. Check explicitly:
does anything on the page win the eye before the thing that's supposed to win it does?
If a background video or image reads as visibly pasted onto the page rather than part
of it, a CSS blend mode (mix-blend-mode, e.g. exclude/multiply/screen depending
on the asset) on top of the right base color is a concrete, cheap fix worth trying
before regenerating the asset itself.
6. Verify before calling it done
- Actually open the result in a browser (or render the Artifact) and look at it — don't
approve from reading the markup. Scroll the whole page, trigger the hover/scroll
states, check both light and dark if the surface supports it.
- Check
prefers-reduced-motion is respected if the design leans on motion.
- Check responsive behavior down to a narrow viewport, not just desktop width.
- If publishing as a Claude Artifact, load
artifact-design first as that tool
requires, and give each variant a distinct favicon/title so they're easy to tell apart
when the human compares them side by side.
7. Optional power-ups, once the basics are solid
These are worth reaching for when the brief calls for more than a well-designed static
page — none of them substitute for §1–§6, and a well-executed simple page beats a
power-up-laden generic one:
- Reference imagery. If the human has screenshots of sites or products they like the
feel of, feeding those in as visual anchors narrows the direction far more reliably
than describing taste in words. Treat gathering a handful of references (color,
typography, one graphic motif — not necessarily all from the same source) as its own
short, time-boxed step rather than skipping straight to prompting. Combining unrelated
references into one new direction is the point — the goal is a synthesis, not a copy
of any single source.
- Matching a reference font by eye. When a reference image implies a typeface but
doesn't name one, a model reading the image alone often gets it wrong. Comparing the
reference visually against a page of common free typefaces and picking the closest
match by eye, then naming that font explicitly in the brief, is more reliable than
asking the model to infer it from pixels.
- Real product screenshots in the hero instead of a stylized mockup, once the
product has UI worth screenshotting.
- AI-generated hero imagery for illustration-heavy directions, when a literal
product shot or mockup isn't the right hero device for that particular concept.
- Existing component libraries for polish details — check license and the project's
.ossallowlist conventions before vendoring anything.
- Competitor/reference-site research to ground positioning claims in what's actually
true relative to real alternatives, not assumed.
Boundaries with other skills in this repo (don't duplicate these)
frontend-design owns the actual design methodology (§1) — this skill sequences
it and adds brand grounding, not a replacement.
escalate owns general task-difficulty routing; this skill's §2 tiering is its
own creative-direction call, not derived from escalate's table.
app-icon-director is for app icons specifically, not full pages.
impeccable (if installed) is for app/product UI, not marketing/landing pages.
dataviz / artifact-design / artifact-diagramming own chart, Artifact,
and diagram fundamentals if the page (or a section of it) is published as an Artifact.
motion-graphics-director is for standalone animated graphics from video content,
not landing pages — a different output entirely, though it shares this skill's
anti-slop instinct.
1---2name: landing-page-director3description: Build a distinctive, non-generic marketing/landing page grounded in a product's real brand facts, verified in a real browser. Use for a "beautiful"/"next level" product website, 'Landingpage erstellen', 'Website-Redesign', a launch page.4---56# Landing Page Director78Build a landing page the way a paid studio would for a client who has already rejected9templated pitches: one committed visual direction, grounded in the product's real brand10facts, verified in a real browser before it's called done. This skill does not replace11`frontend-design` — it sequences it correctly, adds a brand-facts gathering step so the12build starts from real constraints instead of invented ones, and adds a concrete13checklist for the specific patterns that make AI-built landing pages read as generated14rather than designed.1516If this skill was invoked with an argument, that argument is the product/page/goal.17Otherwise, ask the user what surface this page is for before continuing.1819## 1. Load the real design skill first — don't reinvent it2021Before writing any markup, load Anthropic's own `frontend-design` skill22(`Skill(skill: "frontend-design:frontend-design")` if installed as a plugin here, or the23equivalent `frontend-design` skill if only the unscoped name is listed). That skill is24the authoritative source for typography pairing, color-token discipline, motion25restraint, and the brainstorm → critique → build → critique-again loop. This skill does26not restate it — it adds what that skill doesn't cover: brand-fact grounding, brief27structure, and a landing-page-specific anti-slop checklist.2829## 2. Model tier: Fable for the creative passes, current tier for mechanical edits3031Fable is this skill's default UI model for the creative build. Dispatch the actual32structural and creative passes (token system, layout, copy direction) through the33`Agent` tool with `model: "fable"` set explicitly, rather than building the page inline34on the current tier. Write the prompt as a self-contained brief per §4 — the subagent35has not seen this conversation.3637If the brief is large (a full multi-section site, not one hero), consider asking for38extended/max effort in that one dispatch rather than splitting it into many small39follow-ups — one pass that covers the whole scope tends to hang together better, because40the model keeps one coherent token system in view the whole time. That fits best when41the scope and source of truth are already well-defined (a known brief, a reference to42match). For genuinely exploratory work — where the creative direction itself is still43being decided — a build-then-critique loop across several smaller passes tends to44converge better, because it leaves room to react to what actually got built instead of45pre-committing to a plan.4647Once the creative direction is locked, drop back to the current tier for small48mechanical edits — nudging a spacing value, deleting a stray divider, adjusting one font49size. Paying premium-tier cost for that kind of edit is waste. (This Fable default is50this skill's own choice, not a rule inherited from the `escalate` skill's general table51— that table routes to `opus` for stakes/difficulty and doesn't cover model choice for52creative-direction work like this. Don't expect it to make this decision for you.)5354## 3. Ground it in the product's actual brand facts, every time5556Don't let the subagent invent brand identity — gather these fact *types* first and feed57them in, asking the user rather than guessing where the repo doesn't already answer them:5859- **Display name.** How the product/brand is actually capitalized and written where a60 human reads it — this is often not identical to a lowercase package/repo identifier.61- **Mark/logo.** The actual source file (SVG or otherwise) if one exists — read it,62 don't approximate a gradient or shape from memory. If no mark exists yet, say so63 rather than inventing one inline.64- **Color source of truth.** Find the project's actual design tokens (a `theme.css`,65 a Tailwind config, a CSS custom-property block) and read them directly rather than66 trusting a written brand doc — token files drift faster than docs, and a stale doc67 describing a superseded rule is a common trap. If both exist and disagree, the token68 file wins; note the discrepancy to the user rather than silently picking one.69- **The one real differentiator.** What this product actually does that's true and70 specific, not generic SaaS positioning — a real mechanism, workflow, or capability,71 ideally with a real screenshot or mockup if one exists. This is what the hero should72 show or simulate; don't let it default to a generic device mockup, abstract blob73 illustration, or stock photo standing in for something real.74- **Tone.** How the brand actually talks — technical-confident, playful, enterprise,75 etc. — and any positioning constraints (e.g. tool-agnostic language that shouldn't76 imply an exclusive partnership that doesn't exist).7778Mark anything genuinely unknown as unknown instead of letting the model invent stats,79testimonials, pricing, or metrics.8081## 4. Brief structure that gets a non-generic result8283Use this shape when writing the subagent prompt in §2:84851. **Goal** — exact page type and what it needs to accomplish (ship a first-look landing86 page for X, produce N genuinely different directions to choose between, etc).872. **Context** — the brand facts from §3, audience, tone.883. **Inputs** — real assets: the actual mark/logo file, actual copy fragments if any89 exist, actual screenshots of the product if any exist.904. **Constraints** — brand rules that must hold (which colors are reserved for the mark91 vs. general UI, no invented metrics, self-contained file, no external requests beyond92 system fonts if the target is an Artifact).935. **Process** — ask for the two-pass loop: brainstorm a compact token system (color,94 type, layout, one signature element) and self-critique it against generic-AI-design95 defaults (§5) before writing any code.966. **Output format** — sections required (hero, feature highlights tied to real product97 truths, CTA, footer), and whether it's a standalone HTML file or an Artifact.987. **Quality check** — see §5.998. **Next action** — usually: produce 2–3 real directions, not variations on one theme,100 for the human to react to.101102## 5. Quality check — concrete anti-slop list103104Beyond what the loaded `frontend-design` skill already screens for (templated palettes,105generic type pairing, decorative-marker overuse, over-animation), check specifically for106patterns that read as generated rather than designed:107108- **Decorative grid-line backgrounds** — a hairline hatch tiled by a fixed-pixel cell109 behind ordinary content is a recurring tell. Reserve it for content that's actually a110 blueprint/canvas/measurement surface; if the hero already carries a real grid motif111 (a dashboard, a table, a multi-pane layout), it doesn't need a decorative echo behind112 it too.113- **Purple gradient on a light/cream background** as the reflexive "modern SaaS" choice.114- **Numbered markers (01 / 02 / 03)** used as pure decoration where the content isn't115 actually an ordered sequence.116- **One accent color used everywhere** instead of a deliberate dominant + sharp-accent117 pairing.118- **Uniform, scattered micro-animation** on every element instead of one orchestrated119 moment (page load, or a scroll-driven sequence, chosen deliberately) plus restrained,120 purposeful micro-interactions elsewhere.121- **Decorative strokes/borders added by default** — an outline plus a fill on the same122 card, a divider rule between every section regardless of whether it's earning its123 keep. This is one of the most common things people end up asking the model to remove124 after a first draft — check for it as a matter of course rather than waiting to notice125 it.126- **Hierarchy drift** — a stat, badge, or secondary label sized or weighted so it127 competes with the actual headline or primary CTA for attention. Check explicitly:128 does anything on the page win the eye before the thing that's supposed to win it does?129130If a background video or image reads as visibly pasted onto the page rather than part131of it, a CSS blend mode (`mix-blend-mode`, e.g. `exclude`/`multiply`/`screen` depending132on the asset) on top of the right base color is a concrete, cheap fix worth trying133before regenerating the asset itself.134135## 6. Verify before calling it done136137- Actually open the result in a browser (or render the Artifact) and look at it — don't138 approve from reading the markup. Scroll the whole page, trigger the hover/scroll139 states, check both light and dark if the surface supports it.140- Check `prefers-reduced-motion` is respected if the design leans on motion.141- Check responsive behavior down to a narrow viewport, not just desktop width.142- If publishing as a Claude Artifact, load `artifact-design` first as that tool143 requires, and give each variant a distinct favicon/title so they're easy to tell apart144 when the human compares them side by side.145146## 7. Optional power-ups, once the basics are solid147148These are worth reaching for when the brief calls for more than a well-designed static149page — none of them substitute for §1–§6, and a well-executed simple page beats a150power-up-laden generic one:151152- **Reference imagery.** If the human has screenshots of sites or products they like the153 feel of, feeding those in as visual anchors narrows the direction far more reliably154 than describing taste in words. Treat gathering a handful of references (color,155 typography, one graphic motif — not necessarily all from the same source) as its own156 short, time-boxed step rather than skipping straight to prompting. Combining unrelated157 references into one new direction is the point — the goal is a synthesis, not a copy158 of any single source.159- **Matching a reference font by eye.** When a reference image implies a typeface but160 doesn't name one, a model reading the image alone often gets it wrong. Comparing the161 reference visually against a page of common free typefaces and picking the closest162 match by eye, then naming that font explicitly in the brief, is more reliable than163 asking the model to infer it from pixels.164- **Real product screenshots** in the hero instead of a stylized mockup, once the165 product has UI worth screenshotting.166- **AI-generated hero imagery** for illustration-heavy directions, when a literal167 product shot or mockup isn't the right hero device for that particular concept.168- **Existing component libraries** for polish details — check license and the project's169 `.ossallowlist` conventions before vendoring anything.170- **Competitor/reference-site research** to ground positioning claims in what's actually171 true relative to real alternatives, not assumed.172173## Boundaries with other skills in this repo (don't duplicate these)174175- **`frontend-design`** owns the actual design methodology (§1) — this skill sequences176 it and adds brand grounding, not a replacement.177- **`escalate`** owns general task-difficulty routing; this skill's §2 tiering is its178 own creative-direction call, not derived from `escalate`'s table.179- **`app-icon-director`** is for app icons specifically, not full pages.180- **`impeccable`** (if installed) is for app/product UI, not marketing/landing pages.181- **`dataviz`** / **`artifact-design`** / **`artifact-diagramming`** own chart, Artifact,182 and diagram fundamentals if the page (or a section of it) is published as an Artifact.183- **`motion-graphics-director`** is for standalone animated graphics from video content,184 not landing pages — a different output entirely, though it shares this skill's185 anti-slop instinct.