Skip to main content
Your tests are files in your repository. Every test is a Markdown file with YAML front matter, stored in egma/tests/. Nothing secret ever lands in the egma/ folder, so there are no .gitignore lines to write and none to forget. Your team reviews tests in pull requests, edits them in the same editor as your agent code, and keeps their full history in git.

Folder structure

egma init (or the interactive wizard) creates the following layout:
Everything under egma/ is committed. The config.yaml file records the verified identity of your Egma instance, so every command run in this repository finds it automatically.

Test file anatomy

Each file in egma/tests/ has two parts: a YAML front matter block and a set of Markdown sections.

Front matter

Name a persona only when the situation calls for a particular kind of caller. Most tests work fine with the default.

Sections

A natural-language description of the call. Write it as a brief situation the caller is in, not as a script. The simulator uses this to set the scene.
Keep it concrete: who the caller is, what they want, and any relevant context (time pressure, emotional state, prior history). The more specific the scenario, the more useful the simulation.

Test-level tool overrides

Below the expected behaviors, you can add the same ### <tool-name> sections used in mock-tools.md. These override the project-wide mock for this test only, and are versioned with the test file itself. Use this when a test needs a specific backend state — an empty calendar, a failed payment, a service that is down — that the project-wide mock should not enforce globally.

book_appointment

get_customer_record

send_confirmation_sms