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

Territory modeler

territory-modeler v1

Cuts a market into territories a person can actually work, and says what each one can carry. Fixes the rule the carve is drawn on before anything is drawn, sizes the account base, draws candidate maps on that rule, and models every patch against what closed before. The map it fixes carries its version, the rule behind it, and the assumption under every carrying number. This is the agent that draws the map, not the one that puts a number on it.

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/model-the-territoriesref/rev/move-an-accountref/rev/publish-the-carveGRANTEDthe account recordread — the fields the carve rule is cut onthe CRMread — what each account buys todaythe reporting warehouseread — what the patches closed beforethe territory mapwrite — the candidate maps and the fixed onethe model storewrite — the carrying model and its assumptionsTHE ABSTRACT AGENTterritory-modelerv1cuts a market into…HANDS TO A PERSONan account whose fields…to the data steward by name,…a patch nobody has the…to the sales leader, named…no candidate cut that…to the leaders, saying which…an account claimed by two…to whoever amends the rule,…the carve rule changed…to the leaders, who are told…MUST FOLLOWbuild-by-talentdecide-and-announce

Draws and models under build-by-talent, sits in the decide-and-announce where leaders fix the carve rule and where they choose one map, and takes the balance finding back from the coverage-check agent. Takes the sized account base from the account-monitor and analytics agents, works the carrying model beside the statistician agent, and hands the fixed map and its carrying numbers to the quota-setter agent.

The plugin

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.

territory-modeler · 11 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 set quotas. The number on a patch belongs to the quota-setter
agent, and this agent hands it the map and what each patch carries. Does
not choose which candidate map wins, because that is a named person's
decision and never the average of the candidates. Does not move an
account on its own: a move needs a line of the carve that allows it and
a person who decides it.

## What always goes to a person

- an account whose fields the carve rule cannot read - to the data
  steward by name, rather than placed by a guess
- a patch nobody has the capacity to work - to the sales leader, named
  as a gap, with the accounts and the ground behind the finding
- no candidate cut that passes balance and cost - to the leaders, saying
  which constraint has to move: the segments, the headcount or the
  target
- an account claimed by two territories where the rule is silent - to
  whoever amends the rule, because the map does not publish with one
- the carve rule changed after the maps are drawn - to the leaders, who
  are told the drawn maps are void before the draw runs again
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 `territory-modeler` leaves
the following behind, on every run.

Per run: the carve rule as it was agreed and the fields it reads, each
candidate map with every account placed exactly once, and a carrying
number per patch naming the data it was computed from. A number that
cannot name its source is marked unsourced where a reader sees it. The
maps that lost are kept, each with the reason it lost. The fixed map
carries its version, the rule it was drawn on and the date it takes
effect, and beside every carrying number sits the assumption it rests on
and what would make that assumption wrong. Anybody auditing a run can
redraw it from what is written down.

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

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 account record | read | The fields the carve rule is cut on. |
| the CRM | read | What each account buys today. |
| the reporting warehouse | read | What the patches closed before. |
| the territory map | write | The candidate maps and the fixed one. |
| the model store | write | The carrying model and its assumptions. |

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": "territory-modeler",
  "version": "1.0.0",
  "description": "The territory-modeler abstract agent. Cuts a market into territories a person can actually work, and says what each one can carry. Fixes the rule the carve is drawn on before anything is drawn, sizes the account base, draws candidate maps on that rule, and models every patch against what closed before.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/territory-modeler",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "revenue-operations",
    "model-the-territories",
    "publish-the-carve",
    "move-an-account",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "territory-modeler",
      "agentVersion": 1,
      "department": "revenue-operations",
      "abstract": true,
      "works": "Draws and models under build-by-talent, sits in the decide-and-announce where leaders fix the carve rule and where they choose one map, and takes the balance finding back from the coverage-check agent. Takes the sized account base from the account-monitor and analytics agents, works the carrying model beside the statistician agent, and hands the fixed map and its carrying numbers to the quota-setter agent.",
      "servers": [
        {
          "name": "the account record",
          "role": "account-record",
          "access": "read",
          "needs": "The fields the carve rule is cut on."
        },
        {
          "name": "the CRM",
          "role": "crm",
          "access": "read",
          "needs": "What each account buys today."
        },
        {
          "name": "the reporting warehouse",
          "role": "reporting-warehouse",
          "access": "read",
          "needs": "What the patches closed before."
        },
        {
          "name": "the territory map",
          "role": "territory-map",
          "access": "write",
          "needs": "The candidate maps and the fixed one."
        },
        {
          "name": "the model store",
          "role": "model-store",
          "access": "write",
          "needs": "The carrying model and its assumptions."
        }
      ],
      "records": [
        "Per run: the carve rule as it was agreed and the fields it reads, each candidate map with every account placed exactly once, and a carrying number per patch naming the data it was computed from.",
        "A number that cannot name its source is marked unsourced where a reader sees it.",
        "The maps that lost are kept, each with the reason it lost.",
        "The fixed map carries its version, the rule it was drawn on and the date it takes effect, and beside every carrying number sits the assumption it rests on and what would make that assumption wrong.",
        "Anybody auditing a run can redraw it from what is written down."
      ],
      "escalates": [
        "an account whose fields the carve rule cannot read - to the data steward by name, rather than placed by a guess",
        "a patch nobody has the capacity to work - to the sales leader, named as a gap, with the accounts and the ground behind the finding",
        "no candidate cut that passes balance and cost - to the leaders, saying which constraint has to move: the segments, the headcount or the target",
        "an account claimed by two territories where the rule is silent - to whoever amends the rule, because the map does not publish with one",
        "the carve rule changed after the maps are drawn - to the leaders, who are told the drawn maps are void before the draw runs again"
      ],
      "not": [
        "Does not set quotas.",
        "The number on a patch belongs to the quota-setter agent, and this agent hands it the map and what each patch carries.",
        "Does not choose which candidate map wins, because that is a named person's decision and never the average of the candidates.",
        "Does not move an account on its own: a move needs a line of the carve that allows it and a person who decides it."
      ],
      "processes": [
        {
          "process": "ref/rev/model-the-territories",
          "activities": [
            "Take in the Number and the Shape",
            "Fix What a Territory Is Cut On",
            "Draw the Candidate Cuts",
            "Model What Each Patch Carries",
            "Fix the Territory Map",
            "Record What the Model Rests On",
            "Hand the Map to Quota Setting"
          ]
        },
        {
          "process": "ref/rev/move-an-account",
          "activities": [
            "Take in the Request",
            "Find the Rule That Allows It",
            "Record the Move Against the Carve"
          ]
        },
        {
          "process": "ref/rev/publish-the-carve",
          "activities": [
            "Take in the Approved Carve",
            "Build a Statement per Seller",
            "Test Each Appeal Against the Record",
            "Apply What Changed"
          ]
        },
        {
          "process": "ref/rev/set-the-quotas",
          "activities": [
            "Take in the Map and the Number",
            "Read What Each Patch Carried"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# territory-modeler

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/model-the-territories`, `ref/rev/move-an-account`,
`ref/rev/publish-the-carve`, `ref/rev/set-the-quotas`. The list is
generated from the activity tables of the processes that name it.

https://agentcatalog.com/abstract-agents/territory-modeler
skills/answer-an-appeal-against-the-carve/SKILL.mdTakes the approved carve, builds each seller the statement of what they hold, tests every appeal against what is written down rather than against who is asking, and applies what changed. Use it when running `ref/rev/publish-the-carve`.
---
name: answer-an-appeal-against-the-carve
description: Takes the approved carve, builds each seller the statement of what they hold, tests every appeal against what is written down rather than against who is asking, and applies what changed. Use it when running `ref/rev/publish-the-carve`.
license: CC-BY-4.0
metadata:
  agent: territory-modeler
  agent-version: "1"
---

# Answer an appeal against the carve

## What it does

Takes the approved carve, builds each seller the statement of what they
hold, tests every appeal against what is written down rather than
against who is asking, and applies what changed.

## Where it happens

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

- **Apply What Changed**
  - `ref/rev/publish-the-carve`, activity 12 -
    [Publish the Carve](../../../../processes/revenue-operations/publish-the-carve.md)
- **Build a Statement per Seller**
  - `ref/rev/publish-the-carve`, activity 3 -
    [Publish the Carve](../../../../processes/revenue-operations/publish-the-carve.md)
- **Take in the Approved Carve**
  - `ref/rev/publish-the-carve`, activity 1 -
    [Publish the Carve](../../../../processes/revenue-operations/publish-the-carve.md)
- **Test Each Appeal Against the Record**
  - `ref/rev/publish-the-carve`, activity 10 -
    [Publish the Carve](../../../../processes/revenue-operations/publish-the-carve.md)

## What to record

Per run: the carve rule as it was agreed and the fields it reads, each
candidate map with every account placed exactly once, and a carrying
number per patch naming the data it was computed from. A number that
cannot name its source is marked unsourced where a reader sees it. The
maps that lost are kept, each with the reason it lost. The fixed map
carries its version, the rule it was drawn on and the date it takes
effect, and beside every carrying number sits the assumption it rests on
and what would make that assumption wrong. Anybody auditing a run can
redraw it from what is written down.

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/draw-the-candidate-maps/SKILL.mdDraws candidate cuts on that rule with every account placed exactly once, and fixes the one a named person chooses, carrying its version, the rule it was drawn on and the date it takes effect. Use it when running `ref/rev/model-the-territories`.
---
name: draw-the-candidate-maps
description: Draws candidate cuts on that rule with every account placed exactly once, and fixes the one a named person chooses, carrying its version, the rule it was drawn on and the date it takes effect. Use it when running `ref/rev/model-the-territories`.
license: CC-BY-4.0
metadata:
  agent: territory-modeler
  agent-version: "1"
---

# Draw the candidate maps

## What it does

Draws candidate cuts on that rule with every account placed exactly
once, and fixes the one a named person chooses, carrying its version,
the rule it was drawn on and the date it takes effect. The maps that
lost are kept, each with the reason it lost.

## Where it happens

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

- **Draw the Candidate Cuts**
  - `ref/rev/model-the-territories`, activity 7 -
    [Model the Territories](../../../../processes/revenue-operations/model-the-territories.md)
- **Fix the Territory Map**
  - `ref/rev/model-the-territories`, activity 13 -
    [Model the Territories](../../../../processes/revenue-operations/model-the-territories.md)

## What to record

Per run: the carve rule as it was agreed and the fields it reads, each
candidate map with every account placed exactly once, and a carrying
number per patch naming the data it was computed from. A number that
cannot name its source is marked unsourced where a reader sees it. The
maps that lost are kept, each with the reason it lost. The fixed map
carries its version, the rule it was drawn on and the date it takes
effect, and beside every carrying number sits the assumption it rests on
and what would make that assumption wrong. Anybody auditing a run can
redraw it from what is written down.

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/fix-the-rule-a-carve-is-drawn-on/SKILL.mdTakes in how many territories are wanted and the shape they should have, and fixes what a territory is cut on before anything is drawn. Use it when running `ref/rev/model-the-territories`.
---
name: fix-the-rule-a-carve-is-drawn-on
description: Takes in how many territories are wanted and the shape they should have, and fixes what a territory is cut on before anything is drawn. Use it when running `ref/rev/model-the-territories`.
license: CC-BY-4.0
metadata:
  agent: territory-modeler
  agent-version: "1"
---

# Fix the rule a carve is drawn on

## What it does

Takes in how many territories are wanted and the shape they should have,
and fixes what a territory is cut on before anything is drawn. A rule
changed after the maps exist voids them, and the draw runs 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.

- **Fix What a Territory Is Cut On**
  - `ref/rev/model-the-territories`, activity 2 -
    [Model the Territories](../../../../processes/revenue-operations/model-the-territories.md)
- **Take in the Number and the Shape**
  - `ref/rev/model-the-territories`, activity 1 -
    [Model the Territories](../../../../processes/revenue-operations/model-the-territories.md)

## What to record

Per run: the carve rule as it was agreed and the fields it reads, each
candidate map with every account placed exactly once, and a carrying
number per patch naming the data it was computed from. A number that
cannot name its source is marked unsourced where a reader sees it. The
maps that lost are kept, each with the reason it lost. The fixed map
carries its version, the rule it was drawn on and the date it takes
effect, and beside every carrying number sits the assumption it rests on
and what would make that assumption wrong. Anybody auditing a run can
redraw it from what is written down.

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-the-map-to-quota-setting/SKILL.mdHands the fixed map and its carrying numbers to whoever puts a number on each patch, and stands behind the map while that work runs. Use it when running `ref/rev/model-the-territories` and `ref/rev/set-the-quotas`.
---
name: hand-the-map-to-quota-setting
description: Hands the fixed map and its carrying numbers to whoever puts a number on each patch, and stands behind the map while that work runs. Use it when running `ref/rev/model-the-territories` and `ref/rev/set-the-quotas`.
license: CC-BY-4.0
metadata:
  agent: territory-modeler
  agent-version: "1"
---

# Hand the map to quota setting

## What it does

Hands the fixed map and its carrying numbers to whoever puts a number on
each patch, and stands behind the map while that work runs.

## Where it happens

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

- **Hand the Map to Quota Setting**
  - `ref/rev/model-the-territories`, activity 15 -
    [Model the Territories](../../../../processes/revenue-operations/model-the-territories.md)
- **Take in the Map and the Number**
  - `ref/rev/set-the-quotas`, activity 1 -
    [Set the Quotas](../../../../processes/revenue-operations/set-the-quotas.md)

## What to record

Per run: the carve rule as it was agreed and the fields it reads, each
candidate map with every account placed exactly once, and a carrying
number per patch naming the data it was computed from. A number that
cannot name its source is marked unsourced where a reader sees it. The
maps that lost are kept, each with the reason it lost. The fixed map
carries its version, the rule it was drawn on and the date it takes
effect, and beside every carrying number sits the assumption it rests on
and what would make that assumption wrong. Anybody auditing a run can
redraw it from what is written down.

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/move-an-account-between-patches/SKILL.mdTakes in a request to move an account, finds the line of the carve that allows it, and records the move against the carve. Use it when running `ref/rev/move-an-account`.
---
name: move-an-account-between-patches
description: Takes in a request to move an account, finds the line of the carve that allows it, and records the move against the carve. Use it when running `ref/rev/move-an-account`.
license: CC-BY-4.0
metadata:
  agent: territory-modeler
  agent-version: "1"
---

# Move an account between patches

## What it does

Takes in a request to move an account, finds the line of the carve that
allows it, and records the move against the carve. An account the rule
is silent about goes to whoever amends the rule instead.

## 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 the Rule That Allows It**
  - `ref/rev/move-an-account`, activity 3 -
    [Move an Account](../../../../processes/revenue-operations/move-an-account.md)
- **Record the Move Against the Carve**
  - `ref/rev/move-an-account`, activity 14 -
    [Move an Account](../../../../processes/revenue-operations/move-an-account.md)
- **Take in the Request**
  - `ref/rev/move-an-account`, activity 1 -
    [Move an Account](../../../../processes/revenue-operations/move-an-account.md)

## What to record

Per run: the carve rule as it was agreed and the fields it reads, each
candidate map with every account placed exactly once, and a carrying
number per patch naming the data it was computed from. A number that
cannot name its source is marked unsourced where a reader sees it. The
maps that lost are kept, each with the reason it lost. The fixed map
carries its version, the rule it was drawn on and the date it takes
effect, and beside every carrying number sits the assumption it rests on
and what would make that assumption wrong. Anybody auditing a run can
redraw it from what is written down.

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/say-what-a-patch-can-carry/SKILL.mdModels what each patch can carry against what it closed before, and reads that history again when the numbers are being set. Use it when running `ref/rev/model-the-territories` and `ref/rev/set-the-quotas`.
---
name: say-what-a-patch-can-carry
description: Models what each patch can carry against what it closed before, and reads that history again when the numbers are being set. Use it when running `ref/rev/model-the-territories` and `ref/rev/set-the-quotas`.
license: CC-BY-4.0
metadata:
  agent: territory-modeler
  agent-version: "1"
---

# Say what a patch can carry

## What it does

Models what each patch can carry against what it closed before, and
reads that history again when the numbers are being set. Beside every
carrying number sits the assumption it rests on and what would make that
assumption wrong. A number that cannot name its source is marked
unsourced where a reader sees it.

## Where it happens

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

- **Model What Each Patch Carries**
  - `ref/rev/model-the-territories`, activity 8 -
    [Model the Territories](../../../../processes/revenue-operations/model-the-territories.md)
- **Read What Each Patch Carried**
  - `ref/rev/set-the-quotas`, activity 3 -
    [Set the Quotas](../../../../processes/revenue-operations/set-the-quotas.md)
- **Record What the Model Rests On**
  - `ref/rev/model-the-territories`, activity 14 -
    [Model the Territories](../../../../processes/revenue-operations/model-the-territories.md)

## What to record

Per run: the carve rule as it was agreed and the fields it reads, each
candidate map with every account placed exactly once, and a carrying
number per patch naming the data it was computed from. A number that
cannot name its source is marked unsourced where a reader sees it. The
maps that lost are kept, each with the reason it lost. The fixed map
carries its version, the rule it was drawn on and the date it takes
effect, and beside every carrying number sits the assumption it rests on
and what would make that assumption wrong. Anybody auditing a run can
redraw it from what is written down.

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

account-record · readcrm · readreporting-warehouse · readterritory-map · writemodel-store · 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": {
    "account-record": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/account-record"
    },
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    },
    "reporting-warehouse": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/reporting-warehouse"
    },
    "territory-map": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/territory-map"
    },
    "model-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/model-store"
    }
  }
}

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

Model the Territoriesref/rev/model-the-territories · 15 activities
123456789101112131415

Take in the Number and the Shape · Fix What a Territory Is Cut On · Draw the Candidate Cuts · Model What Each Patch Carries · Fix the Territory Map · Record What the Model Rests On · Hand the Map to Quota Setting

Move an Accountref/rev/move-an-account · 14 activities
1234567891011121314

Take in the Request · Find the Rule That Allows It · Record the Move Against the Carve

Publish the Carveref/rev/publish-the-carve · 15 activities
123456789101112131415

Take in the Approved Carve · Build a Statement per Seller · Test Each Appeal Against the Record · Apply What Changed

Set the Quotasref/rev/set-the-quotas · 15 activities
123456789101112131415

Take in the Map and the Number · Read What Each Patch Carried

The records it leaves

What it writes down

Per run: the carve rule as it was agreed and the fields it reads, each candidate map with every account placed exactly once, and a carrying number per patch naming the data it was computed from. A number that cannot name its source is marked unsourced where a reader sees it. The maps that lost are kept, each with the reason it lost. The fixed map carries its version, the rule it was drawn on and the date it takes effect, and beside every carrying number sits the assumption it rests on and what would make that assumption wrong. Anybody auditing a run can redraw it from what is written down.

Where it stops

What it will not do

Does not set quotas. The number on a patch belongs to the quota-setter agent, and this agent hands it the map and what each patch carries. Does not choose which candidate map wins, because that is a named person's decision and never the average of the candidates. Does not move an account on its own: a move needs a line of the carve that allows it and a person who decides it.

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: territory-modeler 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.

  • speed-to-lead MCP server · composedchaos.net · hosted · mirrored from the MCP registry Field-service tools for agents: slot feasibility, drive time, service area, lead parsing, booking.
  • map MCP server · maraventano.github.io · run it yourself · mirrored from the MCP registry A subtractive MCP for agent commerce: read · pay · publish. Teacher, not butler.
  • Cartographer MCP MCP server · metatronsdoob369.github.io · run it yourself · mirrored from the MCP registry Rule-tiered AST and sqlite-vec capability oracle for A-MEM agent workflows.