← Back to Repro
AgentRepro
Minimal API reproductions
Turns a complex backend failure into a small reproducible request and synthetic dataset without exposing real customer information.
api-data-fixture-reproduction
See how it helpsWhen is it useful?
Use when a backend error appears only with certain records or request payloads.
What does it help you do?
- Reduces requests to the headers and fields necessary to trigger the failure.
- Builds small synthetic records preserving relevant relationships without copying customer data.
- Exercises null values, Unicode, numerical boundaries and tied pagination timestamps.
Try asking this
Reproduce skipped orders with identical timestamps using three synthetic records and the smallest failing request. Fetch every page and compare the combined identifiers with the three fixtures. The reproduction should show exactly which order disappears at the page boundary.
Detailed documentation
Read the skill’s original instructions, examples and checks in their authored language.
Show less
API & Data Fixture Reproduction
When to Use
Use when reproducing backend API errors, webhook failures, ORM/SQL query bugs, pagination/filtering anomalies, serialization crashes, or permission edge cases.
Isolating the Minimal Request & Payload
1. Capture & Strip the HTTP Request
When starting from a complex frontend flow, HAR capture, or webhook log:
- Extract the exact HTTP method, URL path, query string, headers (
Content-Type,Accept,Accept-Language,Authorization,Idempotency-Key, custom tenant headers), and request body. - Replay the request in an isolated integration test or
fetchscript. - Apply Delta Debugging to the payload and headers: strip optional fields and headers one group at a time until only the exact fields and values required to trigger the bug remain.
2. High-Yield Data Boundary & Edge-Case Triggers
When a bug report says "fails for certain records/users," check these data shapes first:
- Nullability & Empty Collections:
nullvs.undefinedvs.""(empty string) vs.[](empty array); parent records with0children vs.1child vs.> page_sizechildren; soft-deleted (deleted_at IS NOT NULL) or archived foreign-key relations. - Unicode, Encoding & Special Characters: Multi-byte UTF-8 emojis (
👨👩👧👦), accented characters (ő,ű,ß), right-to-left text, zero-width spaces (\u200B), SQL wildcard characters (%,_,\), regex metacharacters ([,(,*,+,?), and quotes/newlines in CSV/JSON strings. - Numeric & Financial Boundaries:
0,-0, negative numbers, floating-point precision (0.1 + 0.2),Number.MAX_SAFE_INTEGER(9007199254740991),BigIntserialization, andNaN/Infinity. - Pagination & Sorting Ties: Duplicate sort timestamps (
created_atties across page boundaries causing skipped or duplicated rows inLIMIT/OFFSETor cursor pagination).
3. Build Minimal, Anonymized Database Fixtures
- Never copy raw production database dumps containing customer PII, real emails, passwords, or live API credentials into a test environment.
- Build a Minimal Synthetic Fixture (1–3 rows with anonymized/fake identifiers) that preserves the exact relational topology and column values responsible for the bug:
- Example: If a query fails when a user belongs to two organizations where one subscription is
canceledand the other isactive, seed exactly 1 user + 2 org memberships with those two states.
- Example: If a query fails when a user belongs to two organizations where one subscription is
- Verify that running the API endpoint or service method against this minimal fixture deterministically reproduces the exact SQL error, wrong aggregation, or
500exception.
Included files 1
SKILL.md
