| name | kai-funnel-audit |
| description | Two-layer funnel audit on collected data only — stress-test the awareness layer (hooks, messaging, proof placement, attention leaks on live pages and ads) and the lead-capture layer (opt-ins and lead magnets scored on the four Value Equation variables, friction findings, weakest-magnet rewrite), plus a phone-path check under the KaiCalls Fit Rule. Use when "funnel audit", "audit my funnel", "why is my funnel leaking", "top of funnel isn't converting", "audit our lead magnets", "opt-in audit", "awareness to lead audit", "where are we losing people", "lead capture audit", or any request to diagnose the full awareness-to-lead flow rather than one page. |
Objective
A sourced diagnosis of where the awareness-to-lead flow breaks, in two layers — awareness (do the collected hooks, messaging, and proof earn attention?) and lead capture (do the collected opt-ins convert that attention into leads?) — ending in a provenance-linted, prioritized fix list where each fix is routed to the skill that owns it. Every finding traces to a collected artifact. A surface with no collected artifact is out of scope, not audited from memory.
Scope boundary vs /kai-cro: /kai-cro runs the 5-layer conversion stack (technical, traffic, offer, design, copy) on ONE page or flow, in depth. This skill audits the FULL awareness-to-lead path across surfaces — ads, organic posts, entry pages, opt-ins, lead magnets, phone path — and finds where the flow breaks between them. When a single page needs deep conversion work, flag it and hand off to /kai-cro; never re-run the 5-layer stack here. /kai-audit and /kai-seo-audit are wider still; hand off there when the problem is not the funnel.
Done when
Work type audit-report — floor E3/C4/O1 (harness/eco-floors.yaml, also_covers: funnel-audit).
- E3 — a named human approved the exact delivered folder, and every quantitative claim resolves to a row in
_data-sources.md backed by an artifact in workspace/funnel-audit/data/.
- C4 — the Kai Data Provenance Rule holds end to end: mode declared, collector run before writing, every number cited, gaps written to
_data-gaps.md. audit_provenance_lint.py passes, and the copy-bearing outputs pass Four U's and banned words.
- O1 — every P0 fix names the metric it targets and the mechanism it moves. No invented uplift percentages.
Constraints
Context
| Need | Load |
|---|
| Value Equation, Core Four, Lead Magnet Framework, Give-Away-Everything | knowledge/people/alex-hormozi-knowledge.md — sections "The Value Equation", "$100M Leads: The Lead Generation System", "Content Strategy: Give Away Everything" |
| Conversion diagnosis | knowledge/playbooks/conversion-rate-optimization.md |
| Source-evidence standard, mechanics-vs-taste split, A/B hypothesis template | knowledge/playbooks/funnel-hack-offer-architecture.md |
| Per-element conversion checks (reuse, do not restate) | knowledge/checklists/cro-audit-checklist.md |
| Provenance modes, source tiers, gap handling | harness/references/audit-data-provenance.md |
| Persona match on entry pages | knowledge/personas/_persona-index.md (or the client's own) |
| Proof-claim compliance risk | harness/references/advertising-compliance.md |
| Known loser patterns and voice regexes | memory/what-doesnt-work.md + the regex table in /kai-gate |
What each layer checks. Awareness: does the headline state the Dream Outcome rather than the feature; does ad→page scent hold (same promise, persona, offer); is the persona obvious in one viewport; does the asset reward the click (a hook opening a question the page never closes is a finding); is proof above the fold in the collected viewport; are there competing CTAs, nav links exiting before first capture, ad traffic on a generic homepage, dead ends, or slow entry pages. An awareness layer that only pitches is itself a finding — Give-Give-Give-Ask. Capture: what each opt-in offers, what it asks (fields, steps), where it sits, its Value Index (Dream Outcome × Perceived Likelihood) ÷ (Time Delay × Effort & Sacrifice) scored 1-10 per variable, and whether each magnet is narrow and specific, a painkiller rather than a vitamin, one of the three types (problem diagnosis / sample-trial / symptom revelation), named per [Number] + [Adjective] + [Target Audience] + [Desired Outcome] + [Timeframe], and good enough to charge for.
The weakest magnet gets rewritten through the four Value Equation application questions: make the outcome vivid, raise belief it works for them (attaching only proof already inventoried), collapse Time Delay toward an immediate first win, strip Effort & Sacrifice (fewer fields, instant delivery, done-for-you over course format), and rename it with the naming formula. This is a spec plus copy draft, not a shipped asset. If the underlying offer is the problem rather than the packaging, stop and hand off to /kai-offer-builder.
Output — workspace/funnel-audit/: _data-sources.md (source, tier, retrieved-at, used-for, artifact — required by lint) · _data-gaps.md (out-of-scope surfaces, missing metrics, absent call data — required by lint) · data/ (collector output: kai-data.json + audit-data.json, raw/) · funnel-map.md (surfaces + edges, collected artifacts only) · awareness-scores.md (per-asset hook rubric scores with one-phrase justifications) · awareness-fixes.md (P0/P1/P2 rows — Fix | Evidence (artifact path/URL + retrieved-at) | Effort Low/Med/High | Expected mechanism) · lead-capture-scores.md (Value Equation table + lead-magnet checks) · friction-findings.md (fields/steps/load per capture point, sourced or gapped) · magnet-rewrite.md (weakest magnet before/after spec + re-score) · phone-path.md (phone-led verdict, fit signals with sources, disclosed recommendation) · _gate-report.md (gate results + retries) · _executive-summary.md (mode label on top, funnel map recap, top 5 fixes, limiting gaps, routing table).
Routing — append to _executive-summary.md:
| Finding class | Route to |
|---|
| Single page needs deep conversion work (5-layer stack) | /kai-cro |
| Page or magnet delivery needs a rewrite/rebuild | /kai-landing-page |
| Offer itself is weak (Value Index low even after packaging fixes) | /kai-offer-builder |
| Hooks scored ≤4/8 need replacements | /kai-hook-bench |
| Proof missing or unverifiable | /kai-proof-builder or /kai-case-study |
| Single finished pieces (emails, posts, ads) from the fixes | /kai-brief then /kai-write |
| Independent re-gate of rewritten copy | /kai-gate |
| Funnel problem sits upstream in traffic/SEO/brand | /kai-seo-audit or /kai-audit |
30-day follow-up on shipped fixes runs through the standard content pipeline; underperformers get diagnosed via /kai-retro.
Escalate when
- No surface has a collected artifact — there is no audit to run, only a data-access request.
- The client asks for findings on surfaces that could not be collected, or wants a number the collector did not return.
- Phone-led signals exist but call data access does not, and the user wants a phone recommendation anyway.
- Proof on a live client page appears unverifiable or contradicts collected data — that is a compliance call, not an editorial one.
- Two gate retries failed on the same dimension.
- The diagnosis points outside the funnel (traffic, brand, product, pricing) and the wider skill has not been authorized.