Workflow

Get Unstuck

Reset, simplify, and reframe when Claude loops or stalls.

Overview

Sometimes Claude gets stuck in loops, providing the same unhelpful suggestions repeatedly, or fails to make progress on a task. When this happens, continuing the conversation wastes time. This workflow helps you recognize stuck patterns early and apply proven recovery techniques: resetting context, simplifying the problem, providing concrete examples, or breaking the task into smaller pieces.

When to use

Use this workflow when Claude repeats the same response, misunderstands your request after multiple clarifications, produces code that doesn't work repeatedly, or seems unable to progress on a task.

Step-by-step process

1

Reset the thread when looping

If Claude gives the same response 2-3 times or you're going in circles, stop. Start a fresh thread with a concise summary of what you need, what hasn't worked, and what to avoid.

"New thread: I need to fix a rate limiting bug in our API. Previous attempts focused on Redis configuration, but the issue is actually in how we're counting requests. Don't suggest Redis changes—help me debug the request counter logic in middleware/rateLimit.ts."
2

Simplify the task and solve in parts

If Claude struggles with a complex request, break it into the smallest possible piece. Get that working, then build up gradually.

"Forget the full authentication system for now. Let's just get one thing working: a function that takes a password string and returns a bcrypt hash. Once that works, we'll add the rest."
3

Provide a concrete example

Abstract requests are harder to understand. Show exactly what you want with specific inputs and expected outputs.

"Instead of 'add validation', here's concrete: This function receives {email: 'user@example.com', age: 25}. It should return {valid: true} for this input, but {valid: false, errors: ['age must be 18+']} if age is 16. Make it work for these cases first."
4

Change your approach

If repeated attempts at the same approach aren't working, try something different: a different algorithm, library, or architecture. Sometimes the approach itself is the problem.

"We've tried 5 different ways to make this regex work and it keeps failing. Let's abandon regex for now and use a simple parser instead. Show me how to parse this format without regular expressions."

Example prompts

Claude is looping on the same solution

"You've suggested updating the cache configuration 3 times, but I've explained the cache is working correctly. The issue is elsewhere. Reset your thinking. The bug is: users see stale data after updates. Cache is ruled out. What else could cause this? Fresh analysis, please."

Complex task is overwhelming

"Building a full OAuth system is too big. Let's start microscopic: Write one function that validates a JWT token string. Input: token string and secret key. Output: decoded payload or error. Nothing else. No database, no users, no sessions."

Solution keeps failing in subtle ways

"This sorting algorithm has failed 4 times with different edge case bugs. Let's change strategy: Use the built-in Array.sort() with a custom comparator. Show me that first, get it working, then we can optimize if needed."

Unclear requirements causing confusion

"Let me be extremely concrete. Input: array [3, 1, 4, 1, 5]. Expected output: array [1, 1, 3, 4, 5]. That's it. Make this exact test pass. Don't worry about other cases yet."

Expected outputs

Clearer direction

Resetting context and simplifying requests gives Claude a fresh start with focused, actionable goals

Faster progress

Breaking stuck patterns immediately rather than continuing ineffective approaches saves significant time

Less rework

Concrete examples and simplified scopes reduce misunderstandings that require later corrections

Better solutions

Changing approaches when stuck often reveals simpler, more effective solutions than forcing the original idea

Best practices

Recognize loops quickly—if you see the same response twice, don't go for a third attempt without changing something
Start fresh rather than trying to fix a degraded conversation—context resets solve most stuck situations
Make your examples concrete and testable—show exact inputs and expected outputs
Reduce scope aggressively when stuck—get the smallest piece working before adding complexity
Don't be afraid to abandon an approach that's not working—sunk cost fallacy applies to prompts too

Common pitfalls

Repeating the same request hoping for different results

Solution: If twice didn't work, the problem is your request or the context, not Claude's randomness. Change something: reset context, simplify scope, or provide examples.

Not recognizing when the approach itself is wrong

Solution: If multiple attempts at the same solution fail, the solution might be wrong. Ask Claude: 'Is there a fundamentally different way to solve this?'

Providing vague instructions when stuck

Solution: Vagueness makes stuck situations worse. Get more concrete: show exact code, specific inputs/outputs, and clear success criteria.

Pro tips

Use the 'rubber duck' technique

""Let me explain the full problem from scratch as if you know nothing: [detailed explanation]. Now suggest a solution without any assumptions from previous messages.""

Ask for alternative approaches

""We're stuck on this approach. Propose 3 completely different ways to solve this problem, even if they seem unconventional. I'm open to any solution that works.""

Provide a working example to modify

""Here's code that works for case A. Modify this to also handle case B. Start with working code, not from scratch.""

Related workflows