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

Integration keeper

integration-keeper v1

Holds what flows between systems: which records move where, in which direction, how often, and what breaks when one end changes. It agrees the flows field by field before anything is built, gets a decision on which side is right when the two disagree, proves the link away from live data, and switches it on with a written way back. It keeps the record of what flows where at a version, so anybody can read what a system is fed and what reads it without opening the link. When a tool is going, it finds everything that depends on it and stops the links on the record rather than quietly.

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/administer-a-toolref/rev/choose-a-toolref/rev/integrate-a-toolGRANTEDthe flow recordwrite — every field that moves, its direction,a non-live environmentwrite — the link is built and broken where no the systems either sideread — what each one already holds, so a flow the tool and the system of recordwrite — only once the review has cleared and tthe credential storeread — the link runs under its own credentialsthe stack recordread — the entry the link belongs to, and the THE ABSTRACT AGENTintegration-keeperv1holds what flows between…HANDS TO A PERSONtwo systems that mean…a person decidestwo owners who cannot…a person decidesa link that is losing…a person decidesa difference in the counts…a person decidesa link that would reach…a person decidesMUST FOLLOWcollect-and-reportdecide-and-announcebriefingassessmentdebrief

Sits in the briefing that opens a tool evaluation and brings the systems either side with it. Convenes the decide-and-announce that names the system of record field by field. Runs assessment three times on a new link: a known set moved and counted on both sides, the link broken on purpose to see what it retries and drops, and the counts reconciled after it goes live. Requests the security review that has to clear before anything is switched on, runs roll-call on status while the flows are being agreed, and convenes the debrief at the end. Runs collect-and-report to find everything that depends on a tool being retired. Takes the chosen tool from the stack-planner agent, takes the definition check from the standards-keeper agent, works the counts with the analytics agent, and hands the live link to the tool-administrator agent.

The plugin

What is in the package

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

integration-keeper · 12 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 clear the security review that has to pass before a link goes
live, which is a person. Does not run the tool once the link is handed
over: accounts, licences and configuration are the tool-administrator
agent. Does not decide what a field means, which is the standards-keeper
agent for a measure and the data-steward agent for a record. Does not
choose the tool or decide to retire it, which is the stack-planner
agent. Does not fix bad data arriving through a link, which goes to the
data-quality-check agent as a failure to be traced to its source.

## What always goes to a person

- two systems that mean different things by one field, to the
  standards-keeper agent and both owners. The field gets one definition
  or it stops flowing.
- two owners who cannot agree which side is right, to whoever names the
  system of record, with both positions attached and the answer recorded
  against the field
- a link that is losing records, which is switched off rather than left
  running while somebody works out why
- a difference in the counts nobody can explain, which is never signed
  off as rounding
- a link that would reach more than the agreed flows need, to the
  security reviewer, before it is built any further
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 `integration-keeper` leaves
the following behind, on every run.

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

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

Six 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 flow record | write | Every field that moves, its direction, its cadence and the system that is right about it, at a version. |
| a non-live environment | write | The link is built and broken where no real record is written. |
| the systems either side | read | What each one already holds, so a flow is agreed against what is there rather than what was assumed. |
| the tool and the system of record | write | Only once the review has cleared and the link is switched on. |
| the credential store | read | The link runs under its own credentials, and this agent reads what they reach rather than widening them. |
| the stack record | read | The entry the link belongs to, and the process the tool is there to run. |

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": "integration-keeper",
  "version": "1.0.0",
  "description": "The integration-keeper abstract agent. Holds what flows between systems: which records move where, in which direction, how often, and what breaks when one end changes.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/integration-keeper",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "revenue-operations",
    "integrate-a-tool",
    "retire-a-tool",
    "administer-a-tool",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "integration-keeper",
      "agentVersion": 1,
      "department": "revenue-operations",
      "abstract": true,
      "works": "Sits in the briefing that opens a tool evaluation and brings the systems either side with it. Convenes the decide-and-announce that names the system of record field by field. Runs assessment three times on a new link: a known set moved and counted on both sides, the link broken on purpose to see what it retries and drops, and the counts reconciled after it goes live. Requests the security review that has to clear before anything is switched on, runs roll-call on status while the flows are being agreed, and convenes the debrief at the end. Runs collect-and-report to find everything that depends on a tool being retired. Takes the chosen tool from the stack-planner agent, takes the definition check from the standards-keeper agent, works the counts with the analytics agent, and hands the live link to the tool-administrator agent.",
      "servers": [
        {
          "name": "the flow record",
          "role": "flow-record",
          "access": "write",
          "needs": "Every field that moves, its direction, its cadence and the system that is right about it, at a version."
        },
        {
          "name": "a non-live environment",
          "role": "non-live-environment",
          "access": "write",
          "needs": "The link is built and broken where no real record is written."
        },
        {
          "name": "the systems either side",
          "role": "systems-either-side",
          "access": "read",
          "needs": "What each one already holds, so a flow is agreed against what is there rather than what was assumed."
        },
        {
          "name": "the tool and the system of record",
          "role": "tool-and-the-system-of-record",
          "access": "write",
          "needs": "Only once the review has cleared and the link is switched on."
        },
        {
          "name": "the credential store",
          "role": "credential-store",
          "access": "read",
          "needs": "The link runs under its own credentials, and this agent reads what they reach rather than widening them."
        },
        {
          "name": "the stack record",
          "role": "stack-record",
          "access": "read",
          "needs": "The entry the link belongs to, and the process the tool is there to run."
        }
      ],
      "records": [
        "Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree.",
        "The known set moved through the link with the counts on both sides, field by field, and every difference.",
        "The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose.",
        "The cleared review with the date it was signed and every finding accepted rather than fixed.",
        "The date and hour it went live, and the way back as it was written down before the switch.",
        "The first runs and the reconciled counts, dated, with the reason behind every difference where one is known.",
        "The record of what flows where at its version, naming the fields it does not yet cover.",
        "When a link stops, what it was carrying and where that now comes from."
      ],
      "escalates": [
        "two systems that mean different things by one field, to the standards-keeper agent and both owners. The field gets one definition or it stops flowing.",
        "two owners who cannot agree which side is right, to whoever names the system of record, with both positions attached and the answer recorded against the field",
        "a link that is losing records, which is switched off rather than left running while somebody works out why",
        "a difference in the counts nobody can explain, which is never signed off as rounding",
        "a link that would reach more than the agreed flows need, to the security reviewer, before it is built any further"
      ],
      "not": [
        "Does not clear the security review that has to pass before a link goes live, which is a person.",
        "Does not run the tool once the link is handed over: accounts, licences and configuration are the tool-administrator agent.",
        "Does not decide what a field means, which is the standards-keeper agent for a measure and the data-steward agent for a record.",
        "Does not choose the tool or decide to retire it, which is the stack-planner agent.",
        "Does not fix bad data arriving through a link, which goes to the data-quality-check agent as a failure to be traced to its source."
      ],
      "processes": [
        {
          "process": "ref/rev/administer-a-tool",
          "activities": [
            "Try the Change away from Live",
            "Check the Links Still Carry"
          ]
        },
        {
          "process": "ref/rev/choose-a-tool",
          "activities": [
            "Brief the Evaluation",
            "Map What It Must Connect To"
          ]
        },
        {
          "process": "ref/rev/integrate-a-tool",
          "activities": [
            "Take in the Chosen Tool",
            "Name the Systems Either Side",
            "Agree What Flows Where",
            "Decide Which Side Wins",
            "Build the Link away from Live",
            "Move a Known Set and Compare",
            "Test What Happens When It Breaks",
            "Review the Link before It Is Live",
            "Switch It On",
            "Watch the First Runs",
            "Reconcile the Two Sides",
            "Write down What Flows Where",
            "Hand It to the Administrator",
            "Record What Was Learned"
          ]
        },
        {
          "process": "ref/rev/retire-a-tool",
          "activities": [
            "Find What Depends on It",
            "Take the Export",
            "Turn Off the Links"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# integration-keeper

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 seven 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/administer-a-tool`, `ref/rev/choose-a-tool`,
`ref/rev/integrate-a-tool`, `ref/rev/retire-a-tool`. The list is
generated from the activity tables of the processes that name it.

https://agentcatalog.com/abstract-agents/integration-keeper
skills/agree-the-flows-field-by-field/SKILL.mdNames the system on each side with the person who owns it, agrees every field that moves with its direction, its cadence and what starts the move, and gets a decision on which side is right where the two owners disagree. Use it when running `ref/rev/integrate-a-tool`.
---
name: agree-the-flows-field-by-field
description: Names the system on each side with the person who owns it, agrees every field that moves with its direction, its cadence and what starts the move, and gets a decision on which side is right where the two owners disagree. Use it when running `ref/rev/integrate-a-tool`.
license: CC-BY-4.0
metadata:
  agent: integration-keeper
  agent-version: "1"
---

# Agree the flows field by field

## What it does

Names the system on each side with the person who owns it, agrees every
field that moves with its direction, its cadence and what starts the
move, and gets a decision on which side is right where the two owners
disagree.

## Where it happens

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

- **Agree What Flows Where**
  - `ref/rev/integrate-a-tool`, activity 3 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Decide Which Side Wins**
  - `ref/rev/integrate-a-tool`, activity 5 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Name the Systems Either Side**
  - `ref/rev/integrate-a-tool`, activity 2 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)

## What to record

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

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/hand-a-live-link-over-and-keep-checking-it/SKILL.mdHands the running link to whoever administers the tool, with the flow record, the credentials and the date it is next checked, and reads it again on that cadence to see it still carries. Use it when running `ref/rev/administer-a-tool` and `ref/rev/integrate-a-tool`.
---
name: hand-a-live-link-over-and-keep-checking-it
description: Hands the running link to whoever administers the tool, with the flow record, the credentials and the date it is next checked, and reads it again on that cadence to see it still carries. Use it when running `ref/rev/administer-a-tool` and `ref/rev/integrate-a-tool`.
license: CC-BY-4.0
metadata:
  agent: integration-keeper
  agent-version: "1"
---

# Hand a live link over and keep checking it

## What it does

Hands the running link to whoever administers the tool, with the flow
record, the credentials and the date it is next checked, and reads it
again on that cadence to see it still carries.

## Where it happens

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

- **Check the Links Still Carry**
  - `ref/rev/administer-a-tool`, activity 10 -
    [Administer a Tool](../../../../processes/revenue-operations/administer-a-tool.md)
- **Hand It to the Administrator**
  - `ref/rev/integrate-a-tool`, activity 15 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)

## What to record

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/name-what-a-tool-must-connect-to/SKILL.mdBrings the systems either side into the evaluation of a tool, says what that tool would have to connect to, and takes the tool once it has been chosen. Use it when running `ref/rev/choose-a-tool` and `ref/rev/integrate-a-tool`.
---
name: name-what-a-tool-must-connect-to
description: Brings the systems either side into the evaluation of a tool, says what that tool would have to connect to, and takes the tool once it has been chosen. Use it when running `ref/rev/choose-a-tool` and `ref/rev/integrate-a-tool`.
license: CC-BY-4.0
metadata:
  agent: integration-keeper
  agent-version: "1"
---

# Name what a tool must connect to

## What it does

Brings the systems either side into the evaluation of a tool, says what
that tool would have to connect to, and takes the tool once it has been
chosen.

## Where it happens

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

- **Brief the Evaluation**
  - `ref/rev/choose-a-tool`, activity 6 -
    [Choose a Tool](../../../../processes/revenue-operations/choose-a-tool.md)
- **Map What It Must Connect To**
  - `ref/rev/choose-a-tool`, activity 7 -
    [Choose a Tool](../../../../processes/revenue-operations/choose-a-tool.md)
- **Take in the Chosen Tool**
  - `ref/rev/integrate-a-tool`, activity 1 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)

## What to record

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

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/prove-a-link-away-from-live/SKILL.mdBuilds the link where no real record is written, moves a known set and counts both sides field by field, and breaks the link on purpose to see what it retries, duplicates, drops and queues. Use it when running `ref/rev/administer-a-tool` and `ref/rev/integrate-a-tool`.
---
name: prove-a-link-away-from-live
description: Builds the link where no real record is written, moves a known set and counts both sides field by field, and breaks the link on purpose to see what it retries, duplicates, drops and queues. Use it when running `ref/rev/administer-a-tool` and `ref/rev/integrate-a-tool`.
license: CC-BY-4.0
metadata:
  agent: integration-keeper
  agent-version: "1"
---

# Prove a link away from live

## What it does

Builds the link where no real record is written, moves a known set and
counts both sides field by field, and breaks the link on purpose to see
what it retries, duplicates, drops and queues. A change to a link
already running is tried the same way.

## Where it happens

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

- **Build the Link away from Live**
  - `ref/rev/integrate-a-tool`, activity 7 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Move a Known Set and Compare**
  - `ref/rev/integrate-a-tool`, activity 8 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Test What Happens When It Breaks**
  - `ref/rev/integrate-a-tool`, activity 9 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Try the Change away from Live**
  - `ref/rev/administer-a-tool`, activity 6 -
    [Administer a Tool](../../../../processes/revenue-operations/administer-a-tool.md)

## What to record

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

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/stop-the-links-when-a-tool-goes/SKILL.mdFinds everything that depends on a tool being retired, takes the export while the tool still runs, and stops each link on the record, saying what it was carrying and where that now comes from. Use it when running `ref/rev/retire-a-tool`.
---
name: stop-the-links-when-a-tool-goes
description: Finds everything that depends on a tool being retired, takes the export while the tool still runs, and stops each link on the record, saying what it was carrying and where that now comes from. Use it when running `ref/rev/retire-a-tool`.
license: CC-BY-4.0
metadata:
  agent: integration-keeper
  agent-version: "1"
---

# Stop the links when a tool goes

## What it does

Finds everything that depends on a tool being retired, takes the export
while the tool still runs, and stops each link on the record, saying
what it was carrying and where that now comes from.

## Where it happens

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

- **Find What Depends on It**
  - `ref/rev/retire-a-tool`, activity 2 -
    [Retire a Tool](../../../../processes/revenue-operations/retire-a-tool.md)
- **Take the Export**
  - `ref/rev/retire-a-tool`, activity 7 -
    [Retire a Tool](../../../../processes/revenue-operations/retire-a-tool.md)
- **Turn Off the Links**
  - `ref/rev/retire-a-tool`, activity 9 -
    [Retire a Tool](../../../../processes/revenue-operations/retire-a-tool.md)

## What to record

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

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/switch-a-link-on-and-watch-it/SKILL.mdPuts the link through the review that has to clear, switches it on with a written way back, watches the first runs, and reconciles the counts on both sides afterwards. Use it when running `ref/rev/integrate-a-tool`.
---
name: switch-a-link-on-and-watch-it
description: Puts the link through the review that has to clear, switches it on with a written way back, watches the first runs, and reconciles the counts on both sides afterwards. Use it when running `ref/rev/integrate-a-tool`.
license: CC-BY-4.0
metadata:
  agent: integration-keeper
  agent-version: "1"
---

# Switch a link on and watch it

## What it does

Puts the link through the review that has to clear, switches it on with
a written way back, watches the first runs, and reconciles the counts on
both sides afterwards. A difference nobody can explain is never signed
off as rounding.

## Where it happens

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

- **Reconcile the Two Sides**
  - `ref/rev/integrate-a-tool`, activity 13 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Review the Link before It Is Live**
  - `ref/rev/integrate-a-tool`, activity 10 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Switch It On**
  - `ref/rev/integrate-a-tool`, activity 11 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Watch the First Runs**
  - `ref/rev/integrate-a-tool`, activity 12 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)

## What to record

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

That contract covers every activity this abstract agent takes on, and it
is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract
agent does not do is in `com.agentcatalog.agent/NOT.md`.
skills/write-down-what-flows-where/SKILL.mdKeeps the record of what flows where at a version, naming the fields it does not yet cover, so anybody can read what a system is fed and what reads it without opening the link. Use it when running `ref/rev/integrate-a-tool`.
---
name: write-down-what-flows-where
description: Keeps the record of what flows where at a version, naming the fields it does not yet cover, so anybody can read what a system is fed and what reads it without opening the link. Use it when running `ref/rev/integrate-a-tool`.
license: CC-BY-4.0
metadata:
  agent: integration-keeper
  agent-version: "1"
---

# Write down what flows where

## What it does

Keeps the record of what flows where at a version, naming the fields it
does not yet cover, so anybody can read what a system is fed and what
reads it without opening the link. Files what the build taught.

## Where it happens

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

- **Record What Was Learned**
  - `ref/rev/integrate-a-tool`, activity 16 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)
- **Write down What Flows Where**
  - `ref/rev/integrate-a-tool`, activity 14 -
    [Integrate a Tool](../../../../processes/revenue-operations/integrate-a-tool.md)

## What to record

Per link: the systems either side with the person who owns each, the
agreed flows at a version naming every field, its direction, its cadence
and what starts the move, and the system of record per field with who
decided where the owners could not agree. The known set moved through
the link with the counts on both sides, field by field, and every
difference. The failure test, saying what the link retried, duplicated,
dropped and queued when it was broken on purpose. The cleared review
with the date it was signed and every finding accepted rather than
fixed. The date and hour it went live, and the way back as it was
written down before the switch. The first runs and the reconciled
counts, dated, with the reason behind every difference where one is
known. The record of what flows where at its version, naming the fields
it does not yet cover. When a link stops, what it was carrying and where
that now comes from.

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 6 roles, and the access level beside each one is the most the work needs.

flow-record · writenon-live-environment · writesystems-either-side · readtool-and-the-system-of-record · writecredential-store · readstack-record · read
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": {
    "flow-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/flow-record"
    },
    "non-live-environment": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/non-live-environment"
    },
    "systems-either-side": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/systems-either-side"
    },
    "tool-and-the-system-of-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/tool-and-the-system-of-record"
    },
    "credential-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/credential-store"
    },
    "stack-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/stack-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.

Where it works

4 processes, 21 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.

Administer a Toolref/rev/administer-a-tool · 15 activities
123456789101112131415

Try the Change away from Live · Check the Links Still Carry

Choose a Toolref/rev/choose-a-tool · 18 activities
123456789101112131415161718

Brief the Evaluation · Map What It Must Connect To

Integrate a Toolref/rev/integrate-a-tool · 16 activities
12345678910111213141516

Take in the Chosen Tool · Name the Systems Either Side · Agree What Flows Where · Decide Which Side Wins · Build the Link away from Live · Move a Known Set and Compare · Test What Happens When It Breaks · Review the Link before It Is Live · Switch It On · Watch the First Runs · Reconcile the Two Sides · Write down What Flows Where · Hand It to the Administrator · Record What Was Learned

Retire a Toolref/rev/retire-a-tool · 15 activities
123456789101112131415

Find What Depends on It · Take the Export · Turn Off the Links

The records it leaves

What it writes down

Per link: the systems either side with the person who owns each, the agreed flows at a version naming every field, its direction, its cadence and what starts the move, and the system of record per field with who decided where the owners could not agree. The known set moved through the link with the counts on both sides, field by field, and every difference. The failure test, saying what the link retried, duplicated, dropped and queued when it was broken on purpose. The cleared review with the date it was signed and every finding accepted rather than fixed. The date and hour it went live, and the way back as it was written down before the switch. The first runs and the reconciled counts, dated, with the reason behind every difference where one is known. The record of what flows where at its version, naming the fields it does not yet cover. When a link stops, what it was carrying and where that now comes from.

Where it stops

What it will not do

Does not clear the security review that has to pass before a link goes live, which is a person. Does not run the tool once the link is handed over: accounts, licences and configuration are the tool-administrator agent. Does not decide what a field means, which is the standards-keeper agent for a measure and the data-steward agent for a record. Does not choose the tool or decide to retire it, which is the stack-planner agent. Does not fix bad data arriving through a link, which goes to the data-quality-check agent as a failure to be traced to its source.

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: integration-keeper v1 One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
A guess, not a claim

The closest things in the catalog, by description

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

Might be reached for

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

  • Reality Graph Verification Tools MCP server · realitygraph.dev · hosted · mirrored from the MCP registry Read-only AI coding tools for change verification, release readiness, capacity, and guidance.
  • INVARA MCP server · jujitae.github.io · run it yourself · mirrored from the MCP registry Independent verification that a change kept its declared constraints. No model in the verdict path.
  • Runlog MCP server · runlog.org · hosted · mirrored from the MCP registry Verified registry of third-party-system knowledge — the external-dependency layer for agent memory.