See how your change behaves before you deploy.
Connect your coding agent through MCP. Give it an isolated copy of your stack to rehearse migrations, test user journeys, and return evidence before you merge.
- 1inspect
- 2provision
- 3restore
- 4exercise
- 5decide
- 6destroy
change + manifest
customer boundary
change under test
sanitized branch
declared jobs
journeys + route mix
trace + rows + video
pass or fail
A full test environment for each pull request.
Twin
An isolated, temporary copy of the relevant application stack.
State
A safe, referentially consistent, production-shaped dataset.
Containment
No charging cards, emailing users, or invoking production webhooks.
Behavior
Agents driving the workflows you declared, and traffic shaped like production's log.
Judgment
Workflow verdicts, invariants asked of the data, and latency against production's p95.
Evidence
FAILA pass or fail on the pull request, with the rows, the trace and the video behind it.
Cleanup
Destroy temporary resources and prove that cleanup completed.
Test against the conditions your change will meet.
Bring services, data, and test traffic together in an environment dedicated to your change.
fragmented signals
one decision path
- State volumeFixture volumeProduction-shaped subset
- Rare recordsNo long-tail rowsReferential rare records
- ConcurrencyQuiet concurrencyEquivalent workload
- IsolationOne shared schemaA branch per pull request
- EgressLive Stripe and emailFail-closed containment
- DecisionA preview URLPass or fail, with evidence
- Safe state
- Workload
- Containment
- Evidence
Rehearse migrations at realistic database sizes.
Inspect lock durations, table rewrites, query plan changes, and compatibility with the previous release.
110 samples · one every 250 milliseconds
- blocked another
- yes
- table rewrite
- yes
- plan changed
- yes
Example findingExample migration report with sample values.
- lock
- 27.4s
- blocked
- yes
- rewrite
- yes
- plan
- changed
A 27-second lock is a finding. Not a line in a log nobody reads.
The rehearsal runs the pending migrations against a branch with production's shape and samples what is locked every 250 milliseconds.
Read the repository
Detection writes a manifest, names the file every answer came from, and says what it assumed.
Reproduce safely
Isolated twin, sanitized state, fail-closed egress.
Exercise
Declared workflows, invariants asked of the data, production's route mix.
Decide
Pass or fail on the pull request, then destroy the environment.
Know what passed and what needs attention.
- PASS
Ship
The configured checks passed. Review their scope and supporting evidence.
- FAIL
Do not merge
A check found a failure. Review the evidence and reproduction steps.
- UNVERIFIED
We could not tell
The run could not establish an outcome. Review the reason and rerun the affected checks.
Common questions.
- Does production data leave my infrastructure?
- No. The hosted control plane holds organizations, policy, aggregated reports, and billing. Raw snapshots, secrets, and captured request bodies stay in your cloud by default.
- How do I know the masking actually worked?
- After masking, a scanner samples rows across every table and column for emails, card numbers, phone numbers, and keys. A signed attestation records coverage and findings. Only verified snapshots can be branched.
- What stops a test run from emailing real customers or charging a real card?
- Outbound traffic goes through a gateway with a policy for each host. Use sandboxes, offline mocks, local emulators, or captured messages for integrations. Unlisted destinations are blocked.
- Can a run complete with no network access at all?
- Yes. Supported offline mocks include Stripe checkout, subscriptions, renewals, cancellations, and signed webhooks.
- What happens when a check fails because the tooling broke, not my code?
- The result distinguishes application failures from blocked, flaky, and unverified checks, with a reason to help you decide what to rerun.
- Which databases and platforms does it support?
- Postgres, sourced from Docker, Neon, Supabase, or DBLab thin clones in front of any Postgres including RDS, Cloud SQL, and Azure Database. It runs locally on Docker, in GitHub Actions, or on your own Kubernetes.
- Is it open source?
- The repository is MIT licensed except for the ee/ directory, which is under the Antifailure Enterprise License. That directory is never compiled into the community binary, images, or Helm chart.
- Is it production ready?
- The version 1 contract covers the manifest, CLI, documented JSON fields, provider interfaces, and error codes. The stability guide and component status document describe support and verification for each feature.
Bring your next pull request.
See how Antifailure would test your stack, what it would check, and the evidence your team would review before merging.