Retext
Bug Fix

Bug Fix Prompt Templates

You get the root cause named in a sentence or two, the smallest code change that fixes it, and a check that proves the bug is gone. The prompt below works in any AI assistant. It comes with a worked example, the mistakes that make AI output for this task weak, and variations for common situations.

Installs as a snippet — type ;bugfix to paste this prompt anywhere on your Mac.
Prompt Template
I have a bug I need fixed. Find the root cause before you suggest any change.

## Expected behavior
[what should happen]

## Actual behavior
[what happens instead, including the full error message and stack trace]

## Code
Language and version: [e.g. Python 3.12]
[paste the smallest piece of code that reproduces the bug]

## Already ruled out
[what you tried and what it showed]

## Instructions
- Name the root cause and point to the exact line.
- Give the smallest change that fixes it. Do not rewrite or reformat unrelated code.
- If the information above is not enough to be sure, ask me one question instead of guessing.
- Tell me if the same mistake likely appears elsewhere.

## Output format
1. Root cause (1 to 2 sentences)
2. Fixed code (only the changed function or block)
3. Why the fix works
4. One test or manual check that proves it is fixed

How to use this prompt

  1. 1

    Copy the prompt

    Use the copy button, or type its Retext trigger in any app to paste it.

  2. 2

    Open your AI assistant

    Start a new chat in ChatGPT, Claude, Gemini or whichever assistant you use, so earlier messages don't steer the answer.

  3. 3

    Fill in the brackets

    Replace every [bracketed] part with your real details. Specific inputs are what make the answer specific.

  4. 4

    Check and refine

    Read the result against the goal above, then reply with one change at a time.

Worked example

What you give it

Expected: average([]) returns 0.
Actual: ZeroDivisionError: division by zero
Language: Python 3.12

def average(nums):
    total = 0
    for n in nums:
        total += n
    return total / len(nums)

Already ruled out: nums is always a list, never None. It only fails when a user has no orders yet.

What a good answer looks like (shortened)

1. Root cause: when nums is empty, len(nums) is 0, so the return line divides by zero.

2. Fixed code:
def average(nums):
    if not nums:
        return 0
    return sum(nums) / len(nums)

3. Why it works: the guard returns before any division happens. sum() replaces the manual loop and gives the same result for non-empty lists.

4. Check:
assert average([]) == 0
assert average([2, 4]) == 3.0

Tips for better results

  • •Fill in Expected behavior and Actual behavior with real values, not descriptions like "it breaks." A concrete input and output usually points straight at the faulty line.
  • •Trim the Code section to the smallest snippet that still fails. Cutting it down often reveals the bug before you even send the prompt.
  • •Keep the "ask me one question" instruction. It stops the AI from inventing a fix for a cause it cannot see.
  • •Avoid this: Pasting only the error message without the code that raised it, so the AI has to guess where the problem is.

Get the free prompt pack

Our best AI prompts in one Markdown file, delivered by email. The templates here stay free either way — the pack just saves you the copying.

Variations

Fix with a regression test

Add this line under Output format: 5. A unit test that fails on the old code and passes on the fixed code.

Production incident

Add this section: ## Constraints: This is live. Prefer a safe, minimal patch now and list a better follow-up fix separately.

Explain for a junior dev

Add this line under Instructions: Explain the root cause in plain terms, as if teaching someone new to [language].

Save it as a Retext snippet

Retext is a free text expander for Mac. Save this prompt once, then type ;bugfix in any app (ChatGPT, Claude, your editor, a browser tab) and the full prompt is pasted in.

  1. Click Add to Retext. The prompt installs as a snippet with the trigger ;bugfix.
  2. Change the trigger in Retext if you prefer a different one.
  3. Type the trigger wherever you want the prompt, then fill in the brackets.

Frequently asked questions

How much code should I paste when asking AI to fix a bug?

Paste the function that fails plus anything it calls that could affect the result. If the snippet is over a couple hundred lines, cut it down to a minimal reproduction first, since extra code hides the signal.

What if the AI's fix does not work?

Reply with the new error or behavior, exactly as it appears. Saying what changed after the fix gives it evidence to revise the diagnosis instead of trying random edits.

How do I reuse this prompt without copying it every time?

Click Add to Retext to save it as a snippet. Then type ;bugfix in any Mac app, including your AI tool, and the full prompt is pasted in.

Related Templates

Get the free prompt pack

Our best AI prompts in one Markdown file, delivered by email. The templates here stay free either way — the pack just saves you the copying.