<?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: Trần Minh Quang</title>
    <description>The latest articles on DEV Community by Trần Minh Quang (@trn_minhquang).</description>
    <link>https://dev.to/trn_minhquang</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%2F3833354%2F236d6c45-82e1-4e91-b0ce-103f8f8b7256.jpg</url>
      <title>DEV Community: Trần Minh Quang</title>
      <link>https://dev.to/trn_minhquang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trn_minhquang"/>
    <language>en</language>
    <item>
      <title>Claude Code Is Going Viral - But There's a Problem Nobody's Talking About</title>
      <dc:creator>Trần Minh Quang</dc:creator>
      <pubDate>Wed, 22 Apr 2026 21:21:28 +0000</pubDate>
      <link>https://dev.to/trn_minhquang/claude-code-is-going-viral-but-theres-a-problem-nobodys-talking-about-hcl</link>
      <guid>https://dev.to/trn_minhquang/claude-code-is-going-viral-but-theres-a-problem-nobodys-talking-about-hcl</guid>
      <description>&lt;p&gt;I've been using Claude Code daily for about a year now. For the first few months, I used it the way most people do — one long conversation, throwing everything at it, getting frustrated when it started forgetting things. It took me embarrassingly long to realize the problem wasn't the tool. It was how I was thinking about it.&lt;/p&gt;

&lt;p&gt;Here's what I do now, and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Thing Nobody Tells You About Context Windows
&lt;/h2&gt;

&lt;p&gt;Claude Code gives you a massive context window. And your natural instinct is to use all of it — keep the conversation going, pile on more context, because surely more information means better results.&lt;/p&gt;

&lt;p&gt;It doesn't. Here's what actually happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Information in the middle of long conversations gets less attention.&lt;/strong&gt; That constraint you mentioned 30 messages ago? The model is barely looking at it anymore.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every wrong turn is still in there.&lt;/strong&gt; The three approaches you rejected, the debugging dead ends, the "no, I meant..." corrections — they're all competing for attention alongside the stuff that matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The model starts drifting.&lt;/strong&gt; It loses its grip on your original instructions and starts producing output that slowly diverges from what you asked for.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It gets confidently repetitive.&lt;/strong&gt; It suggests things you've already tried, sometimes with slightly different wording so you almost don't notice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I call this &lt;em&gt;context rot&lt;/em&gt;, and it hits hardest exactly when you've done the most work. You spent an hour building shared understanding of some gnarly problem, and that's precisely when things start falling apart.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mental Model That Changed Everything
&lt;/h2&gt;

&lt;p&gt;At some point I had a realization that sounds obvious but genuinely changed how I work:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The conversation is RAM. Files are disk.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You'd never design a system where the only copy of important state lives in RAM. But that's exactly what most people do with Claude Code. They pour an hour of investigation into one conversation and then act surprised when it evaporates.&lt;/p&gt;

&lt;p&gt;Once I internalized this, everything else fell into place.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Actual Workflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. CLAUDE.md Is My Project Brain
&lt;/h3&gt;

&lt;p&gt;This is probably the single highest-leverage thing you can do with Claude Code. The &lt;code&gt;CLAUDE.md&lt;/code&gt; file sits at the root of your project and gets loaded into every conversation automatically. I use it to store anything the model needs to know across sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture decisions and constraints&lt;/li&gt;
&lt;li&gt;Conventions the codebase follows&lt;/li&gt;
&lt;li&gt;Known gotchas and footguns&lt;/li&gt;
&lt;li&gt;How to build, test, and deploy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every new conversation starts pre-loaded with this context. No explanation needed. When I discover something important during a session — say, that a particular service has an undocumented rate limit — I add it to &lt;code&gt;CLAUDE.md&lt;/code&gt; before I forget. Future me (and future conversations) will thank me.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Let Auto Memory Do the Heavy Lifting
&lt;/h3&gt;

&lt;p&gt;This is where Claude Code goes from "useful tool" to "tool that learns."&lt;/p&gt;

&lt;p&gt;Auto memory is a system where Claude Code automatically writes down important discoveries, preferences, and patterns as it works with you. When you tell it "always use pnpm, not npm" or "remember that the API tests require a local Redis instance," it saves that to a memory file — without you having to manually edit anything.&lt;/p&gt;

&lt;p&gt;Each project gets its own memory directory at &lt;code&gt;~/.claude/projects/&amp;lt;project&amp;gt;/memory/&lt;/code&gt;. The structure looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.claude/projects/&amp;lt;project&amp;gt;/memory/
├── MEMORY.md          # Concise index, loaded into every session
├── debugging.md       # Detailed notes on debugging patterns
├── api-conventions.md # API design decisions
└── ...                # Any other topic files Claude creates
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;MEMORY.md&lt;/code&gt; is the entrypoint — the first 200 lines (or 25KB) get loaded at the start of every conversation. Claude keeps it concise by moving detailed notes into separate topic files like &lt;code&gt;debugging.md&lt;/code&gt; or &lt;code&gt;patterns.md&lt;/code&gt;. Those topic files aren't loaded at startup; Claude reads them on demand when it needs them. This is clever design — your sessions start fast with a focused index, and the deep knowledge is one file-read away.&lt;/p&gt;

&lt;p&gt;The key thing: all of this is plain markdown you can edit or delete at any time. Run &lt;code&gt;/memory&lt;/code&gt; to browse and open memory files from within a session. I check mine regularly, pruning stuff that's outdated and occasionally reorganizing.&lt;/p&gt;

&lt;p&gt;This directly attacks context rot. Instead of re-explaining your project's quirks every session, Claude already knows. The understanding persists across conversations, across &lt;code&gt;/clear&lt;/code&gt;s, across days. It's the "files are disk" principle, automated.&lt;/p&gt;

&lt;p&gt;If you want auto memory stored somewhere specific, you can set &lt;code&gt;autoMemoryDirectory&lt;/code&gt; in your user or local settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"autoMemoryDirectory"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~/my-custom-memory-dir"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One caveat: auto memory is machine-local. It's not shared across machines or cloud environments. All worktrees and subdirectories within the same git repository share one auto memory directory, though, which is exactly what you want.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Write It Down Before You Lose It
&lt;/h3&gt;

&lt;p&gt;Even with auto memory, I still manually dump investigation notes before a conversation gets too long. Auto memory captures preferences and patterns; manual notes capture the &lt;em&gt;specific state of a debugging session&lt;/em&gt;. Different jobs.&lt;/p&gt;

&lt;p&gt;I usually drop these under &lt;code&gt;.claude/&lt;/code&gt; or as a &lt;code&gt;debug-notes.md&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Bug: Intermittent 500 on /api/orders&lt;/span&gt;

&lt;span class="gu"&gt;### Root cause&lt;/span&gt;
Race condition in OrderService.process() — two concurrent 
requests can both pass the inventory check before either 
decrements stock.

&lt;span class="gu"&gt;### What didn't work&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Adding a simple mutex (deadlocks with payment callback)
&lt;span class="p"&gt;-&lt;/span&gt; Database-level locking (too broad, kills throughput)

&lt;span class="gu"&gt;### Likely fix&lt;/span&gt;
Optimistic locking with retry on the inventory update.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I start a fresh conversation: "Read &lt;code&gt;debug-notes.md&lt;/code&gt; and implement the fix." The new conversation has all the context it needs and none of the baggage.&lt;/p&gt;

&lt;p&gt;This is embarrassingly simple and I resisted it for months. Don't be me.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Git Commits as Context Checkpoints
&lt;/h3&gt;

&lt;p&gt;Every time Claude Code produces something worth keeping — a partial fix, a useful refactor, even a diagnostic script — I commit it. And I write descriptive messages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add diagnostic logging for order race condition

Confirmed: concurrent requests both pass inventory check
at OrderService.java:142 before either writes back.
See failing test in OrderServiceRaceTest."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I start a new conversation, &lt;code&gt;git log&lt;/code&gt; and &lt;code&gt;git diff&lt;/code&gt; become high-quality context that costs zero conversation tokens. Claude Code can read your git history — let it.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Encode Understanding in Tests
&lt;/h3&gt;

&lt;p&gt;This is the one I'm most evangelical about. If I've found a bug, I get Claude Code to write a failing test &lt;em&gt;before&lt;/em&gt; I clear the conversation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Write a test that demonstrates the race condition in 
OrderService.process() with two concurrent requests 
for the last item in stock."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That test &lt;em&gt;is&lt;/em&gt; the understanding, encoded in something executable. A totally fresh conversation can run it, see the failure, read the test code, and know exactly what to fix. You don't have to explain anything. The test does the explaining.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Break Work Into Focused Conversations
&lt;/h3&gt;

&lt;p&gt;Instead of one mega-conversation that investigates, diagnoses, and fixes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Conversation 1: Investigate.&lt;/strong&gt; Explore the codebase, reproduce the bug, narrow down the cause. Write findings to a notes file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversation 2: Fix.&lt;/strong&gt; Start fresh. Point to the notes. Implement the solution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversation 3: Verify.&lt;/strong&gt; Review the fix, check edge cases, clean up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each conversation stays short enough that Claude Code is sharp the whole time. You're working &lt;em&gt;with&lt;/em&gt; the context window instead of against it.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Use /context to See the Warning Signs
&lt;/h3&gt;

&lt;p&gt;Here's a command I wish I'd discovered earlier: &lt;code&gt;/context&lt;/code&gt; visualizes your current context usage as a colored grid and shows optimization suggestions.&lt;/p&gt;

&lt;p&gt;Think of it as a fuel gauge for your conversation. When the grid is mostly green, you've got plenty of room. When it's turning red and throwing warnings, you're in the danger zone for context rot. It even suggests specific optimizations — maybe a particular tool is eating too much context, or you've got memory bloat from repeated file reads.&lt;/p&gt;

&lt;p&gt;I glance at &lt;code&gt;/context&lt;/code&gt; periodically during longer sessions. It takes a second and has saved me from pushing into degraded territory more than once.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. /rewind Instead of Starting Over
&lt;/h3&gt;

&lt;p&gt;Before I knew about &lt;code&gt;/rewind&lt;/code&gt;, my options when things went sideways were binary: keep pushing through the rot, or &lt;code&gt;/clear&lt;/code&gt; and lose everything.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/rewind&lt;/code&gt; gives you a middle ground. It lets you roll back the conversation (and optionally the code) to a previous checkpoint, or summarize from a selected message. Took a wrong turn three messages ago? Rewind to before that turn. The dead-end exploration is gone, the model's attention isn't wasted on it, and you keep everything that was working.&lt;/p&gt;

&lt;p&gt;This is especially useful when Claude Code goes down a rabbit hole — you can surgically remove the bad turns instead of nuking the whole session.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. /btw for Side Questions That Don't Pollute Context
&lt;/h3&gt;

&lt;p&gt;This one's subtle but important. Mid-debugging session, you need to check some syntax or ask a quick tangential question. If you ask it inline, that question and answer become part of your conversation context forever — noise competing with the actual investigation.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/btw&lt;/code&gt; lets you ask a side question without it being added to the conversation. Quick lookup, no context cost. I use it constantly for "what's the syntax for X again?" type questions that have nothing to do with the task at hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Compact Early, Not Late
&lt;/h3&gt;

&lt;p&gt;Claude Code's &lt;code&gt;/compact&lt;/code&gt; command summarizes your conversation to free up context space. The timing matters more than you'd think.&lt;/p&gt;

&lt;p&gt;If you compact when the conversation is already confused, the summary inherits that confusion. Garbage in, garbage out.&lt;/p&gt;

&lt;p&gt;The counterintuitive move: the moment you think "this is going well but getting long" — that's your window. Compact while things are still clean. Don't wait until you're already fighting the model.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. /fork When You Want to Try a Different Direction
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/fork&lt;/code&gt; (also available as &lt;code&gt;/branch&lt;/code&gt;) lets you branch your conversation so you can explore an alternative approach without losing your current line of work. Think of it like creating a branch in git — the original conversation stays intact, and you get a copy to take in a different direction.&lt;/p&gt;

&lt;p&gt;Considering two different fix strategies? Fork the conversation and try one. If it doesn't pan out, your original conversation is still right where you left it. I use it whenever I want to experiment with an approach that might not work out — refactoring strategies, alternative architectures, risky changes — without committing to it or polluting my main conversation with a dead end.&lt;/p&gt;

&lt;h3&gt;
  
  
  12. /clear Isn't Scary When You Have /resume
&lt;/h3&gt;

&lt;p&gt;One reason people resist clearing their conversation is the fear of losing everything. But &lt;code&gt;/clear&lt;/code&gt; doesn't destroy the conversation — it shelves it. Every cleared session is available through &lt;code&gt;/resume&lt;/code&gt;, where you can browse and jump back into any previous conversation.&lt;/p&gt;

&lt;p&gt;Combine this with &lt;code&gt;/rename&lt;/code&gt; — give your sessions descriptive names like "order-race-condition-investigation" or "payment-refactor-attempt-2" — and you've got a searchable history of all your work. Starting fresh stops feeling like a loss and starts feeling like opening a clean tab.&lt;/p&gt;

&lt;h3&gt;
  
  
  13. /export and /copy for Archiving
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/export&lt;/code&gt; dumps the full conversation to a file. I use it as an archive before clearing — cheap insurance in case I need to go back. &lt;code&gt;/copy&lt;/code&gt; grabs just the last response to the clipboard, which is handy when I want to pull one specific insight into my notes without copy-pasting around.&lt;/p&gt;

&lt;p&gt;Neither is life-changing on its own. Together with the notes habit, they make context management almost painless.&lt;/p&gt;

&lt;h3&gt;
  
  
  14. /diff to Track What Actually Changed
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/diff&lt;/code&gt; opens an interactive viewer showing uncommitted changes and per-turn diffs. You can switch between the overall git diff and what each individual Claude turn modified.&lt;/p&gt;

&lt;p&gt;I use this before committing — it gives me a clear picture of what's worth keeping versus what was exploratory. It's also useful before clearing a conversation: glance at the diff to make sure you've committed everything valuable.&lt;/p&gt;

&lt;h3&gt;
  
  
  15. /batch for Large-Scale Changes
&lt;/h3&gt;

&lt;p&gt;When a task is big enough to need many focused conversations, &lt;code&gt;/batch&lt;/code&gt; takes this to the logical extreme. It researches your codebase, decomposes the work into independent units, and spawns a separate agent for each one — each in its own isolated git worktree with clean context.&lt;/p&gt;

&lt;p&gt;This is the "focused conversations" principle, fully automated. Each agent gets a small, well-defined task and none of the context from other agents' work. No rot by design.&lt;/p&gt;

&lt;h3&gt;
  
  
  16. Learn to Smell Context Rot
&lt;/h3&gt;

&lt;p&gt;The obvious failure mode is wrong code. But context rot announces itself more subtly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It suggests something you already rejected three messages ago.&lt;/li&gt;
&lt;li&gt;It asks for information you already provided.&lt;/li&gt;
&lt;li&gt;Responses get vague — lots of "you could try..." instead of concrete solutions.&lt;/li&gt;
&lt;li&gt;It proposes changes that contradict constraints you set earlier.&lt;/li&gt;
&lt;li&gt;It gets weirdly agreeable — stops pushing back, just says yes to everything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When this starts happening, don't repeat yourself louder. Check &lt;code&gt;/context&lt;/code&gt; to see where you stand. Use &lt;code&gt;/rewind&lt;/code&gt; if the rot is recent. Save your progress and &lt;code&gt;/clear&lt;/code&gt; if it's pervasive. Repeating yourself into a degraded context makes it worse, not better.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Looks Like in Practice
&lt;/h2&gt;

&lt;p&gt;A typical debugging session for me now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start a conversation. Describe the bug. Let Claude Code explore the codebase. Auto memory means it already knows my project's conventions.&lt;/li&gt;
&lt;li&gt;After 10-15 minutes, we've usually narrowed it down. I write a quick notes file with findings.&lt;/li&gt;
&lt;li&gt;If the fix is straightforward, I keep going. If I want to try a different approach, I &lt;code&gt;/fork&lt;/code&gt; to experiment without losing my current progress. If it's complex enough to need a clean slate, I start a new conversation pointing at the notes.&lt;/li&gt;
&lt;li&gt;Commit working changes frequently. Write a failing test if I haven't already.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/btw&lt;/code&gt; for any tangential questions that would otherwise clutter context.&lt;/li&gt;
&lt;li&gt;Glance at &lt;code&gt;/context&lt;/code&gt; periodically. If things are long but productive, &lt;code&gt;/compact&lt;/code&gt; while it's still sharp.&lt;/li&gt;
&lt;li&gt;If the conversation goes sideways, &lt;code&gt;/rewind&lt;/code&gt; to the last good point. If it's too far gone, save notes and &lt;code&gt;/clear&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The whole thing takes less time than my old approach of pushing through one increasingly confused conversation. And the output quality is noticeably better because the model is always working with clean context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Will This Get Better?
&lt;/h2&gt;

&lt;p&gt;Some of this is just the physics of how attention works in language models. Context windows have limits, and cramming more tokens in doesn't make them all equally useful. That's not changing soon.&lt;/p&gt;

&lt;p&gt;But the tooling is improving fast. Auto memory already persists knowledge across sessions automatically. &lt;code&gt;CLAUDE.md&lt;/code&gt; gives every conversation a running start. Smarter summarization, better compaction, commands like &lt;code&gt;/batch&lt;/code&gt; that decompose work into clean parallel contexts — all of these chip away at the problem from different angles. A year from now I expect half the manual strategies in this post to be unnecessary.&lt;/p&gt;

&lt;p&gt;Until then, auto memory plus some git discipline gets you 80% of the way there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Differentiator Now
&lt;/h2&gt;

&lt;p&gt;Here's the thing nobody wants to say out loud: AI has made it so anyone can produce working code. The barrier to building software has effectively collapsed. Which means writing code is no longer what separates developers.&lt;/p&gt;

&lt;p&gt;What separates them is how well they control the agent.&lt;/p&gt;

&lt;p&gt;And make no mistake — strong programming fundamentals make you a better agent driver. If you understand how a problem should be solved in code, you can steer the model toward the right architecture, catch it when it drifts into a bad pattern, and frame your prompts in ways that produce shippable output. Someone who knows what good code looks like will always get more out of these tools than someone who doesn't.&lt;/p&gt;

&lt;p&gt;But coding skill alone is no longer enough. Two senior developers can use Claude Code on the same feature — one gets a clean result in an hour, the other spends a full day fighting hallucinations and spaghetti output. Same programming ability, different outcomes. The gap is context management, task decomposition, knowing when to clear and when to push through. It's everything in this post.&lt;/p&gt;

&lt;p&gt;That's why context rot isn't just an annoyance. It's the bottleneck. The craft is shifting from "can you write this?" to "can you write this &lt;em&gt;and&lt;/em&gt; drive the agent that writes the rest?"&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;The single biggest shift in how I use Claude Code wasn't learning a new command or feature. It was changing where I store knowledge.&lt;/p&gt;

&lt;p&gt;Conversations are for thinking. Files, commits, tests, and memory are for remembering.&lt;/p&gt;

&lt;p&gt;Claude Code already gives you a full toolkit for this: auto memory for persistent learning, &lt;code&gt;CLAUDE.md&lt;/code&gt; for project-level instructions, &lt;code&gt;/context&lt;/code&gt; for awareness, &lt;code&gt;/rewind&lt;/code&gt; for surgical fixes, &lt;code&gt;/btw&lt;/code&gt; for clean side questions, &lt;code&gt;/compact&lt;/code&gt; for timely summaries, &lt;code&gt;/fork&lt;/code&gt; for exploring alternative directions, and &lt;code&gt;/clear&lt;/code&gt; plus &lt;code&gt;/resume&lt;/code&gt; for fresh starts without losing history.&lt;/p&gt;

&lt;p&gt;Keep the thinking and remembering concerns separate and most of the frustration goes away. Your AI assistant will forget what you talked about — but with the right workflow, it never forgets what matters.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your Claude Code workflow? I'm always looking to steal good habits — drop a comment if you've found something that works.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I built a visual app flow designer that generates AI build instructions</title>
      <dc:creator>Trần Minh Quang</dc:creator>
      <pubDate>Thu, 19 Mar 2026 08:32:17 +0000</pubDate>
      <link>https://dev.to/trn_minhquang/i-built-a-visual-app-flow-designer-that-generates-ai-build-instructions-2679</link>
      <guid>https://dev.to/trn_minhquang/i-built-a-visual-app-flow-designer-that-generates-ai-build-instructions-2679</guid>
      <description>&lt;p&gt;Every time I wanted to build a mobile app with AI (Claude, ChatGPT, Cursor), I'd spend forever writing prompts describing how screens connect to each other. "The login screen has a button that goes to the home screen, which has a tab bar with 4 tabs, the profile tab has a settings button that opens a modal..." -- you get it.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Drawd&lt;/strong&gt; -- a browser-based tool where you:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload your screen mockups onto an infinite canvas&lt;/li&gt;
&lt;li&gt;Draw hotspot tap areas on each screen (buttons, tabs, links)&lt;/li&gt;
&lt;li&gt;Connect screens visually with navigation arrows&lt;/li&gt;
&lt;li&gt;Hit "Generate" and get a structured ZIP of markdown files that an LLM can actually consume&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The output includes screen specs, navigation maps, hotspot definitions, and a build guide tailored to your framework (SwiftUI, React Native, Flutter, or Jetpack Compose). You feed the ZIP to your AI coding tool and it knows exactly what to build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;I'm an iOS developer and I was tired of the gap between "I have designs" and "AI builds my app." Existing tools are either general-purpose whiteboards (too generic) or full prototyping tools (too heavy). I wanted something purpose-built for mapping mobile app navigation flows and turning them into structured specs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes it different
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free, no sign-up&lt;/strong&gt; -- runs entirely in the browser&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local-first&lt;/strong&gt; -- everything saves to a &lt;code&gt;.drawd&lt;/code&gt; file on your machine, no cloud dependency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built for the vibe coding workflow&lt;/strong&gt; -- the whole point is to bridge design and AI-powered development&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time collaboration&lt;/strong&gt; -- share a room code and design flows together&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conditional branching&lt;/strong&gt; -- model complex flows with drag-to-create branches&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://drawd.app" rel="noopener noreferrer"&gt;https://drawd.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback from anyone who's been using AI to build mobile apps. What's missing? What would make this more useful for your workflow?&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
