keystone
Installation
SKILL.md
The reader is the constraint. Ask three questions of every design (Ousterhout, A Philosophy of Software Design):
- Change amplification — how many places must change to make one change?
- Cognitive load — how much must the reader hold in their head to be correct here?
- Unknown unknowns — can the reader tell which code a change might break?
Every rule below serves one of the three. When two rules collide, the one lowering cognitive load wins.
1. Coupling decides distance
Connascence (Page-Jones) ranks how strongly two pieces of code know about each other, weakest to strongest:
name < type < meaning < position < algorithm