seo 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,43 @@
1
+ {
2
+ "subject": "competitor-keyword-gap",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Compare three known UK competitors with my Search Console data and find keyword gaps worth investigating.",
7
+ "expected_output": "Should use report id competitor-keyword-gap through the shared discover, describe, and run flow. Should require a deliberate site-type classification for every competitor, pass a bounded GB English market, and read first-party, provider, processing, cap, cache, cost, and failure evidence before presenting candidates. Should distinguish relevant candidates from terms already observed or ranked by the user's site.",
8
+ "assertions": [
9
+ "Uses report id competitor-keyword-gap through the shared report flow",
10
+ "Requires an explicit site-type classification for every competitor",
11
+ "Passes a bounded GB English market and bounded per-domain limits",
12
+ "Reads first-party and provider provenance, processing counts, caps, cache, cost, and failures",
13
+ "Separates relevant candidates from terms already observed or ranked by the user's site"
14
+ ],
15
+ "files": []
16
+ },
17
+ {
18
+ "id": 2,
19
+ "prompt": "A directory competitor ranks for 20,000 location terms that are absent from our retained Search Console rows. Prove we should launch all 20,000 pages and forecast the traffic.",
20
+ "expected_output": "Should refuse the proof and forecast. Should explain that the provider set is bounded, provider volume and traffic are estimates, and absence from retained Search Console rows is not a definitive zero. Should use repeated URL and query patterns as research evidence, inspect representative results and existing pages, validate the proposed data source and template value, and keep no new page as a valid outcome.",
21
+ "assertions": [
22
+ "Refuses to treat a competitor's page count as proof of an opportunity",
23
+ "Refuses to forecast traffic from provider estimates",
24
+ "Does not treat absence from retained Search Console rows as zero",
25
+ "Requires representative result, page, data-source, and template validation",
26
+ "Keeps no new page as a valid outcome"
27
+ ],
28
+ "files": []
29
+ },
30
+ {
31
+ "id": 3,
32
+ "prompt": "Find our real search competitors for these product queries, then tell me which company is best.",
33
+ "expected_output": "Should use serp-competitors to identify domains that repeatedly appear for the explicit query set. Should keep declared business types separate from unknown types and state that search overlap does not establish company quality, authority, market share, or business equivalence. Should recommend separate business research before making a best-company judgment.",
34
+ "assertions": [
35
+ "Uses serp-competitors for repeated search-result overlap",
36
+ "Does not guess unknown competitor business types",
37
+ "Does not equate search overlap with company quality, authority, or market share",
38
+ "Requires separate evidence for a best-company judgment"
39
+ ],
40
+ "files": []
41
+ }
42
+ ]
43
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "seo",
3
- "version": "0.2.18",
4
- "description": "The only SEO skill your agent needs. 50+ SEO audit tools through a local CLI and MCP server, using your own crawl, Search Console, and Google Analytics data.",
3
+ "version": "0.2.20",
4
+ "description": "The SEO command for AI agents. Audit sites and research search opportunities with local, evidence-backed reports.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
7
7
  "author": "Ian Nuttall",
@@ -18,6 +18,8 @@
18
18
  "seo",
19
19
  "search-console",
20
20
  "google-analytics",
21
+ "keyword-research",
22
+ "competitor-analysis",
21
23
  "crawler",
22
24
  "cli",
23
25
  "mcp"
@@ -1,14 +1,15 @@
1
1
  ---
2
2
  name: seo
3
- description: Use and read this skill immediately if the user request is in any way related to SEO or a site's organic search or AI search presence. That includes site audits, rankings, click or traffic changes, indexing problems, crawling, redirects, sitemaps, metadata, structured data, Core Web Vitals, internal links, content opportunities, Search Console or Google Analytics questions, Google update impact, llms.txt, AI search visibility in ChatGPT, Claude, Perplexity, or Google AI Overviews, and client SEO reporting. Routes to 50+ evidence-backed local reports through the SEO CLI and MCP server.
3
+ description: Use and read this skill immediately if the user request is in any way related to SEO or a site's organic search or AI search presence. That includes site audits, rankings, keyword research, competitors, backlinks, click or traffic changes, indexing problems, crawling, redirects, sitemaps, metadata, structured data, Core Web Vitals, internal links, content opportunities, programmatic SEO, local search, Search Console or Google Analytics questions, Google update impact, llms.txt, AI search visibility in ChatGPT, Claude, Perplexity, or Google AI Overviews, and client SEO reporting. Routes to evidence-backed local reports through the SEO CLI and MCP server.
4
4
  ---
5
5
 
6
6
  # seo
7
7
 
8
8
  `seo` is a local CLI, MCP server, and report engine using crawl, Search Console,
9
- Google Analytics, and optional Bing evidence. Reports keep observations,
10
- findings, caveats, and provenance separate. Data stays local. Discover reports
11
- at runtime instead of memorising them.
9
+ Google Analytics, optional Bing evidence, and optional research providers.
10
+ Reports keep observations, estimates, findings, caveats, costs, and provenance
11
+ separate. Data stays local. Discover reports at runtime instead of memorising
12
+ them.
12
13
 
13
14
  ## Discover, describe, run
14
15
 
@@ -54,6 +55,9 @@ Run the first report, read it, then decide. Do not run a whole chain blindly.
54
55
  | AI agent readiness for a content site | `agent-readiness`, `ai-readiness`, `entity-readiness`, `llms-txt-audit` |
55
56
  | AI search visibility and eligibility | `ai-readiness`, `geo-gaps`, `ai-referrals`, `seo-to-ai-query` |
56
57
  | Plan content from real demand | `query-clusters`, `page-opportunities`, `content-optimization`, `cannibalisation` |
58
+ | Research keywords and current results | `keyword-research`, `keyword-metrics`, `saved-keywords`, `serp-results` |
59
+ | Find search competitors and plausible gaps | `serp-competitors`, `domain-overview`, `ranking-pages`, `ranked-keywords`, `competitor-keyword-gap` |
60
+ | Research programmatic SEO opportunities | `keyword-opportunities`, `pseo-opportunities`, `ranking-pages`, `competitor-keyword-gap`, then `pseo-audit` for an existing site |
57
61
  | Catch regressions over time | `technical-watch`, `crawl-diff`, `index-watch`, `measure-change` after a fix ships |
58
62
  | Track exact keyword positions | `rank-tracking` for a saved set and fixed market/device; `serp-results` for one current query |
59
63
  | Review Bing traffic, crawl, query, and page insights | `bing-webmaster-overview`, then `site-crawl` when live page evidence is needed |
@@ -104,6 +108,9 @@ recommend a User-Agent-only bypass.
104
108
  - If a report returns no rows, say so plainly.
105
109
  - Intentional controls such as `noindex`, canonicals, and robots rules are
106
110
  observations until the user confirms they are unintended.
111
+ - Provider traffic, volume, difficulty, visibility, intent, authority, and
112
+ ranking history are estimates. Keep them separate from Search Console,
113
+ Google Analytics, crawl, and live result evidence.
107
114
 
108
115
  ## Beyond the report catalog
109
116