crawlemon 0.1.0 → 0.3.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/README.md CHANGED
@@ -1,14 +1,42 @@
1
1
  # Crawlemon
2
2
 
3
- **Deterministic SEO checks for Next.js projects.**
3
+ **SEO CI for modern web apps — catch SEO regressions before you merge.**
4
4
 
5
- Crawlemon is a developer-first SEO audit and safe-fix CLI. It works like a lightweight ESLint for SEO: run it inside a Next.js repository, find issues before they reach production, and automatically repair changes that are deterministic and safe.
5
+ Crawlemon is the SEO safety layer between code and production. It works like an ESLint / Dependabot for SEO: run it locally or in CI, evaluate the SEO Quality Gate, prevent search regressions from merging, and automatically apply safe deterministic fixes.
6
6
 
7
7
  No account, cloud connection, browser, AI provider, or API key is required.
8
8
 
9
+ ## What is new in 0.3.0
10
+
11
+ - Production-grade static resolution for Next.js: site config, `metadataBase`, title objects (`default`/`template`/`absolute`), and layout inheritance.
12
+ - Relative canonical URLs are resolved (not flagged) when a site origin is known.
13
+ - Dynamic metadata from `generateMetadata` is no longer reported as missing, and duplicate-title findings only fire for statically declared, indexable titles.
14
+ - Internal links and sitemaps are validated against dynamic routes and `generateStaticParams`.
15
+ - `<h1>` headings inside locally-imported components are detected; redirect-only pages are exempted.
16
+
17
+ ## What is new in 0.2.0
18
+
19
+ - Stable deterministic audit and graph ordering.
20
+ - Clean-As-You-Code confidence enforcement: unverified AI hypotheses cannot block.
21
+ - Independent evidence and rejected-claim recording for semantic AI resolution.
22
+ - Safer AI fix boundaries and zero-new-regression sandbox verification.
23
+ - Expanded adversarial, integration, and high-cardinality coverage.
24
+
9
25
  ## Quick start
10
26
 
11
- Run an audit from the root of a Next.js project:
27
+ Compare your current branch/working tree against `main` and evaluate the SEO Quality Gate:
28
+
29
+ ```bash
30
+ npx crawlemon diff
31
+ ```
32
+
33
+ Or compare against a specific git base ref:
34
+
35
+ ```bash
36
+ npx crawlemon diff --base origin/main
37
+ ```
38
+
39
+ Run a full local audit:
12
40
 
13
41
  ```bash
14
42
  npx crawlemon audit
@@ -29,14 +57,20 @@ npx crawlemon fix
29
57
  ## Requirements
30
58
 
31
59
  - Node.js 20 or newer
32
- - A Next.js project using the App Router or Pages Router
60
+ - Supported framework: Next.js, Nuxt, SvelteKit, Astro, Remix, Vite, or static HTML
33
61
  - Run the command from the project root
34
62
 
35
63
  Crawlemon uses static source analysis. It does not run your application, install its dependencies, or execute repository scripts.
36
64
 
37
65
  ## Commands
38
66
 
39
- ### `audit`
67
+ ### `diff`
68
+
69
+ Compare code changes vs base ref, compute blast radius, and evaluate the SEO Quality Gate:
70
+
71
+ ```bash
72
+ npx crawlemon diff [--base <ref>] [--json]
73
+ ```
40
74
 
41
75
  Discover routes and run deterministic SEO checks:
42
76
 
@@ -149,6 +183,62 @@ npx crawlemon --help
149
183
  npx crawlemon --version
150
184
  ```
151
185
 
186
+ ## GitHub Actions
187
+
188
+ Run Crawlemon on every pull request and every push to `main` by creating
189
+ `.github/workflows/crawlemon.yml` in your Next.js repository:
190
+
191
+ ```yaml
192
+ name: SEO audit
193
+
194
+ on:
195
+ pull_request:
196
+ push:
197
+ branches: [main]
198
+
199
+ permissions:
200
+ contents: read
201
+
202
+ jobs:
203
+ crawlemon:
204
+ name: Crawlemon
205
+ runs-on: ubuntu-latest
206
+ timeout-minutes: 5
207
+
208
+ steps:
209
+ - name: Check out repository
210
+ uses: actions/checkout@v4
211
+
212
+ - name: Set up Node.js
213
+ uses: actions/setup-node@v4
214
+ with:
215
+ node-version: 20
216
+
217
+ - name: Audit SEO
218
+ env:
219
+ CI: true
220
+ run: npx --yes crawlemon@0.3.0 audit
221
+ ```
222
+
223
+ The exact package version is pinned so an upstream release cannot unexpectedly
224
+ change your CI result. Update `crawlemon@0.3.0` deliberately when you are ready
225
+ to adopt a newer version.
226
+
227
+ With `CI=true`, the workflow fails when Crawlemon finds at least one error-level
228
+ issue. Warnings and notices remain visible in the report without failing the job.
229
+ No repository secret, API key, dependency installation, or build step is required.
230
+
231
+ If the Next.js application is inside a monorepo subdirectory, set the step's
232
+ working directory:
233
+
234
+ ```yaml
235
+ - name: Audit SEO
236
+ working-directory: apps/web
237
+ env:
238
+ CI: true
239
+ run: npx --yes crawlemon@0.3.0 audit
240
+ ```
241
+
152
242
  ## Zero-configuration detection
153
243
 
154
244
  Crawlemon automatically detects:
package/dist/index.d.ts CHANGED
@@ -1 +1,6 @@
1
+ import type { AuditResult } from "@crawlemon/shared";
2
+ /**
3
+ * Safely audits a base git ref without running untrusted scripts or executing builds.
4
+ */
5
+ export declare function auditGitRef(projectRoot: string, ref: string): Promise<AuditResult>;
1
6
  export declare function runCli(args: string[]): Promise<void>;