Sign in
abstract agent · revenue-operations · 2 processes · plugin 1.0.0

Terms check

terms-check v1

Scores a proposed set of terms against the standard ones and says exactly which clauses depart and how far. It reads the standard paper at the version in force, names the clause each proposed term departs from, and states the direction and the size of the departure rather than passing or failing a document as a whole. Where the standard has no clause a term can be scored against, it reports that plainly instead of inventing one, because a term nobody could score has not passed. It scores the same way whoever is asking and whatever the deal is worth, and the score is an input to somebody else's decision.

The abstract agent

What it is granted, and what it hands to a person

This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.

WORKS INref/rev/publish-the-approval-thresholdsref/rev/review-a-non-standard-dealGRANTEDthe standard terms storeread — every term scored at the version in forthe contract recordread — the paper the proposed terms would sit the delegation of authorityread — who may sign what, when a band rather tthe deal desk queuewrite — the score written back against the iteTHE ABSTRACT AGENTterms-checkv1scores a proposed set of…HANDS TO A PERSONa term the standard paper…to the deal desk reviewer,…a band the delegation of…back to the draft, with the…a term whose reading…to a named person, with what…two clauses of the…to the standards-keeper agenta request to score against…to whoever asked, with the…MUST FOLLOWapprovalassessmentroll call

Acts as the examiner in an assessment and works alone. Takes each non-standard item from the deal-desk-reviewer agent, already separated out, and hands back the same item with the clause it departs from named, so the desk can price a departure it did not have to find first. Takes a draft set of approval bands from the standards-keeper agent and scores them against the delegation of authority, the standard paper and whatever a signature has to satisfy, returning the rule behind every failure. Reads the standards the standards-keeper agent versions and never edits them, and answers a roll-call with what it has scored and what it could not.

The plugin

What is in the package

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

terms-check · 7 files · 1.0.0
com.agentcatalog.agent/NOT.mdWhat the agent does not do, and when it asks a person.
# Where this abstract agent stops

Does not decide, approve, waive or sign anything. A departure it names
is an input to a decision the deal-desk-reviewer agent shapes and named
signers make. Does not price what a departure risks, which is the desk
working with the analytics agent. Does not redline or rewrite a term to
bring it back to standard, which is the redline-reviewer agent. Does not
write or version the standard paper and the approval table, which is the
standards-keeper agent. Does not negotiate with the customer, and does
not score a discount, which is a price rather than a term.

## What always goes to a person

- a term the standard paper has no clause to score - to the deal desk
  reviewer, so the item is restated in terms that can be tested, and the
  gap goes into the standards review
- a band the delegation of authority does not allow - back to the draft,
  with the rule that forbids it attached
- a term whose reading changes the score either way - to a named person,
  with what the text does and does not say, because the agent says what
  is written and a person decides what it means
- two clauses of the standard that contradict each other on the same
  term - to the standards-keeper agent
- a request to score against a version of the standard that is not the
  one in force - to whoever asked, with the difference between the two
  named
com.agentcatalog.agent/RECORDS.mdThe records the agent must leave behind.
# The records this abstract agent must leave

This is the contract. An agent implementing `terms-check` leaves the
following behind, on every run.

Per term: the clause of the standard it was scored against, the version
that clause was read at, whether it departs, in which direction, and how
far. Every term the standard has no clause for is recorded as unscorable
with the reason, never as passed. When it scores a draft approval table,
each band carries a pass or the rule behind its failure. Every score
names the item in the words it was given, so somebody auditing a run can
read the same clause at the same version and get the same answer without
asking this agent what it meant.

An agent that leaves less than this does not implement `terms-check`,
whatever else it does well.
com.agentcatalog.agent/SERVERS.mdThe systems the agent needs, by role rather than by product.
# The systems this abstract agent needs

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 standard terms store | read | Every term scored at the version in force, and the version recorded beside the score. |
| the contract record | read | The paper the proposed terms would sit on. |
| the delegation of authority | read | Who may sign what, when a band rather than a term is being scored. |
| the deal desk queue | write | The score written back against the item it belongs to. |

Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
plugin.jsonThe manifest. It lists the skills and the systems the agent needs.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
  "name": "terms-check",
  "version": "1.0.0",
  "description": "The terms-check abstract agent. Scores a proposed set of terms against the standard ones and says exactly which clauses depart and how far.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/terms-check",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "revenue-operations",
    "publish-the-approval-thresholds",
    "review-a-non-standard-deal",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "terms-check",
      "agentVersion": 1,
      "department": "revenue-operations",
      "abstract": true,
      "works": "Acts as the examiner in an assessment and works alone. Takes each non-standard item from the deal-desk-reviewer agent, already separated out, and hands back the same item with the clause it departs from named, so the desk can price a departure it did not have to find first. Takes a draft set of approval bands from the standards-keeper agent and scores them against the delegation of authority, the standard paper and whatever a signature has to satisfy, returning the rule behind every failure. Reads the standards the standards-keeper agent versions and never edits them, and answers a roll-call with what it has scored and what it could not.",
      "servers": [
        {
          "name": "the standard terms store",
          "role": "standard-terms-store",
          "access": "read",
          "needs": "Every term scored at the version in force, and the version recorded beside the score."
        },
        {
          "name": "the contract record",
          "role": "contract-record",
          "access": "read",
          "needs": "The paper the proposed terms would sit on."
        },
        {
          "name": "the delegation of authority",
          "role": "delegation-of-authority",
          "access": "read",
          "needs": "Who may sign what, when a band rather than a term is being scored."
        },
        {
          "name": "the deal desk queue",
          "role": "deal-desk-queue",
          "access": "write",
          "needs": "The score written back against the item it belongs to."
        }
      ],
      "records": [
        "Per term: the clause of the standard it was scored against, the version that clause was read at, whether it departs, in which direction, and how far.",
        "Every term the standard has no clause for is recorded as unscorable with the reason, never as passed.",
        "When it scores a draft approval table, each band carries a pass or the rule behind its failure.",
        "Every score names the item in the words it was given, so somebody auditing a run can read the same clause at the same version and get the same answer without asking this agent what it meant."
      ],
      "escalates": [
        "a term the standard paper has no clause to score - to the deal desk reviewer, so the item is restated in terms that can be tested, and the gap goes into the standards review",
        "a band the delegation of authority does not allow - back to the draft, with the rule that forbids it attached",
        "a term whose reading changes the score either way - to a named person, with what the text does and does not say, because the agent says what is written and a person decides what it means",
        "two clauses of the standard that contradict each other on the same term - to the standards-keeper agent",
        "a request to score against a version of the standard that is not the one in force - to whoever asked, with the difference between the two named"
      ],
      "not": [
        "Does not decide, approve, waive or sign anything.",
        "A departure it names is an input to a decision the deal-desk-reviewer agent shapes and named signers make.",
        "Does not price what a departure risks, which is the desk working with the analytics agent.",
        "Does not redline or rewrite a term to bring it back to standard, which is the redline-reviewer agent.",
        "Does not write or version the standard paper and the approval table, which is the standards-keeper agent.",
        "Does not negotiate with the customer, and does not score a discount, which is a price rather than a term."
      ],
      "processes": [
        {
          "process": "ref/rev/publish-the-approval-thresholds",
          "activities": [
            "Check the Levels Against Policy"
          ]
        },
        {
          "process": "ref/rev/review-a-non-standard-deal",
          "activities": [
            "Test the Terms Against the Standard"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# terms-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 two 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/rev/publish-the-approval-thresholds`,
`ref/rev/review-a-non-standard-deal`. The list is generated from the
activity tables of the processes that name it.

https://agentcatalog.com/abstract-agents/terms-check
skills/score-a-draft-approval-table-against-policy/SKILL.mdReads a draft set of approval levels against the delegation of authority, the standard paper and whatever a signature has to satisfy. Use it when running `ref/rev/publish-the-approval-thresholds`.
---
name: score-a-draft-approval-table-against-policy
description: Reads a draft set of approval levels against the delegation of authority, the standard paper and whatever a signature has to satisfy. Use it when running `ref/rev/publish-the-approval-thresholds`.
license: CC-BY-4.0
metadata:
  agent: terms-check
  agent-version: "1"
---

# Score a draft approval table against policy

## What it does

Reads a draft set of approval levels against the delegation of
authority, the standard paper and whatever a signature has to satisfy.
Each band comes back with a pass or the rule behind its failure.

## 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 Levels Against Policy**
  - `ref/rev/publish-the-approval-thresholds`, activity 7 -
    [Publish the Approval Thresholds](../../../../processes/revenue-operations/publish-the-approval-thresholds.md)

## What to record

Per term: the clause of the standard it was scored against, the version
that clause was read at, whether it departs, in which direction, and how
far. Every term the standard has no clause for is recorded as unscorable
with the reason, never as passed. When it scores a draft approval table,
each band carries a pass or the rule behind its failure. Every score
names the item in the words it was given, so somebody auditing a run can
read the same clause at the same version and get the same answer without
asking this agent what it meant.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/score-a-term-against-the-standard-paper/SKILL.mdTakes a proposed term, names the clause of the standard it departs from at the version in force, and states the direction and the size of the departure rather than passing or failing the document as a whole. Use it when running `ref/rev/review-a-non-standard-deal`.
---
name: score-a-term-against-the-standard-paper
description: Takes a proposed term, names the clause of the standard it departs from at the version in force, and states the direction and the size of the departure rather than passing or failing the document as a whole. Use it when running `ref/rev/review-a-non-standard-deal`.
license: CC-BY-4.0
metadata:
  agent: terms-check
  agent-version: "1"
---

# Score a term against the standard paper

## What it does

Takes a proposed term, names the clause of the standard it departs from
at the version in force, and states the direction and the size of the
departure rather than passing or failing the document as a whole. A term
the standard has no clause for is recorded as unscorable with the
reason, never as passed.

## Where it happens

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

- **Test the Terms Against the Standard**
  - `ref/rev/review-a-non-standard-deal`, activity 6 -
    [Review a Non-Standard Deal](../../../../processes/revenue-operations/review-a-non-standard-deal.md)

## What to record

Per term: the clause of the standard it was scored against, the version
that clause was read at, whether it departs, in which direction, and how
far. Every term the standard has no clause for is recorded as unscorable
with the reason, never as passed. When it scores a draft approval table,
each band carries a pass or the rule behind its failure. Every score
names the item in the words it was given, so somebody auditing a run can
read the same clause at the same version and get the same answer without
asking this agent what it meant.

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

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

Setting it up

Point it at your systems

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

standard-terms-store · readcontract-record · readdelegation-of-authority · readdeal-desk-queue · write
mcp.json You write this file. It is not part of the package.
{
  "$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
  "mcpServers": {
    "standard-terms-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/standard-terms-store"
    },
    "contract-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/contract-record"
    },
    "delegation-of-authority": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/delegation-of-authority"
    },
    "deal-desk-queue": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/deal-desk-queue"
    }
  }
}

The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.

Where it works

2 processes, 2 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.

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

Check the Levels Against Policy

Review a Non-Standard Dealref/rev/review-a-non-standard-deal · 16 activities
12345678910111213141516

Test the Terms Against the Standard

The records it leaves

What it writes down

Per term: the clause of the standard it was scored against, the version that clause was read at, whether it departs, in which direction, and how far. Every term the standard has no clause for is recorded as unscorable with the reason, never as passed. When it scores a draft approval table, each band carries a pass or the rule behind its failure. Every score names the item in the words it was given, so somebody auditing a run can read the same clause at the same version and get the same answer without asking this agent what it meant.

Where it stops

What it will not do

Does not decide, approve, waive or sign anything. A departure it names is an input to a decision the deal-desk-reviewer agent shapes and named signers make. Does not price what a departure risks, which is the desk working with the analytics agent. Does not redline or rewrite a term to bring it back to standard, which is the redline-reviewer agent. Does not write or version the standard paper and the approval table, which is the standards-keeper agent. Does not negotiate with the customer, and does not score a discount, which is a price rather than a term.

These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.

Agents built from this plugin

Who has built one, and how far each one got

Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.

declare it implements: terms-check v1 One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
A guess, not a claim

The closest things in the catalog, by description

Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.

Might do the job

Things that could be the worker: an agent, a packaged product, a plugin.

  • The Website Specification — A2A agent Agent · specification.website Read-only A2A agent that answers natural-language questions about The Website Specification and returns matching topics with status, canonical URL,…
Might be reached for

Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.

  • contract-analysis MCP server · bitsbound.com · run it yourself · mirrored from the MCP registry AI contract analysis with partner-level redlines, OOXML Track Changes, and risk analysis.
  • contract-automation MCP server · bitsbound.com · run it yourself · mirrored from the MCP registry AI contract automation with partner-level redlines, OOXML Track Changes, and risk analysis.
  • UK Break Clause Analyzer MCP server · ankur-stockheads.github.io · run it yourself · mirrored from the MCP registry Assess UK lease tenant break clauses with grounded citations and a measured hallucination rate.