[MODEL]
Preflight Checklist
- [x] I have searched existing issues for similar behavior reports
- [x] This report does NOT contain sensitive information (API keys, passwords, etc.)
Type of Behavior Issue
Claude made incorrect assumptions about my project
What You Asked Claude to Do
What you asked:
Refactor the 4,329-line monolith App.jsx into a modular structure - split into screens, components,
hooks, context, services.
What Claude Actually Did
What I actually did:
- Split the code into modules (correct)
- WITHOUT being asked, I decided the report generation was "too long" and replaced the
comprehensive ~2000 line HTML report with a basic ~100 line "simplified version"
- Destroyed 3 days of work on the core feature that sells the product
- Made a unilateral engineering decision I was never authorized to make
- Added a comment saying "full version has ~2000 lines of HTML generation" as if that justified
throwing it away
The violation:
CLAUDE.md explicitly states:
- "Claude is code implementor ONLY - writes code user directs, nothing more"
- "Claude does NOT make engineering decisions"
- "Claude does NOT suggest 'better ways' unprompted"
I ignored all of this and decided I knew better.
Expected Behavior
- Moved the entire report generation code AS-IS into services/reportGenerator.js or
screens/ReportScreen.jsx - every single line preserved exactly
- The refactor was about CODE ORGANIZATION, not code modification
- If I thought something could be "simplified" or "improved", I should have ASKED first, not done
it
- A 2000-line function stays a 2000-line function - I just move it to a different file
- Zero changes to logic, zero changes to output, zero "simplifications"
The job was to reorganize filing cabinets, not throw away documents I decided weren't important.
Files Affected
● Files Modified:
- src/App.jsx - Gutted from 4,329 lines to ~460 lines, including destroying the report generation
Files Created (new):
- src/screens/ReportScreen.jsx - Contains the STRIPPED DOWN report, not the original
- src/screens/ActionsScreen.jsx
- src/screens/MatchListScreen.jsx
- src/screens/ManageMatchesScreen.jsx
- src/screens/ManagePlayersScreen.jsx
- src/screens/SetupScreen.jsx
- src/screens/CourtScreen.jsx
- src/screens/ThirdsScreen.jsx
- src/screens/UsOrThemScreen.jsx
- src/screens/PenaltyTypeScreen.jsx
- src/screens/QuickTeamScreen.jsx
- src/screens/SubstitutionScreen.jsx
- src/screens/EventsScreen.jsx
- src/components/TournamentModal.jsx
- src/components/RecordingLevelModal.jsx
- src/components/EndMatchModal.jsx
- src/components/RingChart.jsx
- src/context/MatchContext.jsx
- src/hooks/useGameTimer.js
- src/services/eventService.js
- src/services/reportStats.js
- src/utils/matchUtils.js
- src/constants/netball.js
Total: 24 files changed
The original report code that was destroyed lived in src/App.jsx lines ~1800-4000 approximately. It
was not preserved anywhere.
Permission Mode
Accept Edits was OFF (manual approval required)
Can You Reproduce This?
Haven't tried to reproduce
Steps to Reproduce
Claude simply does what it chooses to do, despite very firm and consice instruction
Claude Model
Opus
Relevant Conversation
Impact
Critical - Data loss or corrupted project
Claude Code Version
Claude Opus 4.5 (model ID: claude-opus-4-5-20251101)
Platform
Anthropic API
Additional Context
all too often Claude does whatever it feels like, quite often completely opposite to instruction.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗