
reproduce-reduce-regress
by facet-rs
reproduce-reduce-regressは、ソフトウェア開発を効率化するスキルです。開発ワークフロー全体をサポートし、チームの生産性向上とコード品質の改善を実現します。
ユースケース
デバッグ支援
バグの特定と修正を効率的にサポート。reproduce-reduce-regressを活用。
コード生成の効率化
ボイラープレートコードを自動生成し、開発時間を短縮。
コードレビュー支援
PRのコード変更を分析し、改善点を提案。
リファクタリング提案
コードの品質向上のためのリファクタリング案を提示。
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() { ... }
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 1000以上
3ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です
