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

@@ -51,14 +51,60 @@ Analyze brand entity presence in Google Knowledge Graph, Knowledge Panels, Peopl
6. Use **WebSearch** for SERP feature detection
7. Save report to **Notion** SEO Audit Log
## Tools Used
## Data Source Selection
| Tool | Purpose |
|------|---------|
| WebSearch | Search for entity/brand to detect Knowledge Panel |
| WebFetch | Fetch Wikipedia, Wikidata, Naver pages, website schemas |
| WebSearch | SERP feature detection for entity keywords |
| Notion | Save audit reports to SEO Audit Log database |
Entity / Knowledge Graph work spans **KG API lookups**, **on-page schema audit**, **third-party presence checks** (Wikipedia, Wikidata, Naver), and **brand SERP analysis**. Different backends own different slices.
| Backend | Best for | Notes |
|---|---|---|
| **OurSEO** (CLI + MCP) | **Default** for KG lookups, entity audit, schema generation + fix | CLI: `our research kg lookup`, `our research kg resolve`, `our audit entity`, `our audit sameas`, `our build kg-schema`, `our fix entity-schema`. MCP: `mcp__ourseo__search_knowledge_graph`. Only backend with an integrated KG + entity-fix path. |
| **WebSearch / WebFetch** | Knowledge Panel detection, PAA monitoring, Wikipedia / Wikidata / Naver encyclopedia presence | KG Panel detection via direct Google search is heuristic but unavoidable — no MCP exposes Knowledge Panel structure directly. |
| **Ahrefs MCP** (`mcp__ahrefs__*`) | SERP-level entity queries — PAA, brand SERP, FAQ schema appearance | `serp-overview`, `gsc-keywords` (first-party brand query data), `site-audit-issues` for missing schema. |
| **Semrush MCP** (`mcp__semrush__*`) | Brand SERP overview, organic positions for entity-related queries | No dedicated KG endpoints — supplementary only. |
### How to pick
1. **User named a backend explicitly** → use it.
2. **User preference memory** — read `feedback_seo_tool_preferences.md`; honor the task-type default.
3. **Task is KG lookup / entity resolution / sameAs validation / schema fix** → use **OurSEO** (CLI primary, MCP for Desktop). No alternative covers this end-to-end.
4. **Task is Wikipedia / Wikidata / Naver encyclopedia presence** → WebSearch + WebFetch (no MCP backend covers third-party encyclopedias).
5. **Task is brand SERP analysis** → Ahrefs `serp-overview` or Semrush `overview_research`, paired with WebSearch for Knowledge Panel detection.
6. **Default**: **OurSEO `our research kg`** + WebSearch for third-party presence.
7. **Still ambiguous + non-trivial** → ask once via `AskUserQuestion`.
### Backend call patterns
**OurSEO CLI (default — KG lookup + entity audit + fix):**
```bash
our research kg lookup "<entity>" --language ko
our research kg resolve "<entity>" --domain <site> --language ko
our audit entity https://<site> --entity "<entity>" --language ko
our audit sameas https://<site> --brand "<brand>"
our build kg-schema --type Organization --name "<entity>" --url https://<site> --auto-sameas
our fix entity-schema --site https://<site> --type Organization --entity-name "<entity>" --auto-sameas --cms ghost --deploy
```
**OurSEO MCP (Claude Desktop):**
```
mcp__ourseo__search_knowledge_graph(query="<entity>", language="ko")
```
**Third-party presence (WebSearch / WebFetch):**
```
WebSearch: "<entity>" site:wikipedia.org
WebFetch: https://www.wikidata.org/wiki/Special:Search?search=<entity>
WebSearch: "<entity>" site:terms.naver.com # Naver encyclopedia
WebSearch: "<entity>" site:kin.naver.com # Naver 지식iN
```
**Brand SERP analysis (Ahrefs / Semrush):**
```
mcp__ahrefs__serp-overview(keyword="<brand>", country="us")
mcp__ahrefs__gsc-keywords(project_id="<id>") # First-party brand query data
mcp__semrush__overview_research(query="<brand>", database="us")
```
Always record the chosen data source(s) in the report **Overview** so future audits can compare like-for-like.
## Notion Output