Turn vague, intermittent, or environment-specific bug reports into minimal evidence-backed reproductions before diagnosis or repair. Use when a bug report is incomplete, mixed with an assumed cause, hard to reproduce, or needs observed failure, environment, expected/actual behavior, repeatability, and safe next hypothesis.
Repository and commit, runtime and package-manager versions, OS or container, lockfile, feature flags, local/test/staging/production target.
Guessed credentials or production configuration.
Expected vs actual
Two observable statements.
Suspected cause or implementation theory.
Repeatability
Commands, outputs, run count, frequency, and duration.
Calling intermittent failures deterministic without evidence.
Use this exact separation:
Expected: [observable result]
Actual: [observable result, including status or error]
Procedure
Record the observed failure exactly as reported or observed. Label second-hand descriptions as unverified.
Identify the environment from inspectable facts only.
Write explicit expected and actual behavior statements.
Start from the reported path, command, or route.
Remove unrelated data, services, and steps one at a time.
When the failure stops, restore the last removed condition and record it as necessary.
Prefer an isolated test, minimal script, or smallest safe request over reproducing against production.
Run the minimal reproduction at least twice where safe.
If intermittent, report observed frequency and duration.
Stop before repair; the deliverable is the verified reproduction brief.
Safety boundaries
Do not change production data merely to reproduce a bug.
Do not publish secrets, customer records, private source, credentials, or environment variables.
Do not claim a root cause from correlation alone.
Use read-only or reversible discovery first.
Do not edit implementation code while building the brief because that can destroy evidence or mix diagnosis with remediation.
Stop after a verified reproduction; diagnosis and repair are separate workflows.
Reduction patterns
Report shape
Reduction tactic
Failing test suite
Run the smallest test selector that still fails, then reduce fixtures.
API or route bug
Capture the smallest safe request, headers without secrets, status, and body.
CLI bug
Preserve command, arguments, working directory, exit code, stdout, and stderr.
Intermittent behavior
Run repeated attempts with timestamps and count pass/fail frequency.
Environment-specific failure
Compare inspectable versions, lockfile, feature flags, OS/container, and target tier.
Examples
Good
Input: "The checkout test fails sometimes; reproduce but do not fix."
Expected behavior: Produce a brief with exact command evidence, expected result, actual error, run count, frequency if intermittent, and unknowns.
Bad
Input: "The checkout test fails because the cache is stale; fix the cache."
Incorrect behavior: Editing cache code before proving the smallest failure. Correct by first writing the reproduction brief and labeling the cache claim as an unverified hypothesis.
Output template
# Bug Reproduction Brief
- Target and commit:
- Environment:
- Expected:
- Actual:
- Minimal steps:
- Minimal fixture:
- Reproduced: yes / no / intermittent
- Evidence:
- Unknowns:
- Safe next hypothesis to test:
Quality gate
The observed failure includes exact error, incorrect output, timestamp, route or command, and smallest known input when available.
Environment facts are inspectable and include repository, commit, runtime, package manager, OS/container, lockfile, feature flags, and target tier when relevant.
Expected and actual behavior are observable and do not include suspected causes.
The reproduction was reduced by removing unrelated steps until the smallest failing condition remained.
The minimal reproduction was run at least twice where safe, or intermittent frequency and duration were reported.
No production data was changed and no secrets or personal data were published.
No implementation code was edited before the brief was delivered.
1---2name: bug-reproduction-brief3description: Turn vague, intermittent, or environment-specific bug reports into minimal evidence-backed reproductions before diagnosis or repair. Use when a bug report is incomplete, mixed with an assumed cause, hard to reproduce, or needs observed failure, environment, expected/actual behavior, repeatability, and safe next hypothesis.4---56<!-- Generated from harness/github-copilot/skills/bug-reproduction-brief/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Bug reproduction brief910Reduce a reported bug to the smallest observable, repeatable, evidence-backed failure before proposing a root cause or editing implementation code.1112## When to invoke1314- "Reproduce this bug before fixing it."15- "Turn this intermittent failure into a minimal reproduction."16- "Write a bug reproduction brief for checkout."17- "Separate expected and actual behavior from the suspected cause."18- "Prove this environment-specific bug with command evidence."1920## Evidence to capture2122| Area | Record | Avoid |23| --- | --- | --- |24| Observed failure | Exact error, incorrect output, timestamp, affected route or command, smallest known input. | Paraphrasing, screenshots without text when logs exist. |25| Logs | Relevant lines with secrets and personal data removed. | Secrets, customer records, private data, environment variables. |26| Environment | Repository and commit, runtime and package-manager versions, OS or container, lockfile, feature flags, local/test/staging/production target. | Guessed credentials or production configuration. |27| Expected vs actual | Two observable statements. | Suspected cause or implementation theory. |28| Repeatability | Commands, outputs, run count, frequency, and duration. | Calling intermittent failures deterministic without evidence. |2930Use this exact separation:3132```text33Expected: [observable result]34Actual: [observable result, including status or error]35```3637## Procedure38391. Record the observed failure exactly as reported or observed. Label second-hand descriptions as unverified.402. Identify the environment from inspectable facts only.413. Write explicit expected and actual behavior statements.424. Start from the reported path, command, or route.435. Remove unrelated data, services, and steps one at a time.446. When the failure stops, restore the last removed condition and record it as necessary.457. Prefer an isolated test, minimal script, or smallest safe request over reproducing against production.468. Run the minimal reproduction at least twice where safe.479. If intermittent, report observed frequency and duration.4810. Stop before repair; the deliverable is the verified reproduction brief.4950## Safety boundaries5152- Do not change production data merely to reproduce a bug.53- Do not publish secrets, customer records, private source, credentials, or environment variables.54- Do not claim a root cause from correlation alone.55- Use read-only or reversible discovery first.56- Do not edit implementation code while building the brief because that can destroy evidence or mix diagnosis with remediation.57- Stop after a verified reproduction; diagnosis and repair are separate workflows.5859## Reduction patterns6061| Report shape | Reduction tactic |62| --- | --- |63| Failing test suite | Run the smallest test selector that still fails, then reduce fixtures. |64| API or route bug | Capture the smallest safe request, headers without secrets, status, and body. |65| CLI bug | Preserve command, arguments, working directory, exit code, stdout, and stderr. |66| Intermittent behavior | Run repeated attempts with timestamps and count pass/fail frequency. |67| Environment-specific failure | Compare inspectable versions, lockfile, feature flags, OS/container, and target tier. |6869## Examples7071### Good7273**Input:** "The checkout test fails sometimes; reproduce but do not fix."7475**Expected behavior:** Produce a brief with exact command evidence, expected result, actual error, run count, frequency if intermittent, and unknowns.7677### Bad7879**Input:** "The checkout test fails because the cache is stale; fix the cache."8081**Incorrect behavior:** Editing cache code before proving the smallest failure. Correct by first writing the reproduction brief and labeling the cache claim as an unverified hypothesis.8283## Output template8485```markdown86# Bug Reproduction Brief8788- Target and commit:89- Environment:90- Expected:91- Actual:92- Minimal steps:93- Minimal fixture:94- Reproduced: yes / no / intermittent95- Evidence:96- Unknowns:97- Safe next hypothesis to test:98```99100## Quality gate101102- [ ] The observed failure includes exact error, incorrect output, timestamp, route or command, and smallest known input when available.103- [ ] Environment facts are inspectable and include repository, commit, runtime, package manager, OS/container, lockfile, feature flags, and target tier when relevant.104- [ ] Expected and actual behavior are observable and do not include suspected causes.105- [ ] The reproduction was reduced by removing unrelated steps until the smallest failing condition remained.106- [ ] The minimal reproduction was run at least twice where safe, or intermittent frequency and duration were reported.107- [ ] No production data was changed and no secrets or personal data were published.108- [ ] No implementation code was edited before the brief was delivered.109110## References111112- [AI agent skill preview workflow](https://github.com/skyestrela/ai-agent-skill-preview.)
Run npx skillmds@latest add paulasilvatech/bug-reproduction-brief in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Turn vague, intermittent, or environment-specific bug reports into minimal evidence-backed reproductions before diagnosis or repair. Use when a bug report is incomplete, mixed with an assumed cause, hard to reproduce, or needs observed failure, environment, expected/actual behavior, repeatability, and safe next hypothesis. It is listed under Docs & Writing on SkillMD.
SkillMD's automated safety review verdict for this skill is PASS. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
paulasilvatech (@paulasilvatech) published this skill. Their other Agent Skills are listed on their SkillMD profile.