From “It Works on My Machine” to Executable Intent: A Practical Playbook for AI-Native Quality

January 1, 1970

From “It Works on My Machine” to Executable Intent: A Practical Playbook for AI-Native Quality

AI-assisted development has changed the shape of software delivery. Features ship faster, UI changes land more frequently, and pull requests get larger. The part that has not scaled nearly as well is confidence.

Traditional end-to-end automation asks teams to translate product intent into brittle scripts, then spend an ongoing tax maintaining selectors, debugging flakes, and explaining failures across tools. Shiplight AI takes a different stance: quality should live inside the development loop, and tests should read like intent, not infrastructure.

This post outlines a practical approach to building E2E coverage that stays readable for humans, useful for reviewers, and resilient as the UI evolves, while still running on the battle-tested Playwright ecosystem under the hood.

The new requirement: tests as a shared artifact, not a specialist output

In high-velocity teams, “QA” is no longer a handoff. It is a feedback system. To keep pace, your test artifacts need to do four things at once:

  1. Express intent clearly, in a format non-specialists can review.
  2. Prove behavior in a real browser, during development, not after merge.
  3. Remain stable through UI change, without turning maintenance into a second engineering roadmap.
  4. Produce signals people can act on, without log archaeology.

Shiplight is built around that loop: it plugs into AI coding agents for browser-based verification, then turns what was verified into durable regression tests with near-zero maintenance as a design goal.

Step 1: Capture intent in plain language, in version control

The fastest way to reduce friction between product intent and automated coverage is to stop treating tests as code-first artifacts. Shiplight tests can be authored as YAML flows made up of natural-language statements, designed to live alongside application code in your repo.

A minimal example looks like this:

goal: Verify user can create a new project
url: https://app.example.com/projects
statements:
- Click the "New Project" button
- Enter "My Test Project" in the project name field
- Click "Create"
- "VERIFY: Project page shows title 'My Test Project'"
teardown:
- Delete the created project

That format is not just for readability. It creates a reviewable surface area for engineers, QA, and product leaders to agree on what “done” means, without requiring everyone to become fluent in a testing framework.

Step 2: Verify inside the development loop, in a real browser

Readable intent matters, but confidence comes from proof. Shiplight’s MCP (Model Context Protocol) server is designed to connect to coding agents so they can open a browser, interact with the UI, inspect DOM and screenshots, and verify state as part of building the feature.

This flips a common failure mode: teams often discover E2E issues only after a PR is opened or merged because validation happens “later” in CI. With MCP-driven verification, the same agent that made the change can validate it immediately, in context, before reviewers ever see the PR.

Shiplight’s documentation also makes an important distinction: basic browser interactions can work without AI keys, while AI-powered assertions and extraction require a supported AI provider key. That clarity helps teams adopt incrementally.

Step 3: Keep tests fast and stable with locator caching plus “fallback to intent”

Most teams eventually hit the same wall: once you scale E2E, you either accept slow, dynamic tests or you optimize with selectors and reintroduce brittleness.

Shiplight’s model is more nuanced. A test can start as natural language, then be enriched with cached locators for deterministic replay. When the UI changes, the system can fall back to the natural-language description to find the right element, then recover performance by updating cached locators after a successful self-heal in the cloud.

In practice, this gives you three outcomes you rarely get together:

  • Tests stay reviewable because the intent remains in the description.
  • Runs stay fast because stable steps can replay deterministically.
  • Suites stay resilient because intent is not discarded when the UI shifts.

Shiplight also runs on top of Playwright, aiming to keep execution speed and reliability comparable to native Playwright steps, with an intent layer above it.

Step 4: Turn results into action with CI triggers, schedules, and AI summaries

Coverage is only valuable if it reliably produces decisions. Shiplight supports several ways to operationalize runs:

  • Trigger in CI, including GitHub Actions-based workflows for automated execution.
  • Run on a schedule, using cron-style schedules to execute test plans at regular intervals and track pass rates, flaky rates, and duration trends over time.
  • Send events outward, using webhook payloads that can include regressions (pass-to-fail), failed test cases, and flaky tests for downstream automation.
  • Summarize failures, using AI-generated summaries intended to accelerate triage with root cause analysis and recommendations.

This is where “test automation” becomes a quality system. Instead of a dashboard someone checks when things feel risky, you get a steady, structured stream of signals that can route to the tools your team already uses.

Where Shiplight fits: choose the entry point that matches your workflow

Shiplight is structured to meet teams where they are:

  • MCP Server for agent-connected verification and autonomous testing workflows.
  • Shiplight Cloud for test management, suites, schedules, cloud execution, and analysis.
  • AI SDK for teams that want tests to stay fully in code and in existing review workflows, while adding AI-native execution and stabilization on top of current suites.

For local iteration speed, Shiplight also offers a macOS desktop app that runs the browser sandbox and AI agent worker locally while loading the Shiplight web UI.

A simple first milestone: one critical flow, end-to-end, owned by the team

If you want a concrete starting point, pick one flow that is both high value and high risk, such as signup, checkout, or role-based access:

  1. Verify the change in a real browser during development using MCP.
  2. Save the verified steps as a readable YAML test in the repo.
  3. Promote it into a suite, then trigger it in CI for every PR that touches that surface area.
  4. Add a schedule to run it continuously, so regressions show up before customers do.

That is the shift Shiplight is designed to enable: quality that scales with velocity, without forcing your team to live in test maintenance.