<?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: Sam</title>
    <description>The latest articles on DEV Community by Sam (@gauzzastrip).</description>
    <link>https://dev.to/gauzzastrip</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3851799%2Fb6fa26a0-1250-4ded-8ce4-80dd20407b95.jpg</url>
      <title>DEV Community: Sam</title>
      <link>https://dev.to/gauzzastrip</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gauzzastrip"/>
    <language>en</language>
    <item>
      <title>The forbidden fruit of vibe coding isn’t bad code.</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Fri, 26 Jun 2026 14:20:03 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/the-forbidden-fruit-of-vibe-coding-isnt-bad-code-4cal</link>
      <guid>https://dev.to/gauzzastrip/the-forbidden-fruit-of-vibe-coding-isnt-bad-code-4cal</guid>
      <description>&lt;h2&gt;
  
  
  It’s working code.
&lt;/h2&gt;

&lt;p&gt;Because once something works, your brain **wants **to _trust _it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The button clicks.&lt;br&gt;
The page loads.&lt;br&gt;
The dashboard renders.&lt;br&gt;
The demo looks real.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And suddenly, it’s tempting to believe the project is further along than it actually is.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;But working is not the same as ready.&lt;br&gt;
Working is not the same as secure.&lt;br&gt;
Working is not the same as understood.&lt;br&gt;
And working is definitely not the same as remembered.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That was the surprising part for me.&lt;/p&gt;

&lt;p&gt;AI-assisted coding helped me move fast, but it also created a new problem: forgotten assumptions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The shortcuts.&lt;br&gt;
The warnings.&lt;br&gt;
The “we’ll fix that later” moments.&lt;br&gt;
The decisions that made sense in one session but got fuzzy in the next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3szcmf53l9r2rwsg7vqa.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3szcmf53l9r2rwsg7vqa.webp" alt="AI-assisted coding helped me move fast, but it also created a new problem: forgotten assumptions." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The internet is noticing this too
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“A lot of security is contextual.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.theverge.com/ai-artificial-intelligence/950844/vibe-coding-security-risks-apps" rel="noopener noreferrer"&gt;Read the full piece in The Verge&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;— Jack Cable, security researcher&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;“Speed without control is a liability, not an advantage.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ir.gitlab.com/news/news-details/2026/GitLab-Research-Reveals-Organizations-Are-Generating-AI-Code-Faster-Than-They-Can-Control-It/default.aspx" rel="noopener noreferrer"&gt;Read GitLab’s AI Accountability Report announcement&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;— Manav Khurana, GitLab&lt;/p&gt;




&lt;h2&gt;
  
  
  That was the surprising part for me.
&lt;/h2&gt;

&lt;p&gt;AI-assisted coding made it easier to build fast.&lt;/p&gt;

&lt;p&gt;But it also made it easier to forget why certain decisions were made in the first place.&lt;/p&gt;

&lt;p&gt;And when a quick prototype starts becoming real software, that forgotten context starts to matter.&lt;/p&gt;

&lt;p&gt;I wrote more about that here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://empirical.gauzza.com/blog/vibe-coded-app-memory-vibe-coded-app-got-serious-faster-than-i-expected/" rel="noopener noreferrer"&gt;Empirical - Your vibe-coded app got serious faster than expected&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Curious how others are handling this: where do you keep the “don’t forget this before this ships” stuff when working with AI coding tools?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>progr</category>
      <category>vibecoding</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Your AI Coding Agent Needs Scar Tissue</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Mon, 15 Jun 2026 11:38:48 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/your-ai-coding-agent-needs-scar-tissue-4g66</link>
      <guid>https://dev.to/gauzzastrip/your-ai-coding-agent-needs-scar-tissue-4g66</guid>
      <description>&lt;p&gt;The most expensive AI mistake is not when your coding agent gets something wrong.&lt;/p&gt;

&lt;p&gt;It is when it gets the same thing wrong again tomorrow. That is the part that starts to wear you down. Not because the model failed once.&lt;/p&gt;

&lt;p&gt;That happens.&lt;/p&gt;

&lt;p&gt;The frustrating part is when you already corrected it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You explained the repo pattern.&lt;br&gt;
You told it why that migration broke.&lt;br&gt;
You pointed out the weird CI issue.&lt;br&gt;
You showed it the dependency that already failed.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;blockquote&gt;
&lt;p&gt;The agent fixed the task.&lt;br&gt;
The session ended.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then two days later, a new session suggests the same bad idea like none of it ever happened.&lt;/p&gt;

&lt;p&gt;That is the problem I have been thinking about lately. AI coding agents do not just need bigger context windows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They need scar tissue.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcbh7lw958g2lynu2d8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcbh7lw958g2lynu2d8w.png" alt="Your agent needs scar tissue" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I mean by scar tissue
&lt;/h2&gt;

&lt;p&gt;Scar tissue is remembered failure.&lt;br&gt;
It is not generic documentation.&lt;br&gt;
It is not a massive chat transcript.&lt;/p&gt;

&lt;p&gt;It is not another bloated &lt;code&gt;AGENTS.md&lt;/code&gt; file that gets stuffed into every prompt whether it is relevant or not.&lt;/p&gt;

&lt;p&gt;Scar tissue is the durable memory of what went wrong, why it went wrong, and what should not be repeated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2usog32u6j56mghzqq1y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2usog32u6j56mghzqq1y.png" alt="Scar tissue equals remembered failure" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Do not use this migration pattern in this repo.
It passes locally but breaks staging because of X.

Do not replace this middleware.
It looks redundant, but it protects the admin route.

Do not use this package again.
We tried it and it failed on Vercel because of native dependencies.

The Stripe webhook handler must preserve the raw body.
Normal JSON parsing breaks signature verification.

This test failure usually means the mock user is missing a role.
Do not rewrite the auth flow first.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That kind of knowledge is incredibly valuable.&lt;/p&gt;

&lt;p&gt;But most of the time, it disappears.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It lives in someone’s head.&lt;br&gt;
Or buried in Slack.&lt;br&gt;
Or trapped in yesterday’s AI session.&lt;br&gt;
Or hidden somewhere in a pull request comment nobody will ever read again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Context is not the same thing as learning
&lt;/h2&gt;

&lt;p&gt;A lot of AI coding workflows still treat context like the solution to everything.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Add more files.&lt;br&gt;
Add more instructions.&lt;br&gt;
Add more docs.&lt;br&gt;
Add more examples.&lt;br&gt;
Add more project history.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Eventually the prompt becomes a junk drawer. The agent has more text, but not necessarily more judgment. That is the distinction I care about. Context tells the agent what is nearby. Scar tissue tells the agent what it learned the hard way.&lt;/p&gt;

&lt;p&gt;Those are not the same thing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0sudibbu23j066x5a135.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0sudibbu23j066x5a135.png" alt="Context vs scar tissue" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The old pattern
&lt;/h2&gt;

&lt;p&gt;This is what a lot of AI coding sessions look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Session 1:
Agent suggests bad approach.
Developer corrects it.
Agent fixes the issue.
Session ends.

Session 2:
Agent has no memory of the correction.
Agent suggests the same bad approach.
Developer loses trust.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model did not technically “forget.”&lt;/p&gt;

&lt;p&gt;It never had durable memory in the first place. It only had temporary working space. Once the session ended, the lesson vanished.&lt;/p&gt;

&lt;h2&gt;
  
  
  The better pattern
&lt;/h2&gt;

&lt;p&gt;This is the pattern I want instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Session 1:
Agent suggests bad approach.
Developer corrects it.
The lesson gets stored as a durable project memory.

Session 2:
Agent starts a similar task.
The relevant scar gets retrieved.
Agent avoids the old mistake.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a different kind of AI coding workflow.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not just faster.&lt;br&gt;
Not just cheaper.&lt;br&gt;
Not just fewer tokens.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;More experienced.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why this matters more as agents get better
&lt;/h2&gt;

&lt;p&gt;The better coding agents get, the more this matters. When agents only wrote tiny snippets, forgetting was annoying. Now they can touch real architecture.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;They can refactor files.&lt;br&gt;
They can generate migrations.&lt;br&gt;
They can write tests.&lt;br&gt;
They can modify production-adjacent code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That makes repeated mistakes more expensive.&lt;/p&gt;

&lt;p&gt;If an AI agent is going to operate inside a real codebase, it needs more than instructions.&lt;/p&gt;

&lt;p&gt;It needs a memory of consequences. It needs to remember the things that hurt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Empirical fits
&lt;/h2&gt;

&lt;p&gt;This is one of the use cases I am exploring with Empirical.&lt;/p&gt;

&lt;p&gt;Empirical is a memory layer for AI tools.&lt;/p&gt;

&lt;p&gt;Instead of stuffing every lesson, decision, preference, and warning into a giant prompt, Empirical lets an agent retrieve the specific memory it needs when it needs it.&lt;/p&gt;

&lt;p&gt;For coding agents, that means the memory layer can hold things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Project decisions
Repo conventions
Failed approaches
Bug history
CI/CD quirks
Security gotchas
Dependency warnings
“Never do that again” lessons
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the stuff that usually gets lost between sessions.&lt;/p&gt;

&lt;p&gt;And it is also the stuff that makes a developer more useful over time.&lt;/p&gt;

&lt;p&gt;Why should an AI coding agent be any different?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fttaywegdzfoqsfwkuwcg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fttaywegdzfoqsfwkuwcg.png" alt="Empirical scar tissue workflow" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The future is not just smarter agents
&lt;/h2&gt;

&lt;p&gt;I do not think the next leap in coding agents is &lt;strong&gt;only&lt;/strong&gt; going to come from smarter models.&lt;/p&gt;

&lt;p&gt;Some of it will come from better memory.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not memory as a transcript dump.&lt;br&gt;
Not memory as “load the whole repo into context.”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;blockquote&gt;
&lt;p&gt;Memory as accumulated judgment.&lt;br&gt;
Memory as operational history.&lt;br&gt;
Memory as scar tissue.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because the real win is not just an agent that can write code. The real win is an agent that remembers why the last fix failed.&lt;/p&gt;

&lt;p&gt;I wrote more about the idea here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://empirical.gauzza.com/blog/ai-coding-agent-scar-tissue-your-ai-coding-agent-needs-scar-tissue/" rel="noopener noreferrer"&gt;https://empirical.gauzza.com/blog/ai-coding-agent-scar-tissue-your-ai-coding-agent-needs-scar-tissue/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>Maybe Bigger Context Windows Aren't the Answer</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Fri, 05 Jun 2026 13:59:12 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/maybe-bigger-context-windows-arent-the-answer-42ef</link>
      <guid>https://dev.to/gauzzastrip/maybe-bigger-context-windows-arent-the-answer-42ef</guid>
      <description>&lt;p&gt;When humans need information, we don't load everything we know into our heads at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We ask questions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We look things up.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We pull in details when they become relevant.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AI systems should probably work the same way.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hpgazm7vdxzrsk45xeh.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hpgazm7vdxzrsk45xeh.gif" alt="Users angry at coding agent window sizes and running out of tokens" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Recently I updated &lt;a href="https://empirical.gauzza.com/docs/install" rel="noopener noreferrer"&gt;Empirical's CLI documentation&lt;/a&gt; system.&lt;/p&gt;

&lt;p&gt;Before, I could have dumped the entire command reference into every agent session and called it a day.&lt;/p&gt;

&lt;p&gt;Instead, the installer adds a tiny instruction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;empirical doc
empirical doc &amp;lt;topic&amp;gt;
empirical doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;The agent doesn't get the entire manual.&lt;/p&gt;

&lt;p&gt;It gets a pointer to the manual.&lt;/p&gt;

&lt;p&gt;When it needs help with memory commands, it runs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;empirical doc memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When it needs installation help:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;empirical doc install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When it needs to discover what's available:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;empirical doc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The detailed documentation is loaded only when needed.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Less context. Better timing.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;What's interesting is that this is becoming a pattern throughout Empirical.&lt;/p&gt;

&lt;p&gt;The CLI uses on-demand documentation.&lt;/p&gt;

&lt;p&gt;Memory retrieval works the same way.&lt;/p&gt;

&lt;p&gt;Conversation context works the same way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae82u00ycpscwlaahtx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae82u00ycpscwlaahtx4.png" alt="Bigger context = Stress, Better Context = Efficiency" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of shoving everything into the prompt and hoping the model finds what matters, Empirical tries to surface only the information relevant to the current task.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I've started thinking of this as progressive disclosure for AI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Not bigger context.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Better context.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The future may not belong to systems that remember everything. It may belong to systems that know what not to load until it's actually needed.&lt;/p&gt;

&lt;p&gt;This idea has become one of the guiding principles behind Empirical.&lt;/p&gt;

&lt;p&gt;We're exploring what happens when AI systems retrieve information as needed instead of carrying everything around all the time.&lt;/p&gt;

&lt;p&gt;If that sounds interesting, I'd love for you to take a look at Empirical and share your feedback:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://empirical.gauzza.com" rel="noopener noreferrer"&gt;https://empirical.gauzza.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Seen this ChatGPT warning before? Here’s a fix.</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Thu, 04 Jun 2026 13:27:08 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/seen-this-chatgpt-warning-before-heres-a-fix-foa</link>
      <guid>https://dev.to/gauzzastrip/seen-this-chatgpt-warning-before-heres-a-fix-foa</guid>
      <description>&lt;p&gt;I kept seeing this little warning under ChatGPT’s message box:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ChatGPT gets less accurate and may forget details in long conversations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a while, I ignored it.&lt;/p&gt;

&lt;p&gt;Then I realized I was keeping months of notes in one long ChatGPT thread.&lt;/p&gt;

&lt;p&gt;Dates. Numbers. Observations. Things I actually cared about.&lt;/p&gt;

&lt;p&gt;And that warning started to feel a lot less theoretical.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Long chats feel like memory.&lt;/p&gt;

&lt;p&gt;You can scroll back. You can ask for summaries. The thread is still there.&lt;/p&gt;

&lt;p&gt;But a chat is not a database.&lt;/p&gt;

&lt;p&gt;Eventually, I started noticing small details drift. A date would be off. A number would show up that I did not remember entering. The answer sounded confident, but parts of it were not from my actual notes.&lt;/p&gt;

&lt;p&gt;That is the scary part.&lt;/p&gt;

&lt;p&gt;Not that ChatGPT forgot.&lt;/p&gt;

&lt;p&gt;That it filled in the blanks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I changed
&lt;/h2&gt;

&lt;p&gt;I stopped keeping the important stuff only inside the chat.&lt;/p&gt;

&lt;p&gt;I connected Empirical and asked ChatGPT to save the tracking data as separate memories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdrkqvg3ctnpefepyxt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdrkqvg3ctnpefepyxt4.png" alt="Empirical memory stored confirmation in ChatGPT" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That changed the setup.&lt;/p&gt;

&lt;p&gt;The record no longer lived inside one conversation.&lt;/p&gt;

&lt;p&gt;The conversation became one way to reach the record.&lt;/p&gt;

&lt;p&gt;So if I start a new ChatGPT thread later, it can pull the saved context back from Empirical&lt;br&gt;
instead of relying on one long chat to remember everything.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://chatgpt.com/apps/empirical/asdk_app_699db5f04b788191a4f9ee070d3e5d67" rel="noopener noreferrer"&gt;Add Empirical to ChatGPT&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it helps
&lt;/h2&gt;

&lt;p&gt;I asked ChatGPT directly whether saving the data into Empirical actually helps with the long-chat forgetting problem.&lt;/p&gt;

&lt;p&gt;Here’s the part that mattered:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp9gfltiei6bbcbwjipx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp9gfltiei6bbcbwjipx.png" alt="ChatGPT explaining that Empirical mitigates long conversation memory loss" width="800" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even if a future conversation does not contain the whole old chat, the saved context can still be retrieved from Empirical.&lt;/p&gt;

&lt;p&gt;That is the fix.&lt;/p&gt;

&lt;p&gt;The chat can forget.&lt;/p&gt;

&lt;p&gt;The record does not have to disappear with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;If you use ChatGPT for something important, do not let the only copy live inside one thread.&lt;/p&gt;

&lt;p&gt;Use the chat for conversation.&lt;/p&gt;

&lt;p&gt;Use memory for the stuff you actually want to keep.&lt;/p&gt;

&lt;p&gt;For me, that means Empirical now holds the record, and ChatGPT, Claude, or Codex can pull from it when needed.&lt;/p&gt;

&lt;p&gt;If you use coding agents too:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://empirical.gauzza.com/docs/install" rel="noopener noreferrer"&gt;Install Empirical for coding agents&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Original post:&lt;br&gt;
&lt;a href="https://empirical.gauzza.com/blog/chatgpt-long-conversation-memory-chatgpt-forgets-details-in-long-conversations/" rel="noopener noreferrer"&gt;Seen this ChatGPT warning before? Here’s a fix.&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Last night at 11:30 pm I screwed up. It led to an unexpected win.</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Fri, 29 May 2026 13:42:53 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/last-night-at-1130-pm-i-screwed-up-it-led-to-an-unexpected-win-3lf</link>
      <guid>https://dev.to/gauzzastrip/last-night-at-1130-pm-i-screwed-up-it-led-to-an-unexpected-win-3lf</guid>
      <description>&lt;p&gt;Last night at 11:30 pm I screwed up. It led to an unexpected win.&lt;/p&gt;

&lt;p&gt;I'd been heads-down in Empirical on something else for a while. Hadn't touched the public site in days. When I finally went to ship, I pushed and watched two weeks of UX work vanish. The site reverted to its pre-redesign state right in front of me.&lt;/p&gt;

&lt;p&gt;The new pages were gone. Wasn't caching. Not in main. Not in any branch I could reach. I couldn’t find it anywhere I could realistically untangle at midnight.&lt;/p&gt;

&lt;p&gt;So I asked Empirical what it remembered.&lt;/p&gt;

&lt;p&gt;It pointed me at an unreachable WIP commit floating in the void after the cleanup. One git cherry-pick later, the redesign was back. Four minutes of recovery. A lot longer spent panicking before I thought to ask.&lt;/p&gt;

&lt;p&gt;Unexpected win for Empirical. The use case I never would have pitched, never would have asked for, and absolutely needed at 11:34 on a Tuesday. The hero I didn't want, but the one I needed.&lt;/p&gt;

&lt;p&gt;Full write-up👇&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://empirical.gauzza.com/blog/empirical-ui-recovery-memory-recall-lost-ui-rework-recovered-with-empirical-memory/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fempirical.gauzza.com%2Fimages%2Fblog%2Fui-recovery%2Fhero.webp" height="450" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://empirical.gauzza.com/blog/empirical-ui-recovery-memory-recall-lost-ui-rework-recovered-with-empirical-memory/" rel="noopener noreferrer" class="c-link"&gt;
            Empirical saved my ass. | Empirical Blog
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            First-person incident report on recovering lost frontend work by querying Empirical memory, locating an unreachable WIP commit, and restoring the missing public-site redesign. Empirical saved my ass.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fempirical.gauzza.com%2Flogo.png" width="800" height="800"&gt;
          empirical.gauzza.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;What's the dumbest thing you've ever done to your own repo at midnight?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>buildinpublic</category>
      <category>git</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Cut Coding Agent Context Usage by 22–45% by Killing Context Bloat</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Tue, 12 May 2026 19:02:23 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/i-cut-coding-agent-context-usage-by-22-45-by-killing-context-bloat-2g3k</link>
      <guid>https://dev.to/gauzzastrip/i-cut-coding-agent-context-usage-by-22-45-by-killing-context-bloat-2g3k</guid>
      <description>&lt;h2&gt;
  
  
  A lot of AI coding workflows degrade the exact same way.
&lt;/h2&gt;

&lt;p&gt;At first, everything feels incredible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your coding agent:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;understands the project&lt;/li&gt;
&lt;li&gt;moves insanely fast&lt;/li&gt;
&lt;li&gt;eliminates boilerplate&lt;/li&gt;
&lt;li&gt;compounds your momentum&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then a few weeks later:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; turns into a novel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Prompts get bloated.&lt;/p&gt;

&lt;p&gt;The model starts missing obvious things.&lt;/p&gt;

&lt;p&gt;Responses become inconsistent.&lt;/p&gt;

&lt;p&gt;Token usage quietly becomes absurd.&lt;/p&gt;

&lt;p&gt;I kept running into this while building &lt;a href="https://empirical.gauzza.com" rel="noopener noreferrer"&gt;Empirical&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Eventually I realized the problem wasn’t:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The model needs more context.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The problem was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  “The model is carrying too much irrelevant context at once.”
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;That distinction changed everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hidden Failure Mode of Coding Agents
&lt;/h2&gt;

&lt;p&gt;Most teams solve AI memory like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just add it to the prompt.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And over time the context fills up with:&lt;/p&gt;

&lt;h3&gt;
  
  
  Permanent Context Soup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;architecture decisions&lt;/li&gt;
&lt;li&gt;coding standards&lt;/li&gt;
&lt;li&gt;deployment notes&lt;/li&gt;
&lt;li&gt;UI preferences&lt;/li&gt;
&lt;li&gt;old implementation details&lt;/li&gt;
&lt;li&gt;temporary fixes&lt;/li&gt;
&lt;li&gt;abandoned experiments&lt;/li&gt;
&lt;li&gt;half-finished thoughts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventually every request drags all of it around forever.&lt;/p&gt;

&lt;p&gt;Even when most of it has absolutely nothing to do with the current task.&lt;/p&gt;

&lt;p&gt;That creates a brutal signal-to-noise problem.&lt;/p&gt;

&lt;p&gt;The model starts treating temporary junk and critical architecture decisions with equal importance.&lt;/p&gt;

&lt;p&gt;You can actually &lt;em&gt;feel&lt;/em&gt; the degradation happen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Symptoms:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;the agent gets fuzzier&lt;/li&gt;
&lt;li&gt;architecture drift increases&lt;/li&gt;
&lt;li&gt;outputs become inconsistent&lt;/li&gt;
&lt;li&gt;you spend more time correcting than building&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Bigger Context Windows Aren’t the Real Solution
&lt;/h2&gt;

&lt;p&gt;I think the industry is optimizing the wrong thing right now.&lt;/p&gt;

&lt;p&gt;Everyone keeps pushing toward:&lt;/p&gt;

&lt;h2&gt;
  
  
  Bigger Everything
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;million-token windows&lt;/li&gt;
&lt;li&gt;infinite memory&lt;/li&gt;
&lt;li&gt;larger context sizes&lt;/li&gt;
&lt;li&gt;stuffing more into prompts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But humans don’t work like that either.&lt;/p&gt;

&lt;p&gt;Good engineering teams don’t bring every document into every meeting.&lt;/p&gt;

&lt;p&gt;Most information is situational.&lt;/p&gt;

&lt;p&gt;Most memory should stay dormant until it becomes relevant.&lt;/p&gt;

&lt;p&gt;That was the shift for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not:
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“How do I fit more into context?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  But:
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“How do I load only what matters right now?”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What Worked Better
&lt;/h2&gt;

&lt;p&gt;I started treating AI memory more like &lt;strong&gt;layered working memory&lt;/strong&gt; instead of permanent prompt stuffing.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Lean Persistent Context
&lt;/h3&gt;

&lt;p&gt;Keep permanent instructions &lt;em&gt;extremely small&lt;/em&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Only things like:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;architecture principles&lt;/li&gt;
&lt;li&gt;coding philosophy&lt;/li&gt;
&lt;li&gt;project identity&lt;/li&gt;
&lt;li&gt;non-negotiables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That layer should stay lean on purpose.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Retrieved Context
&lt;/h3&gt;

&lt;p&gt;Pull implementation knowledge dynamically based on:&lt;/p&gt;

&lt;h4&gt;
  
  
  Relevance Signals
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;semantic similarity&lt;/li&gt;
&lt;li&gt;current task&lt;/li&gt;
&lt;li&gt;related code paths&lt;/li&gt;
&lt;li&gt;previous work in the same area&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only relevant context enters the active prompt.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Session Context
&lt;/h3&gt;

&lt;p&gt;Use temporary working memory for:&lt;/p&gt;

&lt;h4&gt;
  
  
  Active Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;bugs&lt;/li&gt;
&lt;li&gt;in-progress features&lt;/li&gt;
&lt;li&gt;short-lived implementation decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then let it expire naturally instead of polluting long-term memory forever.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Changed
&lt;/h2&gt;

&lt;p&gt;The biggest surprise wasn’t even the token savings.&lt;/p&gt;

&lt;p&gt;It was how much sharper the agents became once the noise disappeared.&lt;/p&gt;

&lt;h2&gt;
  
  
  After reducing context bloat:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;responses became more focused&lt;/li&gt;
&lt;li&gt;architecture stayed more consistent&lt;/li&gt;
&lt;li&gt;prompt babysitting dropped significantly&lt;/li&gt;
&lt;li&gt;outputs drifted less between sessions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The token reduction was just the measurable side effect.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workflow&lt;/th&gt;
&lt;th&gt;Context Reduction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Smaller focused tasks&lt;/td&gt;
&lt;td&gt;~22%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Larger iterative workflows&lt;/td&gt;
&lt;td&gt;Up to ~45%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That compounds &lt;em&gt;fast&lt;/em&gt; once agents start looping.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bigger Realization
&lt;/h2&gt;

&lt;p&gt;I think a lot of AI tooling is accidentally recreating bad human organizational habits.&lt;/p&gt;

&lt;p&gt;We already know what happens when people dump everything into:&lt;/p&gt;

&lt;h3&gt;
  
  
  Organizational Chaos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;giant docs&lt;/li&gt;
&lt;li&gt;giant meetings&lt;/li&gt;
&lt;li&gt;giant Slack threads&lt;/li&gt;
&lt;li&gt;giant Notion pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Clarity collapses.&lt;/p&gt;

&lt;p&gt;Coding agents seem to behave better when memory works more like human working memory:&lt;/p&gt;

&lt;h2&gt;
  
  
  Better Memory Pattern
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;small active focus&lt;/li&gt;
&lt;li&gt;relevant recall&lt;/li&gt;
&lt;li&gt;long-term memory separated from immediate attention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That mattered far more than raw context size.&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Breakdown
&lt;/h2&gt;

&lt;p&gt;I wrote the complete breakdown here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retrieval architecture&lt;/li&gt;
&lt;li&gt;layered memory strategy&lt;/li&gt;
&lt;li&gt;implementation lessons&lt;/li&gt;
&lt;li&gt;where the 22–45% savings actually came from&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;→ &lt;a href="https://empirical.gauzza.com/blog/coding-agent-context-savings-coding-agent-context-savings-22-45-percent/" rel="noopener noreferrer"&gt;Reducing Coding Agent Context Usage by 22–45% with Retrieval-Based Memory Systems&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>I’ve been using Empirical as my memory layer across AI tools.</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Fri, 08 May 2026 16:36:24 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/ive-been-using-empirical-as-my-memory-layer-across-ai-tools-lji</link>
      <guid>https://dev.to/gauzzastrip/ive-been-using-empirical-as-my-memory-layer-across-ai-tools-lji</guid>
      <description>&lt;p&gt;ChatGPT memory helps.&lt;br&gt;
Local MD files help.&lt;/p&gt;

&lt;p&gt;But neither travels cleanly across everything I use, and packing too much into MD files eats context and tokens.&lt;/p&gt;

&lt;p&gt;With Empirical, I keep my AGENTS.md lean and let Codex pull context dynamically when it actually needs it. &lt;/p&gt;

&lt;p&gt;I can open ChatGPT on my phone, connected to Empirical, and it pulls the same memory context and writing tone I use in Codex or any other connected AI tool. &lt;br&gt;
That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;less repeated setup&lt;/li&gt;
&lt;li&gt;cleaner, cheaper prompts&lt;/li&gt;
&lt;li&gt;more consistent output across sessions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is just the tip of the iceberg.&lt;/p&gt;

&lt;p&gt;I wrote up a Codex example here:&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://empirical.gauzza.com/blog/codex-session-tone-voice-how-i-used-codex-empirical-to-lock-in-my-writing-voice/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fempirical.gauzza.com%2Fimages%2Fblog%2Fcodex-session-tone-voice%2Fhero.gif" height="450" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://empirical.gauzza.com/blog/codex-session-tone-voice-how-i-used-codex-empirical-to-lock-in-my-writing-voice/" rel="noopener noreferrer" class="c-link"&gt;
            How I Used Codex + Empirical to Lock In My Writing Voice | Empirical Blog
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            April 30 note on using Empirical with Codex to define a repeatable writing voice through guided questions and live revision.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fempirical.gauzza.com%2Flogo.png" width="800" height="800"&gt;
          empirical.gauzza.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>I Needed Memory That Survives Context Windows. Memory That Moves Across Environments</title>
      <dc:creator>Sam</dc:creator>
      <pubDate>Thu, 09 Apr 2026 13:05:00 +0000</pubDate>
      <link>https://dev.to/gauzzastrip/i-needed-memory-that-survives-context-windows-memory-that-moves-across-environments-p4</link>
      <guid>https://dev.to/gauzzastrip/i-needed-memory-that-survives-context-windows-memory-that-moves-across-environments-p4</guid>
      <description>&lt;p&gt;I kept running into the same thing with AI tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;great context disappears&lt;/li&gt;
&lt;li&gt;I repeat myself constantly&lt;/li&gt;
&lt;li&gt;Every tool remembers different stuff (or nothing)&lt;/li&gt;
&lt;li&gt;Moving between tools my context doesn't follow me&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbkc8zluat4bhk8tijro.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbkc8zluat4bhk8tijro.jpg" alt="Image description=" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  So I built &lt;a href="https://empirical.gauzza.com" rel="noopener noreferrer"&gt;Empirical&lt;/a&gt;.
&lt;/h2&gt;

&lt;p&gt;It started in a pretty common place: I was iterating on a Philly-style hoagie roll recipe.&lt;/p&gt;

&lt;p&gt;I wanted the AI to remember what I liked, what failed, and what I wanted to try next without re-explaining it every time.&lt;/p&gt;

&lt;p&gt;I originally thought Empirical would be its own chatbot. I started down that path, then realized I was solving the wrong problem. Reinventing the wheel.&lt;/p&gt;

&lt;p&gt;I didn’t need another chat interface.&lt;br&gt;
I needed a memory layer I could use everywhere.&lt;/p&gt;

&lt;p&gt;So I changed lanes and focused on MCP tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Now I use Empirical memory across:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Coding CLI's&lt;/li&gt;
&lt;li&gt;ChatGPT&lt;/li&gt;
&lt;li&gt;Claude Web&lt;/li&gt;
&lt;li&gt;Claw Agents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same memory, different interfaces. Now if ChatGPT is no longer _cool _ or Claude leaks it's entire codebase, I can switch to the latest hot thing and all my context and memories move with me.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real examples that made this click for me
&lt;/h3&gt;

&lt;p&gt;I can take a pic of a bourbon, say “I like this,” and that preference is saved as persistent memory.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02e6vz9di2q8msvvqqls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02e6vz9di2q8msvvqqls.png" alt="Image description=" width="699" height="644"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I can send health data and query/chat over it later to help spot patterns.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiz9jaknlbmw2nsqucz78.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiz9jaknlbmw2nsqucz78.png" alt="Image description=" width="698" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I can write a PRD while going on a walk with ChatGPT, then pull it back up in a CLI session at my desk.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s next
&lt;/h3&gt;

&lt;p&gt;I’m now working on connecting Empirical to more sources so memory reflects more of my actual life/workflow.&lt;/p&gt;

&lt;p&gt;Current focus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better pattern recognition over time&lt;/li&gt;
&lt;li&gt;stronger multimodal memory (text + image + structured data)&lt;/li&gt;
&lt;li&gt;cleaner memory workflows for agents&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  If this clicks with you, I'd love for you to check it out and give it a try:
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://empirical.gauzza.com" rel="noopener noreferrer"&gt;Empirical&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
