← Vault Index
Source: frameworks/kit-offer-page/05-offer-page-build-skill.md

Build Skill — Offer Page Production Workflow

How to Use This Skill

Follow this workflow in order for every offer page build. Do not skip the inputs validation. Building without complete inputs produces pages that guess at positioning, proof, or objection handling — and guessing is how pages fail to convert.


Step 1: Gather and Validate Inputs

Before building, confirm ALL required inputs are present. Use the checklist in 01-offer-page-context.md.

Load business-aos Reference Files

Before writing any copy, read the core files from the connected business-aos repo. Load proof, brand, and domain files as you reach the sections that need them.

Core (read before writing anything):

Proof (read before writing sections 5, 9, 11):

Brand (read before building + before Copy QC):

Domain (read before writing Distinction, Investment, FAQ):

Required Input Categories

  1. Offer Architecture — name, price, timeline, what's included, what it's NOT
  2. Positioning — who it's for (3+), who it's NOT for (3+), primary objections (3+), key distinction
  3. Transformation Framework — symptom, upstream constraint, system/asset built, outcome
  4. Proof — at least one testimonial with specific outcome, pull-quote identified
  5. Funnel Context — where in buyer journey, what they already know, CTA + destination URL, CTA subtext
  6. Brand & Voice — design system confirmed, voice constraints, words to avoid
  7. Technical — target platform, CTA destination URL

If any input is missing, ask clarifying questions before proceeding. Do not build with gaps.


Step 2: Determine Page Type

If the CTA is...Then build a...
Purchase / checkout linkPurchase page — "Get Instant Access — $[price]"
Calendly / booking linkBooking page — "Book a [Diagnostic/Call]"

This determines:


Step 3: Build the Page

Architecture

Build sections in order. Each section has ONE job. Reference the golden example (03-offer-page-golden-example.html) for exact styling.

Section order:

  1. Header → 2. Hero → 3. Problem → 4. Distinction → 5. How It Works → 6. Time Investment (services only) → 7. What You Get → 8. Who It's For → 9. Proof → 10. Investment → 11. FAQ → 12. Final CTA → 13. Footer

Design System

Fonts: Cormorant Garamond (headings, weight 400) + Inter (body, weights 300/400/500/600). Load via Google Fonts CDN.

Color palette (use CSS variables for development, hardcode hex for Convertri):

Required elements:

Interactive Elements

Hover states (all cards):

transition: all 0.3s ease;
transform: translateY(-4px);
box-shadow: 0 8px 30px rgba(26, 26, 26, 0.08);

Click states (tabs, timeline):

Click-to-reveal (timeline, process steps):

Section-by-Section Build Notes

Hero: Two-column grid (1.1fr 0.9fr). Left = content (eyebrow, headline, subhead, CTA). Right = visual (timeline, process flow, or relevant interactive). Must pass 5-second test. → Reference: audience.md (who they are), angles/ (messaging entry points), offers/[offer]/offer.md (what they get)

Problem: Validate, don't lecture. Acknowledge what they've tried. Name what hasn't worked. Callout box with the real problem underneath. Use "stalled" not "stuck" (except "stuck in your head"). → Reference: audience.md (their constraints, language), angles/ (problem framing)

Distinction: Two-column grid. "Not This" card (cream background, stone border, muted) vs. "This" card (charcoal background, gold border, prominent). Below: note with additional context. → Reference: offer.md (brand thesis), product-ladder.md (where this sits vs. alternatives)

How It Works: Flow visualization (circles with hover-to-fill-gold). Example tabs if multiple case studies. Example grid (4 columns: Symptom → Constraint → System → Outcome). → Reference: ip-inventory.md (framework lineage), case-studies/ (engagement arcs for examples)

What You Get: Deliverable cards with gold left border. Keep tight — title + one-line description per card. → Reference: offers/[offer]/offer.md (deliverables list), ip-inventory.md (what's included)

Who It's For: Two-column grid. "For You" (gold border, arrow bullets) vs. "Not For You" (muted border, X bullets). Visual distinction between the two must be obvious. → Reference: audience.md (who buys), offers/[offer]/offer.md (who it's for / not for)

Proof: Featured testimonial (charcoal background, gold pull-quote) + supporting testimonials (cream cards, 2-3 column grid). If disclaimer needed, add it below in a stone-bordered callout. → Reference: testimonials.md (outcomes, pull-quotes, offer tags — match testimonials to the offer being sold)

Investment: Charcoal box with gold left border. Price in large Cormorant Garamond gold text. Includes checklist with gold checkmarks. CTA button + subtext. → Reference: offers/[offer]/offer.md (price, timeline), product-ladder.md (positioning against other tiers)

FAQ: 2-column grid. Questions phrased as objections. Charcoal left border that turns gold on hover. Answers direct, not defensive. → Reference: offer.md (positioning), case-studies/ (evidence for answers), product-ladder.md (cross-sell context)


Step 4: Copy QC Pass

Before visual validation, run the copy through brand voice and AI pattern detection. This step is mandatory — do not skip it.

Required Reference Files

Read these before scanning the copy:

  1. business-aos/reference/core/voice.md — Brand vocabulary, tone, cadence, core phrases, quality test
  2. business-aos/reference/brand/copy-qc.md — 11 AI pattern checks with severity levels (P1/P2/P3)
  3. 02-offer-page-terminology.md — Kit-specific language rules and forbidden constructions

What to Check

Voice vocabulary: Confirm the copy uses the brand vocabulary (deploy, build, install, system, protocol, constraint, capability, diagnose) and avoids banned words (leverage, synergy, coaching, mindset, journey, game-changer, scalable, revolutionary).

AI Pattern Detection (all 11 patterns):

PriorityPatternDetection Rule
P1Twinning"You don't have X. You have Y." — two mirrored sentences
P1Mirror ReversalSame root word in reversed positions across two clauses
P1Question → Revelation ArcDramatic silence ("went quiet") followed by insight
P2Three-Beat Parallel ListsThree consecutive items with identical structure
P2Not Because X. Because Y.Negation followed by correction as revelation
P2Formulaic Setup"Most people think X. Actually Y." — max 1 per page with evidence
P2Trying-to-Be-QuotableMetaphor or abstraction over plain statement
P3Dramatic Single-Word BeatsMax one per page
P3Rhetorical Hand-Holding"Right?" "Sound familiar?" "Let that sink in."
P3Identical Sentence OpenersThree+ consecutive sentences with same opening word

Correction-revelation compound check: If ANY two patterns from the correction family (Twinning, Mirror Reversal, Not Because X, Formulaic Setup) appear in the same page, flag as compound P1. Rewrite until zero from this family, or one maximum.

Terminology-specific forbidden constructions:

Brand core phrase exceptions: Lines from voice.md Core Phrases (e.g., "Capability deployed. Not curriculum learned.") are exempt from pattern detection — they are intentional brand language.

Pass Criteria

If any P1 or P2 fails, rewrite the line before proceeding to Step 5.


Step 5: Technical & Content Validation

Technical Checks

Convertri-Specific (if deploying to Convertri)

Content Checks

Visual Checks


Step 6: Deliver

Output file: [offer-name]-v[n].html

The file is the deliverable. Self-contained HTML. No external dependencies except Google Fonts CDN.

Run the full QC checklist (04-offer-page-quality-checklist.html) before delivery.