agentleFS
YassimbaYassimba/loom/skills/e2e-test/SKILL.md

e2e-test

Skill9 starsChanged 2 months agoApache-2.0View on GitHub

Manual end-to-end walkthrough — drive the live app first-hand (CLI, API, web UI) and query the datastore directly. Trigger on "e2e", "smoke test", "manually test".

  • Reads credentials

26 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use unit-test, design-md and 3 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.
  • kevinaimonsterSkill

    unit-test

    单元测试生成助手。帮用户编写单元测试、集成测试、Mock 设计、测试覆盖率提升。当用户说「帮我写单元测试」「写个测试用例」「怎么测这个函数」「mock怎么写」「测试覆盖率」「写测试」「unit test」「test case」「jest测试」「pytest」「vitest」「testing」时触发。关键词:单元测试、测试用例、测试覆盖率、mock、stub、spy、jest、pytest、vitest、mocha、junit、testing-library、断言、边界测试、异常测试、集成测试、e2e测试、测试驱动、代码覆盖率、coverage、test runner、describe、it、expect、assert、fixture、parametrize、测试金字塔

    Also in 4 projects that use this

  • klauswgSkill

    design-md

    Analyze Stitch projects and synthesize a semantic design system into DESIGN.md files

    Also in 3 projects that use this

  • HashiCorpSkill

    changelog

    Add a `.changelog/<PR_NUMBER>.txt` entry for a GitHub Pull Request, commit, and push.

    Also in 3 projects that use this

  • MicrosoftSkill

    playwright-cli

    Automate browser interactions, test web pages and work with Playwright tests.

    Also in 3 projects that use this

  • BlockSkill

    plan

    Draft a TDD, PRD, or lightweight plan in the conversation without committing it.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 22 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Write the inventory to ai-docs/e2e-output/00-inventory.md — every later phase is scoped to it.

    line 31
  2. Distinctive:

    Every step has the same shape:

    line 68
  3. Distinctive:

    Document expected vs actual with evidence file paths.

    line 84
  4. Very specific:

    Write a focused regression unit test in the existing suite — the only test code this skill produces.

    line 85
  5. Distinctive:

    Always emit a text summary in the final message:

    line 95

“Common” is measured: kept by at least 6 in 10 of the 22 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

E2E Manual Walkthrough

The evidence rule

Every "it works" claim in this walkthrough rests on first-hand evidence: an artifact on disk — ai-docs/e2e-output/**.txt, ai-docs/e2e-screenshots/**.png, a datastore query result — produced by you driving the live app, and read back by you afterward. A passing test suite is hearsay: a synthetic harness (TestClient, fixtures, fakes, mocked browsers) vouching for the app from inside. Hearsay is inadmissible — it misses what breaks in production: startup ordering, real network paths, real datastore constraints, real auth, real rendering. A step whose only support is a green test run is an untested step; go drive it.

The deliverables are the evidence trail and the report — plus, when you catch a bug, one regression unit test in the existing suite (see "When you find a real bug").

First-hand evidence per surface:

  • CLI → Bash runs the binary; read stdout, stderr, exit code
  • API → curl / httpx against the running server; read status + body
  • Web UI → agent-browser clicks / fills / screenshots; Read each screenshot
  • Datastore (DB / KV / files / queue) → query it directly; confirm the rows / keys / files / messages landed

Pre-flight — inventory the surfaces

Discover what this project actually exposes:

  1. CLIs — [project.scripts], package.json bin, Cargo.toml [[bin]], go.mod + cmd/, user-facing Makefile / justfile targets, scripts in bin/
  2. APIs / servers — framework app instantiations (FastAPI / Flask / Express / Hono / Axum / net/http / gRPC …)
  3. Web UIs — frontend manifests (vite.config.*, next.config.*, index.html, a package.json with dev/start) or static HTML mounted by a backend
  4. Datastores & side-effect systems — .env.example (never .env), config files, docker-compose.yml; note the client you'll query each with (psql, mysql, sqlite3, mongosh, redis-cli, aws s3 ls, ls, kafkacat, …)
  5. Tooling — the package manager / runner this project actually uses (README + manifest)

Write the inventory to ai-docs/e2e-output/00-inventory.md — every later phase is scoped to it. If nothing user-facing exists, stop: "This project has no user-facing interfaces — manual E2E needs something to drive." If a web UI exists, check agent-browser availability per references/browser-recipes.md.

Phase 1 — Parallel research

Launch THREE sub-agents in parallel via the Agent tool in ONE message — app structure & journeys, datastore schema & data flows, bug hunt. Prompts in references/research-prompts.md; fill their placeholders from the pre-flight inventory. Wait for all three — their output drives every later phase.

Phase 2 — Start the app

Install deps and start each service with the project's own tooling (commands came from research), then capture the first evidence:

<runner> <start-command> &
until curl -sf http://localhost:<port>/<healthz-or-root>; do sleep 0.5; done
<cli-invocation> --help > ai-docs/e2e-output/00-help.txt 2>&1                        # if a CLI exists
agent-browser open http://localhost:<port>
agent-browser screenshot ai-docs/e2e-screenshots/00-initial-load.png                 # if a web UI exists

Phase 3 — Build the task list

TaskCreate one task per journey from sub-agent 1, only for surfaces that exist: [CLI] Test <journey>, [API] Test <journey>, [Web] Test <journey>, [Cross] <journey> (data flowing between two surfaces).

Then add the edge-case sweeps — full journeys in their own right, and where most real bugs live. Each recipe file defines its sweep; the task just names it:

  • [CLI] Error-handling sweep — references/cli-recipes.md
  • [API] Auth & validation sweep — references/api-recipes.md
  • [Web] Responsive sweep — references/browser-recipes.md
  • [Cross] Data consistency across interfaces — if more than one surface

Then add the probes — one [Probe] <suspected bug> task per high-priority finding from sub-agent 3's hunt. A finding from static analysis is hearsay until you drive the suspect path in the live app and it reproduces (or fails to).

The walkthrough is complete when every task — journeys, sweeps, AND probes — is completed.

Phase 4 — Walk every journey, by hand

Per task: TaskUpdate → in_progress, then drive it yourself. Recipes for the surfaces this project has: references/cli-recipes.md, references/api-recipes.md, references/browser-recipes.md, references/db-validation.md.

Every step has the same shape:

  1. Drive the interface — run the command / send the request / click the button.
  2. Capture evidence — ai-docs/e2e-output/<journey>/<step>-*.txt, ai-docs/e2e-screenshots/<journey>/<NN>-*.png.
  3. Read the evidence back — open the output, Read the screenshot.
  4. Query the datastore — whatever sub-agent 2 said this action writes, confirm it landed (references/db-validation.md).
  5. Cross-interface journeys: act via A, query the datastore, read via B. Both directions.

Tag everything you create with an e2e- marker (in names, emails, titles, keys, filenames) — Phase 5 finds and removes test data by that marker.

A journey closes only on admissible evidence: every step has an artifact on disk that you read back, and the datastore confirms every expected side effect. Then TaskUpdate → completed.

When you find a real bug

Real = a defect in the app, not a flaky harness or a missing dep.

  1. Document expected vs actual with evidence file paths.
  2. Write a focused regression unit test in the existing suite — the only test code this skill produces; the tdd skill handles the watched-RED.
  3. RED → fix via diagnosing-bugs → GREEN.
  4. Re-drive the failing E2E step first-hand and capture fresh evidence.

Phase 5 — Cleanup

Kill the processes you started and agent-browser close. Then remove the test data: query the datastore for the e2e- marker, delete what it finds, and re-query — cleanup is done when the marker query returns nothing. Keep ai-docs/e2e-output/ and ai-docs/e2e-screenshots/ — that's the evidence trail.

Phase 6 — Report

Always emit a text summary in the final message:

## Manual E2E Walkthrough Complete

**Interfaces driven:** <e.g. "CLI, API (http://localhost:8000), Web UI (http://localhost:3000)">
**Journeys walked:** <count> (<N> CLI, <N> API, <N> Web, <N> cross — including <N> edge-case sweeps and <N> probes)
**Datastore validation queries run:** <count>
**Evidence files captured:** <count> outputs, <count> screenshots
**Issues found:** <count> (<fixed> fixed, <remaining> remaining)

### Issues fixed during the walkthrough

- [Interface] <description> — `<file:line>` — regression test at `<path>`

### Remaining issues

- [Interface] <description> — <severity> — `<file:line>`

### Probe results

- <sub-agent 3 finding> — confirmed (see issues above) / not reproduced — `<file:line>`

### Artifacts

- `ai-docs/e2e-output/`, `ai-docs/e2e-screenshots/`

Then ask the user (via AskUserQuestion) whether to write a full ai-docs/e2e-test-report.md with per-journey breakdowns, screenshots, datastore checks, and findings. If yes, write it.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.