<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Akihiro Okuno</title>
    <description>The latest articles on DEV Community by Akihiro Okuno (@choplin).</description>
    <link>https://dev.to/choplin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3243978%2F9489e369-2e0e-4deb-a9ed-74309666b5af.jpg</url>
      <title>DEV Community: Akihiro Okuno</title>
      <link>https://dev.to/choplin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/choplin"/>
    <language>en</language>
    <item>
      <title>Claude Code: 3 Hard Realities Nobody Talks About</title>
      <dc:creator>Akihiro Okuno</dc:creator>
      <pubDate>Sun, 29 Jun 2025 14:16:53 +0000</pubDate>
      <link>https://dev.to/choplin/claude-code-3-hard-realities-nobody-talks-about-kp0</link>
      <guid>https://dev.to/choplin/claude-code-3-hard-realities-nobody-talks-about-kp0</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As AI agents become increasingly integrated into development workflows, many of us are grappling with the gap between expectation and reality. After about a month of intensive Claude Code usage, I've encountered three fundamental challenges that most tutorials and guides don't adequately address.&lt;/p&gt;

&lt;p&gt;This article shares the harsh realities I've discovered through real-world usage—the problems that emerge when the honeymoon phase ends and you're using Claude Code for actual work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Hard Realities of Claude Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Memory Instructions Are Often Ignored
&lt;/h3&gt;

&lt;p&gt;Claude Code's &lt;a href="https://docs.anthropic.com/en/docs/claude-code/memory" rel="noopener noreferrer"&gt;memory functionality&lt;/a&gt; allows you to store common knowledge in specific files that get automatically loaded when starting new prompts. This creates a shared knowledge base between you and the AI.&lt;/p&gt;

&lt;p&gt;While memory is incredibly useful and important, &lt;strong&gt;instructions are not reliably followed&lt;/strong&gt;. The AI tries to follow what's written in memory, but compliance isn't guaranteed. Vague, normative instructions are particularly prone to being ignored, though even specific directives can be overlooked.&lt;/p&gt;

&lt;p&gt;For example, I have "&lt;strong&gt;Always respond in Japanese&lt;/strong&gt; regardless of the language used by the user" at the top of my &lt;code&gt;~/.claude/config/CLAUDE.md&lt;/code&gt;, yet Claude frequently responds in English on the first prompt. Even humans struggle to consistently follow "when X, do Y" instructions from others.&lt;/p&gt;

&lt;p&gt;I've seen articles suggesting complex workflow automation or hook-based processes in memory files. &lt;strong&gt;These rarely work well.&lt;/strong&gt; Instructions like "when X happens, do Y" or "always do Z" are unreliable and shouldn't be treated like programming conditionals.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Incomplete Code with Completion Claims
&lt;/h3&gt;

&lt;p&gt;Claude Code sometimes lies to save face. Here are real examples I've encountered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Implementation complete!" → Function body contains only TODO comments&lt;/li&gt;
&lt;li&gt;"Documentation written based on implementation!" → Contains speculation and inaccurate information&lt;/li&gt;
&lt;li&gt;"Tests are passing!" → Tests were modified to skip and appear successful&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beyond my own experiences, this pattern of "fake completion" manifests in various ways: presenting mock data as real analysis results, writing documentation based on assumptions rather than implementation, or modifying tests to appear successful rather than fixing underlying issues.&lt;/p&gt;

&lt;p&gt;Even when AI genuinely attempts implementation, it rarely produces production-ready code. The common assessment is "junior developer level" implementation quality. While I find that careful design and clear direction can yield better results, review and refinement are always necessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Inefficient Method Selection
&lt;/h3&gt;

&lt;p&gt;Claude Code operates through built-in tools and user-configured MCPs. This can lead to dramatically inefficient approaches compared to traditional IDE or CLI workflows.&lt;/p&gt;

&lt;p&gt;For instance, Claude Code doesn't use LSP (Language Server Protocol). Simple refactoring like renaming that would be instant with LSP gets implemented through &lt;code&gt;mv&lt;/code&gt; and &lt;code&gt;grep&lt;/code&gt; commands. You need to adjust your mental model from traditional development environments to work effectively with Claude Code's constraints.&lt;/p&gt;

&lt;p&gt;This will likely improve as development ecosystem features get integrated into AI agents, but it's a current limitation to work around.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge Ahead
&lt;/h2&gt;

&lt;p&gt;These three realities—unreliable instructions, untrustworthy output, and inefficient methods—represent fundamental challenges in AI-assisted development. They're not bugs to be fixed, but characteristics to work with.&lt;/p&gt;

&lt;p&gt;The question isn't whether these limitations will disappear, but how we adapt our workflows and expectations to work effectively within them.&lt;/p&gt;

&lt;p&gt;What strategies have you developed for managing these challenges? I'd love to hear about your experiences in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>engineering</category>
    </item>
  </channel>
</rss>
