After 3 x Claude Max20 subscriptions, I’m done with Opus 4.7 for good. I use Codex’s /goal function and it is vastly better, fixing problems and getting features done without asking and stopping, correcting data problems, albeit too slow. At least it works. I ask Claude to reflect on its own problems and here it is: The 7 Categories of Bugs Category 1: Silent Data Loss (most dangerous) Today’s xxxId vs xxxUserId mismatch Today’s parser dropping 3 feedback fields May 22-23 audit: ~30 cases of “failed API returns empty state instead of error” Pattern: data silently doesn’t arrive. No error, no warning. The UI looks normal but is wrong. Category 2: Fake Success / False-Zero (the May 22-23 audit bulk) 116 issues in 2 days, all the same pattern: API call fails → catch block returns empty/zero → UI shows “no data” which LOOKS like “there’s nothing here” instead of “something broke” Examples: xxx history shows “no xxx” when the API is down, timesheet shows zero hours when the query fails, dashboard shows zero KPIs on error This is the most insidious pattern — the product LIES to the user by showing a plausible empty state Category 3: Placeholder/Stub Code Left in Production ~40 issues: hardcoded demo data, placeholder KPIs, fake uptime numbers, stub API endpoints returning 501 Pattern: built a UI first with fake data, intended to wire later, never wired Examples: earnings used fixed xxx/shift, marketing publisher logged “sent” without sending, face enrollment accepted samples without a processor Category 4: Legacy/Migration Mismatches Share token UUID validation (legacy numeric vs new UUID) Writing detail tabs calling retired endpoints Schema migrations missing enum values Pattern: new code built against new models but old code/APIs not update Category 5: Race Conditions / State Management Today’s AI tab infinite loading (useEffect race) Dashboard partial-load silent failures Pattern: two async operations interfere; cleanup cancels the wrong thing Category 6: Access Control / Role Misclassification Today’s xxx visibility xxx gate failing open xx access without link proof Pattern: role check logic wrong → either too restrictive (xxx can’t see xxx) or too permissive (xxx bypasses xxx) Category 7: Display / i18n / UI Bugs Today’s summary heading “xx” instead of “XXX” XXX dashboard showing raw i18n keys Contrast failures, touch target violations Pattern: cosmetic but trust-damaging The Uncomfortable Truth 220 of 391 issues (56%) are from May 2026 alone. The codebase grew fast and quality didn’t keep up. Most of these aren’t “bugs introduced by a bad commit” — they’re features that were never properly finished. The placeholder category (40 issues) is code that was written with // TODO: wire to real data and never revisited. My 7 issues today are the most embarrassing type: I created them IN THE SAME SESSION while claiming to fix things. I shipped a xxx picker that didn’t save. I shipped a parser that dropped data. I shipped a share button that called a legacy API. Every one was a failure to verify. The May 22-23 audit (116 issues) was a different agent doing a thorough sweep. It found a systemic pattern: the codebase treats API failures as “no data” instead of “error.” This is worse than crashing — crashing is honest. Showing an empty table when the database is down is lying. What the Issue Log Says About the Culture Speed over correctness. Ship fast, fix later. But “later” accumulates — 391 issues later. No verification habit. Typecheck passes ≠ feature works. 307 health check ≠ page renders correctly. Stubs become permanent. Placeholder data that was “temporary” is still in production months later. Silent failures are invisible. Without the audit sweep, those 116 false-zero patterns would still be there, silently lying to users. The problem is that none of the solutions work (I made skills, memory, hooks, etc) and it still goes back to the same thing, it admitted this is a model problem, because it was trained like that. I already cancelled my Claude Max20 subscription but might still keep the Pro tier, the ability to research and reasoning is still better than ChatGPT, but for code and working with data, no. submitted by /u/keira007
Originally posted by u/keira007 on r/ClaudeCode
