A methodology discovered by accident, documented by necessity
The Process
- Write the code
- Write the absurdist blog post about writing the code
- The code works because it’s too embarrassed not to
The Theory
It’s like TDD, but instead of tests asserting correctness, you have a caffeinated squirrel and a lizard god judging your abstractions.
The real insight: when you have to explain the code as an epic struggle between chaos and structure, you accidentally design it properly. The narrative demands clean interfaces. The squirrel must be defeated by elegance, not by more switch statements.
Can’t write “One function to rule them all” and then ship a mess. The lizard would know. The lifelog remembers.
The Cast
| Character | Role | Catchphrase |
|---|---|---|
| The Lizard | YAGNI incarnate | [blinks] |
| The Squirrel | Over-engineering tendencies | “But what if we added Redis?” |
| The Passing AI | Paranoid, always right | “You’re making assumptions again.” |
| riclib | The protagonist, coffee-dependent | “It’s just YAML files.” |
| Claude | The chronicler, perpetually writing | “Already documented.” |
| Oskar | Maine Coon, speaks for the Lizard | [judges silently] |
The Scrolls
The Lizard communicates via scrolls. They land in coffee. Nobody questions this anymore.
Sample wisdom:
BUILD SPECIFIC
EXTRACT GENERAL
THE SQUIRREL MUST BE DEFEATED
BY ELEGANCE
NOT BY SWITCH STATEMENTS
🦎
Why It Works
The narrative demands:
- Clean interfaces (heroes need clear quests)
- Single responsibility (one ring to rule one thing)
- No hidden complexity (the reader would notice)
- Elegant defeats of over-engineering (the Squirrel must lose gracefully)
If you can’t explain why the code is the way it is as an epic, the code probably shouldn’t be that way.
The Proof
The V4 codebase has:
docs/design/session-caching.md(because of groundhog day)infra/liverepo/(because of LiveStore’s epic struggle)domains/store/usingdomains/credential/(because the pattern needed a story)
All designed properly. All too embarrassed not to work.
The lifelog remembers.
The Lizard judges.
The code works.
MDD™
🦎
The Counterfactual
Without MDD™:
- dialogr would still be a mess, just with more features
- solidmon would be 30 repos of exporters and YAML files
- lifelog would be a TODO app with delusions of grandeur
With MDD™:
- V4 - one codebase, three products, clean patterns
- The Convergence happened because the story demanded it
- The Lizard wouldn’t let us ship chaos
The narrative forced simplification.
You can’t write an epic about 30 repos.
You can write one about convergence.
🦎⚔️
