seo 0.2.8 → 0.2.10

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seo",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
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.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -74,7 +74,8 @@
74
74
  "security:check": "pnpm run security:audit && pnpm run security:secrets",
75
75
  "security:secrets": "node scripts/security-secrets.mjs",
76
76
  "skills:validate": "node scripts/validate-skills.mjs",
77
- "test": "turbo run test && pnpm run build:package && node --test scripts/package.test.mjs scripts/dogfood-summary.test.mjs && pnpm run skills:validate",
77
+ "test": "turbo run test && pnpm run build:package && node --test scripts/package.test.mjs scripts/dogfood-summary.test.mjs && node scripts/resource-harness.mjs && node scripts/provider-resource-harness.mjs && pnpm run skills:validate",
78
+ "test:resources": "pnpm run build:package && node scripts/resource-harness.mjs && node scripts/provider-resource-harness.mjs",
78
79
  "test:package-install": "pnpm run build:package && node --test scripts/installed-package.test.mjs",
79
80
  "typecheck": "turbo run typecheck"
80
81
  },
@@ -106,7 +107,6 @@
106
107
  "string-width": "^7.2.0",
107
108
  "undici": "^8.7.0",
108
109
  "update-notifier": "^7.3.1",
109
- "user-agents": "2.1.117",
110
110
  "zod": "^4.4.3"
111
111
  },
112
112
  "devDependencies": {
@@ -38,6 +38,14 @@ response is the per-report manual: follow its `readOrder`, respect its
38
38
  `doNotClaim` limits, and use its `related` ids to decide what to run next.
39
39
  Reuse the schema for repeated runs. Do not guess parameters.
40
40
 
41
+ When a describe response lists `fixableChecks`, the report also serves fix
42
+ guidance per check. After a run, take each failed or warning check id from
43
+ `topActions` and call `seo_describe_report` with `id` and `check` (CLI:
44
+ `seo reports describe <report-id> --check <check-id>`). The result contains
45
+ the goal, fix steps, a ready-to-use agent prompt, spec links, and a
46
+ verification step for that one check. Fetch guidance only for checks you are
47
+ actually going to fix.
48
+
41
49
  ## Setup and selection
42
50
 
43
51
  Run the `setup-check` report (or `seo doctor`) if auth state is unknown.
@@ -56,7 +64,7 @@ its evidence, then decide; do not run a whole chain blindly.
56
64
  |---|---|
57
65
  | Page not indexed or missing from Google | `index-coverage`, `index-monitor` (URL Inspection), `audit-page`, `redirect-trace` |
58
66
  | Traffic or clicks dropped | `search-performance-overview`, `traffic-anomaly`, `update-correlation`, `segment-impact`, `decaying-pages`, `link-recovery` |
59
- | Audit a whole site | `report` command (main report), `site-crawl`, `top-fixes`, `ai-search-scorecard` |
67
+ | Audit a whole site | `site-crawl` with `health: true`, `report` command (main report), full `site-crawl` only if needed, `top-fixes`, `ai-search-scorecard` |
60
68
  | More clicks from existing pages | `quick-wins`, `ctr-underperformers`, `striking-distance`, `second-page`, `internal-links` |
61
69
  | AI agent readiness for a content site | `agent-readiness`, `ai-readiness`, `entity-readiness`, `llms-txt-audit` |
62
70
  | AI search visibility and eligibility | `ai-readiness`, `geo-gaps`, `ai-referrals`, `seo-to-ai-query` |
@@ -70,8 +78,25 @@ URL and an `audit-page` pass for content or technical problems on the page
70
78
  itself.
71
79
 
72
80
  The main human report is the `seo report` command. It is the right first move
73
- when the user asks a broad "how is my site doing" question; the focused
74
- reports above are for specific symptoms.
81
+ for a broad performance question with a known project and available search
82
+ evidence. For a broad technical audit of a large or unfamiliar URL, run the
83
+ sitemap health pass before any full crawl. The focused reports above are for
84
+ specific symptoms.
85
+
86
+ For a large or unfamiliar site, do not open with a full crawl. Describe and run
87
+ `site-crawl` with `health: true` and an explicit `sitemapUrl` when known. This
88
+ first pass checks sitemap URL responses, redirects, robots decisions, and
89
+ access blocks without downloading, parsing, rendering, or caching page bodies.
90
+ Read `config.strategy`, `access`, failures, limits, and sitemap completeness.
91
+ Run the full `site-crawl` second only when the question needs page content,
92
+ metadata, canonicals, internal links, structured data, or rendered HTML.
93
+
94
+ The crawler identifies every HTTP and browser request as
95
+ `SEO-Skill/<version> (+https://seoskill.dev)`. If `access.blockedRequests` is
96
+ non-zero, give the user the provider evidence and exact User-Agent. A
97
+ User-Agent is spoofable, so ask for a temporary exception scoped to the audit
98
+ machine source IP, hostname or required paths, and only the blocking security
99
+ rule. Never recommend a broad User-Agent-only bypass.
75
100
 
76
101
  ## Evidence rules
77
102
 
@@ -97,5 +122,6 @@ The CLI also has direct commands for raw provider access and administration:
97
122
  report when one covers the question, because reports carry provenance and
98
123
  caveats that raw queries do not.
99
124
 
100
- Report output is cached locally. Pass `refresh: true` (or `--refresh`) only
101
- when the user explicitly wants a fresh fetch.
125
+ Full report output is cached locally. Pass `refresh: true` (or `--refresh`)
126
+ only when the user explicitly wants a fresh fetch. The sitemap health strategy
127
+ always bypasses page-body cache and never writes page responses to it.