Kai Funnel Audit logo

Kai Funnel Audit

Community
cgallic
kai-funnel-audit

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 Phone Capture 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.

Overview

Publishercgallic
Repositorykai-cmo-harness
Skill namekai-funnel-audit
Stars
61
Forks
8
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by cgallic on GitHub. Read the source before you install it.

Installation

Install the Kai Funnel Audit AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/cgallic/kai-cmo-harness/tree/main/harness/skills-v2/kai-funnel-audit
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/cgallic/kai-cmo-harness.git /tmp/kai-cmo-harness
mkdir -p .claude/skills
cp -r /tmp/kai-cmo-harness/harness/skills-v2/kai-funnel-audit .claude/skills/kai-funnel-audit
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Kai Funnel Audit in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Kai Funnel Audit on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Kai Funnel Audit is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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

  • MARKETING.md first. Read it from the project root before asking discovery questions. If it does not exist, build it from the codebase (CLAUDE.md, README.md, PROJECT.md, package.json, landing pages, email/ad/analytics config) using the template carried in /kai-email-system, and confirm the draft. Do not ask the user what the product is.
  • Provenance is blocking. Load harness/references/audit-data-provenance.md before any finding is written. Declare a mode — sales_external (public data only; default when no private access is confirmed), onboarding_connected (client granted GSC/GA4/ad/CRM/call-tracking access), or internal_demo (labeled sample data only) — in _executive-summary.md and every deliverable header. Run the collector before writing:
    bash
    python -m scripts.audit.collect --url <url> --mode <mode> --workflow funnel-audit --out workspace/funnel-audit/data
    Add opt-in collectors per the provenance doc when credentials exist (--pagespeed, --gsc, --ga4, --calls, --revenue, ...). Read metrics from data/kai-data.json (audit-data.json is the identical alias for the lint). A metric absent from collector output or a user-provided artifact is unavailable — it goes in _data-gaps.md, never into a finding.
  • Collected artifacts only. funnel-map.md holds one row per surface — awareness layer (ads with Ads Library URLs, organic posts, blog/SEO entries, homepage) and capture layer (opt-in forms, lead magnets, booking flows, phone path) — with entry→capture edges. A surface with no crawl, archive, user-provided export, or screenshot is OUT OF SCOPE: list it in _data-gaps.md with what would be needed. Never audit from memory of what pages "usually" look like.
  • Ledgers. _data-sources.md carries source, tier, retrieved-at, used-for, and artifact path per the provenance doc's table. Every downstream finding cites a row in it.
  • Hooks are scored, not replaced here. Score with the /kai-hook-bench rubric — clarity, specificity, curiosity, proof-backing, 0-2 each, total /8 — without restating its definitions. Run every hook against the anti-patterns in memory/what-doesnt-work.md and the voice-pattern regexes carried in /kai-gate; a hook matching a known loser pattern is an automatic finding. Replacement hooks route to /kai-hook-bench.
  • Unverifiable proof on the client's own page is a P0 finding, not something to keep quietly — it is a compliance risk per harness/references/advertising-compliance.md. Proof must be attributable, plausible, and non-contradicting (page review count vs Places data from the collector). Missing proof assets hand off to /kai-proof-builder or /kai-case-study.
  • No invented uplift. "Expected mechanism" names the variable a fix moves — a Value Equation variable, a Hook–Retain–Reward stage, or a scent/leak repair. Never a predicted lift percentage or unsourced benchmark. A fix worth testing is written as an A/B hypothesis using the template in knowledge/playbooks/funnel-hack-offer-architecture.md: primary metric plus guardrail metric, no predicted lift.
  • The Value Equation table is an internal scoring rubric. Label it as such; it never ships as a quantitative claim.
  • Friction numbers are sourced or gapped. Field counts, steps, load times, mobile behavior, and post-submit delivery delay come from crawl artifacts, PageSpeed runs, or GA4/form analytics under onboarding_connected. No assumed field counts, no "typically 3 steps".
  • Phone Capture Fit Rule applies exactly as AGENTS.md defines it. Phone-led evidence comes from collected data only (prominent phone numbers or call CTAs in crawled pages, call extensions in observed ads, local/service vertical, phone-handled booking). If phone-led, evaluating phone-based lead capture is REQUIRED. Fit signals — missed-call pain, after-hours gaps, slow speed-to-lead, no qualification/routing, no call logging — come from public observation or a logged public call test in sales_external, or CallRail/CRM/phone logs via the collector in onboarding_connected. No signal data is a data gap, not an assumed problem. Recommending a phone answering service or AI receptionist requires real cited fit signals, no vendor named by default (disclose any ownership relationship if one is named), and comparison of at least two alternatives (human answering service, callback widget, native call tracking/routing). It is never the primary recommendation when phone demand is low, call recording/consent compliance is unresolved, the workflow is self-serve by design, or source data is missing. The older Layer-6 wording in /kai-cro predates the Fit Rule — the AGENTS.md rule wins.
  • Gates before handoff. On copy-bearing outputs (magnet-rewrite.md, and any before/after copy inside awareness-fixes.md):
    bash
    python scripts/quality_gates/four_us_score.py --file workspace/funnel-audit/magnet-rewrite.md    # 10/16 — hook/offer-asset threshold
    python scripts/quality_gates/banned_word_check.py --file workspace/funnel-audit/magnet-rewrite.md
    Max 2 retry cycles, fixing only the named failing dimension rather than rewriting the file (see memory/lessons.md). After 2 failures, escalate to a human with the diagnosis and log it via python scripts/self_improvement/lesson_capture.py add. Then the blocking provenance gate:
    bash
    python scripts/quality_gates/audit_provenance_lint.py workspace/funnel-audit --audit-dir
    A failure means an unsourced number or a missing ledger file — fix the citation or move the claim to _data-gaps.md. Never delete the ledger requirement.
  • Approval doctrine. This audit is a recommendation package. Nothing here publishes, edits a live page, changes an ad, or dials a phone system. Every implementation goes through the owning skill's human-approval gate.

Revenue lens

Load the Revenue Lens section of harness/references/audit-data-provenance.md with the provenance rule.

  • Open with the funnel, not activity. Traffic source → intent → lead → follow-up → booked/paid, one row per stage, before any channel or technical finding. Sessions and lead counts are inputs, never the headline.
  • Rank gaps by the dollars each stage leaks. High-intent traffic with no lead path, leads with no follow-up, and follow-up with no booking outrank traffic volume.
  • Technical setup is one line. Schema, llms.txt, AI crawler access and sitemap get a sourced pass/fail; they become findings only when a measured check fails.
  • Unverified means check. Any claim or funnel stage not verified in this run is labeled check with what would verify it, is not scored, and is mirrored in _data-gaps.md.

Context

NeedLoad
Value Equation, Core Four, Lead Magnet Framework, Give-Away-Everythingknowledge/people/alex-hormozi-knowledge.md — sections "The Value Equation", "$100M Leads: The Lead Generation System", "Content Strategy: Give Away Everything"
Conversion diagnosisknowledge/playbooks/conversion-rate-optimization.md
Source-evidence standard, mechanics-vs-taste split, A/B hypothesis templateknowledge/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 handlingharness/references/audit-data-provenance.md
Persona match on entry pagesknowledge/personas/_persona-index.md (or the client's own)
Proof-claim compliance riskharness/references/advertising-compliance.md
Known loser patterns and voice regexesmemory/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 classRoute 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.

Frequently asked questions

What does the Kai Funnel Audit AI skill do?

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 Phone Capture 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...

Why use Kai Funnel Audit on TypingMind?

Because you install it once and use it with any model. Kai Funnel Audit is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Kai Funnel Audit in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/cgallic/kai-cmo-harness/tree/main/harness/skills-v2/kai-funnel-audit. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Kai Funnel Audit?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Kai Funnel Audit?

As many as you like. As long as a model supports skills, you can use Kai Funnel Audit with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Kai Funnel Audit AI skill free?

It is published on GitHub by cgallic. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇