reproduce
Skill0 starsChanged 7 months agoMITView on GitHub
Use when a user-reported or ticketed browser issue must be reproduced in an actual Playwright browser before coding, especially when exact URL, account/role, data state, screenshots, network calls, and as-is/to-be comparison evidence are needed.
- Reads credentials
6 other projects use a version of this.
Adopted by
Most recently taken up by
- luci-efe/skillstheir own version, first seen Nov 1, 2026
- ieuanign/skillstheir own version, first seen Oct 13, 2026
- cloudflare/agentstheir own version, first seen Oct 13, 2026
- ilamanov/skillstheir own version, first seen Oct 13, 2026
- antoniowolkk/junior-agenttheir own version, first seen Sep 22, 2026
- SasinduDilshara/wso2-se-agent-skillstheir own version, first seen Mar 25, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- cloudflare/agents★ 6ksame name
- ieuanign/skills★ 2same name
- ilamanov/skills★ 1same name
- antoniowolkk/junior-agent★ 0same name
- luci-efe/skills★ 0same name
- SasinduDilshara/wso2-se-agent-skills★ 0same name
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 repository4 other files it gives its agents.
- exploreSkill
- qa-engineerSkill
- verifySkill
- workSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 8 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 27
Use when the user says /reproduce, asks to reproduce a browser issue, asks for as-is/to-be comparison setup, or provides a …
- Distinctive: line 44
Before any file edit or browser run, state:
- Distinctive: line 54
Use the project's existing Playwright setup when present.
- Very specific: line 55
Write one focused as-is spec under the existing e2e test tree, or .backend/<YYYYMM>/<slug>/e2e/specs/ if no stronger convention exists.
- Distinctive: line 58
Ask only for missing inputs that cannot be safely inferred, such as account, target environment, exact URL, or permission for any …
- Distinctive: line 78
If the target environment is ambiguous, ask before running.
- Very specific: line 82
Default to repo root unless the issue clearly belongs to a service with its own .backend convention:
- Very specific: line 97
If the repo already has a Playwright test tree, keep the spec there and store the raw evidence/report under .backend/<YYYYMM>/<slug>/.
- Very specific: line 120
Default: local/dev/shared-test browser run.
- Distinctive: line 140
If a ticket key or URL is present, read the ticket body before searching code.
- Distinctive: line 142
Prefer existing login/navigation helpers instead of reimplementing them.
- Very specific: line 143
If no Playwright setup exists, create a one-off Playwright Test harness under .backend/<YYYYMM>/<slug>/e2e/ after recording that no harness …
- Distinctive: line 149
Create the smallest spec or script that follows the exact reported path.
- Distinctive: line 195
Run the focused spec with the selected target URL and env:
- Very specific: line 211
Use only when the browser result depends on a specific row/account/content state.
- Very specific: line 216
Read-only only: SELECT, SHOW, DESCRIBE, EXPLAIN, or safe read-only project APIs.
“Common” is measured: kept by at least 6 in 10 of the 5 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
Reproduce
Overview
/reproduce is the browser-first gate before fixing UI-visible issues. It captures the current as-is behavior with a runnable Playwright script or spec, raw evidence, and optional read-only data proof so /explore, /work, and later to-be checks can compare against the same user path.
Core principle: reproduce the user's exact issue before explaining or fixing it. If the browser path, account, URL, data row, or expected/actual behavior is unclear, surface that gap instead of inventing a flow.
Iron Law
NO CODE FIX BEFORE THE AS-IS REPRODUCTION STATUS IS RECORDED
NO BROWSER RUN OR SCRIPT CREATION BEFORE A REPRODUCTION PLAN IS PRESENTED
NO SYNTHETIC USER STEPS WHEN THE TICKET OR USER PROVIDED EXACT STEPS
NO PASS CLAIM WITHOUT PLAYWRIGHT COMMAND OUTPUT AND ARTIFACT PATHS
NO DATA MUTATION FROM THIS SKILL; READ-ONLY DATA CHECKS ONLY
NO PROD DATA CHANGE OR PROD-ONLY EXPERIMENTWhen to Use
Use when the user says /reproduce, asks to reproduce a browser issue, asks for as-is/to-be comparison setup, or provides a URL/account/screenshot and wants the current issue captured before a fix.
Use especially for:
- Browser symptoms where API-only curl is not enough.
- Ticketed bugs where expected behavior and current rendered behavior must be compared.
- Issues needing real login, role/account choice, network capture, screenshot, trace, console log, or DB-backed data confirmation.
- Pre-fix regression setup: as-is proves the bug exists; to-be later proves the fix.
Skip for:
- Backend API-only contracts with no browser surface: use
/verify. - Pure code investigation with no live UI reproduction need: use
/explore. - Already-fixed flows where the user only asks for deployed smoke testing: use
/qa-engineer.
Required Start
Before any file edit or browser run, state:
- Problem: exact symptom and ticket/user source.
- Goal: what must be reproduced and what evidence will prove it.
- Affected area: URL, service/UI, account/role, data identifiers if known.
- Expected outcome:
reproduced,not-reproduced,blocked-env,blocked-data, orinconclusive. - The smallest suitable reproduction approach; compare alternatives only when they change a material tradeoff.
Default recommendation:
- Use the project's existing Playwright setup when present.
- Write one focused as-is spec under the existing e2e test tree, or
.backend/<YYYYMM>/<slug>/e2e/specs/if no stronger convention exists. - Save the persistent report and raw evidence under
.backend/<YYYYMM>/<slug>/.
Ask only for missing inputs that cannot be safely inferred, such as account, target environment, exact URL, or permission for any shared-env run.
Inputs
| Source | What to extract |
| Ticket key/URL | Summary, description, comments, attachments, exact steps, expected/actual. |
| User message | Target URL, role/account, data identifiers, exact click path, expected/actual wording. |
| Existing E2E setup | Playwright config, page objects, nearby *-as-is.spec.ts and *-to-be.spec.ts. |
| Browser runtime | Screenshots, trace/video, console, page errors, request failures, relevant API responses. |
| Data state | Optional read-only SQL/API checks for data existence and shape. |
Safety Bounds
| Target | Allowed | Guardrail |
| local/dev | Browser reproduction, read-only DB/API checks | Bound samples, redact PII |
| stg/audit/shared test | Browser reproduction with user-approved account/session | No destructive setup; record target URL |
| prod | Read-only browser observation only | No DB checks, no data mutation, no destructive/user-visible experiment |
If the target environment is ambiguous, ask before running. Production observation requires explicit user instruction and every action remains read-only; do not request the same confirmation again.
Artifact Layout
Default to repo root unless the issue clearly belongs to a service with its own .backend convention:
.backend/<YYYYMM>/<slug>/
reproduce.md
runs/run-1.log
network/*.json
screenshots/*.png
db/*.md
e2e/
specs/<ticket-or-slug>-as-is.spec.ts
specs/<ticket-or-slug>-to-be.spec.ts # only if useful or explicitly requested
artifacts/run-<YYYYMMDD-HHMM>-<env>/If the repo already has a Playwright test tree, keep the spec there and store the raw evidence/report under .backend/<YYYYMM>/<slug>/.
Status Semantics
| Status | Meaning |
reproduced | Browser evidence shows the reported bug on the selected target. |
not-reproduced | The exact path ran, but the reported bug did not appear. Record differences; do not call it fixed. |
blocked-env | Login, URL, service, browser, auth, or downstream environment prevented the run. |
blocked-data | Required account/content/database state is missing or ambiguous. |
inconclusive | Evidence conflicts or the issue lacks enough specificity to decide. |
For as-is specs, it is valid for the test to pass when the bug is observed. Name that assertion clearly as reproduction proof. A separate to-be spec should fail before the fix and pass after the fix when the corrected behavior is known.
Phases
Complete each phase before the next.
Phase 0: Plan
- Classify the issue as browser-visible bug, browser-visible feature gap, or mixed browser/API issue.
- Restate the exact reported symptom and expected behavior.
- Identify target env and safety bound:
- Default: local/dev/shared-test browser run.
- Prod browsing is read-only only and requires explicit user instruction.
- Data checks are read-only and non-prod only.
- Choose artifact paths:
<YYYYMM>from current date.<slug>from ticket key + short issue name, kebab-case.
- Present a reproduction plan with:
- target URL/env
- account/role
- data identifiers
- browser steps
- Playwright files to create/edit
- network/console/screenshot artifacts
- DB/API checks if needed
- expected status criteria
Then proceed when the user requested reproduction. If the plan reveals risky ambiguity, ask the shortest blocking question.
Phase 1: Load Issue and Existing Harness
- If a ticket key or URL is present, read the ticket body before searching code.
- Inspect existing Playwright config, specs, page objects, and test helpers.
- Prefer existing login/navigation helpers instead of reimplementing them.
- If no Playwright setup exists, create a one-off Playwright Test harness under
.backend/<YYYYMM>/<slug>/e2e/after recording that no harness exists.
Record the issue source and harness choice in reproduce.md.
Phase 2: Write the As-Is Spec
Create the smallest spec or script that follows the exact reported path.
Minimum capture:
- console messages
- page errors
- request failures
- relevant API responses, redacted
- screenshot before/after target action
- Playwright trace/video when available
Spec pattern:
import { test, expect } from '@playwright/test';
import * as fs from 'fs';
import * as path from 'path';
const SLUG = 'ticket-or-short-slug';
const ARTIFACT_DIR = process.env.REPRO_ARTIFACT_DIR || path.resolve('.backend', 'YYYYMM', SLUG);
const SCREENSHOT_DIR = path.join(ARTIFACT_DIR, 'screenshots');
const NETWORK_DIR = path.join(ARTIFACT_DIR, 'network');
test.beforeEach(async ({ page }) => {
fs.mkdirSync(SCREENSHOT_DIR, { recursive: true });
fs.mkdirSync(NETWORK_DIR, { recursive: true });
page.on('pageerror', error => {
fs.appendFileSync(path.join(NETWORK_DIR, 'page-errors.log'), `${new Date().toISOString()} ${error.message}\n`);
});
});
test('AS-IS: reported symptom is visible', async ({ page }) => {
await page.goto(process.env.REPRO_URL!);
// Follow the exact user/ticket steps here.
await page.screenshot({ path: path.join(SCREENSHOT_DIR, 'as-is-target.png'), fullPage: true });
// Assert the current bug condition as reproduction proof.
await expect(page.getByText(/reported wrong text|error message/i)).toBeVisible();
});Adjust only slug, URL/env, auth/bootstrap, navigation steps, and the final as-is assertion.
Phase 3: Execute and Capture Evidence
Run the focused spec with the selected target URL and env:
REPRO_URL='<target-url>' npx playwright test <spec-path> --reporter=listFor headed debugging when needed:
REPRO_URL='<target-url>' npx playwright test <spec-path> --headedSave command output to .backend/<YYYYMM>/<slug>/runs/run-1.log. Preserve Playwright trace, video, and screenshot paths when produced.
Phase 4: Optional Read-Only Data Check
Use only when the browser result depends on a specific row/account/content state.
Rules:
- Non-prod only.
- Read-only only:
SELECT,SHOW,DESCRIBE,EXPLAIN, or safe read-only project APIs. - Bound samples with
LIMIT. - Redact PII before saving evidence.
Save findings under .backend/<YYYYMM>/<slug>/db/*.md and cite them in reproduce.md.
Phase 5: Report
Write .backend/<YYYYMM>/<slug>/reproduce.md with:
- Summary: status, target, one-line conclusion.
- Source: ticket/user message, exact symptom, expected behavior.
- Plan: env, account/role, data identifiers, browser steps.
- Evidence: run command, exit code, screenshots, trace/video, console/network files.
- Result:
reproduced/not-reproduced/blocked-env/blocked-data/inconclusive. - As-is assertion: why the spec proves or fails to prove the symptom.
- Next step:
/explore,/work,/verify,/qa-engineer, or ask user for missing input.
Final response:
- Absolute path to
reproduce.md. - Final status.
- Exact command that was run.
- Key artifact paths.
- Short next step.
Red Flags
- Inventing a click path because the ticket is vague.
- Calling
not-reproduceda fix. - Running prod actions that mutate data.
- Saving real names, emails, tokens, cookies, or IDs in
.backend/. - Using screenshots alone when console/network evidence is available.
- Treating a passing as-is reproduction spec as corrected behavior.
Cross-References
/exploreconsumesreproduce.mdas concrete symptom evidence./workmay add a to-be spec or convert the as-is assertion into a regression test./verifyproves backend HTTP contracts after the fix./qa-engineerproves the fixed deployed browser flow.
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.

