Install in Claude Code
Copygit clone --depth 1 https://github.com/FerroxLabs/wayland /tmp/convert-squeeze-page && cp -r /tmp/convert-squeeze-page/resources/bundled-extensions/business-conversion/skills/convert-squeeze-page ~/.claude/skills/convert-squeeze-pageThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# Convert Squeeze Page - Single-Purpose Opt-In
> *"A squeeze page has one job. One promise. One field. One button. If anything else is on the page, it's stealing attention from the one thing you asked them to do."*
This skill builds a compressed-Method opt-in page: above-fold only, no scroll required, no secondary CTAs.
## When to Use
Trigger phrases: `squeeze page`, `opt-in page`, `email capture page`, `waitlist page`, `/convert squeeze <topic>`.
Use when the goal is **email capture** in exchange for a single specific promise - a free guide, a waitlist seat, a free training, an early-access invitation.
## When NOT to Use
- **Long-form sales page** → `/convert sales-page`.
- **Page that delivers the lead magnet after opt-in** → `/convert lead-magnet-page`.
- **Webinar registration (different intent)** → `/convert webinar-reg`.
- **Auditing existing opt-in page** → `/convert audit`.
## Inputs
Required:
1. **The promise** - what specifically does the reader get for their email? Not "tips" - *"the exact 6-email cold sequence that's pulled $1.4M for our agency clients."*
2. **One person + Nerve** (One Person Rule).
3. **Form destination** - where does the email post? (ESP endpoint, webhook URL, ConvertKit form ID, etc.)
4. **Post-opt-in destination** - where do they land after submit? (Usually the lead-magnet page or a thank-you page.)
Optional:
- **Brand colors / logo.**
- **Single proof line** - one Drive-By or one Receipt to add micro-credibility.
- **`out_path`** - defaults via `build_report_path`.
## Workflow - All Eight Method Phases (radically compressed)
A squeeze page can be 60–120 words total. Every Method phase still applies - they just collapse to one or two sentences each.
### Phase 0 - Four Questions (call `convert-four-questions`)
Answer the four, then collapse them into a single headline + single subhead. The headline answers Why You. The subhead answers Why This.
### Phase 1 - Temperature (call `convert-temperature`)
Squeeze pages run cool to warm. For Ice Cold, the squeeze should be reached *after* a bridge page, not directly. For Hot/Boiling, you can drop the page entirely and use an inline form on the previous asset.
### Phase 2 - Four-Layer Open (call `convert-open`)
Compressed to 1–2 sentences:
- Headline = Layer 1 (Nerve Strike).
- Subhead = Layer 2 (Side Door) + Layer 3 (Skin in Game) compressed.
- Layer 4 (Fingerprint) lives in a single one-line aside under the button.
### Phase 3 - Three Locks (call `convert-three-locks`)
- **Want** = the headline + the promise.
- **Trust** = one Drive-By proof line below the form.
- **Excuse** = there isn't one - opting in is free, so the Excuse lock pre-opens itself.
### Phase 4 - Bullets (call `convert-bullets`)
3 bullets. ONE Keyhole, ONE Snapshot, ONE Flip - that's it. They sit between the subhead and the form. A squeeze with more than 3 bullets is no longer a squeeze.
### Phase 5 - Proof (call `convert-proof`)
One line. Drive-By format. *"From the team that's helped 14,000 SMBs ship paid traffic since 2014."* That's the entire proof budget.
### Phase 6 - Cascade Close (call `convert-close`)
The form is the close. Button label IS the door. Use the **Door** + **Vision** patterns: button copy paints the state, not the action.
- ✗ "Submit" / "Sign up"
- ✓ "Send me the guide" / "Get the cold-email sequence" / "Reserve my seat"
### Phase 7 - Greased Chute (call `convert-chute`)
There's no scroll, so chute = eye flow. Headline → subhead → bullets → form → proof line → reassurance line. The eye must move from one to the next without bouncing.
### Phase 8 - Voice + Bullshit Filter
Squeeze copy is the most exposed copy you'll write because it's so short. Every word is load-bearing. Read aloud twice.
## Section Architecture (above-fold only)
| # | Section | Lines |
|---|---------|-------|
| 1 | Headline (Nerve Strike) | 1 |
| 2 | Subhead (Side Door + Skin) | 1 |
| 3 | Three bullets (K + Sn + F) | 3 |
| 4 | Email field + button | 1 |
| 5 | Privacy/reassurance line | 1 |
| 6 | Drive-By proof line | 1 |
Total: ~80 words. Single column. Mobile-first.
## HTML/CSS Reference Implementation
```html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{HEADLINE}} - {{BRAND}}</title>
<meta name="description" content="{{META_DESCRIPTION}}">
<meta property="og:title" content="{{HEADLINE}}">
<meta property="og:description" content="{{META_DESCRIPTION}}">
<meta property="og:type" content="website">
<meta property="og:image" content="{{OG_IMAGE_URL}}">
<style>
:root{--ink:#0e1116;--ink-soft:#3a3f47;--paper:#fbfaf6;--accent:#c0392b;--accent-ink:#fff;--rule:#e6e2d8;--max:560px}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font:18px/1.55 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--paper);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
main{max-width:var(--max);width:100%}
h1{font-size:clamp(26px,5vw,38px);line-height:1.18;margin:0 0 12px}
p.subhead{font-size:18px;color:var(--ink-soft);margin:0 0 20px}
ul.bullets{list-style:none;padding:0;margin:0 0 24px}
ul.bullets li{padding:8px 0 8px 24px;position:relative}
ul.bullets li::before{content:"";position:absolute;left:4px;top:16px;width:8px;height:8px;background:var(--accent);border-radius:50%}
form{display:grid;grid-template-columns:1fr;gap:10px;margin:0 0 12px}
@media(min-width:480px){form{grid-template-columns:1fr auto}}
label.sr{position:absolute;left:-9999px}
input[type=email]{padding:16px 14px;font-size:17px;border:1px solid var(--rule);border-radius:6px;background:#fff;color:var(--ink)}
input[type=email]:focus-visible{outline:3px solid var(--accent);outline-offset:1px}
button.cta{padding:16px 22px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:6px;font-size:17px;font-weightMore from this repository
architectureSkill
|
bump-versionSkill
Use when bumping the Wayland version: update package.json, run checks, branch, commit, push, create PR, wait for merge, tag release.
fix-issuesSkill
|
fix-sentrySkill
|
i18nSkill
|
oss-prSkill
Use when creating a pull request, after committing changes, or when user invokes /oss-pr. Covers branch management, quality checks, commit, push, and PR creation.
pr-automationSkill
|
pr-fixSkill
|