Structure and Naming Governance
Structure and Naming Governance
Core Principle
Do not enforce one universal project tree.
Enforce structural properties instead:
- clear responsibility boundaries
- predictable placement
- semantic names
- controlled depth
- minimal duplication
- explicit lifecycle
- separation of source and generated materials
Directory Rules
A directory should have a clear reason to exist.
A new directory is justified when it provides a meaningful responsibility, lifecycle, ownership, or tooling boundary.
Avoid directories whose only purpose is to hold one arbitrary file unless the project convention makes that meaningful.
Naming Rules
Names should answer as many of these as practical:
- What is this?
- What role does it play?
- Is it active or historical?
- Is it source, generated output, configuration, or reference material?
Prefer stable semantic names over vague chronology.
Bad smells:
newnew2miscstufftemplatestfinal2backup
These are acceptable only as short-lived controlled states, not as permanent project organization.
Structural Debt
Structural debt accumulates when temporary decisions become permanent:
- repeated copies
- unexplained folders
- stale exports
- obsolete documents
- inconsistent naming
- duplicated configuration
- files placed "for now" and never revisited
When structural debt is found, prefer small targeted cleanup over a giant reorganization.
Generated and Temporary Materials
Clearly distinguish:
- source
- generated
- temporary
- cache
- exported
- archived
Generated artifacts should either be reproducible or intentionally governed as versioned project outputs.
Refactoring Structure
Before moving or renaming:
- identify references
- identify external consumers if relevant
- create recovery point when risk warrants
- move/rename consistently
- verify references
- update documentation
- inspect for orphaned old paths
Aesthetic Rule
Professional structure usually feels simple because it is explainable, not because it contains the fewest folders possible.