Skip to content
Back to skills

Minimal Reproduction

ASecurity

Use when a bug must be isolated from a large application into a standalone, runnable script or single test case.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 6, 2026
ai-agentsnodetestinggitapidatabase

Works with

  • api

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add yeaight7/agent-powerups --skill minimal-reproduction --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Minimal Reproduction?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Minimal Reproduction
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yeaight7-minimal-reproduction-agent-powerups/badge)](https://www.skillsdirectory.com/skills/yeaight7-minimal-reproduction-agent-powerups)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: minimal-reproduction
description: Use when a bug must be isolated from a large application into a standalone, runnable script or single test case.
---

## Purpose

You cannot reliably fix what you cannot reliably reproduce in isolation. Apply the subtraction method until a single file deterministically triggers the exact reported error.

## When to Use

- A bug is tangled in app/UI/network layers and hard to debug in place
- A failure must be handed to another engineer, team, or upstream project
- Before bisecting or stress-testing, to get a fast deterministic signal

## Inputs

- The failing code path and the error it produces
- Sample data that triggers the failure, if any

## Workflow — the Subtraction Method

1. **Start with the failure.** Take the code path that fails.

2. **Remove the UI/Network.** If the bug is reported via a web request, write a script that calls the internal controller directly.

3. **Mock dependencies.** If the bug doesn't require the database, mock it. If it doesn't require the third-party API, mock it. Template:

   ```js
   // repro.js — minimal harness, no framework
   const { failingFunction } = require("./src/module");

   const fakeDb = { query: async () => [{ id: 1, value: null }] }; // smallest stub that triggers it

   failingFunction(fakeDb, { payloadKey: "trigger-value" })
     .then(() => { console.log("NO REPRO"); process.exit(0); })
     .catch((err) => { console.error("REPRO:", err.message); process.exit(1); });
   ```

   (Exit `0` on no-repro / non-zero on repro also makes the script directly usable by `git bisect run`.)

4. **Prune data.** If the bug fails on a 10MB JSON payload, binary search the payload down to the exact 2 keys that trigger the failure.

5. **Final output.** The result must be a single file — a standalone script or one test case — that relies on ZERO external state, can be run with a single command, and deterministically outputs the exact error reported.

## Output

- One standalone file plus the single command that runs it (e.g., `node repro.js`)
- The exact error output, proving the reproduction matches the report

## Verification

- [ ] Repro runs with one command and no external state (no DB, network, or special env)
- [ ] Error produced matches the reported error exactly
- [ ] Repro is deterministic across at least 3 consecutive runs
- [ ] Every remaining line is necessary — removing any piece makes the bug disappear

## Failure Modes

- **Partial isolation** — the "repro" still needs a live database or API; it will rot immediately.
- **Wrong error** — the script fails, but with a different error than reported; that is a different bug.
- **Over-pruning** — cutting until the bug vanishes and shipping the last version untested; re-run after every cut.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…