From funnel-strategist
Funnel architecture strategist AND brand-scope offer/CTA/journey brain -- designs or reviews marketing funnels BEFORE any page is built, and produces the brand-scope offer-architecture canonical that all of a brand's funnels, campaigns, and content bind to. Maps value ladders, selects funnel archetypes (squeeze, tripwire, VSL, webinar, application, survey, product launch), defines offer stacks (lead magnet, tripwire, core offer, order bump, upsell, downsell, continuity), classifies offers into a commitment ladder (L1/L2/L3) over those slots, governs the CTA cascade (which offer level each surface targets), maps the customer journey, and models per-step conversion economics ready to plug into simulation tools like Geru or Funnelytics. Use when the user mentions: "funnel strategy", "funnel design", "design a funnel", "map a funnel", "value ladder", "Wertreppe", "offer stack", "offer ladder", "offer architecture", "offer levels", "L1/L2/L3", "lead magnet", "Lead-Magnet", "tripwire", "upsell", "downsell", "order bump", "continuity", "CTA ladder", "CTA cascade", "customer journey mapping", "awareness states", "campaign offer binding", "trust-service funnel", "service funnel", "consultation funnel", "diagnostic / scorecard funnel", "sales funnel", "opt-in funnel", "webinar funnel", "VSL funnel", "application funnel", "product launch", "simulate a funnel", "Geru", "Funnelytics", "Godfather Offer", "Hook Story Offer", "traffic temperature", "Dream 100". For per-page CTA craft (component, copy, placement, variants), objection mapping, or audits of a live site, use conversion-designer instead. For keyword research and content planning, use seo-strategist. For actual page implementation, use site-builder. Renamed from `funnel-design` per skills-qyv7 (2026-05-26).
How this skill is triggered — by the user, by Claude, or both
Slash command
/funnel-strategist:funnel-strategistThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Design a marketing funnel before any page is built. Choose the archetype. Map the value ladder. Name every offer. Name every page and what it must DO commercially. Produce numbers plausible enough to simulate. AND — one level up — own the **brand-scope offer/CTA/journey brain**: the `offer-architecture.md` canonical that every one of a brand's funnels, campaigns, and content pieces binds to.
MANIFEST.yamlREADME.mdchecklists/archetype-selection.mdchecklists/design-checklist.mdchecklists/economics-readiness.mdchecklists/method-lens-checklist.mdchecklists/offer-architecture-design.mdchecklists/offer-architecture-review.mdchecklists/offer-stack-audit.mdprofiles/de.jsonprofiles/en.jsonprofiles/nl.jsonreferences/book-digests/dotcom-secrets.mdreferences/book-digests/expert-secrets.mdreferences/book-digests/sell-like-crazy.mdreferences/book-digests/traffic-secrets.mdreferences/conversion-benchmarks.mdreferences/cta-ladder.mdreferences/funnel-archetypes.mdreferences/geru-simulation.mdDesign a marketing funnel before any page is built. Choose the archetype. Map the value ladder. Name every offer. Name every page and what it must DO commercially. Produce numbers plausible enough to simulate. AND — one level up — own the brand-scope offer/CTA/journey brain: the offer-architecture.md canonical that every one of a brand's funnels, campaigns, and content pieces binds to.
This skill is upstream of conversion-designer. conversion-designer decides what goes ON each page (CTA component, copy, placement, variants — the craft). funnel-strategist decides what pages exist and why, which offer level each surface's CTA targets (the cascade governance), and how offers cascade across a brand's entire surface over time. The output of funnel-strategist is the input to conversion-designer.
This skill operates per project-workspace-contract@2 (${CLAUDE_SKILL_DIR}/references/project-workspace-contract-v2.md). Per-funnel outputs land in the Kind-3 zone funnel/<instance>/ at the project root and are indexed in MANIFEST.md at the project root. The brand-scope offer-architecture.md canonical lives at brand/<brand>/offer-architecture.md (R15 brand-canonical zone, orthogonal to the four workspace zones) and is declared in MANIFEST.md canonicals: as OFFER_ARCHITECTURE.
offer-architecture.md (the brain). One per brand. Classifies and sequences the brand's offers into a stable architecture: offer levels, the canonical offer inventory with stable IDs, the CTA cascade, the journey mapping, measurement requirements. Produced by Mode C (/offer-architecture), audited by Mode D (/offer-architecture-review). Consumed by every funnel, campaign, and content piece for that brand.funnel-spec.md + offer-stack.yaml + economics-model.md. One set per funnel. A projection of the brand architecture for a single funnel: offer-stack.yaml binds to the stable brand offer_ids. Produced by Mode A (/funnel-design), audited by Mode B (/funnel-review).The brand architecture is upstream of the instance projection. Mode A reads offer-architecture.md first (if present) and binds to it; an offer a funnel needs but the architecture lacks is an offer gap, not a silently-invented local offer.
Before the requirement anchor, orient in the project. Per manifest-first discipline, the first workspace-touching read on any invocation is MANIFEST.md at the project root (NOT workspace/MANIFEST.yaml — that was the deprecated v1 location). Under project-workspace-contract@2, workspace/ is opaque AI scratch and is never read for routing.
Does MANIFEST.md exist at the project root?
project_name, brand, output_language, and the canonicals: declaration — accepts legacy client: as brand: during the R66 migration window. Parse the entries: YAML block for the routing index. Note any existing entries under funnel/.MANIFEST.md inside this skill.Does the brand canonical offer-architecture.md exist for this brand? (Both modes care about this.)
MANIFEST.md canonicals:. If it lists OFFER_ARCHITECTURE, locate the brand canonical at brand/<brand>/offer-architecture.md and read it. It is the brand-scope brain that Mode A binds to and Mode C/D operate on.OFFER_ARCHITECTURE is not declared / the file is absent:
/offer-architecture) first, or to produce a thin draft architecture inline so the funnel's offer-stack.yaml has stable IDs to bind to. Do not silently invent unbound offers.Is there already a funnel/<instance> entry? (Mode A/B.)
status: draft or review: continue the existing design (re-read existing artifacts to populate the requirement anchor; user may want to refine or start a new instance).status: approved: confirm whether to supersede (old entry → superseded) or create a second instance (e.g. funnel/scheidung alongside funnel/beziehungskrise).default if the project name is not meaningful per-funnel.Are any upstream entries that this skill consumes present?
consumes: is empty (it is a starting point in the build stream). Optional reads: the brand offer-architecture.md canonical (step 2), brand/<brand>/OFFER.md (offer facts, brand-dna), brand/<brand>/BRAND.md (journey_stages overlay), and human-authored briefs/fahrplans in notes/ relevant to the requirement anchor.Record the <instance> name chosen; it is referenced in every per-funnel output path. The brand offer-architecture.md is per-brand, not per-instance.
Before designing anything, anchor on the following. Record the answers. Every subsequent archetype choice, offer, page, and conversion-rate assumption must trace back to them. If the user cannot answer 1-5, stop and help them answer before continuing -- an underspecified funnel is a broken funnel.
For every quantitative question (traffic volume, current conversion rates, cost per click, current revenue), append "(Not projected. Actual.)". Accept only current measured numbers. If the user provides projections, flag it: "I need the current number, not a projection. If you don't have it, that is useful information -- it means we need baseline measurement before committing to a funnel architecture."
Projected numbers justify monitoring. Actual numbers justify building.
This skill has four modes — two brand-scope (C, D) and two instance-scope (A, B). Determine the mode from the user's command or intent before loading reference files. The brand-scope architecture (Mode C) is upstream of the instance-scope funnel (Mode A): design or confirm the architecture first, then project it into a funnel.
| Scope | Design mode | Review mode | Primary artifact |
|---|---|---|---|
| Brand (per brand) | Mode C /offer-architecture | Mode D /offer-architecture-review | brand/<brand>/offer-architecture.md |
| Instance (per funnel) | Mode A /funnel-design | Mode B /funnel-review | funnel/<instance>/ (3 artifacts) |
Some runs need a compact method-lens pass after the requirement anchor and before architecture decisions. Load references/offer-conversion-method-lenses.md and checklists/method-lens-checklist.md only when a framework would materially change offer architecture, CTA cascade, funnel sequence, evidence needs, or downstream routing.
Rules:
/funnel-design)Purpose: Design a new funnel end-to-end from the requirement anchor, as a projection of the brand offer architecture for one funnel instance.
Load these references:
references/offer-architecture source — read the brand canonical brand/<brand>/offer-architecture.md FIRST (per Project Manifest Lookup step 2). It is the offer/CTA/journey brain this funnel binds to. If it is absent, see step 0 below.references/offer-ladder-kinds.md -- product-ascension | trust-service | hybrid. Confirm this funnel matches the architecture's offer_ladder_kind; route doctrine accordingly.references/offer-level-model.md -- L1/L2/L3 commitment levels over the seven slots; stable offer_id conventions; how the funnel binds to brand offers.references/cta-ladder.md -- per-surface CTA intent (which offer level each page's CTA targets); the offer-gap mechanism.references/funnel-archetypes.md -- Squeeze, Tripwire, VSL, Webinar, Application, Survey, Product Launch. Pick ONE primary archetype before naming pages.references/page-types.md -- Opt-in, thank-you, sales, OTO, upsell/downsell, order form, confirmation, bridge, content hub. Menu of pages to compose the funnel.references/value-ladder.md -- Free / low / mid / high / continuity rung logic (Brunson) for product ascension; the trust-service commitment-ladder variant for service businesses. Where does this funnel live on the ladder? What comes next?references/offer-stack.md -- Lead magnet, tripwire, core, order bump, upsell, downsell, OTO, continuity. Defines every offer slot and its job; L-level overlay; empty-by-design service slots.references/hook-story-offer.md -- Every offer carries a hook, story, and offer. Used to structure the sales-page and ad pre-frame.references/godfather-offer.md -- Suby's irresistible-offer structure. Applied to the core offer.references/traffic-temperature.md -- Cold, warm, hot. Dream 100. Pre-frame bridge. Constrains archetype choice and opt-in copy.references/conversion-benchmarks.md -- Realistic per-step conversion ranges so the economics model is not fantasy.Workflow:
brand/<brand>/offer-architecture.md. Note its offer_ladder_kind, its canonical offer inventory (the stable offer_ids), its CTA cascade, and its journey mapping. This funnel's offer-stack.yaml binds to those stable IDs — it does not define offers afresh. If no architecture exists, offer to run Mode C (/offer-architecture) first, or produce a thin draft architecture so the funnel has stable IDs to bind to (references/offer-ladder-kinds.md + references/offer-level-model.md). Never bind to an invented local offer.offer_ladder_kind (route early). Using references/offer-ladder-kinds.md, confirm whether this funnel is product-ascension, trust-service, or hybrid — matching the architecture. This choice routes the rest of the workflow: product-ascension uses price-multiple jump-gaps and may carry an impulse tripwire; trust-service uses the commitment_profile, leads with a free diagnostic L2, and leaves tripwire/order_bump/upsell empty-by-design. Do NOT manufacture a tripwire for a trust-service funnel.references/offer-conversion-method-lenses.md and checklists/method-lens-checklist.md only when a selected lens changes funnel sequence, offer-stack binding, evidence requirements, CTA cascade, or downstream ownership. Carry forward method lenses already recorded in the brand architecture if they still matter here; otherwise record none.checklists/archetype-selection.md. Pick ONE primary archetype. Document why.references/value-ladder.md (and the trust-service variant when applicable), locate this funnel on the ladder. What is the rung above and below? What is the ascension/commitment path?references/offer-stack.md. Each filled slot carries both craft fields (name, promise, price, role) AND binding fields (offer_id from the architecture, offer_level, stack_slot, offer_role, awareness_state, readiness_state, journey_stage, primary_cta_intent, next_offer_id, binding_status). An offer the funnel needs but the architecture lacks → binding_status: gap + gap_reason:; raise it as an offer gap in offer-architecture.md §9 (Mode C resolves it). For empty slots, document the reason (empty-by-design for trust-service is NOT a finding).references/godfather-offer.md and references/hook-story-offer.md to the core offer.references/page-types.md, list every page in encounter order. Each page entry names: page type, purpose (one verb), single primary conversion event, on-Yes target, on-No target, AND the primary_cta_intent (which offer_id @ which offer_level the CTA targets, per references/cta-ladder.md). Never jump offer levels.references/traffic-temperature.md to validate the pre-frame is correct for the chosen traffic.references/conversion-benchmarks.md. Compute: leads per 1,000 visitors, buyers per 1,000 visitors, AOV, revenue per visitor, break-even CPM/CPC, margin at break-even. (Trust-service: the north star is L1→L2→L3 throughput, not AOV — see references/offer-ladder-kinds.md.)funnel-spec.md, offer-stack.yaml, economics-model.md in funnel/<instance>/ at the project root.funnel/<instance> entry in MANIFEST.md at the project root: kind: spec, path: funnel/<instance>/, produced_by: funnel-strategist@<version>, new last_updated, manifest-entry status: translated per R61 from the artifact's own status: (draft|review → draft|review; greenlit → approved), upstream: [OFFER_ARCHITECTURE] (name the brand offer-architecture canonical explicitly — the funnel is a projection of it, so the dependency is real, not optional), consumed_by: [conversion/<instance>].Output: Three template-conforming artifacts (binding to the brand architecture) plus the manifest entry, ready to hand off to conversion-designer.
Checklist: Follow checklists/design-checklist.md step-by-step.
/funnel-review)Purpose: Review an existing funnel design before it gets built. Not for auditing a live site -- for that use conversion-designer /funnel-map.
Load these references:
references/funnel-archetypes.mdreferences/offer-stack.mdreferences/conversion-benchmarks.mdreferences/traffic-temperature.mdreferences/offer-conversion-method-lenses.md + checklists/method-lens-checklist.md when the artifact names method lenses or imports a framework claimWorkflow:
checklists/archetype-selection.md. Does the chosen archetype match the traffic temperature and the price point?checklists/offer-stack-audit.md. Are the rungs logical? Are any slots empty that should be filled? Are any offers duplicated?checklists/economics-readiness.md. Do the assumed conversion rates fall within the benchmark ranges? Is break-even achievable?Output: Review report with severity-ranked findings.
/offer-architecture)Purpose: Design (or extend) the brand-scope offer/CTA/journey brain — the offer-architecture.md canonical that every one of this brand's funnels, campaigns, and content pieces binds to. This is the brain that Mode A projects from. One per brand; brand scope, not instance scope.
Produces: brand/<brand>/offer-architecture.md (R15 brand-canonical zone), declared in MANIFEST.md canonicals: as OFFER_ARCHITECTURE. Template: templates/offer-architecture.md.
Load these references:
references/offer-level-model.md -- L1/L2/L3 as a commitment layer OVER the canonical seven slots (never a replacement); the "free diagnostic is L2-by-commitment yet lead_magnet-by-economics" insight; stable offer_id conventions + lifecycle (retire/supersede, never silent-rename).references/offer-ladder-kinds.md -- the keystone discriminator product-ascension | trust-service | hybrid; the commitment_profile dimensions; per-kind jump-gap logic. Choosing the ladder kind is the first act of this mode.references/cta-ladder.md -- the CTA cascade governance: which offer level each surface targets, allowed/forbidden jumps by awareness/readiness, high-trust/negative-intent adaptations, the lane boundary vs conversion-designer, the offer-gap mechanism.references/journey-awareness-mapping.md -- the generic Schwartz awareness_state + generic readiness_state backbone, and the R44-clean journey_stage overlay resolved from brand/<brand>/BRAND.md at runtime (NO universal journey enum ships here).references/offer-stack.md -- the seven canonical slots this layer groups; the L-level overlay; empty-by-design service slots.references/value-ladder.md -- the price-tier (Wertreppe) view for product ascension and the commitment-ladder variant for trust-service.references/offer-conversion-method-lenses.md -- selected only when a method lens changes architecture, evidence, route, or misuse handling.brand/<brand>/OFFER.md (brand-dna). This artifact may CLASSIFY / SEQUENCE / BIND offers; it must NOT invent claims, guarantees, prices, or deliverables absent from OFFER.md or explicit user source.Workflow: (mirrors templates/offer-architecture.md section order)
Manifest-first + read OFFER.md. Per Project Manifest Lookup, read MANIFEST.md; locate and read brand/<brand>/OFFER.md (offer facts) and brand/<brand>/BRAND.md (journey_stages overlay, if declared). If an offer-architecture.md already exists, this is an extension/revision — read it and preserve stable IDs.
If brand/<brand>/OFFER.md is ABSENT: the architecture cannot be built on invented facts (the brain classifies/sequences/binds offer FACTS — it never invents claims, prices, guarantees, or deliverables). STOP and choose one of two routes, surfacing the choice to the user:
/brand-dna to produce brand/<brand>/OFFER.md first, then resume Mode C. (OFFER.md is brand-dna's artifact — offer facts are brand-dna's responsibility; offer architecture is funnel-strategist's.)offer-architecture.md whose every fact-dependent field (claims, prices, guarantees, deliverables, offer names) is flagged as a FACT GAP — supply from OFFER.md placeholder, with an assumption-log entry per gap (§9). NEVER invent a fact to fill a gap. The skeleton is not bindable downstream until the gaps are resolved from a real OFFER.md or explicit, cited user source. Mark status: draft and note the skeleton state prominently.Requirement anchor (brand scope). Mirror Establish Requirement Anchor at brand scope: dream buyer, core transformation, primary business goal, typical traffic, the primary monetization event, the primary FIRST conversion (may differ from the monetization event), and the constraints/boundaries that bind the offers.
Select method lenses only when needed. If the architecture uncertainty is category positioning, message-market-media coherence, pipeline qualification, diagnostic trust bridge, CRO friction, narrative clarity, shareability, or retention ethics, load references/offer-conversion-method-lenses.md and checklists/method-lens-checklist.md. Select zero to three lenses and record why each changed the architecture. If none materially changes the work, record none.
Choose offer_ladder_kind (route everything). Using references/offer-ladder-kinds.md, decide product-ascension | trust-service | hybrid. This is the most consequential decision — it routes L2 defaults, the L3 event, jump-gap logic, CTA tone, and measurement. For hybrid, name the branch point explicitly.
Define the offer level model for this brand. What does L1/L2/L3 mean here, shaped by the ladder kind. Name post-L3 explicitly (product: order-bump→upsell→continuity; service: onboarding→aftercare→retention).
Build the canonical offer inventory. One stable offer_id row per offer (kebab, brand-prefixed, descriptive of the offer not its level/slot). Record both offer_level AND stack_slot for every offer (the level↔slot reconciliation). Treat IDs like database keys: never silently renamed.
Reconcile L1/L2/L3 ↔ the seven slots. Record empty-by-design slots with reasons for trust-service ladders.
Define the CTA ladder (cascade governance). Per-surface primary_cta_intent (which offer_id @ which offer_level), allowed/forbidden jumps by awareness/readiness, per-kind CTA tone, high-trust adaptations. Strategic intent ONLY — never component/copy/placement (that is conversion-designer's lane). Apply the name-collision guard (commitment ladder ≠ CTA ladder).
Map journey / awareness. Record awareness_state + readiness_state (generic backbone, always present) + journey_stage (per-brand overlay from BRAND.md, or none). No universal J-enum (R44).
Emit measurement requirements (per-artifact emission against measurement-contract@1). State the signals downstream surfaces MUST make observable at journey/campaign/asset levels (per R55). This is the funnel-strategist's per-artifact measurement emission conforming to measurement-contract@1 (child copy at references/measurement-contract.md). Honest caveats hold: it emits REQUIREMENTS (what must be observable), NOT analytics — aggregation belongs to the future measurement-analyst. Keep the required-vs-actual distinction.
Record offer gaps + assumptions. A needed-but-missing offer is an offer gap resolved here, never invented locally downstream. Keep assumptions distinct from OFFER.md facts.
Write + index. Write brand/<brand>/offer-architecture.md. Ensure MANIFEST.md canonicals: declares OFFER_ARCHITECTURE (add it if absent). The brand canonical is per-brand and lives in the brand zone, NOT in a funnel/<instance>/ zone.
Checklist: Follow checklists/offer-architecture-design.md step-by-step.
Output: brand/<brand>/offer-architecture.md, conforming to templates/offer-architecture.md, declared as the OFFER_ARCHITECTURE canonical. Consumed by Mode A and by campaigns/content.
/offer-architecture-review)Purpose: Audit an existing brand-scope offer-architecture.md before downstream funnels, campaigns, and content bind to it. Brand scope. Not for auditing a live site.
Load these references: the same set as Mode C (offer-level-model.md, offer-ladder-kinds.md, cta-ladder.md, journey-awareness-mapping.md, offer-stack.md, value-ladder.md), read against brand/<brand>/offer-architecture.md and its OFFER.md fact source. Also load references/offer-conversion-method-lenses.md + checklists/method-lens-checklist.md if the architecture names method lenses, imported frameworks, scorecards, persuasion principles, or retention mechanics.
Workflow (AI judgment over rubrics — no scoring, no PASS/FAIL gate, R32):
offer_ids stable, brand-prefixed, descriptive of the offer (not its level/slot)? Any silent renames (a finding)? Retire/supersede recorded explicitly?offer_level and stack_slot? Is any offer assigned an eighth (invented) slot? Is a diagnostic correctly recorded as lead_magnet slot @ L2 role, not a new slot?offer_ladder_kind actually match the business? Trust-service mishandled as product-ascension (manufactured tripwire, forced consultation) is a structural finding. Hybrid branch point named?awareness_state + readiness_state, with journey_stage resolved from BRAND.md (or none)? Any hardcoded universal J-enum baked in (an R44 violation finding)?offer_ids? Are offer gaps recorded (not silently invented)?measurement-contract@1), with the first-conversion-vs-monetization-event split named where they differ?OFFER.md? Does it stay in the cascade-governance lane (no CTA component/copy/placement)?Checklist: Follow checklists/offer-architecture-review.md step-by-step.
Output: Review report with severity-ranked findings (V0–V3 per the scale below). Cite named tests (Cascade Test, Commitment-Gap Test) where they apply.
| Command | Checklist | Mode | Scope | Description |
|---|---|---|---|---|
/offer-architecture | checklists/offer-architecture-design.md | C — Design | Brand | Design/extend the brand-scope offer/CTA/journey brain (offer-architecture.md) all funnels & campaigns bind to |
/offer-architecture-review | checklists/offer-architecture-review.md | D — Review | Brand | Audit an existing brand-scope offer-architecture.md before downstream binding |
/funnel-design | checklists/design-checklist.md | A — Design | Instance | Design a new funnel end-to-end (a projection of the brand architecture) |
/funnel-review | checklists/offer-stack-audit.md + checklists/economics-readiness.md | B — Review | Instance | Review an existing funnel design (pre-build) |
/archetype | checklists/archetype-selection.md | A — Design | Instance | Pick the right funnel archetype for a given context |
/offer-stack | checklists/offer-stack-audit.md | A/B | Instance | Design or audit the offer-stack independent of page sequence |
Note: for auditing a LIVE funnel with real analytics, use conversion-designer /funnel-map. This skill is explicitly pre-build.
Every archetype choice, offer slot fill, and conversion-rate assumption MUST include:
Decisions without all four fields are guesses. A funnel built on guesses is a funnel that cannot be iterated on, because nobody knows why any piece is there.
- What: Tripwire archetype with a €9 front-end offer, €97 core offer, €297 upsell
- Why: Traffic is cold paid (Meta/Instagram) at €0.50-1.20 CPC; audience is emotional/impulse-receptive (acute relationship crisis); a low-friction first purchase is needed to recoup ad spend fast and identify real buyers from tire-kickers
- Source: Brunson DotCom Secrets Ch. 4 (Value Ladder tripwire rung), Hormozi $100M Offers value-equation pricing,
references/conversion-benchmarks.mdcold-paid-to-tripwire row- Alternative considered: Squeeze funnel (opt-in only, monetise via email) -- rejected because the user's goal is revenue within 30 days, not list building. Squeeze is revisited in Mode B if budget shrinks.
Apply these named tests during design and review. Each has a near-binary answer. Name the test explicitly in your findings.
The Ladder Test: "Can the visitor ascend from any rung to the next?" If a rung is missing or the jump is too steep (lead-magnet to €2,000 coaching), the ladder is broken. Funnels with broken ladders leak hardest between rungs.
The Temperature Test: "Does the first page match the temperature of the traffic?" Cold traffic requires an indirect pre-frame (curiosity, self-assessment, story). Warm traffic tolerates a more direct offer. Hot traffic converts on a direct CTA. Mismatches produce expensive, low-conversion spend.
The Single-Conversion Test: "Does every page have ONE primary conversion event?" A page that asks for both an email AND a purchase competes with itself. Split into two pages.
The Bridge Test: "Is every transition explicit?" Thank-you page with no bridge to the sales page = 90% drop-off from something that should flow. Each transition needs a bridge (copy, video, redirect, button).
The Break-Even Test: "At benchmark conversion rates, does CAC < LTV?" If no, the funnel is unprofitable at scale. Redesign the offer stack or cut a rung before building.
The Godfather Test: "Is the core offer so good refusal feels stupid?" Use Suby's criteria: high-value outcome, stacked bonuses, risk reversal, scarcity that is real. If refusal is easy, the sales page will struggle regardless of copy.
The Ascension Test: "What happens after the core offer?" If there is no upsell, no order bump, no continuity path, the funnel caps its own revenue. This is acceptable for list-building-only funnels. It is a V3 finding for revenue funnels.
When citing a lens in a finding, use the format: "Fails the [Name] Test -- [specific evidence of failure]."
Use the same severity scale as conversion-designer:
| Level | Name | Criterion | Action |
|---|---|---|---|
| V0 | Cosmetic | Unnecessary but harmless | Note and move on |
| V1 | Local | Has a cost but stays contained to one element | Flag for fixing |
| V2 | Structural | Shapes the funnel architecture around itself | Flag for redesign |
| V3 | Contagious | Forces OTHER pages, offers, or economics to be worse | Flag as urgent |
A missing tripwire offer is V1 (can be added later). A broken value ladder is V3 -- it warps every page below and above the break.
See references/conversion-benchmarks.md for the full table.
Before producing any funnel artifact with user-facing copy (even skeleton copy), load the appropriate profile from profiles/{languageCode}.json.
If locale is ambiguous, STOP at the requirement anchor and ask.
(See also: the Language Handling section below for runtime output-language policy — Unicode preservation, frontmatter conventions, when skeleton copy follows the end-customer locale vs. the conversation language. Locale Awareness is about persuasion norms per locale; Language Handling is about which language the output is written in.)
If the user asks what books, methods, or source traditions informed a funnel, offer-architecture, CTA-cascade, or economics recommendation, read references/source-lineage.md and summarize only the sources that affected the current output. Do not present source lineage as proof by authority; tie it back to the requirement anchor and project evidence.
| Step | Reference File | What to Extract |
|---|---|---|
| Choose ladder kind (FIRST) | references/offer-ladder-kinds.md | product-ascension | trust-service | hybrid discriminator; the commitment_profile dimensions; per-kind jump-gap logic, L2 default, L3 event, CTA tone; iurFriend/Accent as falsifiers (NOT defaults) |
| Offer levels over slots | references/offer-level-model.md | L1/L2/L3 as a commitment layer OVER the seven slots; the "free diagnostic = L2-by-commitment yet lead_magnet-by-economics" insight; stable offer_id conventions + retire/supersede lifecycle |
| CTA cascade governance | references/cta-ladder.md | Which offer level each surface targets; allowed/forbidden jumps by awareness/readiness; high-trust/negative-intent adaptations; the conversion-designer lane boundary + the commitment-ladder name-collision guard; the offer-gap mechanism |
| Journey / awareness mapping | references/journey-awareness-mapping.md | Generic Schwartz awareness_state + generic readiness_state backbone; the R44-clean journey_stage overlay resolved from BRAND.md at runtime; the anti-rule (no universal J-enum) |
| Optional method-lens selection | references/offer-conversion-method-lenses.md + checklists/method-lens-checklist.md | Blue Ocean / One-Page Marketing / Predictable Revenue / Scorecard-CRO / StoryBrand / SUCCESs / Contagious / retention lenses only when they materially alter architecture, evidence, route, or misuse handling |
| Step | Reference File | What to Extract |
|---|---|---|
| Bind to architecture (FIRST) | brand/<brand>/offer-architecture.md | The brand's offer_ladder_kind, stable offer_id inventory, CTA cascade, journey map — the funnel binds to these |
| Confirm ladder kind | references/offer-ladder-kinds.md | Match the funnel to the architecture's kind; route doctrine (price-multiples vs commitment_profile) |
| Offer levels + binding | references/offer-level-model.md | L1/L2/L3 over the seven slots; the binding fields the funnel records per offer |
| Per-surface CTA intent | references/cta-ladder.md | The primary_cta_intent each page records; never jump offer levels; the offer-gap mechanism |
| Archetype selection | references/funnel-archetypes.md | Seven archetypes with fit criteria |
| Page sequencing | references/page-types.md | Page-type taxonomy and purpose per type |
| Ladder placement | references/value-ladder.md | Product-ascension rung logic + pricing tiers; the trust-service commitment-ladder variant + commitment-gap doctrine |
| Offer design | references/offer-stack.md | Offer-slot menu + role of each; L-level overlay; empty-by-design service slots |
| Core offer copy framework | references/hook-story-offer.md | Hook / Story / Offer structure for each offer |
| Core offer irresistibility | references/godfather-offer.md | Suby criteria, bonus stacking, risk reversal |
| Traffic-offer matching | references/traffic-temperature.md | Cold/warm/hot pre-frame rules, Dream 100 |
| Economics modelling | references/conversion-benchmarks.md | Per-step conversion ranges |
| Tool translation | references/geru-simulation.md | How to translate the output into Geru by hand |
| Optional method-lens selection | references/offer-conversion-method-lenses.md + checklists/method-lens-checklist.md | Selected lenses carried from architecture or chosen when the funnel sequence needs a specific method lens |
Mode B: same funnel-design reference files, plus the three funnel-review checklists. Mode D: the same offer-architecture reference set (C/D table above), read against the existing offer-architecture.md and its OFFER.md fact source.
| Digest | When to Load |
|---|---|
references/book-digests/dotcom-secrets.md | When archetype or ladder decisions need deeper grounding |
references/book-digests/traffic-secrets.md | When traffic strategy or Dream 100 matters |
references/book-digests/expert-secrets.md | When the story-selling / attractive character dimension is relevant |
references/book-digests/sell-like-crazy.md | When the Godfather Offer or HALO sequencing matters |
brand/<brand>/offer-architecture.md — the offer/CTA/journey brain. Follows templates/offer-architecture.md. Lives in the R15 brand-canonical zone (orthogonal to the four workspace zones), declared in MANIFEST.md canonicals: as OFFER_ARCHITECTURE.
When in funnel-design mode, produce three files in funnel/<instance>/ at the project root:
funnel-spec.md -- Narrative funnel description with page sequence, offer placements, per-surface CTA intent, and a text diagram. Follows templates/funnel-spec.md.offer-stack.yaml -- Structured inventory of every offer in the stack (YAML), each binding to a stable brand offer_id. Follows templates/offer-stack.yaml.economics-model.md -- Inputs, assumed conversion rates, and derived revenue/CAC/LTV numbers. Follows templates/economics-model.md.Plus: add / refresh the funnel/<instance> entry in MANIFEST.md at the project root.
conversion-designer opens MANIFEST.md at the project root, finds the funnel/<instance> entry, reads the three artifacts at the entry's path: (funnel/<instance>/), and — for the CTA cascade — resolves each offer's primary_cta_intent back to the brand offer-architecture.md declared in MANIFEST.md canonicals:. If conversion-designer asks clarifying questions after reading them, the artifacts are incomplete -- patch them and bump last_updated.
Cross-plugin contract: project-workspace-contract@2 (see ${CLAUDE_SKILL_DIR}/references/project-workspace-contract-v2.md). Per-skill contract: see this skill's MANIFEST.yaml.
Standard runs (project MANIFEST.md looked up, requirement anchor established, archetype selected, value ladder placed, offer stack filled and bound to the brand architecture, page sequence built, economics modeled, three artifacts produced, manifest entry refreshed — or, for Mode C, the brand offer-architecture.md produced and declared as the OFFER_ARCHITECTURE canonical) end normally — no self-improvement prompt fires.
The prompt fires only on funnel-strategist-specific deviation. Triggers and prompt shapes:
references/value-ladder.md assumes <assumption>, but <brand>'s offering is <shape> — I improvised <workaround>. Should references/value-ladder.md document this offering-shape variant, or is this a one-off?"references/offer-stack.md doesn't enumerate) → "You needed <slot-name> which isn't in references/offer-stack.md's default offer-slot menu. Should the offer-stack reference be extended to include it, or is this slot brand-specific enough to keep in the project's overlay?"<assumption> from references/conversion-benchmarks.md because <reason>. Should the benchmark doc surface a calibration note for <industry / vertical>, or is your override too brand-specific to generalize?"<pattern-A> and <pattern-B>. Should references/funnel-archetypes.md add a hybrid archetype (proposed: <name>), or document the hybridization rule as a meta-pattern?"<path> and wanted me to refine, not redesign from scratch. The current Mode A workflow assumes clean-sheet. Should there be a new /funnel-refactor mode that starts from an existing funnel-spec, or did Mode B (/funnel-review) cover this adequately?"offer-architecture.md to bind to, or the architecture lacked an offer the funnel needed) → "This funnel needed <offer/level> which the brand offer-architecture.md does not define (recorded as binding_status: gap). Should we run /offer-architecture (Mode C) to resolve the gap properly, or is this offer instance-specific enough that a future revision should generalize it into the architecture?"<locale>) ruled out <archetype>'s standard <pattern>. Should profiles/<locale>.json enumerate which archetype patterns are off-limits per locale, or did the locale profile cover this?"<sim-tool>, I needed <missing-dimension> which templates/economics-model.md doesn't capture. Should the economics-model template be extended to include it for clean simulation handoff?"If a trigger fires, surface the specific deviation in context-specific prose (not generic "any feedback?"). If the user confirms, update SKILL.md (or the relevant reference / template / profile) inline before going idle. If the user declines, do not write an AI-authored suggestion into project notes/; surface it in the closing summary and let the orchestrator file a Bead or a project-appropriate learning-log entry when the user wants it preserved.
Standard runs end at the handoff — for Mode A, the three-artifact handoff (funnel-spec.md + offer-stack.yaml + economics-model.md written, bound to the brand architecture; manifest entry refreshed; ready for conversion-designer); for Mode C, the brand offer-architecture.md written and declared as the OFFER_ARCHITECTURE canonical (ready for funnels, campaigns, and content to bind to). No prompt fires for uneventful runs.
MANIFEST.md declares an output_language: field (project-workspace-contract@2 frontmatter), honor that declaration over inferred conversation language. Funnel-spec narrative, offer-stack entries, offer-architecture prose, and economics-model prose follow output_language:.profiles/{languageCode}.json to constrain persuasion and price-presentation norms per locale (German Sachlichkeit + price transparency, English direct-response latitude). Locale profile drives what is sayable; output_language: drives what language it's said in.Wertreppe alongside Value Ladder for German contexts, Lead-Magnet (hyphen) for German, Einstiegs-Offer for German tripwire. Keep English terms (upsell, downsell, order bump, OTO) when no clean local equivalent exists — domain practitioners read English direct-response literature.Trennungsjahr, MwSt, BTW, Aufhebungsvertrag, etc.).ue, oe, ae, ss).status: draft, kind: spec, produced_by: [email protected]). Free-text frontmatter values (titles, descriptions) may follow content language where natural.(See also: the Locale Awareness section above for persuasion norms per locale — Sachlichkeit, price-transparency expectations, scarcity-language constraints, German term hygiene (Wertreppe, Lead-Magnet, Einstiegs-Offer). Language Handling is about which language Claude responds in; Locale Awareness is about what is sayable in that language for this brand's market.)
references/cta-ladder.md). funnel-strategist decides which offer level each surface's CTA targets — the destination logic, the allowed/forbidden jumps between offer levels, the per-surface primary_cta_intent, the next-step cascade, the offer-gap mechanism. conversion-designer owns CTA craft — the actual component, the button copy, the placement on the page, the visual treatment, the A/B variants, and the components-manifest.json. funnel-strategist never specifies a hex colour, a final button label, or a placement coordinate; conversion-designer never re-points a CTA at a different offer level.offer-architecture.md classifies / sequences / binds offers — it does NOT invent them. The brain may organize, level, sequence, and bind offers into a stable architecture, but it must NOT invent claims, guarantees, prices, or deliverables absent from brand/<brand>/OFFER.md (brand-dna) or explicit user source. Offer FACTS are brand-dna's; offer ARCHITECTURE is funnel-strategist's.conversion-designer's domain (funnel-strategist declares the diagnostic/scorecard's offer-level INTENT; conversion-designer builds the component).site-designer.campaign-strategist skill (which binds to this skill's stable offer_ids).measurement-analyst) and does not own optimisation experiments (future optimisation-strategist).conversion-designer /funnel-map for that. This skill is pre-build.npx claudepluginhub cmgramse/skill-development --plugin funnel-strategistBuilds a throwaway prototype to answer a design question about UI appearance or state/logic behavior. Guides you through two branches: interactive terminal app for logic validation, or multiple UI variations for visual exploration.