QAwalk

Sinfin QAwalk · pre-launch

Shipped with AI. Now let’s actually look at it.

We all build faster than we review. Screens appear in branches nobody has opened, in languages nobody has clicked through. That is not an AI problem, it is a looking problem. QAwalk walks the acceptance plan, captures every screen and e-mail on the way, checks each criterion and lays the run out as one canvas: the contact sheet of the sprint, with a stamp of who looked at what.

Free during the pre-launch · e-mail sign-in · the first run in ten minutes

Here is what we built and what got approved

A live run of QAwalk on its own public pages, refreshed daily. Findings are genuine; when something fails, it is fixed in the next release, not hidden.

Live demo · a real run of QAwalk on itself · 6 of 6 steps passed · 2026-09-24Open the run in QAwalk ↗

Things that happen

How it works

  1. Acceptance plan

    An ACCEPTANCE.md next to the task says what each screen must achieve. A scenario.yml turns it into steps, branches and criteria the CLI can run.

  2. Walk

    A Playwright script, an agent with a browser, or a person walks the flow in a shared browser. Every step is captured the same way: full-page screenshots on desktop and mobile, rendered HTML, console errors, e-mails from the test mailbox.

  3. Check

    Countable criteria (elements, texts, prices, metadata, overflow) are checked in the live page with evidence. Criteria that need judgement get a probability from an AI evaluator that reads a reduced text outline of the page; QAwalk turns it into pass, fail or needs review.

  4. Canvas and stamps

    The run becomes a canvas: screens, branches, locales, evidence. Reviewers approve a step, return it with a note, or decide a manual criterion. The agent reads the notes with qawalk feedback and fixes them in the next run.

Three stamps. The human is the point.

approved

A person looked and agreed.

returned

A person looked and wrote what to change.

needs a human

The evaluator was not sure. Someone decides on the canvas.

What the canvas shows

What teams use it for

Accepting a task

The agent walks the plan on local or review, shares the canvas, posts the link into the PR. The reviewer accepts or returns it there.

Regression before a release

Run the flows against staging, compare with the accepted baseline, see what moved: statuses, criteria, pixels.

Landing pages and SEO on production

Read-only runs of public pages: headings, metadata, hreflang, overflow, console. QAwalk runs this on itself every day.

Agent-driven QA

Claude Code, Codex or CI run the same commands a person would; the canvas is where the two meet.

Fits the tools you already use

Install in three steps

QAwalk runs where your code and your agent are. The service stores and versions the results, shows the canvas and collects approvals.

  1. Add the CLI to the project
    npm install --save-dev github:sinfin/qawalk#v0.1.0

    Pre-launch: the repository is private. Ask Sinfin for access.

  2. Create the config and install the skill
    npx qawalk init --agent claude --org <your-org>
    npx qawalk doctor

    The skill is copied to .claude/skills/qawalk.

  3. Create your organization and a token

    Create an organization; you become its admin. The start page offers a tester token in one click, later under Settings → API tokens. Put it into the project .env:

    QAWALK_TOKEN=qwk_…
    TYPESAFE_API_KEY=…   # optional: semantic evaluator
  4. Run and share
    npx qawalk start --scenario docs/tasks/TASK-123/qa/scenario.yml --env local
    npx qawalk walk        # playwright steps; agent/manual steps: qawalk capture
    npx qawalk evaluate
    npx qawalk share --pr

    Or ask your agent: “Walk the acceptance plan of TASK-123 with QAwalk on local and share the result.”

Data & security

The evaluator sees an outline, not the page

The AI evaluator receives a reduced text outline of the page with e-mail addresses and tokens masked. It never receives screenshots or raw HTML.

Sign-in by e-mail link, three roles

People sign in with a one-time link sent to their work e-mail. A viewer reads and reviews, a tester also pushes runs, an admin also manages members, domains and tokens.

Runs expire, files live apart

Every run has an expiry date (30 days by default) and is deleted afterwards. Uploaded files are served from a separate origin under short-lived signed links; captured HTML runs in a sandbox without scripts.

Production stays read-only

A production environment is always read-only in the CLI: public pages as a visitor, no sign-in to back offices, no data created.

Pre-launch: free while we test with the first teams, no guarantees yet. Pricing and terms will follow, announced in advance. Pre-launch terms.

Questions we get

Does QAwalk replace tests?

No. Unit and end-to-end tests tell you whether the code works. QAwalk shows what was built and lets a person say whether it is what was meant.

Do I need an AI evaluator?

No. Countable criteria run without one. For judgement criteria bring your own key (the default is JEV by TypeSafe); without it they stay “not evaluated” until a reviewer decides.

What does it cost?

Nothing during the pre-launch. Pricing comes with the full terms and will be announced in advance; your data stays readable and exportable either way.

Where is the data?

Cloudflare storage chosen by Cloudflare; the operator is a Czech company under EU law. Runs are yours and expire on the date you set.

What comes next

A weekly “what changed” canvas assembled from runs, check packs for SEO and accessibility, and a GitHub check that turns green when the run is accepted. We tell admins before anything changes that affects them.