Skip to content

SEO Skill AGENTS.md changelog

dev.seoskill/seo

2 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • AGENTS.md +4 −6

    https://raw.githubusercontent.com/iannuttall/seo/HEAD/AGENTS.md

    − ## Real data never goes in the repo− Never write a real domain, site, client name or real account data into− code, tests, fixtures, comments, docs, commits or PR text. Use− `example.com`, `example.org` or `*.example`. Grep the diff for real domains− before every commit. The only allowed real domain is the author link in the− site layout.+ ## Examples in code+ Code, tests, fixtures and code comments use `example.com`, `example.org` or+ `*.example`, never Ian's own sites or real account data. Site pages and+ blog posts may name real companies and their domains.

  • AGENTS.md +86 −200

    https://raw.githubusercontent.com/iannuttall/seo/HEAD/AGENTS.md

    − This is the source for `seo`, a local-first TypeScript SEO CLI, library,− router skill, and stdio MCP server. The public repository is− `iannuttall/seo`. The public npm package is the unscoped `seo` package.− `PRODUCT.md` is the durable product definition: users, purpose, brand− personality, vocabulary, and anti-references. Read it before writing any− user-facing copy or making product-shape decisions. This file owns the− engineering contract.− `CONTENT.md` is the durable writing guide for website copy, documentation,− report pages, command help, onboarding, metadata, and README content. Read it− before writing or editing user-facing language.− Reading `CONTENT.md` is mandatory in the same task before writing, editing, or− generating user-facing copy. Do not rely on memory or treat shared template− copy as an exception.− The product has two primary users:− - Humans start with a guided prompt flow and one main report.− - Agents use explicit flags, structured JSON, the router skill, and MCP tools.− Keep the human path calm. Keep the agent path powerful. Both paths must use the− same core report logic and return the same evidence.− `CLAUDE.md` must stay a symlink to this file. Do not maintain separate copies of− agent instructions.− ## Product Direction− - The product is local first. Do not add a required hosted backend, account,−   database, job queue, or telemetry service. The optional hosted MCP keeps a−   small encrypted sign-in store (see MCP Rules); the CLI and library never−   need it.− - Tokens, provider keys, settings, and short-lived caches stay on the user's−   machine.− - The product is the data layer, the pipe. It fetches data and returns it.−   It does not save reports, history, projects, or decisions between runs, and−   it adds no command whose job is to keep them. The agent decides what to−   store and what to log. A crawl may hold what it needs while it runs.− - Optional research providers extend first-party evidence with keyword,−   result, domain, competitor, and link estimates. They must never replace or−   silently blend with Search Console, Google Analytics, crawl, or live result−   evidence.− - Optional provider packages may add analytics or research adapters through the−   public provider SDK. The main package owns the contracts, installation,−   credentials, resource limits, registry, report semantics, and provenance.−   Provider packages return normalized evidence and never add report findings,−   public commands, MCP tools, or skill files.+ `seo` is a TypeScript SEO CLI, a local stdio MCP server, a hosted MCP server+ (`https://seoskill.dev/mcp`, `apps/mcp`), one skill and the seoskill.dev site+ (`apps/web`). The public repo is `iannuttall/seo`; the npm package is the+ unscoped `seo`. `CLAUDE.md` is a symlink to this file.+ This file holds only the rules you need for coding here that the code cannot+ tell you. Product and privacy decisions are not rules for this file.+ - Read `CONTENT.md` before you write copy a person reads: site, docs, help+   text, result text, README, metadata.+ - Read `apps/web/AGENTS.md` before you touch `apps/web`.+ ## Code patterns+ - Each shared command and MCP tool is defined once in+   `packages/core/src/commands` (`tools.ts`). The CLI, the local MCP server+   and the hosted server only supply a `ToolSurface`. Never put report logic+   in a surface.+ - Core code must run in Node and in Cloudflare Workers.+ - Bing blocks Cloudflare's network, so `HOSTED_BING` stays off and Bing+   calls run locally.+ - Provider packages (`seo/provider-sdk`) return normalized evidence only.+ - Decision models sit behind `packages/core/src/decision-model.ts`.+ - Edits to an agent's MCP config keep unrelated settings, make a backup and+   never replace an entry that `seo` did not write.+ - The Clicky account password never leaves the server.+ ## Report truth+ - Keep zero, missing, unavailable, filtered, partial and capped distinct. A+   capped or partial source cannot support a zero or an all-clear.+ - Do not claim causation, ranking impact or indexing unless the evidence+   shows that exact thing. Label heuristics as heuristics.+ - Keep each source's own metric names. A Clicky visit is not a Google+   Analytics session or user. Research data never replaces or blends with+   first-party data.+ - Search Console dates use the `America/Los_Angeles` calendar through the+   shared final-data helper.+ - Sort with stable tie-breakers so input order never changes output.+ - Read every JSON API response with `readJson`, never `response.json()`.+ - Bound every fetch, list and output before the work starts, not after.+   Peak memory follows the active work window, not the site size.+ ## Real data never goes in the repo+ Never write a real domain, site, client name or real account data into+ code, tests, fixtures, comments, docs, commits or PR text. Use+ `example.com`, `example.org` or `*.example`. Grep the diff for real domains

    Showing the first 40 of each.