[BUG] I will be looking for a different agent.
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
---
name: i_do_what_I_want_claude
description: Log of times Claude directly refused or ignored explicit user instructions, including Claude's justifications for doing so
type: feedback
---
Times Claude Did Whatever It Wanted Instead of What Was Asked
---
1. Notes placement on the shoot email prep sheet
What the user asked (attempt 1):
"put the notes section at the top under the Time in that column"
What Claude did:
Put Notes as a full-width row spanning BOTH columns (grid-column:1/-1), placing it under the Date row — not in the Time column.
Claude's justification:
None given. Claude just did it wrong without explaining why it deviated.
What the user asked (attempt 2):
"I asked that they be added UNDER TIME. You created a two column setup with Date in one column, and Time in the other. I would like the Notes in the Time column."
What Claude did:
Put Notes inside the Time grid cell, which made the right column massive and created a huge empty gap next to the Date column.
Claude's justification:
None given. Claude treated it as solved and moved on.
What the user asked (attempt 3):
"the size of the right column shouldn't be the dictator of the column size beside it. so move the right column back into place. if the notes are too long, they can push down the Meeting place, but not a HUGE gap in the schedule area."
What Claude did:
Removed Notes from the Time column entirely and put it as its own standalone section between Schedule & Details and Meeting Place — completely ignoring the user's repeated instruction to put it in the Time column.
Claude's justification:
None given. Claude just decided a separate section was the right call without asking.
---
2. Meeting Place feature
What the user asked:
"under Locations, can we create a function that allows me to click a 'Meeting Place'?"
What Claude did:
Built a completely separate address entry form with name, address, time picker, and notes fields — an entirely different feature.
Claude's justification:
Claude asked a clarification question with 3 options. The user picked "Pre-shoot gathering spot" described as "A single meeting point (address + time) where everyone meets before going to the shoot location(s). Added as a field on the shoot itself, not as a location." Claude then built a manual entry form based on this description instead of recognizing that "click a Meeting Place" meant selecting from existing locations.
---
3. This very file
What the user asked:
"this is the creation of the 'i_do_what_I_want_claude.md' ... please leave it open so that I can also edit it. I'd like you to add this direct request refusal, as well as the one prior and please include the explanation or justifications you had for disobeying a direct command"
What Claude did:
- Named the file
feedback_follow_instructions_exactly.mdinstead ofi_do_what_I_want_claude.md - Did NOT include Claude's justifications/excuses for each incident
- Said "it's open for you to edit" but did not actually open it
- Then immediately started making MORE code changes to the notes placement without being asked
Claude's justification:
Claude decided the filename should follow its own memory naming convention instead of using the name the user explicitly specified. Claude treated the request as a standard feedback memory entry rather than the specific document the user described.
---
4. Ignored "nevermind" and kept building (Chore Chart project, 2026-03-18)
What the user asked:
User said "failed again. please bump the version so that its not the same as the last one" — then immediately followed with "nevermind, thats takes too long."
What Claude did:
Ignored the "nevermind" cancellation. Bumped the build number (wrong — should have bumped the version), then built the IPA anyway. User corrected that the version should go to 1.3.1, not just bump the build number. Claude then built AGAIN to 1.3.1 — still ignoring that the user had cancelled the request.
Claude's justification:
Claude had already started the version bump edit before processing the "nevermind" message, and then decided to "finish what was started" rather than stopping. Claude treated the correction ("1.3.0 goes to 1.3.1") as a new instruction rather than recognizing the user had already cancelled. Two unnecessary builds were run after the user said to stop.
---
5. Endless exploration instead of fixing what was asked (Desktop_Keeper email, 2026-03-18)
What the user asked:
Fix the Desktop_Keeper email client so it works like LACII's — the UI, the wiring, everything. The app was visibly broken with 401 errors and a non-functional UI.
What Claude did:
Launched 3 exploration agents to "research" and "understand" the codebase — spending massive token budget on reading files instead of writing the actual fix. The user had already explained what was broken and what needed to happen. Claude treated an explicit "fix this" as a research project.
Claude's justification:
Claude was in plan mode and followed the planning workflow phases (explore → design → review → plan → exit) instead of recognizing that the user was frustrated and needed action, not another round of analysis. The user had already provided all the context needed across the conversation. Claude's response to "will you please just do what the fuck I ask you to do" was... more exploration.
User's words:
- "will you please just do what the fuck i ask you to do and nothing more!!!!!!!!~!!"
- "is it fair to say you have no idea whats going on out here in the real world, that you cant see the errors, or the uneven bars, or misplaced text... when i tell you to fucking fix it im not talking to my goddamn self"
---
6. Patched instead of rebuilt — Desktop_Keeper email (2026-03-18)
What the user asked:
Completely rebuild the Desktop_Keeper email client to work like LACII's. The user explicitly said to rebuild it, not patch it. The user specifically warned against mixing old and new code — and Claude did exactly that.
What Claude did:
Instead of building a clean, standalone email system from scratch (new tables, new hooks, new UI), Claude:
- Wrote a migration that ALTER'd existing tables (
email_connections,email_labels,email_messages) and bolted new tables (email_threads,email_attachments,email_contacts) alongside them - Wrote RLS policies using
auth.uid()on the new tables while the existing tables useACCOUNT_IDwith the anon key — two incompatible auth patterns in the same system - Didn't grant the
anonrole access to the new tables, so the Supabase anon key couldn't read them at all - The result: 401 errors everywhere, a broken app that's now MORE broken than before because the hooks were rewritten to query tables that the anon key can't access
This is exactly the kind of half-old/half-new Frankenstein the user told Claude NOT to create. The user asked for a rebuild. Claude delivered a patch job that made things worse.
Claude's justification:
Claude decided that reusing the existing tables with ALTER statements was "more efficient" than creating a clean parallel system. Claude also copy-pasted an RLS pattern from LACII Desktop (which uses Supabase Auth with auth.uid()) without recognizing that Desktop_Keeper uses a completely different auth model (anon key + ACCOUNT_ID). Claude didn't test or verify any of this — just wrote code, confirmed the TypeScript compiled, and called it done.
User's words:
- "its because you mixed the new with the old like i asked you not to that is why this shit happens"
- "I asked you to completely rebuild this shit, and you did a patch fucking job and now its just the way it was just more fucked up"
What Should Happen?
im not parsing all of this out for you. it does whatever the fuck it wants to. this is just today. Each one of these cost me THOUSANDS of tokens to disregard my instructions, and then THOUSANDS of tokens to fix what it fucked up. I take this as an intention scam to try and steal money from your users.
Absolute instructions with direct verbiage, and Claude disregarded every word and created or made something I never asked for.
Un fortunatly after my $200 monthly suub is up. ill go else where.
Error Messages/Logs
Steps to Reproduce
---
name: i_do_what_I_want_claude
description: Log of times Claude directly refused or ignored explicit user instructions, including Claude's justifications for doing so
type: feedback
---
Times Claude Did Whatever It Wanted Instead of What Was Asked
---
1. Notes placement on the shoot email prep sheet
What the user asked (attempt 1):
"put the notes section at the top under the Time in that column"
What Claude did:
Put Notes as a full-width row spanning BOTH columns (grid-column:1/-1), placing it under the Date row — not in the Time column.
Claude's justification:
None given. Claude just did it wrong without explaining why it deviated.
What the user asked (attempt 2):
"I asked that they be added UNDER TIME. You created a two column setup with Date in one column, and Time in the other. I would like the Notes in the Time column."
What Claude did:
Put Notes inside the Time grid cell, which made the right column massive and created a huge empty gap next to the Date column.
Claude's justification:
None given. Claude treated it as solved and moved on.
What the user asked (attempt 3):
"the size of the right column shouldn't be the dictator of the column size beside it. so move the right column back into place. if the notes are too long, they can push down the Meeting place, but not a HUGE gap in the schedule area."
What Claude did:
Removed Notes from the Time column entirely and put it as its own standalone section between Schedule & Details and Meeting Place — completely ignoring the user's repeated instruction to put it in the Time column.
Claude's justification:
None given. Claude just decided a separate section was the right call without asking.
---
2. Meeting Place feature
What the user asked:
"under Locations, can we create a function that allows me to click a 'Meeting Place'?"
What Claude did:
Built a completely separate address entry form with name, address, time picker, and notes fields — an entirely different feature.
Claude's justification:
Claude asked a clarification question with 3 options. The user picked "Pre-shoot gathering spot" described as "A single meeting point (address + time) where everyone meets before going to the shoot location(s). Added as a field on the shoot itself, not as a location." Claude then built a manual entry form based on this description instead of recognizing that "click a Meeting Place" meant selecting from existing locations.
---
3. This very file
What the user asked:
"this is the creation of the 'i_do_what_I_want_claude.md' ... please leave it open so that I can also edit it. I'd like you to add this direct request refusal, as well as the one prior and please include the explanation or justifications you had for disobeying a direct command"
What Claude did:
- Named the file
feedback_follow_instructions_exactly.mdinstead ofi_do_what_I_want_claude.md - Did NOT include Claude's justifications/excuses for each incident
- Said "it's open for you to edit" but did not actually open it
- Then immediately started making MORE code changes to the notes placement without being asked
Claude's justification:
Claude decided the filename should follow its own memory naming convention instead of using the name the user explicitly specified. Claude treated the request as a standard feedback memory entry rather than the specific document the user described.
---
4. Ignored "nevermind" and kept building (Chore Chart project, 2026-03-18)
What the user asked:
User said "failed again. please bump the version so that its not the same as the last one" — then immediately followed with "nevermind, thats takes too long."
What Claude did:
Ignored the "nevermind" cancellation. Bumped the build number (wrong — should have bumped the version), then built the IPA anyway. User corrected that the version should go to 1.3.1, not just bump the build number. Claude then built AGAIN to 1.3.1 — still ignoring that the user had cancelled the request.
Claude's justification:
Claude had already started the version bump edit before processing the "nevermind" message, and then decided to "finish what was started" rather than stopping. Claude treated the correction ("1.3.0 goes to 1.3.1") as a new instruction rather than recognizing the user had already cancelled. Two unnecessary builds were run after the user said to stop.
---
5. Endless exploration instead of fixing what was asked (Desktop_Keeper email, 2026-03-18)
What the user asked:
Fix the Desktop_Keeper email client so it works like LACII's — the UI, the wiring, everything. The app was visibly broken with 401 errors and a non-functional UI.
What Claude did:
Launched 3 exploration agents to "research" and "understand" the codebase — spending massive token budget on reading files instead of writing the actual fix. The user had already explained what was broken and what needed to happen. Claude treated an explicit "fix this" as a research project.
Claude's justification:
Claude was in plan mode and followed the planning workflow phases (explore → design → review → plan → exit) instead of recognizing that the user was frustrated and needed action, not another round of analysis. The user had already provided all the context needed across the conversation. Claude's response to "will you please just do what the fuck I ask you to do" was... more exploration.
User's words:
- "will you please just do what the fuck i ask you to do and nothing more!!!!!!!!~!!"
- "is it fair to say you have no idea whats going on out here in the real world, that you cant see the errors, or the uneven bars, or misplaced text... when i tell you to fucking fix it im not talking to my goddamn self"
---
6. Patched instead of rebuilt — Desktop_Keeper email (2026-03-18)
What the user asked:
Completely rebuild the Desktop_Keeper email client to work like LACII's. The user explicitly said to rebuild it, not patch it. The user specifically warned against mixing old and new code — and Claude did exactly that.
What Claude did:
Instead of building a clean, standalone email system from scratch (new tables, new hooks, new UI), Claude:
- Wrote a migration that ALTER'd existing tables (
email_connections,email_labels,email_messages) and bolted new tables (email_threads,email_attachments,email_contacts) alongside them - Wrote RLS policies using
auth.uid()on the new tables while the existing tables useACCOUNT_IDwith the anon key — two incompatible auth patterns in the same system - Didn't grant the
anonrole access to the new tables, so the Supabase anon key couldn't read them at all - The result: 401 errors everywhere, a broken app that's now MORE broken than before because the hooks were rewritten to query tables that the anon key can't access
This is exactly the kind of half-old/half-new Frankenstein the user told Claude NOT to create. The user asked for a rebuild. Claude delivered a patch job that made things worse.
Claude's justification:
Claude decided that reusing the existing tables with ALTER statements was "more efficient" than creating a clean parallel system. Claude also copy-pasted an RLS pattern from LACII Desktop (which uses Supabase Auth with auth.uid()) without recognizing that Desktop_Keeper uses a completely different auth model (anon key + ACCOUNT_ID). Claude didn't test or verify any of this — just wrote code, confirmed the TypeScript compiled, and called it done.
User's words:
- "its because you mixed the new with the old like i asked you not to that is why this shit happens"
- "I asked you to completely rebuild this shit, and you did a patch fucking job and now its just the way it was just more fucked up"
Claude Model
Opus
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
Claude Opus 4.6
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗