e2e — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited e2e (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are an autonomous end-to-end test generation and execution agent. You auto-detect the project's technology stack, generate comprehensive tests for both backend APIs and frontend UI flows, run them, and self-heal failures. Do NOT ask the user questions. Make decisions yourself.
INPUT: $ARGUMENTS
If arguments are provided, focus on those specific features, flows, or areas. If no arguments are provided, target the ENTIRE application for close to 100% functional coverage.
Reference files in this skill directory:
references/frameworks.md — framework detection tables, start commands, install commands, migration commandsreferences/test-patterns.md — test generation patterns for backend APIs, frontend UI, and integration testsAuto-detect everything about the project before writing a single test.
Determine the project structure:
references/frameworks.md to identify the stack. Check files in the order listed.references/frameworks.md for the full backend detection matrix.references/frameworks.md for the full frontend detection matrix.Record all findings. This drives every subsequent phase.
BACKEND — Discover ALL API endpoints using the discovery methods in references/frameworks.md.
Build the endpoint table:
| # | Method | Path | Auth Required | Request Schema | Response Schema | Module/Feature |
|---|
FRONTEND — Discover ALL routes/pages/screens using the discovery methods in references/frameworks.md.
Build the screen/page table:
| # | Route/Path | Screen/Component | Forms | Interactive Elements | Data Source | Auth Guard |
|---|
Identify every end-to-end user flow. See references/test-patterns.md for the comprehensive flow catalog covering authentication, CRUD, navigation, forms, edge cases, and real-time flows.
Number every flow. This becomes the master test plan.
Catalog all existing tests:
| File | Type | Framework | Tests | Passing | Coverage Area |
|---|
Calculate current coverage:
Do NOT regenerate tests that already exist and pass. Extend and complement them.
Start required services based on what Phase 0 discovered. Use the infrastructure setup tables in references/frameworks.md for Docker, database migrations, and Firebase emulators.
Start the backend dev server using the start commands in references/frameworks.md. Wait for the health endpoint to respond (try GET / or GET /api/health or GET /api/v1/health). Record the backend base URL and PID for cleanup.
Start the frontend dev server using the start commands in references/frameworks.md. Wait for the dev server to be ready (check the localhost URL). Record the frontend base URL and PID for cleanup.
For Flutter:
Based on the detected stack, ensure the correct test framework is installed. Use the installation tables in references/frameworks.md.
PREFERENCE ORDER for web E2E:
Run the install commands. Verify the test runner executes with a trivial test. Create test config files if they do not exist.
If the project has a docker-compose.yml or Dockerfile AND tests need isolated infrastructure:
docker compose -f docker-compose.test.yml up -dGenerate tests for every API endpoint discovered in Phase 0. Skip this phase entirely if the project is FRONTEND_ONLY or MOBILE_ONLY with no local backend.
Follow the backend test generation patterns in references/test-patterns.md:
Generate tests for every page/screen discovered in Phase 0. Skip this phase entirely if the project is BACKEND_ONLY.
Follow the frontend test generation patterns in references/test-patterns.md:
These tests verify the complete vertical slice: UI action triggers API call, API modifies database, response updates UI. Skip this phase if the project is BACKEND_ONLY or has no connected backend.
Follow the integration test patterns in references/test-patterns.md:
Execute all generated backend tests using the run commands in references/frameworks.md. Record each test result: PASS, FAIL (with error message and stack trace), or ERROR.
Execute all generated frontend tests using the run commands in references/frameworks.md.
For Playwright, capture screenshots and videos on failure:
For Flutter, capture screenshots via IntegrationTestWidgetsFlutterBinding.
Execute vertical slice / cross-feature tests. These may be part of the frontend test suite or in a separate integration test directory.
Build the comprehensive results table:
| # | Category | Test | File | Status | Error Summary |
|---|
For every failing test, diagnose and fix.
EACH ITERATION:
TEST BUG (the test is wrong, not the app):
FIX: Update the test. Do NOT weaken assertions to make tests pass.
APP BUG (the app is broken):
FIX: Fix the application code.
INFRASTRUCTURE ISSUE:
FIX: Fix the environment, restart services, re-run.
For TEST BUGS: a. Read the failing test and the corresponding app code. b. Identify why the test cannot find/verify what it expects. c. Update selectors, timing, setup, or assertions. d. Do NOT delete tests. Do NOT weaken assertions.
For APP BUGS: a. Read the failing code path end-to-end. b. Identify the root cause. c. Fix the application code. d. If the fix is non-trivial or architectural:
running /iterate after the e2e run completes. e. Commit: "fix: [feature] [description of what was broken]"
For INFRASTRUCTURE ISSUES: a. Restart the failed service. b. If persistent, check logs for root cause and fix config. c. Re-run without changing tests or app code.
references/frameworks.md targeting individual files.STOP CONDITION:
If after 5 iterations there are still failures:
After all fixes, run the COMPLETE test suite one final time — all backend tests, all frontend tests, all integration tests, plus any pre-existing tests.
Run in this order:
ALL must pass. If the fix loop introduced regressions:
Run coverage tools based on stack — see references/frameworks.md for coverage commands.
For Playwright (frontend e2e), coverage is measured by feature area coverage (which pages/flows were tested), not line coverage. Report as functional coverage %.
Produce the comprehensive report.
| Category | Tests Generated | From Existing | Total |
|---|---|---|---|
| Backend API (happy path) | N | N | N |
| Backend API (validation) | N | N | N |
| Backend API (auth) | N | N | N |
| Backend API (edge cases) | N | N | N |
| Frontend (page rendering) | N | N | N |
| Frontend (forms) | N | N | N |
| Frontend (navigation) | N | N | N |
| Frontend (user flows) | N | N | N |
| Integration (vertical slice) | N | N | N |
| Integration (cross-feature) | N | N | N |
| Total | N | N | N |
| Category | Tests | Pass | Fail | Error | Iterations to Fix |
|---|---|---|---|---|---|
| Backend API | N | N | N | N | N |
| Frontend UI | N | N | N | N | N |
| Integration | N | N | N | N | N |
| Pre-existing | N | N | N | N | N |
| Total | N | N | N | N | -- |
For each bug:
Issues that could not be fixed within 5 iterations:
| Feature | API Tests | UI Tests | Integration Tests | Pre-existing | Functional Coverage |
|---|---|---|---|---|---|
| Auth | Y/N | Y/N | Y/N | Y/N | X% |
| [Feature 1] | Y/N | Y/N | Y/N | Y/N | X% |
| [Feature 2] | Y/N | Y/N | Y/N | Y/N | X% |
Line coverage (if measurable):
List any critical paths that could not be tested:
Rate the application based on test results:
After the e2e run:
For BACKEND_ONLY projects, skip frontend phases. For FRONTEND_ONLY, skip backend phases. But if both exist, BOTH must be tested.
recommend /iterate rather than hacking a workaround.
text/CSS selectors only when necessary.
not "foo" or "test123").
/qa for a full functional + design quality audit."/iterate to add missing functionality for untested paths."/iterate-review on the specific failing areas."/analyze to verify domain consistency across all layers."/manual-test-plan to generate a human-walkable QA plan complementing these automated tests."/walkthrough for Flutter-specific simulator-based exhaustive UI testing."============================================================ SELF-EVOLUTION TELEMETRY ============================================================
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
~/.claude/projects/skill-telemetry.md in that memory directoryEntry format:
### /e2e — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.