A failing test with reproduction steps, expected versus observed behaviour and a short list of code areas to inspect.
Choose one of three approaches. The steps for that option appear below.
Choose an option above. On a phone, swipe the tabs left or right to see all options →
Claude: drafts outline, failing test and code areas
One Claude chat drafts the outline, the failing test and candidate areas. You run the test and decide.
You
Gather report
Claude
Draft all three
You
Check and decide
Gather the bug report and module
Use:You
Have ready: the bug report and the 120-line module.
Check
Fill gaps by asking the reporter.
Draft outline, failing test and code areas
Use:Claude
In one chat, ask for a numbered reproduction outline, a failing test using the reported inputs, and candidate code areas (not fixes). Mark inferred steps.
Details
What to paste into the tool
Task: Reproduction outline and points still to confirm. Here is a user-written bug report. Extract a numbered reproduction outline: steps, inputs, and the expected behaviour. Mark any step you inferred rather than read in the report, and list what is still to confirm. Names appear as codes such as P1; keep the codes in your output. Task: Test file. Here is the module the report concerns. Draft one test file that follows the reproduction outline and uses the reported inputs exactly. The test must fail now and pass once the reported behaviour is correct. Do not change the module. Task: Candidate locations. Without changing anything, list the areas of this module likely involved in the failing behaviour. Label every suggestion as a candidate area, not a fix.
Run the test, check areas, approve or hold
Use:You
Run the test and confirm why it fails. Step through it, keep the areas it really touches and drop the rest.
Check
Run the test; check the failure reason. Check each suggested code area by stepping through the failing test and discard areas that do not contribute. Approve the shortlist only after stepping through the failing test.
GitHub Copilot: writes failing test, you write outline
Copilot agent mode drafts the failing test. You write the outline; Copilot chat suggests candidate areas.
You
Gather report
GitHub Copilot
Draft failing test
You
Run test, write outline
GitHub Copilot
Suggest code areas
You
Check and decide
Gather the bug report and module
Use:You
Have ready: the bug report and the module.
Ask for a failing test
Use:GitHub Copilot
Open the module, paste the report into Copilot agent mode and ask for a failing test as editor edits, with assumptions listed.
Details
What to paste into the tool
Task: Test file; Assumptions about the reported inputs. Here is a bug report about the open module. Propose a new test file that uses the reported inputs, fails now, and passes once the reported behaviour is correct. List every assumption you made about the reported inputs. Do not modify the module.
Run the test and write the outline
Use:You
Run the test and write a numbered reproduction outline yourself, marking inferred steps and points still to confirm.
Check
Run the test and check it fails for the reported reason; fill gaps by asking the reporter.
Ask Copilot chat for candidate areas
Use:GitHub Copilot
Ask Copilot chat which areas of the open module the failing test implicates, framed as candidate areas.
Details
What to paste into the tool
Task: Candidate locations. Here is my reproduction outline. Explain which areas of the open module the new failing test exercises and which are likely involved. Label every suggestion as a candidate area, not a fix.
Check the areas, then approve or hold
Use:You
Step through the failing test, keep the areas it really touches, drop the rest, then approve the shortlist or hold it.
Check
Check the suggested code areas by stepping through the failing test and discard areas that do not contribute.
ChatGPT: drafts only the test, you do the rest
You write the outline and analyse the areas. ChatGPT only drafts the test file.
You
Write outline
ChatGPT
Draft failing test
You
Run, list areas
Write the reproduction outline yourself
Use:You
Read the bug report and write a numbered reproduction outline, marking inferred steps and points still to confirm.
Check
Fill gaps by asking the reporter.
Draft the failing test
Use:ChatGPT
Paste your outline and the module into a ChatGPT chat and ask for a failing test built from the reported inputs.
Details
What to paste into the tool
Task: Test file. Draft a test file that follows the outline and uses the reported inputs exactly; it must fail now and pass when the reported behaviour is correct. Do not change the module.
Run the test and list implicated areas
Use:You
Run the test, step through it, list the areas it implicates, discard the rest.
Check
Step through the failing test and discard areas that do not contribute.
Compare the three approaches
Option A: Claude: drafts outline, failing test and code areas
Best when: You want outline, test and candidate areas from one chat
What it does: Claude drafts all three; you run and check them
Strong at: Drafts and edits text in many formats
Limit: Usage capped in 5-hour and weekly windows
Free plan: Yes
Option B: GitHub Copilot: writes failing test, you write outline
Best when: You work in the editor and want the outline in your hands
What it does: Copilot drafts test and areas; you write the outline
Strong at: Chats about code in IDE, CLI and desktop app
Limit: Agent actions need human approval for sensitive steps like running commands
Free plan: Yes
Option C: ChatGPT: drafts only the test, you do the rest
Best when: The bug is subtle and you want no AI guesses
What it does: ChatGPT drafts the test only; you do the rest
Strong at: Writes, rewrites and summarises text
Limit: Free plan limits file uploads, image generation, voice and data analysis
Free plan: Yes
Before you paste into any AI tool, remove any confidential information. Put it back at the end.