<?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: Taylor Scott</title>
    <description>The latest articles on DEV Community by Taylor Scott (@tjqscott).</description>
    <link>https://dev.to/tjqscott</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%2F3978017%2F77388e2e-d583-42dc-9ad5-0018d3088805.jpg</url>
      <title>DEV Community: Taylor Scott</title>
      <link>https://dev.to/tjqscott</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tjqscott"/>
    <language>en</language>
    <item>
      <title>I kept losing AI context every time I switched chats. Built a one-file fix.</title>
      <dc:creator>Taylor Scott</dc:creator>
      <pubDate>Wed, 10 Jun 2026 16:06:33 +0000</pubDate>
      <link>https://dev.to/tjqscott/i-kept-losing-ai-context-every-time-i-switched-chats-built-a-one-file-fix-4ha2</link>
      <guid>https://dev.to/tjqscott/i-kept-losing-ai-context-every-time-i-switched-chats-built-a-one-file-fix-4ha2</guid>
      <description>&lt;p&gt;API credits aren't cheap. So you do what any reasonable developer does. You switch models when Claude disappoints you, start a fresh chat when the context fills up, close the tab and come back tomorrow.&lt;/p&gt;

&lt;p&gt;And every single time, you spend the first ten minutes re-explaining your project from scratch. The architecture. The decisions you already made. The bug you fixed two sessions ago that the model just suggested reintroducing.&lt;/p&gt;

&lt;p&gt;I got tired of it. So I built Dory.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;Dory is a one-file convention. You drop a &lt;code&gt;CHANGELOG.md&lt;/code&gt; in your repo root and write plain lines as you work. What you did, in your own words. No schema to memorise, no tooling to install.&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="gh"&gt;# Project Changelog&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Append-only. One line per entry. No headings or blank lines. --&amp;gt;&lt;/span&gt;

Refactored auth to JWT after session logic started breaking under multi-tenant load
Scaffolded the database schema
Fixed a rendering bug in the tree component
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At the start of a new session, drop the file into context. The model reads it and knows where you are. That's genuinely the whole thing.&lt;/p&gt;

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

&lt;p&gt;LLMs are good at reading plain text and orienting themselves from it. You don't need structured JSON or a special format. A flat list of what happened, in order, is enough.&lt;/p&gt;

&lt;p&gt;The header comment does the instructional work:&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="c"&gt;&amp;lt;!-- Append-only. One line per entry. No headings or blank lines. --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most models understand this on sight. Tell the model to update the changelog at the end of a session and it appends entries without needing further prompting.&lt;/p&gt;

&lt;h2&gt;
  
  
  The workflow
&lt;/h2&gt;

&lt;p&gt;Starting a session: drop &lt;code&gt;CHANGELOG.md&lt;/code&gt; into context.&lt;/p&gt;

&lt;p&gt;Ending a session, just ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Update the changelog.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Switching models or coming back after a gap:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Read the changelog and tell me where we are.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're on Claude, there's a &lt;code&gt;SKILL.md&lt;/code&gt; in the repo you can paste into your project instructions to make this permanent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why not just use git history?
&lt;/h2&gt;

&lt;p&gt;Git history tracks code. Dory tracks decisions. A commit message tells you what changed. A changelog entry tells you why you went that direction and what state things were in when you left. They sit alongside each other fine.&lt;/p&gt;

&lt;p&gt;If your project already has a &lt;code&gt;CHANGELOG.md&lt;/code&gt; for user-facing releases, just name this one &lt;code&gt;AI_CONTEXT.md&lt;/code&gt; or &lt;code&gt;LLMLOG.md&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  That's it
&lt;/h2&gt;

&lt;p&gt;No dependencies. No setup beyond creating a file. Works with Claude, GPT, Gemini, anything that reads text.&lt;/p&gt;

&lt;p&gt;The repo has a &lt;code&gt;SKILL.md&lt;/code&gt;, three real-world example changelogs from different project types, and a placeholder to copy straight into your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tjqscott/dory" rel="noopener noreferrer"&gt;github.com/tjqscott/dory&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you use it, open a PR with your own example. The more project types in there, the more useful it becomes.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>gemini</category>
      <category>vibecoding</category>
    </item>
  </channel>
</rss>
