Kai Audit logo

Kai Audit

Community
cgallic
kai-audit

Full marketing audit — runs all relevant checklists against your product, site, and marketing in one go. Covers SEO, content, email, ads, social media, CRO, landing pages, technical SEO, and creative production. Produces a "state of your marketing" report with health scores per area and a prioritized fix list. Use when "marketing audit", "full audit", "audit everything", "marketing health check", "what's broken", "state of marketing", or any request to comprehensively assess marketing across all channels.

Overview

Publishercgallic
Repositorykai-cmo-harness
Skill namekai-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 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-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-audit .claude/skills/kai-audit
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Kai 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 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 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.

Kai root note: knowledge/, harness/, and scripts/ paths in this skill live in the Kai install, not the user's project. Resolve them against the first ancestor directory of this SKILL.md that contains a knowledge/ folder (the Kai plugin root, ~/.claude/kai, or the kai-cmo-harness repo). MARKETING.md, memory/, and any output files live in the current project. If a referenced scripts/ command is not available in this install, say so, skip it, and continue with the file-based guidance — never fabricate its output.

/kai-audit — A Sourced Read On What Is Actually Broken

Objective

A full marketing health report for one business: every applicable harness checklist run against the real site and the real channels, a health score per module that only counts measured findings, and one prioritized fix list that routes each fix to the skill or action that resolves it. Every number in it traces to a collector source someone else can re-pull.

An audit's value is entirely in the sourcing. A score built on estimates is worse than no score, because it gets quoted.

A third-party local business audited from a Maps, share.google or website link — located rankings, map packs, AI answers, offers and a 12-week plan — is /kai-local-audit.

Done when

Work type audit-report — floor E3/C4/O1 (harness/eco-floors.yaml), client_facing: true.

  • E3 — the delivered file is the approved, hash-pinned version, and every quantitative claim resolves to a collector source in workspace/marketing-audit/.
  • C4 — the Kai Data Provenance Rule, in full: the collector ran before writing, the mode is declared, every number cites a source, missing data sits in _data-gaps.md, and python scripts/quality_gates/audit_provenance_lint.py workspace/marketing-audit --audit-dir passes. Plus banned_word_check. C4 is not a lint pass — it is the field standard for client-facing analysis.
  • O1 — every P0 fix names the metric it targets, its baseline, and an owner. The audit's own outcome, read at 60 days, is whether its recommendations were accepted and implemented.

Constraints

Provenance — non-negotiable

Load harness/references/audit-data-provenance.md before writing any finding. Declare exactly one mode:

ModeUse whenClient-facing label
sales_externalProspect or sales process, before private access is grantedSales intelligence audit - external-only
onboarding_connectedClient signed and granted GSC, GA4, GBP, ads, CRM, or call data accessClient onboarding audit
internal_demoShowing the shape of the workflow before data is connectedInternal demo - sample data

Default to sales_external when access is unclear.

  1. No number without a source. Review counts, ratings, rankings, traffic, conversions, calls, Core Web Vitals, Domain Rating, referring domains, AI Overview visibility, and local pack placement each need a source, a retrieval date, and an artifact or API note.
  2. Do not score what was not measured. Missing GSC, GA4, GBP, call tracking, backlink, or ad-platform data is a data gap, never an invented estimate.
  3. Do not turn inference into fact. Hypotheses are labeled score_eligible: false and stay out of client-facing health scores.
  4. Do not cite a tool that did not run. If the report names Ahrefs, DataForSEO, PageSpeed Insights, BuiltWith, Google Places, GSC, GA4, GBP, CallRail, or a CRM, it includes the retrieval date and the raw artifact path or response summary.
  5. Every deck slide with a number needs a source footer. Every audit folder needs _data-sources.md and _data-gaps.md.

Collector before writing

bash
python -m scripts.audit.collect --url "<url>" --firm-name "<firm_name>" --mode sales_external --workflow audit --out workspace/marketing-audit --pagespeed

Use --mode onboarding_connected only when the client granted private access, and add optional collectors only for facts the audit actually needs: --places --dataforseo --seo-provider auto --gsc --ga4 --calls --revenue --keywords "<kw1>,<kw2>" --location "<city, state>" --date-from "<YYYY-MM-DD>" --date-to "<YYYY-MM-DD>". Add --third-party-sources all or a comma list (serpapi,similarweb,builtwith,wappalyzer,brightlocal,yext,yelp,trustpilot,google-ads,meta-ads,tiktok-ads,linkedin-ads,twilio) when licensed vendor data is needed — API vendor values are third_party_estimate, supplied exports are user_provided.

The collector writes kai-data.json, audit-data.json, _data-sources.md, _data-gaps.md, and raw/ under workspace/marketing-audit/. All findings, health scores, and deck numbers come from audit-data.json. Not from conversation, not from snippets, not from model memory. A metric absent from audit-data.json becomes a data gap. Missing credentials stay data gaps until the collector records a sourced metric.

The collector is shared across Kai workflows; this audit consumes the audit-data.json alias. Existing audit automations may keep using python -m scripts.audit.collect; non-audit workflows prefer python -m kai.source_data.collect and read kai-data.json.

If the collector scripts are not in this install (skills-only or plugin install, no scripts/audit/), run in qualitative mode: browse the target's public pages directly, cite URL and retrieval date for every observation, put every unmeasurable quantitative claim in _data-gaps.md, and state plainly in the report header that collector-backed metrics require the full harness (github.com/cgallic/kai-cmo-harness). Never estimate a number the collector would have measured.

Everything else

  • Read MARKETING.md from the project root first. 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 from /kai-email-system, and confirm the draft. Do not ask the user what the product is.
  • Eight things must be known before scoping: what is being audited; the main URL; which channels are active; known issues already flagged; depth (quick top-line scores, ~30 min, or deep detailed findings, 2–3 hours); the audit mode; which data access exists; and the business type.
  • Every check gets a provenance record: claim, source_tier (connected | public_observed | user_provided | inferred | missing_data), source_name, source_url, retrieved_at, confidence (high/medium/low), evidence_artifact, score_eligible. Only connected, public_observed, and user_provided findings affect health scores. inferred and missing_data are scope notes unless the user explicitly asks for internal hypotheses.
  • Phone lead capture is evaluated for every business, via the Phone-Based Lead Capture section of cro-audit-checklist.md. Apply the Phone Capture Fit Rule: compare options (staffed reception, answering services, AI receptionists, callback widgets), and recommend a phone answering service or AI receptionist only when missed-call, after-hours, speed-to-lead, qualification, routing, or call-logging evidence supports it.
  • Skip checklists for channels the business does not use. An empty module scored zero is a fabricated finding.

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
Provenance rule, modes, source tiersharness/references/audit-data-provenance.md
Product, ICP, channels, competitorsMARKETING.md (project root)
All module checklistsknowledge/checklists/

Business type drives which industry module loads. A business can match several — a multi-location dental practice triggers both Multi-Location and Healthcare. Load all that apply.

TypeIndicatorsModule (knowledge/checklists/)
Local ServiceGeographic service area, phone-based leadslocal-service-business-checklist.md
Professional Services (B2B)Credential-based, trust-heavy, long cycleprofessional-services-b2b-checklist.md
Multi-Location2+ locations, franchise, chainmulti-location-checklist.md
Restaurant / Food & BevFood or drink is the productrestaurant-food-bev-checklist.md
Healthcare / MedicalPatient-facing, HIPAA-regulatedhealthcare-medical-checklist.md
Creator / Personal BrandThe individual is the brandcreator-personal-brand-checklist.md
Real EstateAgent, team, brokerage, property managerreal-estate-checklist.md
SaaS / Digital ProductSoftware, online-first, subscriptionNo additional module — existing modules cover it

Audit modules:

ModuleChecklist filesApplies when
Technical SEOtechnical-seo-audit-sop.md, technical-seo-checklist.mdAlways, if there is a website
On-Page SEOseo-checklist.mdAlways
Content Qualitycontent-checklist.md, content-brief-checklist.mdIf publishing content
Emailemail-checklist.mdIf running email
Meta/Facebook Adsmeta-advertising-checklist.mdIf running Meta ads
Google Adsgoogle-ads-launch-checklist.md, paid-acquisition-checklist.mdIf running Google ads
LinkedIn Adslinkedin-ads-launch-checklist.mdIf running LinkedIn ads
TikToktiktok-checklist.mdIf on TikTok
Social Mediasocial-media-audit-checklist.mdIf active on social
Landing Pageslanding-page-messaging-checklist.mdIf they have landing pages
CROcro-audit-checklist.mdAlways, for the main conversion flow
Phone capturecro-audit-checklist.md (Phone-Based Lead Capture)Always
Perception/Copyperception-engineering-checklist.mdFor sales-focused pages
Ad Creativecreative-production-checklist.md, ad-launch-checklist.mdIf running any ads
PRpr-checklist.mdIf doing press/PR
Website Launchwebsite-launch-checklist.mdIf the site is new
2026 Readiness2026-readiness-checklist.mdAlways

Industry modules from the business-type table above score alongside these.

Scoring: each module 0–100 with a grade — A (90+), B (75–89), C (60–74), D (40–59), F (<40) — plus an overall. Each module row carries its top issue. Fix priority: P0 fix this week (high impact, low effort), P1 this month (high impact, medium effort), P2 this quarter (medium impact), P3 backlog.

Fix routing: landing page copy → /kai-landing-page · no lifecycle emails → /kai-email-system · weak SEO → /kai-seo-audit then /kai-content-calendar · no social presence → /kai-social · stale ads → /kai-ad-campaign · absent from AI answers → /kai-surround-sound · no GBP optimization → /kai-audit local module plus manual GBP setup · no review strategy → /kai-audit local module, review generation process · no LSA presence → Google LSA setup (requires Google Screened verification) · no local directory presence → citation building across 10+ directories · missing calls, calls to voicemail, or no after-hours handling → phone answering service or AI receptionist setup, under the Phone Capture Fit Rule above.

Output goes to workspace/marketing-audit/: _data-sources.md, _data-gaps.md, _executive-summary.md (health scores + top 5 fixes), _detailed-findings.md, _prioritized-fixes.md, _skill-recommendations.md, and per-module/ holding one file per module run (technical-seo.md, content.md, email.md, ads.md, social.md, landing-pages.md, cro.md, plus any industry modules that applied).

Escalate when

  • The requested depth or module set needs data access the client has not granted — name the gap, do not estimate around it.
  • The business type is ambiguous and the wrong module set would change the score materially.
  • Findings imply legal or regulatory exposure (health claims, HIPAA, financial promises, accessibility).
  • The user asks for a score on a channel with no measurable data.
  • Collector output contradicts what the client stated about their own performance.

Frequently asked questions

What does the Kai Audit AI skill do?

Full marketing audit — runs all relevant checklists against your product, site, and marketing in one go. Covers SEO, content, email, ads, social media, CRO, landing pages, technical SEO, and creative production. Produces a "state of your marketing" report with health scores per area and a prioritized fix list. Use when "marketing audit", "full audit", "audit everything", "marketing health check", "what's broken", "state of marketing", or any request to comprehensively assess marketing across all channels.

Why use Kai Audit on TypingMind?

Because you install it once and use it with any model. Kai 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 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-audit. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Kai 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 Audit?

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

Is the Kai 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 👇