Teach your agent to test the app. Review what changed.

Run your end-to-end tests with Reflow. Give your coding agent snapshots it can use to check for regressions.

Review changed screenshots and business results in your pull request, with links to the original evidence.

Closed beta. Sign in to register interest; app access is limited to approved teams.

A refund, in your application’s language.Custom plugin example
$ reflow apply
  customer → order → refund → verify

 ✓ Prepare the customer
   shop.customer id="alex" balance=100
   CUSTOMER       BALANCE       INVENTORY
   Alex           $100.00       10 available

 ✓ Place an order
   shop.place_order customer="alex" total=25
   ORDER          BALANCE       INVENTORY
   paid           $75.00        9 available

 ✓ Refund the order
   shop.refund_order customer="alex"
   ORDER          paid → refunded
   BALANCE        $75.00 → $100.00
   INVENTORY      9 → 10

 ✓ Assert the business outcome
   shop.expect_balance customer="alex" amount=100
   shop.expect_stock count=10
   shop.expect_order status="refunded"
   shop.snapshot name="after-refund"
   ✓ Balance restored  ✓ Stock restored
   ✓ Order refunded    snapshot: after-refund

  4 flows passed. Snapshot ready for review.

Application knowledgeDAG / plan / applyEvidence deltasPR review

Teach it what matters
in your application.

Who can invite a teammate? What should a refund restore? Your agent records those rules in Reflow’s application knowledge repository and updates them as the app changes. It reads and writes that knowledge through MCP.

Each page connects that context to the flows that check it, so the next change starts with what your app is supposed to do.

Explore application knowledge
reflow / Application knowledgeIllustrative example
team-access.mdRevision 3f2a · example

Team access

Expected behaviorAn invitation keeps the role the owner selected.

Owners can invite teammates as editors or viewers. Accepting an invitation must grant that role.

Referencessrc/team/invitations.ts/settings/team
Exercised by
  1. seed-data
  2. invite-member
  3. verify-role

Selected role = accepted role

Expired invitations: coverage not recorded.

checkout.mdRevision 3f2a · example

Checkout

Expected behaviorCharge the total shown at checkout.

Apply the customer’s discount before payment. The saved order and the receipt must show the same total.

Referencessrc/orders/checkout.ts/checkout
Exercised by
  1. seed-cart
  2. place-order
  3. verify-total

Cart total = payment = receipt

Multiple discount codes: behavior not documented.

refunds.mdRevision 3f2a · example

Refunds

Expected behaviorA full refund restores the balance and returns stock.

The customer receives the amount paid. The order is marked refunded and its items become available again.

Referencessrc/orders/refunds.ts/orders
Exercised by
  1. place-order
  2. refund-order
  3. verify-refund

Balance restored · stock returned

Partial refunds: coverage not recorded.

Plan tests around
their dependencies.

The invitation flow depends on seeded data, and the role check depends on an invitation. Reflow runs them in that order.

Your agent declares prerequisites with needs. Before execution, Reflow explains which work will run, reuse completed results, wait for dependencies, or stay blocked. A little like Terraform for testing.

Understand the execution model
Test dependency graphProduct example
The invitation and profile flows both depend on seed-data.

Test what a refund
does to your application.

A refund should restore the balance and return the item to stock. Define commands and comparisons that express those business rules.

Plugins give your agent a testing language for your application, across the browser, database, background jobs and email.

Build application commands
reflow / Custom Commerce pluginIllustrative example
refund-order.mdshop.refund_order customer="alex"
Customer balance$75.00$100.00$25.00 returned
Inventory9101 item returned
Snapshot deltaBeforeAfter
order.statuspaidrefunded
balance$75.00$100.00
stock910
shop.expect_balance customer="alex" amount=100shop.expect_stock count=102 assertions passed

Teach your agent to catch what a passing test misses.

An invitation test can pass even when the role selector disappears.

Reflow captures screenshots during test runs and compares them across changes. Your agent checks those differences against the PR’s intended scope and links the relevant captures in its review.

reflow / Team invitationsIllustrative example
Change Summary

Update invitation copy

1 changed screen
invite-memberPassed
team-invitation/settings/team
Beforemain
AcmeWorkspace Invite a teammate Add someone to your workspace. Email address sam@acme.test RoleEditor Send invitation
Afterthis change
AcmeWorkspace Invite a teammate Add someone to your workspace. Email address sam@acme.test Role selector removed Send invitation
The test passed. The screen changed.site.snapshot
Agent reviewOutside scope

The role selector disappeared.

This PR changes invitation copy. Owners still need to choose a role before sending an invitation.

team-invitationteam-access.md

Put the application change
in the pull request.

Show your reviewer the missing control, the changed result and the rule they affect. Your agent can explain which changes belong in scope and which need a closer look.

Keep the screenshots and flow results one click from the review, with a change summary that updates as the run progresses.

reflow / Pull request reviewIllustrative example
Pull request #184

Update invitation copy

copy/team-invite → main · head 9c1e2f7
invite-memberPassed
verify-roleFailed
accept-inviteBlocked
team-invitation.pngChanged
Application reviewPrepared note

The role selector disappeared.

The invitation still sends, but an owner can no longer choose the new member’s role. This PR was intended to update copy.

Before
AcmeWorkspace Invite a teammate Add someone to your workspace. Email address sam@acme.test RoleEditor Send invitation
After
AcmeWorkspace Invite a teammate Add someone to your workspace. Email address sam@acme.test Role selector removed Send invitation
Application rule · team-access.md

“An invitation keeps the role the owner selected.”

Before / after capturesFlow results

Scale the testing.
Keep the context focused.

Your agent can run independent flows in parallel and read selected knowledge and test results through tool calls.

Start with a run summary, then inspect the relevant knowledge and snapshots. The agent can work across the application without loading the whole repository or every test result into its context window.

Agent · Reflow MCPIllustrative example
MCPmanage_execution
{ "action": "plan" }

Selected target · application test suite

checkout
ReadyRunningDone
team-invitation
ReadyRunningDone
order-refund
ReadyRunningDone
account-settings
ReadyRunningDone

Apply the inspected plan · parallelism 4

Returned to your agent4 flows completed. 1 screen changed.

Inspect team-invitation with the rule in team-access.md.

Full snapshots and run output retained in Reflow.

Teach your agent
your first application rule.

Set up Reflow