agentleFS
sabirmgdsabirmgd/terminal-first-goal-loop/skills/bug-repro/SKILL.md

bug-repro

Skill2 starsChanged 2 months agoMITView on GitHub

Turn a bug claim into one standalone same-run repro bundle with a strict yes, no, or inconclusive answer. Use when a report, screenshot, error snippet, QA note, or support message may describe a bug and the first job is to prove or disprove it without starting diagnosis or implementation.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. About 0 are common, 18 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈18

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do not mix several surfaces unless one really cannot prove the claim alone.

    line 42
  2. Distinctive:

    Do not write a repro that merely confirms the bad behavior happened.

    line 61
  3. Distinctive:

    Create one bundle outside the product code path so it can be rerun without reopening the whole investigation:

    line 65
  4. Distinctive:

    If shell is the wrong surface, use the lightest equivalent, but keep the same bundle contract.

    line 85
  5. Distinctive:

    Use one target surface.

    line 91
  6. Distinctive:

    Use one target role if the bug is role-specific.

    line 92
  7. Distinctive:

    Use one target environment.

    line 93
  8. Distinctive:

    Use one same-run evidence set.

    line 94
  9. Distinctive:

    Do not manually poke around before running the real repro unless access or setup must be checked first.

    line 95
  10. Very specific:

    If a role-specific claim exists, record the role in the bundle.

    line 97
  11. Distinctive:

    Run the repro once and classify the result.

    line 101
  12. Distinctive:

    Do not run a second ad hoc test just to produce a cleaner answer.

    line 109
  13. Distinctive:

    If the run is inconclusive because the environment or transport might be down, one narrow follow-up probe is allowed:

    line 113
  14. Distinctive:

    Do not escalate into a full environment audit.

    line 118
  15. Distinctive:

    keep the default repro read-only

    line 122
  16. Distinctive:

    if the claim inherently requires a state-changing repro, only do it with explicit authority and only against a safe non-production target

    line 123
  17. Distinctive:

    do not print secrets, tokens, cookies, or raw sensitive payloads into the bundle

    line 124
  18. Distinctive:

    Stop immediately when one of these is true:

    line 161
  19. Distinctive:

    If you find yourself diagnosing the bug or editing code, you are already in the wrong skill.

    line 167

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Bug Repro

This skill has one job:

claim -> one reproducible proof -> handoff -> stop

It does not fix the bug. It does not choose a branch. It does not create a PR.

What this skill owns

  • restating the claim
  • turning the claim into expected behavior
  • choosing the narrowest proof surface
  • building a standalone repro bundle
  • running the repro once
  • returning a strict outcome

What this skill does not own

  • root-cause diagnosis
  • code changes
  • worktree creation
  • ticket updates
  • release claims

Classify the claim first

Pick one primary surface:

  • API or transport
  • integration or job flow
  • browser journey
  • runtime or environment behavior

Do not mix several surfaces unless one really cannot prove the claim alone.

Examples:

  • wrong status code: API
  • background job never updates state: integration or runtime
  • page renders the wrong thing: browser
  • role sees data it should not: API first, browser if the visible page is the claim

Translate the report into an expected contract

A bug report usually describes the bad result. The repro needs the expected result.

Examples:

  • "this times out" becomes "this request should return within the expected bound"
  • "this page is blank" becomes "this page should render the expected loaded state"
  • "manager cannot save" becomes "manager role should be allowed to save this form"

Do not write a repro that merely confirms the bad behavior happened. Write a repro that checks whether the intended behavior holds.

Build a standalone repro bundle

Create one bundle outside the product code path so it can be rerun without reopening the whole investigation:

.omx/repro-runs/<YYYYMMDD-HHMMSS>-<slug>/
  manifest.md
  repro.sh
  evidence/

manifest.md should record:

  • the original claim
  • the expected contract
  • the chosen surface
  • inputs or role assumptions
  • the exact command or steps inside repro.sh
  • where evidence will be written

repro.sh should do one thing only: execute the exact repro and write same-run evidence.

If shell is the wrong surface, use the lightest equivalent, but keep the same bundle contract. The output must remain rerunnable and self-contained.

Keep the run narrow

Rules:

  1. Use one target surface.
  2. Use one target role if the bug is role-specific.
  3. Use one target environment.
  4. Use one same-run evidence set.
  5. Do not manually poke around before running the real repro unless access or setup must be checked first.

If a role-specific claim exists, record the role in the bundle. If the role cannot be proven because access is missing, return inconclusive, not not reproduced.

Run once

Run the repro once and classify the result.

Allowed outcomes:

  • yes: the expected contract failed, the bug is reproduced
  • no: the expected contract held, the bug is not reproduced
  • inconclusive: the repro could not answer honestly because of setup, access, transport, or environment failure

Do not run a second ad hoc test just to produce a cleaner answer. The bundle should contain the proof from the real run.

When a surface probe is allowed

If the run is inconclusive because the environment or transport might be down, one narrow follow-up probe is allowed:

  • one health or identity check for the same surface
  • one authentication check for the same role or environment

Do not escalate into a full environment audit. The point of the probe is only to explain why the repro was inconclusive.

Safety

  • keep the default repro read-only
  • if the claim inherently requires a state-changing repro, only do it with explicit authority and only against a safe non-production target
  • do not print secrets, tokens, cookies, or raw sensitive payloads into the bundle
  • redact or cap evidence when the response body is large or sensitive
  • inspect screenshots before sharing them

Handoff contract

Return exactly this shape:

Reproduced: yes | no | inconclusive
Surface:    <surface>
Bundle:     <path>
Script:     <path>
Evidence:   <path>
Observed:   <what the run actually showed>
Expected:   <the pinned intended behavior>
Rerun:      <path>

You may add one short blocker line only when the result is inconclusive:

Blocker: <exact reason>

Do not add:

  • root-cause guesses
  • fix options
  • branch names
  • PR ideas
  • release verdicts

Those belong to the next lane.

Stop conditions

Stop immediately when one of these is true:

  • the bundle produced a clear yes
  • the bundle produced a clear no
  • the bundle is honestly inconclusive and the blocker is identified

If you find yourself diagnosing the bug or editing code, you are already in the wrong skill.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.