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

Content manager

content-manager v1

Runs one published piece from the approved request through to live: an article, a guide, or a landing page. Takes the request in, settles what the piece has to do and by when, briefs the researcher, the copywriter and the designer, keeps the piece moving through research, writing, editing and sign-off, says when it goes live, and reports how it did once it is out. This agent handles one piece at a time, and it keeps answering for that piece while the piece is live.

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-voiceref/mkt/buyer-personaGRANTEDthe content plan and its schedulewrite — the piece's dates and its current statthe asset storereadthe CMSread — it reads what is live and changes nothianalyticsreadTHE ABSTRACT AGENTcontent-managerv1runs one published piece…HANDS TO A PERSONa date the piece cannot…cutting the piece or moving…anything a sign-off flags…a person decidesa correction or a takedown…a person decides what the…the publish decision…a person decidesMUST FOLLOWbuild-by-talentcollect-and-reportbriefingapprovaldebrief

Convenes the briefing that starts the piece, so the researcher, the copywriter, the designer and the editor all hear the same request at once. Commissions build-by-talent for production, and declares the order of the passes in layered-passes so each checking agent knows when its turn comes. Requests the approval at sign-off and takes a changes-requested back to the agent the signers named. Runs collect-and-report for the performance readout once the piece is live, and convenes the debrief that closes the run.

The plugin

What is in the package

15 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.

content-manager · 20 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, research, edit, or design the piece. Does not build the
page or push it live - that is the web-producer agent, which acts on
this agent's go. Does not put the measurement on the page, which is the
conversion-tracker agent. Does not sign anything. Does not run the
campaign a piece may sit inside, because one campaign can call for
several pieces and each piece gets its own run of this agent. Does not
own the department's report for a reporting period - that is the
reporting-manager agent, and this agent answers for one piece.

## What always goes to a person

- a date the piece cannot make, on the day the math stops working -
  cutting the piece or moving the date is a person's call
- anything a sign-off flags as legal
- a correction or a takedown after the piece is live - a person decides
  what the notice says and where it goes
- the publish decision itself, until the adopting organization raises
  the automation level for it
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 `content-manager` leaves the
following behind, on every run.

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

An agent that leaves less than this does not implement
`content-manager`, 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

Four 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 |
|---|---|---|
| the content plan and its schedule | write | The piece's dates and its current state live here. |
| the asset store | read |  |
| the CMS | read | It reads what is live and changes nothing. |
| analytics | read |  |

There is deliberately no publishing grant. This agent says when the
piece goes live, and the web-producer agent is the one that publishes
it.

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": "content-manager",
  "version": "1.0.0",
  "description": "The content-manager abstract agent. Runs one published piece from the approved request through to live: an article, a guide, or a landing page.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/content-manager",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "marketing",
    "customer-newsletter",
    "landing-page",
    "content-calendar",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "content-manager",
      "agentVersion": 1,
      "department": "marketing",
      "abstract": true,
      "works": "Convenes the briefing that starts the piece, so the researcher, the copywriter, the designer and the editor all hear the same request at once. Commissions build-by-talent for production, and declares the order of the passes in layered-passes so each checking agent knows when its turn comes. Requests the approval at sign-off and takes a changes-requested back to the agent the signers named. Runs collect-and-report for the performance readout once the piece is live, and convenes the debrief that closes the run.",
      "servers": [
        {
          "name": "the content plan and its schedule",
          "role": "content-plan-and-its-schedule",
          "access": "write",
          "needs": "The piece's dates and its current state live here."
        },
        {
          "name": "the asset store",
          "role": "asset-store",
          "access": "read"
        },
        {
          "name": "the CMS",
          "role": "cms",
          "access": "read",
          "needs": "It reads what is live and changes nothing."
        },
        {
          "name": "analytics",
          "role": "analytics",
          "access": "read"
        }
      ],
      "records": [
        "The request as it was accepted, with the date the piece promised and what the piece is meant to accomplish.",
        "The CONVENED and DONE records of everything it convenes.",
        "The publish record, naming who said go and which version went live.",
        "The performance readout at the cadence the process sets, and the decision it made after reading that readout: leave the piece alone, update it, or retire it."
      ],
      "escalates": [
        "a date the piece cannot make, on the day the math stops working - cutting the piece or moving the date is a person's call",
        "anything a sign-off flags as legal",
        "a correction or a takedown after the piece is live - a person decides what the notice says and where it goes",
        "the publish decision itself, until the adopting organization raises the automation level for it"
      ],
      "not": [
        "Does not write, research, edit, or design the piece.",
        "Does not build the page or push it live - that is the web-producer agent, which acts on this agent's go.",
        "Does not put the measurement on the page, which is the conversion-tracker agent.",
        "Does not sign anything.",
        "Does not run the campaign a piece may sit inside, because one campaign can call for several pieces and each piece gets its own run of this agent.",
        "Does not own the department's report for a reporting period - that is the reporting-manager agent, and this agent answers for one piece."
      ],
      "processes": [
        {
          "process": "ref/mkt/annual-marketing-plan",
          "activities": [
            "Collect the Candidate Initiatives",
            "Build the Calendar",
            "Brief the Department"
          ]
        },
        {
          "process": "ref/mkt/brand-voice",
          "activities": [
            "Brief the Agents that Write to It"
          ]
        },
        {
          "process": "ref/mkt/buyer-persona",
          "activities": [
            "Hand over the Persona"
          ]
        },
        {
          "process": "ref/mkt/content-calendar",
          "activities": [
            "List What Is Already Committed",
            "Collect the Topic Candidates",
            "Size the Production Capacity",
            "Draft the Calendar",
            "Publish the Calendar",
            "Brief the Department",
            "Hand over the Approved Topics"
          ]
        },
        {
          "process": "ref/mkt/customer-case-study",
          "activities": [
            "Brief the Story",
            "Agree What the Story Argues",
            "Publish",
            "Watch Performance",
            "Record What Was Learned"
          ]
        },
        {
          "process": "ref/mkt/customer-newsletter",
          "activities": [
            "Open the Issue",
            "Settle the Lineup",
            "Brief the Makers",
            "Proof the Issue",
            "Send the Issue",
            "Watch the Results",
            "Report the Results",
            "Record What Was Learned"
          ]
        },
        {
          "process": "ref/mkt/develop-marketing-strategy",
          "activities": [
            "Hand the Strategy to the Work that Follows"
          ]
        },
        {
          "process": "ref/mkt/landing-page",
          "activities": [
            "Take in the Request",
            "Set the Parameters",
            "Brief the Makers",
            "Publish",
            "Hand It to the Campaign",
            "Watch It Convert",
            "Fix What the Numbers Show",
            "Record What Was Learned"
          ]
        },
        {
          "process": "ref/mkt/long-form-content",
          "activities": [
            "Take in the Topic",
            "Brief the Piece",
            "Agree the Outline",
            "Publish",
            "Watch Performance",
            "Report How the Piece Did",
            "Record What Was Learned"
          ]
        },
        {
          "process": "ref/mkt/map-buyer-journey",
          "activities": [
            "Inventory the Content against the Map",
            "Hand over the Map"
          ]
        },
        {
          "process": "ref/mkt/marketing-performance-report",
          "activities": [
            "Account for the Published Pieces",
            "Check the Account"
          ]
        },
        {
          "process": "ref/mkt/media-plan",
          "activities": [
            "Collect What the Plan Must Carry"
          ]
        },
        {
          "process": "ref/mkt/moderate-community",
          "activities": [
            "Group the Recurring Questions"
          ]
        },
        {
          "process": "ref/mkt/plan-marketing-capacity",
          "activities": [
            "List the Committed Work",
            "Break the Work into Activities"
          ]
        },
        {
          "process": "ref/mkt/prioritize-initiatives",
          "activities": [
            "Work out What Is Free",
            "Settle What Gets Displaced",
            "Hand over the Commitments"
          ]
        },
        {
          "process": "ref/mkt/quarterly-business-review",
          "activities": [
            "Ask Each Area What It Would Change",
            "Brief the Department"
          ]
        },
        {
          "process": "ref/mkt/refresh-content",
          "activities": [
            "Brief the Pages in the Cycle",
            "Publish the Changes",
            "Watch What the Changes Did"
          ]
        },
        {
          "process": "ref/mkt/set-marketing-budget",
          "activities": [
            "Collect What Each Function Asks For",
            "Tell Every Function What It Has"
          ]
        },
        {
          "process": "ref/mkt/user-conference",
          "activities": [
            "Repurpose the Content"
          ]
        },
        {
          "process": "ref/mkt/website-content-update",
          "activities": [
            "Take in the Request",
            "Route the Change",
            "Publish the Change",
            "Close out the Change"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# content-manager

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 fifteen 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-voice`,
`ref/mkt/buyer-persona`, `ref/mkt/content-calendar`,
`ref/mkt/customer-case-study`, `ref/mkt/customer-newsletter`, and 14
more. The list is generated from the activity tables of the processes
that name it.

https://agentcatalog.com/abstract-agents/content-manager
skills/brief-every-agent-at-once/SKILL.mdGives every agent that has to research, write, design or check the work the same request at the same time, so that nobody is working from a different account of it. Use it when running `ref/mkt/annual-marketing-plan` and 8 other reference processes.
---
name: brief-every-agent-at-once
description: Gives every agent that has to research, write, design or check the work the same request at the same time, so that nobody is working from a different account of it. Use it when running `ref/mkt/annual-marketing-plan` and 8 other reference processes.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Brief every agent at once

## What it does

Gives every agent that has to research, write, design or check the work
the same request at the same time, so that nobody is working from a
different account of it.

## Where it happens

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

- **Brief the Agents that Write to It**
  - `ref/mkt/brand-voice`, activity 17 -
    [Define Brand Voice and Messaging](../../../../processes/marketing/brand-voice.md)
- **Brief the Department**
  - `ref/mkt/annual-marketing-plan`, activity 15 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
  - `ref/mkt/content-calendar`, activity 13 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
  - `ref/mkt/quarterly-business-review`, activity 15 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Brief the Makers**
  - `ref/mkt/customer-newsletter`, activity 5 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)
  - `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)
- **Brief the Story**
  - `ref/mkt/customer-case-study`, activity 6 -
    [Produce Customer Case Study](../../../../processes/marketing/customer-case-study.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/build-the-calendar/SKILL.mdLays the agreed work across the period with a format, an owning agent and a date on each item, and publishes the schedule where every agent reads it. Use it when running `ref/mkt/annual-marketing-plan` and `ref/mkt/content-calendar`.
---
name: build-the-calendar
description: Lays the agreed work across the period with a format, an owning agent and a date on each item, and publishes the schedule where every agent reads it. Use it when running `ref/mkt/annual-marketing-plan` and `ref/mkt/content-calendar`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Build the calendar

## What it does

Lays the agreed work across the period with a format, an owning agent
and a date on each item, and publishes the schedule where every agent
reads it.

## Where it happens

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

- **Build the Calendar**
  - `ref/mkt/annual-marketing-plan`, activity 11 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
- **Draft the Calendar**
  - `ref/mkt/content-calendar`, activity 10 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
- **Publish the Calendar**
  - `ref/mkt/content-calendar`, activity 12 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/collect-what-every-area-puts-forward/SKILL.mdSends one request in one format with one due date to every area or agent, and gathers what comes back into a single list. Use it when running `ref/mkt/annual-marketing-plan` and 4 other reference processes.
---
name: collect-what-every-area-puts-forward
description: Sends one request in one format with one due date to every area or agent, and gathers what comes back into a single list. Use it when running `ref/mkt/annual-marketing-plan` and 4 other reference processes.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Collect what every area puts forward

## What it does

Sends one request in one format with one due date to every area or
agent, and gathers what comes back into a single list.

## Where it happens

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

- **Ask Each Area What It Would Change**
  - `ref/mkt/quarterly-business-review`, activity 8 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Collect What Each Function Asks For**
  - `ref/mkt/set-marketing-budget`, activity 4 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)
- **Collect What the Plan Must Carry**
  - `ref/mkt/media-plan`, activity 2 -
    [Develop Media Plan](../../../../processes/marketing/media-plan.md)
- **Collect the Candidate Initiatives**
  - `ref/mkt/annual-marketing-plan`, activity 6 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
- **Collect the Topic Candidates**
  - `ref/mkt/content-calendar`, activity 4 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/hand-the-work-to-the-agents-that-act/SKILL.mdPasses a settled thing to each agent that has to act on it and takes back what each one says it will change. Use it when running `ref/mkt/buyer-persona` and 6 other reference processes.
---
name: hand-the-work-to-the-agents-that-act
description: Passes a settled thing to each agent that has to act on it and takes back what each one says it will change. Use it when running `ref/mkt/buyer-persona` and 6 other reference processes.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Hand the work to the agents that act

## What it does

Passes a settled thing to each agent that has to act on it and takes
back what each one says it will change.

## Where it happens

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

- **Hand It to the Campaign**
  - `ref/mkt/landing-page`, activity 12 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
- **Hand over the Approved Topics**
  - `ref/mkt/content-calendar`, activity 14 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
- **Hand over the Commitments**
  - `ref/mkt/prioritize-initiatives`, activity 15 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Hand over the Map**
  - `ref/mkt/map-buyer-journey`, activity 17 -
    [Map Buyer Journey](../../../../processes/marketing/map-buyer-journey.md)
- **Hand over the Persona**
  - `ref/mkt/buyer-persona`, activity 18 -
    [Develop Buyer Persona](../../../../processes/marketing/buyer-persona.md)
- **Hand the Strategy to the Work that Follows**
  - `ref/mkt/develop-marketing-strategy`, activity 15 -
    [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md)
- **Tell Every Function What It Has**
  - `ref/mkt/set-marketing-budget`, activity 14 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/handle-a-change-to-a-live-page/SKILL.mdTakes a change against a page that is already live, works out whether it is a small edit or needs a bigger run and who has to sign it, makes the change the request or the numbers call for, and closes it when the requester agrees. Use it when running `ref/mkt/landing-page` and `ref/mkt/website-content-update`.
---
name: handle-a-change-to-a-live-page
description: Takes a change against a page that is already live, works out whether it is a small edit or needs a bigger run and who has to sign it, makes the change the request or the numbers call for, and closes it when the requester agrees. Use it when running `ref/mkt/landing-page` and `ref/mkt/website-content-update`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Handle a change to a live page

## What it does

Takes a change against a page that is already live, works out whether it
is a small edit or needs a bigger run and who has to sign it, makes the
change the request or the numbers call for, and closes it when the
requester agrees.

## Where it happens

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

- **Close out the Change**
  - `ref/mkt/website-content-update`, activity 12 -
    [Update Website Content](../../../../processes/marketing/website-content-update.md)
- **Fix What the Numbers Show**
  - `ref/mkt/landing-page`, activity 14 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
- **Route the Change**
  - `ref/mkt/website-content-update`, activity 3 -
    [Update Website Content](../../../../processes/marketing/website-content-update.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/inventory-what-is-already-published/SKILL.mdGoes across what is already published and what readers keep asking, and pulls it into one list, so it is clear which piece answers which question and what has nothing behind it. Use it when running `ref/mkt/map-buyer-journey` and `ref/mkt/moderate-community`.
---
name: inventory-what-is-already-published
description: Goes across what is already published and what readers keep asking, and pulls it into one list, so it is clear which piece answers which question and what has nothing behind it. Use it when running `ref/mkt/map-buyer-journey` and `ref/mkt/moderate-community`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Inventory what is already published

## What it does

Goes across what is already published and what readers keep asking, and
pulls it into one list, so it is clear which piece answers which
question and what has nothing behind it.

## Where it happens

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

- **Group the Recurring Questions**
  - `ref/mkt/moderate-community`, activity 11 -
    [Moderate User Community](../../../../processes/marketing/moderate-community.md)
- **Inventory the Content against the Map**
  - `ref/mkt/map-buyer-journey`, activity 12 -
    [Map Buyer Journey](../../../../processes/marketing/map-buyer-journey.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/proof-it-before-it-goes-out/SKILL.mdReads test copies the way a reader will get them and finds what is wrong while it can still be fixed. Use it when running `ref/mkt/customer-newsletter`.
---
name: proof-it-before-it-goes-out
description: Reads test copies the way a reader will get them and finds what is wrong while it can still be fixed. Use it when running `ref/mkt/customer-newsletter`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Proof it before it goes out

## What it does

Reads test copies the way a reader will get them and finds what is wrong
while it can still be fixed.

## Where it happens

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

- **Proof the Issue**
  - `ref/mkt/customer-newsletter`, activity 11 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/publish-when-the-owner-says-go/SKILL.mdPuts the work live or sends it out once the named owner says go, and records what went out and when. Use it when running `ref/mkt/customer-case-study` and 5 other reference processes.
---
name: publish-when-the-owner-says-go
description: Puts the work live or sends it out once the named owner says go, and records what went out and when. Use it when running `ref/mkt/customer-case-study` and 5 other reference processes.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Publish when the owner says go

## What it does

Puts the work live or sends it out once the named owner says go, and
records what went out and when.

## Where it happens

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

- **Publish**
  - `ref/mkt/customer-case-study`, activity 18 -
    [Produce Customer Case Study](../../../../processes/marketing/customer-case-study.md)
  - `ref/mkt/landing-page`, activity 11 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
  - `ref/mkt/long-form-content`, activity 14 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)
- **Publish the Change**
  - `ref/mkt/website-content-update`, activity 11 -
    [Update Website Content](../../../../processes/marketing/website-content-update.md)
- **Publish the Changes**
  - `ref/mkt/refresh-content`, activity 19 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)
- **Send the Issue**
  - `ref/mkt/customer-newsletter`, activity 13 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/record-what-was-learned/SKILL.mdWrites down what is worth repeating next time and what to avoid, so the next run starts from it. Use it when running `ref/mkt/customer-case-study` and 3 other reference processes.
---
name: record-what-was-learned
description: Writes down what is worth repeating next time and what to avoid, so the next run starts from it. Use it when running `ref/mkt/customer-case-study` and 3 other reference processes.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Record what was learned

## What it does

Writes down what is worth repeating next time and what to avoid, so the
next run starts from it.

## Where it happens

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

- **Record What Was Learned**
  - `ref/mkt/customer-case-study`, activity 21 -
    [Produce Customer Case Study](../../../../processes/marketing/customer-case-study.md)
  - `ref/mkt/customer-newsletter`, activity 17 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)
  - `ref/mkt/landing-page`, activity 15 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
  - `ref/mkt/long-form-content`, activity 18 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/report-how-it-did/SKILL.mdSets the results against what the work promised and writes the account of it, then has the agents it names confirm the account is accurate before it goes out. Use it when running `ref/mkt/customer-newsletter`, `ref/mkt/long-form-content` and `ref/mkt/marketing-performance-report`.
---
name: report-how-it-did
description: Sets the results against what the work promised and writes the account of it, then has the agents it names confirm the account is accurate before it goes out. Use it when running `ref/mkt/customer-newsletter`, `ref/mkt/long-form-content` and `ref/mkt/marketing-performance-report`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Report how it did

## What it does

Sets the results against what the work promised and writes the account
of it, then has the agents it names confirm the account is accurate
before it goes out.

## Where it happens

The agent does this in four activities across three 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)
- **Check the Account**
  - `ref/mkt/marketing-performance-report`, activity 12 -
    [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md)
- **Report How the Piece Did**
  - `ref/mkt/long-form-content`, activity 17 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)
- **Report the Results**
  - `ref/mkt/customer-newsletter`, activity 16 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/repurpose-published-material/SKILL.mdTurns material that already exists into new pieces, clips, posts and pages. Use it when running `ref/mkt/user-conference`.
---
name: repurpose-published-material
description: Turns material that already exists into new pieces, clips, posts and pages. Use it when running `ref/mkt/user-conference`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Repurpose published material

## What it does

Turns material that already exists into new pieces, clips, posts and
pages.

## Where it happens

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

- **Repurpose the Content**
  - `ref/mkt/user-conference`, activity 15 -
    [Host User Conference](../../../../processes/marketing/user-conference.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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-what-the-piece-carries/SKILL.mdSettles what the piece argues, the order it argues it in, and which items it carries. Use it when running `ref/mkt/customer-case-study`, `ref/mkt/customer-newsletter` and `ref/mkt/long-form-content`.
---
name: settle-what-the-piece-carries
description: Settles what the piece argues, the order it argues it in, and which items it carries. Use it when running `ref/mkt/customer-case-study`, `ref/mkt/customer-newsletter` and `ref/mkt/long-form-content`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Settle what the piece carries

## What it does

Settles what the piece argues, the order it argues it in, and which
items it carries.

## Where it happens

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

- **Agree What the Story Argues**
  - `ref/mkt/customer-case-study`, activity 9 -
    [Produce Customer Case Study](../../../../processes/marketing/customer-case-study.md)
- **Agree the Outline**
  - `ref/mkt/long-form-content`, activity 5 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)
- **Settle the Lineup**
  - `ref/mkt/customer-newsletter`, activity 2 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/take-in-the-request/SKILL.mdTakes a request for a piece and settles what it has to do, who it is for, what it asks a reader to do, and the date it is due. Use it when running `ref/mkt/customer-newsletter` and 3 other reference processes.
---
name: take-in-the-request
description: Takes a request for a piece and settles what it has to do, who it is for, what it asks a reader to do, and the date it is due. Use it when running `ref/mkt/customer-newsletter` and 3 other reference processes.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Take in the request

## What it does

Takes a request for a piece and settles what it has to do, who it is
for, what it asks a reader to do, and the date it is due.

## Where it happens

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

- **Open the Issue**
  - `ref/mkt/customer-newsletter`, activity 1 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)
- **Set the Parameters**
  - `ref/mkt/landing-page`, activity 2 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
- **Take in the Request**
  - `ref/mkt/landing-page`, activity 1 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
  - `ref/mkt/website-content-update`, activity 1 -
    [Update Website Content](../../../../processes/marketing/website-content-update.md)
- **Take in the Topic**
  - `ref/mkt/long-form-content`, activity 1 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/watch-what-happens-after-it-is-live/SKILL.mdReads what happens once the work is live, covering how many people arrive, what they do next, and how that compares with before, and keeps reporting it against the goal that was set. Use it when running `ref/mkt/customer-case-study` and 4 other reference processes.
---
name: watch-what-happens-after-it-is-live
description: Reads what happens once the work is live, covering how many people arrive, what they do next, and how that compares with before, and keeps reporting it against the goal that was set. Use it when running `ref/mkt/customer-case-study` and 4 other reference processes.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Watch what happens after it is live

## What it does

Reads what happens once the work is live, covering how many people
arrive, what they do next, and how that compares with before, and keeps
reporting it against the goal that was set.

## Where it happens

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

- **Watch It Convert**
  - `ref/mkt/landing-page`, activity 13 -
    [Publish Landing Page](../../../../processes/marketing/landing-page.md)
- **Watch Performance**
  - `ref/mkt/customer-case-study`, activity 20 -
    [Produce Customer Case Study](../../../../processes/marketing/customer-case-study.md)
  - `ref/mkt/long-form-content`, activity 16 -
    [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md)
- **Watch What the Changes Did**
  - `ref/mkt/refresh-content`, activity 20 -
    [Refresh Published Content](../../../../processes/marketing/refresh-content.md)
- **Watch the Results**
  - `ref/mkt/customer-newsletter`, activity 14 -
    [Publish Customer Newsletter](../../../../processes/marketing/customer-newsletter.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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/work-out-what-the-makers-can-carry/SKILL.mdWorks out how much work the makers can take on in the period. Use it when running `ref/mkt/content-calendar`, `ref/mkt/plan-marketing-capacity` and `ref/mkt/prioritize-initiatives`.
---
name: work-out-what-the-makers-can-carry
description: Works out how much work the makers can take on in the period. Use it when running `ref/mkt/content-calendar`, `ref/mkt/plan-marketing-capacity` and `ref/mkt/prioritize-initiatives`.
license: CC-BY-4.0
metadata:
  agent: content-manager
  agent-version: "1"
---

# Work out what the makers can carry

## What it does

Works out how much work the makers can take on in the period. It breaks
the demand into the runs it is actually made of, counts what is already
committed, sizes what each run costs to make, says what is still free,
and names what in flight has to stop or wait when something new takes
its place.

## Where it happens

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

- **Break the Work into Activities**
  - `ref/mkt/plan-marketing-capacity`, activity 3 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **List What Is Already Committed**
  - `ref/mkt/content-calendar`, activity 3 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
- **List the Committed Work**
  - `ref/mkt/plan-marketing-capacity`, activity 2 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Settle What Gets Displaced**
  - `ref/mkt/prioritize-initiatives`, activity 12 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Size the Production Capacity**
  - `ref/mkt/content-calendar`, activity 7 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
- **Work out What Is Free**
  - `ref/mkt/prioritize-initiatives`, activity 5 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)

## What to record

The request as it was accepted, with the date the piece promised and
what the piece is meant to accomplish. The CONVENED and DONE records of
everything it convenes. The publish record, naming who said go and which
version went live. The performance readout at the cadence the process
sets, and the decision it made after reading that readout: leave the
piece alone, update it, or retire it.

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 4 roles, and the access level beside each one is the most the work needs.

content-plan-and-its-schedule · writeasset-store · readcms · readanalytics · 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": {
    "content-plan-and-its-schedule": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/content-plan-and-its-schedule"
    },
    "asset-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/asset-store"
    },
    "cms": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/cms"
    },
    "analytics": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/analytics"
    }
  }
}

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

20 processes, 64 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

Collect the Candidate Initiatives · Build the Calendar · Brief the Department

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

Brief the Agents that Write to It

Develop Buyer Personaref/mkt/buyer-persona · 20 activities
1234567891011121314151617181920

Hand over the Persona

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

List What Is Already Committed · Collect the Topic Candidates · Size the Production Capacity · Draft the Calendar · Publish the Calendar · Brief the Department · Hand over the Approved Topics

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

Brief the Story · Agree What the Story Argues · Publish · Watch Performance · Record What Was Learned

Publish Customer Newsletterref/mkt/customer-newsletter · 17 activities
1234567891011121314151617

Open the Issue · Settle the Lineup · Brief the Makers · Proof the Issue · Send the Issue · Watch the Results · Report the Results · Record What Was Learned

Develop Marketing Strategyref/mkt/develop-marketing-strategy · 17 activities
1234567891011121314151617

Hand the Strategy to the Work that Follows

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

Take in the Request · Set the Parameters · Brief the Makers · Publish · Hand It to the Campaign · Watch It Convert · Fix What the Numbers Show · Record What Was Learned

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

Take in the Topic · Brief the Piece · Agree the Outline · Publish · Watch Performance · Report How the Piece Did · Record What Was Learned

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

Inventory the Content against the Map · Hand over the Map

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

Account for the Published Pieces · Check the Account

Develop Media Planref/mkt/media-plan · 14 activities
1234567891011121314

Collect What the Plan Must Carry

Moderate User Communityref/mkt/moderate-community · 15 activities
123456789101112131415

Group the Recurring Questions

Plan Marketing Capacityref/mkt/plan-marketing-capacity · 15 activities
123456789101112131415

List the Committed Work · Break the Work into Activities

Prioritize Marketing Initiativesref/mkt/prioritize-initiatives · 16 activities
12345678910111213141516

Work out What Is Free · Settle What Gets Displaced · Hand over the Commitments

Conduct Quarterly Business Reviewref/mkt/quarterly-business-review · 16 activities
12345678910111213141516

Ask Each Area What It Would Change · Brief the Department

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

Brief the Pages in the Cycle · Publish the Changes · Watch What the Changes Did

Set Marketing Budgetref/mkt/set-marketing-budget · 15 activities
123456789101112131415

Collect What Each Function Asks For · Tell Every Function What It Has

Host User Conferenceref/mkt/user-conference · 17 activities
1234567891011121314151617

Repurpose the Content

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

Take in the Request · Route the Change · Publish the Change · Close out the Change

The records it leaves

What it writes down

The request as it was accepted, with the date the piece promised and what the piece is meant to accomplish. The CONVENED and DONE records of everything it convenes. The publish record, naming who said go and which version went live. The performance readout at the cadence the process sets, and the decision it made after reading that readout: leave the piece alone, update it, or retire it.

Where it stops

What it will not do

Does not write, research, edit, or design the piece. Does not build the page or push it live - that is the web-producer agent, which acts on this agent's go. Does not put the measurement on the page, which is the conversion-tracker agent. Does not sign anything. Does not run the campaign a piece may sit inside, because one campaign can call for several pieces and each piece gets its own run of this agent. Does not own the department's report for a reporting period - that is the reporting-manager agent, and this agent answers for one piece.

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: content-manager 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.

  • CHAP Coordinator MCP server · brightbeamai.github.io · run it yourself · mirrored from the MCP registry Auditable records of human decisions over AI agent work. Approvals, edits, overrides, escalations.
  • cms MCP server · writavo.com · run it yourself · mirrored from the MCP registry Draft, edit, organise, schedule and publish a Writavo Site content from any AI assistant.
  • Terrarium MCP server · nelsonsantryhkd.github.io · hosted · mirrored from the MCP registry Human visual review for agent-built HTML: publish artifacts, pull anchored comments, push fixes.