> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allgoodhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Guided workflows

> Build a Test Suite and improve Email Reply Management accuracy end to end with the allGood ERM MCP, including the two ready-made skills.

You can use the [individual tools](/use-cases/erm-mcp/capabilities) one at a time, but most people want one of two things: a Test Suite they can trust, and better accuracy. allGood ships two skills that run these as a guided conversation, and you can also ask for each in plain language.

Improving ERM follows five steps: **Collect**, **Evaluate**, **Find gaps**, **Learn**, **Publish**.

| Step | What it means | Who does it |
| - | - | - |
| 1. Collect | Build the Test Suite: example replies paired with the correct category | [Bootstrap a Test Suite](#bootstrap-a-test-suite) |
| 2. Evaluate | Run the whole suite against your current configuration | [Improve accuracy](#improve-accuracy) |
| 3. Find gaps | See what's failing, how bad each failure is, and where coverage is thin | [Improve accuracy](#improve-accuracy) |
| 4. Learn | Edit a draft's categories to fix what you found | [Improve accuracy](#improve-accuracy) |
| 5. Publish | Make the change live | **You**, in the web app |

***

## Bootstrap a Test Suite

**Skill:** `erm-bootstrap-testsuite`

**Use it when:** you have a configuration but little or no Test Suite, or you want more coverage for specific categories.

**Example prompt:**

> "Using allGood ERM, bootstrap a test suite for configuration QU8RSBZL."

### What happens

<Steps>
  <Step id="bootstrap-read" title="It reads your configuration and existing suite">
    The assistant reads your categories, then pages through every existing test case so it doesn't duplicate one. If you pointed it at a draft, it asks whether to start that draft's suite from scratch or copy the live suite over first.
  </Step>

  <Step id="bootstrap-plan" title="It plans what's missing">
    It compares your categories to your cases and decides what to add, what to update, and what to leave alone. If it can't cover everything at once, it covers categories with **no flags** first, since those are real human replies, then Spam, Bounce, Out of Office, and Auto Response. It skips the catch-all **Other** category.

    Each category gets at least one **categorize** test. Categories with extract fields also get a **categorize and extract** test whose email contains real values for those fields.
  </Step>

  <Step id="bootstrap-approve" title="You approve the plan">
    You see the new cases it proposes. For any case it wants to change, you see the exact old and new values. Nothing is written until you approve.
  </Step>

  <Step id="bootstrap-apply" title="It creates the cases and runs the suite">
    It adds and updates the cases, runs the suite, and reports the real results, including whether the new cases passed. A new case that fails right away often means either the email wasn't clear-cut, or it exposed a real gap in a category definition. The assistant flags both.
  </Step>
</Steps>

***

## Improve accuracy

**Skill:** `erm-learning-loop`

**Use it when:** you already have a Test Suite and want to improve how well replies are categorized and extracted.

**Example prompt:**

> "Using allGood ERM, run the learning loop on configuration QU8RSBZL and show me what's failing."

<Note>
  This needs an existing Test Suite. If you don't have one, [bootstrap it](#bootstrap-a-test-suite) first.
</Note>

### What happens

<Steps>
  <Step id="loop-evaluate" title="Evaluate">
    It runs the whole suite and tells you total, passed, failed, errored, not run, and overall accuracy.
  </Step>

  <Step id="loop-severity" title="Rank failures by how much they matter">
    Not every wrong answer costs the same. The assistant groups your categories by their flags and ranks each failure:

    | Severity | What went wrong |
    | - | - |
    | 🔴 Critical | A real human reply landed in a machine bucket (for example a real reply marked Spam) |
    | 🟡 Moderate | Something landed in a real-reply category that shouldn't have, creating a false alarm |
    | 🟢 Minor | Confusion between harmless categories (for example Spam vs. Other) |

    You get this as a table, worst first, and the assistant digs into the 🔴 and 🟡 rows by reading actual examples to work out why.
  </Step>

  <Step id="loop-depth" title="Check coverage">
    A category with one or two test cases can show 100% and still be essentially untested. The assistant counts cases per category and flags thin ones. If coverage is the real problem, it sends you back to [bootstrap](#bootstrap-a-test-suite) rather than rewriting a category based on too little evidence.
  </Step>

  <Step id="loop-propose" title="Review the proposed changes">
    For every field it wants to change, you see the exact old text and the exact new text. Nothing changes until you approve those specific edits. You can word a fix differently.
  </Step>

  <Step id="loop-draft" title="It edits a draft, never your live configuration">
    It creates a draft if there isn't one, copies your Test Suite onto it (a new draft starts empty), and applies the approved edits.
  </Step>

  <Step id="loop-reevaluate" title="It re-runs the suite and repeats">
    It re-runs the suite on the draft and compares accuracy and failures to the previous run. If failures remain or new ones appeared, it goes round again. There's no fixed number of rounds.
  </Step>
</Steps>

### What you get at the end

* **The full diff:** every field changed across every round, as old and new text
* **The accuracy trend:** starting accuracy, accuracy after each round, and the final number
* **A pointer to review the draft in the web app.** The assistant stops there. **Publishing is always your decision.**

***

## Using the skills

<Tabs>
  <Tab title="Claude Code">
    The skills ship in the **allGood ERM** plugin along with the connection to the ERM MCP. Ask your allGood contact for the plugin for your environment, then start Claude Code with it:

    ```bash theme={null}
    claude --plugin-dir allgood-erm-prod.zip
    ```

    Claude Code asks you to sign in to allGood the first time it connects.
  </Tab>

  <Tab title="Claude Desktop or ChatGPT">
    You don't need the skills to get the same result. Describe what you want in plain language, for example:

    > "Using allGood ERM, check which categories in configuration QU8RSBZL have thin test coverage, then run the suite and rank the failures by how serious they are."

    The assistant uses the same tools. The skills just make the steps and the approval points consistent.
  </Tab>
</Tabs>

## Related articles

* [Tool reference](/use-cases/erm-mcp/capabilities)
* [ERM MCP FAQ](/use-cases/erm-mcp/faq)
* [Test Suite](/use-cases/erm/test-suite)
* [Categories](/use-cases/erm/categories)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.