seo 0.0.14 → 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.
- package/LICENSE +201 -0
- package/PRIVACY.md +95 -0
- package/README.md +338 -35
- package/SECURITY.md +55 -0
- package/TERMS.md +94 -0
- package/TRADEMARKS.md +27 -0
- package/dist/cli.js +125 -0
- package/dist/cli.js.map +1 -0
- package/dist/dist-CSY2_p-j.js +713 -0
- package/dist/dist-CSY2_p-j.js.map +1 -0
- package/dist/dist-FeAUNn9A.js +3 -0
- package/dist/index.d.ts +17921 -0
- package/dist/index.js +26769 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +57 -0
- package/dist/mcp.js +26744 -0
- package/dist/mcp.js.map +1 -0
- package/dist/package-uzXzqDW6.js +23818 -0
- package/dist/package-uzXzqDW6.js.map +1 -0
- package/package.json +101 -23
- package/skills/README.md +81 -0
- package/skills/affected-urls/SKILL.md +39 -0
- package/skills/affected-urls/agents/openai.yaml +4 -0
- package/skills/ai-readiness/SKILL.md +34 -0
- package/skills/ai-readiness/agents/openai.yaml +4 -0
- package/skills/ai-referrals/SKILL.md +31 -0
- package/skills/ai-referrals/agents/openai.yaml +4 -0
- package/skills/audit-page/SKILL.md +50 -0
- package/skills/audit-page/agents/openai.yaml +4 -0
- package/skills/audit-urls/SKILL.md +39 -0
- package/skills/audit-urls/agents/openai.yaml +4 -0
- package/skills/cannibalisation/SKILL.md +31 -0
- package/skills/cannibalisation/agents/openai.yaml +4 -0
- package/skills/community-intent/SKILL.md +39 -0
- package/skills/community-intent/agents/openai.yaml +4 -0
- package/skills/compare-crawls/SKILL.md +40 -0
- package/skills/compare-crawls/agents/openai.yaml +4 -0
- package/skills/content-optimization/SKILL.md +31 -0
- package/skills/content-optimization/agents/openai.yaml +4 -0
- package/skills/crawl-diff/SKILL.md +51 -0
- package/skills/crawl-diff/agents/openai.yaml +4 -0
- package/skills/crawl-history/SKILL.md +37 -0
- package/skills/crawl-history/agents/openai.yaml +4 -0
- package/skills/crawl-report/SKILL.md +37 -0
- package/skills/crawl-report/agents/openai.yaml +4 -0
- package/skills/crawler-rules/SKILL.md +34 -0
- package/skills/crawler-rules/agents/openai.yaml +4 -0
- package/skills/ctr-underperformers/SKILL.md +31 -0
- package/skills/ctr-underperformers/agents/openai.yaml +4 -0
- package/skills/decaying-pages/SKILL.md +31 -0
- package/skills/decaying-pages/agents/openai.yaml +4 -0
- package/skills/entity-readiness/SKILL.md +34 -0
- package/skills/entity-readiness/agents/openai.yaml +4 -0
- package/skills/explain-crawl-issue/SKILL.md +32 -0
- package/skills/explain-crawl-issue/agents/openai.yaml +4 -0
- package/skills/generate-llms-txt/SKILL.md +37 -0
- package/skills/generate-llms-txt/agents/openai.yaml +4 -0
- package/skills/geo-gaps/SKILL.md +37 -0
- package/skills/geo-gaps/agents/openai.yaml +4 -0
- package/skills/index-coverage/SKILL.md +84 -0
- package/skills/index-coverage/agents/openai.yaml +4 -0
- package/skills/index-coverage-plan/SKILL.md +50 -0
- package/skills/index-coverage-plan/agents/openai.yaml +4 -0
- package/skills/index-monitor/SKILL.md +49 -0
- package/skills/index-monitor/agents/openai.yaml +4 -0
- package/skills/index-watch/SKILL.md +77 -0
- package/skills/index-watch/agents/openai.yaml +4 -0
- package/skills/internal-links/SKILL.md +31 -0
- package/skills/internal-links/agents/openai.yaml +4 -0
- package/skills/link-recovery/SKILL.md +51 -0
- package/skills/link-recovery/agents/openai.yaml +4 -0
- package/skills/llms-txt-audit/SKILL.md +34 -0
- package/skills/llms-txt-audit/agents/openai.yaml +4 -0
- package/skills/measure-change/SKILL.md +52 -0
- package/skills/measure-change/agents/openai.yaml +4 -0
- package/skills/monthly-action-plan/SKILL.md +50 -0
- package/skills/monthly-action-plan/agents/openai.yaml +4 -0
- package/skills/monthly-report/SKILL.md +50 -0
- package/skills/monthly-report/agents/openai.yaml +4 -0
- package/skills/narrative-report/SKILL.md +51 -0
- package/skills/narrative-report/agents/openai.yaml +4 -0
- package/skills/okf-build/SKILL.md +39 -0
- package/skills/okf-build/agents/openai.yaml +4 -0
- package/skills/okf-validate/SKILL.md +43 -0
- package/skills/okf-validate/agents/openai.yaml +4 -0
- package/skills/page-opportunities/SKILL.md +31 -0
- package/skills/page-opportunities/agents/openai.yaml +4 -0
- package/skills/performance/SKILL.md +50 -0
- package/skills/performance/agents/openai.yaml +4 -0
- package/skills/performance-audit/SKILL.md +31 -0
- package/skills/performance-audit/agents/openai.yaml +4 -0
- package/skills/pseo-audit/SKILL.md +103 -0
- package/skills/pseo-audit/agents/openai.yaml +4 -0
- package/skills/query-clusters/SKILL.md +31 -0
- package/skills/query-clusters/agents/openai.yaml +4 -0
- package/skills/quick-wins/SKILL.md +31 -0
- package/skills/quick-wins/agents/openai.yaml +4 -0
- package/skills/redirect-trace/SKILL.md +51 -0
- package/skills/redirect-trace/agents/openai.yaml +4 -0
- package/skills/refresh-priorities/SKILL.md +48 -0
- package/skills/refresh-priorities/agents/openai.yaml +4 -0
- package/skills/search-performance-overview/SKILL.md +48 -0
- package/skills/search-performance-overview/agents/openai.yaml +4 -0
- package/skills/second-page/SKILL.md +50 -0
- package/skills/second-page/agents/openai.yaml +4 -0
- package/skills/segment-impact/SKILL.md +50 -0
- package/skills/segment-impact/agents/openai.yaml +4 -0
- package/skills/seo/SKILL.md +74 -0
- package/skills/seo/agents/openai.yaml +4 -0
- package/skills/seo-fix-queue/SKILL.md +50 -0
- package/skills/seo-fix-queue/agents/openai.yaml +4 -0
- package/skills/seo-geo-readiness/SKILL.md +60 -0
- package/skills/seo-geo-readiness/agents/openai.yaml +4 -0
- package/skills/seo-site-audit/SKILL.md +59 -0
- package/skills/seo-site-audit/agents/openai.yaml +4 -0
- package/skills/seo-to-ai-query/SKILL.md +31 -0
- package/skills/seo-to-ai-query/agents/openai.yaml +4 -0
- package/skills/setup-check/SKILL.md +49 -0
- package/skills/setup-check/agents/openai.yaml +4 -0
- package/skills/site-crawl/SKILL.md +39 -0
- package/skills/site-crawl/agents/openai.yaml +4 -0
- package/skills/striking-distance/SKILL.md +52 -0
- package/skills/striking-distance/agents/openai.yaml +4 -0
- package/skills/technical-watch/SKILL.md +49 -0
- package/skills/technical-watch/agents/openai.yaml +4 -0
- package/skills/top-fixes/SKILL.md +38 -0
- package/skills/top-fixes/agents/openai.yaml +4 -0
- package/skills/traffic-anomaly/SKILL.md +52 -0
- package/skills/traffic-anomaly/agents/openai.yaml +4 -0
- package/skills/update-correlation/SKILL.md +51 -0
- package/skills/update-correlation/agents/openai.yaml +4 -0
- package/skills/update-postmortem/SKILL.md +49 -0
- package/skills/update-postmortem/agents/openai.yaml +4 -0
- package/.jshintrc +0 -18
- package/.npmignore +0 -3
- package/.travis.yml +0 -3
- package/Makefile +0 -10
- package/index.js +0 -2
- package/lib/middleware.js +0 -159
- package/lib/seo.js +0 -32
- package/test/init.js +0 -43
- package/test/middleware.test.js +0 -111
- package/test/seo-page-result.html +0 -9
- package/test/seo-page.html +0 -9
- package/test/seo-routes.js +0 -5
- 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.
|