How it works
- Point your AI assistant or coding agent at the Eppo plan through your API tooling, or paste the experiment's hypothesis, variations, allocation, and metrics into the chat.
- Install the ExpLint MCP at https://explint.com/mcp to enable your agent to audit tests.
- Run the prompt below to audit these plans before the work starts.
How the check runs
- It gathers the plan through your API path or the text you paste, lists the pieces that are missing first, then shapes one text headed hypothesis, versions, split, metrics, and run time.
- It sends that text to ExpLint with
explint__lint, which returns errors, warnings, and passes, each finding naming the rule behind it. - You edit the plan in Eppo, paste or refresh the text, and ask for a second check, since the findings stay in chat and the change happens in the platform.
Copy and paste this prompt
Change the words in square brackets to name your own project, board, or test.
Here is an Eppo experiment plan, from the API or pasted below. Repeat it back under headings for hypothesis, versions, who gets split and in what share, primary metric, guardrail metrics, and run time, and flag any empty heading. Lint the full text with explint.com against [your ExpLint project name]. Show each error and warning with the words that caused it. Do not invent numbers. Suggest fixes here and lint again on my updated plan. Plan: [paste or name the Eppo experiment]
What ExpLint looks for
ExpLint ships over 24 rules, and a project switches each one on or off or rewrites it in plain English. These are the rules the plans this guide reads break most often. An error means the test cannot answer its question as written, and a warning means the result will be hard to judge when it comes in.
| Rule | Level | In plain words |
|---|---|---|
| hypothesis/is-falsifiable | error | A pasted Eppo plan that only says the change will improve a number gives the review nothing a result could contradict. |
| randomization/states-the-unit | error | The plan has to name the unit Eppo assigns by, whether that is a user, a session, or an account, because the metric rate is read against it. |
| power/has-a-sample-size-calculation | error | A plan that names a split and a duration but no headcount leaves the team guessing whether the test can finish in the time it holds. |
| rollout/has-a-rollback-plan | error | A pasted plan often stops at launch, so the lint asks for the step that turns the change off and the person who calls it. |



