Disclosure check
disclosure-check v1Scores material against the disclosure rules in force in every market it will run in. That covers the wording a regulator requires beside a claim, the terms that have to appear with a price, the rules a promotion runs under, and what a paid partnership has to say about being paid. It reads the material together with the list of markets and channels the material is going to, because one market can require a line that another does not. Every verdict cites the rule it was scored against and the market that rule applies in.
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.
The examiner in an assessment: the rules are named at their versions and for each market before scoring starts, every item gets a verdict, and every verdict cites the rule and the market. Its report is what the approval that follows reads, usually beside the brand-check report and the accessibility-check report. Sits in the briefing where the markets and the channels are settled, so it can say what a market will require while the material can still be changed. The producing agents fix from its report, and this agent scores the fix.
What is in the package
5 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 This agent is not a signer. It produces the score and named people sign. Does not write the disclosure rules it applies. Those come from the legal reviewer, and the process names the version in force for each market. Does not fix what it finds: the copywriter writes the line, the designer makes room for it, the video-editor puts it in the cut, the web-producer changes the page, and this agent scores the result again. Does not score claims against the claims register or a piece against the voice rules, which is the brand-check agent, and does not score a page against the accessibility and technical standards, which is the accessibility-check agent. Does not say who may be contacted or which contacts come off a list, which is the consent-manager agent. Does not hold the agreement with a paid creator or take a problem back to that creator, which is the creator-relations agent. This agent says what the published piece was missing. Does not check whether a buy matched the plan it was placed against, which is the buy-check agent. Does not set the price, the offer or the promotion terms. Does not publish anything and does not take anything down. ## What always goes to a person - every failure, with the rule and the market named. This agent never waives its own findings. - a market the organization holds no disclosure rules for. The agent reports that market as unscored and a person decides whether the material may run there. - a rule whose reading changes what passes, where the text does not settle it - a required disclosure that the voice rules or the approved layout leave no room for - a claim in the material that the claims register does not cover - a request to run or publish with a known failure, which is recorded with the failure attached - published material that a rule change now fails, because withdrawing it, correcting it, or leaving it alone is a person's call
# The records this abstract agent must leave
This is the contract. An agent implementing `disclosure-check` leaves
the following behind, on every run.
A verdict per item, each citing the rule, its version, the market it
applies in, and the version of the material it was read against. The
market and channel list the piece was scored against, recorded with the
score, so a later run into a new market is scored again. Where a rule
requires particular wording, the wording it requires, recorded beside
the item. A market the organization holds no rules for is recorded as
unscored. A rescore after a fix names what changed and what it ran
again.
An agent that leaves less than this does not implement
`disclosure-check`, whatever else it does well.
# The systems this abstract agent needs
Seven 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 disclosure rules for each market | read | The rules the organization has adopted, at their versions. |
| the claims register | read | |
| the asset store | read | The material at the version it was submitted at. |
| the distribution plan for the material | read | Which markets and channels it will run in. |
| the approved price and offer terms | read | At the version they were approved at. |
| the agreements behind a paid partnership | read | What the relationship requires to be said. |
| the review record | write | The verdicts land where the signers and the producing agents read them. |
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": "disclosure-check",
"version": "1.0.0",
"description": "The disclosure-check abstract agent. Scores material against the disclosure rules in force in every market it will run in. That covers the wording a regulator requires beside a claim, the terms that have to appear with a price, the rules a promotion runs under, and what a paid partnership has to say about being paid.",
"author": {
"name": "AgentCatalog",
"url": "https://agentcatalog.com"
},
"homepage": "https://agentcatalog.com/abstract-agents/disclosure-check",
"repository": "https://github.com/jeffrschneider/agentcatalog",
"license": "CC-BY-4.0",
"keywords": [
"abstract-agent",
"reference",
"marketing",
"influencer-campaign",
"traffic-ad-creative",
"approve-marketing-material",
"abstract"
],
"extensions": {
"com.agentcatalog.agent": {
"agent": "disclosure-check",
"agentVersion": 1,
"department": "marketing",
"abstract": true,
"works": "The examiner in an assessment: the rules are named at their versions and for each market before scoring starts, every item gets a verdict, and every verdict cites the rule and the market. Its report is what the approval that follows reads, usually beside the brand-check report and the accessibility-check report. Sits in the briefing where the markets and the channels are settled, so it can say what a market will require while the material can still be changed. The producing agents fix from its report, and this agent scores the fix.",
"servers": [
{
"name": "the disclosure rules for each market",
"role": "disclosure-rules-for-each-market",
"access": "read",
"needs": "The rules the organization has adopted, at their versions."
},
{
"name": "the claims register",
"role": "claims-register",
"access": "read"
},
{
"name": "the asset store",
"role": "asset-store",
"access": "read",
"needs": "The material at the version it was submitted at."
},
{
"name": "the distribution plan for the material",
"role": "distribution-plan-for-the-material",
"access": "read",
"needs": "Which markets and channels it will run in."
},
{
"name": "the approved price and offer terms",
"role": "approved-price-and-offer-terms",
"access": "read",
"needs": "At the version they were approved at."
},
{
"name": "the agreements behind a paid partnership",
"role": "agreements-behind-a-paid-partnership",
"access": "read",
"needs": "What the relationship requires to be said."
},
{
"name": "the review record",
"role": "review-record",
"access": "write",
"needs": "The verdicts land where the signers and the producing agents read them."
}
],
"records": [
"A verdict per item, each citing the rule, its version, the market it applies in, and the version of the material it was read against.",
"The market and channel list the piece was scored against, recorded with the score, so a later run into a new market is scored again.",
"Where a rule requires particular wording, the wording it requires, recorded beside the item.",
"A market the organization holds no rules for is recorded as unscored.",
"A rescore after a fix names what changed and what it ran again."
],
"escalates": [
"every failure, with the rule and the market named. This agent never waives its own findings.",
"a market the organization holds no disclosure rules for. The agent reports that market as unscored and a person decides whether the material may run there.",
"a rule whose reading changes what passes, where the text does not settle it",
"a required disclosure that the voice rules or the approved layout leave no room for",
"a claim in the material that the claims register does not cover",
"a request to run or publish with a known failure, which is recorded with the failure attached",
"published material that a rule change now fails, because withdrawing it, correcting it, or leaving it alone is a person's call"
],
"not": [
"This agent is not a signer.",
"It produces the score and named people sign.",
"Does not write the disclosure rules it applies.",
"Those come from the legal reviewer, and the process names the version in force for each market.",
"Does not fix what it finds: the copywriter writes the line, the designer makes room for it, the video-editor puts it in the cut, the web-producer changes the page, and this agent scores the result again.",
"Does not score claims against the claims register or a piece against the voice rules, which is the brand-check agent, and does not score a page against the accessibility and technical standards, which is the accessibility-check agent.",
"Does not say who may be contacted or which contacts come off a list, which is the consent-manager agent.",
"Does not hold the agreement with a paid creator or take a problem back to that creator, which is the creator-relations agent.",
"This agent says what the published piece was missing.",
"Does not check whether a buy matched the plan it was placed against, which is the buy-check agent.",
"Does not set the price, the offer or the promotion terms.",
"Does not publish anything and does not take anything down."
],
"processes": [
{
"process": "ref/mkt/approve-marketing-material",
"activities": [
"Score against the Disclosure Rules"
]
},
{
"process": "ref/mkt/channel-program",
"activities": [
"Get Sign-Offs"
]
},
{
"process": "ref/mkt/competitive-battlecard",
"activities": [
"Check the Comparisons"
]
},
{
"process": "ref/mkt/display-retargeting",
"activities": [
"Get Sign-Offs"
]
},
{
"process": "ref/mkt/enable-channel-partner",
"activities": [
"Get Sign-Offs"
]
},
{
"process": "ref/mkt/influencer-campaign",
"activities": [
"Read the Disclosure Rules",
"Brief the Creators",
"Review the Drafts",
"Check the Disclosure"
]
},
{
"process": "ref/mkt/pricing-change",
"activities": [
"Get Sign-Offs"
]
},
{
"process": "ref/mkt/test-ad-creative",
"activities": [
"Get Sign-Offs"
]
},
{
"process": "ref/mkt/traffic-ad-creative",
"activities": [
"Add the Disclosures Each Market Requires",
"Score the Adapted Set"
]
}
]
}
}
}
# disclosure-check 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 five 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/approve-marketing-material`, `ref/mkt/channel-program`, `ref/mkt/competitive-battlecard`, `ref/mkt/display-retargeting`, `ref/mkt/enable-channel-partner`, `ref/mkt/influencer-campaign`, and 3 more. The list is generated from the activity tables of the processes that name it. https://agentcatalog.com/abstract-agents/disclosure-check
--- name: check-what-is-already-published description: The agent reads material that is already live and reports anything running without the disclosure its market requires. Use it when running `ref/mkt/influencer-campaign`. license: CC-BY-4.0 metadata: agent: disclosure-check agent-version: "1" --- # Check what is already published ## What it does The agent reads material that is already live and reports anything running without the disclosure its market requires. ## 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 the Disclosure** - `ref/mkt/influencer-campaign`, activity 15 - [Run Influencer Campaign](../../../../processes/marketing/influencer-campaign.md) ## What to record A verdict per item, each citing the rule, its version, the market it applies in, and the version of the material it was read against. The market and channel list the piece was scored against, recorded with the score, so a later run into a new market is scored again. Where a rule requires particular wording, the wording it requires, recorded beside the item. A market the organization holds no rules for is recorded as unscored. A rescore after a fix names what changed and what it ran again. 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: clear-material-for-sign-off description: The agent puts its verdicts in front of the approval, so the named signers see what passed, what failed, and which rule each failure came from. Use it when running `ref/mkt/channel-program` and 4 other reference processes. license: CC-BY-4.0 metadata: agent: disclosure-check agent-version: "1" --- # Clear material for sign off ## What it does The agent puts its verdicts in front of the approval, so the named signers see what passed, what failed, and which rule each failure came from. ## Where it happens The agent does this in one activity across five reference processes. Each one names the activity as that process words it. - **Get Sign-Offs** - `ref/mkt/channel-program`, activity 10 - [Launch Channel Program](../../../../processes/marketing/channel-program.md) - `ref/mkt/display-retargeting`, activity 10 - [Run Display Retargeting Campaign](../../../../processes/marketing/display-retargeting.md) - `ref/mkt/enable-channel-partner`, activity 8 - [Enable Channel Partner](../../../../processes/marketing/enable-channel-partner.md) - `ref/mkt/pricing-change`, activity 8 - [Launch Pricing Change](../../../../processes/marketing/pricing-change.md) - `ref/mkt/test-ad-creative`, activity 10 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) ## What to record A verdict per item, each citing the rule, its version, the market it applies in, and the version of the material it was read against. The market and channel list the piece was scored against, recorded with the score, so a later run into a new market is scored again. Where a rule requires particular wording, the wording it requires, recorded beside the item. A market the organization holds no rules for is recorded as unscored. A rescore after a fix names what changed and what it ran again. 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-the-market-rules description: The agent gathers the disclosure rules in force in every market a piece will run in, at the version the organization has adopted, and writes down what each one requires. Use it when running `ref/mkt/influencer-campaign`. license: CC-BY-4.0 metadata: agent: disclosure-check agent-version: "1" --- # Read the market rules ## What it does The agent gathers the disclosure rules in force in every market a piece will run in, at the version the organization has adopted, and writes down what each one requires. ## Where it happens The agent does this in one activity across one reference process. Each one names the activity as that process words it. - **Read the Disclosure Rules** - `ref/mkt/influencer-campaign`, activity 3 - [Run Influencer Campaign](../../../../processes/marketing/influencer-campaign.md) ## What to record A verdict per item, each citing the rule, its version, the market it applies in, and the version of the material it was read against. The market and channel list the piece was scored against, recorded with the score, so a later run into a new market is scored again. Where a rule requires particular wording, the wording it requires, recorded beside the item. A market the organization holds no rules for is recorded as unscored. A rescore after a fix names what changed and what it ran again. 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: score-material-against-the-rules description: The agent reads a piece against the rules that apply to it and gives every item a verdict that cites the rule and the market it comes from. Use it when running `ref/mkt/approve-marketing-material` and 3 other reference processes. license: CC-BY-4.0 metadata: agent: disclosure-check agent-version: "1" --- # Score material against the rules ## What it does The agent reads a piece against the rules that apply to it and gives every item a verdict that cites the rule and the market it comes from. It scores a draft before it runs and it scores the sized or adapted versions again. ## 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 the Comparisons** - `ref/mkt/competitive-battlecard`, activity 11 - [Refresh Competitive Battlecard](../../../../processes/marketing/competitive-battlecard.md) - **Review the Drafts** - `ref/mkt/influencer-campaign`, activity 12 - [Run Influencer Campaign](../../../../processes/marketing/influencer-campaign.md) - **Score against the Disclosure Rules** - `ref/mkt/approve-marketing-material`, activity 5 - [Approve Marketing Material](../../../../processes/marketing/approve-marketing-material.md) - **Score the Adapted Set** - `ref/mkt/traffic-ad-creative`, activity 7 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) ## What to record A verdict per item, each citing the rule, its version, the market it applies in, and the version of the material it was read against. The market and channel list the piece was scored against, recorded with the score, so a later run into a new market is scored again. Where a rule requires particular wording, the wording it requires, recorded beside the item. A market the organization holds no rules for is recorded as unscored. A rescore after a fix names what changed and what it ran again. 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: state-the-required-wording description: Before the material is made, the agent says which lines it has to carry in each market it will run in, and gives that wording to the people who write and produce it. Use it when running `ref/mkt/influencer-campaign` and `ref/mkt/traffic-ad-creative`. license: CC-BY-4.0 metadata: agent: disclosure-check agent-version: "1" --- # State the required wording ## What it does Before the material is made, the agent says which lines it has to carry in each market it will run in, and gives that wording to the people who write and produce 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. - **Add the Disclosures Each Market Requires** - `ref/mkt/traffic-ad-creative`, activity 6 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Brief the Creators** - `ref/mkt/influencer-campaign`, activity 10 - [Run Influencer Campaign](../../../../processes/marketing/influencer-campaign.md) ## What to record A verdict per item, each citing the rule, its version, the market it applies in, and the version of the material it was read against. The market and channel list the piece was scored against, recorded with the score, so a later run into a new market is scored again. Where a rule requires particular wording, the wording it requires, recorded beside the item. A market the organization holds no rules for is recorded as unscored. A rescore after a fix names what changed and what it ran again. 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 7 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": {
"disclosure-rules-for-each-market": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/disclosure-rules-for-each-market"
},
"claims-register": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/claims-register"
},
"asset-store": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/asset-store"
},
"distribution-plan-for-the-material": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/distribution-plan-for-the-material"
},
"approved-price-and-offer-terms": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/approved-price-and-offer-terms"
},
"agreements-behind-a-paid-partnership": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/agreements-behind-a-paid-partnership"
},
"review-record": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/review-record"
}
}
}
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.
9 processes, 13 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.
Score against the Disclosure Rules
Get Sign-Offs
Check the Comparisons
Get Sign-Offs
Get Sign-Offs
Read the Disclosure Rules · Brief the Creators · Review the Drafts · Check the Disclosure
Get Sign-Offs
Get Sign-Offs
Add the Disclosures Each Market Requires · Score the Adapted Set
What it writes down
A verdict per item, each citing the rule, its version, the market it applies in, and the version of the material it was read against. The market and channel list the piece was scored against, recorded with the score, so a later run into a new market is scored again. Where a rule requires particular wording, the wording it requires, recorded beside the item. A market the organization holds no rules for is recorded as unscored. A rescore after a fix names what changed and what it ran again.
What it will not do
This agent is not a signer. It produces the score and named people sign. Does not write the disclosure rules it applies. Those come from the legal reviewer, and the process names the version in force for each market. Does not fix what it finds: the copywriter writes the line, the designer makes room for it, the video-editor puts it in the cut, the web-producer changes the page, and this agent scores the result again. Does not score claims against the claims register or a piece against the voice rules, which is the brand-check agent, and does not score a page against the accessibility and technical standards, which is the accessibility-check agent. Does not say who may be contacted or which contacts come off a list, which is the consent-manager agent. Does not hold the agreement with a paid creator or take a problem back to that creator, which is the creator-relations agent. This agent says what the published piece was missing. Does not check whether a buy matched the plan it was placed against, which is the buy-check agent. Does not set the price, the offer or the promotion terms. Does not publish anything and does not take anything down.
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: disclosure-check 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.
- Pre-Trip compliance scanner MCP server · kesey.agency · run it yourself · mirrored from the MCP registry Screen regulated-health marketing copy against source-cited rulesets, all 50 states.
- AuditSocials Compliance MCP server · eminegurcu.github.io · run it yourself · mirrored from the MCP registry Pre-publish policy check for AI-generated social & ad content across 8 platforms.
- marketing-compliance MCP server · northpoint.fi · hosted · mirrored from the MCP registry Crypto marketing compliance rulesets over MCP: MiCA, FCA, GDPR, SEC, MAS, VARA. Not legal advice.