Auto-E2E

How it works

Five layers, each derived from the one above it

Each layer is generated from the one above it. Owners correct the layer where they have the knowledge, and the correction flows back up. Tests are the last layer, not the first.

1 Features what the product can do auth/ registration · email-verification · access-whitelist · login-&-session workspace/ create · invite · roles documents/ upload analysis/ run · report · export grouped by use 2 Feature sets & flows how it is actually used flow onboarding-without-sso: registration → verification → whitelist → login → workspace flow first-analysis: login → upload → run → report flow share: invite → report → export expanded per feature 3 Scenario trees coverage + dependencies email-verification ─┬ verified on first link ─┬ link expired → resend ─┬ verified, not whitelisted └ registered, not verified ← was missing depends on registration blocks login → … emitted in any form 4 Tests in any implementation test("not verified → shows Check your inbox", …) playwright 1. register 2. do not open the link 3. return → expect "Check your inbox" claude + browser run · shown as status 5 Readable view for the owners, no code email-verification 4 scenarios 3 covered 1 new — needs your OK 1 drifted login-&-session 6 scenarios 5 covered · 1 drifted (button renamed) owner feedback flows back up
Tests are the last layer, not the first. Each layer is generated from the one above; corrections from the owners flow back up, so the map gets better instead of the scripts getting patched.

The map

Dependencies are explicit, so a change already knows what it touches

The map · hover or tap a feature

changeddragged alongprerequisite
This is the thing nobody keeps today. Every test in the product hangs off one of these nodes; change a node and the map already knows which scenarios to re-check.

Architecture

Three engines, one feedback loop

Each engine bootstraps its layer once, then lives on feedback. Corrections sync upward, changes cascade downward, and the test runtime underneath is a pluggable choice.

Same colours as the whiteboard

engineinputmodule
codebase docs repo · tracker user flows user feedback existing tests codebase webhooks, live Feature engine understands the product init: build the list then: refine on feedback Scenario engine understands how it is used init: build the tree then: refine on feedback Tests engine emits + runs, no user needed init: map existing tests then: keep in sync features list scenario tree feedback synced cascade sync Implementation module playwright · selenium · claude runtime: figranium (draft) Tests analytics coverage · logic-path drill feeds the readable view
Each engine bootstraps its layer once, then lives on feedback. Corrections sync upward; changes cascade downward; the runtime underneath is a pluggable choice.

Bring your own runner

Playwright, Selenium, Cucumber or an AI with a browser — the scenario tree is the product; the tests are outputs.