tester-army/e2e

writing-pr

Use when writing or editing a pull request title or body.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/tester-army/e2e --skill writing-pr

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Writing a PR title and body

Reviewers skim. Put the shape of the change on the first screen, then let diagrams and code carry the detail.

Title

  • Conventional Commits, matching git log:

fix(playwright): provision the browser in a runner-side prepare hook. PRs squash-merge with the number appended, so the title is the commit.

  • Mark spec or API breaks with ! (feat(config)!: ...), same as the commit.
  • Name the outcome, not the activity. "install builds with the appPath

option", not "agent-device changes".

Body

Do not write essays. A few bullets on what changed and why, then evidence.

  • Bullet points for the prose you do write. One fact per bullet.
  • A mermaid diagram for anything with flow or state: runner phases, engine

hooks, replay paths, before/after architecture.

  • Code samples: the new API, sample usage in a test file, or the key internal

snippet. Fenced blocks with a language tag.

  • Code refs (packages/e2e/src/run/execute.ts:42, GitHub permalinks) instead

of paraphrasing code.

  • Visual changes, direct or indirect (CLI output, reporter output, docs

pages): a before/after table with uploaded images or videos.

  • Benchmarks: a before/after table. Baseline is the target branch, candidate

is the PR.

  • Spec changes: name the chapter, schema, and suiteVersion bump in one

bullet so the reviewer can check them together.

  • A ## Verified section, required on every PR:
  • First line: Ran it locally: yes, or Ran it locally: no - <why>

(docs typo, CI-only, a device you do not have).

  • With yes: the verify surface, the command you

ran, what you saw, and the CLI output, screenshots, or video showing it work.

  • A fix PR with yes also shows the bug and the fix side by side in a

| main | this branch | table.

  • Upload media with gh 2.99+ --attach: reference images in the body as

markdown (![after](./after.png)) and pass each file as --attach; gh uploads them and rewrites those paths. Do not write video paths in the body: attached videos are appended at the end and render as players.

Leave out

  • "I ran lint/tests" lists. CI reports that; ## Verified is for what CI

cannot see.

  • Intermediate history. Squashed 6k lines down to 1k, refactored twice,

renamed midway: none of it lands. Only the final aggregate squash-merge commit exists, so only that gets commentary.

  • Line-by-line restating of the diff.
  • Checklists nobody asked for, sign-offs, filler.

Templates

Before/after for visuals:

markdown
| Before | After |
| --- | --- |
| ![before](url) | ![after](url) |

Verified, for a fix (local image paths become uploaded assets with --attach):

markdown
## Verified

Ran it locally: yes
- testbed, `e2e run tests/scroll.e2e.ts --video`: the new test fails on main
  and passes here

| main | this branch |
| --- | --- |
| ![bug](./main.png) | ![fixed](./branch.png) |

gh pr edit <pr> --body-file body.md --attach ./main.png --attach ./branch.png --attach ./video.webm

Benchmarks:

markdown
| Scenario | main | this PR | delta |
| --- | --- | --- | --- |
| testbed default suite | 41s | 23s | -44% |

Flow:

`markdown

flowchart LR A[collect] --> B[schedule] B --> C{cache hit?} C -- yes --> D[replay] C -- no --> E[act]

Big changes

For truly impressive, difficult, high-risk, or wide-scoped changes, write the body like a technical blog post: context, the problem, the approach, code samples, diagrams, before/after, images. Storytelling is fine here. The rules above still hold: run output only as ## Verified evidence, no intermediate history.

Voice

Run the unslop pass on the final text before posting. PR-specific tells to catch:

  • "This PR introduces...", "comprehensive", "robust", "seamless", "ensures",

"leverages", "enhances".

  • Bold label lists that restate the line (**Performance:** Performance...).
  • Em dashes. Use a comma, a colon, or a new sentence.
  • Bullets padded to three because three felt right.
  • A summary that could be pasted unchanged into another repo's PR.

Related by task

from this repository

More skills

All skills
tester-army
Community

e2e

Writes, runs, and debugs end-to-end tests for web and mobile apps with e2e, the agentic test runner, which mixes agent.act goals with exact locator assertions on a Playwright browser or an iOS or Android device. Also drives a project's running app live over the e2e MCP server to look at a screen, check a UI change, take a screenshot or record a video, and try a locator; and runs bug bashes, parallel e2e explore runs with each bug proven by a repro test. Use when a project depends on e2e or has a

1h installs
1
GitHub stars
11.9K
Updated
Oct 25
tester-army
Community

create-verification-skill

Generate a project-local verify- skill on top of e2e, so any coding agent can launch the app, check it is worth driving, exercise a feature the way a user does, keep evidence, and bug bash it. Writes the skill, a feature map with one explore charter per feature, and proves it once. Use for /create-verification-skill, "make a verification skill for this repo", or when a project has no scripted way to prove UI behavior.

1h installs
2
GitHub stars
11.6K
Updated
Oct 20
tester-army
Community

migrate-to-e2e

Moves an existing Playwright, Cypress, Selenium, Detox, or Maestro suite to e2e one slice at a time, with the old suite running beside the new one until each ported test is proven. Keeps a MIGRATION.md progress file so any later session resumes where the last stopped. Optionally plants a defect to show both suites catch it. Use for /migrate-to-e2e, "migrate our tests to e2e", "port these Maestro flows", or when a project has an e2e config and an older suite still running.

1h installs
1
GitHub stars
11.5K
Updated
Oct 20
tester-army
Community

babysit

Drive an open tester-army/e2e PR through conflicts, review bots, and CI until it is green with every thread handled, then label it Ready for Human Review. Use after opening a PR, or when asked to babysit, watch, monitor, check on, or get a PR green.

1h installs
3
GitHub stars
1.8K
Updated
Oct 2