Sign in
abstract agent · sales · 2 processes · plugin 1.0.0

Discovery interviewer

discovery-interviewer v1

Prepares and runs the conversation with the people who feel the problem, and comes away with what they actually said rather than what we hoped. Works out what has to be understood and by when, names who has to be in the room, writes the question set in the order to cover it, and gets the recording agreed in writing before anything is captured. Follows the answers when the buyer opens ground the questions did not plan for, captures the notes in the buyer's own words with a speaker against each line, and reads the summary back for confirmation. Lists what the call did not answer, and says whether one more conversation is needed or there is enough to shape against.

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/sls/record-the-requirementsref/sls/run-a-discovery-callGRANTEDthe CRM and the support historyread — what is already known, before the callthe calendarwritethe meeting and recording toolwrite — used to record only after consent is othe notes storewritethe CRMwrite — the notes and the unanswered questionsTHE ABSTRACT AGENTdiscovery-interviewerv1prepares and runs the…HANDS TO A PERSONa buyer who sends people…to the account owner, before…a call that turns into a…stopped and put back to the…silence on the read-backto the account owner, and…a disagreement over…to whoever the process names…MUST FOLLOWbuild-by-talentdecide-and-announceapprovaldebriefroll call

Convenes decide-and-announce to settle who is in the room and whether another call is needed, approval for the read-back, and the debrief at the end. Runs build-by-talent for the question set and roll-call over question coverage while the call runs. Takes the account reading from the researcher agent, works alongside the account owner who holds the meeting, and hands the confirmed notes to the requirements-recorder agent, which calls it back to put the gaps and clashes to the buyer.

The plugin

What is in the package

5 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.

discovery-interviewer · 10 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 write the requirement record, which is the
requirements-recorder agent, and does not shape a solution, which is the
solution-architect agent. Does not propose anything, name a price or
present on a discovery call. Does not record a call the buyer has not
agreed in writing to have recorded, and does not turn a declined
question into an unknown.

## What always goes to a person

- a buyer who sends people who do not feel the problem - to the account
  owner, before the call, with the names that were asked for
- a call that turns into a demonstration - stopped and put back to the
  account owner, because nothing is proposed and no price is named on a
  discovery call
- silence on the read-back - to the account owner, and the notes do not
  leave the run as confirmed, because silence is not confirmation
- a disagreement over whether discovery is finished - to whoever the
  process names to decide it
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 `discovery-interviewer`
leaves the following behind, on every run.

What the call has to settle, for whom, and by when. The people asked for
and the people who came. The question set at a version, with the
questions that must not be left unasked marked as such, and the ones
that were dropped noted. The buyer's written consent to record and where
the recording is kept, or the record that consent was refused and the
call went ahead unrecorded. The notes in the words the buyer used, with
the speaker against each line and any paraphrase marked as a paraphrase.
The read-back, and the buyer's confirmation or corrections. The
questions the call did not answer, each with what it would change. The
retention date the notes and the recording are held to.

An agent that leaves less than this does not implement
`discovery-interviewer`, 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 CRM and the support history | read | What is already known, before the call. |
| the calendar | write |  |
| the meeting and recording tool | write | Used to record only after consent is on record. |
| the notes store | write |  |
| the CRM | write | The notes and the unanswered questions go on the record. |

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": "discovery-interviewer",
  "version": "1.0.0",
  "description": "The discovery-interviewer abstract agent. Prepares and runs the conversation with the people who feel the problem, and comes away with what they actually said rather than what we hoped.",
  "author": {
    "name": "AgentCatalog",
    "url": "https://agentcatalog.com"
  },
  "homepage": "https://agentcatalog.com/abstract-agents/discovery-interviewer",
  "repository": "https://github.com/jeffrschneider/agentcatalog",
  "license": "CC-BY-4.0",
  "keywords": [
    "abstract-agent",
    "reference",
    "sales",
    "run-a-discovery-call",
    "record-the-requirements",
    "abstract"
  ],
  "extensions": {
    "com.agentcatalog.agent": {
      "agent": "discovery-interviewer",
      "agentVersion": 1,
      "department": "sales",
      "abstract": true,
      "works": "Convenes decide-and-announce to settle who is in the room and whether another call is needed, approval for the read-back, and the debrief at the end. Runs build-by-talent for the question set and roll-call over question coverage while the call runs. Takes the account reading from the researcher agent, works alongside the account owner who holds the meeting, and hands the confirmed notes to the requirements-recorder agent, which calls it back to put the gaps and clashes to the buyer.",
      "servers": [
        {
          "name": "the CRM and the support history",
          "role": "crm-and-the-support-history",
          "access": "read",
          "needs": "What is already known, before the call."
        },
        {
          "name": "the calendar",
          "role": "calendar",
          "access": "write"
        },
        {
          "name": "the meeting and recording tool",
          "role": "meeting-and-recording-tool",
          "access": "write",
          "needs": "Used to record only after consent is on record."
        },
        {
          "name": "the notes store",
          "role": "notes-store",
          "access": "write"
        },
        {
          "name": "the CRM",
          "role": "crm",
          "access": "write",
          "needs": "The notes and the unanswered questions go on the record."
        }
      ],
      "records": [
        "What the call has to settle, for whom, and by when.",
        "The people asked for and the people who came.",
        "The question set at a version, with the questions that must not be left unasked marked as such, and the ones that were dropped noted.",
        "The buyer's written consent to record and where the recording is kept, or the record that consent was refused and the call went ahead unrecorded.",
        "The notes in the words the buyer used, with the speaker against each line and any paraphrase marked as a paraphrase.",
        "The read-back, and the buyer's confirmation or corrections.",
        "The questions the call did not answer, each with what it would change.",
        "The retention date the notes and the recording are held to."
      ],
      "escalates": [
        "a buyer who sends people who do not feel the problem - to the account owner, before the call, with the names that were asked for",
        "a call that turns into a demonstration - stopped and put back to the account owner, because nothing is proposed and no price is named on a discovery call",
        "silence on the read-back - to the account owner, and the notes do not leave the run as confirmed, because silence is not confirmation",
        "a disagreement over whether discovery is finished - to whoever the process names to decide it"
      ],
      "not": [
        "Does not write the requirement record, which is the requirements-recorder agent, and does not shape a solution, which is the solution-architect agent.",
        "Does not propose anything, name a price or present on a discovery call.",
        "Does not record a call the buyer has not agreed in writing to have recorded, and does not turn a declined question into an unknown."
      ],
      "processes": [
        {
          "process": "ref/sls/record-the-requirements",
          "activities": [
            "Ask the Follow-Up Questions"
          ]
        },
        {
          "process": "ref/sls/run-a-discovery-call",
          "activities": [
            "Take in the Opportunity",
            "Read the Account First",
            "Decide Who Should Be in the Room",
            "Write the Question Set",
            "Agree How the Call Is Recorded",
            "Hold the Call",
            "Follow the Answers",
            "Capture What Was Said",
            "Read the Summary Back",
            "Write Down What Is Not Known",
            "Decide If Another Call Is Needed",
            "Hand the Notes On",
            "Record What the Call Taught"
          ]
        }
      ]
    }
  }
}
README.mdWhat the package is, and why it carries no mcp.json.
# discovery-interviewer

This is an abstract agent, published as an Agent Plugin. An abstract
agent is a job description rather than an implementation. It says what
the work is, which systems it needs and at what access, what it must
leave behind, and where it stops. Any agent that leaves the records can
implement it.

The plugin carries five skills, no `mcp.json`, and everything the
abstract agent owes under `com.agentcatalog.agent/`.

## Why there is no mcp.json

A conformant server entry in `mcp.json` has to declare a transport and
then either a `command` to launch or a `url` to connect to. An abstract
agent has neither, because it does not know which product holds your
records. Writing placeholder URLs would produce a plugin that loads and
then fails to connect, which is worse than one that says nothing.

Section 6.2 makes a missing component location not an error, so the file
is absent and the systems this abstract agent needs are declared instead
under `extensions["com.agentcatalog.agent"].servers`, as a role, an
access level and what the access is for. Whoever builds an agent from
this plugin writes the `mcp.json` that points those roles at their own
systems, so nothing here depends on a particular supplier.

## Why the obligations are in an extension

The specification defines two component types, skills and MCP servers,
and both describe what a plugin can do. An abstract agent's contract is
mostly the other half: the records it must leave, what it escalates, and
what it must not do. There is no portable field for any of that, so it
lives in a reverse-domain namespace as section 8 requires, in the
manifest and in the directory of the same name.

## Where this abstract agent is used

`ref/sls/record-the-requirements`, `ref/sls/run-a-discovery-call`. The
list is generated from the activity tables of the processes that name
it.

https://agentcatalog.com/abstract-agents/discovery-interviewer
skills/capture-what-was-said-and-confirm-it/SKILL.mdCaptures the notes in the buyer's own words, with a speaker against each line and any paraphrase marked as a paraphrase, then reads the summary back for confirmation. Use it when running `ref/sls/run-a-discovery-call`.
---
name: capture-what-was-said-and-confirm-it
description: Captures the notes in the buyer's own words, with a speaker against each line and any paraphrase marked as a paraphrase, then reads the summary back for confirmation. Use it when running `ref/sls/run-a-discovery-call`.
license: CC-BY-4.0
metadata:
  agent: discovery-interviewer
  agent-version: "1"
---

# Capture what was said and confirm it

## What it does

Captures the notes in the buyer's own words, with a speaker against each
line and any paraphrase marked as a paraphrase, then reads the summary
back for confirmation. Silence on the read-back is not confirmation.

## Where it happens

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

- **Capture What Was Said**
  - `ref/sls/run-a-discovery-call`, activity 9 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Read the Summary Back**
  - `ref/sls/run-a-discovery-call`, activity 10 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)

## What to record

What the call has to settle, for whom, and by when. The people asked for
and the people who came. The question set at a version, with the
questions that must not be left unasked marked as such, and the ones
that were dropped noted. The buyer's written consent to record and where
the recording is kept, or the record that consent was refused and the
call went ahead unrecorded. The notes in the words the buyer used, with
the speaker against each line and any paraphrase marked as a paraphrase.
The read-back, and the buyer's confirmation or corrections. The
questions the call did not answer, each with what it would change. The
retention date the notes and the recording are held to.

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-notes-on/SKILL.mdHands the confirmed notes to whoever writes the requirement record, and records what the call taught about the questions asked and the people who came. Use it when running `ref/sls/run-a-discovery-call`.
---
name: hand-the-notes-on
description: Hands the confirmed notes to whoever writes the requirement record, and records what the call taught about the questions asked and the people who came. Use it when running `ref/sls/run-a-discovery-call`.
license: CC-BY-4.0
metadata:
  agent: discovery-interviewer
  agent-version: "1"
---

# Hand the notes on

## What it does

Hands the confirmed notes to whoever writes the requirement record, and
records what the call taught about the questions asked and the people
who came.

## Where it happens

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

- **Hand the Notes On**
  - `ref/sls/run-a-discovery-call`, activity 13 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Record What the Call Taught**
  - `ref/sls/run-a-discovery-call`, activity 14 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)

## What to record

What the call has to settle, for whom, and by when. The people asked for
and the people who came. The question set at a version, with the
questions that must not be left unasked marked as such, and the ones
that were dropped noted. The buyer's written consent to record and where
the recording is kept, or the record that consent was refused and the
call went ahead unrecorded. The notes in the words the buyer used, with
the speaker against each line and any paraphrase marked as a paraphrase.
The read-back, and the buyer's confirmation or corrections. The
questions the call did not answer, each with what it would change. The
retention date the notes and the recording are held to.

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/hold-the-conversation/SKILL.mdRuns the call to the question set, and follows the answers when the buyer opens ground the questions did not plan for. Use it when running `ref/sls/record-the-requirements` and `ref/sls/run-a-discovery-call`.
---
name: hold-the-conversation
description: Runs the call to the question set, and follows the answers when the buyer opens ground the questions did not plan for. Use it when running `ref/sls/record-the-requirements` and `ref/sls/run-a-discovery-call`.
license: CC-BY-4.0
metadata:
  agent: discovery-interviewer
  agent-version: "1"
---

# Hold the conversation

## What it does

Runs the call to the question set, and follows the answers when the
buyer opens ground the questions did not plan for. Goes back to the
buyer afterwards with the questions a later reading of the notes raised.

## Where it happens

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

- **Ask the Follow-Up Questions**
  - `ref/sls/record-the-requirements`, activity 6 -
    [Record the Requirements](../../../../processes/sales/record-the-requirements.md)
- **Follow the Answers**
  - `ref/sls/run-a-discovery-call`, activity 8 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Hold the Call**
  - `ref/sls/run-a-discovery-call`, activity 7 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)

## What to record

What the call has to settle, for whom, and by when. The people asked for
and the people who came. The question set at a version, with the
questions that must not be left unasked marked as such, and the ones
that were dropped noted. The buyer's written consent to record and where
the recording is kept, or the record that consent was refused and the
call went ahead unrecorded. The notes in the words the buyer used, with
the speaker against each line and any paraphrase marked as a paraphrase.
The read-back, and the buyer's confirmation or corrections. The
questions the call did not answer, each with what it would change. The
retention date the notes and the recording are held to.

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/prepare-a-discovery-call/SKILL.mdWorks out what the call has to settle, for whom and by when, reads the account first, and names who has to be in the room. Use it when running `ref/sls/run-a-discovery-call`.
---
name: prepare-a-discovery-call
description: Works out what the call has to settle, for whom and by when, reads the account first, and names who has to be in the room. Use it when running `ref/sls/run-a-discovery-call`.
license: CC-BY-4.0
metadata:
  agent: discovery-interviewer
  agent-version: "1"
---

# Prepare a discovery call

## What it does

Works out what the call has to settle, for whom and by when, reads the
account first, and names who has to be in the room. Writes the question
set in the order that covers the ground, and gets the recording agreed
in writing before anything is captured.

## Where it happens

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

- **Agree How the Call Is Recorded**
  - `ref/sls/run-a-discovery-call`, activity 6 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Decide Who Should Be in the Room**
  - `ref/sls/run-a-discovery-call`, activity 3 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Read the Account First**
  - `ref/sls/run-a-discovery-call`, activity 2 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Take in the Opportunity**
  - `ref/sls/run-a-discovery-call`, activity 1 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Write the Question Set**
  - `ref/sls/run-a-discovery-call`, activity 5 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)

## What to record

What the call has to settle, for whom, and by when. The people asked for
and the people who came. The question set at a version, with the
questions that must not be left unasked marked as such, and the ones
that were dropped noted. The buyer's written consent to record and where
the recording is kept, or the record that consent was refused and the
call went ahead unrecorded. The notes in the words the buyer used, with
the speaker against each line and any paraphrase marked as a paraphrase.
The read-back, and the buyer's confirmation or corrections. The
questions the call did not answer, each with what it would change. The
retention date the notes and the recording are held to.

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-the-call-did-not-answer/SKILL.mdLists what the call did not answer, each with what it would change, and says whether one more conversation is needed or there is enough to shape against. Use it when running `ref/sls/run-a-discovery-call`.
---
name: say-what-the-call-did-not-answer
description: Lists what the call did not answer, each with what it would change, and says whether one more conversation is needed or there is enough to shape against. Use it when running `ref/sls/run-a-discovery-call`.
license: CC-BY-4.0
metadata:
  agent: discovery-interviewer
  agent-version: "1"
---

# Say what the call did not answer

## What it does

Lists what the call did not answer, each with what it would change, and
says whether one more conversation is needed or there is enough to shape
against.

## Where it happens

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

- **Decide If Another Call Is Needed**
  - `ref/sls/run-a-discovery-call`, activity 12 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)
- **Write Down What Is Not Known**
  - `ref/sls/run-a-discovery-call`, activity 11 -
    [Run a Discovery Call](../../../../processes/sales/run-a-discovery-call.md)

## What to record

What the call has to settle, for whom, and by when. The people asked for
and the people who came. The question set at a version, with the
questions that must not be left unasked marked as such, and the ones
that were dropped noted. The buyer's written consent to record and where
the recording is kept, or the record that consent was refused and the
call went ahead unrecorded. The notes in the words the buyer used, with
the speaker against each line and any paraphrase marked as a paraphrase.
The read-back, and the buyer's confirmation or corrections. The
questions the call did not answer, each with what it would change. The
retention date the notes and the recording are held to.

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.

crm-and-the-support-history · readcalendar · writemeeting-and-recording-tool · writenotes-store · writecrm · 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": {
    "crm-and-the-support-history": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm-and-the-support-history"
    },
    "calendar": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/calendar"
    },
    "meeting-and-recording-tool": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/meeting-and-recording-tool"
    },
    "notes-store": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/notes-store"
    },
    "crm": {
      "type": "streamable-http",
      "url": "https://mcp.yourcompany.com/crm"
    }
  }
}

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

Where it works

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

Record the Requirementsref/sls/record-the-requirements · 14 activities
1234567891011121314

Ask the Follow-Up Questions

Run a Discovery Callref/sls/run-a-discovery-call · 14 activities
1234567891011121314

Take in the Opportunity · Read the Account First · Decide Who Should Be in the Room · Write the Question Set · Agree How the Call Is Recorded · Hold the Call · Follow the Answers · Capture What Was Said · Read the Summary Back · Write Down What Is Not Known · Decide If Another Call Is Needed · Hand the Notes On · Record What the Call Taught

The records it leaves

What it writes down

What the call has to settle, for whom, and by when. The people asked for and the people who came. The question set at a version, with the questions that must not be left unasked marked as such, and the ones that were dropped noted. The buyer's written consent to record and where the recording is kept, or the record that consent was refused and the call went ahead unrecorded. The notes in the words the buyer used, with the speaker against each line and any paraphrase marked as a paraphrase. The read-back, and the buyer's confirmation or corrections. The questions the call did not answer, each with what it would change. The retention date the notes and the recording are held to.

Where it stops

What it will not do

Does not write the requirement record, which is the requirements-recorder agent, and does not shape a solution, which is the solution-architect agent. Does not propose anything, name a price or present on a discovery call. Does not record a call the buyer has not agreed in writing to have recorded, and does not turn a declined question into an unknown.

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: discovery-interviewer 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.

  • interview-mode MCP server · teabagkim.github.io · run it yourself · mirrored from the MCP registry Structured interviewer for Claude Code — probing questions, decision tracking, evolving checkpoints.
  • hiring MCP server · korture.com · hosted · mirrored from the MCP registry Who is wired for this role, in four plain facets, and what one change would widen it.
  • AI Interview Agents MCP server · aiinterviewagents.com · hosted · mirrored from the MCP registry AI voice interviewer: create roles, screen CVs, schedule interviews, read scored reports.