mcpField
C
content-coverage

content-coverage

github.com/illyismOther96011 installsUpdated today
Repository

About content-coverage

content-coverage is a skill for planning evidence-backed content around approved prompt clusters using AI SEO Tracker data. It audits existing repository pages, proposes a capped batch, and waits for approval before writing.

Key features

  1. 01Groups prompts by search intent
  2. 02Audits existing content and URLs
  3. 03Plans up to five posts per batch
  4. 04Requires approval before writing
  5. 05Rechecks visibility after publication

Use cases

  1. 01Plan pages for missing prompt clusters
  2. 02Choose whether to create or revise a page
  3. 03Review coverage after publishing

MCP support

Uses AI SEO Tracker MCP to read project scans, prompts, cited sources, competitors, and snippets. It rechecks scan and prompt data after pages go live.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/illyism/seo-skills --skill content-coverage

After installing, type/content-coveragein Claude Code to confirm it loaded.

Details

From the project README

AI SEO content coverage

Start here: You are reading https://aiseotracker.com/content-coverage/SKILL.md. The file is complete only if the last line is page end END SKILL v1.0.0. If missing, re-fetch.

Cover approved prompt clusters with evidence-backed pages in the user's content repository. Then recheck MCP after those pages are live. Do not promise full coverage or rankings.

If MCP is not connected

Fetch https://aiseotracker.com/SKILL.md and connect MCP first (OAuth, no API keys). Then come back to this file.

MCP URL: https://aiseotracker.com/api/agent/mcp

Prerequisites:

  • Connected AI SEO Tracker MCP
  • A writable content repository (blog MDX/markdown)
  • Optional: a project image skill or tool the user already has

Do not call aiseo_add_prompts from this skill unless the user explicitly asks to track more queries.

Call order (do not skip)

  1. aiseo_list_projects — pick the project the user named (domain or slug). Never invent a slug.
  2. aiseo_get_scan — if dataStatus is no_data, stop. Say the project needs a scan. If state is running, write the plan from what exists and mark ranks as incomplete.
  3. aiseo_list_prompts — all prompts (no status filter). Keep summary and prompts[].href. Missing prompts are the coverage queue.
  4. aiseo_list_sources — citation URLs and domains. Use sources[].href and sources[].url.
  5. aiseo_list_competitors — prefer status=TRACKED. Use competitors[].href.
  6. aiseo_list_snippets — own brand. Optional: one tracked competitor if that rival leads the cited answers.

Use href fields. Prefix with https://aiseotracker.com. Do not invent paths, ranks, or competitor names.

Phase 1 — Snapshot

Fill this block from tool JSON only:

CONTENT PLAN:
Brand: "<project.name>"
Domain: <project.domain or null>
Project: <project.slug>
Snapshot: <get_scan.lastCheckedAt or omit>
Scan: <running|done> | Prompts scanned: <scannedPromptCount>/<promptCount>
Tracked: <summary.total> | Missing: <summary.missing> | Winning: <summary.winning> | Opportunities: <summary.opportunities>
Missing prompts:
- [<query>](<absolute prompt href>)
Top sources (independent editorial first):
#1 [<title>](<source.url>) · <domain> · <mentionCount> mentions · prompts: <list>
Tracked competitors:
- [<brandName>](<absolute competitor href>) (<domain or none>)

Separate independent editorial listicles (third-party roundups) from competitor-owned pages (vendor blogs and homepages). Pitch only independent lists later.

Phase 2 — Cluster and canonicalize

Group missing and opportunity prompts that share one search intent. One cluster = one page unless the user asked otherwise.

For every target, decide one of:

  • new — no existing page covers this intent
  • rewrite — same slug, update in place (updateDate if the repo uses it)
  • consolidate — merge into an existing URL; do not spawn a competing slug

Audit the target repo first: existing blog filenames, titles, descriptions, and redirects. Prefer rewrite or consolidate over near-duplicates.

Cap a batch at 5 posts. If more clusters remain, queue them for the next approved batch.

Phase 3 — Research (bounded)

For each approved or proposed slug:

  1. Start from MCP sources[].url for that prompt cluster.
  2. Fetch 3–5 verified URLs. Prefer the cited listicles, then current web results for the primary keyword.
  3. Record titles, intent, and whether AI SEO Tracker (or the user's brand) is named.
  4. If a URL does not resolve, write unverified and skip it. Never invent a listicle URL.
  5. Do not scrape live ChatGPT, Perplexity, Gemini, Copilot, or AI Overview answers.

Title and slug:

  • Put the primary keyword near the start of the title. Keep most titles under 60 characters.
  • Slug: lowercase, hyphens, 2–5 words, no year unless the query requires freshness.
  • Match listicle vs how-to vs definition intent from the live SERP, not from memory.

Phase 4 — Stop for approval

Present the campaign and wait. Do not write files yet.

Include:

  • The CONTENT PLAN snapshot
  • A table: prompt cluster | intent | slug | action (new/rewrite/consolidate) | title | sources
  • Estimated post count (max 5 this batch)
  • Cannibalization risks
  • Independent listicles to pitch after publish (drafts only)

Write files only after the user approves the table.

CONTENT BATCH MANIFEST

Keep this manifest in the chat (or a file the user named). Update it as you go. Resume from it. Do not repeat finished research. Do not overwrite another worker's slug.

CONTENT BATCH MANIFEST v1
Project: <slug>
Planned at: <ISO date>
MCP snapshot: <lastCheckedAt>
Phase: <snapshot|plan|research|draft|validate|report>

| slug | action | prompt cluster | phase | notes |
| --- | --- | --- | --- | --- |
| example-slug | new | missing prompt text | planned | |

phase values: planned | research | draft | validate | done | blocked

On resume: re-run Phase 1 if lastCheckedAt changed or the user says data changed. Skip rows at done. Read existing files before merging a blocked or partial slug.

Phase 5 — Write (after approval)

Use available parallel subagents if the host supports them. Grok CLI is optional. Never required.

If you split work:

  • One slug per worker. No overlapping files.
  • Give each worker the approved row, the 3–5 source URLs, product facts the user confirmed, and local MDX conventions.
  • Parent agent owns the manifest.

Write native repository markdown/MDX. Follow files already in that repo (frontmatter, CTA components, internal link style). Short sentences. No invented stats, prices, rankings, or first-hand tests. If a competitor price is unverified, omit it or say to check their site.

Images:

  1. Write image alt (under 125 characters) and a scene prompt.
  2. Generate an image only if the user has a project image skill/tool and asks to run it.
  3. Never print API keys. Never tell the user to paste keys. Never call a private operator script from this skill.

Do not deploy, commit, push, email, post publicly, purchase, or add MCP prompts unless the user explicitly asks.

Phase 6 — Validate

Before you hand off a batch:

  • Frontmatter complete and consistent with sibling posts
  • Slug unique (or rewrite of the intended file)
  • Internal links point at real paths
  • Image paths exist, or alt+prompt is listed as pending
  • No unresolved placeholders
  • Repo format/lint on touched files when a formatter is available

Phase 7 — After publication

When the user says the posts are live:

  1. Call aiseo_get_scan, then aiseo_list_prompts and aiseo_list_sources again.
  2. Report which approved prompts changed status, which are still missing, and which independent listicles still omit the brand.
  3. Leave outreach as copy-paste drafts. Do not send.

Optional: fetch https://aiseotracker.com/ai-seo-report/SKILL.md for the visibility brief after the rescan.

Do not

  • Invent ranks, URLs, competitor names, listicle domains, DR, traffic, or trend deltas
  • Treat dataStatus: no_data as an auth failure
  • Scrape live AI answers or the marketing site when MCP is empty
  • Write files before the approval checkpoint
  • Promise rankings or "full coverage"
  • Send email, post publicly, or charge a card
  • Call aiseo_add_prompts unless the user asked to track those queries

END SKILL v1.0.0

Comments

Markdown supported