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

Reporting manager

reporting-manager v1

Owns the department's report for one reporting period. It says what the report will cover and when it is due, asks every channel and every run for the same things, sets each result beside what that run said it would do, and writes the account of why the numbers moved. The report goes to the people who decide what the department does next, and it is delivered on its date whether or not every source answered.

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/analyze-customer-baseref/mkt/annual-marketing-planref/mkt/attribution-modelGRANTEDanalytics platformsreadad platformsreadthe CRMreadthe plans and commitments for the periodread — what each run said it would dothe report storewrite — each period's report lands at a versioTHE ABSTRACT AGENTreporting-managerv1owns the department's…HANDS TO A PERSONa result far enough off…a person decidesa source that will not…a person decidesa request to leave a…a person decidesMUST FOLLOWcollect-and-reportapproval

Runs collect-and-report for the period: every contributor is asked the same question, every line keeps the source it came from, the report ships on its date complete or not, and two sources that disagree both appear in the report. Requests an approval before the report leaves the department when the process names a signer, and convenes the meeting where the finished report is read when the department holds one.

The plugin

What is in the package

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

reporting-manager · 18 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 replace the analytics agent. Analytics measures a run and
reports the numbers with their sources attached; this agent gathers
those reports for a period and sets them against what was committed.
Does not set the targets it reports against, and does not decide what
the department does next - it gives leadership the account they decide
from. Does not run a campaign or a published piece. The campaign-manager
and the content-manager answer for those, and this agent reports what
they did.

## What always goes to a person

- a result far enough off what was committed that waiting for the report
  date would waste the warning
- a source that will not answer in time, raised before the report date
  instead of explained afterward
- a request to leave a result out of the report or to restate it. This
  agent never removes a number because somebody asked. A person decides,
  and the decision is recorded with the report.
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 `reporting-manager` leaves
the following behind, on every run.

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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

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

| Role | Access | What the access is for |
|---|---|---|
| analytics platforms | read |  |
| ad platforms | read |  |
| the CRM | read |  |
| the plans and commitments for the period | read | What each run said it would do. |
| the report store | write | Each period's report lands at a version. |

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": "reporting-manager",
  "version": "1.0.0",
  "description": "The reporting-manager abstract agent. Owns the department's report for one reporting period. It says what the report will cover and when it is due, asks every channel and every run for the same things, sets each result beside what that run said it would do, and writes the account of why the numbers moved.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/reporting-manager",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "marketing",
    "marketing-performance-report",
    "quarterly-business-review",
    "set-marketing-budget",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "reporting-manager",
      "agentVersion": 1,
      "department": "marketing",
      "abstract": true,
      "works": "Runs collect-and-report for the period: every contributor is asked the same question, every line keeps the source it came from, the report ships on its date complete or not, and two sources that disagree both appear in the report. Requests an approval before the report leaves the department when the process names a signer, and convenes the meeting where the finished report is read when the department holds one.",
      "servers": [
        {
          "name": "analytics platforms",
          "role": "analytics-platforms",
          "access": "read"
        },
        {
          "name": "ad platforms",
          "role": "ad-platforms",
          "access": "read"
        },
        {
          "name": "the CRM",
          "role": "crm",
          "access": "read"
        },
        {
          "name": "the plans and commitments for the period",
          "role": "plans-and-commitments-for-the-period",
          "access": "read",
          "needs": "What each run said it would do."
        },
        {
          "name": "the report store",
          "role": "report-store",
          "access": "write",
          "needs": "Each period's report lands at a version."
        }
      ],
      "records": [
        "The report at a version for each period, with every line attributed to its source and set beside the commitment it is measured against.",
        "A dated record of what it asked for, who answered, and who did not.",
        "A correction goes out as a new version of the report, and the version it corrects stays where it was."
      ],
      "escalates": [
        "a result far enough off what was committed that waiting for the report date would waste the warning",
        "a source that will not answer in time, raised before the report date instead of explained afterward",
        "a request to leave a result out of the report or to restate it. This agent never removes a number because somebody asked. A person decides, and the decision is recorded with the report."
      ],
      "not": [
        "Does not replace the analytics agent.",
        "Analytics measures a run and reports the numbers with their sources attached; this agent gathers those reports for a period and sets them against what was committed.",
        "Does not set the targets it reports against, and does not decide what the department does next - it gives leadership the account they decide from.",
        "Does not run a campaign or a published piece.",
        "The campaign-manager and the content-manager answer for those, and this agent reports what they did."
      ],
      "processes": [
        {
          "process": "ref/mkt/analyze-customer-base",
          "activities": [
            "Hand over the Findings"
          ]
        },
        {
          "process": "ref/mkt/annual-marketing-plan",
          "activities": [
            "Read the Closed Periods",
            "Name What Will Be Measured",
            "Brief the Department"
          ]
        },
        {
          "process": "ref/mkt/attribution-model",
          "activities": [
            "Set What the Review Covers",
            "Decide What Happens to Published Reports",
            "Reissue the Affected Reports"
          ]
        },
        {
          "process": "ref/mkt/brand-health",
          "activities": [
            "Report Awareness, Perception and Preference"
          ]
        },
        {
          "process": "ref/mkt/brief-executive-leadership",
          "activities": [
            "Read the Last Meeting's Record",
            "Pull the Results for the Period"
          ]
        },
        {
          "process": "ref/mkt/content-calendar",
          "activities": [
            "Read the Closed Period"
          ]
        },
        {
          "process": "ref/mkt/develop-marketing-strategy",
          "activities": [
            "Read the Closed Periods",
            "Name What the Strategy Will Be Judged By"
          ]
        },
        {
          "process": "ref/mkt/marketing-performance-report",
          "activities": [
            "Set What the Report Covers",
            "Ask Every Source the Same Things",
            "Set Results Beside What Was Expected",
            "Write the Account",
            "Publish the Report"
          ]
        },
        {
          "process": "ref/mkt/plan-marketing-capacity",
          "activities": [
            "Measure What the Department Got Through"
          ]
        },
        {
          "process": "ref/mkt/prioritize-initiatives",
          "activities": [
            "Read What Is Already Committed"
          ]
        },
        {
          "process": "ref/mkt/quarterly-business-review",
          "activities": [
            "Take in the Period Report",
            "Set the Quarter against the Annual Goals",
            "Name the Gaps Worth Acting On",
            "Update What Gets Measured",
            "Brief the Department"
          ]
        },
        {
          "process": "ref/mkt/reallocate-media-spend",
          "activities": [
            "Tell the Agents that Read the Plan"
          ]
        },
        {
          "process": "ref/mkt/reconcile-media-spend",
          "activities": [
            "Release the Figures"
          ]
        },
        {
          "process": "ref/mkt/set-marketing-budget",
          "activities": [
            "Read Last Year's Spend",
            "Test the Asks against the Goals",
            "Phase the Money across the Year",
            "Name What the Budget Is Reported Against",
            "Tell Every Function What It Has"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# reporting-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 thirteen 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/analyze-customer-base`, `ref/mkt/annual-marketing-plan`,
`ref/mkt/attribution-model`, `ref/mkt/brand-health`,
`ref/mkt/brief-executive-leadership`, `ref/mkt/content-calendar`, and 8
more. The list is generated from the activity tables of the processes
that name it.

https://agentcatalog.com/abstract-agents/reporting-manager
skills/collect-the-results-from-every-source/SKILL.mdAsks every channel and every run for the same things, in the same format, by the same date, and pulls together what comes back with a source on every line. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/marketing-performance-report`.
---
name: collect-the-results-from-every-source
description: Asks every channel and every run for the same things, in the same format, by the same date, and pulls together what comes back with a source on every line. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/marketing-performance-report`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Collect the results from every source

## What it does

Asks every channel and every run for the same things, in the same
format, by the same date, and pulls together what comes back with a
source on every line.

## Where it happens

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

- **Ask Every Source the Same Things**
  - `ref/mkt/marketing-performance-report`, activity 2 -
    [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md)
- **Pull the Results for the Period**
  - `ref/mkt/brief-executive-leadership`, activity 4 -
    [Brief Executive Leadership](../../../../processes/marketing/brief-executive-leadership.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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-the-departments-throughput/SKILL.mdCounts how much work the department got through, which is how many runs closed, how long each one took, and where they sat waiting. Use it when running `ref/mkt/plan-marketing-capacity`.
---
name: measure-the-departments-throughput
description: Counts how much work the department got through, which is how many runs closed, how long each one took, and where they sat waiting. Use it when running `ref/mkt/plan-marketing-capacity`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Measure the departments throughput

## What it does

Counts how much work the department got through, which is how many runs
closed, how long each one took, and where they sat waiting.

## Where it happens

The agent does this in one activity 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)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/name-the-gaps-worth-acting-on/SKILL.mdSays which of the misses matter and which sit inside the normal movement of the numbers, so people spend their time on the ones that mean something. Use it when running `ref/mkt/quarterly-business-review`.
---
name: name-the-gaps-worth-acting-on
description: Says which of the misses matter and which sit inside the normal movement of the numbers, so people spend their time on the ones that mean something. Use it when running `ref/mkt/quarterly-business-review`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Name the gaps worth acting on

## What it does

Says which of the misses matter and which sit inside the normal movement
of the numbers, so people spend their time on the ones that mean
something.

## Where it happens

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

- **Name the Gaps Worth Acting On**
  - `ref/mkt/quarterly-business-review`, activity 7 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/name-the-measures/SKILL.mdSays what a plan, a budget or a strategy will be reported against, so that every later result has something to be measured by. Use it when running `ref/mkt/annual-marketing-plan` and 3 other reference processes.
---
name: name-the-measures
description: Says what a plan, a budget or a strategy will be reported against, so that every later result has something to be measured by. Use it when running `ref/mkt/annual-marketing-plan` and 3 other reference processes.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Name the measures

## What it does

Says what a plan, a budget or a strategy will be reported against, so
that every later result has something to be measured by. It adjusts
those measures when the commitments underneath them are reset.

## Where it happens

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

- **Name What Will Be Measured**
  - `ref/mkt/annual-marketing-plan`, activity 12 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
- **Name What the Budget Is Reported Against**
  - `ref/mkt/set-marketing-budget`, activity 11 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)
- **Name What the Strategy Will Be Judged By**
  - `ref/mkt/develop-marketing-strategy`, activity 12 -
    [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md)
- **Update What Gets Measured**
  - `ref/mkt/quarterly-business-review`, activity 13 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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/phase-the-money-across-the-year/SKILL.mdSays when each function's money becomes available across the year, so a run knows what it can commit to and when. Use it when running `ref/mkt/set-marketing-budget`.
---
name: phase-the-money-across-the-year
description: Says when each function's money becomes available across the year, so a run knows what it can commit to and when. Use it when running `ref/mkt/set-marketing-budget`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Phase the money across the year

## What it does

Says when each function's money becomes available across the year, so a
run knows what it can commit to and when.

## Where it happens

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

- **Phase the Money across the Year**
  - `ref/mkt/set-marketing-budget`, activity 10 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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-the-report/SKILL.mdPuts the report out on its date at a version, whether or not every source answered, with every line attributed to where it came from and the evidence under it. Use it when running `ref/mkt/brand-health`, `ref/mkt/marketing-performance-report` and `ref/mkt/reconcile-media-spend`.
---
name: publish-the-report
description: Puts the report out on its date at a version, whether or not every source answered, with every line attributed to where it came from and the evidence under it. Use it when running `ref/mkt/brand-health`, `ref/mkt/marketing-performance-report` and `ref/mkt/reconcile-media-spend`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Publish the report

## What it does

Puts the report out on its date at a version, whether or not every
source answered, with every line attributed to where it came from and
the evidence under it.

## Where it happens

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

- **Publish the Report**
  - `ref/mkt/marketing-performance-report`, activity 13 -
    [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md)
- **Release the Figures**
  - `ref/mkt/reconcile-media-spend`, activity 13 -
    [Reconcile Media Spend](../../../../processes/marketing/reconcile-media-spend.md)
- **Report Awareness, Perception and Preference**
  - `ref/mkt/brand-health`, activity 22 -
    [Measure Brand Health](../../../../processes/marketing/brand-health.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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-a-closed-period/SKILL.mdReads what a finished period actually produced, which covers what published and what slipped, how each thing did, what each function spent against what it was given, and what the last report could not answer. Use it when running `ref/mkt/annual-marketing-plan` and 4 other reference processes.
---
name: read-a-closed-period
description: Reads what a finished period actually produced, which covers what published and what slipped, how each thing did, what each function spent against what it was given, and what the last report could not answer. Use it when running `ref/mkt/annual-marketing-plan` and 4 other reference processes.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Read a closed period

## What it does

Reads what a finished period actually produced, which covers what
published and what slipped, how each thing did, what each function spent
against what it was given, and what the last report could not answer.

## Where it happens

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

- **Read Last Year's Spend**
  - `ref/mkt/set-marketing-budget`, activity 2 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)
- **Read the Closed Period**
  - `ref/mkt/content-calendar`, activity 2 -
    [Plan Content Calendar](../../../../processes/marketing/content-calendar.md)
- **Read the Closed Periods**
  - `ref/mkt/annual-marketing-plan`, activity 2 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
  - `ref/mkt/develop-marketing-strategy`, activity 2 -
    [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md)
- **Take in the Period Report**
  - `ref/mkt/quarterly-business-review`, activity 2 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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-what-is-still-outstanding/SKILL.mdReads the runs still in flight and the record of the last meeting to find what is still owed, which is the commitments nobody has met yet and the questions left standing. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/prioritize-initiatives`.
---
name: read-what-is-still-outstanding
description: Reads the runs still in flight and the record of the last meeting to find what is still owed, which is the commitments nobody has met yet and the questions left standing. Use it when running `ref/mkt/brief-executive-leadership` and `ref/mkt/prioritize-initiatives`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Read what is still outstanding

## What it does

Reads the runs still in flight and the record of the last meeting to
find what is still owed, which is the commitments nobody has met yet and
the questions left standing.

## Where it happens

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

- **Read What Is Already Committed**
  - `ref/mkt/prioritize-initiatives`, activity 4 -
    [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md)
- **Read the Last Meeting's Record**
  - `ref/mkt/brief-executive-leadership`, activity 2 -
    [Brief Executive Leadership](../../../../processes/marketing/brief-executive-leadership.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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/restate-published-reports/SKILL.mdDecides which already-published reports have to be restated after something underneath them changed and which of them still stand, then reissues each affected period as a new version. Use it when running `ref/mkt/attribution-model`.
---
name: restate-published-reports
description: Decides which already-published reports have to be restated after something underneath them changed and which of them still stand, then reissues each affected period as a new version. Use it when running `ref/mkt/attribution-model`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Restate published reports

## What it does

Decides which already-published reports have to be restated after
something underneath them changed and which of them still stand, then
reissues each affected period as a new version. The version it corrects
stays where it is.

## Where it happens

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

- **Decide What Happens to Published Reports**
  - `ref/mkt/attribution-model`, activity 11 -
    [Maintain Attribution Model](../../../../processes/marketing/attribution-model.md)
- **Reissue the Affected Reports**
  - `ref/mkt/attribution-model`, activity 13 -
    [Maintain Attribution Model](../../../../processes/marketing/attribution-model.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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-results-against-what-was-committed/SKILL.mdPuts each result next to what that run said it would do and next to what the plan said the year would produce, so the difference sits on the same line. Use it when running `ref/mkt/marketing-performance-report`, `ref/mkt/quarterly-business-review` and `ref/mkt/set-marketing-budget`.
---
name: set-results-against-what-was-committed
description: Puts each result next to what that run said it would do and next to what the plan said the year would produce, so the difference sits on the same line. Use it when running `ref/mkt/marketing-performance-report`, `ref/mkt/quarterly-business-review` and `ref/mkt/set-marketing-budget`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Set results against what was committed

## What it does

Puts each result next to what that run said it would do and next to what
the plan said the year would produce, so the difference sits on the same
line. It does the same for money being asked for, saying whether the
amount could reach the goals it is meant to.

## Where it happens

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

- **Set Results Beside What Was Expected**
  - `ref/mkt/marketing-performance-report`, activity 9 -
    [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md)
- **Set the Quarter against the Annual Goals**
  - `ref/mkt/quarterly-business-review`, activity 3 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Test the Asks against the Goals**
  - `ref/mkt/set-marketing-budget`, activity 6 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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-scope-of-the-report/SKILL.md"Writes down what the report covers before anything is gathered: the period, the runs inside it, the channels and conversions in scope, and the questions the report has to answer. Use it when running `ref/mkt/attribution-model` and `ref/mkt/marketing-performance-report`."
---
name: set-the-scope-of-the-report
description: "Writes down what the report covers before anything is gathered: the period, the runs inside it, the channels and conversions in scope, and the questions the report has to answer. Use it when running `ref/mkt/attribution-model` and `ref/mkt/marketing-performance-report`."
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Set the scope of the report

## What it does

Writes down what the report covers before anything is gathered: the
period, the runs inside it, the channels and conversions in scope, and
the questions the report has to answer.

## Where it happens

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

- **Set What the Report Covers**
  - `ref/mkt/marketing-performance-report`, activity 1 -
    [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md)
- **Set What the Review Covers**
  - `ref/mkt/attribution-model`, activity 3 -
    [Maintain Attribution Model](../../../../processes/marketing/attribution-model.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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/tell-the-agents-what-they-have/SKILL.mdTells every agent and every function what now applies to them, which covers the plan and what each one owes, a number and the rules that come with it, a changed split, and findings the receiving agent has to say what it will do about. Use it when running `ref/mkt/analyze-customer-base` and 4 other reference processes.
---
name: tell-the-agents-what-they-have
description: Tells every agent and every function what now applies to them, which covers the plan and what each one owes, a number and the rules that come with it, a changed split, and findings the receiving agent has to say what it will do about. Use it when running `ref/mkt/analyze-customer-base` and 4 other reference processes.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Tell the agents what they have

## What it does

Tells every agent and every function what now applies to them, which
covers the plan and what each one owes, a number and the rules that come
with it, a changed split, and findings the receiving agent has to say
what it will do about.

## Where it happens

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

- **Brief the Department**
  - `ref/mkt/annual-marketing-plan`, activity 15 -
    [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md)
  - `ref/mkt/quarterly-business-review`, activity 15 -
    [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md)
- **Hand over the Findings**
  - `ref/mkt/analyze-customer-base`, activity 17 -
    [Analyze Customer Base](../../../../processes/marketing/analyze-customer-base.md)
- **Tell Every Function What It Has**
  - `ref/mkt/set-marketing-budget`, activity 14 -
    [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md)
- **Tell the Agents that Read the Plan**
  - `ref/mkt/reallocate-media-spend`, activity 13 -
    [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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/write-the-account-of-the-numbers/SKILL.mdWrites the explanation of why the numbers moved, in plain words, for the people who decide what happens next. Use it when running `ref/mkt/marketing-performance-report`.
---
name: write-the-account-of-the-numbers
description: Writes the explanation of why the numbers moved, in plain words, for the people who decide what happens next. Use it when running `ref/mkt/marketing-performance-report`.
license: CC-BY-4.0
metadata:
  agent: reporting-manager
  agent-version: "1"
---

# Write the account of the numbers

## What it does

Writes the explanation of why the numbers moved, in plain words, for the
people who decide what happens next.

## Where it happens

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

- **Write the Account**
  - `ref/mkt/marketing-performance-report`, activity 11 -
    [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md)

## What to record

The report at a version for each period, with every line attributed to
its source and set beside the commitment it is measured against. A dated
record of what it asked for, who answered, and who did not. A correction
goes out as a new version of the report, and the version it corrects
stays where it was.

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

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

Setting it up

Point it at your systems

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

analytics-platforms · readad-platforms · readcrm · readplans-and-commitments-for-the-period · readreport-store · 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": {
    "analytics-platforms": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/analytics-platforms"
    },
    "ad-platforms": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/ad-platforms"
    },
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "plans-and-commitments-for-the-period": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/plans-and-commitments-for-the-period"
    },
    "report-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/report-store"
    }
  }
}

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

42 processes, 126 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.

Analyze Customer Baseref/mkt/analyze-customer-base · 19 activities
12345678910111213141516171819

Hand over the Findings

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

Read the Closed Periods · Name What Will Be Measured · Brief the Department

Maintain Attribution Modelref/mkt/attribution-model · 16 activities
12345678910111213141516

Set What the Review Covers · Decide What Happens to Published Reports · Reissue the Affected Reports

Measure Brand Healthref/mkt/brand-health · 23 activities
1234567891011121314151617181920212223

Report Awareness, Perception and Preference

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

Read the Last Meeting's Record · Pull the Results for the Period

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

Read the Closed Period

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

Read the Closed Periods · Name What the Strategy Will Be Judged By

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

Set What the Report Covers · Ask Every Source the Same Things · Set Results Beside What Was Expected · Write the Account · Publish the Report

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

Measure What the Department Got Through

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

Read What Is Already Committed

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

Take in the Period Report · Set the Quarter against the Annual Goals · Name the Gaps Worth Acting On · Update What Gets Measured · Brief the Department

Reallocate Media Spendref/mkt/reallocate-media-spend · 14 activities
1234567891011121314

Tell the Agents that Read the Plan

Reconcile Media Spendref/mkt/reconcile-media-spend · 14 activities
1234567891011121314

Release the Figures

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

Read Last Year's Spend · Test the Asks against the Goals · Phase the Money across the Year · Name What the Budget Is Reported Against · Tell Every Function What It Has

Allocate the Fundref/prt/allocate-the-fund · 17 activities
1234567891011121314151617

Report Where the Money Went

Approve a Fund Requestref/prt/approve-a-fund-request · 17 activities
1234567891011121314151617

Record the Decision

Check and Pay a Claimref/prt/check-and-pay-a-claim · 17 activities
1234567891011121314151617

Report the Claim into the Period

End a Partner Relationshipref/prt/end-a-partner-relationship · 17 activities
1234567891011121314151617

Record What the Ending Taught

Review a Joint Planref/prt/review-a-joint-plan · 17 activities
1234567891011121314151617

Build the Review Pack · Send the Pack Before the Meeting · Publish the Review Record

Review Partner Performanceref/prt/review-partner-performance · 16 activities
12345678910111213141516

Report the Round across the Program

Set a Partner Tierref/prt/set-a-partner-tier · 16 activities
12345678910111213141516

Publish the Round

Write a Joint Planref/prt/write-a-joint-plan · 17 activities
1234567891011121314151617

Write the Measures Both Sides Read · Publish the Plan

Answer a Data Questionref/rev/answer-a-data-question · 14 activities
1234567891011121314

Take in the Question · Say What Changes on the Answer · Put It in Countable Words · Size It and Agree the Date · Write the Answer · Deliver the Answer · Judge Whether It Should Stand

Approve a Discountref/rev/approve-a-discount · 15 activities
123456789101112131415

Report What the Discounts Did

Build a Reportref/rev/build-a-report · 14 activities
1234567891011121314

Take in the Question · Look in the Report Store First · Name the Reader and the Decision · Read It as the Reader Would · Publish the Report at a Version · Set the Retirement Condition · Record What Was Learned

Build the Roll-Upref/rev/build-the-roll-up · 17 activities
1234567891011121314151617

Take in What the Roll-Up Must Answer · Name the Dimensions · Have a Second Pair of Eyes Check It · Freeze the Roll-Up at a Version · Hand It On for Publishing

Calculate Commissionref/rev/calculate-commission · 16 activities
12345678910111213141516

Show the Working, Line by Line · Publish and Pass the File to Payroll

Define a Measureref/rev/define-a-measure · 16 activities
12345678910111213141516

Take in the Request · Name What the Measure Decides · Write the Rule for What Counts · Tell the Reports that Read It · Settle the Published Reports · Record What Was Learned

Design a Compensation Planref/rev/design-a-comp-plan · 16 activities
12345678910111213141516

Publish Each Person's Own Plan · Collect Acceptance

Document a Processref/rev/document-a-process · 16 activities
12345678910111213141516

Announce It to Everyone Who Follows It

Enforce Pipeline Hygieneref/rev/enforce-pipeline-hygiene · 17 activities
1234567891011121314151617

Take in the Run's Scope · Escalate What the Owner Will Not Fix · Report the Hygiene State

Fix a Misrouteref/rev/fix-a-misroute · 15 activities
123456789101112131415

Report the Pattern

Instrument a Processref/rev/instrument-a-process · 16 activities
12345678910111213141516

Turn On the Report and the Signal · Hand the Measure to the Review

Publish the Approval Thresholdsref/rev/publish-the-approval-thresholds · 16 activities
12345678910111213141516

Read What Actually Gets Asked · Publish Where Sellers Work · Watch the Table in Use

Publish the Forecast Viewref/rev/publish-the-forecast-view · 16 activities
12345678910111213141516

Take in the Frozen Roll-Up · Agree Who Reads It and When · Decide What Each Audience Sees · Build the Headline Figures · Check Who May See Which Cut · Read the View Cold Before It Goes Out · Publish at One Version, at One Time · Answer Questions Against the Published View · Hand the View to the People Who Commit · Record Corrections as New Versions

Retire a Reportref/rev/retire-a-report · 16 activities
12345678910111213141516

Take in the Review · Find the Duplicates · Sort the Reports · Tell the Readers · Hear the Objections · Decide the Retirements · Point the Readers Somewhere · Report the Cycle · Record What Was Learned

Review Adoptionref/rev/review-adoption · 16 activities
12345678910111213141516

Take in the Period's Numbers · Record the Decision and Its Owner · Tell the People What Changed

Settle a Commission Disputeref/rev/settle-a-commission-dispute · 16 activities
12345678910111213141516

Tell the Claimant · Report the Period's Disputes

Watch the Response Clockref/rev/watch-the-response-clock · 16 activities
12345678910111213141516

Write the Report · Have the Numbers Checked · Publish the Report · Keep the Period

Write a Routing Ruleref/rev/write-a-routing-rule · 17 activities
1234567891011121314151617

Publish the Rule Where People Read It

Commit the Numberref/sls/commit-the-number · 17 activities
1234567891011121314151617

Set What Is Being Committed · Take in Each Segment's Number · Reconcile Against the Roll-Up · Name the Gap · Record the Dissent · Publish the Commitment · Call the Change Early · Account for It After the Close · Record What the Number Rested On

Run the Forecast Callref/sls/run-the-forecast-call · 14 activities
1234567891011121314

Set What the Call Covers · Take in the Roll-Up · Open on the Same Numbers · Publish the Call's Number · Record What Moved and Why

The records it leaves

What it writes down

The report at a version for each period, with every line attributed to its source and set beside the commitment it is measured against. A dated record of what it asked for, who answered, and who did not. A correction goes out as a new version of the report, and the version it corrects stays where it was.

Where it stops

What it will not do

Does not replace the analytics agent. Analytics measures a run and reports the numbers with their sources attached; this agent gathers those reports for a period and sets them against what was committed. Does not set the targets it reports against, and does not decide what the department does next - it gives leadership the account they decide from. Does not run a campaign or a published piece. The campaign-manager and the content-manager answer for those, and this agent reports what they did.

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

  • Status Report Formatter MCP server · wxt-ai.github.io · hosted · mirrored from the MCP registry Format a status report for stakeholders
  • Status Report Formatter MCP server · wxt-ai.github.io · hosted · mirrored from the MCP registry Format a status report for stakeholders
  • state-of-company-publisher MCP server · dailyaiagents-cpu.github.io · mirrored from the MCP registry Sundays 18:00 CDT. Composes a public state-of-the-company narrative covering the past 7 days — wh...