Status: Stable
Last Reviewed: 2026-02-28
Defines engineering and coding preferences.
Repository structure and documentation rules are defined in project-standards.md.
Prefer:
- Modular architecture
- Clear separation of concerns
- Layered systems
- Minimal coupling
- Explicit interfaces
Avoid:
- Monolithic logic
- Hidden dependencies
- Overengineering abstractions
Use for:
- Systems programming
- Performance-critical code
- Engines
- Embedded work
Prefer:
- RAII
- Modern C++ features where beneficial
- Clear ownership semantics
Use for:
- Tooling
- Backend services
- Data processing
- Experimentation
Prefer:
- Clear structure
- Minimal global state
- Explicit dependencies
Prefer:
- CMake for C/C++
- Native ecosystem tools otherwise
Builds must be reproducible.
- Code clarity over cleverness
- Explicit over implicit
- Stability over novelty
- Maintainability over shortcuts
- Minimize setup burden for contributors.
- Prefer automation for repetitive environment and bootstrap steps.
- Keep dependency checks explicit and actionable.
- Provide graceful fallback paths when optional tools are missing.
Explain:
- Why something exists
- Non-obvious decisions
Avoid obvious comments.