momentic ai triage
investigates failed tests and repairs them in place. Based on your
organization’s Healing settings, it
then opens a pull request with the fix.
This is the post-run repair agent. It is separate from in-run
auto-healing (locator resolution and smart waiting),
which keeps a single run green without changing your test files.
Add the workflow
Add a workflow to run your tests on every pull request and triage whatever fails:.github/workflows/momentic.yml
MOMENTIC_API_KEY authenticates the run so the agent picks up your
organization’s healing behavior.
Create one here and add it as a
repository secret. continue-on-error on the test step lets the triage step run
even when tests fail, and --timeout-minutes caps total triage time. --yes
skips confirmation prompts (on by default when CI is set).
Quarantined tests are healed by default. Pass
--skip-quarantined to exclude them.
The triage step automatically uploads the updated local results archive after
processing, so the dashboard and connected reporting receive the final results
and validation signal. Pass --no-upload to keep the post-triage archive local.
The contents: write and pull-requests: write permissions let the
Momentic GitHub App open the fix PR, which uses your
repository’s
pull request template.
Choose what a heal produces
Set On successful heal in Settings > Healing to control what a successful repair produces:pull-request: open a PR with the fix (default). Best when you want the fix reviewed and merged like any other change.draft-pull-request: open the PR as a draft so a human verifies it before it is marked ready. Requiresmomentic@2.123.0+.direct-commit: commit the fix straight onto the branch under test, no PR. Writes through the Momentic GitHub App server-side, so it works under a detachedHEADCI checkout and needs nocontents: write. On a protected branch (e.g.main) it opens a draft PR instead.patch: print agit apply-ready diff instead of opening a PR. Needs no GitHub App orpull-requests: write, so it is the option for forked-PR runs or when you would rather apply the fix yourself.
warn: log the failures and keep the job green. Use this while introducing auto-heal to an existing suite.fail: exit1so the check blocks the PR once you trust it.quarantine: exit1for this run and quarantine the tests the agent could not fix.
Skip triage when run is clean
Triage often needs your app’s dev servers running (and browsers installed) before it can re-run and repair tests — expensive setup to spin up on every PR. When every non-quarantined run already passed cleanly there is nothing to triage, so you can short-circuit all of that setup withmomentic results check.
results check reads a finished results directory and exits 0 only when every
non-quarantined run passed cleanly — no failures, cancellations, in-run failure
recovery, or failure classifications. Any unclean run exits 1. Gate the triage
setup on that signal:
.github/workflows/momentic.yml
results check step exits 0, needed stays false, and
the dev-server and triage steps are skipped entirely. This is the same gate
Momentic uses in its own CI. See the
momentic results check reference
for --json output and the exact “clean” definition.
Variations
For large suites, run healing on a schedule or on demand instead of on every PR by swapping the trigger. This mirrors the AI heal demo in momentic-ai/examples:--dry-run still uploads the local results archive by default. Combine it with
--no-upload to skip the archive upload.
See the momentic ai triage
reference for every flag. The same run-then-triage pattern works on
GitLab CI,
CircleCI, Jenkins,
and custom setups.