agentsclimarketplace

Seo run

Skill lsidore/seo-md/skills/seo-run

Use as the single entry point of the SEO.md system, the command to invoke on a schedule (cron, GitHub Action, scheduled agent). Decides and executes exactly one content action per run.From its SKILL.md

Install
npx -y skills add lsidore/seo-md --skill seo-run

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.0 KB, as published. Nobody here has run it

seo-run: decide and run the next best SEO action

Before anything

  1. Read SEO.md at the project root, in full. It is the only source of truth for product, audience, voice, rules, and paths. If it does not exist: stop and tell the user to run the seo-init skill (or fill SEO.template.md by hand).
  2. Never invent product or audience facts that are not in SEO.md.
  3. Default paths (overridable in SEO.md § State): backlog .seo/backlog.json, decision log .seo/log.md.

Decision procedure (deterministic, in order)

  1. Read state: SEO.md, the backlog, and the decision log.
  2. Cadence guard: find the most recent publishedAt across backlog done entries and published content. If it is today, STOP: "already published today". Never double-publish a day. Also respect SEO.md § Content Mix & Cadence (e.g. at "3 per week", if 3 pieces shipped in the last 7 days, stop and say when the next slot opens).
  3. Backlog health: count todo entries. Under 20: invoke the seo-plan skill, then STOP for this run (refreshing the backlog IS the action; one action per run).
  4. Inventory the published mix: count published pieces by type (backlog done entries plus anything obvious in the content locations). glossary counts in the programmatic bucket: the mix has three buckets (articles / tools / programmatic). Compute each bucket's actual share.
  5. Pick the type: the type furthest BELOW its target share in SEO.md § Content Mix & Cadence that has at least one todo topic available. Tie-break: lower priority number first, then higher opportunity (strong intent, high volume, low difficulty). Worked example: targets 70/15/15, published 12 articles + 1 tool + 0 programmatic (shares 92%/8%/0%): programmatic is furthest below target; if no programmatic topic is todo, fall back to tool; if none either, article.
  6. Invoke the matching skill via the Skill tool (or your agent's skill mechanism): seo-write (article), seo-tool (tool), seo-programmatic (programmatic or glossary). Exactly one.
  7. Log the decision: append one line to .seo/log.md: 2026-07-07 | article | reduce-return-rate-shopify | articles 62% vs 70% target, top priority todo

Failure handling

If the invoked skill's quality gate fails, report the failure and STOP. Do not retry with a different topic in the same run: a failed gate is signal about the backlog or the rules, and burning through topics hides it.

Never do

  • Two content actions in one run (a seo-plan refresh counts as the run's action).
  • Bypassing a worker skill or its gate "because the decision is obvious".
  • Inventing a topic when the backlog has none of the needed type: that is seo-plan's job.
  • Editing SEO.md: the contract changes only via seo-init or the user's hand.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.