Engineering Principles¶
1. Adopt Before Build If Drupal Contrib, Gas City upstream, GitLab native, or an established OSS library already provides a capability, adopt it. Delete custom reimplementations.
2. Configure Before Customize Prefer declarative configuration over imperative code. Use the platform's native settings and UI before resorting to custom hooks, plugins, or scripts.
3. Compose Before Extend Build capabilities by composing existing modules, recipes, and packs. Only extend through supported APIs when composition cannot satisfy the requirement.
4. Smallest Stable Owner Assign ownership of a capability to the smallest, most stable, and most upstream system capable of enforcing it (e.g., let Drupal handle permissions, let GitLab handle CI, let Gas City handle orchestration).
5. Net-Negative Ownership Success is measured as net ownership removed or avoided while preserving behavior, security, observability, and supportability. Minimize the custom maintenance burden.
6. Evidence Before Completion Work is not complete when code is written; it is complete when the effect is proven with a verification receipt, passing CI pipeline, and recorded evidence.