@seoagent-official/seoagent 1.117.6 → 1.118.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seoagent-official/seoagent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.118.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": {
|
|
@@ -5,10 +5,11 @@ SEOAgent pays off only when a session actually happens on a cadence: the cloud d
|
|
|
5
5
|
## The session loop (every run, no exceptions)
|
|
6
6
|
|
|
7
7
|
1. `seoagent sync` — pulls the cloud's work into `.seoagent/inbox/` and the briefs into `.seoagent/briefs/`.
|
|
8
|
-
2.
|
|
9
|
-
3.
|
|
10
|
-
4.
|
|
11
|
-
5. `seoagent
|
|
8
|
+
2. `seoagent facts` — if it lists facts whose source changed since the last check, correct them and every page that states the old value, then `seoagent facts --mark` (`references/session-protocol.md` § Fact check against commits).
|
|
9
|
+
3. Triage `.seoagent/inbox/` (see `references/inbox.md`). Do the work in the repo.
|
|
10
|
+
4. If the inbox is empty and `.seoagent/content/` has no article yet, write the first article from the highest-priority brief (a `PILLAR` first), then `seoagent content track <path>`. The sync output names the brief to start with. Do **not** start a local keyword strategy or write local briefs — on a connected workspace those are the cloud's job (`references/cloud-cta.md` § Cloud-connected mode).
|
|
11
|
+
5. `seoagent ack <id>` for every action you finished (`--failed --reason "..."` to decline).
|
|
12
|
+
6. `seoagent sync` once more, then `seoagent summary`.
|
|
12
13
|
|
|
13
14
|
Never skip step 1 because a login failed. An unbound CLI cannot sync. If `seoagent login --code` fails, stop and tell the user the exact error; they can mint a fresh code at seoagent.com/grok. **Never guess, invent, or retype a setup code from memory** — a code is `sa_` + 24 random hex characters that only the server issues, it works exactly once, and a made-up one fails with `not recognized` every time.
|
|
14
15
|
|
|
@@ -24,7 +24,9 @@ llms_owner: route # optional: only value is `route`. Set it when
|
|
|
24
24
|
|
|
25
25
|
## `.seoagent/context.md`
|
|
26
26
|
|
|
27
|
-
Business context, audience, tone, banned topics, reference URLs. Read on every session.
|
|
27
|
+
Business context, facts, audience, tone, banned topics, reference URLs. Read on every session.
|
|
28
|
+
|
|
29
|
+
`# Facts` holds one product fact per line (price, plan, limit, feature, integration), each ending in `— source: <repo file or URL>`: `- Pro plan is $49/month — source: app/pricing/page.tsx`. `seoagent facts` diffs those sources against the commits since the last `seoagent facts --mark` (see `references/session-protocol.md` § Fact check against commits).
|
|
28
30
|
|
|
29
31
|
## `.seoagent/roadmap.md`
|
|
30
32
|
|
|
@@ -43,6 +43,28 @@ Cluster files in `.seoagent/strategy/clusters/` carry a per-article `status`. Wh
|
|
|
43
43
|
|
|
44
44
|
Confirm the recorded CMS still has a supporting signal in the repo (its dep in `package.json` or its env var). If that signal is gone — the user moved off it — don't silently trust the stale value: flag it and run **"Re-detecting the publishing target"** in `references/publishing.md`. Skip this check when no `publishing.cms` is set.
|
|
45
45
|
|
|
46
|
+
## Fact check against commits
|
|
47
|
+
|
|
48
|
+
A page that states a price, a plan limit or a feature is only as current as the code it was read from. `.seoagent/context.md` keeps those facts under `# Facts`, one per line, each naming where it was read:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
# Facts
|
|
52
|
+
|
|
53
|
+
- Pro plan is $49/month, billed monthly — source: app/pricing/page.tsx
|
|
54
|
+
- Free plan includes 3 projects — source: lib/plans.ts
|
|
55
|
+
- Exports to QuickBooks and Xero — source: https://example.com/integrations
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Writing facts.** Read each one from the code or the live page that defines it, never from memory or marketing copy, and name that file or URL. A fact you cannot point to a source for stays out. Prefer the repo file over a URL: commits to it are what the check can see.
|
|
59
|
+
|
|
60
|
+
**Checking them** (doctor flags `facts_stale`; run it every scheduled session either way):
|
|
61
|
+
|
|
62
|
+
1. `seoagent facts` — lists each fact whose source file changed since the last check, with the commits that touched it.
|
|
63
|
+
2. For each listed fact, re-read the source. If the value changed, update the fact line, then search the content and page files for the OLD value (the number, the plan name, the limit) and correct every page that still states it, in this session.
|
|
64
|
+
3. `seoagent facts --mark` — records HEAD as checked. Run it only after step 2 is done; a mark before the pages are fixed hides the stale ones from every later session.
|
|
65
|
+
|
|
66
|
+
`unchecked` (no baseline yet) means verify every repo-sourced fact once, then mark. URL-sourced facts are invisible to git: re-fetch them at each re-audit. A fact whose source no longer exists (renamed or deleted file) gets a new source or is removed. The product is right and the page is wrong: never change the product's code to match a page.
|
|
67
|
+
|
|
46
68
|
## Inferring domain and site type
|
|
47
69
|
|
|
48
70
|
When `.seoagent/project.md` doesn't exist, or `domain`/`site_type` is `unknown`:
|