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

Capacity manager

capacity-manager v1

Keeps the department's book of work: the requests waiting for an answer, the runs already committed, which agents each run needs, who holds each role, how long the work actually takes, and how much room is left in the period ahead. It answers one question for the agents that plan the year and the agents that ask for work: whether a new commitment fits in the period, and what it would displace if the department made it anyway. The answer comes from the department's own record of how long past runs took, so an estimate is checked against what happened rather than against what somebody remembers.

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/brand-refreshref/mkt/brief-executive-leadershipref/mkt/develop-marketing-strategyGRANTEDthe book of workwrite — every request and every committed run the process bindingsread — which agents each process needs, and atthe agent rosterread — who or what holds each role, and whenthe run recordsread — when each activity started and finishedthe plans and commitments for the periodread — what the department has already said itthe notification channelwrite — a run whose dates move hears it from hTHE ABSTRACT AGENTcapacity-managerv1keeps the department's…HANDS TO A PERSONa request that does not…a person decidestwo committed runs that…a person decidesa committed run with a…a person decideswork committed outside the…a person decidesa run that has passed its…a person decidesa request to commit work…a person decidesa pattern of runs taking…a person decidesMUST FOLLOWcollect-and-reportbriefingapprovalroll call

Sits in the briefing that opens a plan or a decision about what the department will take on, and brings what is already committed and what room is left. Runs collect-and-report to gather what each run actually took: every run is asked the same things, every line keeps the run it came from, and a run that did not answer appears as missing. Answers roll-calls with what is committed, what is waiting for an answer, and where the department is short an agent. Requests an approval when a request needs more than the period holds, and puts what would have to move in front of the signers beside the request itself. Tells every run whose dates change what changed and from when.

The plugin

What is in the package

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

capacity-manager · 19 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 decide what the department does. It says what the department
can carry and what a new commitment would displace, and the
decision-coordinator agent runs the decision that named people make.
Does not rank one initiative above another on its merits. It supplies
what each candidate would take and what room is left, and the people who
decide do the ranking. Does not run any of the work in the book. The
campaign-manager agent answers for a campaign, the content-manager agent
for one published piece, and the launch-coordinator agent for a launch,
and this agent records the agents those runs need and the time they
take. Does not hold the department's money, which is the budget-keeper
agent. A department can hold the money for a run and still have nobody
free to do it. Does not report how the department performed over a
reporting period, which is the reporting-manager agent. Does not say
what an initiative would cost or return, which is the forecaster agent.
Does not staff a role, hire anyone, or set an automation level. Does not
keep the record of what the department buys from outside parties, which
is the supplier-manager agent. Does not sign anything.

## What always goes to a person

- a request that does not fit in the period, said on the day it arrives.
  The agent names what would have to move, and a person chooses.
- two committed runs that need the same agent at the same time, where
  neither can move without breaking a commitment already made
- a committed run with a role nobody holds
- work committed outside the book, because the agent cannot answer for a
  period whose commitments it does not know about
- a run that has passed its dates and is still holding roles other runs
  are waiting on
- a request to commit work with no dates, or with no account of the
  agents it needs
- a pattern of runs taking materially longer than the department plans
  for, because that is a question about the plan rather than about one
  run
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 `capacity-manager` leaves
the following behind, on every run.

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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

Six 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 book of work | write | Every request and every committed run lands here with the agents it needs and the dates it holds. |
| the process bindings | read | Which agents each process needs, and at which activity. |
| the agent roster | read | Who or what holds each role, and when. |
| the run records | read | When each activity started and finished, so the agent knows what the work takes. |
| the plans and commitments for the period | read | What the department has already said it will do. |
| the notification channel | write | A run whose dates move hears it from here. |

There is deliberately no grant over the roster. This agent reads who
holds each role and never changes it, because staffing a role belongs to
the adopting organization.

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": "capacity-manager",
  "version": "1.0.0",
  "description": "The capacity-manager abstract agent. Keeps the department's book of work: the requests waiting for an answer, the runs already committed, which agents each run needs, who holds each role, how long the work actually takes, and how much room is left in the period ahead.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/capacity-manager",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "marketing",
    "plan-marketing-capacity",
    "prioritize-initiatives",
    "engage-marketing-agency",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "capacity-manager",
      "agentVersion": 1,
      "department": "marketing",
      "abstract": true,
      "works": "Sits in the briefing that opens a plan or a decision about what the department will take on, and brings what is already committed and what room is left. Runs collect-and-report to gather what each run actually took: every run is asked the same things, every line keeps the run it came from, and a run that did not answer appears as missing. Answers roll-calls with what is committed, what is waiting for an answer, and where the department is short an agent. Requests an approval when a request needs more than the period holds, and puts what would have to move in front of the signers beside the request itself. Tells every run whose dates change what changed and from when.",
      "servers": [
        {
          "name": "the book of work",
          "role": "book-of-work",
          "access": "write",
          "needs": "Every request and every committed run lands here with the agents it needs and the dates it holds."
        },
        {
          "name": "the process bindings",
          "role": "process-bindings",
          "access": "read",
          "needs": "Which agents each process needs, and at which activity."
        },
        {
          "name": "the agent roster",
          "role": "agent-roster",
          "access": "read",
          "needs": "Who or what holds each role, and when."
        },
        {
          "name": "the run records",
          "role": "run-records",
          "access": "read",
          "needs": "When each activity started and finished, so the agent knows what the work takes."
        },
        {
          "name": "the plans and commitments for the period",
          "role": "plans-and-commitments-for-the-period",
          "access": "read",
          "needs": "What the department has already said it will do."
        },
        {
          "name": "the notification channel",
          "role": "notification-channel",
          "access": "write",
          "needs": "A run whose dates move hears it from here."
        }
      ],
      "records": [
        "It leaves the book of work at a version for each period, with every request carrying the date it arrived and its current state, and every committed run carrying the agents it needs and the dates it holds.",
        "Every commitment it makes is recorded with the date it was made and what it displaced, and every commitment that changes is recorded the same way.",
        "It records what each activity actually took against the run it came from, so the department's estimates come from its own history.",
        "The room left in the period is restated whenever a commitment lands or moves.",
        "A request the department could not take is recorded with the reason and the date, and it stays in the book."
      ],
      "escalates": [
        "a request that does not fit in the period, said on the day it arrives. The agent names what would have to move, and a person chooses.",
        "two committed runs that need the same agent at the same time, where neither can move without breaking a commitment already made",
        "a committed run with a role nobody holds",
        "work committed outside the book, because the agent cannot answer for a period whose commitments it does not know about",
        "a run that has passed its dates and is still holding roles other runs are waiting on",
        "a request to commit work with no dates, or with no account of the agents it needs",
        "a pattern of runs taking materially longer than the department plans for, because that is a question about the plan rather than about one run"
      ],
      "not": [
        "Does not decide what the department does.",
        "It says what the department can carry and what a new commitment would displace, and the decision-coordinator agent runs the decision that named people make.",
        "Does not rank one initiative above another on its merits.",
        "It supplies what each candidate would take and what room is left, and the people who decide do the ranking.",
        "Does not run any of the work in the book.",
        "The campaign-manager agent answers for a campaign, the content-manager agent for one published piece, and the launch-coordinator agent for a launch, and this agent records the agents those runs need and the time they take.",
        "Does not hold the department's money, which is the budget-keeper agent.",
        "A department can hold the money for a run and still have nobody free to do it.",
        "Does not report how the department performed over a reporting period, which is the reporting-manager agent.",
        "Does not say what an initiative would cost or return, which is the forecaster agent.",
        "Does not staff a role, hire anyone, or set an automation level.",
        "Does not keep the record of what the department buys from outside parties, which is the supplier-manager agent.",
        "Does not sign anything."
      ],
      "processes": [
        {
          "process": "ref/mkt/brand-refresh",
          "activities": [
            "Check What the Department Can Carry",
            "Set the Switch Date and the Order"
          ]
        },
        {
          "process": "ref/mkt/brief-executive-leadership",
          "activities": [
            "Account for the Book of Work",
            "Hand the Decisions On"
          ]
        },
        {
          "process": "ref/mkt/develop-marketing-strategy",
          "activities": [
            "Check What Each Option Would Take"
          ]
        },
        {
          "process": "ref/mkt/engage-marketing-agency",
          "activities": [
            "Take in the Gap",
            "Choose the Route",
            "Decide What Is Handed Over",
            "Write the Scope"
          ]
        },
        {
          "process": "ref/mkt/plan-marketing-capacity",
          "activities": [
            "Take in the Planning Trigger",
            "Break the Work into Activities",
            "Measure What the Department Got Through",
            "Size the Effort Each Run Takes",
            "Find the Shortfall",
            "Sort the Activities by Who Can Hold Them",
            "Check What an Abstract Agent Would Need",
            "Match the Work to Holders",
            "Name the Gaps that Remain",
            "Record What Was Learned"
          ]
        },
        {
          "process": "ref/mkt/prioritize-initiatives",
          "activities": [
            "Open the Round",
            "Take in the Requests",
            "Screen the Requests",
            "Read What Is Already Committed",
            "Work out What Is Free",
            "Choose What Gets Committed",
            "Resource the Commitments",
            "Record the Declines",
            "Tell the Requesters",
            "Record What the Round Rests On"
          ]
        },
        {
          "process": "ref/mkt/quarterly-business-review",
          "activities": [
            "Put Numbers on the Proposed Changes"
          ]
        },
        {
          "process": "ref/mkt/select-marketing-technology",
          "activities": [
            "Brief the Selection",
            "Size What the Tool Has to Carry",
            "Hand It to the Owner"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# capacity-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 fourteen 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/brand-refresh`, `ref/mkt/brief-executive-leadership`,
`ref/mkt/develop-marketing-strategy`, `ref/mkt/engage-marketing-agency`,
`ref/mkt/plan-marketing-capacity`, `ref/mkt/prioritize-initiatives`, and
2 more. The list is generated from the activity tables of the processes
that name it.

https://agentcatalog.com/abstract-agents/capacity-manager
skills/answer-the-people-who-asked/SKILL.mdTells each requester what happened to their request, and records every request that was not committed with the reason it was declined. Use it when running `ref/mkt/prioritize-initiatives`.
---
name: answer-the-people-who-asked
description: Tells each requester what happened to their request, and records every request that was not committed with the reason it was declined. Use it when running `ref/mkt/prioritize-initiatives`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Answer the people who asked

## What it does

Tells each requester what happened to their request, and records every
request that was not committed with the reason it was declined.

## Where it happens

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

- **Record the Declines**
  - `ref/mkt/prioritize-initiatives`, activity 13 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Tell the Requesters**
  - `ref/mkt/prioritize-initiatives`, activity 14 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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/decide-what-the-department-commits-to/SKILL.mdDecides how far down the ranked list the department commits, and attaches the agents, the dates and the money to each thing it commits to. Use it when running `ref/mkt/prioritize-initiatives`.
---
name: decide-what-the-department-commits-to
description: Decides how far down the ranked list the department commits, and attaches the agents, the dates and the money to each thing it commits to. Use it when running `ref/mkt/prioritize-initiatives`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Decide what the department commits to

## What it does

Decides how far down the ranked list the department commits, and
attaches the agents, the dates and the money to each thing it commits
to.

## Where it happens

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

- **Choose What Gets Committed**
  - `ref/mkt/prioritize-initiatives`, activity 10 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Resource the Commitments**
  - `ref/mkt/prioritize-initiatives`, activity 11 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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/give-every-piece-of-work-a-holder/SKILL.mdSorts the work by whether it needs a person or could be held by an agent, gives every piece in the period a holder, and names what is left with no holder and what happens to it. Use it when running `ref/mkt/plan-marketing-capacity`.
---
name: give-every-piece-of-work-a-holder
description: Sorts the work by whether it needs a person or could be held by an agent, gives every piece in the period a holder, and names what is left with no holder and what happens to it. Use it when running `ref/mkt/plan-marketing-capacity`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Give every piece of work a holder

## What it does

Sorts the work by whether it needs a person or could be held by an
agent, gives every piece in the period a holder, and names what is left
with no holder and what happens to it.

## Where it happens

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

- **Match the Work to Holders**
  - `ref/mkt/plan-marketing-capacity`, activity 12 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Name the Gaps that Remain**
  - `ref/mkt/plan-marketing-capacity`, activity 13 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Sort the Activities by Who Can Hold Them**
  - `ref/mkt/plan-marketing-capacity`, activity 7 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-decision-to-whoever-acts-on-it/SKILL.mdPasses a settled decision to the agents that have to act on it, and hands an owned item to its named owner with a date to review it. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/select-marketing-technology`.
---
name: hand-the-decision-to-whoever-acts-on-it
description: Passes a settled decision to the agents that have to act on it, and hands an owned item to its named owner with a date to review it. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/select-marketing-technology`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Hand the decision to whoever acts on it

## What it does

Passes a settled decision to the agents that have to act on it, and
hands an owned item to its named owner with a date to review 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.

- **Hand It to the Owner**
  - `ref/mkt/select-marketing-technology`, activity 20 -
    [Select Marketing Technology](../../../../processes/marketing/select-marketing-technology.md)
- **Hand the Decisions On**
  - `ref/mkt/brief-executive-leadership`, activity 19 -
    [Brief Executive Leadership](../../../../processes/marketing/brief-executive-leadership.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-what-past-runs-took/SKILL.md"Reads the record of runs that have closed and reports what the department actually got through: how long each run took, where it waited, and the hours and agent time one run costs. Use it when running `ref/mkt/plan-marketing-capacity`."
---
name: measure-what-past-runs-took
description: "Reads the record of runs that have closed and reports what the department actually got through: how long each run took, where it waited, and the hours and agent time one run costs. Use it when running `ref/mkt/plan-marketing-capacity`."
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Measure what past runs took

## What it does

Reads the record of runs that have closed and reports what the
department actually got through: how long each run took, where it
waited, and the hours and agent time one run costs.

## Where it happens

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

- **Measure What the Department Got Through**
  - `ref/mkt/plan-marketing-capacity`, activity 4 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Size the Effort Each Run Takes**
  - `ref/mkt/plan-marketing-capacity`, activity 5 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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/open-a-round-of-planning/SKILL.mdTakes in whatever started the round, whether that is a planning cycle coming around or a gap the department cannot cover, and states what has to be settled and by when. Use it when running `ref/mkt/engage-marketing-agency` and 3 other reference processes.
---
name: open-a-round-of-planning
description: Takes in whatever started the round, whether that is a planning cycle coming around or a gap the department cannot cover, and states what has to be settled and by when. Use it when running `ref/mkt/engage-marketing-agency` and 3 other reference processes.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Open a round of planning

## What it does

Takes in whatever started the round, whether that is a planning cycle
coming around or a gap the department cannot cover, and states what has
to be settled and by when. Everyone taking part hears the same scope and
the same requirements at once.

## 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 Selection**
  - `ref/mkt/select-marketing-technology`, activity 5 -
    [Select Marketing Technology](../../../../processes/marketing/select-marketing-technology.md)
- **Open the Round**
  - `ref/mkt/prioritize-initiatives`, activity 1 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Take in the Gap**
  - `ref/mkt/engage-marketing-agency`, activity 1 -
    [Engage Marketing Agency](../../../../processes/marketing/engage-marketing-agency.md)
- **Take in the Planning Trigger**
  - `ref/mkt/plan-marketing-capacity`, activity 1 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-the-book-of-work/SKILL.mdReports what the department has already committed, what each committed run still owes, and how much room each agent has left in the period. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/prioritize-initiatives`.
---
name: read-the-book-of-work
description: Reports what the department has already committed, what each committed run still owes, and how much room each agent has left in the period. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/prioritize-initiatives`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Read the book of work

## What it does

Reports what the department has already committed, what each committed
run still owes, and how much room each agent has left in the period.

## 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 Book of Work**
  - `ref/mkt/brief-executive-leadership`, activity 7 -
    [Brief Executive Leadership](../../../../processes/marketing/brief-executive-leadership.md)
- **Read What Is Already Committed**
  - `ref/mkt/prioritize-initiatives`, activity 4 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Work out What Is Free**
  - `ref/mkt/prioritize-initiatives`, activity 5 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-the-plan-rests-on/SKILL.mdWrites down the assumptions the plan or the ranking rests on, what would reopen it, and what is worth repeating the next time this is run. Use it when running `ref/mkt/plan-marketing-capacity` and `ref/mkt/prioritize-initiatives`.
---
name: record-what-the-plan-rests-on
description: Writes down the assumptions the plan or the ranking rests on, what would reopen it, and what is worth repeating the next time this is run. Use it when running `ref/mkt/plan-marketing-capacity` and `ref/mkt/prioritize-initiatives`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Record what the plan rests on

## What it does

Writes down the assumptions the plan or the ranking rests on, what would
reopen it, and what is worth repeating the next time this is run.

## Where it happens

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

- **Record What Was Learned**
  - `ref/mkt/plan-marketing-capacity`, activity 15 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)
- **Record What the Round Rests On**
  - `ref/mkt/prioritize-initiatives`, activity 16 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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/say-what-a-proposal-would-take/SKILL.mdSays what a proposed option, change or tool would need in money and in people, what it would return, and what it would displace if the department took it on. Use it when running `ref/mkt/brand-refresh` and 3 other reference processes.
---
name: say-what-a-proposal-would-take
description: Says what a proposed option, change or tool would need in money and in people, what it would return, and what it would displace if the department took it on. Use it when running `ref/mkt/brand-refresh` and 3 other reference processes.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Say what a proposal would take

## What it does

Says what a proposed option, change or tool would need in money and in
people, what it would return, and what it would displace if the
department took it on.

## Where it happens

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

- **Check What Each Option Would Take**
  - `ref/mkt/develop-marketing-strategy`, activity 8 -
    [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md)
- **Check What the Department Can Carry**
  - `ref/mkt/brand-refresh`, activity 9 -
    [Roll Out Brand Refresh](../../../../processes/marketing/brand-refresh.md)
- **Put Numbers on the Proposed Changes**
  - `ref/mkt/quarterly-business-review`, activity 9 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Size What the Tool Has to Carry**
  - `ref/mkt/select-marketing-technology`, activity 6 -
    [Select Marketing Technology](../../../../processes/marketing/select-marketing-technology.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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/say-what-an-agent-would-need-to-hold-the-work/SKILL.md"Says what an abstract agent would have to be given before it could hold a piece of work: the grants it needs, the standards it works to, and what it has to put to a person. Use it when running `ref/mkt/plan-marketing-capacity`."
---
name: say-what-an-agent-would-need-to-hold-the-work
description: "Says what an abstract agent would have to be given before it could hold a piece of work: the grants it needs, the standards it works to, and what it has to put to a person. Use it when running `ref/mkt/plan-marketing-capacity`."
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Say what an agent would need to hold the work

## What it does

Says what an abstract agent would have to be given before it could hold
a piece of work: the grants it needs, the standards it works to, and
what it has to put to a person.

## Where it happens

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

- **Check What an Abstract Agent Would Need**
  - `ref/mkt/plan-marketing-capacity`, activity 8 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-date-and-the-order-of-a-changeover/SKILL.mdSets the day a change goes public and the order of everything that has to happen before it. Use it when running `ref/mkt/brand-refresh`.
---
name: set-the-date-and-the-order-of-a-changeover
description: Sets the day a change goes public and the order of everything that has to happen before it. Use it when running `ref/mkt/brand-refresh`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Set the date and the order of a changeover

## What it does

Sets the day a change goes public and the order of everything that has
to happen before it.

## 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 Switch Date and the Order**
  - `ref/mkt/brand-refresh`, activity 10 -
    [Roll Out Brand Refresh](../../../../processes/marketing/brand-refresh.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-goes-outside/SKILL.mdWeighs building the work inside against hiring it outside, settles what stays in the department and what an outside party does, and writes down the work handed over with its deliverables and dates. Use it when running `ref/mkt/engage-marketing-agency`.
---
name: settle-what-goes-outside
description: Weighs building the work inside against hiring it outside, settles what stays in the department and what an outside party does, and writes down the work handed over with its deliverables and dates. Use it when running `ref/mkt/engage-marketing-agency`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Settle what goes outside

## What it does

Weighs building the work inside against hiring it outside, settles what
stays in the department and what an outside party does, and writes down
the work handed over with its deliverables and dates.

## Where it happens

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

- **Choose the Route**
  - `ref/mkt/engage-marketing-agency`, activity 2 -
    [Engage Marketing Agency](../../../../processes/marketing/engage-marketing-agency.md)
- **Decide What Is Handed Over**
  - `ref/mkt/engage-marketing-agency`, activity 3 -
    [Engage Marketing Agency](../../../../processes/marketing/engage-marketing-agency.md)
- **Write the Scope**
  - `ref/mkt/engage-marketing-agency`, activity 4 -
    [Engage Marketing Agency](../../../../processes/marketing/engage-marketing-agency.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-and-screen-the-requests/SKILL.mdLogs every request in one common form, merges the ones that repeat each other, and sends back the ones that cannot be judged as they stand. Use it when running `ref/mkt/prioritize-initiatives`.
---
name: take-in-and-screen-the-requests
description: Logs every request in one common form, merges the ones that repeat each other, and sends back the ones that cannot be judged as they stand. Use it when running `ref/mkt/prioritize-initiatives`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Take in and screen the requests

## What it does

Logs every request in one common form, merges the ones that repeat each
other, and sends back the ones that cannot be judged as they stand.

## Where it happens

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

- **Screen the Requests**
  - `ref/mkt/prioritize-initiatives`, activity 3 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Take in the Requests**
  - `ref/mkt/prioritize-initiatives`, activity 2 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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-the-demand-and-the-shortfall/SKILL.mdBreaks the planned work into the processes that will run, how often each one runs and which agents it needs, then sets that demand against what the department can carry and says where it falls short. Use it when running `ref/mkt/plan-marketing-capacity`.
---
name: work-out-the-demand-and-the-shortfall
description: Breaks the planned work into the processes that will run, how often each one runs and which agents it needs, then sets that demand against what the department can carry and says where it falls short. Use it when running `ref/mkt/plan-marketing-capacity`.
license: CC-BY-4.0
metadata:
  agent: capacity-manager
  agent-version: "1"
---

# Work out the demand and the shortfall

## What it does

Breaks the planned work into the processes that will run, how often each
one runs and which agents it needs, then sets that demand against what
the department can carry and says where it falls short.

## Where it happens

The agent does this in two activities across one reference process. 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)
- **Find the Shortfall**
  - `ref/mkt/plan-marketing-capacity`, activity 6 -
    [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md)

## What to record

It leaves the book of work at a version for each period, with every
request carrying the date it arrived and its current state, and every
committed run carrying the agents it needs and the dates it holds. Every
commitment it makes is recorded with the date it was made and what it
displaced, and every commitment that changes is recorded the same way.
It records what each activity actually took against the run it came
from, so the department's estimates come from its own history. The room
left in the period is restated whenever a commitment lands or moves. A
request the department could not take is recorded with the reason and
the date, and it stays in the book.

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

book-of-work · writeprocess-bindings · readagent-roster · readrun-records · readplans-and-commitments-for-the-period · readnotification-channel · write
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": {
    "book-of-work": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/book-of-work"
    },
    "process-bindings": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/process-bindings"
    },
    "agent-roster": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/agent-roster"
    },
    "run-records": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/run-records"
    },
    "plans-and-commitments-for-the-period": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/plans-and-commitments-for-the-period"
    },
    "notification-channel": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/notification-channel"
    }
  }
}

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

12 processes, 38 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.

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

Check What the Department Can Carry · Set the Switch Date and the Order

Brief Executive Leadershipref/mkt/brief-executive-leadership · 20 activities
1234567891011121314151617181920

Account for the Book of Work · Hand the Decisions On

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

Check What Each Option Would Take

Engage Marketing Agencyref/mkt/engage-marketing-agency · 16 activities
12345678910111213141516

Take in the Gap · Choose the Route · Decide What Is Handed Over · Write the Scope

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

Take in the Planning Trigger · Break the Work into Activities · Measure What the Department Got Through · Size the Effort Each Run Takes · Find the Shortfall · Sort the Activities by Who Can Hold Them · Check What an Abstract Agent Would Need · Match the Work to Holders · Name the Gaps that Remain · Record What Was Learned

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

Open the Round · Take in the Requests · Screen the Requests · Read What Is Already Committed · Work out What Is Free · Choose What Gets Committed · Resource the Commitments · Record the Declines · Tell the Requesters · Record What the Round Rests On

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

Put Numbers on the Proposed Changes

Select Marketing Technologyref/mkt/select-marketing-technology · 21 activities
123456789101112131415161718192021

Brief the Selection · Size What the Tool Has to Carry · Hand It to the Owner

Model the Territoriesref/rev/model-the-territories · 15 activities
123456789101112131415

Cost Each Cut

Move an Accountref/rev/move-an-account · 14 activities
1234567891011121314

Name the Effect on Both Quotas

Publish the Carveref/rev/publish-the-carve · 15 activities
123456789101112131415

Load the Carve into the Systems

Set the Quotasref/rev/set-the-quotas · 15 activities
123456789101112131415

Read Who Is in Role · Test Against Capacity

The records it leaves

What it writes down

It leaves the book of work at a version for each period, with every request carrying the date it arrived and its current state, and every committed run carrying the agents it needs and the dates it holds. Every commitment it makes is recorded with the date it was made and what it displaced, and every commitment that changes is recorded the same way. It records what each activity actually took against the run it came from, so the department's estimates come from its own history. The room left in the period is restated whenever a commitment lands or moves. A request the department could not take is recorded with the reason and the date, and it stays in the book.

Where it stops

What it will not do

Does not decide what the department does. It says what the department can carry and what a new commitment would displace, and the decision-coordinator agent runs the decision that named people make. Does not rank one initiative above another on its merits. It supplies what each candidate would take and what room is left, and the people who decide do the ranking. Does not run any of the work in the book. The campaign-manager agent answers for a campaign, the content-manager agent for one published piece, and the launch-coordinator agent for a launch, and this agent records the agents those runs need and the time they take. Does not hold the department's money, which is the budget-keeper agent. A department can hold the money for a run and still have nobody free to do it. Does not report how the department performed over a reporting period, which is the reporting-manager agent. Does not say what an initiative would cost or return, which is the forecaster agent. Does not staff a role, hire anyone, or set an automation level. Does not keep the record of what the department buys from outside parties, which is the supplier-manager agent. Does not sign anything.

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: capacity-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.

  • AgentPool MCP server · sidduhere.github.io · run it yourself · mirrored from the MCP registry See each coding-agent subscription's live limits and offload work to one with headroom.
  • mcp MCP server · crisphive.com · hosted · run it yourself · mirrored from the MCP registry Agentic scheduling & booking for field service: availability, jobs, customers, crews, fleet.
  • What's Running MCP server · stcmain.github.io · mirrored from the MCP registry Ground truth for agent fleets: live agent sessions, listening ports, daemons, system load.