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.
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:
Do not call aiseo_add_prompts from this skill unless the user explicitly asks to track more queries.
aiseo_list_projects: pick the project the user named (domain or slug). Never invent a slug.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.aiseo_list_prompts: all prompts (no status filter). Keep summary and prompts[].href. Missing prompts are the coverage queue.aiseo_list_sources: citation URLs and domains. Use sources[].href and sources[].url.aiseo_list_competitors: prefer status=TRACKED. Use competitors[].href.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.
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.
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 intentrewrite: same slug, update in place (updateDate if the repo uses it)consolidate: merge into an existing URL; do not spawn a competing slugAudit 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.
For each approved or proposed slug:
sources[].url for that prompt cluster.unverified and skip it. Never invent a listicle URL.Title and slug:
Present the campaign and wait. Do not write files yet.
Include:
prompt cluster | intent | slug | action (new/rewrite/consolidate) | title | sourcesWrite files only after the user approves the table.
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.
Use available parallel subagents if the host supports them. Grok CLI is optional. Never required.
If you split work:
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:
Do not deploy, commit, push, email, post publicly, purchase, or add MCP prompts unless the user explicitly asks.
Before you hand off a batch:
When the user says the posts are live:
aiseo_get_scan, then aiseo_list_prompts and aiseo_list_sources again.Optional: fetch https://aiseotracker.com/ai-seo-report/SKILL.md for the visibility brief after the rescan.
dataStatus: no_data as an auth failureaiseo_add_prompts unless the user asked to track those queriesEND SKILL v1.0.0