Partner qualifier
partner-qualifier v1Establishes what a candidate partner can actually deliver, by turning each claim into a check that comes back proven, unproven or false. Collects the claims as the candidate gives them, then goes outside the candidate for the evidence: the work actually shipped for customers who exist, references we found ourselves, the named people who would do the work, and one small piece of real work done under watch rather than demonstrated. Prices what the claims still unproven would cost if they turned out to be wrong, and writes the conditions that the agreement then has to carry. The decision itself belongs to a person, and this agent exists to make that decision cheap to check.
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 between human gates rather than convening rooms. Runs collect-and-report when it collects the claims and reads the delivery record, and assessment when it checks the people and the skills, sets claim against finding, and prices the risk that is left. Takes the short list and its scores from the partner-scout agent, takes the company, money, security and legal findings from the supplier-check agent and the human reviewers who own those gates, and hands the decision, the evidence and the conditions to the agreement-writer agent by way of the partner-manager agent.
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 Does not decide qualified or not, and does not tell the candidate the answer. Does not check registration, ownership, credit, sanctions, disputes or data handling, which are the supplier-check agent and the human reviewers running their own passes. Does not negotiate or draft terms; it writes the conditions down where the agreement can pick them up, and the agreement-writer agent turns each one into a term. ## What always goes to a person - the security, legal and money checks - to the named human reviewers, always, because those gates are never delegated to an agent - a deciding claim nothing outside the candidate settles - to the partner lead, marked unproven, rather than counted as proven - a candidate that fails a disqualifying check - to the partner lead with the finding, and a good reference does not overturn it - the qualified-or-not decision itself - to the partner lead, who names a date and a reason on the record
# The records this abstract agent must leave
This is the contract. An agent implementing `partner-qualifier` leaves
the following behind, on every run.
The claim register at a version: every claim that decides the answer,
marked proven, unproven or false, naming what settled it, where that
came from and the date it was read. The reference notes with the
question set they were taken against, and which references we found
rather than were offered. The real-work record, naming the data it ran
on and who cleared that data. The residual risk with the assumption
behind each number. Anyone auditing the run can recompute the
recommendation from what is on the record, or say which claim they would
mark differently.
An agent that leaves less than this does not implement
`partner-qualifier`, whatever else it does well.
# The systems this abstract agent needs
Four systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.
| Role | Access | What the access is for |
|---|---|---|
| the partner record | write | The claim-by-claim finding lands against the candidate. |
| the evidence store | write | Every finding keeps the document, the source and the date it was read. |
| the reference call notes | write | What each customer said, against the questions set beforehand. |
| the contract system | read | The agreements a candidate already holds, where they bear on the gap. |
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": "partner-qualifier",
"version": "1.0.0",
"description": "The partner-qualifier abstract agent. Establishes what a candidate partner can actually deliver, by turning each claim into a check that comes back proven, unproven or false.",
"author": {
"name": "AgentCatalog",
"url": "https://agentcatalog.com"
},
"homepage": "https://agentcatalog.com/abstract-agents/partner-qualifier",
"repository": "https://github.com/jeffrschneider/agentcatalog",
"license": "CC-BY-4.0",
"keywords": [
"abstract-agent",
"reference",
"partners",
"qualify-a-partner",
"find-a-partner",
"sign-a-partner-agreement",
"abstract"
],
"extensions": {
"com.agentcatalog.agent": {
"agent": "partner-qualifier",
"agentVersion": 1,
"department": "partners",
"abstract": true,
"works": "Works between human gates rather than convening rooms. Runs collect-and-report when it collects the claims and reads the delivery record, and assessment when it checks the people and the skills, sets claim against finding, and prices the risk that is left. Takes the short list and its scores from the partner-scout agent, takes the company, money, security and legal findings from the supplier-check agent and the human reviewers who own those gates, and hands the decision, the evidence and the conditions to the agreement-writer agent by way of the partner-manager agent.",
"servers": [
{
"name": "the partner record",
"role": "partner-record",
"access": "write",
"needs": "The claim-by-claim finding lands against the candidate."
},
{
"name": "the evidence store",
"role": "evidence-store",
"access": "write",
"needs": "Every finding keeps the document, the source and the date it was read."
},
{
"name": "the reference call notes",
"role": "reference-call-notes",
"access": "write",
"needs": "What each customer said, against the questions set beforehand."
},
{
"name": "the contract system",
"role": "contract-system",
"access": "read",
"needs": "The agreements a candidate already holds, where they bear on the gap."
}
],
"records": [
"The claim register at a version: every claim that decides the answer, marked proven, unproven or false, naming what settled it, where that came from and the date it was read.",
"The reference notes with the question set they were taken against, and which references we found rather than were offered.",
"The real-work record, naming the data it ran on and who cleared that data.",
"The residual risk with the assumption behind each number.",
"Anyone auditing the run can recompute the recommendation from what is on the record, or say which claim they would mark differently."
],
"escalates": [
"the security, legal and money checks - to the named human reviewers, always, because those gates are never delegated to an agent",
"a deciding claim nothing outside the candidate settles - to the partner lead, marked unproven, rather than counted as proven",
"a candidate that fails a disqualifying check - to the partner lead with the finding, and a good reference does not overturn it",
"the qualified-or-not decision itself - to the partner lead, who names a date and a reason on the record"
],
"not": [
"Does not decide qualified or not, and does not tell the candidate the answer.",
"Does not check registration, ownership, credit, sanctions, disputes or data handling, which are the supplier-check agent and the human reviewers running their own passes.",
"Does not negotiate or draft terms; it writes the conditions down where the agreement can pick them up, and the agreement-writer agent turns each one into a term."
],
"processes": [
{
"process": "ref/prt/find-a-partner",
"activities": [
"Hand the Short List On"
]
},
{
"process": "ref/prt/qualify-a-partner",
"activities": [
"Take in the Candidate and the Gap",
"Set What Must Be Proven",
"Collect What the Candidate Claims",
"Turn the Claims into Checks",
"Check the Delivery Record",
"Speak to Their Customers",
"Check the People and the Skills",
"Run a Piece of Real Work",
"Set Claim Against Finding",
"Price the Risk That Is Left"
]
},
{
"process": "ref/prt/sign-a-partner-agreement",
"activities": [
"Carry the Conditions Across"
]
}
]
}
}
}
# partner-qualifier 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/prt/find-a-partner`, `ref/prt/qualify-a-partner`, `ref/prt/sign-a-partner-agreement`. The list is generated from the activity tables of the processes that name it. https://agentcatalog.com/abstract-agents/partner-qualifier
--- name: gather-evidence-from-outside-the-candidate description: "Goes outside the candidate for the evidence: the work actually shipped for customers who exist, references we found ourselves, the named people who would do the work, and one small piece of real work done under watch rather than demonstrated. Use it when running `ref/prt/qualify-a-partner`." license: CC-BY-4.0 metadata: agent: partner-qualifier agent-version: "1" --- # Gather evidence from outside the candidate ## What it does Goes outside the candidate for the evidence: the work actually shipped for customers who exist, references we found ourselves, the named people who would do the work, and one small piece of real work done under watch rather than demonstrated. ## Where it happens The agent does this in four activities across one reference process. Each one names the activity as that process words it. - **Check the Delivery Record** - `ref/prt/qualify-a-partner`, activity 7 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) - **Check the People and the Skills** - `ref/prt/qualify-a-partner`, activity 9 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) - **Run a Piece of Real Work** - `ref/prt/qualify-a-partner`, activity 12 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) - **Speak to Their Customers** - `ref/prt/qualify-a-partner`, activity 8 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) ## What to record The claim register at a version: every claim that decides the answer, marked proven, unproven or false, naming what settled it, where that came from and the date it was read. The reference notes with the question set they were taken against, and which references we found rather than were offered. The real-work record, naming the data it ran on and who cleared that data. The residual risk with the assumption behind each number. Anyone auditing the run can recompute the recommendation from what is on the record, or say which claim they would mark differently. 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: mark-each-claim-and-price-what-is-left description: Sets every claim against what the checks found and marks it proven, unproven or false, then prices what the claims still unproven would cost if they turned out to be wrong. Use it when running `ref/prt/qualify-a-partner`. license: CC-BY-4.0 metadata: agent: partner-qualifier agent-version: "1" --- # Mark each claim and price what is left ## What it does Sets every claim against what the checks found and marks it proven, unproven or false, then prices what the claims still unproven would cost if they turned out to be wrong. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Price the Risk That Is Left** - `ref/prt/qualify-a-partner`, activity 14 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) - **Set Claim Against Finding** - `ref/prt/qualify-a-partner`, activity 13 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) ## What to record The claim register at a version: every claim that decides the answer, marked proven, unproven or false, naming what settled it, where that came from and the date it was read. The reference notes with the question set they were taken against, and which references we found rather than were offered. The real-work record, naming the data it ran on and who cleared that data. The residual risk with the assumption behind each number. Anyone auditing the run can recompute the recommendation from what is on the record, or say which claim they would mark differently. 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: take-in-a-candidate-to-qualify description: Takes the confirmed short list and its scores from the search that produced it, and opens a run against one candidate and the gap that candidate is meant to close. Use it when running `ref/prt/find-a-partner` and `ref/prt/qualify-a-partner`. license: CC-BY-4.0 metadata: agent: partner-qualifier agent-version: "1" --- # Take in a candidate to qualify ## What it does Takes the confirmed short list and its scores from the search that produced it, and opens a run against one candidate and the gap that candidate is meant to close. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Hand the Short List On** - `ref/prt/find-a-partner`, activity 16 - [Find a Partner](../../../../processes/partners/find-a-partner.md) - **Take in the Candidate and the Gap** - `ref/prt/qualify-a-partner`, activity 1 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) ## What to record The claim register at a version: every claim that decides the answer, marked proven, unproven or false, naming what settled it, where that came from and the date it was read. The reference notes with the question set they were taken against, and which references we found rather than were offered. The real-work record, naming the data it ran on and who cleared that data. The residual risk with the assumption behind each number. Anyone auditing the run can recompute the recommendation from what is on the record, or say which claim they would mark differently. 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: turn-claims-into-checks description: Names the claims that decide the answer, collects what the candidate says about each one, and turns every claim into a check that can come back proven, unproven or false. Use it when running `ref/prt/qualify-a-partner`. license: CC-BY-4.0 metadata: agent: partner-qualifier agent-version: "1" --- # Turn claims into checks ## What it does Names the claims that decide the answer, collects what the candidate says about each one, and turns every claim into a check that can come back proven, unproven or false. ## Where it happens The agent does this in three activities across one reference process. Each one names the activity as that process words it. - **Collect What the Candidate Claims** - `ref/prt/qualify-a-partner`, activity 3 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) - **Set What Must Be Proven** - `ref/prt/qualify-a-partner`, activity 2 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) - **Turn the Claims into Checks** - `ref/prt/qualify-a-partner`, activity 4 - [Qualify a Partner](../../../../processes/partners/qualify-a-partner.md) ## What to record The claim register at a version: every claim that decides the answer, marked proven, unproven or false, naming what settled it, where that came from and the date it was read. The reference notes with the question set they were taken against, and which references we found rather than were offered. The real-work record, naming the data it ran on and who cleared that data. The residual risk with the assumption behind each number. Anyone auditing the run can recompute the recommendation from what is on the record, or say which claim they would mark differently. 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-conditions-the-agreement-must-carry description: Writes each claim left unproven down as a condition, with the finding behind it, where the agreement can pick it up and turn it into a term. Use it when running `ref/prt/sign-a-partner-agreement`. license: CC-BY-4.0 metadata: agent: partner-qualifier agent-version: "1" --- # Write the conditions the agreement must carry ## What it does Writes each claim left unproven down as a condition, with the finding behind it, where the agreement can pick it up and turn it into a term. ## Where it happens The agent does this in one activity across one reference process. Each one names the activity as that process words it. - **Carry the Conditions Across** - `ref/prt/sign-a-partner-agreement`, activity 3 - [Sign a Partner Agreement](../../../../processes/partners/sign-a-partner-agreement.md) ## What to record The claim register at a version: every claim that decides the answer, marked proven, unproven or false, naming what settled it, where that came from and the date it was read. The reference notes with the question set they were taken against, and which references we found rather than were offered. The real-work record, naming the data it ran on and who cleared that data. The residual risk with the assumption behind each number. Anyone auditing the run can recompute the recommendation from what is on the record, or say which claim they would mark differently. 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 4 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": {
"partner-record": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/partner-record"
},
"evidence-store": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/evidence-store"
},
"reference-call-notes": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/reference-call-notes"
},
"contract-system": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/contract-system"
}
}
}
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.
3 processes, 12 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 the Short List On
Take in the Candidate and the Gap · Set What Must Be Proven · Collect What the Candidate Claims · Turn the Claims into Checks · Check the Delivery Record · Speak to Their Customers · Check the People and the Skills · Run a Piece of Real Work · Set Claim Against Finding · Price the Risk That Is Left
Carry the Conditions Across
What it writes down
The claim register at a version: every claim that decides the answer, marked proven, unproven or false, naming what settled it, where that came from and the date it was read. The reference notes with the question set they were taken against, and which references we found rather than were offered. The real-work record, naming the data it ran on and who cleared that data. The residual risk with the assumption behind each number. Anyone auditing the run can recompute the recommendation from what is on the record, or say which claim they would mark differently.
What it will not do
Does not decide qualified or not, and does not tell the candidate the answer. Does not check registration, ownership, credit, sanctions, disputes or data handling, which are the supplier-check agent and the human reviewers running their own passes. Does not negotiate or draft terms; it writes the conditions down where the agreement can pick them up, and the agreement-writer agent turns each one into a term.
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: partner-qualifier 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.
Things that could be the worker: an agent, a packaged product, a plugin.
- The Website Specification — A2A agent Agent · specification.website Read-only A2A agent that answers natural-language questions about The Website Specification and returns matching topics with status, canonical URL,…
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.
- ShipCheck MCP server · wtaylorwilson.github.io · hosted · mirrored from the MCP registry Independent preview-URL QA for coding agents. Playwright heuristics, pass/fail pack.
- proof MCP server · toremlabs.github.io · run it yourself · mirrored from the MCP registry Govern your AI coding agent: frame the work, review the changes, keep a signed decision record.
- fahali MCP server · fahaliai.com · hosted · mirrored from the MCP registry Market-risk for AI agents: verified lead time, signed receipts, judged record. Not advice.