In two days, I turned 70 years of Warren Buffett's shareholder letters into a knowledge graph.

A crazy thought.

A Crazy Idea

It all started simply enough.

One evening, I was reading Warren Buffett's 2024 shareholder letter and came across his note that Coca-Cola's dividend to Berkshire Hathaway had grown from $75 million in 1994 to $704 million in 2022 — the same investment, with dividends rising nearly tenfold.

I froze.

What stopped me wasn't the number itself. I suddenly realized: From his first partnership letter in 1956 to now, Buffett has spent 70 years explaining his thinking to shareholders with almost unfailing sincerity, year after year.

Seventy years. Eighty-one letters. This may be the longest, most sincere, and most valuable investment textbook in business history.

But here's the problem — it's scattered.

Want to understand "moat"? You'll need to dig through a dozen letters. Want to trace the full Coca-Cola story? That's 1988 to 2024. Want to grasp how Buffett's understanding of compounding deepened step by step? You'll be piecing together fragments across half a century.

So I had a crazy idea:

What if I translated all 70 years of letters into Chinese and built them into an interconnected knowledge graph?

Every investment concept, every company, every key figure would become a clickable node with pathways running in all directions. A knowledge castle you could live inside, not just a bookshelf.

Honestly, even I thought it sounded unrealistic at first.

Eighty-one letters, ranging from a few thousand to over ten thousand words each. Translation was only the first step — then came concept extraction, relationship building, format standardization, cross-referencing...

If done entirely by hand, this would be a project measured in years.

But I had Claude Code.

Starting with the First Letter

Here's how I did it.

Opened the terminal, entered the project directory, and gave Claude Code a clear instruction: start with Buffett's 1957 partnership letter, translate it into Chinese, extract core concepts, and output in Obsidian format.

Claude Code's response speed surprised me.

It didn't just translate — it understood context. When Buffett mentioned "low-estimate situations" and "general issues" in that 1957 letter, it rendered them as "undervalued investments" and "broad-market-following investments," then automatically flagged these as two investment concepts worth their own dedicated files.

Even better, when I had it process later letters, it would proactively note: "The 'moat' concept mentioned here has evolved from its 1995 formulation — want to update the concept file?"

Rather than a translation machine, it felt like a research partner reading alongside you.

We developed an efficient workflow:

  1. I provided the source material (English shareholder letter PDFs)
  2. Claude Code translated the full text, preserving Buffett's tone and style
  3. It automatically extracted key concepts, companies, and figures, marking them as [[double-bracket links]]
  4. It generated standardized YAML metadata headers (title, date, type, tags)
  5. I reviewed, adjusted, and confirmed

One letter, from raw text to complete knowledge node: roughly 20–30 minutes.

But here's the key — Claude Code supports running multiple Agents in parallel. I fired up 5 Agents at once, each handling a batch of letters, translating, extracting concepts, and generating links simultaneously.

Eighty-one letters. One afternoon. Fully translated.

The Knowledge Skeleton: More Than Translation

Translating 81 letters was just the foundation.

What truly set this project apart was the three-layer knowledge architecture built on top:

Layer 1: 35 Investment Concepts

Working with Claude Code, I distilled 35 core concepts that Buffett returned to repeatedly across 81 letters:

  • Definition and origin — which letter first introduced this concept
  • Core tenets — 3–4 sub-arguments
  • Real-world cases — specific company, year, dollar amount
  • Common misconceptions — how Buffett himself corrected misreadings
  • Intellectual evolution — how the same concept deepened from the 1950s to the 2020s
  • Direct quotations — 5–10 of Buffett's original lines

Take "compounding." Claude Code helped me trace its evolution across 64 letters:

1956–1969: Compounding as a performance measurement tool — Buffett used it to persuade partners 1970–1989: Compounding became a stock selection criterion — he began hunting for "businesses that let compounding run on autopilot" 1990–2009: Compounding slowed, and Buffett openly acknowledged that scale is compounding's enemy 2010–2025: Compounding elevated to philosophy — not merely investing, but a foundational logic for life itself

One concept, four eras, four depths of understanding. No existing Buffett book will map this out for you.

Layer 2: 61 Company Profiles

Every significant company Buffett mentioned across 70 years got its own profile:

  • GEICO (mentioned in 75 letters): from Graham's 1951 recommendation to full acquisition in 1996 to renewed vitality in 2024
  • Coca-Cola (72 letters): how a $1.3 billion investment became a dividend machine that never stops
  • See's Candies (64 letters): the business Buffett said "taught me what a good business looks like"

Each company profile links back to every letter that mentioned it, and forward to every investment concept it exemplifies.

Click "Coca-Cola" and you see every word Buffett said about it across 40 years. Click "moat" and you see which companies he used to explain the concept. Knowledge begins to flow like water.

Layer 3: 7 Key Figures

Graham, Munger, Ajit Jain, Greg Abel...

Each figure's profile tracks every evaluation Buffett made of them in his letters. You can watch Munger's image across 48 letters shift from "my partner" to "the man who changed my entire investment framework."

Discoveries That Surprised Even Me

Building this knowledge base yielded several insights that struck me deeply:

Discovery one: Buffett admits mistakes far more often than you'd think.

When you lay 70 years of letters side by side, you find Buffett devoting entire paragraphs every few years to detailed explanations of what he got wrong. Dexter Shoe, US Airways... he doesn't gloss over them — he analyzes where his thinking process broke down.

In his 2024 letter, he was still reflecting on mistakes from decades past.

Discovery two: Buffett didn't formally use the word "moat" until 1995.

But the concept's prototype — what he called "franchise" — appeared repeatedly in the 1970s. The concept remained; the expression evolved. If you only read the last decade's letters, you'd assume "moat" was a static idea. But the knowledge base's timeline reveals: it's alive, it's growing.

Discovery three: Munger's influence on Buffett ran even deeper than most books suggest.

The 48-letter mention record clearly shows a fundamental shift in Buffett's investment framework around the mid-1970s — from Graham-style "cigar butt" picking to "buying wonderful companies at fair prices." And every step of this transformation carried Munger's shadow.

These discoveries weren't things I deliberately hunted for. They emerged organically from the connections between concepts once the knowledge base was built.

That's the power of a knowledge graph — it reveals what single-document reading never could.

What Claude Code Actually Did

At this point, I want to be honest about Claude Code's role in this project.

It's not magic. It's an extraordinarily powerful lever.

Specifically, Claude Code helped me with:

  1. High-quality translation — not word-for-word, but contextual paraphrase that grasps Buffett's intent. Buffett's humor, his self-deprecation, his "chatting with a friend" tone — most of it survived.
  2. Concept recognition and linking — after reading a letter, it could accurately identify "this is about moats," "this mentions float," "this company appeared in the 1987 letter too." This cross-document memory is something humans struggle to match.
  3. Format standardization — 188 files, each with uniform YAML metadata, uniform section structure, uniform link formatting. Doing this by hand, merely maintaining consistency would be maddening.
  4. Frequency statistics and graph construction — "Intrinsic value appears in 76 letters," "compounding mentioned 64 times" — Claude Code generated these naturally as it processed.

But let me also be clear about what Claude Code did not do:

Judgment calls were mine. Why Buffett? Why Obsidian? Why this three-layer architecture? These decisions were human.

Quality control was mine. I spot-checked translations and audited key concept cards for accuracy. AI makes mistakes — sometimes it takes a metaphor literally, sometimes it drops important context. My job was setting rules, sampling, and steering.

Intellectual insights were collaborative. Some surprising discoveries I noticed during review; others Claude Code flagged proactively during processing. This was genuine human-machine collaboration — each contributing what they do best.

Final Numbers

ItemFigure
Letters translated81, spanning 70 years (1956–2025)
Knowledge base files188
Investment concept cards35
Company profiles61; figure profiles: 7
Internal cross-links4,194
Translation timeOne afternoon (5 Agents in parallel)
Total project time~2 days (including website deployment)

Without Claude Code, this project would conservatively require six months to a year.

Not because translation is hard — machine translation has handled basic rendering for years. The difficulty lies in comprehension, distillation, connection, and structuring. These four tasks were once human-only and extraordinarily time-consuming.

Now: 5 Agents working in parallel, 81 letters translated in one afternoon. Day two: build the website, deploy it live. Two days, from zero to a complete online knowledge base.

From Obsidian Notes to the Internet: One Command to Deploy

Once the knowledge base was built locally, I thought: something this good shouldn't be mine alone.

So I had Claude Code do one more thing — turn the entire local knowledge base into a website anyone could open in a browser.

The process was far simpler than I expected: Claude Code automatically converted 188 files into web pages, generated a homepage and navigation, then published everything online with one command. I never opened a code editor, never manually configured a server.

And just like that, a complete Buffett knowledge base website went live:

https://buffett-letters-eir.pages.dev/

The left navigation lets you browse by category — partnership letters, Berkshire letters, concepts, companies, figures. Every internal link is clickable. You can roam freely through the knowledge network, jumping from a letter to a concept to a company like you would on Wikipedia.

Hosting is free, maintenance is hands-off, access is always available.

Closing: How Should We Learn in the AI Era?

Finishing this project, my strongest feeling is this:

Learning in the AI era isn't about "having AI read for you." It's about "building knowledge architectures together with AI."

Buffett's 70 years of shareholder letters — AI can summarize them into a one-page brief in seconds. But you'll forget that summary the moment you finish it.

When you personally participate in constructing the knowledge base — deciding classifications, auditing every concept, discovering hidden connections between ideas — that knowledge actually takes root in your mind.

AI is the scaffolding. But the building is yours.

Buffett himself once said:

"I succeeded because I started very young and I never stopped learning."

Seventy years of shareholder letters are the complete record of his 70-year education.

And now, with Claude Code, we finally have an unprecedented way to enter that record and truly understand it.

If you too have a "crazy idea" — some domain where the knowledge feels too scattered, and you want to systematize it — I genuinely encourage you to try this path.

The tools are ready. All that's missing is your idea.


The author built the complete Warren Buffett shareholder letter knowledge base using Claude Code: 188 interconnected knowledge nodes with over 4,194 cross-links. Visit online: buffett-letters-eir.pages.dev