bug-reproducer
Skill0 starsChanged 2 months agoMITView on GitHub
Constructs a minimal, deterministic reproduction script or command for a reported bug before any fix is attempted.
- Reads credentials
3 other projects use a version of this.
Adopted by
Most recently taken up by
- HumSaw/shipwright-skillstheir own version, first seen Nov 8, 2026
- AnastasiyaW/codex-claude-code-configtheir own version, first seen Oct 30, 2026
- AnastasiyaW/claude-code-configtheir own version, first seen Oct 8, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- AnastasiyaW/claude-code-config★ 214same name
- AnastasiyaW/codex-claude-code-config★ 214same name
- HumSaw/shipwright-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- claim-checkerSkill
- command-failure-diagnoserSkill
- config-risk-reviewerSkill
- csv-validatorSkill
- deployment-checklist-makerSkill
- diff-reviewerSkill
- factual-summarizerSkill
- field-extractorSkill
- api-contract-testerSkill
- database-migration-helperSkill
- security-vulnerability-fixerSkill
- git-commit-stagerSkill
- git-conflict-resolverSkill
- github-actions-debuggerSkill
- github-issue-triagerSkill
- github-pr-creatorSkill
- github-pr-reviewerSkill
- go-code-qualitySkill
- go-lint-and-vetSkill
- go-testingSkill
- json-schema-converterSkill
- lint-and-typecheckSkill
- meaning-preserving-editorSkill
- meeting-notes-to-actionsSkill
- minimal-bug-fixSkill
- option-comparatorSkill
- py-code-qualitySkill
- py-lint-and-typecheckSkill
- py-testingSkill
- readme-writerSkill
- regression-test-writerSkill
- release-notes-drafterSkill
- repo-inspectorSkill
- research-briefSkill
- reversible-cleanup-plannerSkill
- rust-clippy-checkSkill
- rust-code-qualitySkill
- rust-testingSkill
- small-refactorSkill
- status-updateSkill
- step-by-step-tutorialSkill
- step-decomposerSkill
- tabular-analyzerSkill
- task-briefSkill
- test-runner-debuggerSkill
- ts-code-qualitySkill
- ts-lint-and-typecheckSkill
- ts-testingSkill
- skill-templateSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 9 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Use this skill when:
- Distinctive: line 16
Before modifying source code to fix an issue.
- Very specific: line 20
Do not use to write or apply the code fix.
- Very specific: line 21
Do not use to write permanent test suite integration.
- Very specific: line 22
Do not use to diagnose a build/system command failure.
- Distinctive: line 29
If expected behavior or actual behavior is omitted: ask the user for the missing expectation.
- Distinctive: line 30
If reproduction steps are vague (e.g.
- Distinctive: line 31
Do not modify repository source code while constructing reproductions.
- Distinctive: line 34
Follow these numbered actions:
- Very specific: line 40
Write a self-contained script or one-line command (e.g.
- Distinctive: line 47
If the command passes instead of failing: the bug is not reproduced.
- Distinctive: line 48
If reproduction requires network or paid external APIs: mock or stub the external call locally.
- Very specific: line 49
If reproduction deletes data: use a temporary scratch directory (/tmp or test_scratch/).
- Distinctive: line 88
Stop and ask the user when:
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bug Reproducer
Isolates a reported issue into a single, reliable reproduction command or script. Proves the existence of a bug before writing fixes.
1. Purpose
Turn ambiguous bug reports into a standalone test case that exits with a failure code (non-zero). A "Reproduction" is a deterministic command that consistently triggers the defect.
2. When to Use
Use this skill when:
- A bug or crash report is received.
- Before modifying source code to fix an issue.
- Isolating whether a bug is in local code or an external dependency.
3. When Not to Use
- Do not use to write or apply the code fix; use
minimal-bug-fix. - Do not use to write permanent test suite integration; use
regression-test-writer. - Do not use to diagnose a build/system command failure; use
command-failure-diagnoser.
4. Required Inputs
bug_report: Description of the faulty behavior, inputs, and expected vs actual results.workspace_root: Directory of the target repository.
5. Missing-Input Behavior
- If expected behavior or actual behavior is omitted: ask the user for the missing expectation.
- If reproduction steps are vague (e.g. "it failed randomly"): search recent commit logs or issue tickets for stack traces before escalating.
- Do not modify repository source code while constructing reproductions.
6. Procedure
Follow these numbered actions:
- Action 1: Identify the Minimal Failing Input
- Strip away unrelated parameters, large payloads, or background tasks.
- Action 2: Identify the Entry Point or Trigger Function
- Find the exact CLI command, HTTP endpoint, or function call.
- Action 3: Create a Minimal Standalone Reproduction
- Write a self-contained script or one-line command (e.g.
python3 test_repro.pyorcurl ...).
- Write a self-contained script or one-line command (e.g.
- Action 4: Run Reproduction Once
- Confirm it fails with the reported symptom.
- Action 5: Emit Reproduction Report
- Format using Section 8.
7. Decision Rules
- If the command passes instead of failing: the bug is not reproduced. Do not proceed to fix; refine the input parameters.
- If reproduction requires network or paid external APIs: mock or stub the external call locally.
- If reproduction deletes data: use a temporary scratch directory (
/tmportest_scratch/).
8. Output Format
Emit the reproduction report using this template:
### Bug Reproduction: [Bug Title]
- **Status**: [REPRODUCED | UNREPRODUCED | FLAKY]
- **Target File**: `[source file suspected]`
- **Reproduction Command**: `[Exact command]`
#### Minimal Failing Input
```text
[Input payload or invocation]Observed Output (Failure)
[Exact stderr or traceback]Expected Output
[What should happen when fixed]
## 9. Verification Checklist
- [ ] The reproduction command was executed and failed with the expected symptom.
- [ ] No production source files were modified.
- [ ] The reproduction does not depend on uncommitted temporary hacks.
## 10. Common Failures and Recovery
| Failure Symptom | Cause | Recovery Action |
| :--- | :--- | :--- |
| Bug does not trigger | Missing environment variables | Inspect `.env.example` and set dummy variables. |
| Non-deterministic failure | Concurrency or timing race | Pin random seeds or reduce concurrency to 1 thread. |
## 11. Stop or Escalation Conditions
Stop and ask the user when:
- The bug requires unavailable hardware, OS-specific features, or external database credentials.
## 12. Examples
### Example 1: Successful Execution
**Input:**
```text
Bug: Calling `formatName("")` throws Uncaught TypeError: Cannot read properties of undefined.
File: src/formatter.jsOutput:
### Bug Reproduction: TypeError in formatName on Empty String
- **Status**: REPRODUCED
- **Target File**: `src/formatter.js`
- **Reproduction Command**: `node -e "require('./src/formatter').formatName('')"`
#### Minimal Failing Input
```javascript
formatName("")Observed Output (Failure)
TypeError: Cannot read properties of undefined (reading 'split')
at Object.formatName (/src/formatter.js:12:18)Expected Output
Returns empty string "" without throwing an exception.
### Example 2: Ambiguous or Failure Case
**Input:**
```text
Bug: "Search is broken sometimes."Output:
### Bug Reproduction: UNREPRODUCED - Insufficient Parameters
- **Status**: UNREPRODUCED
- **Target File**: TBD
The description "Search is broken sometimes" lacks specific search queries, HTTP parameters, or error messages.
Please provide:
1. An example search query that fails.
2. The user role or authentication state.
3. The observed HTTP status code or UI error.Example 3: Expected Final Output
Output:
### Bug Reproduction: Zero Division in Discount Calculator
- **Status**: REPRODUCED
- **Target File**: `src/pricing.py`
- **Reproduction Command**: `python3 -c "from src.pricing import calculate_rate; calculate_rate(100, 0)"`
#### Minimal Failing Input
```python
calculate_rate(price=100, original=0)Observed Output (Failure)
ZeroDivisionError: division by zeroExpected Output
Returns 0.0 or raises InvalidDiscountError.Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

