1.3 KiB
CLEAR: Design Principles for the LLM Era
C - Constrained Make invariants, rules, and constraints explicit. Tribal knowledge, unwritten conventions, and "we just don't do that" must be codified in types, contracts, tests, and documentation. LLMs can't infer what you never wrote down.
L - Limited Design bounded autonomous zones with contained blast radius. Each module is a workspace where an LLM can operate freely without risking the broader system. Clear boundaries enable safe delegation.
E - Ephemeral
Optimize for regeneration over preservation. Distinguish canonical code (precious, hand-crafted) from derived code (disposable, LLM-generated). Make it obvious what can be rewritten from specs versus what must be maintained.
A - Assertive Build observable correctness through runtime verification, property tests, and comprehensive type systems. When an LLM makes changes, you need immediate, mechanical feedback—not manual inspection.
R - Reality-Aligned Align code structure tightly with domain reality and intent. Misalignment between your model and reality gets amplified catastrophically. Invest in ubiquitous language and domain modeling—the clearer your concepts, the better the LLM performs.
CLEAR code is safe to generate, easy to verify, and hard to break.