serpkin 0.2.1 → 0.2.2
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/README.md
CHANGED
|
@@ -48,10 +48,10 @@ Then ask your agent: _"What should I do for SEO?"_
|
|
|
48
48
|
## Claude Code plugin
|
|
49
49
|
|
|
50
50
|
```sh
|
|
51
|
-
claude plugin marketplace add apwn/serpkin
|
|
51
|
+
claude plugin marketplace add apwn/serpkin && claude plugin install serpkin@serpkin
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
Inside a session you can run `/plugin marketplace add apwn/serpkin
|
|
54
|
+
Inside a session you can run `/plugin marketplace add apwn/serpkin`, then `/plugin install serpkin@serpkin`. The plugin lives in [`plugins/serpkin`](https://github.com/apwn/serpkin/tree/main/plugins/serpkin) and includes:
|
|
55
55
|
|
|
56
56
|
- the **`serpkin-seo` skill**, which runs the loop: next mission → implement → run checks → check the preview → submit → verify the preview → verify production after you deploy. It treats page text and search data as untrusted and never deploys.
|
|
57
57
|
- **commands**: `/serpkin:next` gets the next mission and implements it. `/serpkin:ship <preview-url>` submits it, checks the preview and verifies. `/serpkin:check <preview-url>` runs `npx serpkin check`. `/serpkin:status` shows the site status.
|
|
@@ -116,11 +116,11 @@ Preview hosts must be the site's own domain or subdomains, or `*.vercel.app`, `*
|
|
|
116
116
|
|
|
117
117
|
### GitHub Action
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
The GitHub Action template ships in the package at `templates/github-action.yml` (`node_modules/serpkin/templates/github-action.yml`). Copy it to `.github/workflows/serpkin.yml`, then add a repository secret `SERPKIN_API_KEY` (create a key with `npx serpkin` or in Settings → Agent setup) and a repository variable `SERPKIN_SITE_ID` (the `site_id` from `.serpkin.json`). The workflow doesn't check out the pull request, so code or config from a PR never runs while the key is available, and it pins the CLI version. It runs on `deployment_status` events, which Vercel sends when a preview finishes deploying. It checks the deployment's `target_url` and fails the job when the preview introduces a regression. If your previews use Vercel Deployment Protection, Serpkin's requests get HTTP 401. Allow them through, or the check reports the preview as unreachable.
|
|
120
120
|
|
|
121
121
|
## What leaves your machine
|
|
122
122
|
|
|
123
|
-
- **Sent to Serpkin:** your site URL, the answers you give during setup (the site description defaults to the one in `package.json`),
|
|
123
|
+
- **Sent to Serpkin:** your site URL, the answers you give during setup (the site description defaults to the one in `package.json`), the route map (URL paths and the source file names that serve them, up to 2,000 routes), and your computer's hostname at sign-in, used to name your agent key. Your agent sends what it asks Serpkin for through MCP.
|
|
124
124
|
- **Never sent:** your source code, environment files or the contents of your repository. To detect the framework and build the route map, the CLI reads `package.json` and the file names in your routes folder, not their contents. It also updates your agent's config files (`.mcp.json`, `.cursor/`, `AGENTS.md`, `~/.codex/config.toml`) as described above.
|
|
125
125
|
- **Stored locally:** your agent key in `~/.config/serpkin/credentials.json` (mode 600), never in the repository.
|
|
126
126
|
|
|
@@ -135,5 +135,5 @@ Details: [privacy policy](https://serpkin.com/legal/privacy).
|
|
|
135
135
|
|
|
136
136
|
## Support and license
|
|
137
137
|
|
|
138
|
-
Questions or bugs: [serpkin.com](https://serpkin.com) or the [plugin repository](https://github.com/apwn/serpkin
|
|
138
|
+
Questions or bugs: [serpkin.com](https://serpkin.com) or the [plugin repository](https://github.com/apwn/serpkin/issues). MIT licensed (this CLI and the Claude Code plugin).
|
|
139
139
|
|
package/lib/agents.mjs
CHANGED
|
@@ -149,7 +149,7 @@ export const PLUGIN_ID = "serpkin@serpkin";
|
|
|
149
149
|
* name lives: the --help text and every printed install command read it from here. The repository
|
|
150
150
|
* is generated by cli/scripts/export-plugin-repo.mjs. Override for forks or local testing.
|
|
151
151
|
*/
|
|
152
|
-
export const PLUGIN_MARKETPLACE_REPO = "apwn/serpkin
|
|
152
|
+
export const PLUGIN_MARKETPLACE_REPO = "apwn/serpkin";
|
|
153
153
|
export const pluginMarketplace = (env = process.env) =>
|
|
154
154
|
env.SERPKIN_PLUGIN_MARKETPLACE || PLUGIN_MARKETPLACE_REPO;
|
|
155
155
|
export const pluginInstallCommand = (env = process.env) =>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serpkin",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Connect your coding agent to Serpkin: sign in, register your site, upload its route map, and check pull-request previews for SEO regressions.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
],
|
|
36
36
|
"homepage": "https://serpkin.com",
|
|
37
37
|
"bugs": {
|
|
38
|
-
"url": "https://github.com/apwn/serpkin
|
|
38
|
+
"url": "https://github.com/apwn/serpkin/issues",
|
|
39
39
|
"email": "support@serpkin.com"
|
|
40
40
|
},
|
|
41
41
|
"repository": {
|
|
42
42
|
"type": "git",
|
|
43
|
-
"url": "git+https://github.com/apwn/serpkin
|
|
43
|
+
"url": "git+https://github.com/apwn/serpkin.git"
|
|
44
44
|
},
|
|
45
45
|
"author": "Serpkin (https://serpkin.com)",
|
|
46
46
|
"license": "MIT",
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serpkin",
|
|
3
3
|
"displayName": "Serpkin",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.2",
|
|
5
5
|
"description": "The SEO brain for your coding agent: ranked SEO missions with patch-ready plans, preview checks and verification.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Serpkin",
|
|
8
8
|
"url": "https://serpkin.com"
|
|
9
9
|
},
|
|
10
10
|
"homepage": "https://serpkin.com",
|
|
11
|
-
"repository": "https://github.com/apwn/serpkin
|
|
11
|
+
"repository": "https://github.com/apwn/serpkin",
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"keywords": ["seo", "nextjs", "mcp", "search-console"]
|
|
14
14
|
}
|
|
@@ -36,4 +36,4 @@ jobs:
|
|
|
36
36
|
# Passed through env, not interpolated into the script, so the URL can't inject shell.
|
|
37
37
|
PREVIEW_URL: ${{ github.event.deployment_status.target_url }}
|
|
38
38
|
# Pinned version and registry; update the version deliberately.
|
|
39
|
-
run: npx --yes --registry=https://registry.npmjs.org serpkin@0.2.
|
|
39
|
+
run: npx --yes --registry=https://registry.npmjs.org serpkin@0.2.2 check "$PREVIEW_URL" --site "$SERPKIN_SITE_ID"
|