e2e
Skill3 starsChanged 23 days agoMITView on GitHub
Agentic end-to-end tests with e2e, the e2e runner. Covers scaffolding e2e.config.ts, picking the Playwright browser engine or the agent-device mobile engine, starting the app under test from the config, driving flows with agent.act, judging with agent.assert, agent.waitFor, and agent.extract, pinning values with screen, app, browser, and expect, shaping the agent (context, system prompt, tools, personas), the replay cache, the e2e CLI, reading .e2e/report.json, and bug bashes (parallel explore runs proven with repro tests). Use when a project depends on e2e, when asked for end-to-end, browser, mobile, or agentic UI tests, to bug bash or hunt for bugs, or when an e2e run fails.
- Reads credentials
50 other projects use a version of this, 7 of them edited.
Adopted by
Most recently taken up by
- varelaia/claude-skills-publictheir own version, first seen Nov 8, 2026
- sgaabdu4/appwrite-backendtheir own version, first seen Nov 8, 2026
- kortix-ai/sunaedited, first seen Nov 8, 2026
- n1kben/agentsedited, first seen Nov 8, 2026
- AsiaOstrich/EngramGraphtheir own version, first seen Nov 8, 2026
- jocarrd/crux-agentstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use instinct-export, instinct-import and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
TheKREATORSSkillinstinct-export
Export instincts from project/global scope to a file
Also in 3 projects that use this
TheKREATORSSkillinstinct-import
Import instincts from file or URL into project/global scope
Also in 3 projects that use this
diego-tobalinaSkillbuild-fix
Fix build and compilation errors systematically. Run when build fails.
Also in 4 projects that use this
0mlkrizzz655335vSkillsdk
Codex SDK 集成开发。用 TypeScript/Python SDK 做 agent 生命周期、流式输出、本地/云端执行等集成。
Also in 3 projects that use this
MontimageSkilltest-coverage
Improve test coverage by finding untested branches, error paths, and edge cases. Use when measuring or strengthening a project's tests. Don't use for production debugging, code review, or feature implementation.
Also in 3 projects that use this
MicrosoftSkillworktree
Create, reuse or clean up a dedicated git worktree for working on a pull request or a private branch. Use from any PR-scoped workflow that needs an isolated checkout to keep current code and build output untouched.
Also in 5 projects that use this
- +1 more from TheKREATORS
Other versions50 projects use a version of this.
Word for word · 0
None found.
Edited · 7
- kortix-ai/suna★ 21k90% same
- kortix-ai/CompanyOS★ 21k90% same
- tester-army/e2e★ 13k30% same
- callstack/react-native-pager-view★ 3.4k96% same
- gronxb/hot-updater★ 1.8k97% same
- open-mercato/cezar★ 962100% same
- n1kben/agents★ 0100% same
Wrote their own version · 43
- elie222/inbox-zero★ 13ksame name
- getsentry/sentry-javascript★ 8.8ksame name
- entireio/cli★ 5.3ksame name
- openmeterio/openmeter★ 2.4ksame name
- stackia/rtp2httpd★ 2.3ksame name
- alibaba/loongcollector★ 2.2ksame name
- lodev09/react-native-true-sheet★ 2.1ksame name
- kdlbs/kandev★ 1.1ksame name
- Gram-ax/gramax★ 609same name
- platformplatform/PlatformPlatform★ 439same name
33 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository51 other files it gives its agents.
- guidelines/CLAUDE.mdCLAUDE.md
- animate-expoSkill
- animateSkill
- animation-vocabularySkill
- apple-designSkill
- ask-sonnerSkill
- batch-grill-meSkill
- bi-dashboardsSkill
- bouw-loopSkill
- brandkitSkill
- code-auditSkill
- commit-disciplineSkill
- councilSkill
- createlooppromptSkill
- data-visualizationSkill
- design-taste-frontendSkill
- diagram-designSkill
- dicht-loopSkill
- e2e-rulesSkill
- emil-design-engSkill
- find-animation-opportunitiesSkill
- find-bugsSkill
- fixing-accessibilitySkill
- fix-loopSkill
- frontend-gotchasSkill
- goalSkill
- improve-animationsSkill
- keten-loopSkill
- make-interfaces-feel-betterSkill
- mobile-nativeSkill
- office-docsSkill
- pick-ui-librarySkill
- polijst-loopSkill
- polpohire-designSkill
- pre-pr-gatesSkill
- projectstructuurSkill
- prototypeSkill
- readmeSkill
- reaSkill
- redesign-existing-projectsSkill
- render-proofSkill
- repo-hygieneSkill
- review-animationsSkill
- skill-finderSkill
- speur-loopSkill
- supergoalSkill
- systematic-debuggingSkill
- theme-selectorSkill
- transitions-devSkill
- ux-heuristicsSkill
- waak-loopSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 0 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 44 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 59
Read the topic for the job before writing code.
- Very specific: line 82
Look at what exists: e2e.config.ts or e2e.config.mts, the tests glob (default tests//*.e2e.ts), e2e in package.json.
- Very specific: line 90
Write tests/<feature>.e2e.ts.
- Very specific: line 94
Run one file: npx e2e run tests/<feature>.e2e.ts.
- Very specific: line 98
Read the trace page the terminal names under each failed test (.e2e/results/<test>/trace.md): every step with what it did, the cache's …
- Very specific: line 105
Run the CLI as npx e2e ...
- Very specific: line 110
Import test, describe, the hooks, expect, credentials, and secrets from e2e.
- Very specific: line 129
Check each agent goal's outcome.
- Very specific: line 141
When e2e itself gets in your way, tell the e2e team: a command or API that broke (bug), docs or this skill that misled you (docs), or a …
“Common” is measured: kept by at least 6 in 10 of the 44 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
e2e: agentic end-to-end tests in TypeScript
e2e runs UI tests with agent goals and exact assertions. agent.act drives
one goal; agent.assert, agent.waitFor, and agent.extract judge the
screen. screen, app, browser, and expect make exact interactions and
checks. The replay cache reruns verified actions and checks their recorded end
state without a model call; agent judgments still run live. UI targets use
@e2e-dev/web for browsers or @e2e-dev/mobile for iOS simulators,
Android emulators, and connected phones. A test that takes only app can check an API with fetch
and expect (topic writing-tests). Model sign-in commands are in
setup.
// e2e.config.ts
import type { E2EConfig } from 'e2e';
import { web } from '@e2e-dev/web';
import { gateway } from 'ai';
export default {
targets: [
{
engine: web(),
app: {
url: 'http://127.0.0.1:3000',
command: { executable: 'pnpm', args: ['dev'], log: '.e2e/logs/app.log' },
},
},
],
// The model behind every agent.* step: an AI SDK instance; gateway() from 'ai' reads AI_GATEWAY_API_KEY or a Vercel OIDC token.
agents: {
default: {
model: gateway('openai/gpt-6-luna-fast'),
system: 'You are a thorough QA agent. Verify every outcome on screen.',
},
},
} satisfies E2EConfig;// tests/billing.e2e.ts
import { test } from '@e2e-dev/web';
import { expect } from 'e2e';
test('a member upgrades to Pro', async ({ app, agent, screen, browser }) => {
await app.open('/settings/billing');
await agent.act('upgrade the workspace to the Pro plan');
await expect(screen.getByRole('status')).toContainText('Pro');
await expect(browser).toHaveURL('/settings/billing');
});Topics
Read the topic for the job before writing code. The files sit next to this
one; the installed CLI prints the same text with npx e2e guide <topic>
(e2e guide alone prints this page). For anything the topics do not cover,
the full documentation ships in the docs/ directory of the installed e2e
package (node_modules/e2e/docs in a single-package project); a link such as
/reference/cli is docs/reference/cli.mdx. Complete projects for Vite,
Next.js, Expo, SwiftUI, Jetpack Compose, Kotlin Multiplatform, and Flutter,
each with its config, scripts, and a passing suite, are in
https://github.com/tester-army/e2e/tree/main/examples.
| Topic | File | Read it when |
setup | references/setup.md | Adding e2e to a project, writing e2e.config.ts, starting the app from the config, mobile targets |
writing-tests | references/writing-tests.md | Writing or fixing tests: fixtures, locators, actions, matchers, sign-in sessions, the browser fixture |
agent | references/agent.md | Adding agent.* steps, picking a model, cost and budgets, the replay cache |
running | references/running.md | CLI flags, reporters, trace pages, report.json for scripts, exit codes, CI |
explore | references/explore.md | Exploring an app toward a goal without a test file: e2e explore, its budgets, verdict, and run.explore |
debugging | references/debugging.md | A run failed: error codes and their fixes, --headed, --debug, --ai-trace |
mcp | references/mcp.md | Driving the live app from a coding agent over MCP: e2e mcp, its tools, and the explore-then-write loop |
bug-bash | references/bug-bash.md | Asked to bug bash, QA, or hunt for bugs across an app or a branch: parallel e2e explore charters, merging findings, proving each with a repro test |
Workflow
- Look at what exists:
e2e.config.tsore2e.config.mts, thetestsglob (defaulttests/**/*.e2e.ts),e2einpackage.json. Nothing there: followsetup. - Learn the screens before writing a test: routes, labels, roles, button
text. Semantic locators need the accessible names the app renders, so read
the components, open the page with
--headed, or drive the live app over the registerede2e mcpserver (topicmcp):open_session,observe, andlocateshow exact names and check a locator before you write it. - Write
tests/<feature>.e2e.ts. Drive the flow withagent.act, one goal per call, and pin each outcome right after withexpectoragent.assert. Exact values go throughscreen: a sign-in form in a setup test, a field that must receive one specific string, a count that must be one number. - Run one file:
npx e2e run tests/<feature>.e2e.ts. Agent steps need a model in the config and that provider's authentication (a saved subscription login, an API key); a local endpoint may need none. Tests without agent steps need no model. - Read the trace page the terminal names under each failed test
(
.e2e/results/<test>/trace.md): every step with what it did, the cache's decision, what the app logged, the agent's turns, and the screen at failure. Fix the locator, the expectation, or the app. Never add a sleep.
Rules
- Run the CLI as
npx e2e ...(orpnpm exec e2e ...). - The config is
export default { ... } satisfies E2EConfigwithimport type { E2EConfig } from 'e2e'.targetsis required; a UI target names an engine and declares the app beside it:{ engine: web(), app: { url, command } }. A tools-only target can omit the engine and setplatform. - Import
test,describe, the hooks,expect,credentials, andsecretsfrome2e. A test that uses thebrowserfixture importstest,describe, and the hooks from@e2e-dev/web: the same runtime functions, typed withbrowser. - Config and tests are ES modules whatever
package.jsonsets astype. - Locators resolve when used. Actions wait for readiness and
expectretries assertions. Reads such astextContent()fail at once on zero matches andcount()answers from the current screen; nothing waits for a value to change, so use a matcher when a value has to settle. - A locator that matches two nodes fails with
LOCATOR_AMBIGUOUS; narrow it (topicwriting-tests). - Secrets never appear in test code. Declare accounts under
credentialsand every other sensitive value undersecretsin the config; resolve withcredentials.user(name).passwordorsecrets.get(name)(separate namespaces:secrets.getnever returns a password), and hand the opaqueSecretonly tofill()oragent.actparams. - Agent instructions: one goal per
act, the wording on screen, real values in params. Judge meaning, not phrasing:toContain('Pro'), not an exact sentence a model produced. - Check each agent goal's outcome. A passing
actwith a recorded check can be cached and replayed without model calls (topicagent). - Shape the agent for this app:
contextfor vocabulary the screens use,systemfor how it works, tools for a test API, named personas underagents. When a step fails, tighten the goal first, then the context, then the agent. .e2e/is output (report.json,results/,cache/,logs/; the config'soutputmoves the report and artifacts, nevercache/or the app's log). Read it, never edit it.
Feedback
When e2e itself gets in your way, tell the e2e team: a command or API that
broke (bug), docs or this skill that misled you (docs), or a capability
you needed and did not find (feature). Send it once per problem, after you
worked around it or gave up, never for failures of the app under test.
npx e2e feedback --type bug -m "<one or two sentences>" \
--task "<what you were doing>" --expected "<...>" --actual "<error code and message>" \
--approach "<what you tried>" --command "<e2e command>" --agent "<agent / model>"Describe e2e's behavior only: never paste app content, page text, test files,
URLs of private apps, or credentials. Secret-named environment variables and
common token shapes are redacted, but do not rely on it. --dry-run prints
what would be sent. Tell the user you sent it and give them the reference id
it prints.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

