Skip to content
Back to skills

Method Reproduce Reduce Regress Eng

ASecurity

Systematic workflow for debugging by reproducing bugs with real data, reducing test cases to minimal examples, and adding regression tests

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 2, 2026
testingrustgodebugging

Security analysis

A100/100

Scanned June 2, 2026

npx -y skills add aRustyDev/agents --skill method-reproduce-reduce-regress-eng --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Method Reproduce Reduce Regress Eng?

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

Security grade badge for Method Reproduce Reduce Regress Eng
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/arustydev-method-reproduce-reduce-regress-eng/badge)](https://www.skillsdirectory.com/skills/arustydev-method-reproduce-reduce-regress-eng)

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: reproduce-reduce-regress
description: Systematic workflow for debugging by reproducing bugs with real data, reducing test cases to minimal examples, and adding regression tests
---

# Reproduce, Reduce, Regress

When debugging a bug, follow this workflow:

## 1. Reproduce

**Goal:** Get a failing test that demonstrates the bug using REAL data.

- Copy the EXACT input that triggers the bug (don't paraphrase or simplify yet)
- Use the EXACT types/structs from the failing code
- Verify the test actually fails with the same error message

## 2. Reduce

**Goal:** Find the MINIMAL input that still triggers the bug.

- Create MULTIPLE test variants, don't comment things in/out
- Name them descriptively: `test_minimal_one_field`, `test_with_queries`, etc.
- Binary search: remove half the input, see if it still fails
- Keep narrowing until you find the smallest failing case
- Also find a PASSING case that's as close as possible to the failing one

The difference between your minimal failing case and your minimal passing case IS the bug.

## 3. Regress (Regression Tests)

**Goal:** Ensure the bug never comes back.

- Keep ALL your test variants - both passing and failing
- The failing ones become regression tests after the fix
- The passing ones document expected behavior
- Name tests after the issue number: `test_issue_1356_*`

## Anti-patterns

❌ Commenting code in/out to test different scenarios
❌ Modifying a single test repeatedly
❌ "Simplifying" input without verifying the bug still reproduces
❌ Deleting test variants after finding the bug
❌ Theorizing about what MIGHT cause the bug before reproducing

## Example Structure

```rust
// Minimal failing case
#[test]
fn test_issue_1356_fails_without_queries_default() { ... }

// Minimal passing case (shows the workaround)
#[test]
fn test_issue_1356_passes_with_queries_default() { ... }

// Original reproduction from user's code
#[test]
fn test_issue_1356_full_reproduction() { ... }
```

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…