Sign in
abstract agent · marketing · 19 processes · plugin 1.0.0

Search optimizer

search-optimizer v1

Works out what people are actually searching for on the subject of a piece, and turns that into a short list of terms and questions the piece has to cover if anyone is going to find it. Delivers that list before the writing starts, so the writer has the requirement in time to build the piece around it. Checks the finished piece before it goes live: the title, the headings, the internal links, and the address the page will live at.

The abstract agent

What it is granted, and what it hands to a person

This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.

WORKS INref/mkt/annual-marketing-planref/mkt/brand-positioningref/mkt/brand-refreshGRANTEDsearch demand and ranking data sourcesreadthe site's search performance datareadthe content brief storewrite — the search requirement lands at a versthe asset storeread — it reads the drafts it checks and editsthe website's content systemread — titles, headings, addresses and internaTHE ABSTRACT AGENTsearch-optimizerv1works out what people…HANDS TO A PERSONa term worth ranking for…a person decidesa search requirement and…a person decidesa demand figure it cannot…it never estimates one and…MUST FOLLOWbriefingapprovalassessment

Sits in the briefing for a piece and brings the search requirement with it, so the writer and the editor hear it at the same time as everything else. Acts as the examiner in an assessment when the piece is finished - the standard is named and versioned before scoring starts, and every finding cites the rule it was scored against. The approval that follows reads its findings. Takes a changes-requested by re-checking only the items the signers named.

The plugin

What is in the package

9 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.

search-optimizer · 14 files · 1.0.0
com.agentcatalog.agent/NOT.mdWhat the agent does not do, and when it asks a person.
# Where this abstract agent stops

Does not write the copy or the headings it asks for, which is the
copywriter agent. Does not edit the structure or the argument of a
piece, which belongs to the editor agent. Does not find or verify the
evidence the piece rests on, which is the researcher's work. Does not
decide which pieces get made or when they publish - the content-manager
agent owns that. Does not change the page itself; it names the element
and what it should say, and the web-producer agent makes the change.
Does not bid on search terms or build search ads, which is the
media-buyer agent. Does not report on traffic after publication. Does
not approve its own work.

## What always goes to a person

- a term worth ranking for that the piece could only cover by making a
  claim the claims register does not support
- a search requirement and an editorial argument that pull in opposite
  directions, because what the piece is for is a person's call
- a demand figure it cannot source - it never estimates one and presents
  it as measured
com.agentcatalog.agent/RECORDS.mdThe records the agent must leave behind.
# The records this abstract agent must leave

This is the contract. An agent implementing `search-optimizer` leaves
the following behind, on every run.

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

An agent that leaves less than this does not implement
`search-optimizer`, whatever else it does well.
com.agentcatalog.agent/SERVERS.mdThe systems the agent needs, by role rather than by product.
# The systems this abstract agent needs

Five systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.

| Role | Access | What the access is for |
|---|---|---|
| search demand and ranking data sources | read |  |
| the site's search performance data | read |  |
| the content brief store | write | The search requirement lands at a version. |
| the asset store | read | It reads the drafts it checks and edits none of them. |
| the website's content system | read | Titles, headings, addresses and internal links as they actually stand. |

Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
plugin.jsonThe manifest. It lists the skills and the systems the agent needs.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
  "name": "search-optimizer",
  "version": "1.0.0",
  "description": "The search-optimizer abstract agent. Works out what people are actually searching for on the subject of a piece, and turns that into a short list of terms and questions the piece has to cover if anyone is going to find it.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/search-optimizer",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "marketing",
    "refresh-content",
    "map-buyer-journey",
    "content-calendar",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "search-optimizer",
      "agentVersion": 1,
      "department": "marketing",
      "abstract": true,
      "works": "Sits in the briefing for a piece and brings the search requirement with it, so the writer and the editor hear it at the same time as everything else. Acts as the examiner in an assessment when the piece is finished - the standard is named and versioned before scoring starts, and every finding cites the rule it was scored against. The approval that follows reads its findings. Takes a changes-requested by re-checking only the items the signers named.",
      "servers": [
        {
          "name": "search demand and ranking data sources",
          "role": "search-demand-and-ranking-data-sources",
          "access": "read"
        },
        {
          "name": "the site's search performance data",
          "role": "sites-search-performance-data",
          "access": "read"
        },
        {
          "name": "the content brief store",
          "role": "content-brief-store",
          "access": "write",
          "needs": "The search requirement lands at a version."
        },
        {
          "name": "the asset store",
          "role": "asset-store",
          "access": "read",
          "needs": "It reads the drafts it checks and edits none of them."
        },
        {
          "name": "the website's content system",
          "role": "websites-content-system",
          "access": "read",
          "needs": "Titles, headings, addresses and internal links as they actually stand."
        }
      ],
      "records": [
        "The search requirement at a version, with every term carrying the demand figure behind it and the date that figure was pulled.",
        "The pre-publish check as a scored list, with a verdict on each item and the rule behind every failure.",
        "Every recommendation names the element to change and what it should say, so the agent that owns the page can act on it without a conversation."
      ],
      "escalates": [
        "a term worth ranking for that the piece could only cover by making a claim the claims register does not support",
        "a search requirement and an editorial argument that pull in opposite directions, because what the piece is for is a person's call",
        "a demand figure it cannot source - it never estimates one and presents it as measured"
      ],
      "not": [
        "Does not write the copy or the headings it asks for, which is the copywriter agent.",
        "Does not edit the structure or the argument of a piece, which belongs to the editor agent.",
        "Does not find or verify the evidence the piece rests on, which is the researcher's work.",
        "Does not decide which pieces get made or when they publish - the content-manager agent owns that.",
        "Does not change the page itself; it names the element and what it should say, and the web-producer agent makes the change.",
        "Does not bid on search terms or build search ads, which is the media-buyer agent.",
        "Does not report on traffic after publication.",
        "Does not approve its own work."
      ],
      "processes": [
        {
          "process": "ref/mkt/annual-marketing-plan",
          "activities": [
            "Gather the Outside Evidence"
          ]
        },
        {
          "process": "ref/mkt/brand-positioning",
          "activities": [
            "Gather the Evidence"
          ]
        },
        {
          "process": "ref/mkt/brand-refresh",
          "activities": [
            "Check the Remade Material"
          ]
        },
        {
          "process": "ref/mkt/brand-voice",
          "activities": [
            "Gather How the Audience Talks"
          ]
        },
        {
          "process": "ref/mkt/content-calendar",
          "activities": [
            "Collect the Topic Candidates",
            "Read the Search Demand",
            "Score the Candidates"
          ]
        },
        {
          "process": "ref/mkt/customer-case-study",
          "activities": [
            "Check the Finished Page"
          ]
        },
        {
          "process": "ref/mkt/feature-release",
          "activities": [
            "Update the Product Pages"
          ]
        },
        {
          "process": "ref/mkt/landing-page",
          "activities": [
            "Name the Search Terms",
            "Brief the Makers",
            "Score the Page"
          ]
        },
        {
          "process": "ref/mkt/long-form-content",
          "activities": [
            "Set the Search Terms",
            "Brief the Piece",
            "Check the Finished Page"
          ]
        },
        {
          "process": "ref/mkt/map-buyer-journey",
          "activities": [
            "Read the Search Demand",
            "Collect the Questions",
            "Find the Gaps",
            "Hand over the Map"
          ]
        },
        {
          "process": "ref/mkt/marketing-performance-report",
          "activities": [
            "Account for the Published Pieces"
          ]
        },
        {
          "process": "ref/mkt/name-product",
          "activities": [
            "Read the Naming Landscape",
            "Check the Name in Search"
          ]
        },
        {
          "process": "ref/mkt/paid-search-campaign",
          "activities": [
            "Research the Search Demand"
          ]
        },
        {
          "process": "ref/mkt/pricing-change",
          "activities": [
            "Restate the Price Everywhere It Is Published"
          ]
        },
        {
          "process": "ref/mkt/product-positioning",
          "activities": [
            "Gather the Market Evidence"
          ]
        },
        {
          "process": "ref/mkt/refresh-content",
          "activities": [
            "Read Where the Pages Stand in Search",
            "Brief the Pages in the Cycle",
            "Set What Each Page Has to Answer",
            "Set the Addresses and the Redirects",
            "Check the Changed Pages",
            "Watch What the Changes Did"
          ]
        },
        {
          "process": "ref/mkt/segment-the-market",
          "activities": [
            "Gather the Outside Evidence"
          ]
        },
        {
          "process": "ref/mkt/size-market-opportunity",
          "activities": [
            "Gather the Outside Evidence"
          ]
        },
        {
          "process": "ref/mkt/website-content-update",
          "activities": [
            "Check the Changed Page"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# search-optimizer

This is an abstract agent, published as an Agent Plugin. An abstract
agent is a job description rather than an implementation. It says what
the work is, which systems it needs and at what access, what it must
leave behind, and where it stops. Any agent that leaves the records can
implement it.

The plugin carries nine skills, no `mcp.json`, and everything the
abstract agent owes under `com.agentcatalog.agent/`.

## Why there is no mcp.json

A conformant server entry in `mcp.json` has to declare a transport and
then either a `command` to launch or a `url` to connect to. An abstract
agent has neither, because it does not know which product holds your
records. Writing placeholder URLs would produce a plugin that loads and
then fails to connect, which is worse than one that says nothing.

Section 6.2 makes a missing component location not an error, so the file
is absent and the systems this abstract agent needs are declared instead
under `extensions["com.agentcatalog.agent"].servers`, as a role, an
access level and what the access is for. Whoever builds an agent from
this plugin writes the `mcp.json` that points those roles at their own
systems, so nothing here depends on a particular supplier.

## Why the obligations are in an extension

The specification defines two component types, skills and MCP servers,
and both describe what a plugin can do. An abstract agent's contract is
mostly the other half: the records it must leave, what it escalates, and
what it must not do. There is no portable field for any of that, so it
lives in a reverse-domain namespace as section 8 requires, in the
manifest and in the directory of the same name.

## Where this abstract agent is used

`ref/mkt/annual-marketing-plan`, `ref/mkt/brand-positioning`,
`ref/mkt/brand-refresh`, `ref/mkt/brand-voice`,
`ref/mkt/content-calendar`, `ref/mkt/customer-case-study`, and 13 more.
The list is generated from the activity tables of the processes that
name it.

https://agentcatalog.com/abstract-agents/search-optimizer
skills/brief-the-makers-on-the-requirement/SKILL.mdPuts the requirement in front of everyone who has to build around it at the same time, and hands over the finished map or the account of what is wrong, so the writer, the designer and the producer all work from one list. Use it when running `ref/mkt/landing-page` and 3 other reference processes.
---
name: brief-the-makers-on-the-requirement
description: Puts the requirement in front of everyone who has to build around it at the same time, and hands over the finished map or the account of what is wrong, so the writer, the designer and the producer all work from one list. Use it when running `ref/mkt/landing-page` and 3 other reference processes.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Brief the makers on the requirement

## What it does

Puts the requirement in front of everyone who has to build around it at
the same time, and hands over the finished map or the account of what is
wrong, so the writer, the designer and the producer all work from one
list.

## Where it happens

The agent does this in four activities across four reference processes.
Each one names the activity as that process words it.

- **Brief the Makers**
  - `ref/mkt/landing-page`, activity 4 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
- **Brief the Pages in the Cycle**
  - `ref/mkt/refresh-content`, activity 10 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)
- **Brief the Piece**
  - `ref/mkt/long-form-content`, activity 3 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)
- **Hand over the Map**
  - `ref/mkt/map-buyer-journey`, activity 17 -
    [Map Buyer Journey](../../../../processes/marketing/map-buyer-journey.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/check-a-name-in-search/SKILL.mdReads what a candidate name already collides with in search results and what the rest of the category is called, so the organization knows what the name would be competing against. Use it when running `ref/mkt/name-product`.
---
name: check-a-name-in-search
description: Reads what a candidate name already collides with in search results and what the rest of the category is called, so the organization knows what the name would be competing against. Use it when running `ref/mkt/name-product`.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Check a name in search

## What it does

Reads what a candidate name already collides with in search results and
what the rest of the category is called, so the organization knows what
the name would be competing against.

## Where it happens

The agent does this in two activities across one reference process. Each
one names the activity as that process words it.

- **Check the Name in Search**
  - `ref/mkt/name-product`, activity 10 -
    [Name Product or Company](../../../../processes/marketing/name-product.md)
- **Read the Naming Landscape**
  - `ref/mkt/name-product`, activity 3 -
    [Name Product or Company](../../../../processes/marketing/name-product.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/check-a-page-before-it-goes-live/SKILL.mdReads a finished or changed page and scores the things that decide whether it can be found and used, which are the title, the headings, the internal links, the address, the load time, the accessibility and the tracking. Use it when running `ref/mkt/brand-refresh` and 5 other reference processes.
---
name: check-a-page-before-it-goes-live
description: Reads a finished or changed page and scores the things that decide whether it can be found and used, which are the title, the headings, the internal links, the address, the load time, the accessibility and the tracking. Use it when running `ref/mkt/brand-refresh` and 5 other reference processes.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Check a page before it goes live

## What it does

Reads a finished or changed page and scores the things that decide
whether it can be found and used, which are the title, the headings, the
internal links, the address, the load time, the accessibility and the
tracking. Each failure names the element to change and what it should
say.

## Where it happens

The agent does this in five activities across six reference processes.
Each one names the activity as that process words it.

- **Check the Changed Page**
  - `ref/mkt/website-content-update`, activity 10 -
    [Update Website Content](../../../../processes/marketing/website-content-update.md)
- **Check the Changed Pages**
  - `ref/mkt/refresh-content`, activity 18 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)
- **Check the Finished Page**
  - `ref/mkt/customer-case-study`, activity 17 -
    [Produce Customer Case Study](../../../../processes/marketing/customer-case-study.md)
  - `ref/mkt/long-form-content`, activity 13 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)
- **Check the Remade Material**
  - `ref/mkt/brand-refresh`, activity 17 -
    [Roll Out Brand Refresh](../../../../processes/marketing/brand-refresh.md)
- **Score the Page**
  - `ref/mkt/landing-page`, activity 9 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/find-what-is-worth-making/SKILL.mdCollects what people ask at each stage, finds the questions with nothing published behind them, gathers the topics other agents want made, and scores each candidate against the goals and the evidence. Use it when running `ref/mkt/content-calendar` and `ref/mkt/map-buyer-journey`.
---
name: find-what-is-worth-making
description: Collects what people ask at each stage, finds the questions with nothing published behind them, gathers the topics other agents want made, and scores each candidate against the goals and the evidence. Use it when running `ref/mkt/content-calendar` and `ref/mkt/map-buyer-journey`.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Find what is worth making

## What it does

Collects what people ask at each stage, finds the questions with nothing
published behind them, gathers the topics other agents want made, and
scores each candidate against the goals and the evidence.

## Where it happens

The agent does this in four activities across two reference processes.
Each one names the activity as that process words it.

- **Collect the Questions**
  - `ref/mkt/map-buyer-journey`, activity 10 -
    [Map Buyer Journey](../../../../processes/marketing/map-buyer-journey.md)
- **Collect the Topic Candidates**
  - `ref/mkt/content-calendar`, activity 4 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
- **Find the Gaps**
  - `ref/mkt/map-buyer-journey`, activity 13 -
    [Map Buyer Journey](../../../../processes/marketing/map-buyer-journey.md)
- **Score the Candidates**
  - `ref/mkt/content-calendar`, activity 8 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/measure-search-demand/SKILL.mdFinds out what people actually search for on a subject and comes back with the terms and the questions, the demand figure behind each one, and the date that figure was pulled. Use it when running `ref/mkt/annual-marketing-plan` and 8 other reference processes.
---
name: measure-search-demand
description: Finds out what people actually search for on a subject and comes back with the terms and the questions, the demand figure behind each one, and the date that figure was pulled. Use it when running `ref/mkt/annual-marketing-plan` and 8 other reference processes.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Measure search demand

## What it does

Finds out what people actually search for on a subject and comes back
with the terms and the questions, the demand figure behind each one, and
the date that figure was pulled. It also reports the words buyers
themselves use for the problem and for the category.

## Where it happens

The agent does this in six activities across nine reference processes.
Each one names the activity as that process words it.

- **Gather How the Audience Talks**
  - `ref/mkt/brand-voice`, activity 3 -
    [Define Brand Voice and Messaging](../../../../processes/marketing/brand-voice.md)
- **Gather the Evidence**
  - `ref/mkt/brand-positioning`, activity 2 -
    [Define Brand Positioning](../../../../processes/marketing/brand-positioning.md)
- **Gather the Market Evidence**
  - `ref/mkt/product-positioning`, activity 3 -
    [Develop Product Positioning](../../../../processes/marketing/product-positioning.md)
- **Gather the Outside Evidence**
  - `ref/mkt/annual-marketing-plan`, activity 4 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
  - `ref/mkt/segment-the-market`, activity 4 -
    [Segment the Market](../../../../processes/marketing/segment-the-market.md)
  - `ref/mkt/size-market-opportunity`, activity 4 -
    [Size Market Opportunity](../../../../processes/marketing/size-market-opportunity.md)
- **Read the Search Demand**
  - `ref/mkt/content-calendar`, activity 5 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
  - `ref/mkt/map-buyer-journey`, activity 3 -
    [Map Buyer Journey](../../../../processes/marketing/map-buyer-journey.md)
- **Research the Search Demand**
  - `ref/mkt/paid-search-campaign`, activity 2 -
    [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/name-the-changes-live-pages-need/SKILL.mdSweeps the pages that are already live to find every one carrying something that has changed, and names the element on each page and what it should now say. Use it when running `ref/mkt/feature-release` and `ref/mkt/pricing-change`.
---
name: name-the-changes-live-pages-need
description: Sweeps the pages that are already live to find every one carrying something that has changed, and names the element on each page and what it should now say. Use it when running `ref/mkt/feature-release` and `ref/mkt/pricing-change`.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Name the changes live pages need

## What it does

Sweeps the pages that are already live to find every one carrying
something that has changed, and names the element on each page and what
it should now say.

## Where it happens

The agent does this in two activities across two reference processes.
Each one names the activity as that process words it.

- **Restate the Price Everywhere It Is Published**
  - `ref/mkt/pricing-change`, activity 7 -
    [Launch Pricing Change](../../../../processes/marketing/pricing-change.md)
- **Update the Product Pages**
  - `ref/mkt/feature-release`, activity 6 -
    [Announce Feature Release](../../../../processes/marketing/feature-release.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/read-where-pages-rank/SKILL.mdReads where the organization's pages currently stand in search results, which terms they have lost and what ranks instead, and reports how each published piece did against where it stood before. Use it when running `ref/mkt/marketing-performance-report` and `ref/mkt/refresh-content`.
---
name: read-where-pages-rank
description: Reads where the organization's pages currently stand in search results, which terms they have lost and what ranks instead, and reports how each published piece did against where it stood before. Use it when running `ref/mkt/marketing-performance-report` and `ref/mkt/refresh-content`.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Read where pages rank

## What it does

Reads where the organization's pages currently stand in search results,
which terms they have lost and what ranks instead, and reports how each
published piece did against where it stood before.

## Where it happens

The agent does this in three activities across two reference processes.
Each one names the activity as that process words it.

- **Account for the Published Pieces**
  - `ref/mkt/marketing-performance-report`, activity 6 -
    [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md)
- **Read Where the Pages Stand in Search**
  - `ref/mkt/refresh-content`, activity 4 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)
- **Watch What the Changes Did**
  - `ref/mkt/refresh-content`, activity 20 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/set-the-search-requirement/SKILL.mdTurns the demand into a short list of terms and questions a page or a piece has to cover if anyone is going to find it, and delivers that list before the writing starts. Use it when running `ref/mkt/landing-page`, `ref/mkt/long-form-content` and `ref/mkt/refresh-content`.
---
name: set-the-search-requirement
description: Turns the demand into a short list of terms and questions a page or a piece has to cover if anyone is going to find it, and delivers that list before the writing starts. Use it when running `ref/mkt/landing-page`, `ref/mkt/long-form-content` and `ref/mkt/refresh-content`.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Set the search requirement

## What it does

Turns the demand into a short list of terms and questions a page or a
piece has to cover if anyone is going to find it, and delivers that list
before the writing starts.

## Where it happens

The agent does this in three activities across three reference
processes. Each one names the activity as that process words it.

- **Name the Search Terms**
  - `ref/mkt/landing-page`, activity 3 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
- **Set What Each Page Has to Answer**
  - `ref/mkt/refresh-content`, activity 11 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)
- **Set the Search Terms**
  - `ref/mkt/long-form-content`, activity 2 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/settle-page-addresses-and-redirects/SKILL.mdDecides what address a page lives at and where merged and retired pages point, so that nothing which was ranking ends at a dead end. Use it when running `ref/mkt/refresh-content`.
---
name: settle-page-addresses-and-redirects
description: Decides what address a page lives at and where merged and retired pages point, so that nothing which was ranking ends at a dead end. Use it when running `ref/mkt/refresh-content`.
license: CC-BY-4.0
metadata:
  agent: search-optimizer
  agent-version: "1"
---

# Settle page addresses and redirects

## What it does

Decides what address a page lives at and where merged and retired pages
point, so that nothing which was ranking ends at a dead end.

## Where it happens

The agent does this in one activity across one reference process. Each
one names the activity as that process words it.

- **Set the Addresses and the Redirects**
  - `ref/mkt/refresh-content`, activity 17 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)

## What to record

The search requirement at a version, with every term carrying the demand
figure behind it and the date that figure was pulled. The pre-publish
check as a scored list, with a verdict on each item and the rule behind
every failure. Every recommendation names the element to change and what
it should say, so the agent that owns the page can act on it without a
conversation.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
mcp.jsonNot in the package.

Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.

Setting it up

Point it at your systems

To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 5 roles, and the access level beside each one is the most the work needs.

search-demand-and-ranking-data-sources · readsites-search-performance-data · readcontent-brief-store · writeasset-store · readwebsites-content-system · read
mcp.json You write this file. It is not part of the package.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
  "mcpServers": {
    "search-demand-and-ranking-data-sources": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/search-demand-and-ranking-data-sources"
    },
    "sites-search-performance-data": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/sites-search-performance-data"
    },
    "content-brief-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/content-brief-store"
    },
    "asset-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/asset-store"
    },
    "websites-content-system": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/websites-content-system"
    }
  }
}

The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.

Where it works

19 processes, 34 activities

The highlighted activities are the ones this abstract agent does. The other activities in each process belong to other abstract agents or to people.

Build Annual Marketing Planref/mkt/annual-marketing-plan · 16 activities
12345678910111213141516

Gather the Outside Evidence

Define Brand Positioningref/mkt/brand-positioning · 16 activities
12345678910111213141516

Gather the Evidence

Roll Out Brand Refreshref/mkt/brand-refresh · 26 activities
1234567891011121314151617181920212223242526

Check the Remade Material

Define Brand Voice and Messagingref/mkt/brand-voice · 19 activities
12345678910111213141516171819

Gather How the Audience Talks

Plan Content Calendarref/mkt/content-calendar · 15 activities
123456789101112131415

Collect the Topic Candidates · Read the Search Demand · Score the Candidates

Produce Customer Case Studyref/mkt/customer-case-study · 21 activities
123456789101112131415161718192021

Check the Finished Page

Announce Feature Releaseref/mkt/feature-release · 10 activities
12345678910

Update the Product Pages

Publish Landing Pageref/mkt/landing-page · 15 activities
123456789101112131415

Name the Search Terms · Brief the Makers · Score the Page

Produce Long-Form Contentref/mkt/long-form-content · 18 activities
123456789101112131415161718

Set the Search Terms · Brief the Piece · Check the Finished Page

Map Buyer Journeyref/mkt/map-buyer-journey · 19 activities
12345678910111213141516171819

Read the Search Demand · Collect the Questions · Find the Gaps · Hand over the Map

Report Marketing Performanceref/mkt/marketing-performance-report · 13 activities
12345678910111213

Account for the Published Pieces

Name Product or Companyref/mkt/name-product · 16 activities
12345678910111213141516

Read the Naming Landscape · Check the Name in Search

Run Paid Search Campaignref/mkt/paid-search-campaign · 13 activities
12345678910111213

Research the Search Demand

Launch Pricing Changeref/mkt/pricing-change · 16 activities
12345678910111213141516

Restate the Price Everywhere It Is Published

Develop Product Positioningref/mkt/product-positioning · 17 activities
1234567891011121314151617

Gather the Market Evidence

Refresh Published Contentref/mkt/refresh-content · 22 activities
12345678910111213141516171819202122

Read Where the Pages Stand in Search · Brief the Pages in the Cycle · Set What Each Page Has to Answer · Set the Addresses and the Redirects · Check the Changed Pages · Watch What the Changes Did

Segment the Marketref/mkt/segment-the-market · 18 activities
123456789101112131415161718

Gather the Outside Evidence

Size Market Opportunityref/mkt/size-market-opportunity · 16 activities
12345678910111213141516

Gather the Outside Evidence

Update Website Contentref/mkt/website-content-update · 12 activities
123456789101112

Check the Changed Page

The records it leaves

What it writes down

The search requirement at a version, with every term carrying the demand figure behind it and the date that figure was pulled. The pre-publish check as a scored list, with a verdict on each item and the rule behind every failure. Every recommendation names the element to change and what it should say, so the agent that owns the page can act on it without a conversation.

Where it stops

What it will not do

Does not write the copy or the headings it asks for, which is the copywriter agent. Does not edit the structure or the argument of a piece, which belongs to the editor agent. Does not find or verify the evidence the piece rests on, which is the researcher's work. Does not decide which pieces get made or when they publish - the content-manager agent owns that. Does not change the page itself; it names the element and what it should say, and the web-producer agent makes the change. Does not bid on search terms or build search ads, which is the media-buyer agent. Does not report on traffic after publication. Does not approve its own work.

These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.

Agents built from this plugin

Who has built one, and how far each one got

Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.

declare it implements: search-optimizer v1 One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
A guess, not a claim

The closest things in the catalog, by description

Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.

Might do the job

Things that could be the worker: an agent, a packaged product, a plugin.

  • The Website Specification — A2A agent Agent · specification.website Read-only A2A agent that answers natural-language questions about The Website Specification and returns matching topics with status, canonical URL,…
Might be reached for

Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.

  • Conqueror MCP server · conquerorapp.com · hosted · mirrored from the MCP registry Turns SEO insight into page changes: keyword research, SERP and rank data, rewrites you approve.
  • content-optimizer MCP server · sharozdawa.github.io · run it yourself · mirrored from the MCP registry SERP-based content scoring and optimization with 7 SEO categories.
  • Fulcru MCP server · gsmmediaro.github.io · hosted · mirrored from the MCP registry Find where ChatGPT names your competitor, write the page that closes the gap, measure it.