<?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: Serhii Kravchenko</title>
    <description>The latest articles on DEV Community by Serhii Kravchenko (@awrshift).</description>
    <link>https://dev.to/awrshift</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%2F3844993%2F73ae5446-5788-491f-ae51-f537a61eeda7.jpeg</url>
      <title>DEV Community: Serhii Kravchenko</title>
      <link>https://dev.to/awrshift</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/awrshift"/>
    <language>en</language>
    <item>
      <title>I Over-Engineered Karpathy's Agent Memory. Here's What Actually Works.</title>
      <dc:creator>Serhii Kravchenko</dc:creator>
      <pubDate>Fri, 17 Apr 2026 10:55:11 +0000</pubDate>
      <link>https://dev.to/awrshift/i-over-engineered-karpathys-agent-memory-heres-what-actually-works-4imk</link>
      <guid>https://dev.to/awrshift/i-over-engineered-karpathys-agent-memory-heres-what-actually-works-4imk</guid>
      <description>&lt;p&gt;Andrej Karpathy sketched out a beautiful idea for AI agent memory. Conversations flow into daily logs. Daily logs get compiled into a wiki. The wiki gets injected back into the next session. Your agent builds its own knowledge base over time.&lt;/p&gt;

&lt;p&gt;53K stars on GitHub. I read the code, loved the concept, and built the whole thing into my Claude Code setup.&lt;/p&gt;

&lt;p&gt;My version has 8 stars. Size doesn't matter... in this case.&lt;/p&gt;

&lt;p&gt;Because three weeks later, half my sessions were losing context and I had no idea why.&lt;/p&gt;

&lt;h2&gt;
  
  
  What went wrong
&lt;/h2&gt;

&lt;p&gt;The original architecture assumes you have full control over your AI pipeline. Server-side execution. Background processes that always finish cleanly. Programmatic access to transcripts.&lt;/p&gt;

&lt;p&gt;Claude Code runs on your laptop. You close the lid, the background process dies. You hit a long session, the transcript parser chokes. You forget to check the logs, and the compile pipeline fails silently for weeks.&lt;/p&gt;

&lt;p&gt;Here's what my setup looked like after I copied the pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# session-end.sh (the old version)&lt;/span&gt;
&lt;span class="c"&gt;# Extracts last 100 turns from transcript&lt;/span&gt;
&lt;span class="c"&gt;# Spawns flush.py in background&lt;/span&gt;
&lt;span class="c"&gt;# flush.py calls claude -p Opus to summarize&lt;/span&gt;
&lt;span class="c"&gt;# flush.py checks if it's after 6pm&lt;/span&gt;
&lt;span class="c"&gt;# If yes, spawns compile.py (also background)&lt;/span&gt;
&lt;span class="c"&gt;# compile.py calls claude -p Sonnet to build wiki articles&lt;/span&gt;
&lt;span class="c"&gt;# CLAUDE_INVOKED_BY guard prevents infinite recursion&lt;/span&gt;
&lt;span class="c"&gt;# SHA-256 hash comparison skips unchanged logs&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;That's a lot of moving parts for "remember what I did today."&lt;/p&gt;

&lt;p&gt;I tracked the results over three weeks across 7 active projects. The auto-flush hook fired on every session end. About half the time, the background process either timed out, failed to parse the transcript, or exited silently with no output. The daily log file was either empty or never created.&lt;/p&gt;

&lt;p&gt;The after-6pm auto-compile? It literally never triggered once in production. The hash check worked fine. The subprocess just never got there.&lt;/p&gt;

&lt;p&gt;I was running what looked like a sophisticated knowledge pipeline. In reality, every other session vanished into nothing.&lt;/p&gt;
&lt;h2&gt;
  
  
  Three fixes that actually worked
&lt;/h2&gt;

&lt;p&gt;I didn't scrap the architecture. The two-layer memory concept is genuinely good. Hot cache for quick patterns, wiki for deep knowledge, daily logs as the raw source. That part stays.&lt;/p&gt;

&lt;p&gt;What I killed was the automation layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix 1: One manual command instead of background automation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I replaced the entire auto-flush pipeline with a single skill called &lt;code&gt;/close-day&lt;/code&gt;. You type it when you're done working. That's it.&lt;/p&gt;

&lt;p&gt;The difference is simple. When the background process ran, it had no project context. It was parsing raw transcript JSON, trying to figure out what mattered. When you call &lt;code&gt;/close-day&lt;/code&gt; inside your session, the agent still has the full picture. It knows what you worked on, what decisions you made, what's pending for tomorrow.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# session-end.sh (the new version)&lt;/span&gt;
&lt;span class="c"&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-euo&lt;/span&gt; pipefail
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_INVOKED_BY&lt;/span&gt;&lt;span class="k"&gt;:-}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then &lt;/span&gt;&lt;span class="nb"&gt;exit &lt;/span&gt;0&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;fi
&lt;/span&gt;&lt;span class="nv"&gt;PROJECT_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_PROJECT_DIR&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$PROJECT_DIR&lt;/span&gt;&lt;span class="s2"&gt;/.claude/state"&lt;/span&gt;
&lt;span class="nv"&gt;HOOK_INPUT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;SESSION_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOOK_INPUT&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"import sys,json; print(json.load(sys.stdin).get('session_id','unknown'))"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"unknown"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; &lt;span class="s1"&gt;'+%Y-%m-%d %H:%M:%S'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; SessionEnd: &lt;/span&gt;&lt;span class="nv"&gt;$SESSION_ID&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$PROJECT_DIR&lt;/span&gt;&lt;span class="s2"&gt;/.claude/state/flush.log"&lt;/span&gt;
&lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;30 lines. Logs a timestamp. Done. The actual knowledge capture happens when you deliberately ask for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix 2: Date tags on everything&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every entry in MEMORY.md now carries a &lt;code&gt;[YYYY-MM-DD]&lt;/code&gt; tag. Every update to the project backlog, every note in the session handoff file. When &lt;code&gt;/close-day&lt;/code&gt; runs, the agent greps for today's date across all structured files and knows exactly what changed.&lt;/p&gt;

&lt;p&gt;This matters when you have long days. I sometimes run 10 to 15 sessions before calling it. The old system tried to parse each session transcript separately and merge them. The new system doesn't care about individual sessions. It looks at the end state of every file and asks: what has today's date on it?&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;## Proven Patterns&lt;/span&gt;

| Pattern | Evidence |
|---------|----------|
| Flush deprecated, /close-day replaces [2026-04-17] | ~50% failure rate |
| README sells simplicity [2026-04-17] | Marketer ICP test |
| NSP self-cleaning rule [2026-04-17] | 455 lines trimmed to 161 |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;No transcript parsing. No background merge logic. Just dates and grep.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix 3: Move the knowledge base out of .claude/&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This one was embarrassing. The compile pipeline uses &lt;code&gt;claude -p&lt;/code&gt; to transform daily logs into structured wiki articles. For weeks, it reported success but wrote nothing. Zero wiki articles created.&lt;/p&gt;

&lt;p&gt;The problem: Claude Code treats everything under &lt;code&gt;.claude/&lt;/code&gt; as a sensitive directory. Write operations get silently blocked or require special permissions that background subprocesses don't have.&lt;/p&gt;

&lt;p&gt;Moving &lt;code&gt;knowledge/&lt;/code&gt; from &lt;code&gt;.claude/memory/knowledge/&lt;/code&gt; to the project root fixed it instantly. One directory move.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Before (broken)
.claude/memory/knowledge/concepts/
.claude/memory/knowledge/connections/

# After (works)
knowledge/concepts/
knowledge/connections/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;I spent actual weeks debugging recursion guards and subprocess timeouts when the real issue was a file path.&lt;/p&gt;
&lt;h2&gt;
  
  
  What my setup looks like now
&lt;/h2&gt;

&lt;p&gt;The daily workflow is three steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open a session. Context loads automatically from a Python hook that injects the wiki index and recent daily logs.&lt;/li&gt;
&lt;li&gt;Work normally. Safety hooks checkpoint progress every 50 exchanges and before context compression.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;/close-day&lt;/code&gt; when done. Agent synthesizes today's changes into a daily article.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the whole system. Tomorrow's session picks up where today left off.&lt;/p&gt;

&lt;p&gt;After a few weeks, the knowledge base has real substance. Cross-referenced wiki articles about project patterns, architectural decisions, lessons from debugging sessions. All searchable, all structured, all built from actual work rather than raw transcript scraping.&lt;/p&gt;
&lt;h2&gt;
  
  
  The part I keep thinking about
&lt;/h2&gt;

&lt;p&gt;Karpathy published four principles for working with LLM agents. Principle number two is "Simplicity First. Minimum code that solves the problem."&lt;/p&gt;

&lt;p&gt;I took his agent memory concept and built a 300-line automation pipeline on top of it. Background subprocesses, recursion guards, hash comparisons, transcript parsers. And then I replaced all of it with one 30-line script and a manual command.&lt;/p&gt;

&lt;p&gt;The architecture was his. The over-engineering was mine.&lt;/p&gt;

&lt;p&gt;The simplified version is open source. Takes about five minutes to set up:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/awrshift" rel="noopener noreferrer"&gt;
        awrshift
      &lt;/a&gt; / &lt;a href="https://github.com/awrshift/claude-memory-kit" rel="noopener noreferrer"&gt;
        claude-memory-kit
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      The OS layer for Claude Code — memory, hooks, knowledge pipeline, experiments. No external deps. v3
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/awrshift/claude-memory-kit/.github/assets/og-banner.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fawrshift%2Fclaude-memory-kit%2FHEAD%2F.github%2Fassets%2Fog-banner.png" alt="Claude Memory Kit — The OS layer for Claude Code"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Claude Memory Kit&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Your Claude agent remembers everything. Across sessions. Across projects. Zero setup.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/awrshift/claude-memory-kit/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6a6ea8517d03d74fe8887531d2a4f6042de39263bf52d0b6f015783e33ecc13c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f61777273686966742f636c617564652d6d656d6f72792d6b69743f6c6162656c3d76657273696f6e26636f6c6f723d627269676874677265656e" alt="Version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/awrshift/claude-memory-kit/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/501df07c398b24d00e8bf599de2cd3173383e6da911cde7f081f74671d1db858/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564655f436f64652d636f6d70617469626c652d363336366631" alt="Claude Code"&gt;&lt;/a&gt;
&lt;a href="https://github.com/awrshift/claude-memory-kit/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f436697c7ed0fe0faee1a6230e6b975eed6d4a88c12e2c55af7401058bb8024a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f61777273686966742f636c617564652d6d656d6f72792d6b69743f7374796c653d736f6369616c" alt="Stars"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Every new Claude session starts from zero. Yesterday's decisions, last week's research, the bug you fixed three days ago — gone. You waste the first 10 minutes re-explaining what Claude already knew.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude Memory Kit fixes this in 3 commands. No API cost. Runs on your existing subscription.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Get Started&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/awrshift/claude-memory-kit.git my-project
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; my-project
claude&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;That's it. Claude sets everything up and asks a few questions (your name, project name, language).&lt;/p&gt;
&lt;div class="markdown-alert markdown-alert-tip"&gt;
&lt;p class="markdown-alert-title"&gt;Tip&lt;/p&gt;
&lt;p&gt;Type &lt;code&gt;/tour&lt;/code&gt; after setup — Claude walks you through the system using your actual files.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Before and After&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/awrshift/claude-memory-kit/.github/assets/01-before-after.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fawrshift%2Fclaude-memory-kit%2FHEAD%2F.github%2Fassets%2F01-before-after.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;

&lt;th&gt;Without Memory Kit&lt;/th&gt;
&lt;th&gt;With Memory Kit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;New session&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Starts from zero. "What project is this?"&lt;/td&gt;
&lt;td&gt;Knows your project, last session, current tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;After 10 sessions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nothing accumulated&lt;/td&gt;
&lt;td&gt;Searchable wiki of decisions, patterns, lessons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multiple projects&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Total chaos&lt;/td&gt;
&lt;td&gt;Each project has its own&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/awrshift/claude-memory-kit" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;em&gt;Built from 700+ production sessions across 7 projects. If you hit similar issues with agent memory, I'd genuinely like to hear about it in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Run 7 Projects in Claude Code Simultaneously. Here's the Memory System That Makes It Possible.</title>
      <dc:creator>Serhii Kravchenko</dc:creator>
      <pubDate>Fri, 10 Apr 2026 09:09:55 +0000</pubDate>
      <link>https://dev.to/awrshift/i-run-7-projects-in-claude-code-simultaneously-heres-the-memory-system-that-makes-it-possible-ocg</link>
      <guid>https://dev.to/awrshift/i-run-7-projects-in-claude-code-simultaneously-heres-the-memory-system-that-makes-it-possible-ocg</guid>
      <description>&lt;p&gt;I need to be honest about something upfront.&lt;/p&gt;

&lt;p&gt;I didn't invent persistent memory for Claude Code. By April 2026, there are tools with 46,000+ GitHub stars solving this problem. There are 700,000+ skills indexed on aggregators. The ecosystem is massive.&lt;/p&gt;

&lt;p&gt;What I did is something different. I spent four months running Claude Code across 7 projects simultaneously — a content production platform, a marketing site, a backend API, an open-source toolkit, and three more. Real businesses. Real clients. Real deadlines. And I assembled the memory system that actually survives this kind of workload.&lt;/p&gt;

&lt;p&gt;Claude Memory Kit v3 is not a research project. It's the system I use every single day, and I'm writing this to explain what's in it and where every piece came from.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where The Pieces Come From
&lt;/h2&gt;

&lt;p&gt;I want to be transparent about provenance. This kit is a curated assembly as of April 10, 2026:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Andrej Karpathy&lt;/strong&gt; — the core architecture. His &lt;a href="https://karpathy.ai/" rel="noopener noreferrer"&gt;LLM Knowledge Base&lt;/a&gt; idea: treat your conversations as source code, let an LLM compile them into structured knowledge. Daily logs = source. LLM = compiler. Knowledge articles = executable output. This isn't my idea. It's his. I just built a working implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Cole Medin&lt;/strong&gt; (&lt;a href="https://github.com/coleam00/claude-memory-compiler" rel="noopener noreferrer"&gt;claude-memory-compiler&lt;/a&gt;) — three specific features I ported into v3:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SessionStart injection — the hook that pre-loads your knowledge index into every session&lt;/li&gt;
&lt;li&gt;End-of-day auto-compile — daily logs become wiki articles after 6 PM automatically&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;CLAUDE_INVOKED_BY&lt;/code&gt; recursion guard — prevents infinite loops when the pipeline calls Claude, which triggers hooks, which call Claude again&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cole built the original Karpathy-inspired prototype. I ported the three features that mattered most and rewrote them for Python stdlib (no &lt;code&gt;uv&lt;/code&gt;, no &lt;code&gt;agent-sdk&lt;/code&gt;, just &lt;code&gt;subprocess&lt;/code&gt; and &lt;code&gt;os&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Anthropic's own engineers&lt;/strong&gt; — the hook system itself. Claude Code's &lt;code&gt;PreToolUse&lt;/code&gt;, &lt;code&gt;PostToolUse&lt;/code&gt;, &lt;code&gt;SessionStart&lt;/code&gt;, &lt;code&gt;SessionEnd&lt;/code&gt; hooks are what make all of this possible. The &lt;code&gt;additionalContext&lt;/code&gt; pattern that lets you inject data at session start? That's Anthropic's API. I just use it aggressively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From the community&lt;/strong&gt; — the pre-compact blocking pattern (I first saw it in a GitHub issue requesting layered memory), the periodic-save idea (adapted from multiple "I lost everything after compaction" horror stories), and the &lt;code&gt;[[wikilink]]&lt;/code&gt; format for knowledge articles (Obsidian community standard).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From my own production use&lt;/strong&gt; — everything else. The 5-layer context pyramid. The multi-project &lt;code&gt;&amp;lt;!-- PROJECT:name --&amp;gt;&lt;/code&gt; tags. The 200-line MEMORY.md cap (learned the hard way — Claude starts ignoring entries after ~200 lines). The experiment sandbox pattern. The daily log → knowledge compilation pipeline that actually runs unattended. The 50-exchange periodic save interval (not 15, not 100 — 50 is the sweet spot after months of tuning).&lt;/p&gt;

&lt;p&gt;I'm not claiming to be first. I'm claiming this combination works in production, and I can show you why.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Setup: 7 Projects, One System
&lt;/h2&gt;

&lt;p&gt;Here's what I actually run on this right now:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Content platform&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;7-stage article generation pipeline&lt;/td&gt;
&lt;td&gt;S1-S7 stages, $0.08/article production cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Marketing site&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Landing page + content&lt;/td&gt;
&lt;td&gt;TanStack Start, Vercel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NestJS service for clients&lt;/td&gt;
&lt;td&gt;Code review, PR workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CLI tool&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Content quality evaluation engine&lt;/td&gt;
&lt;td&gt;Burstiness, AI detection, SEO scoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Open source toolkit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;This kit + skills + starter templates&lt;/td&gt;
&lt;td&gt;Distribution, community&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;R&amp;amp;D hub&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Coordination across all projects&lt;/td&gt;
&lt;td&gt;Research, decisions, methodology&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Design collaboration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;UI concepts for client projects&lt;/td&gt;
&lt;td&gt;Design tokens, visual QA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every single one of these runs on Memory Kit. Each project has its own &lt;code&gt;CLAUDE.md&lt;/code&gt;, its own rules, its own backlog. But they all share the same architecture — the same hooks, the same knowledge pipeline, the same session lifecycle.&lt;/p&gt;

&lt;p&gt;When I switch from the content platform to the marketing site, Claude doesn't ask "what's this project about?" It reads the project's backlog and picks up where I left off. When I find a pattern in one project that applies to another, I write it once in MEMORY.md and it's available everywhere.&lt;/p&gt;

&lt;p&gt;This isn't a demo. This is my Tuesday.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Actually Inside (10 Components)
&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%2Fukf15nxugaxiww2p5rey.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%2Fukf15nxugaxiww2p5rey.png" alt="Agent Anatomy" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;One-line explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Brain&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Who the agent is, how it behaves, session workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hot Memory&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/memory/MEMORY.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fast-access patterns, &amp;lt; 200 lines, loaded every session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deep Memory&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;knowledge/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Wiki articles with &lt;code&gt;[[wikilinks]]&lt;/code&gt; — auto-compiled from your work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hooks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/hooks/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5 scripts that fire automatically at key moments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rules&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/rules/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Your domain conventions — brand voice, client specs, workflow rules&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Commands&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/commands/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;/memory-compile&lt;/code&gt;, &lt;code&gt;/memory-lint&lt;/code&gt;, &lt;code&gt;/memory-query&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Projects&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;projects/X/BACKLOG.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Per-project task queue with inline decisions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context Hub&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;context/next-session-prompt.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;"Pick up exactly here" — with &lt;code&gt;&amp;lt;!-- PROJECT:name --&amp;gt;&lt;/code&gt; sections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Daily Logs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;daily/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Automatic session transcripts — you never write these&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Experiments&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;experiments/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sandbox for research before committing to a path&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Everything is plain Markdown. No database. No external services. If anything breaks, &lt;code&gt;git checkout&lt;/code&gt; fixes it. I chose this deliberately — after evaluating SQLite-based solutions, vector embeddings, and graph databases, plain text won because it's the only format that survives everything: git, backups, editor changes, Claude Code updates.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 5 Hooks (This Is Where The Magic Lives)
&lt;/h2&gt;

&lt;p&gt;Hooks are the reason this system works without you thinking about it. Each one fires at a specific moment and does one job.&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%2Fesbv2ifurk1bhscseaqi.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%2Fesbv2ifurk1bhscseaqi.png" alt="Session Lifecycle" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hook 1: Session Start (&lt;code&gt;session-start.py&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt; Every time you open Claude Code&lt;br&gt;
&lt;strong&gt;What it does:&lt;/strong&gt; Injects your knowledge index, recent daily logs, and top 3 most recent concept articles into the session. 50K character budget — on Opus 4.6's 1M context window, that's ~5%.&lt;br&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; Claude starts every session already knowing what articles exist in your wiki, what you worked on yesterday, and what your key patterns are. No "read my files" prompt needed.&lt;br&gt;
&lt;strong&gt;Origin:&lt;/strong&gt; Adapted from Cole Medin's claude-memory-compiler, rewritten in Python stdlib.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hook 2: Periodic Save (&lt;code&gt;periodic-save.sh&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt; Every 50 exchanges (configurable)&lt;br&gt;
&lt;strong&gt;What it does:&lt;/strong&gt; Blocks Claude and forces it to save: update MEMORY.md with new patterns, update next-session-prompt with current state, update BACKLOG task statuses.&lt;br&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; I lost 3 hours of work in month one because a long session compacted without saving. Never again. 50 is the sweet spot — 15 was too noisy, 100 was too risky.&lt;br&gt;
&lt;strong&gt;Origin:&lt;/strong&gt; My own pain. Tuned over ~60 production sessions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hook 3: Pre-Compact Guard (&lt;code&gt;pre-compact.sh&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt; Before Claude Code compresses the context window&lt;br&gt;
&lt;strong&gt;What it does:&lt;/strong&gt; Checks if MEMORY.md was updated in the last 2 minutes. If not, blocks compaction. Claude must save first.&lt;br&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; Compaction is where memory dies. This hook is a seatbelt. The 2-minute window is tight on purpose — it forces the agent to actually touch memory files right before compression, not rely on a save from an hour ago.&lt;br&gt;
&lt;strong&gt;Origin:&lt;/strong&gt; Community request pattern from &lt;a href="https://github.com/anthropics/claude-code/issues/27298" rel="noopener noreferrer"&gt;GitHub issue #27298&lt;/a&gt; about layered memory loss.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hook 4: Session End (&lt;code&gt;session-end.sh&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt; Claude Code process terminates&lt;br&gt;
&lt;strong&gt;What it does:&lt;/strong&gt; Extracts the last 100 turns from the transcript, spawns &lt;code&gt;flush.py&lt;/code&gt; in background. flush.py uses &lt;code&gt;claude -p&lt;/code&gt; (your existing subscription, zero extra cost) to distill the session into structured Markdown, appends to &lt;code&gt;daily/YYYY-MM-DD.md&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; Every conversation becomes searchable history. You don't do anything — it captures automatically.&lt;br&gt;
&lt;strong&gt;Origin:&lt;/strong&gt; &lt;code&gt;flush.py&lt;/code&gt; logic adapted from Cole Medin's extractor, rewritten for Python subprocess (no agent-sdk dependency).&lt;/p&gt;

&lt;h3&gt;
  
  
  Hook 5: Test Protection (&lt;code&gt;protect-tests.sh&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt; Any time Claude tries to edit an existing test file&lt;br&gt;
&lt;strong&gt;What it does:&lt;/strong&gt; Blocks the edit. Claude can create new tests, but can't modify existing ones.&lt;br&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; When tests fail, the instinct (for both humans and AI) is to "fix the test." This hook forces fixing the implementation instead. Sounds minor, but it saved me from subtle regressions at least twice.&lt;br&gt;
&lt;strong&gt;Origin:&lt;/strong&gt; My own rule after Claude "fixed" a test by relaxing the assertion.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Knowledge Pipeline (Karpathy's Architecture In Practice)
&lt;/h2&gt;

&lt;p&gt;This is the most powerful part, and it's the piece that comes directly from Karpathy's insight.&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%2Fkmg9rsirmz712uy8xtoy.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%2Fkmg9rsirmz712uy8xtoy.png" alt="Memory Pipeline" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The chain:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You have a conversation&lt;/strong&gt; → Hook captures it → &lt;code&gt;flush.py&lt;/code&gt; distills it into structured notes → Appended to &lt;code&gt;daily/2026-04-10.md&lt;/code&gt; → After 6 PM, &lt;code&gt;compile.py&lt;/code&gt; transforms daily logs into wiki articles with YAML frontmatter and &lt;code&gt;[[wikilinks]]&lt;/code&gt; → Next session starts with the updated wiki catalog already injected.&lt;/p&gt;

&lt;p&gt;The key insight: you don't organize your knowledge. You have conversations, and the LLM handles the synthesis, cross-referencing, and categorization. After a few weeks, you have a personal wiki that grew entirely from your work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost: $0 extra.&lt;/strong&gt; The pipeline uses &lt;code&gt;claude -p&lt;/code&gt; which runs on your existing Max/Pro subscription. No API key charges. I verified this by running it for a month and checking my billing — zero incremental cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safety: recursion guard.&lt;/strong&gt; &lt;code&gt;flush.py&lt;/code&gt; calls &lt;code&gt;claude -p&lt;/code&gt;, which starts a new Claude session, which fires SessionEnd hook, which would call &lt;code&gt;flush.py&lt;/code&gt; again — infinite loop. The &lt;code&gt;CLAUDE_INVOKED_BY&lt;/code&gt; env var breaks the cycle. Every hook checks it at the top and exits if set. Took me an afternoon to debug the first time it happened. Now it's documented and automatic.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Context Pyramid (Why Not Load Everything?)
&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%2Fej5xbr9wr8xyo8gjabiu.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%2Fej5xbr9wr8xyo8gjabiu.png" alt="Context Pyramid" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;When&lt;/th&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;L1: Auto&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CLAUDE.md + rules + MEMORY.md + SessionStart injection&lt;/td&gt;
&lt;td&gt;Every session&lt;/td&gt;
&lt;td&gt;~50K chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;L2: Start&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;next-session-prompt.md&lt;/td&gt;
&lt;td&gt;First thing the agent reads&lt;/td&gt;
&lt;td&gt;~2-5K chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;L3: Project&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;BACKLOG.md for current project&lt;/td&gt;
&lt;td&gt;When you start working&lt;/td&gt;
&lt;td&gt;~5-20K chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;L4: Wiki&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Knowledge articles&lt;/td&gt;
&lt;td&gt;On-demand (agent knows they exist from L1 index)&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;L5: Raw&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;daily/ logs&lt;/td&gt;
&lt;td&gt;Never read directly — source material for pipeline&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Why the pyramid? Because I tried loading everything. With 7 projects, that's 50+ files. Claude's context filled up in 10 minutes, compacted, and lost the work context. The pyramid ensures 95% of the context window is available for actual work, and the remaining 5% is the right context at the right time.&lt;/p&gt;




&lt;h2&gt;
  
  
  For Marketers (Why I'm Writing This For You)
&lt;/h2&gt;

&lt;p&gt;I've been watching this space closely. By April 2026, there are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;46,000+ stars on claude-mem (the most popular memory tool)&lt;/li&gt;
&lt;li&gt;143,000+ stars on Superpowers (the most popular framework)&lt;/li&gt;
&lt;li&gt;700,000+ skills indexed on SkillsMP&lt;/li&gt;
&lt;li&gt;107,000+ skills on agentskill.sh, including 25,000+ marketing-specific ones&lt;/li&gt;
&lt;li&gt;Free courses at cc4.marketing and ccforeveryone.com&lt;/li&gt;
&lt;li&gt;An official Anthropic Marketing Plugin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ecosystem is enormous and growing. So why am I writing this?&lt;/p&gt;

&lt;p&gt;Because I noticed a gap. Most of these tools are built by developers, for developers. The marketing skills exist, but nobody is showing &lt;strong&gt;how to connect them into a system that remembers your clients, your brand guidelines, and your content strategy across sessions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A skill that writes SEO content is great. But if it forgets your client's brand voice every time you restart Claude Code, it's just a fancy prompt template.&lt;/p&gt;

&lt;p&gt;Memory Kit isn't a skill. It's the &lt;strong&gt;operating system layer&lt;/strong&gt; that makes your skills, your rules, and your context persist. When you install a marketing skill, Memory Kit ensures Claude remembers how to use it the way &lt;em&gt;you&lt;/em&gt; use it — with your client data, your conventions, your history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical example:&lt;/strong&gt; You install an SEO audit skill. First run, you explain your client's niche, target keywords, and competitor URLs. Without Memory Kit, next session you explain it again. With Memory Kit, that context lives in &lt;code&gt;rules/client-name.md&lt;/code&gt; and &lt;code&gt;knowledge/concepts/client-seo-strategy.md&lt;/code&gt;. Every future audit starts with full context.&lt;/p&gt;




&lt;h2&gt;
  
  
  "Do I Need to Know How to Code?"
&lt;/h2&gt;

&lt;p&gt;No. And I mean that literally.&lt;/p&gt;

&lt;p&gt;After the 3-command install, Claude asks you 5 questions in plain language: project name, your name, language preference, project description, starting fresh or importing existing work. Then it configures everything.&lt;/p&gt;

&lt;p&gt;From that point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Write three emails for the Acme campaign" — works&lt;/li&gt;
&lt;li&gt;"What do we know about our SEO gaps?" — Claude searches its memory&lt;/li&gt;
&lt;li&gt;"Save what we discussed" — Claude updates memory and context&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/tour&lt;/code&gt; — Claude walks you through every file, explains what each one does&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The files are plain Markdown. If you've used Notion, you can read these. But you don't have to — Claude manages them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Honest Comparison
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend alternatives don't exist. Here's where things stand:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Memory Kit&lt;/th&gt;
&lt;th&gt;claude-mem (46K stars)&lt;/th&gt;
&lt;th&gt;Cog&lt;/th&gt;
&lt;th&gt;Built-in CLAUDE.md&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Setup&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3 commands, 5 min&lt;/td&gt;
&lt;td&gt;Plugin install&lt;/td&gt;
&lt;td&gt;Clone + configure&lt;/td&gt;
&lt;td&gt;Already there&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Auto-learns&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes (hooks + compile)&lt;/td&gt;
&lt;td&gt;Yes (SQLite + embeddings)&lt;/td&gt;
&lt;td&gt;Manual conventions&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dependencies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Zero (Python stdlib)&lt;/td&gt;
&lt;td&gt;TypeScript + SQLite&lt;/td&gt;
&lt;td&gt;Zero&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multi-project&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Built-in (PROJECT tags)&lt;/td&gt;
&lt;td&gt;Single project&lt;/td&gt;
&lt;td&gt;Single project&lt;/td&gt;
&lt;td&gt;Single file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Knowledge format&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Wiki with wikilinks&lt;/td&gt;
&lt;td&gt;Compressed vectors&lt;/td&gt;
&lt;td&gt;Filesystem&lt;/td&gt;
&lt;td&gt;Flat file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pipeline&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Karpathy-style compile&lt;/td&gt;
&lt;td&gt;AI compression&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Stars&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;46,000+&lt;/td&gt;
&lt;td&gt;~2,000&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Yes, 6 stars. I'm not hiding it. claude-mem has 7,700x more stars and a beautiful marketing site. If you want the most popular option, go there.&lt;/p&gt;

&lt;p&gt;Memory Kit's edge: &lt;strong&gt;multi-project structure&lt;/strong&gt; (PROJECT tags, per-project backlogs, shared memory), &lt;strong&gt;zero dependencies&lt;/strong&gt; (no npm, no SQLite, no TypeScript runtime), and the &lt;strong&gt;Karpathy-style knowledge compilation pipeline&lt;/strong&gt; that turns raw conversations into structured, cross-referenced wiki articles.&lt;/p&gt;

&lt;p&gt;If you work on one project, claude-mem is probably simpler. If you juggle multiple clients, campaigns, or products — that's where Memory Kit was built and tested.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  You need
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Claude Pro ($20/mo) or Max subscription&lt;/li&gt;
&lt;li&gt;A terminal (Terminal on Mac, WSL2 on Windows)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Install
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/awrshift/claude-memory-kit.git my-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-project
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  First 10 minutes
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Answer Claude's 5 setup questions&lt;/strong&gt; — name, project, language, description, fresh/existing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type &lt;code&gt;/tour&lt;/code&gt;&lt;/strong&gt; — Claude walks through every file with interactive explanations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tell Claude about your first client&lt;/strong&gt; — "Create a rule for [client name] with this brand voice: [paste guidelines]"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start working normally&lt;/strong&gt; — the hooks handle everything else&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After a few sessions, check &lt;code&gt;daily/&lt;/code&gt; — you'll see conversation logs appearing. After a few days, check &lt;code&gt;knowledge/&lt;/code&gt; — structured articles growing from your work.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned Building This
&lt;/h2&gt;

&lt;p&gt;A few things I didn't expect:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 200-line limit is real.&lt;/strong&gt; MEMORY.md is auto-loaded every session. Anthropic truncates after ~200 lines. I hit this wall at month two with 180 entries. Now I aggressively move detailed patterns into wiki articles and keep MEMORY.md as an index. The &lt;code&gt;[YYYY-MM]&lt;/code&gt; date tag on every entry helps — I can prune old patterns that no longer apply.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;50 exchanges is the save interval sweet spot.&lt;/strong&gt; At 15 (v2 default), Claude saved too often — broke flow. At 100+, I lost significant context after compaction. 50 exchanges is roughly 30-45 minutes of focused work. Enough to accumulate meaningful patterns, not so long that you risk losing them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plain text beats everything.&lt;/strong&gt; I evaluated SQLite, vector embeddings, Neo4j graph. Plain Markdown won because: git tracks changes, any editor reads it, Claude Code's Read/Write tools handle it natively, and it survives every upgrade. When claude-mem upgrades their schema, you migrate. When I upgrade Memory Kit, you &lt;code&gt;git pull&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The recursion bug was terrifying.&lt;/strong&gt; First time &lt;code&gt;flush.py&lt;/code&gt; triggered an infinite loop — &lt;code&gt;claude -p&lt;/code&gt; spawning &lt;code&gt;claude -p&lt;/code&gt; spawning &lt;code&gt;claude -p&lt;/code&gt; — I had 47 Claude processes running before I killed them. The &lt;code&gt;CLAUDE_INVOKED_BY&lt;/code&gt; guard was born that evening. It's three lines of code that prevent infinite recursion across the entire pipeline. If you build anything that spawns &lt;code&gt;claude -p&lt;/code&gt; from hooks, steal this pattern.&lt;/p&gt;




&lt;p&gt;The repo is at &lt;a href="https://github.com/awrshift/claude-memory-kit" rel="noopener noreferrer"&gt;github.com/awrshift/claude-memory-kit&lt;/a&gt;. MIT license. I use it every day. If you try it, let me know what works and what doesn't — the best improvements to this system came from actual production use, not theory.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Third article in the "Claude Code for the Rest of Us" series. I'm &lt;a href="https://github.com/pmserhii" rel="noopener noreferrer"&gt;@pmserhii&lt;/a&gt; — I build open-source AI tools at &lt;a href="https://github.com/awrshift" rel="noopener noreferrer"&gt;awrshift&lt;/a&gt; and run production content pipelines. This is what I actually use.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Why I Make Claude and Gemini Argue: Building an Adversarial Agentic Workflow (Open-Source Skill)</title>
      <dc:creator>Serhii Kravchenko</dc:creator>
      <pubDate>Tue, 31 Mar 2026 13:45:10 +0000</pubDate>
      <link>https://dev.to/awrshift/why-i-make-claude-and-gemini-argue-building-an-adversarial-agentic-workflow-open-source-skill-2bgl</link>
      <guid>https://dev.to/awrshift/why-i-make-claude-and-gemini-argue-building-an-adversarial-agentic-workflow-open-source-skill-2bgl</guid>
      <description>&lt;p&gt;In traditional engineering, you'd never let a developer merge code without a peer review.&lt;/p&gt;

&lt;p&gt;So why are we letting AI grade its own homework?&lt;/p&gt;

&lt;p&gt;I've been building with Claude Code for 750+ sessions across multiple projects — a content pipeline, a marketing site, a design system, decision frameworks. Somewhere around session 200, I noticed a pattern: &lt;strong&gt;Claude is brilliant, but it has consistent blind spots.&lt;/strong&gt; It favors certain architectures. It misses edge cases in its own prompts. It quietly accepts assumptions that a different perspective would challenge.&lt;/p&gt;

&lt;p&gt;So I did something unconventional: I gave Claude a sparring partner.&lt;/p&gt;

&lt;p&gt;I built an open-source skill called &lt;strong&gt;Brainstorm&lt;/strong&gt; that runs a structured 3-round adversarial dialogue between Claude Code and Google's Gemini. Not a simple "ask two models the same question" approach — a real debate where each model challenges the other's reasoning, and they converge on a single actionable recommendation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's the repo:&lt;/strong&gt; &lt;a href="https://github.com/awrshift/claude-starter-kit" rel="noopener noreferrer"&gt;Claude Starter Kit&lt;/a&gt; — the Brainstorm skill is included alongside memory, hooks, and three other Claude Code skills. MIT license, works out of the box.&lt;/p&gt;

&lt;p&gt;Let me show you what happened when I put this to work.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: Single-Model Agentic Workflows Hit a Ceiling
&lt;/h2&gt;

&lt;p&gt;If you use Claude Code daily, you know how productive it is. It reads your codebase, makes changes, runs tests, iterates. For straightforward tasks, it's incredible.&lt;/p&gt;

&lt;p&gt;But for &lt;strong&gt;decisions&lt;/strong&gt; — architecture choices, design system approaches, prompt engineering, evaluation criteria — a single model creates a feedback loop. Claude designs a solution, Claude evaluates it, Claude declares it good. There's no external challenge.&lt;/p&gt;

&lt;p&gt;You might ask: why not just prompt Claude to red-team its own output? Or use a cheaper Claude model to draft and a smarter one to review? We tried both. The problem is fundamental — same provider, same training corpus, same architectural biases. Claude challenging Claude is like asking someone to proofread their own essay. They'll catch typos but miss the structural issues. A &lt;strong&gt;different model family&lt;/strong&gt; with different training data and different instincts is what breaks the loop.&lt;/p&gt;

&lt;p&gt;I hit this wall three separate times before I built a systematic fix:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wall 1: Design system architecture.&lt;/strong&gt; Claude recommended using Google's Stitch tool with post-processing to fix design token adherence. Sounded reasonable. Spent two days implementing it. Token adherence: 35%. The approach was fundamentally flawed, and Claude couldn't see it because it designed it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wall 2: Content pipeline prompts.&lt;/strong&gt; Claude wrote evaluation prompts for our 7-stage content pipeline. The prompts looked great — well-structured, detailed, comprehensive. But when we actually measured output quality, the scores were mediocre. The prompts had loopholes that Claude couldn't identify in its own work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wall 3: Quality metrics.&lt;/strong&gt; Claude designed metrics to evaluate content quality, then evaluated content using those same metrics. Circular validation. The scores looked good on paper but didn't reflect real quality improvements.&lt;/p&gt;

&lt;p&gt;Every one of these failures had the same root cause: &lt;strong&gt;no adversarial pressure.&lt;/strong&gt; The model was reviewing its own work with its own biases.&lt;/p&gt;




&lt;h2&gt;
  
  
  Enter the Brainstorm Skill: Claude vs Gemini in the Terminal
&lt;/h2&gt;

&lt;p&gt;The Brainstorm skill runs a 3-round structured debate between Claude and Gemini. It's not random back-and-forth — each round has a specific purpose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Round 1 — Diverge.&lt;/strong&gt; Both models propose different approaches to the problem. Claude brings codebase context (it can read your files). Gemini brings a fresh perspective from a completely different model family with different training biases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Round 2 — Deepen.&lt;/strong&gt; Each model challenges the other's proposal. "What happens when input is empty?" "What about the edge case where the user has 12 languages?" "Your approach assumes X, but what if Y?" This is where the real value emerges — the challenges neither model would generate reviewing its own work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Round 3 — Converge.&lt;/strong&gt; After two rounds of productive conflict, the models synthesize a single recommendation with clear reasoning. You get one actionable path forward, not two competing opinions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Gemini gets context:&lt;/strong&gt; Claude orchestrates the entire flow. It reads your local files, summarizes the relevant context, and passes it to Gemini via the Google GenAI API along with the debate prompt. Gemini never touches your filesystem directly — Claude acts as the bridge, deciding what context is relevant to share. This means your code stays local while Gemini gets exactly the context it needs to give meaningful critique.&lt;/p&gt;

&lt;p&gt;The architecture is deliberate. Gemini uses a two-layer approach: Flash-Lite with Google Search grounding gathers real-world facts first (the "ground truth" phase), then Pro reasons on verified data. A mandatory fact-check phase at the end catches any claims that slipped through. A typical brainstorm takes about 40-60 seconds and costs roughly $0.02-0.05 in API calls — overkill for fixing a typo, but invaluable for architecture decisions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install (one command)&lt;/span&gt;
git clone https://github.com/awrshift/claude-starter-kit.git my-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-project &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; claude

&lt;span class="c"&gt;# Or add just the skill to an existing project&lt;/span&gt;
git clone https://github.com/awrshift/skill-brainstorm.git .claude/skills/brainstorm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then just say "brainstorm" in Claude Code, describe your problem, and watch the debate unfold.&lt;/p&gt;




&lt;h2&gt;
  
  
  Case Study 1: How an AI Code Review Loop Replaced Our Designer
&lt;/h2&gt;

&lt;p&gt;This is the one that convinced me adversarial agentic workflows are the future of development.&lt;/p&gt;

&lt;p&gt;We were building a marketing site called Avoid Content. The question: how should Claude generate UI components that precisely follow our design tokens (colors, typography, spacing)?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude's position (Round 1):&lt;/strong&gt; Use Google Stitch to generate screens, then post-process the output to replace colors and fonts with our design tokens. Reasonable — Stitch is a powerful UI generation tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini's challenge (Round 2):&lt;/strong&gt; "Post-processing is fragile. What happens when Stitch generates a gradient that mixes two non-token colors? What about hover states? You'll spend more time fixing edge cases than you save." Gemini argued for generating code directly from design tokens — skip Stitch entirely, use a frontend-design approach where tokens are injected into the generation prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The convergence (Round 3):&lt;/strong&gt; Test both approaches, measure token adherence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stitch + post-processing: &lt;strong&gt;35% token adherence&lt;/strong&gt; (18 color references in benchmark components, only 6 matched)&lt;/li&gt;
&lt;li&gt;Direct generation from tokens: &lt;strong&gt;100% token adherence on benchmark components&lt;/strong&gt; (18/18 exact hex matches — the strict token schema forced compliance)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That brainstorm literally replaced our entire design workflow. And it went further — we built a &lt;strong&gt;visual QA loop&lt;/strong&gt; on top of it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Claude generates a component using design tokens&lt;/li&gt;
&lt;li&gt;Playwright takes a screenshot&lt;/li&gt;
&lt;li&gt;Gemini reviews the screenshot visually against a reference design&lt;/li&gt;
&lt;li&gt;Claude fixes issues Gemini identified&lt;/li&gt;
&lt;li&gt;Repeat (max 2 iterations)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Typography scores went from 5/10 to 8/10 in a single iteration. Spacing, visual hierarchy, overall polish — all improved measurably because a different model family was doing the AI code review.&lt;/p&gt;

&lt;p&gt;We effectively replaced manual design reviews with an automated Claude + Gemini loop. Not "AI-assisted design" — AI-driven design with AI-driven quality assurance. The entire Avoid Content site was built this way: Claude prototyping, Gemini reviewing screenshots, iterating until both models agreed the output was solid.&lt;/p&gt;




&lt;h2&gt;
  
  
  Case Study 2: Gemini Gates in a 7-Stage Content Pipeline
&lt;/h2&gt;

&lt;p&gt;Our content generation platform runs articles through seven stages: Strategy, Outline, Research, Generate, Verify, Optimize, Finalize. Each stage has specific quality metrics.&lt;/p&gt;

&lt;p&gt;The breakthrough wasn't using Gemini to generate content. It was using Gemini as a &lt;strong&gt;gate&lt;/strong&gt; — a checkpoint that must approve output before it moves to the next stage.&lt;/p&gt;

&lt;p&gt;At the prompt design phase for Stage 4 (article generation), we ran the prompt through Gemini for stress-testing:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Identify how an LLM could misinterpret this prompt. Find loopholes, missing constraints, ambiguous rules."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Gemini found three critical loopholes Claude missed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The prompt said "avoid repetitive sentence starters" but didn't define what counts as repetitive (per-section vs. article-level)&lt;/li&gt;
&lt;li&gt;Temperature 1.0 + negative instructions ("don't use X") triggered the pink elephant effect — the model used X more, not less&lt;/li&gt;
&lt;li&gt;Word count targets lacked adaptive coefficients, causing +25% overshoot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After fixing these based on Gemini's critique, article quality jumped measurably. And here's the finding we've now confirmed three separate times:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt quality &amp;gt; model quality.&lt;/strong&gt; A basic prompt on Gemini Pro performed identically to Flash (50% quality score). The same models with a stress-tested prompt hit 75-80%. The bottleneck was never the model — it was the prompt.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the single most important lesson from running two AI models together. You don't need a more expensive model. You need a different model family to find the holes in your prompts.&lt;/p&gt;

&lt;p&gt;The same pattern held for our AWRSHIFT decision framework — a structured tool for non-trivial choices (which architecture? build vs. buy?). Through brainstorm sessions, Gemini pushed back on Claude's overcomplicated 5-mode design and the system converged on a single adaptive flow. Simpler for users, more flexible for the system. That framework is also open-source: &lt;a href="https://github.com/awrshift/skill-awrshift" rel="noopener noreferrer"&gt;skill-awrshift&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Mini Claude Code Tutorial: The Technical Setup
&lt;/h2&gt;

&lt;p&gt;Getting this running takes about five minutes. Here's what you need:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt; installed (CLI or Desktop)&lt;/li&gt;
&lt;li&gt;A free &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;Google API key&lt;/a&gt; for Gemini&lt;/li&gt;
&lt;li&gt;Python 3.10+ with &lt;code&gt;pip install google-genai&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Option 1: Full Starter Kit (recommended)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/awrshift/claude-starter-kit.git my-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-project
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude runs the setup automatically — asks your name, project description, language preference, and configures everything. You get four Claude Code skills out of the box:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Brainstorm&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3-round Claude x Gemini adversarial dialogue&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Quick second opinions, prompt stress-tests, visual reviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWRSHIFT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Structured decision framework with Gemini gates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Skill Creator&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Build and test your own custom skills&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Plus a persistent memory system, session hooks, multi-project journals, and experiments tracking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2: Just the Brainstorm skill&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Add to existing Claude Code project&lt;/span&gt;
git clone https://github.com/awrshift/skill-brainstorm.git .claude/skills/brainstorm

&lt;span class="c"&gt;# Set up Gemini&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"GOOGLE_API_KEY=your-key-here"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; .env
pip &lt;span class="nb"&gt;install &lt;/span&gt;google-genai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then in Claude Code, just say "brainstorm [your question]" and it works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 3: Gemini skill only (for quick second opinions)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/awrshift/skill-gemini.git .claude/skills/gemini
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use it for one-off checks: "ask Gemini if this architecture makes sense" or "get a second opinion on this prompt."&lt;/p&gt;




&lt;h2&gt;
  
  
  When to Use Brainstorm vs. Second Opinion
&lt;/h2&gt;

&lt;p&gt;Not every decision needs a 3-round debate. Here's how we think about it after 750+ sessions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;One clear path, need validation&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini second-opinion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick (~5s), single-round, catches obvious issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple viable approaches&lt;/td&gt;
&lt;td&gt;&lt;code&gt;brainstorm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full 3-round debate (~45s), converges on one answer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prompt stress-testing&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini second-opinion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find loopholes before deploying prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Architecture decisions&lt;/td&gt;
&lt;td&gt;&lt;code&gt;brainstorm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Different model = different design instincts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visual design review&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini --image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Multimodal review of screenshots&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fact verification&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini second-opinion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cross-model validation of claims&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The rule is simple: &lt;strong&gt;if there's one path and you need a sanity check, use Gemini directly. If there are multiple paths and you need to converge, use Brainstorm.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What We Learned: Five Rules for Multi-Model Agentic Workflows
&lt;/h2&gt;

&lt;p&gt;After building production systems with Claude + Gemini, these patterns held up consistently:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Prompt quality always beats model upgrades.&lt;/strong&gt;&lt;br&gt;
We proved this three times across different domains. A well-crafted prompt on a cheaper model outperforms a lazy prompt on an expensive one. Use Gemini to stress-test your prompts before optimizing your model tier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Gemini's critique is an input, never the decision.&lt;/strong&gt;&lt;br&gt;
44% of Gemini's insights were genuinely unique — things Claude would never catch on its own. But Gemini lacks your codebase context, your prior decisions, your constraints. Always evaluate its recommendations critically before acting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Different model families catch different blind spots.&lt;/strong&gt;&lt;br&gt;
This is the whole thesis. Claude and Gemini have different training data, different architectures, different biases. When they disagree, that's where the most valuable insights hide. When they agree, you can be more confident the answer is solid.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Fact-check after every brainstorm.&lt;/strong&gt;&lt;br&gt;
We found that 2 out of 6 brainstorm decisions were invalidated when we checked the claims against live web data. The mandatory fact-check phase (built into Brainstorm v2.1) catches these before they become expensive mistakes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The visual QA loop is underrated.&lt;/strong&gt;&lt;br&gt;
Most developers only use text-to-text generation. Adding Playwright screenshots + Gemini visual review creates an AI code review feedback loop that catches UI issues no text-based review ever could. Typography, spacing, color contrast — Gemini sees what Claude can only describe.&lt;/p&gt;




&lt;h2&gt;
  
  
  Exploring the Claude Code Skills Ecosystem
&lt;/h2&gt;

&lt;p&gt;If you're new to Claude Code skills, they're essentially reusable capabilities you add to your agent. A skill is a folder with a &lt;code&gt;SKILL.md&lt;/code&gt; file that tells Claude when and how to use it.&lt;/p&gt;

&lt;p&gt;The ecosystem is growing fast — skills can be shared through the Claude Code plugins marketplace, and the Starter Kit includes a Skill Creator that lets you build your own skills and test them with an eval framework.&lt;/p&gt;

&lt;p&gt;Some ideas for custom skills you could build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A skill that runs your test suite and interprets failures&lt;/li&gt;
&lt;li&gt;A skill that checks your PR against your team's code style guide&lt;/li&gt;
&lt;li&gt;A skill that queries your production logs when debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check the &lt;a href="https://github.com/awrshift" rel="noopener noreferrer"&gt;Claude skills on GitHub&lt;/a&gt; for more examples and inspiration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;Everything mentioned in this article is open-source and free:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/awrshift/claude-starter-kit" rel="noopener noreferrer"&gt;Claude Starter Kit&lt;/a&gt;&lt;/strong&gt; — Full setup with memory, skills, hooks, and multi-project support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/awrshift/skill-brainstorm" rel="noopener noreferrer"&gt;skill-brainstorm&lt;/a&gt;&lt;/strong&gt; — Standalone 3-round Claude x Gemini adversarial dialogue&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/awrshift/skill-gemini" rel="noopener noreferrer"&gt;skill-gemini&lt;/a&gt;&lt;/strong&gt; — Quick second opinions and visual reviews&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/awrshift/skill-awrshift" rel="noopener noreferrer"&gt;skill-awrshift&lt;/a&gt;&lt;/strong&gt; — Structured decision framework with Gemini gates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The setup takes five minutes. The first brainstorm session will probably change how you think about AI pair programming.&lt;/p&gt;

&lt;p&gt;Because the real power isn't in having a smarter AI. It's in having two AIs that think differently — and making them argue until the best answer wins.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by &lt;a href="https://github.com/pmserhii" rel="noopener noreferrer"&gt;Serhii Kravchenko&lt;/a&gt; — based on 750+ sessions building AI content pipelines, multi-agent systems, and design automation with Claude Code.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We're working toward getting Brainstorm into the official Claude Code plugins directory. If this workflow saved you time, a star on the &lt;a href="https://github.com/awrshift/claude-starter-kit" rel="noopener noreferrer"&gt;Starter Kit repo&lt;/a&gt; helps us get there faster.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I Built a Memory System for Claude Code and Open-Sourced It</title>
      <dc:creator>Serhii Kravchenko</dc:creator>
      <pubDate>Fri, 27 Mar 2026 08:50:34 +0000</pubDate>
      <link>https://dev.to/awrshift/how-i-built-a-memory-system-for-claude-code-and-open-sourced-it-3m31</link>
      <guid>https://dev.to/awrshift/how-i-built-a-memory-system-for-claude-code-and-open-sourced-it-3m31</guid>
      <description>&lt;p&gt;You open Claude Code. You work for an hour — refactoring, debugging, building something real. You close the terminal. Next morning you type &lt;code&gt;claude&lt;/code&gt; and... it has no idea what happened yesterday.&lt;/p&gt;

&lt;p&gt;I've been there about a thousand times. Literally.&lt;/p&gt;

&lt;p&gt;After 1000+ sessions building content pipelines, multi-agent systems, and GEO optimization tools with Claude Code, I got fed up with the context amnesia. So I built a system that fixes it. And today I'm open-sourcing everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/awrshift/claude-starter-kit" rel="noopener noreferrer"&gt;awrshift/claude-starter-kit&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Claude Code is powerful. It reads your codebase, runs tests, writes code that actually works. But it has one brutal limitation — &lt;strong&gt;no persistent memory between sessions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every time you start a new session, you're back to square one. The agent doesn't remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What you worked on yesterday&lt;/li&gt;
&lt;li&gt;Which architectural decisions you made&lt;/li&gt;
&lt;li&gt;What patterns keep causing bugs&lt;/li&gt;
&lt;li&gt;Where you left off&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So you burn 10-15 minutes every session just re-loading context. Multiply that by 5 sessions a day, 5 days a week — that's over 6 hours a month wasted on "hey Claude, remember when we..."&lt;/p&gt;

&lt;p&gt;Most devs I've talked to handle this with a fat &lt;code&gt;CLAUDE.md&lt;/code&gt; file. That works until it doesn't. Once your project grows past 3 weeks of work, a single instruction file can't hold everything you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built Instead
&lt;/h2&gt;

&lt;p&gt;The starter kit gives Claude Code three things it doesn't have out of the box:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Persistent memory&lt;/strong&gt; — a &lt;code&gt;.claude/memory/&lt;/code&gt; directory with three files that survive between sessions. &lt;code&gt;MEMORY.md&lt;/code&gt; stores long-term patterns ("this API always returns pagination headers"). &lt;code&gt;CONTEXT.md&lt;/code&gt; is a quick-orientation card ("currently working on auth module, tests are failing"). &lt;code&gt;snapshots/&lt;/code&gt; keeps session backups so nothing gets lost when the conversation compresses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Session continuity&lt;/strong&gt; — a &lt;code&gt;next-session-prompt.md&lt;/code&gt; file that acts as a cross-project hub. Each project gets its own tagged section, so multiple Claude Code windows can work on different projects in parallel without stepping on each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Hooks that protect you&lt;/strong&gt; — a &lt;code&gt;session-start.sh&lt;/code&gt; that shows memory summary + git status when you open a session. And a &lt;code&gt;pre-compact.sh&lt;/code&gt; that fires before Claude compresses your conversation — it forces the agent to save context before anything gets lost.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four-Layer Context System
&lt;/h2&gt;

&lt;p&gt;Not everything needs to load every time. The kit uses a pyramid:&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%2F27k0t8wun6mmz8ihmj55.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%2F27k0t8wun6mmz8ihmj55.png" alt="Context Layers" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L1 — Auto (every session):&lt;/strong&gt; &lt;code&gt;CLAUDE.md&lt;/code&gt; + domain rules + &lt;code&gt;MEMORY.md&lt;/code&gt;. This is the agent's identity and accumulated knowledge. Loads automatically, always.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L2 — Start (session start):&lt;/strong&gt; &lt;code&gt;next-session-prompt.md&lt;/code&gt; + &lt;code&gt;CONTEXT.md&lt;/code&gt;. Orientation layer — what project am I in? What's next? What happened last time?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L3 — Project (on demand):&lt;/strong&gt; &lt;code&gt;projects/X/JOURNAL.md&lt;/code&gt;. Each project has one file for tasks, decisions, and status. The agent reads it when you start working on that project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L4 — Reference (when needed):&lt;/strong&gt; Docs, snapshots, anything deep. Pulled only when relevant — keeps token usage low.&lt;/p&gt;

&lt;p&gt;The pyramid means Claude always knows who it is (L1), quickly orients itself (L2), and dives deep only when needed (L3-L4). No wasted context window.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Skills Included
&lt;/h2&gt;

&lt;p&gt;The kit ships with three global skills that install to &lt;code&gt;~/.claude/skills/&lt;/code&gt; on first run:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini&lt;/strong&gt; — get second opinions from Google's Gemini models. Different model family = different blind spots. I use this for prompt stress-testing and hypothesis falsification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brainstorm&lt;/strong&gt; — a 3-round adversarial dialogue between Claude and Gemini. Round 1: diverge. Round 2: challenge weak points. Round 3: converge on one action. For architecture decisions it's worth every token.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design&lt;/strong&gt; — full design system lifecycle from URL to production CSS. Extract colors, compute palettes, generate tokens, audit HTML, run visual QA loops.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Get Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; claude-starter-kit my-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-project
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. On first launch, Claude reads &lt;code&gt;CLAUDE.md&lt;/code&gt;, sees the setup instructions, and configures everything automatically — installs skills, sets up memory, initializes git, cleans scaffolding.&lt;/p&gt;

&lt;p&gt;No manual configuration. You can start working immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changes After a Week
&lt;/h2&gt;

&lt;p&gt;The real value isn't day one. It's day seven.&lt;/p&gt;

&lt;p&gt;By then, &lt;code&gt;MEMORY.md&lt;/code&gt; has 15-20 verified patterns from your work. Things like "this ORM silently drops null values" or "user prefers 2-space indentation". The agent stops asking and starts knowing.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;next-session-prompt.md&lt;/code&gt; has a clean thread of where each project stands. You switch between three projects? Each one picks up exactly where it left off.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;pre-compact.sh&lt;/code&gt; hook has saved your context at least twice — you didn't even notice because it just worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons from 1000 Sessions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The agent won't use memory unless you tell it to.&lt;/strong&gt; Claude Code has an auto-memory directory, but in my experience it stays empty. The system-level mechanism exists, but without explicit instructions in &lt;code&gt;CLAUDE.md&lt;/code&gt;, the agent rarely writes to it. That's why the starter kit includes both the files &lt;em&gt;and&lt;/em&gt; the instructions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-project safety matters more than you think.&lt;/strong&gt; Two Claude Code windows editing the same file = silent data loss. The PROJECT tags solve this — each window only edits its own section.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-compact hooks are essential, not optional.&lt;/strong&gt; When Claude's conversation gets too long, it compresses the history. If your context wasn't saved before compression, it's gone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills should live globally, not per-project.&lt;/strong&gt; I tried per-project skills. Then I had 8 copies of the same Gemini skill, each slightly out of date. Global install works much better.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The kit is MIT-licensed and contributions are welcome. Areas that need work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;More starter templates&lt;/strong&gt; — framework-specific (Next.js, Python, Rust)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill discovery&lt;/strong&gt; — better triggering descriptions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conflict resolution&lt;/strong&gt; — true parallel writes still need locking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building with Claude Code daily, give the starter kit a try. The setup takes 30 seconds and the payoff compounds with every session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/awrshift/claude-starter-kit" rel="noopener noreferrer"&gt;awrshift/claude-starter-kit&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by Serhii Kravchenko — based on 1000+ sessions of iterative refinement with Claude Code.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
