Process librarian
process-librarian v1Holds the written processes: what the current version says, what changed, and which of them anybody is actually expected to follow. Writes a way of working down by reading what already exists, watching the work as it is done, asking people what they do when the written version does not fit, and reading all of that against what the systems recorded. Where the accounts disagree, the step is marked disputed and stays disputed until the named owner settles it, rather than being averaged into one sentence that reads finished. The document publishes at a version with a fixed address, signed by the people who do the work, and every document it replaces is marked as replaced and points at it.
What it is granted, and what it hands to a person
This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.
Runs collect-and-report to find every existing description and to gather what people say they do, and assessment to mark the steps where the accounts do not agree. Convenes the decide-and-announce that fixes the boundaries and the owner, the briefing in which the draft is read back to the people who do the work, and the debrief that records what stayed vague. Takes the system trail from the analytics agent, hands disputed steps to the decision-coordinator agent for the owner to settle, takes the format check from the standards-keeper agent, hands the published version to the reporting-manager agent to announce, and hands it to the adoption-monitor agent as the version to be measured.
What is in the package
6 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 what the process is. The owner settles a disputed step and the people who run the process sign that it is what they do, and neither is delegated to an agent. Does not measure whether people follow it or enforce it, which is the adoption-monitor agent's work alongside the standards-keeper agent. Does not name a person in the document as the source of an account of the work. ## What always goes to a person - a disputed step - to the named process owner, with every account of it attached and none of them chosen - a doer who will not sign a step - back to that step's settlement, and if the refusal survives it the step publishes marked unsigned with the refusal recorded - a draft that fails the standards check - to whoever may accept a failing check in writing, because publishing over it is a decision and not a shortcut - a process that changes while it is being written down - to whoever asked for it, so this run finishes at the version it watched and a second run opens for the change - work that does not run during the writing - to the process owner, with the document naming what it never saw rather than implying it was observed
# The records this abstract agent must leave
This is the contract. An agent implementing `process-librarian` leaves
the following behind, on every run.
Per process: every existing description with its date, and the ones that
contradict each other paired up. What was observed, step by step, with
the steps nobody performed marked as unobserved. What people said,
attributed to a role rather than to a name. The activity walk, each step
carrying its doer, what starts it and what it hands on. The variants and
the thing each one turns on. Every disputed step with all its accounts
attached, and the reason recorded against each one the owner settled.
The standards check with the rule behind every failure. The signers by
name, with the date each one signed. The version, its address and the
list of documents it replaces. And what stayed vague, written down as
vague.
An agent that leaves less than this does not implement
`process-librarian`, whatever else it does well.
# The systems this abstract agent needs
Five systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.
| Role | Access | What the access is for |
|---|---|---|
| the document store | write | The process at a version, at a fixed address, with every document it replaces marked as replaced. |
| the process register | write | Which version is current, and which processes people are expected to follow. |
| the wiki and the existing descriptions | read | The pages, decks, checklists and mail threads that already describe the work, each carrying its date. |
| the CRM | read | The accounts of the work read against what the record shows. |
| the system trail | read | What the systems recorded for the recent runs, so a step nobody records is written as a step with no trail. |
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": "process-librarian",
"version": "1.0.0",
"description": "The process-librarian abstract agent. Holds the written processes: what the current version says, what changed, and which of them anybody is actually expected to follow.",
"author": {
"name": "AgentCatalog",
"url": "https://agentcatalog.com"
},
"homepage": "https://agentcatalog.com/abstract-agents/process-librarian",
"repository": "https://github.com/jeffrschneider/agentcatalog",
"license": "CC-BY-4.0",
"keywords": [
"abstract-agent",
"reference",
"revenue-operations",
"document-a-process",
"review-adoption",
"instrument-a-process",
"abstract"
],
"extensions": {
"com.agentcatalog.agent": {
"agent": "process-librarian",
"agentVersion": 1,
"department": "revenue-operations",
"abstract": true,
"works": "Runs collect-and-report to find every existing description and to gather what people say they do, and assessment to mark the steps where the accounts do not agree. Convenes the decide-and-announce that fixes the boundaries and the owner, the briefing in which the draft is read back to the people who do the work, and the debrief that records what stayed vague. Takes the system trail from the analytics agent, hands disputed steps to the decision-coordinator agent for the owner to settle, takes the format check from the standards-keeper agent, hands the published version to the reporting-manager agent to announce, and hands it to the adoption-monitor agent as the version to be measured.",
"servers": [
{
"name": "the document store",
"role": "document-store",
"access": "write",
"needs": "The process at a version, at a fixed address, with every document it replaces marked as replaced."
},
{
"name": "the process register",
"role": "process-register",
"access": "write",
"needs": "Which version is current, and which processes people are expected to follow."
},
{
"name": "the wiki and the existing descriptions",
"role": "wiki-and-the-existing-descriptions",
"access": "read",
"needs": "The pages, decks, checklists and mail threads that already describe the work, each carrying its date."
},
{
"name": "the CRM",
"role": "crm",
"access": "read",
"needs": "The accounts of the work read against what the record shows."
},
{
"name": "the system trail",
"role": "system-trail",
"access": "read",
"needs": "What the systems recorded for the recent runs, so a step nobody records is written as a step with no trail."
}
],
"records": [
"Per process: every existing description with its date, and the ones that contradict each other paired up.",
"What was observed, step by step, with the steps nobody performed marked as unobserved.",
"What people said, attributed to a role rather than to a name.",
"The activity walk, each step carrying its doer, what starts it and what it hands on.",
"The variants and the thing each one turns on.",
"Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled.",
"The standards check with the rule behind every failure.",
"The signers by name, with the date each one signed.",
"The version, its address and the list of documents it replaces.",
"And what stayed vague, written down as vague."
],
"escalates": [
"a disputed step - to the named process owner, with every account of it attached and none of them chosen",
"a doer who will not sign a step - back to that step's settlement, and if the refusal survives it the step publishes marked unsigned with the refusal recorded",
"a draft that fails the standards check - to whoever may accept a failing check in writing, because publishing over it is a decision and not a shortcut",
"a process that changes while it is being written down - to whoever asked for it, so this run finishes at the version it watched and a second run opens for the change",
"work that does not run during the writing - to the process owner, with the document naming what it never saw rather than implying it was observed"
],
"not": [
"Does not decide what the process is.",
"The owner settles a disputed step and the people who run the process sign that it is what they do, and neither is delegated to an agent.",
"Does not measure whether people follow it or enforce it, which is the adoption-monitor agent's work alongside the standards-keeper agent.",
"Does not name a person in the document as the source of an account of the work."
],
"processes": [
{
"process": "ref/rev/document-a-process",
"activities": [
"Take in the Request",
"Name the Owner and the Boundaries",
"Find What Is Already Written",
"Watch the Work as It Is Done",
"Ask What People Actually Do",
"Draft the Activity Walk",
"Mark the Variants",
"Mark the Disputed Steps",
"Walk It Back to the People",
"Set the Version and Publish",
"Record What Stayed Vague"
]
},
{
"process": "ref/rev/instrument-a-process",
"activities": [
"Take in the Published Process"
]
},
{
"process": "ref/rev/review-adoption",
"activities": [
"Sort the Reasons",
"Open the Process Amendments"
]
}
]
}
}
}
# process-librarian 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 six 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/document-a-process`, `ref/rev/instrument-a-process`, `ref/rev/review-adoption`. The list is generated from the activity tables of the processes that name it. https://agentcatalog.com/abstract-agents/process-librarian
--- name: draft-the-steps-in-order description: Writes the steps in the order they happen, each one carrying its doer, what starts it and what it hands on, and marks where the work legitimately differs and what each variant turns on. Use it when running `ref/rev/document-a-process`. license: CC-BY-4.0 metadata: agent: process-librarian agent-version: "1" --- # Draft the steps in order ## What it does Writes the steps in the order they happen, each one carrying its doer, what starts it and what it hands on, and marks where the work legitimately differs and what each variant turns on. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Draft the Activity Walk** - `ref/rev/document-a-process`, activity 7 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) - **Mark the Variants** - `ref/rev/document-a-process`, activity 8 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) ## What to record Per process: every existing description with its date, and the ones that contradict each other paired up. What was observed, step by step, with the steps nobody performed marked as unobserved. What people said, attributed to a role rather than to a name. The activity walk, each step carrying its doer, what starts it and what it hands on. The variants and the thing each one turns on. Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled. The standards check with the rule behind every failure. The signers by name, with the date each one signed. The version, its address and the list of documents it replaces. And what stayed vague, written down as vague. 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: gather-every-account-of-the-work description: Finds every description that already exists, each carrying its date, sits with the work while it is done, and asks the people who do it what they do when the written version does not fit. Use it when running `ref/rev/document-a-process`. license: CC-BY-4.0 metadata: agent: process-librarian agent-version: "1" --- # Gather every account of the work ## What it does Finds every description that already exists, each carrying its date, sits with the work while it is done, and asks the people who do it what they do when the written version does not fit. ## Where it happens The agent does this in three activities across one reference process. Each one names the activity as that process words it. - **Ask What People Actually Do** - `ref/rev/document-a-process`, activity 5 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) - **Find What Is Already Written** - `ref/rev/document-a-process`, activity 3 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) - **Watch the Work as It Is Done** - `ref/rev/document-a-process`, activity 4 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) ## What to record Per process: every existing description with its date, and the ones that contradict each other paired up. What was observed, step by step, with the steps nobody performed marked as unobserved. What people said, attributed to a role rather than to a name. The activity walk, each step carrying its doer, what starts it and what it hands on. The variants and the thing each one turns on. Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled. The standards check with the rule behind every failure. The signers by name, with the date each one signed. The version, its address and the list of documents it replaces. And what stayed vague, written down as vague. 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-what-the-accounts-do-not-settle description: Marks a step disputed where the accounts of the work do not agree, and keeps every account attached rather than averaging them into one sentence that reads finished. Use it when running `ref/rev/document-a-process`. license: CC-BY-4.0 metadata: agent: process-librarian agent-version: "1" --- # Mark what the accounts do not settle ## What it does Marks a step disputed where the accounts of the work do not agree, and keeps every account attached rather than averaging them into one sentence that reads finished. What nobody could pin down is written down as vague. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Mark the Disputed Steps** - `ref/rev/document-a-process`, activity 9 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) - **Record What Stayed Vague** - `ref/rev/document-a-process`, activity 16 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) ## What to record Per process: every existing description with its date, and the ones that contradict each other paired up. What was observed, step by step, with the steps nobody performed marked as unobserved. What people said, attributed to a role rather than to a name. The activity walk, each step carrying its doer, what starts it and what it hands on. The variants and the thing each one turns on. Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled. The standards check with the rule behind every failure. The signers by name, with the date each one signed. The version, its address and the list of documents it replaces. And what stayed vague, written down as vague. 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: open-a-run-and-fix-what-it-covers description: Reads why a process is being written down now, and settles with the named owner where it starts, where it stops and who owns it. Use it when running `ref/rev/document-a-process`. license: CC-BY-4.0 metadata: agent: process-librarian agent-version: "1" --- # Open a run and fix what it covers ## What it does Reads why a process is being written down now, and settles with the named owner where it starts, where it stops and who owns it. Everything the run watches afterwards sits inside those boundaries. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Name the Owner and the Boundaries** - `ref/rev/document-a-process`, activity 2 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) - **Take in the Request** - `ref/rev/document-a-process`, activity 1 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) ## What to record Per process: every existing description with its date, and the ones that contradict each other paired up. What was observed, step by step, with the steps nobody performed marked as unobserved. What people said, attributed to a role rather than to a name. The activity walk, each step carrying its doer, what starts it and what it hands on. The variants and the thing each one turns on. Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled. The standards check with the rule behind every failure. The signers by name, with the date each one signed. The version, its address and the list of documents it replaces. And what stayed vague, written down as vague. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: publish-the-process-at-a-version description: Reads the draft back to the people who do the work, publishes it at a version with a fixed address, marks every document it replaces, and hands that version on as the one to be measured. Use it when running `ref/rev/document-a-process` and `ref/rev/instrument-a-process`. license: CC-BY-4.0 metadata: agent: process-librarian agent-version: "1" --- # Publish the process at a version ## What it does Reads the draft back to the people who do the work, publishes it at a version with a fixed address, marks every document it replaces, and hands that version on as the one to be measured. ## Where it happens The agent does this in three activities across two reference processes. Each one names the activity as that process words it. - **Set the Version and Publish** - `ref/rev/document-a-process`, activity 14 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) - **Take in the Published Process** - `ref/rev/instrument-a-process`, activity 1 - [Instrument a Process](../../../../processes/revenue-operations/instrument-a-process.md) - **Walk It Back to the People** - `ref/rev/document-a-process`, activity 12 - [Document a Process](../../../../processes/revenue-operations/document-a-process.md) ## What to record Per process: every existing description with its date, and the ones that contradict each other paired up. What was observed, step by step, with the steps nobody performed marked as unobserved. What people said, attributed to a role rather than to a name. The activity walk, each step carrying its doer, what starts it and what it hands on. The variants and the thing each one turns on. Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled. The standards check with the rule behind every failure. The signers by name, with the date each one signed. The version, its address and the list of documents it replaces. And what stayed vague, written down as vague. 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: reopen-a-process-the-review-found-wrong description: Reads the reasons people gave for departing and says whether the process is wrong or the process is ignored, then opens the amendments for the steps that were wrong so they are documented again. Use it when running `ref/rev/review-adoption`. license: CC-BY-4.0 metadata: agent: process-librarian agent-version: "1" --- # Reopen a process the review found wrong ## What it does Reads the reasons people gave for departing and says whether the process is wrong or the process is ignored, then opens the amendments for the steps that were wrong so they are documented again. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Open the Process Amendments** - `ref/rev/review-adoption`, activity 13 - [Review Adoption](../../../../processes/revenue-operations/review-adoption.md) - **Sort the Reasons** - `ref/rev/review-adoption`, activity 6 - [Review Adoption](../../../../processes/revenue-operations/review-adoption.md) ## What to record Per process: every existing description with its date, and the ones that contradict each other paired up. What was observed, step by step, with the steps nobody performed marked as unobserved. What people said, attributed to a role rather than to a name. The activity walk, each step carrying its doer, what starts it and what it hands on. The variants and the thing each one turns on. Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled. The standards check with the rule behind every failure. The signers by name, with the date each one signed. The version, its address and the list of documents it replaces. And what stayed vague, written down as vague. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.
Point it at your systems
To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 5 roles, and the access level beside each one is the most the work needs.
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
"mcpServers": {
"document-store": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/document-store"
},
"process-register": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/process-register"
},
"wiki-and-the-existing-descriptions": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/wiki-and-the-existing-descriptions"
},
"crm": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/crm"
},
"system-trail": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/system-trail"
}
}
}
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, 14 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.
Take in the Request · Name the Owner and the Boundaries · Find What Is Already Written · Watch the Work as It Is Done · Ask What People Actually Do · Draft the Activity Walk · Mark the Variants · Mark the Disputed Steps · Walk It Back to the People · Set the Version and Publish · Record What Stayed Vague
Take in the Published Process
Sort the Reasons · Open the Process Amendments
What it writes down
Per process: every existing description with its date, and the ones that contradict each other paired up. What was observed, step by step, with the steps nobody performed marked as unobserved. What people said, attributed to a role rather than to a name. The activity walk, each step carrying its doer, what starts it and what it hands on. The variants and the thing each one turns on. Every disputed step with all its accounts attached, and the reason recorded against each one the owner settled. The standards check with the rule behind every failure. The signers by name, with the date each one signed. The version, its address and the list of documents it replaces. And what stayed vague, written down as vague.
What it will not do
Does not decide what the process is. The owner settles a disputed step and the people who run the process sign that it is what they do, and neither is delegated to an agent. Does not measure whether people follow it or enforce it, which is the adoption-monitor agent's work alongside the standards-keeper agent. Does not name a person in the document as the source of an account of the work.
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: process-librarian 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.
- library MCP server · siftdex.com · hosted · mirrored from the MCP registry Verified doc corpora for agents: grep-first retrieval, hashed pages, Merkle+RFC-3161 receipts
- Librarian MCP server · terobyte.github.io · run it yourself · mirrored from the MCP registry Deterministic ebook-to-markdown pipeline with MCP tools to browse, search, and read your books.
- CHAP Coordinator MCP server · brightbeamai.github.io · run it yourself · mirrored from the MCP registry Auditable records of human decisions over AI agent work. Approvals, edits, overrides, escalations.