tracking-citation-diffslisted
Install: claude install-skill benskamps/seo-superpower
# Tracking Citation Diffs (the GEO Diff Bot)
## Overview
Getting cited by ChatGPT, Claude, and Perplexity is the GEO win — but citations are volatile. Fresh-content topics churn their citation choices on a **~14-day window** [see `optimizing-for-generative-engines`], so "we got cited once" decays silently. The question that actually drives work is: **did our last change win or lose citations, or did the AI landscape move on its own?**
The GEO Diff Bot answers that. Given two citation snapshots taken at different times, it:
1. **Diffs** them into gained / lost / unchanged citations, per provider, per prompt.
2. **Correlates** each change to the **content commit(s)** that landed in the window between the two snapshots (git-blame at commit granularity, restricted to content files).
3. **Flags external shifts honestly** — when a citation changes but *no content changed in your repo*, it labels the change `external`: a model update, a competitor, or a crawl refresh moved it, not you. That distinction is the whole point — it stops you from taking credit (or blame) for shifts you didn't cause.
This is the citation-defense monitoring layer. Pair it with `optimizing-for-generative-engines` (the per-page craft that *earns* citations) and `refreshing-stale-content` (the decay-driven refresh loop).
## Architecture: where the pieces live
| Piece | Lives in | Role |
|---|---|---|
| Snapshot producer | `geo-check` MCP → `geo_track` tool | Polls the LLM providers, writes a timestamped