Back to list
facet-rs

reproduce-reduce-regress

by facet-rs

Rust reflection, serialization, deserialization, pretty printing, etc. — the last proc macro you should need

2,358🍴 104📅 Jan 23, 2026

Use Cases

🐛

Debugging Assistance

Efficiently support bug identification and fixes. Using reproduce-reduce-regress.

Efficient Code Generation

Auto-generate boilerplate code to reduce development time.

🔍

Code Review Assistance

Analyze PR changes and suggest improvements.

🔧

Refactoring Suggestions

Suggest refactoring options to improve code quality.

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

// 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() { ... }

Score

Total Score

90/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 1000以上

+15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

0/5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon