Kai Page Refresh logo

Kai Page Refresh

Community
cgallic
kai-page-refresh

Grow search clicks by fixing pages that already rank instead of making new ones. Triages the portfolio (invest / maintain / freeze), builds a refresh queue from Search Console (CTR gaps at positions 1-7, striking distance at 8-20, split queries), drafts the fixes, and grades every shipped fix 28 days later against a site-level control. Use when "striking distance", "page two", "refresh pages", "improve existing pages", "low CTR", "rewrite titles", "why is traffic flat", "which site should we focus on", "more clicks from search", or before planning any new site or content program.

Overview

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

Use it in TypingMind

Enable Kai Page Refresh 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 Page Refresh 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 Page Refresh 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-page-refresh — More Clicks From Pages That Already Rank

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.

Objective

More non-brand search clicks on the properties that already earn them, from approved fixes to existing pages, each one recorded with a pre-ship baseline so it is graded rather than assumed. The owner ends with a ranked queue, drafted fixes for the top pages, tracker records for whatever ships, and a clear statement of which properties get no new work.

Doctrine: knowledge/playbooks/page-refresh-loop.md.

Done when

Work type page-refresh — floor E3/C3/O3 (harness/eco-floors.yaml).

  • E3 — the owner approved the exact fixes; for each shipped one a tracker record exists whose baseline window ends before the ship date.
  • C3 — the queue excludes brand queries, cites its export and window, labels upside as an estimate; new body copy passes /kai-gate.
  • O3 — refresh_tracker check read Search Console 28+ days after ship and graded the fix against the site-level control. O4 when the grade is won.

Constraints

  • Kai Data Provenance. Load harness/references/audit-data-provenance.md. Every number comes from a Search Console export with a stated window and retrieval date; missing data (no GSC access, no conversions, no titles) goes in _data-gaps.md. No export, no queue: ask for one rather than estimating.
  • Existing pages first. Run python -m scripts.seo.portfolio for multi-site owners. A freeze property gets no new pages or sibling sites in this run; say so when a plan proposes one.
  • Brand terms are always excluded (--brand); brand clicks cannot be won by editing a page.
  • Baseline before ship. python -m scripts.seo.refresh_tracker record must run before or on the ship date with a window that ends before it. A fix recorded late is reported as unmeasured, not graded.
  • No live mutation. This skill drafts; the owner publishes.
  • Never self-grade. The tracker's Search Console read issues the grade; feed it to /kai-retro, which decides what reaches what-works.md.

Context

  • Data: python -m scripts.seo.gsc_data pull --site <property> --out <file> where the credentials live (often the owner's machine), or a CSV export with query, page, clicks, impressions, CTR and position.
  • Queue: python -m scripts.seo.striking_distance --data <file> --brand "<terms>" --titles <crawl.csv> --out workspace/seo-refresh/<site>. Actions: rewrite_title_meta (ranks 1-7, under half the expected CTR), align_title_to_query, expand_depth (5+ page-two queries), internal_links (from the link_from pages, query as anchor).
  • Drafting rules: titles under 60 characters with the top query first; new sections answer first per knowledge/frameworks/content-copywriting/algorithmic-authorship.md.
  • Grading: refresh_tracker check --data <post-ship export> then refresh_tracker report. Grades won / flat / lost / insufficient_data against the rest of the site over the same windows.

Escalate when

  • No Search Console export can be produced from any reachable machine.
  • The top queue pages are noindexed, redirected, or scheduled for removal.
  • Two pages split a query and choosing one means removing or merging a page.
  • The owner wants a new property while an invest property still has an unworked queue.

Frequently asked questions

What does the Kai Page Refresh AI skill do?

Grow search clicks by fixing pages that already rank instead of making new ones. Triages the portfolio (invest / maintain / freeze), builds a refresh queue from Search Console (CTR gaps at positions 1-7, striking distance at 8-20, split queries), drafts the fixes, and grades every shipped fix 28 days later against a site-level control. Use when "striking distance", "page two", "refresh pages", "improve existing pages", "low CTR", "rewrite titles", "why is traffic flat", "which site should we focus on", "more clicks from search", or before planning any new site or content program.

Why use Kai Page Refresh on TypingMind?

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

Which AI models can use Kai Page Refresh?

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 Page Refresh?

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

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