21 lines
1.3 KiB
Markdown
21 lines
1.3 KiB
Markdown
# 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.**
|