seo 0.1.0 → 0.2.0

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.
Files changed (189) hide show
  1. package/PRIVACY.md +2 -2
  2. package/README.md +133 -40
  3. package/TERMS.md +2 -2
  4. package/TRADEMARKS.md +9 -5
  5. package/dist/cli.js +68 -52
  6. package/dist/cli.js.map +1 -1
  7. package/dist/{dist-CSY2_p-j.js → dist-6bK_8r5M.js} +49 -49
  8. package/dist/dist-6bK_8r5M.js.map +1 -0
  9. package/dist/{dist-FeAUNn9A.js → dist-vRmqfhR4.js} +1 -1
  10. package/dist/index.d.ts +186 -94
  11. package/dist/index.js +843 -415
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp.d.ts +18 -1
  14. package/dist/mcp.js +6532 -4665
  15. package/dist/mcp.js.map +1 -1
  16. package/dist/{package-uzXzqDW6.js → package-7aT8_Xp0.js} +2 -2
  17. package/dist/{package-uzXzqDW6.js.map → package-7aT8_Xp0.js.map} +1 -1
  18. package/evals/README.md +117 -0
  19. package/evals/affected-urls.json +57 -0
  20. package/evals/ai-readiness.json +84 -0
  21. package/evals/ai-referrals.json +71 -0
  22. package/evals/ai-search-scorecard.json +70 -0
  23. package/evals/audit-page.json +57 -0
  24. package/evals/audit-urls.json +58 -0
  25. package/evals/cannibalisation.json +57 -0
  26. package/evals/community-intent.json +57 -0
  27. package/evals/compare-crawls.json +56 -0
  28. package/evals/content-optimization.json +57 -0
  29. package/evals/crawl-diff.json +58 -0
  30. package/evals/crawl-history.json +44 -0
  31. package/evals/crawl-report.json +44 -0
  32. package/evals/crawler-rules.json +44 -0
  33. package/evals/ctr-underperformers.json +57 -0
  34. package/evals/decaying-pages.json +57 -0
  35. package/evals/entity-readiness.json +57 -0
  36. package/evals/explain-crawl-issue.json +44 -0
  37. package/evals/generate-llms-txt.json +44 -0
  38. package/evals/geo-gaps.json +57 -0
  39. package/evals/index-coverage-plan.json +58 -0
  40. package/evals/index-coverage.json +70 -0
  41. package/evals/index-monitor.json +58 -0
  42. package/evals/index-watch.json +68 -0
  43. package/evals/internal-links.json +57 -0
  44. package/evals/link-recovery.json +58 -0
  45. package/evals/llms-txt-audit.json +44 -0
  46. package/evals/measure-change.json +58 -0
  47. package/evals/monthly-action-plan.json +56 -0
  48. package/evals/monthly-report.json +58 -0
  49. package/evals/narrative-report.json +58 -0
  50. package/evals/okf-build.json +44 -0
  51. package/evals/okf-validate.json +44 -0
  52. package/evals/page-opportunities.json +57 -0
  53. package/evals/performance-audit.json +57 -0
  54. package/evals/pseo-audit.json +84 -0
  55. package/evals/query-clusters.json +57 -0
  56. package/evals/quick-wins.json +86 -0
  57. package/evals/redirect-trace.json +57 -0
  58. package/evals/refresh-priorities.json +57 -0
  59. package/evals/search-performance-overview.json +86 -0
  60. package/evals/second-page.json +58 -0
  61. package/evals/segment-impact.json +57 -0
  62. package/evals/seo-fix-queue.json +85 -0
  63. package/evals/seo-geo-readiness.json +84 -0
  64. package/evals/seo-site-audit.json +85 -0
  65. package/evals/seo-to-ai-query.json +57 -0
  66. package/evals/seo.json +87 -0
  67. package/evals/setup-check.json +56 -0
  68. package/evals/site-crawl.json +44 -0
  69. package/evals/striking-distance.json +85 -0
  70. package/evals/technical-watch.json +57 -0
  71. package/evals/top-fixes.json +44 -0
  72. package/evals/traffic-anomaly.json +57 -0
  73. package/evals/update-correlation.json +57 -0
  74. package/evals/update-postmortem.json +57 -0
  75. package/package.json +5 -3
  76. package/skills/README.md +46 -59
  77. package/skills/seo/SKILL.md +88 -63
  78. package/skills/seo/agents/openai.yaml +2 -2
  79. package/dist/dist-CSY2_p-j.js.map +0 -1
  80. package/skills/affected-urls/SKILL.md +0 -39
  81. package/skills/affected-urls/agents/openai.yaml +0 -4
  82. package/skills/ai-readiness/SKILL.md +0 -34
  83. package/skills/ai-readiness/agents/openai.yaml +0 -4
  84. package/skills/ai-referrals/SKILL.md +0 -31
  85. package/skills/ai-referrals/agents/openai.yaml +0 -4
  86. package/skills/audit-page/SKILL.md +0 -50
  87. package/skills/audit-page/agents/openai.yaml +0 -4
  88. package/skills/audit-urls/SKILL.md +0 -39
  89. package/skills/audit-urls/agents/openai.yaml +0 -4
  90. package/skills/cannibalisation/SKILL.md +0 -31
  91. package/skills/cannibalisation/agents/openai.yaml +0 -4
  92. package/skills/community-intent/SKILL.md +0 -39
  93. package/skills/community-intent/agents/openai.yaml +0 -4
  94. package/skills/compare-crawls/SKILL.md +0 -40
  95. package/skills/compare-crawls/agents/openai.yaml +0 -4
  96. package/skills/content-optimization/SKILL.md +0 -31
  97. package/skills/content-optimization/agents/openai.yaml +0 -4
  98. package/skills/crawl-diff/SKILL.md +0 -51
  99. package/skills/crawl-diff/agents/openai.yaml +0 -4
  100. package/skills/crawl-history/SKILL.md +0 -37
  101. package/skills/crawl-history/agents/openai.yaml +0 -4
  102. package/skills/crawl-report/SKILL.md +0 -37
  103. package/skills/crawl-report/agents/openai.yaml +0 -4
  104. package/skills/crawler-rules/SKILL.md +0 -34
  105. package/skills/crawler-rules/agents/openai.yaml +0 -4
  106. package/skills/ctr-underperformers/SKILL.md +0 -31
  107. package/skills/ctr-underperformers/agents/openai.yaml +0 -4
  108. package/skills/decaying-pages/SKILL.md +0 -31
  109. package/skills/decaying-pages/agents/openai.yaml +0 -4
  110. package/skills/entity-readiness/SKILL.md +0 -34
  111. package/skills/entity-readiness/agents/openai.yaml +0 -4
  112. package/skills/explain-crawl-issue/SKILL.md +0 -32
  113. package/skills/explain-crawl-issue/agents/openai.yaml +0 -4
  114. package/skills/generate-llms-txt/SKILL.md +0 -37
  115. package/skills/generate-llms-txt/agents/openai.yaml +0 -4
  116. package/skills/geo-gaps/SKILL.md +0 -37
  117. package/skills/geo-gaps/agents/openai.yaml +0 -4
  118. package/skills/index-coverage/SKILL.md +0 -84
  119. package/skills/index-coverage/agents/openai.yaml +0 -4
  120. package/skills/index-coverage-plan/SKILL.md +0 -50
  121. package/skills/index-coverage-plan/agents/openai.yaml +0 -4
  122. package/skills/index-monitor/SKILL.md +0 -49
  123. package/skills/index-monitor/agents/openai.yaml +0 -4
  124. package/skills/index-watch/SKILL.md +0 -77
  125. package/skills/index-watch/agents/openai.yaml +0 -4
  126. package/skills/internal-links/SKILL.md +0 -31
  127. package/skills/internal-links/agents/openai.yaml +0 -4
  128. package/skills/link-recovery/SKILL.md +0 -51
  129. package/skills/link-recovery/agents/openai.yaml +0 -4
  130. package/skills/llms-txt-audit/SKILL.md +0 -34
  131. package/skills/llms-txt-audit/agents/openai.yaml +0 -4
  132. package/skills/measure-change/SKILL.md +0 -52
  133. package/skills/measure-change/agents/openai.yaml +0 -4
  134. package/skills/monthly-action-plan/SKILL.md +0 -50
  135. package/skills/monthly-action-plan/agents/openai.yaml +0 -4
  136. package/skills/monthly-report/SKILL.md +0 -50
  137. package/skills/monthly-report/agents/openai.yaml +0 -4
  138. package/skills/narrative-report/SKILL.md +0 -51
  139. package/skills/narrative-report/agents/openai.yaml +0 -4
  140. package/skills/okf-build/SKILL.md +0 -39
  141. package/skills/okf-build/agents/openai.yaml +0 -4
  142. package/skills/okf-validate/SKILL.md +0 -43
  143. package/skills/okf-validate/agents/openai.yaml +0 -4
  144. package/skills/page-opportunities/SKILL.md +0 -31
  145. package/skills/page-opportunities/agents/openai.yaml +0 -4
  146. package/skills/performance/SKILL.md +0 -50
  147. package/skills/performance/agents/openai.yaml +0 -4
  148. package/skills/performance-audit/SKILL.md +0 -31
  149. package/skills/performance-audit/agents/openai.yaml +0 -4
  150. package/skills/pseo-audit/SKILL.md +0 -103
  151. package/skills/pseo-audit/agents/openai.yaml +0 -4
  152. package/skills/query-clusters/SKILL.md +0 -31
  153. package/skills/query-clusters/agents/openai.yaml +0 -4
  154. package/skills/quick-wins/SKILL.md +0 -31
  155. package/skills/quick-wins/agents/openai.yaml +0 -4
  156. package/skills/redirect-trace/SKILL.md +0 -51
  157. package/skills/redirect-trace/agents/openai.yaml +0 -4
  158. package/skills/refresh-priorities/SKILL.md +0 -48
  159. package/skills/refresh-priorities/agents/openai.yaml +0 -4
  160. package/skills/search-performance-overview/SKILL.md +0 -48
  161. package/skills/search-performance-overview/agents/openai.yaml +0 -4
  162. package/skills/second-page/SKILL.md +0 -50
  163. package/skills/second-page/agents/openai.yaml +0 -4
  164. package/skills/segment-impact/SKILL.md +0 -50
  165. package/skills/segment-impact/agents/openai.yaml +0 -4
  166. package/skills/seo-fix-queue/SKILL.md +0 -50
  167. package/skills/seo-fix-queue/agents/openai.yaml +0 -4
  168. package/skills/seo-geo-readiness/SKILL.md +0 -60
  169. package/skills/seo-geo-readiness/agents/openai.yaml +0 -4
  170. package/skills/seo-site-audit/SKILL.md +0 -59
  171. package/skills/seo-site-audit/agents/openai.yaml +0 -4
  172. package/skills/seo-to-ai-query/SKILL.md +0 -31
  173. package/skills/seo-to-ai-query/agents/openai.yaml +0 -4
  174. package/skills/setup-check/SKILL.md +0 -49
  175. package/skills/setup-check/agents/openai.yaml +0 -4
  176. package/skills/site-crawl/SKILL.md +0 -39
  177. package/skills/site-crawl/agents/openai.yaml +0 -4
  178. package/skills/striking-distance/SKILL.md +0 -52
  179. package/skills/striking-distance/agents/openai.yaml +0 -4
  180. package/skills/technical-watch/SKILL.md +0 -49
  181. package/skills/technical-watch/agents/openai.yaml +0 -4
  182. package/skills/top-fixes/SKILL.md +0 -38
  183. package/skills/top-fixes/agents/openai.yaml +0 -4
  184. package/skills/traffic-anomaly/SKILL.md +0 -52
  185. package/skills/traffic-anomaly/agents/openai.yaml +0 -4
  186. package/skills/update-correlation/SKILL.md +0 -51
  187. package/skills/update-correlation/agents/openai.yaml +0 -4
  188. package/skills/update-postmortem/SKILL.md +0 -49
  189. package/skills/update-postmortem/agents/openai.yaml +0 -4
package/PRIVACY.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Last updated: 10 July 2026
4
4
 
5
5
  This policy covers the official `seo` command-line tool, library, MCP server,
6
- and the seoskills.dev website.
6
+ and the seoskill.dev website.
7
7
 
8
8
  The current software runs on your machine. It does not create an SEO account,
9
9
  upload reports to an SEO service, or send your Google data to the project
@@ -57,7 +57,7 @@ The CLI does not include project-controlled usage telemetry. Installing the
57
57
  package through npm or using GitHub is covered by the policies of those
58
58
  services.
59
59
 
60
- The seoskills.dev host and security provider may process normal web request
60
+ The seoskill.dev host and security provider may process normal web request
61
61
  data such as an IP address, user agent, requested path, and timestamp. Website
62
62
  logs do not include the reports, tokens, or Google API responses stored by the
63
63
  local software.
package/README.md CHANGED
@@ -1,23 +1,23 @@
1
1
  <p align="center">
2
- <img src="apps/web/public/favicon.svg" alt="SEO Skills CLI" width="72" height="72">
2
+ <img src="apps/web/public/favicon.svg" alt="SEO Skill" width="72" height="72">
3
3
  </p>
4
4
 
5
- <h1 align="center">SEO Skills CLI</h1>
5
+ <h1 align="center">SEO Skill</h1>
6
6
 
7
7
  <p align="center">
8
- Find what is costing you traffic, which pages are closest to more clicks, and what to fix first. Local SEO tools and skills for people, AI agents, and CI.
8
+ 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 GA4 data.
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
12
  <a href="#quick-start">Get started</a>
13
13
  ·
14
- <a href="https://seoskills.dev/docs">Documentation</a>
14
+ <a href="https://seoskill.dev/docs">Documentation</a>
15
15
  ·
16
16
  <a href="https://www.npmjs.com/package/seo">npm</a>
17
17
  ·
18
18
  <a href="https://github.com/iannuttall/seo/issues">Questions</a>
19
19
  ·
20
- <a href="https://seoskills.dev/privacy">Privacy</a>
20
+ <a href="https://seoskill.dev/privacy">Privacy</a>
21
21
  ·
22
22
  <a href="SECURITY.md">Security</a>
23
23
  ·
@@ -35,19 +35,26 @@
35
35
  <a href="LICENSE"><img alt="Apache 2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-lightgrey?style=flat-square"></a>
36
36
  </p>
37
37
 
38
- `seo` turns a local crawl and your own search data into work you can inspect
39
- and ship. Find technical blockers, recover search demand, improve pages already
40
- close to more clicks, and catch regressions after a release.
38
+ The `seo` command runs a full SEO audit from your terminal, turning a local
39
+ crawl and your own search data into work you can inspect and ship. Find
40
+ technical blockers, recover search demand, improve pages already close to more
41
+ clicks, and catch regressions after a release.
42
+
43
+ ## Who this is for
44
+
45
+ - People running their own sites who want a clear audit and a ranked list of
46
+ fixes, without learning a heavy dashboard.
47
+ - AI agents that need real crawl, Search Console, and GA4 evidence through MCP
48
+ and one packaged SEO skill instead of screenshots or guesses.
49
+ - Developers who want to embed the same report engine in a script, a CI job, or
50
+ a TypeScript app.
41
51
 
42
52
  ## Quick start
43
53
 
44
54
  Requires Node 22 or newer.
45
55
 
46
- Install the command once, then add the skills when an agent will use it:
47
-
48
56
  ```sh
49
57
  npm i -g seo
50
- npx skills add iannuttall/seo --all
51
58
  seo start
52
59
  seo report
53
60
  ```
@@ -57,13 +64,49 @@ optional GA4 property, and a local project profile. Public releases can include
57
64
  the shared Google app. If it is unavailable in your build, setup guides you
58
65
  through adding your own desktop OAuth client.
59
66
 
60
- That is the normal path. `seo` is then available in every terminal, script,
61
- CI job, and local MCP client on the machine.
67
+ That is the normal path. The `seo` command is then available in every terminal,
68
+ script, CI job, and local MCP client on the machine.
62
69
 
63
70
  The main report uses the evidence you have, explains what it could not check,
64
71
  and recommends a short list of follow-up commands. You can start with a local
65
72
  technical report before connecting Google.
66
73
 
74
+ Running `seo help` shows the shape of the tool:
75
+
76
+ ```txt
77
+ seo v0.2.0
78
+
79
+ Human-friendly SEO reports first, power tools when you need them.
80
+
81
+ Start here
82
+ seo start Connect Google and save a project profile
83
+ seo report Run the main SEO report for the default project
84
+ seo report --site sc-domain:example.com Run without a profile
85
+ seo report --url https://example.com Start with a local technical report
86
+
87
+ Projects
88
+ seo projects list List saved project profiles
89
+ seo projects add Create or update a project profile
90
+ seo sites List Search Console properties
91
+ seo doctor Check local auth and config
92
+
93
+ Act on a report
94
+ seo refresh-priorities Rank the next best SEO actions
95
+ seo quick-wins Find ranking 4-10 low-CTR wins
96
+ seo second-page Investigate URLs averaging positions 10-20
97
+ seo technical-watch Crawl and index-monitor a site
98
+
99
+ Agent and power tools
100
+ seo report --json Run the main report as structured JSON
101
+ seo export diagnose Export report data to CSV
102
+ seo mcp install Install SEO tools into MCP clients
103
+ seo skill list Show the packaged SEO skill
104
+ seo reports list Discover every structured report
105
+
106
+ Use `seo help <command>` or `seo <command> --help` for command help.
107
+ Use `seo help all` for the longer command list.
108
+ ```
109
+
67
110
  ## What you get
68
111
 
69
112
  - Find technical blockers across metadata, links, indexability, canonicals,
@@ -78,6 +121,19 @@ technical report before connecting Google.
78
121
  - Give scripts and agents deterministic JSON, Markdown, stable rule IDs, and a
79
122
  compact local MCP surface.
80
123
 
124
+ ## How the reports stay honest
125
+
126
+ The point of a report is to be defensible, so the design keeps a few rules:
127
+
128
+ - Observed evidence stays separate from derived findings and recommended
129
+ actions. You can always see the crawl row or provider row behind a claim.
130
+ - Partial data is never reported as a zero. A capped, filtered, or sampled
131
+ source says so, and it cannot support a definitive all-clear.
132
+ - Heuristics are labeled as heuristics. A convention or threshold is not
133
+ presented as a search-engine rule.
134
+ - Each recommendation comes with a way to check that the fix worked, rather than
135
+ a promise about rankings or traffic.
136
+
81
137
  ## Everyday use
82
138
 
83
139
  `seo start` can save a project profile, which is a local shortcut for a site,
@@ -116,7 +172,7 @@ Run `seo help` for the short path or `seo help all` for the full command list.
116
172
 
117
173
  ## Crawl a site
118
174
 
119
- Run a readable technical crawl:
175
+ Run a readable technical crawl, the base of any technical SEO audit:
120
176
 
121
177
  ```sh
122
178
  seo crawl https://example.com --format pretty
@@ -167,7 +223,7 @@ browser or a copied local token:
167
223
  SEO_GOOGLE_SERVICE_ACCOUNT_JSON: ${{ secrets.SEO_GOOGLE_SERVICE_ACCOUNT_JSON }}
168
224
  ```
169
225
 
170
- The [Google data guide](https://seoskills.dev/docs/google) covers Search
226
+ The [Google data guide](https://seoskill.dev/docs/google) covers Search
171
227
  Console and GA4 permissions, mounted secret files, and how to check the active
172
228
  identity safely.
173
229
 
@@ -186,13 +242,18 @@ drift.
186
242
 
187
243
  ## Use it with AI agents
188
244
 
189
- Agents work best with both parts of the project. The `seo` package runs the
190
- reports. The skills teach an agent which report to choose, how to read it, and
191
- what to verify before changing a site.
245
+ Your agent carries one short SEO skill, and the CLI and MCP server do the
246
+ heavy lifting. The skill teaches an agent how to discover the 50+ audit and
247
+ report tools at runtime, and the agent asks the CLI for the detail on each
248
+ tool only when it is about to run it. You get the whole toolkit without fifty
249
+ skill files sitting in the context window on every session.
250
+
251
+ `seo start` offers to install the SEO skill during setup. In an agent-managed
252
+ environment, add it yourself with the standard installer:
192
253
 
193
254
  ```sh
194
255
  npm i -g seo
195
- npx skills add iannuttall/seo --all
256
+ npx skills add iannuttall/seo
196
257
  ```
197
258
 
198
259
  Then install the local stdio MCP server into a supported client:
@@ -217,22 +278,24 @@ configuration or testing:
217
278
  seo mcp serve
218
279
  ```
219
280
 
220
- The repository ships the focused instructions under `skills/`. They teach
221
- agents when to discover reports, inspect evidence, and request a smaller
222
- follow-up instead of loading a giant result into context.
281
+ The repository ships one skill under `skills/seo`. It is a router: it teaches an
282
+ agent to discover reports, describe one to load its depth at runtime, inspect
283
+ the evidence, and request a smaller follow-up instead of loading a giant result
284
+ into context. Per-report guidance lives in the registry and is fetched with
285
+ `seo reports describe <id> --json`, so it never drifts from the skill.
223
286
 
224
- The npm package includes the same files for local inspection:
287
+ The npm package includes the same file for local inspection:
225
288
 
226
289
  ```sh
227
- seo skills list
228
- seo skills path quick-wins
290
+ seo skill list
291
+ seo skill path seo
229
292
  ```
230
293
 
231
- Agents can also discover the complete skill catalog from
232
- `https://seoskills.dev/.well-known/agent-skills/index.json`. Each entry links to
294
+ Agents can also discover the canonical skill from
295
+ `https://seoskill.dev/.well-known/agent-skills/index.json`. The entry links to
233
296
  the canonical skill instructions and includes a content digest for verification.
234
297
 
235
- See [MCP and agents](https://seoskills.dev/docs/agents) for setup and tool
298
+ See [MCP and agents](https://seoskill.dev/docs/agents) for setup and tool
236
299
  details.
237
300
 
238
301
  ## Use it as a library
@@ -282,13 +345,13 @@ console.log(crawl.summary, crawl.issueGroups)
282
345
  The main `seo` export contains the report, provider, crawler, storage, and
283
346
  rendering APIs. `seo/mcp` exposes report discovery, report execution, and the
284
347
  embeddable MCP server. See the [TypeScript library
285
- guide](https://seoskills.dev/docs/library) for structured error handling,
348
+ guide](https://seoskill.dev/docs/library) for structured error handling,
286
349
  local Google access, and more examples.
287
350
 
288
351
  ## Local data and Google access
289
352
 
290
353
  Google OAuth tokens use your system keychain when it is available. On a
291
- headless machine or a locked keychain, SEO Skills CLI falls back to a private
354
+ headless machine or a locked keychain, the CLI falls back to a private
292
355
  `0600` file in your user config directory. Project profiles, crawl reports, and
293
356
  provider caches are also local. Use these commands to inspect or remove them:
294
357
 
@@ -303,24 +366,54 @@ seo reset
303
366
  `seo auth storage --keychain` or `seo auth storage --file`.
304
367
 
305
368
  Power users can bring their own Google OAuth client. See
306
- [getting started](https://seoskills.dev/docs/getting-started) for the available
369
+ [getting started](https://seoskill.dev/docs/getting-started) for the available
307
370
  auth paths.
308
371
 
372
+ ## Common questions
373
+
374
+ ### Does my site data stay on my machine?
375
+
376
+ Yes. Reports, project profiles, Google tokens, crawls, and caches stay in your
377
+ local config directory. The CLI only makes the network requests needed to fetch
378
+ your site and call the Google APIs you connect. There is no hosted backend,
379
+ account, or telemetry service.
380
+
381
+ ### Do I need a Google API key?
382
+
383
+ No. `seo start` uses a normal Google sign-in for read-only Search Console and
384
+ GA4 access. Public releases can include a shared desktop OAuth client, and if
385
+ your build does not have one, setup helps you add your own. You can also run a
386
+ local technical crawl with no Google connection at all.
387
+
388
+ ### What does it cost?
389
+
390
+ The `seo` package is free and open source under Apache-2.0. It calls Google APIs
391
+ you already have access to, so there is no separate subscription. Your own API
392
+ quotas still apply.
393
+
394
+ ### How is this different from a paid SEO tool?
395
+
396
+ A hosted SEO tool keeps your data on its servers and shows you a dashboard. This
397
+ runs on your machine, works from your own crawl and Google data, and returns
398
+ structured evidence your agent can read and act on. Every finding shows the
399
+ evidence behind it and a way to verify a fix, so you are not trusting a score
400
+ you cannot inspect.
401
+
309
402
  ## Documentation
310
403
 
311
404
  Questions, bug reports, and feature requests go through
312
405
  [GitHub Issues](https://github.com/iannuttall/seo/issues). Report suspected
313
406
  vulnerabilities privately through the process in [SECURITY.md](SECURITY.md).
314
407
 
315
- - [Getting started](https://seoskills.dev/docs/getting-started)
316
- - [CLI commands](https://seoskills.dev/docs/cli)
317
- - [Crawler](https://seoskills.dev/docs/crawler)
318
- - [Reports and data](https://seoskills.dev/docs/reports)
319
- - [MCP and agents](https://seoskills.dev/docs/agents)
320
- - [AI-search evidence](https://seoskills.dev/docs/ai-search)
321
- - [Privacy policy](https://seoskills.dev/privacy)
322
- - [Terms of use](https://seoskills.dev/terms)
323
- - [Security policy](https://seoskills.dev/security)
408
+ - [Getting started](https://seoskill.dev/docs/getting-started)
409
+ - [CLI commands](https://seoskill.dev/docs/cli)
410
+ - [Crawler](https://seoskill.dev/docs/crawler)
411
+ - [Reports and data](https://seoskill.dev/docs/reports)
412
+ - [MCP and agents](https://seoskill.dev/docs/agents)
413
+ - [AI-search evidence](https://seoskill.dev/docs/ai-search)
414
+ - [Privacy policy](https://seoskill.dev/privacy)
415
+ - [Terms of use](https://seoskill.dev/terms)
416
+ - [Security policy](https://seoskill.dev/security)
324
417
  - [Contributing](CONTRIBUTING.md)
325
418
  - [Trademark and brand policy](TRADEMARKS.md)
326
419
 
package/TERMS.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Last updated: 10 July 2026
4
4
 
5
5
  These terms cover the official `seo` command-line tool, library, MCP server,
6
- documentation, and seoskills.dev website.
6
+ documentation, and seoskill.dev website.
7
7
 
8
8
  ## Open source licence
9
9
 
@@ -58,7 +58,7 @@ You are responsible for protecting local tokens, configuration, caches,
58
58
  reports, exports, backups, and environment variables. Keep secrets out of
59
59
  public issues, logs, screenshots, repositories, and shared report files.
60
60
 
61
- The [privacy policy](https://seoskills.dev/privacy) explains what the software
61
+ The [privacy policy](https://seoskill.dev/privacy) explains what the software
62
62
  stores and how to remove it.
63
63
 
64
64
  ## Availability and changes
package/TRADEMARKS.md CHANGED
@@ -3,14 +3,18 @@
3
3
  The source code is available under Apache-2.0. That license does not grant a
4
4
  right to present another product or service as the official `seo` project.
5
5
 
6
- This policy covers the SEO Skills name, seoskills.dev, project artwork, and the
7
- `seo` name when it refers specifically to this package and project. It does not
8
- claim ownership of the generic term "SEO."
6
+ This policy covers this project's identity: the name `seo` when it refers to
7
+ this specific package and project, the tagline "The SEO command for AI agents",
8
+ the logo and project artwork, and seoskill.dev.
9
+
10
+ "seo" is a generic term for search engine optimization. This policy claims no
11
+ rights over that generic use. It covers only the project's name in context, its
12
+ logo, its branding, and its tagline.
9
13
 
10
14
  ## Uses that are fine
11
15
 
12
16
  - Truthfully saying that software uses, supports, or is based on `seo`.
13
- - Linking to the official repository or seoskills.dev.
17
+ - Linking to the official repository or seoskill.dev.
14
18
  - Keeping required attribution and notices in copies or forks.
15
19
  - Describing a fork as an unofficial fork, provided the distinction is clear.
16
20
 
@@ -22,6 +26,6 @@ service, domain, package, event, or merchandise.
22
26
 
23
27
  Do not imply endorsement, partnership, or official status. Forks and hosted
24
28
  versions must use a distinct name and visual identity, and must not create
25
- confusion with the npm package, repository, or seoskills.dev.
29
+ confusion with the npm package, repository, or seoskill.dev.
26
30
 
27
31
  Nominative and other uses allowed by applicable law remain allowed.