"It crashes sometimes" β the 12-line script that crashes it every time.
Every bug fix starts with the step everyone hates: making the bug actually happen. The report says "it breaks on some inputs." The logs say nothing. The code looks fine. So the issue sits for months wearing the saddest label in software: can't reproduce.
repro does the hunt. It interrogates the report for concrete facts, then interrogates the code β finds the throwing site, walks back every path that reaches it, and turns each into a testable hypothesis. It knows what the vague words mean: "sometimes" is concurrency or time, "after a while" is accumulation or expiry, "on some inputs" is boundaries or encoding. Then it builds a direct harness, escalates from deterministic inputs to tight-loop race hunting, tightens a 1-in-20 flicker into an every-run trigger, and delta-debugs the result down to the minimum β small enough to paste into an issue, obvious enough that the root cause is usually visible in the repro itself.
Works as a Claude Code skill:
# available in every project
git clone https://github.com/tokyubevoxelverse/repro ~/.claude/skills/repro
# or just one project
git clone https://github.com/tokyubevoxelverse/repro .claude/skills/repro/repro users say export crashes on "some spreadsheets"
/repro this issue: <paste the vague bug report>
/repro the sync worker dies overnight, no errors logged
- The repro script β one command, self-contained, deterministic wherever possible
REPRO.mdβ exact trigger conditions, expected vs. actual, root-cause pointer- The regression test β the repro in your test framework, failing now, ready to flip green with the fix
And if it truly won't reproduce: a report of every hypothesis tested and ruled out, plus the specific evidence to request from the reporter that would settle the survivors β which turns "can't reproduce" from a shrug into a question.
Part of a toolbox of skills that do real work β see tokyubevoxelverse/skills.
MIT