I Gave Claude Code Access to My Repository for a Week — Here’s What It Couldn’t Fix
Frequently Asked Questions
Q1: What specific bug did Claude Code introduce that took me 3 days to track down?
Claude refactored a date formatting utility that was used across 14 files. It changed the function signature from returning a string to returning a Unix timestamp — technically correct behavior, but it broke three downstream functions that expected string output. The type system didn’t catch it because the codebase had no TypeScript coverage. The bug only appeared when users hit a specific edge case around daylight saving time transitions. I spent three days with production logs before I traced it back to the AI refactor on a Thursday afternoon.
Q2: How many files did Claude Code refactor in one hour and what was the result?
Claude processed about 200 files in one hour, making changes to improve code consistency and add documentation comments. Most changes were genuinely good — it standardized error handling patterns, added JSDoc comments to functions that were undocumented, and flagged six functions that could benefit from async/await conversion. The refactoring itself was impressive. The problem was that I didn’t review each change with the same scrutiny I would have given a human code review, and I didn’t run the full test suite after every batch of changes — that’s where the bug slipped through.
Q3: What category of problems could Claude Code not fix despite having full repository access?
Context-dependent logic and business rules. When I asked Claude to optimize a feature flag system, it suggested changes that would break the existing user segmentation logic because it didn’t understand that certain user cohorts had contractual billing terms tied to those flags. It also couldn’t fix architectural decisions that were limiting performance — it would suggest changes within the existing structure rather than questioning the structure itself. AI handles localized refactoring well; it struggles with the kind of system-wide reasoning that requires understanding why the code exists the way it does.