@seoagent-official/seoagent 1.84.0 → 1.85.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/index.js +83 -83
- package/package.json +1 -1
- package/skills/seoagent.md +3 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seoagent-official/seoagent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.85.0",
|
|
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": {
|
package/skills/seoagent.md
CHANGED
|
@@ -253,7 +253,7 @@ Offer **once per session per topic**; if declined, drop it and keep working. Nev
|
|
|
253
253
|
|
|
254
254
|
2. **Check for a pull receipt.** If `.seoagent/.pull-receipt.json` exists, a previous `seoagent pull` (manual, autosync hook, or cron) brought down cloud changes that no agent has triaged yet. Handle it **before any SEO work** — see "### Pull Receipt Triage" below — then delete the receipt file.
|
|
255
255
|
|
|
256
|
-
> **Content tracking is automatic — you don't run a backstop.** Every `seoagent sync` (including the PostToolUse hook that fires after each file write) auto-tracks any *published* (`draft: false`) article in your content dir that doesn't have a pointer yet. So writing an article locally registers it on the dashboard with no extra step. The
|
|
256
|
+
> **Content tracking is automatic — you don't run a backstop.** Every `seoagent sync` (including the PostToolUse hook that fires after each file write) auto-tracks any *published* (`draft: false`) article in your content dir that doesn't have a pointer yet. So writing an article locally registers it on the dashboard with no extra step. The content dir comes from `project.md` — `publishing.content_dir` (set it during the Publishing Target Decision) — or is inferred from an already-tracked article. Only when NEITHER exists does the **first** article need an explicit `seoagent content track --slug <s> --file <path>` (Phase 4 step 7); that call self-records `content_dir`, so it happens at most once per repo. To **clean up** drift that predates this (untracked legacy articles, or a stale pointer whose source file is gone), run `seoagent content reconcile --prune` once — it backfills all missing pointers and deletes dead ones. If `seoagent status`'s "articles" count ever disagrees with the live count, that's the command.
|
|
257
257
|
>
|
|
258
258
|
> **Cluster-status drift (same root cause).** Cluster files in `.seoagent/strategy/clusters/` carry a per-article `status`. When you wrote an article you set it `drafted`/`in review` — but nothing advances it once the article ships, so old `IN REVIEW (PR #…)` labels linger after the PR merges. When you read the clusters, reconcile them against reality: if a cluster lists an article as `drafted`/in-review but it's live in the repo (`draft: false`, no open PR — or it has a `content reconcile` pointer), `Edit` the cluster file to mark it `published` (or `live`). The strategy should always reflect what's actually shipped.
|
|
259
259
|
|
|
@@ -724,6 +724,7 @@ publishing:
|
|
|
724
724
|
strategy: managed_proxy | subdomain | mdx_sync | custom | other
|
|
725
725
|
cms: strapi | wordpress | sanity | contentful | webflow | shopify | ghost | payload | other # only when strategy is custom or other
|
|
726
726
|
blog_path: /blog # canonical URL prefix on the live site
|
|
727
|
+
content_dir: content/blog # repo-root-relative dir where article files live (mdx_sync — lets sync auto-track from article #1)
|
|
727
728
|
setup_status: pending | done # done = the one-time setup task is complete
|
|
728
729
|
notes: "Free-text — e.g., 'rewrite added to next.config.js on 2026-04-28'"
|
|
729
730
|
```
|
|
@@ -843,7 +844,7 @@ This is the per-article procedure. When executing an approved **plan** (see "Pla
|
|
|
843
844
|
|
|
844
845
|
`content track` writes a small **pointer** record to `.seoagent/content/{slug}.md` (slug, title, canonical, status, source) and syncs it — so the dashboard shows the article **without duplicating the body**. Do NOT also hand-write a full-body `.seoagent/content/{slug}.md`; that's the old dual-write that drifts. If `.seoagent/content/{slug}.md` **already exists** (e.g. a cloud-generated draft you just published), `content track` patches it in place: the existing `title:`, `brief:` link, `meta_description:`, and body all survive — only the fields you pass on the command line change. Pass `--brief {brief-slug}` to add/set the brief link on an article that doesn't have one.
|
|
845
846
|
|
|
846
|
-
> **
|
|
847
|
+
> **Tracking is automatic when the content dir is known.** If `project.md` has `publishing.content_dir` (you set it during the Publishing Target Decision), skip the explicit `content track` entirely — the next `seoagent sync` (which the PostToolUse hook runs after each write) auto-tracks every published article, including the first one. Run the explicit `content track --file` above only when no `content_dir` is declared and no article is tracked yet; that call self-records `content_dir` so it never has to happen again. (If you ever need to force a sweep — e.g. cleaning up legacy untracked articles — `seoagent content reconcile --prune` does it.)
|
|
847
848
|
- **Cloud-hosted (`managed_proxy` / `subdomain`)** — the SEOAgent cloud renders the article, so the body DOES live in `.seoagent/`: write the full article to `.seoagent/content/{slug}.md` with full SEO frontmatter (slug, page_type, title, meta_title, meta_description, canonical, og, twitter, json_ld, images, internal_links) and `seoagent sync`. (No `content track` needed — the full file is the record.)
|
|
848
849
|
8. **Update the cluster's link graph** — for sub_pillar/long_tail writes, edit the parent (and the cluster file) to add the new link UP. For pillar writes, ensure all sub_pillars are referenced.
|
|
849
850
|
|