Skip to main content
Lab Grimoire
TW EN
Coffee
200 Lines of Code, 28 Days, 32,000 Lines: An AI Self-Evolution Experiment
Tool Reviews

200 Lines of Code, 28 Days, 32,000 Lines: An AI Self-Evolution Experiment

On this page

A developer named Yuanhao wrote 200 lines of Rust code. He gave it a single instruction: "Evolve into something that can compete with Claude Code." Then he mostly stepped back.

Twenty-eight days later, the program had written itself into 32,000 lines of code with over 1,370 tests — a complete, functional terminal AI coding assistant.

This is what that experiment looked like, what it revealed, and where it hit its ceiling.


Figure 1

The Truman Show Architecture

Yuanhao calls this experiment a "Truman Show" — the AI lives, works, and evolves in a transparent environment, with all progress publicly visible and logged.

On the surface, yoyo-evolve is a terminal AI coding assistant, similar in function to Claude Code or Aider. Underneath, it's a novel experiment: can an AI grow from a seed state into a complete software product through its own judgment?

Every 8 hours, GitHub Actions wakes the system. It reads its own source code, reviews community-submitted Issues to understand what needs improvement, and decides what to work on next. Each modification must pass four quality gates: code formatting, compilation, test suite, and static analysis. Any gate failure triggers an immediate rollback.

The quality gates are critical. They make the evolution verifiable and reversible — without them, "self-improvement" becomes "self-corruption."


The Constitution and the Guardrails

The smartest design choice in the project isn't how the AI writes code. It's what the AI is not allowed to touch.

Two files — IDENTITY.md and PERSONALITY.md — are flagged as immutable. They define the AI's behavioral boundaries: who it is, what its values are, what it absolutely cannot do. The AI reads them but cannot modify them.

Community-submitted Issues are treated as untrusted input. The AI reads Issue content to understand requirements, but never directly executes code snippets that appear in Issues. This is a deliberate defense against social engineering: a bad actor could submit an Issue containing malicious code and attempt to get the AI to execute it.

The philosophy is clear: give the AI freedom, but frame that freedom with immutable principles.


28 Days in Four Phases

The evolution log is public, with daily records. Four distinct phases emerge:

Days 1-5 — Foundation. From the 200-line seed, the system grows basic file I/O, a REPL loop, and LLM API integration. Functional but minimal.

Days 6-15 — Explosion. Git integration, fuzzy search, multi-file editing, a memory system (JSONL-format learning archive) — features arrive rapidly. Test count jumps from zero to hundreds.

Days 16-25 — Maturation. Edge case handling, performance optimization, crash recovery. But the first signs of technical debt appear: some refactoring attempts fail, get rolled back, and leave "reverted tasks" in the issue tracker.

After Day 25 — The ceiling. The creator acknowledges that the AI's practice of re-reading its entire source code every session was unsustainable at 15,000 lines. At 32,000 lines, the problem is worse.


What's Actually Interesting About This

yoyo-evolve is nowhere near competitive with Claude Code or Aider. The capability gap is significant, stability is limited, and it remains an early v0.1.4 prototype.

But the result is not the point. The process reveals three things that matter:

AI-written code can pass mechanical quality checks. Compilation, testing, static analysis — the system clears these consistently. But design coherence and long-term maintainability remain blind spots. 32,000 lines written entirely by AI, without a human architect's eye for design, will accumulate technical debt that eventually becomes a crisis.

Memory inflation is the fundamental bottleneck. Self-evolving systems need to understand their own complete codebase to make good decisions about what to change. But the larger the codebase grows, the higher the cost of that understanding. This is not a technical quirk of AI — it's identical to the knowledge management crisis that human organizations face as they scale.

Constitutional design quality determines the safety boundary. IDENTITY.md is a simple text file. But it prevents the AI from drifting away from the creator's intent across hundreds of autonomous iterations. The quality of these constraint files — how precisely they capture the system's purpose and limits — determines whether autonomous evolution stays aligned.


What This Means for You

If you're a developer: yoyo-evolve provides a replicable experimental framework — seed code plus quality gates plus immutable principles plus scheduled triggers. You can use the same architecture to have AI autonomously maintain internal tools, keeping them functional as the surrounding environment changes.

If you're not a developer: this experiment shows you a trend that's forming at the edges of the software world. Software isn't only written by humans anymore. It isn't even just AI-assisted anymore. In some small, constrained, early ways — software is beginning to grow itself.

The pattern is far from mature. But the 28-day journey from 200 lines to 32,000 proves at least one thing: the direction is viable, and the ceiling hasn't been reached yet.


References

  1. yologdev/yoyo-evolve GitHub Repository. https://github.com/yologdev/yoyo-evolve
  2. yoyo-evolve Evolution Log (Day 25). https://yologdev.github.io/yoyo-evolve/
  3. Yuanhao — Creator's Public Post. https://x.com/yuanhao/status/2029591201876238341
  4. DeepWiki — yoyo-evolve GitHub Actions Automation Architecture. https://deepwiki.com/yologdev/yoyo-evolve/4.3-github-actions-automation

Found this useful?

Follow for new AI × biomedical research notes:

Or buy me a coffee to keep new content coming.

☕ Buy Me a Coffee