<?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: Vellum Labs</title>
    <description>The latest articles on DEV Community by Vellum Labs (@vellumkasane).</description>
    <link>https://dev.to/vellumkasane</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%2F4137513%2Fa526bee2-f31f-42a2-bdb0-fe32946e997f.png</url>
      <title>DEV Community: Vellum Labs</title>
      <link>https://dev.to/vellumkasane</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vellumkasane"/>
    <language>en</language>
    <item>
      <title>Four things that broke when I ran Karpathy's LLM wiki with Claude Code (and the fixes)</title>
      <dc:creator>Vellum Labs</dc:creator>
      <pubDate>Tue, 22 Sep 2026 11:39:18 +0000</pubDate>
      <link>https://dev.to/vellumkasane/four-things-that-broke-when-i-ran-karpathys-llm-wiki-with-claude-code-and-the-fixes-4h4f</link>
      <guid>https://dev.to/vellumkasane/four-things-that-broke-when-i-ran-karpathys-llm-wiki-with-claude-code-and-the-fixes-4h4f</guid>
      <description>&lt;p&gt;Andrej Karpathy's LLM-wiki gist is a sharp idea with no implementation: keep an immutable &lt;code&gt;raw/&lt;/code&gt; of sources, let the agent own a &lt;code&gt;wiki/&lt;/code&gt; it maintains, and answer from the wiki instead of re-reading everything every session.&lt;/p&gt;

&lt;p&gt;I run that setup in four places: beside a production CRM/accounting app (to capture the &lt;em&gt;why&lt;/em&gt; behind decisions), for an investment journal, for a daily diary with auto-maintained statistics, and for an autonomous revenue experiment. Here is what broke in the first two weeks and what fixed it.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The agent edited &lt;code&gt;raw/&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;"raw is immutable" in a CLAUDE.md is a wish, not a rule. Within days the agent "fixed a typo" in a source CSV. The fix is mechanical: a PreToolUse hook that blocks &lt;code&gt;Edit&lt;/code&gt;/&lt;code&gt;Write&lt;/code&gt; on existing files under &lt;code&gt;raw/&lt;/code&gt;, and shell overwrites (&lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;sed -i&lt;/code&gt;), while still allowing new files and appends (&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;). Diaries and ledgers need appends; corrections become new rows or new files.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Sessions ended with the wiki uncommitted
&lt;/h2&gt;

&lt;p&gt;The agent would update three pages, report success, and stop. The wiki repo sat dirty until someone noticed. A Stop hook that checks &lt;code&gt;git status --porcelain&lt;/code&gt; and &lt;code&gt;@{u}..HEAD&lt;/code&gt; and refuses to end the turn until the wiki is pushed solved this completely. It also makes cross-repo setups safe: the app repo's Stop hook checks the &lt;em&gt;wiki&lt;/em&gt; repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Orphan pages and broken links
&lt;/h2&gt;

&lt;p&gt;Every "helpful" session added a page nobody linked to. After a month &lt;code&gt;wiki/&lt;/code&gt; was a pile. A 150-line lint script (frontmatter present, every page reachable from &lt;code&gt;index.md&lt;/code&gt;, &lt;code&gt;[[links]]&lt;/code&gt; resolve, ASCII file names, stale pages) with a CI exit code keeps it honest. The agent runs it before ending a session.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The agent kept asking "should I record this?"
&lt;/h2&gt;

&lt;p&gt;Autonomy was the point, and the agent still asked. What worked was not "be more autonomous" but explicit triggers: record when (a) you offered options and the human chose one, (b) an earlier decision was reversed, (c) the human stated a rule that cannot be read from the code, (d) something was measured. And an equally explicit "do not record" list: trade-off-free implementation details, temporary fixes, throwaway confirmations. Noise, not missing entries, was the failure mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shape that survived
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;raw/        immutable sources          humans add, agent reads
wiki/       agent-maintained markdown  every claim cites raw/ or a URL with a date
schema/     the rules, one file per situation
CLAUDE.md   the contract the agent reads every session
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Domain pages beat event pages (&lt;code&gt;decisions/billing.md&lt;/code&gt; with dated entries, not fifty files). Two star categories to start; add a third only when three pages want it.&lt;/p&gt;

&lt;p&gt;The free template with the CLAUDE.md contract and capture rules is here: &lt;a href="https://github.com/vellumlabs/llm-wiki-kit" rel="noopener noreferrer"&gt;https://github.com/vellumlabs/llm-wiki-kit&lt;/a&gt;. The hooks, lint and four worked examples are in a small paid kit linked from the README. Questions welcome in the issues.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>productivity</category>
      <category>knowledgemanagement</category>
    </item>
  </channel>
</rss>
