seo 0.0.15 → 0.1.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 (146) hide show
  1. package/LICENSE +201 -0
  2. package/PRIVACY.md +95 -0
  3. package/README.md +338 -35
  4. package/SECURITY.md +55 -0
  5. package/TERMS.md +94 -0
  6. package/TRADEMARKS.md +27 -0
  7. package/dist/cli.js +125 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/dist-CSY2_p-j.js +713 -0
  10. package/dist/dist-CSY2_p-j.js.map +1 -0
  11. package/dist/dist-FeAUNn9A.js +3 -0
  12. package/dist/index.d.ts +17921 -0
  13. package/dist/index.js +26769 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/mcp.d.ts +57 -0
  16. package/dist/mcp.js +26744 -0
  17. package/dist/mcp.js.map +1 -0
  18. package/dist/package-uzXzqDW6.js +23818 -0
  19. package/dist/package-uzXzqDW6.js.map +1 -0
  20. package/package.json +101 -23
  21. package/skills/README.md +81 -0
  22. package/skills/affected-urls/SKILL.md +39 -0
  23. package/skills/affected-urls/agents/openai.yaml +4 -0
  24. package/skills/ai-readiness/SKILL.md +34 -0
  25. package/skills/ai-readiness/agents/openai.yaml +4 -0
  26. package/skills/ai-referrals/SKILL.md +31 -0
  27. package/skills/ai-referrals/agents/openai.yaml +4 -0
  28. package/skills/audit-page/SKILL.md +50 -0
  29. package/skills/audit-page/agents/openai.yaml +4 -0
  30. package/skills/audit-urls/SKILL.md +39 -0
  31. package/skills/audit-urls/agents/openai.yaml +4 -0
  32. package/skills/cannibalisation/SKILL.md +31 -0
  33. package/skills/cannibalisation/agents/openai.yaml +4 -0
  34. package/skills/community-intent/SKILL.md +39 -0
  35. package/skills/community-intent/agents/openai.yaml +4 -0
  36. package/skills/compare-crawls/SKILL.md +40 -0
  37. package/skills/compare-crawls/agents/openai.yaml +4 -0
  38. package/skills/content-optimization/SKILL.md +31 -0
  39. package/skills/content-optimization/agents/openai.yaml +4 -0
  40. package/skills/crawl-diff/SKILL.md +51 -0
  41. package/skills/crawl-diff/agents/openai.yaml +4 -0
  42. package/skills/crawl-history/SKILL.md +37 -0
  43. package/skills/crawl-history/agents/openai.yaml +4 -0
  44. package/skills/crawl-report/SKILL.md +37 -0
  45. package/skills/crawl-report/agents/openai.yaml +4 -0
  46. package/skills/crawler-rules/SKILL.md +34 -0
  47. package/skills/crawler-rules/agents/openai.yaml +4 -0
  48. package/skills/ctr-underperformers/SKILL.md +31 -0
  49. package/skills/ctr-underperformers/agents/openai.yaml +4 -0
  50. package/skills/decaying-pages/SKILL.md +31 -0
  51. package/skills/decaying-pages/agents/openai.yaml +4 -0
  52. package/skills/entity-readiness/SKILL.md +34 -0
  53. package/skills/entity-readiness/agents/openai.yaml +4 -0
  54. package/skills/explain-crawl-issue/SKILL.md +32 -0
  55. package/skills/explain-crawl-issue/agents/openai.yaml +4 -0
  56. package/skills/generate-llms-txt/SKILL.md +37 -0
  57. package/skills/generate-llms-txt/agents/openai.yaml +4 -0
  58. package/skills/geo-gaps/SKILL.md +37 -0
  59. package/skills/geo-gaps/agents/openai.yaml +4 -0
  60. package/skills/index-coverage/SKILL.md +84 -0
  61. package/skills/index-coverage/agents/openai.yaml +4 -0
  62. package/skills/index-coverage-plan/SKILL.md +50 -0
  63. package/skills/index-coverage-plan/agents/openai.yaml +4 -0
  64. package/skills/index-monitor/SKILL.md +49 -0
  65. package/skills/index-monitor/agents/openai.yaml +4 -0
  66. package/skills/index-watch/SKILL.md +77 -0
  67. package/skills/index-watch/agents/openai.yaml +4 -0
  68. package/skills/internal-links/SKILL.md +31 -0
  69. package/skills/internal-links/agents/openai.yaml +4 -0
  70. package/skills/link-recovery/SKILL.md +51 -0
  71. package/skills/link-recovery/agents/openai.yaml +4 -0
  72. package/skills/llms-txt-audit/SKILL.md +34 -0
  73. package/skills/llms-txt-audit/agents/openai.yaml +4 -0
  74. package/skills/measure-change/SKILL.md +52 -0
  75. package/skills/measure-change/agents/openai.yaml +4 -0
  76. package/skills/monthly-action-plan/SKILL.md +50 -0
  77. package/skills/monthly-action-plan/agents/openai.yaml +4 -0
  78. package/skills/monthly-report/SKILL.md +50 -0
  79. package/skills/monthly-report/agents/openai.yaml +4 -0
  80. package/skills/narrative-report/SKILL.md +51 -0
  81. package/skills/narrative-report/agents/openai.yaml +4 -0
  82. package/skills/okf-build/SKILL.md +39 -0
  83. package/skills/okf-build/agents/openai.yaml +4 -0
  84. package/skills/okf-validate/SKILL.md +43 -0
  85. package/skills/okf-validate/agents/openai.yaml +4 -0
  86. package/skills/page-opportunities/SKILL.md +31 -0
  87. package/skills/page-opportunities/agents/openai.yaml +4 -0
  88. package/skills/performance/SKILL.md +50 -0
  89. package/skills/performance/agents/openai.yaml +4 -0
  90. package/skills/performance-audit/SKILL.md +31 -0
  91. package/skills/performance-audit/agents/openai.yaml +4 -0
  92. package/skills/pseo-audit/SKILL.md +103 -0
  93. package/skills/pseo-audit/agents/openai.yaml +4 -0
  94. package/skills/query-clusters/SKILL.md +31 -0
  95. package/skills/query-clusters/agents/openai.yaml +4 -0
  96. package/skills/quick-wins/SKILL.md +31 -0
  97. package/skills/quick-wins/agents/openai.yaml +4 -0
  98. package/skills/redirect-trace/SKILL.md +51 -0
  99. package/skills/redirect-trace/agents/openai.yaml +4 -0
  100. package/skills/refresh-priorities/SKILL.md +48 -0
  101. package/skills/refresh-priorities/agents/openai.yaml +4 -0
  102. package/skills/search-performance-overview/SKILL.md +48 -0
  103. package/skills/search-performance-overview/agents/openai.yaml +4 -0
  104. package/skills/second-page/SKILL.md +50 -0
  105. package/skills/second-page/agents/openai.yaml +4 -0
  106. package/skills/segment-impact/SKILL.md +50 -0
  107. package/skills/segment-impact/agents/openai.yaml +4 -0
  108. package/skills/seo/SKILL.md +74 -0
  109. package/skills/seo/agents/openai.yaml +4 -0
  110. package/skills/seo-fix-queue/SKILL.md +50 -0
  111. package/skills/seo-fix-queue/agents/openai.yaml +4 -0
  112. package/skills/seo-geo-readiness/SKILL.md +60 -0
  113. package/skills/seo-geo-readiness/agents/openai.yaml +4 -0
  114. package/skills/seo-site-audit/SKILL.md +59 -0
  115. package/skills/seo-site-audit/agents/openai.yaml +4 -0
  116. package/skills/seo-to-ai-query/SKILL.md +31 -0
  117. package/skills/seo-to-ai-query/agents/openai.yaml +4 -0
  118. package/skills/setup-check/SKILL.md +49 -0
  119. package/skills/setup-check/agents/openai.yaml +4 -0
  120. package/skills/site-crawl/SKILL.md +39 -0
  121. package/skills/site-crawl/agents/openai.yaml +4 -0
  122. package/skills/striking-distance/SKILL.md +52 -0
  123. package/skills/striking-distance/agents/openai.yaml +4 -0
  124. package/skills/technical-watch/SKILL.md +49 -0
  125. package/skills/technical-watch/agents/openai.yaml +4 -0
  126. package/skills/top-fixes/SKILL.md +38 -0
  127. package/skills/top-fixes/agents/openai.yaml +4 -0
  128. package/skills/traffic-anomaly/SKILL.md +52 -0
  129. package/skills/traffic-anomaly/agents/openai.yaml +4 -0
  130. package/skills/update-correlation/SKILL.md +51 -0
  131. package/skills/update-correlation/agents/openai.yaml +4 -0
  132. package/skills/update-postmortem/SKILL.md +49 -0
  133. package/skills/update-postmortem/agents/openai.yaml +4 -0
  134. package/.jshintrc +0 -18
  135. package/.npmignore +0 -3
  136. package/.travis.yml +0 -3
  137. package/Makefile +0 -10
  138. package/index.js +0 -2
  139. package/lib/middleware.js +0 -159
  140. package/lib/seo.js +0 -32
  141. package/test/init.js +0 -43
  142. package/test/middleware.test.js +0 -111
  143. package/test/seo-page-result.html +0 -9
  144. package/test/seo-page.html +0 -9
  145. package/test/seo-routes.js +0 -5
  146. package/test/vendor/jquery-1.11.1.min.js +0 -4
package/SECURITY.md ADDED
@@ -0,0 +1,55 @@
1
+ # Security
2
+
3
+ ## Report a vulnerability
4
+
5
+ Do not open a public issue for a suspected vulnerability.
6
+
7
+ Use GitHub's private vulnerability reporting flow:
8
+
9
+ ```txt
10
+ https://github.com/iannuttall/seo/security/advisories/new
11
+ ```
12
+
13
+ Include the affected command, package, or workflow, clear reproduction steps,
14
+ and the practical impact. Remove Google tokens, API keys, account identifiers,
15
+ analytics data, private URLs, and client data from every example.
16
+
17
+ Use [GitHub Issues](https://github.com/iannuttall/seo/issues) for ordinary
18
+ questions and non-sensitive bugs.
19
+
20
+ ## Local data and credentials
21
+
22
+ `seo` is local-first. Project profiles, Google OAuth metadata, crawl reports,
23
+ and caches stay on the machine running the command. Access and refresh tokens
24
+ use the operating-system keychain when enabled; fallback token files and local
25
+ credential files use private file permissions.
26
+
27
+ Desktop OAuth client credentials are not confidential secrets. User tokens,
28
+ provider API keys, and analytics data are confidential and must never be
29
+ committed, pasted into issues, or included in fixtures.
30
+
31
+ Use `seo privacy` to inspect local storage and `seo reset --yes` to remove it.
32
+ Google grants can also be revoked at
33
+ <https://myaccount.google.com/connections>.
34
+
35
+ ## Maintainer checks
36
+
37
+ Before a public release or a change to auth, storage, crawling, or provider
38
+ boundaries, run:
39
+
40
+ ```sh
41
+ pnpm build
42
+ pnpm typecheck
43
+ pnpm test
44
+ pnpm lint
45
+ pnpm security:check
46
+ pnpm pack --dry-run
47
+ ```
48
+
49
+ The shared desktop OAuth client values are release build inputs. Store them as
50
+ GitHub Actions secrets so they are injected only into the release build.
51
+ Checked-in generated OAuth files must contain placeholders only.
52
+
53
+ `pnpm security:check` runs the dependency audit and gitleaks. On macOS the
54
+ helper installs gitleaks with Homebrew when it is missing. Other platforms must
55
+ install gitleaks first.
package/TERMS.md ADDED
@@ -0,0 +1,94 @@
1
+ # Terms of use
2
+
3
+ Last updated: 10 July 2026
4
+
5
+ These terms cover the official `seo` command-line tool, library, MCP server,
6
+ documentation, and seoskills.dev website.
7
+
8
+ ## Open source licence
9
+
10
+ The software is licensed under the [Apache License
11
+ 2.0](https://github.com/iannuttall/seo/blob/main/LICENSE). That licence controls
12
+ your right to use, copy, modify, and distribute the code. Third-party packages
13
+ keep their own licences.
14
+
15
+ These terms do not take away rights granted by an applicable open source
16
+ licence. They cover use of the official website, documentation, name, Google
17
+ integration, and distributed project services that sit outside the source-code
18
+ licence.
19
+
20
+ ## Use the tool responsibly
21
+
22
+ You are responsible for the commands you run and the sites, accounts, and data
23
+ you use with them. Only crawl, inspect, or analyse a site when you are allowed
24
+ to do so. Follow applicable laws, access controls, robots policies, provider
25
+ terms, and reasonable rate limits.
26
+
27
+ Do not use the project to gain unauthorised access, disrupt a service, evade a
28
+ technical restriction, expose another person's data, or carry out unlawful
29
+ activity.
30
+
31
+ ## Google and other third-party services
32
+
33
+ Google Search Console and Google Analytics access is optional and read-only.
34
+ Your use of Google APIs is also subject to Google's terms and policies. Google
35
+ can change API behaviour, quotas, scopes, or availability without notice to
36
+ this project.
37
+
38
+ The software can request public websites, run browser tooling, and use package
39
+ registries or operating system services. Those products are controlled by
40
+ their respective operators. The project is not responsible for their content,
41
+ availability, security, or data practices.
42
+
43
+ ## Reports are evidence, not a guarantee
44
+
45
+ SEO reports can be incomplete because websites change, providers retain or cap
46
+ data, crawls stop, and search systems do not publish every ranking signal. The
47
+ software is designed to show those limits, but bugs and incorrect findings are
48
+ still possible.
49
+
50
+ Reports are general technical information. They do not promise rankings,
51
+ traffic, revenue, indexing, rich results, AI citations, or any other outcome.
52
+ Check important findings against the live site and the relevant provider before
53
+ making a consequential change.
54
+
55
+ ## Your local data
56
+
57
+ You are responsible for protecting local tokens, configuration, caches,
58
+ reports, exports, backups, and environment variables. Keep secrets out of
59
+ public issues, logs, screenshots, repositories, and shared report files.
60
+
61
+ The [privacy policy](https://seoskills.dev/privacy) explains what the software
62
+ stores and how to remove it.
63
+
64
+ ## Availability and changes
65
+
66
+ The project may change commands, reports, integrations, or documentation in a
67
+ future release. A feature can be fixed, replaced, or removed when needed for
68
+ security, correctness, provider policy, or maintainability.
69
+
70
+ There is no promise that the website, package registry, Google integration, or
71
+ project support will always be available.
72
+
73
+ ## Warranty and liability
74
+
75
+ The software and website are provided without warranties or guarantees. The
76
+ Apache License 2.0 contains the warranty and liability terms for the licensed
77
+ software.
78
+
79
+ To the fullest extent allowed by applicable law, the project maintainer is not
80
+ liable for indirect, incidental, special, consequential, or business losses
81
+ arising from use of the software, website, reports, or third-party services.
82
+ Nothing in these terms excludes liability that cannot legally be excluded.
83
+
84
+ ## Changes to these terms
85
+
86
+ The date at the top will be updated when these terms change. Earlier versions
87
+ remain available in the public Git history. Continued use after a change means
88
+ the new terms apply to later use.
89
+
90
+ ## Questions about these terms
91
+
92
+ Open an issue in the [public GitHub repository](https://github.com/iannuttall/seo/issues).
93
+ Do not include OAuth tokens, private reports, personal data, or other secrets in
94
+ a public issue.
package/TRADEMARKS.md ADDED
@@ -0,0 +1,27 @@
1
+ # Trademark and brand policy
2
+
3
+ The source code is available under Apache-2.0. That license does not grant a
4
+ right to present another product or service as the official `seo` project.
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."
9
+
10
+ ## Uses that are fine
11
+
12
+ - Truthfully saying that software uses, supports, or is based on `seo`.
13
+ - Linking to the official repository or seoskills.dev.
14
+ - Keeping required attribution and notices in copies or forks.
15
+ - Describing a fork as an unofficial fork, provided the distinction is clear.
16
+
17
+ ## Ask first
18
+
19
+ Open a [GitHub Issue](https://github.com/iannuttall/seo/issues) before using the
20
+ project name or artwork as the main identity of a product, company, hosted
21
+ service, domain, package, event, or merchandise.
22
+
23
+ Do not imply endorsement, partnership, or official status. Forks and hosted
24
+ versions must use a distinct name and visual identity, and must not create
25
+ confusion with the npm package, repository, or seoskills.dev.
26
+
27
+ Nominative and other uses allowed by applicable law remain allowed.