Most early systems fail in one of two ways. They are so loose that every new contributor must invent a method, or so rigid that the first unexpected need becomes an exception.
The better starting point is smaller: name the choices that recur, make their purpose visible, and leave the edges open. This creates a shared language without turning every project into a request for permission.
Design for revision
Good work rarely arrives complete. The job of a system is not to freeze a decision; it is to make the next decision easier, more consistent, and more informed than the last.
That is why we favor clear hierarchy, short guidance, and components that can change without disturbing the whole.