Reporting manager
reporting-manager v1Owns 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.
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.
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.
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.
# 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.
# 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.
# 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.
{
"$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"
]
}
]
}
}
}
# 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
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
--- 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`.
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.
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.
{
"$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.
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.
Hand over the Findings
Read the Closed Periods · Name What Will Be Measured · Brief the Department
Set What the Review Covers · Decide What Happens to Published Reports · Reissue the Affected Reports
Report Awareness, Perception and Preference
Read the Last Meeting's Record · Pull the Results for the Period
Read the Closed Period
Read the Closed Periods · Name What the Strategy Will Be Judged By
Set What the Report Covers · Ask Every Source the Same Things · Set Results Beside What Was Expected · Write the Account · Publish the Report
Measure What the Department Got Through
Read What Is Already Committed
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
Tell the Agents that Read the Plan
Release the Figures
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
Report Where the Money Went
Record the Decision
Report the Claim into the Period
Record What the Ending Taught
Build the Review Pack · Send the Pack Before the Meeting · Publish the Review Record
Report the Round across the Program
Publish the Round
Write the Measures Both Sides Read · Publish the Plan
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
Report What the Discounts Did
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
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
Show the Working, Line by Line · Publish and Pass the File to Payroll
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
Publish Each Person's Own Plan · Collect Acceptance
Announce It to Everyone Who Follows It
Take in the Run's Scope · Escalate What the Owner Will Not Fix · Report the Hygiene State
Report the Pattern
Turn On the Report and the Signal · Hand the Measure to the Review
Read What Actually Gets Asked · Publish Where Sellers Work · Watch the Table in Use
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
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
Take in the Period's Numbers · Record the Decision and Its Owner · Tell the People What Changed
Tell the Claimant · Report the Period's Disputes
Write the Report · Have the Numbers Checked · Publish the Report · Keep the Period
Publish the Rule Where People Read It
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
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
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.
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.
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.
implements: reporting-manager v1
One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
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.
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...