# End-to-End PR Testing

Test a PR or branch end to end with Docker Compose and API calls.

- Repository: https://github.com/Significant-Gravitas/AutoGPT (187858 stars)
- Category: Testing
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Significant-Gravitas/AutoGPT --skill pr-test -g -a claude-code -y`
Codex: `npx skills add Significant-Gravitas/AutoGPT --skill pr-test -g -a codex -y`
Cursor: `npx skills add Significant-Gravitas/AutoGPT --skill pr-test -g -a cursor -y`
Gemini CLI: `npx skills add Significant-Gravitas/AutoGPT --skill pr-test -g -a gemini-cli -y`

## Description

E2E manual testing of PRs/branches using docker compose, agent-browser, and API calls. TRIGGER when user asks to manually test a PR, test a feature end-to-end, or run integration tests against a running system.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Manual E2E Test

Test a PR/branch end-to-end by building the full platform, interacting via browser and API, capturing screenshots, and reporting results.

**Changelog 2.2.0**, auth flow updated for Better Auth (Supabase signup is
gone), env-setup gaps closed, a proven Playwright fallback for agent-browser,
a billing-test trap that produces false passes, safer process cleanup, and a
mock-provider pattern for deterministic $0 testing. Learned on
[#14206](https://github.com/Significant-Gravitas/AutoGPT/pull/14206), see the
[evidence comment](https://github.com/Significant-Gravitas/AutoGPT/pull/14206#issuecomment-5511429524).
**2.2.1**, corrects two claims from 2.2.0 that didn't survive live-stack
verification (JWKS does **not** rotate on a frontend restart; the local
Postgres port is `5432`, not `54322`) and hardens the auth setup (explicit
password-length/allowlist/rate-limit failure modes, fail-fast on an empty
token, password kept out of process args).
**2.3.0**, screenshots are posted as GitHub comment attachments
(`gh pr comment --attach`, needs gh >= 2.99.0) instead of being pushed to a
`test-screenshots/*` branch, which accumulated one branch per tested PR and
made every old report's images depend on that branch surviving.

## Critical Requirements

These are NON-NEGOTIABLE. Every test run MUST satisfy ALL the following:

### 1. Screenshots at Every Step
- Take a screenshot at EVERY significant test step, not just at the end
- Every test scenario MUST have at least one BEFORE and one AFTER screenshot
- Name screenshots sequentially: `{NN}-{action}-{state}.png` (e.g., `01-credits-before.png`, `02-credits-after.png`)
- If a screenshot is missing for a scenario, the test is INCOMPLETE, go back and take it

The rest: https://github.com/Significant-Gravitas/AutoGPT/blob/HEAD/.claude/skills/pr-test/SKILL.md
