Three Debugging Approaches
1. The Scientific Method
A structured, hypothesis-driven approach:- Observe — What exactly is happening? What did you expect to happen?
- Hypothesize — What might be causing the issue?
- Test — Make a small change to test your hypothesis
- Analyze — Did the change fix it? If not, what did you learn?
- Repeat — Form a new hypothesis based on what you learned
2. Divide and Conquer
Isolate the problem by narrowing the search space:- Isolate components — Test parts of the system separately
- Binary search — If you have a large codebase, test the middle to narrow down where the problem is
- Eliminate variables — Simplify until you find the minimal case that reproduces the issue
3. Logging and Monitoring
Add visibility into what the code is doing:- Strategic console logs — Add logs at key points in the code flow
- State tracking — Log the state of important variables
- Input/output validation — Verify data at entry and exit points
When to Ask Workshop vs. Investigate Yourself
Ask Workshop When:
- You have a clear error message and want an explanation
- The problem involves code Workshop generated and it has full context
- You need to search the codebase for related patterns
- You want help creating a minimal reproduction
- You need to try multiple potential fixes quickly
Investigate Yourself When:
- The issue is environmental (wrong Node version, missing system dependency)
- You need to check browser DevTools, network requests, or server logs
- The issue involves external services you need to verify manually (API keys, database access)
- You want to understand the problem deeply before asking for a fix
Common Debugging Scenarios
Workshop Misunderstands Your Requirements
Symptoms: Generated code does not match what you described, features are missing, or the structure does not align with your vision. Strategies:- Be more specific with concrete examples
- Break down complex requests into smaller pieces
- Use the correction pattern: acknowledge what works, identify what needs to change, explain the desired outcome
Technical Errors in Generated Code
Symptoms: Error messages when running the application, features that do not work, console warnings. Strategies:- Copy and paste the exact error message to Workshop
- Ask for both an explanation and a step-by-step fix
- Use version control to revert if changes make things worse
- Test small pieces in isolation
Performance Issues
Symptoms: Application runs slowly, high memory usage, long loading times. Strategies:- Ask Workshop to identify the bottleneck
- Request specific optimizations for your use case
- Consider whether architecture changes are needed
Integration Difficulties
Symptoms: Problems connecting to external services or APIs, authentication failures, data not flowing between systems. Strategies:- Verify API keys and permissions first
- Ask Workshop to log the request/response cycle
- Create a minimal test case before implementing full functionality
Deployment Issues
Symptoms: Application works locally but fails when deployed. Strategies:- Identify differences between local and production environments
- Verify all environment variables are set
- Deploy a simplified version first
Using Checkpoints as Safety Nets
Workshop’s checkpointing system creates automatic snapshots of your project as you work. Use this to your advantage during debugging:- Before risky changes: Know that you can restore to the current state if something goes wrong
- After finding a working state: If you have achieved partial progress, note the checkpoint so you can return to it
- When trying multiple approaches: Restore to the pre-attempt state between different debugging strategies
When Nothing Works
If you have tried multiple approaches without progress:- Step back: “Stop. Let’s reconsider our fundamental approach.”
- Simplify: “What’s the absolute simplest version of this that could work?”
- Get external input: Search the web, check documentation, or ask in the Discord community
- Start a fresh conversation: Sometimes a clean context helps Workshop approach the problem differently (see When to Start Fresh)