March docs

Getting started

Learn March's product model and the path from change to result.

What March does

March starts with a change: for example, a merged GitHub pull request or an event submitted by an MCP client. It investigates what that change affects in your company context, then produces an evidence-backed result.

An investigation is the asynchronous run that loads the change, checks the configured context, records evidence, and concludes with a decision. The configured context is either a local directory of company documents or one or more public web roots. See Sources and configuration.

The shortest path

  1. Sign in to March with an invited, allowlisted Netlify Identity account.
  2. On the Inbox, paste a GitHub pull request URL into Check a change and choose Check. Or connect an MCP client and call submit_event.
  3. March stores the investigation as pending, starts background work, and changes it to running while it investigates.
  4. Open the change from the Inbox. A completed investigation shows what March Understood, Checked, Found, and Concluded, followed by its outcome and supporting evidence.

March also supports an automatic GitHub path: a signed webhook starts an investigation when a pull request is merged. See GitHub.

What you get back

The result is one of these exact decisions:

  • propose_action: March found consequences and proposes actions or updates.
  • no_action: the evidence supports leaving the checked surfaces as they are.
  • escalate: March cannot safely decide and gives a question and reason for a person to resolve.

Failures inside the investigation run are stored as a completed escalate result: unreachable model providers after retries use model_unavailable, and other run failures, incomplete conclusions, or step-budget exhaustion use insufficient_evidence. An investigation is failed only when a pre-result failure prevents an outcome (for example, missing stored input, source/context loading, storage, or a trigger path that calls store.fail). A pending or running investigation whose last update (updatedAt) is older than 20 minutes is treated as failed with Investigation timed out.

For the full lifecycle and result vocabulary, read Investigations.

On this page