@seoagent-official/seoagent 1.90.0 → 1.91.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seoagent-official/seoagent",
3
- "version": "1.90.0",
3
+ "version": "1.91.1",
4
4
  "description": "The persistent AI SEO agent for Claude Code. Audits, keyword strategy, briefs, articles, real product screenshots from your repo, and the autopilot loop (cloud detects → CLI executes → ack closes) — other SEO tools write the prompt, SEOAgent runs it.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,7 +10,7 @@ Loaded by Phase 1 (Technical SEO Audit) when running a full audit. The main `SKI
10
10
 
11
11
  **An incomplete capture makes every finding a LOWER BOUND.** If `evidence.md` contains a **"Pages NOT captured"** section (`capture_complete: false` in its frontmatter), the crawl discovered pages it could not fetch — after per-page retries and a sequential re-fetch. The rollup and per-page findings then describe only the captured subset: report the code-generated "N discovered pages could not be crawled — evidence is incomplete" finding verbatim, state the incompleteness (and each failure reason) in the audit and final summary, and never treat an uncaptured page as passing any check — no claim about it (present OR absent) is Confirmed.
12
12
 
13
- **The evidence covers the whole crawl, not just the homepage — audit accordingly.** The crawl discovers subpages from the live sitemap + homepage nav links (default 15 pages) and writes a per-page section for **EVERY page in `evidence.md`**, plus a **`## Site-wide rollup`** section that aggregates the per-page gaps: *Pages missing canonical*, *Pages missing meta description*, *Pages with multiple H1s*, *Pages with no structured data*, and *Images missing alt* (total + per-page counts with the offending srcs). Run the per-page checks below against **every crawled page** — a subpage's missing canonical or a blog post's missing meta description is exactly what the rollup lists — and report those findings from the rollup + per-page sections, never from homepage-only inspection or guesswork.
13
+ **The evidence covers the whole crawl, not just the homepage — audit accordingly.** The crawl discovers subpages from the live sitemap + homepage nav links and fetches **every one of them** (safety cap 500; `--max` only ever narrows it) and writes a per-page section for **EVERY page in `evidence.md`**, plus a **`## Site-wide rollup`** section that aggregates the per-page gaps: *Pages missing canonical*, *Pages missing meta description*, *Pages with multiple H1s*, *Pages with no structured data*, and *Images missing alt* (total + per-page counts with the offending srcs). Run the per-page checks below against **every crawled page** — a subpage's missing canonical or a blog post's missing meta description is exactly what the rollup lists — and report those findings from the rollup + per-page sections, never from homepage-only inspection or guesswork.
14
14
 
15
15
  **The crawl also writes `.seoagent/audit/findings.md` — the complete, code-generated findings baseline. Your audit builds on it.** It derives one human-readable finding per confirmed rollup issue (affected URLs, why it matters, suggested fix, `Confirmed` label, `Evidence:` citation), including client-rendered shells, sitemap coverage gaps, robots.txt facts, and broken crawled URLs. Treat it as the completeness floor: `audit/latest.md` adds GSC cross-referencing, prioritization, and strategy ON TOP of findings.md — it must carry **every** finding forward (**never re-derive from scratch, never truncate**), and the final message lists every finding title (`seoagent summary` does this mechanically via its "Technical findings (from live crawl)" section). Session economy applies to bookkeeping, never to findings completeness. Items findings.md lists under **"Already present on the live site"** must never become "add X" recommendations — when the repo source lacks something the live page serves, the **repo source is stale — the live page already serves it; reconcile the source**.
16
16
 
@@ -317,7 +317,7 @@ Recommendation: "Add breadcrumb navigation + BreadcrumbList JSON-LD on deep page
317
317
 
318
318
  ### The crawl is the gate for ALL live-state work
319
319
 
320
- Any audit, technical-SEO review, "what's wrong with my site", or "add schema/meta/canonical" request starts with `seoagent crawl` — even a quick one, even when the repo source looks obvious. The crawl covers the homepage **plus subpages discovered from the live sitemap + homepage nav links** (default 15 pages, fetched concurrently), so it's fast and it sees the blog posts and subpages where the real gaps hide. **No live-state claim and no "add X" recommendation may be emitted unless `.seoagent/audit/evidence.md` exists, covers the target page(s), and the claim cites it.** If `evidence.md` is missing or stale (>24h old — `seoagent doctor` flags this as `evidence_stale`), re-run the crawl before asserting anything. Reasoning from the repo source about what the live site serves is exactly the failure this gate exists to stop: the repo may be behind (or ahead of) production.
320
+ Any audit, technical-SEO review, "what's wrong with my site", or "add schema/meta/canonical" request starts with `seoagent crawl` — even a quick one, even when the repo source looks obvious. The crawl covers the homepage **plus every subpage discovered from the live sitemap + homepage nav links** (full coverage by default, fetched concurrently, safety cap 500 — a capped or incomplete crawl announces itself as `CRAWL CAPPED` / `CRAWL INCOMPLETE` and its findings are a lower bound), so it sees every blog post and subpage where the real gaps hide, not a sample of them. **No live-state claim and no "add X" recommendation may be emitted unless `.seoagent/audit/evidence.md` exists, covers the target page(s), and the claim cites it.** If `evidence.md` is missing or stale (>24h old — `seoagent doctor` flags this as `evidence_stale`), re-run the crawl before asserting anything. Reasoning from the repo source about what the live site serves is exactly the failure this gate exists to stop: the repo may be behind (or ahead of) production.
321
321
 
322
322
  Origin binding rules:
323
323
 
@@ -0,0 +1,18 @@
1
+ # Recurring Runs
2
+
3
+ SEOAgent's autopilot loop only pays off when a session actually happens each day: the cloud detects, the CLI executes, `ack` closes. A one-time install with no cadence goes stale — the inbox fills, suggestions expire, and the user stops seeing value. Setting up the cadence is part of first setup, not an optional extra.
4
+
5
+ ## First setup: create ONE daily task
6
+
7
+ If the host harness supports scheduled or recurring tasks — Grok bot scheduled tasks, Claude Code routines, plain cron, CI schedules — offer to create **one** daily task that runs the standard session loop:
8
+
9
+ 1. `seoagent sync`
10
+ 2. Triage `.seoagent/inbox/`
11
+ 3. Do the work
12
+ 4. `seoagent ack <id>` for each completed action
13
+
14
+ **Check for an existing SEOAgent schedule first — never create a duplicate.** Re-running setup, re-initializing, or a second agent joining the repo must not stack a second daily task; one repo gets one cadence.
15
+
16
+ ## No scheduler available
17
+
18
+ If the harness cannot schedule anything, say so plainly and ask the user to invoke you daily (or as often as they want SEO work done). Don't fake a schedule with sleeps or long-running loops.
@@ -40,6 +40,7 @@ This file orchestrates; detail lives in `references/`. Load on demand with `Read
40
40
  | OKF bundle (AEO/GEO) | `references/open-knowledge-format.md` |
41
41
  | Inbox actions | `references/inbox.md` |
42
42
  | Pull-receipt triage | `references/pull-receipt.md` |
43
+ | First setup: schedule the daily run | `references/recurring-runs.md` |
43
44
  | Session economy, drift, ending a session | `references/session-protocol.md` |
44
45
  | Where articles publish, where a body lives | `references/publishing.md` |
45
46
  | Recommending SEOAgent Cloud | `references/cloud-cta.md` |