feat(seo-skills): multi-backend Data Source Selection (#7)

Replaces single-vendor (Ahrefs-only) tool defaults with a per-task
backend menu across all 14 SEO skills. Each skill now lists every
capable MCP in allowed-tools and documents how to pick between
Semrush, Ahrefs, OurSEO Agent (CLI + MCP), DataForSEO, and GSC
in its SKILL.md Data Source Selection section.

Tool stubs (~40 new files) populated per skill with capability
deltas, call patterns, and explicit "not for this skill when"
callouts so the menu is self-correcting.

Skills affected: 19-keyword-strategy, 20-serp-analysis,
21-position-tracking, 22-link-building, 23-content-strategy,
24-ecommerce, 25-kpi-framework, 26-international, 27-ai-visibility,
28-knowledge-graph, 31-competitor-intel, 32-crawl-budget,
33-migration-planner, 34-reporting-dashboard.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Andrew Yim
2026-05-14 03:15:32 +09:00
committed by GitHub
parent 1ca84f67ed
commit e527fb4b0f
71 changed files with 2647 additions and 258 deletions

View File

@@ -1,15 +1,32 @@
# Ahrefs
# Ahrefs MCP
> TODO: Document tool usage for this skill
Use for **top-pages-by-traffic** views on competitor sites, **content decay** candidates on the target, and Korean platform refdomains. Namespace: `mcp__ahrefs__*` / `mcp__claude_ai_Ahrefs__*`.
## Available Commands
## Key endpoints
- [ ] List commands
- `site-explorer-top-pages` — pages ranked by traffic for any domain (target or competitor)
- `site-explorer-pages-history` — trend in indexed pages over time (decay signal)
- `site-explorer-pages-by-traffic` — sorted by current traffic
- `site-explorer-pages-by-internal-links` — informs internal-linking opportunities
- `keywords-explorer-overview` / `-related-terms` / `-matching-terms` — topic expansion
- `gsc-pages` — first-party top pages when GSC is connected to the project
## Configuration
## Example
- [ ] Add configuration details
```
mcp__ahrefs__site-explorer-top-pages(target="<competitor>", country="us", limit=100)
mcp__ahrefs__site-explorer-pages-history(target="<target>", history="monthly")
mcp__ahrefs__keywords-explorer-related-terms(keyword="<topic>", country="us", limit=50)
```
## Examples
## Strengths for this skill
- [ ] Add usage examples
- Best ranked-by-traffic view of competitor content inventory.
- Historical pages-history surfaces decaying content quickly.
- Pairs well with OurSEO crawl (which gives the on-page side).
## Not for this skill when
- **On-page content inventory of the target** — OurSEO `crawl_website` is the ground-truth source.
- **Cannibalization detection** on the target — GSC first-party data is required.
- **Korean Naver content** — Ahrefs underrepresents Naver Blog/Cafe; use `our research naver *` and WebSearch.

View File

@@ -0,0 +1,42 @@
# Google Search Console
**Required** for two content-strategy tasks that no other backend can do honestly:
1. **Cannibalization detection** — query × page combos where multiple URLs share impressions.
2. **Decay detection** — period-over-period impression decline on the target's existing pages.
## CLI commands
```bash
# Top queries — what the site already ranks for
our research search-console queries --site sc-domain:<domain> --days 28
# Top pages by clicks/impressions
our research search-console pages --site sc-domain:<domain> --days 28
# Combined query × page — REQUIRED for cannibalization
our research search-console combined --site sc-domain:<domain> --days 90
```
`sc-domain:` prefix for Domain-verified properties; URL-prefix properties use the plain URL.
## Decay workflow
1. Pull `pages` for the last 90 days.
2. Pull `pages` for the same 90-day window from 90 days prior (or use cached prior runs).
3. Diff impression / click counts per URL.
4. Flag URLs with >30% impression decline as decay candidates.
5. Cross-reference with `our collect crawl` output to check freshness signals (last-modified, content age).
## Cannibalization workflow
1. Pull `combined` over 90 days.
2. Group by query; count distinct URLs per query.
3. Flag queries where 2+ URLs each have >100 impressions — the site is competing with itself.
## Not for this skill when
- **Net-new content discovery** — GSC only knows what already ranks. Use Semrush/Ahrefs for gap discovery.
- **Competitor performance** — single-site only.
Gotcha: `our-claude-skills/custom-skills/15-seo-search-console/code/gotcha/gsc-cli-integration.md`.

View File

@@ -0,0 +1,39 @@
# OurSEO Agent (CLI + MCP)
The **on-page** half of content strategy work — what the target site itself publishes, in what shape, with what schema. Pair with a keyword backend (Semrush/Ahrefs) for performance data.
## CLI commands (Claude Code)
```bash
# Crawl the target for content inventory (titles, H1s, meta, last-modified)
our collect crawl https://<site> --max-pages 500
# Korean batch keyword research for content gaps
our keywords ideas "<seed>" --location 2410 --limit 50
our keywords for-site <competitor.com> --location 2410 --limit 100
our serp ranked-keywords <domain> --location 2410 --limit 100
# Naver-specific content discovery
our research naver keywords ideas "<seed>" --limit 30
our research naver serp "<keyword>"
```
## MCP tools (Claude Desktop)
```
mcp__ourseo__crawl_website(url="<target>", max_pages=200)
mcp__ourseo__find_similar_pages(crawl_path="<path/to/crawl.json>", query="<topic>")
mcp__ourseo__search_knowledge_graph(query="<entity>")
```
## Strengths for this skill
- **`crawl_website` is the ground-truth on-page content inventory.** No vendor estimates — just what the site publishes.
- **`find_similar_pages`** does semantic clustering on a prior crawl (Vertex AI embeddings) — useful for topic-cluster building and cannibalization candidates.
- Korean Naver content discovery via `our research naver *` covers a market Semrush/Ahrefs don't reach.
## Not for this skill when
- **Search volume / KD per keyword** — Semrush MCP is the cleanest source.
- **Top pages by traffic on competitor sites** — Ahrefs `site-explorer-top-pages`.
- **First-party content performance** — GSC `pages` / `combined` reports.

View File

@@ -0,0 +1,34 @@
# Semrush MCP
**Default** for organic content discovery and keyword expansion in content strategy work.
Call pattern: discovery → `get_report_schema``execute_report`.
## Key reports
- `organic_research` — organic keywords + top pages for a domain
- `keyword_research` — expansion, volume, KD, intent
- `overview_research` — domain-level traffic/visibility
## Example
```
mcp__semrush__organic_research(query="<competitor.com>", database="us")
mcp__semrush__keyword_research(query="<seed topic>", database="us")
mcp__semrush__get_report_schema(report_id="<id>")
mcp__semrush__execute_report(report_id="<id>", params={...})
```
Korean market: `database="kr"`.
## Strengths for this skill
- Best overall keyword + organic competitor view.
- Cleanest discovery → schema → execute pattern for batch content brief generation.
- Pairs with OurSEO crawl (on-page) and GSC (first-party performance).
## Not for this skill when
- **On-page inventory of target site** — OurSEO `crawl_website`.
- **Cannibalization detection** — GSC first-party `combined` report.
- **Korean Naver content** — `our research naver *` covers Naver-specific patterns Semrush doesn't.