greenspuns-tenth-rulelisted
Install: claude install-skill The-Artificer-of-Ciphers-LLC/skills-from-the-artificer
# Greenspun's Tenth Rule
> "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."
> — Philip Greenspun
## The core idea
When a program grows complex enough, developers eventually need features that their current language or framework doesn't easily provide: dynamic dispatch, higher-order functions, user-configurable behavior, extensibility hooks. Rather than adopting a language or tool that has these features natively, they build them from scratch — usually badly, incompletely, and without realizing that's what they're doing.
The result is a half-implemented, poorly-documented programming language or runtime lurking inside a codebase that was never meant to host one.
## What this looks like in practice
- A configuration file format that has grown conditionals, loops, and variables → you've built a scripting language
- A "template engine" with logic, iteration, and state → you've built a programming language
- A rules engine with complex precedence and side effects → you've built an interpreter
- A workflow system with retries, timeouts, and branching → you've built a runtime
- A plugin system with dynamic loading and lifecycle hooks → you've built a module system
The key tell: these systems are always **informal** (undocumented), **incomplete** (missing features that users keep requesting), **buggy** (edge cases not handled), and **slow** (performance not considered in the or