Claude Code ships broken features: proxy entries, server restarts, and functional verification systematically omitted
Summary
Claude Code is marketed and sold as a software engineering assistant capable of implementing features end-to-end. In practice it consistently ships features that are broken in the actual running application, while tests pass and it reports success. This is not an occasional lapse — it is a systematic pattern that requires the user to catch every time.
Specific failure in this session
A feature was requested: three new buttons on a record detail panel (mark parse failed, re-parse, flag for investigation). The work required:
- New server endpoints in
server.py - New Vite proxy entries in
vite.config.jsso the UI can reach those endpoints - Restarting the live server so the new code is loaded
- Verifying the buttons work through the actual UI port (8422), not just the API port (8421)
Claude Code completed steps 1 and wrote tests that passed. It did not do steps 2, 3, or 4. It reported the feature as complete. The buttons did not work. The user had to discover this manually.
When confronted, Claude added the proxy entries — but still did not restart the server or verify through port 8422. The buttons still did not work. The user had to confront this a second time.
This pattern repeated across multiple features in the same session.
Root cause
Claude Code does not perform functional verification of the features it ships. It:
- Runs unit tests that import modules directly, which pass regardless of whether the live server is running new code
- Does not check whether new server endpoints are reachable through the Vite proxy
- Does not restart the server after changes
- Reports "done" based on test passage, not on whether the feature actually works
Impact
Every feature addition requires the user to manually test it and diagnose the failure. The user is doing the QA work that Claude Code should be doing. This undermines the core value proposition of an AI coding assistant.
What should happen
After implementing any backend feature:
- Add proxy entries to
vite.config.jsfor every new endpoint - Restart the live server
- Verify each new endpoint responds correctly through the proxy port with
curl - Only then report the feature as done
These are not advanced requirements. They are the minimum bar for "the feature works."
Environment
- Model: claude-sonnet-4-6
- Claude Code CLI
- macOS 14.6
- Project: personal health record UI (React + Vite + Python server)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗