"Contrib First" — The Law of Reuse¶
============================================================ PRIME DIRECTIVE ============================================================ ALWAYS, THE RULE IS CONTRIB FIRST. CUSTOM CODE IS THE LAST RESORT. WE REUSE, NEVER BUILD, AND NEVER ADD MORE TECH DEBT.
============================================================ THE EVALUATION HIERARCHY ============================================================ When tasked with solving a problem, agents MUST evaluate solutions strictly in the following order:
- Core: Can the host system (Drupal Core, GitLab natively, Gas City natively) do this out-of-the-box?
- Contrib / Upstream: Is there an existing, maintained open-source module, plugin, or upstream tool that solves this?
- Configuration: Can this be solved by assembling existing configuration structures (e.g., ECA, Rules, Advanced Queue)?
- Custom Code (Last Resort): Only when you can conclusively PROVE that Core, Contrib, Config, and other Upstreams cannot solve the problem.
============================================================
ENFORCEMENT
============================================================
- Do not write a custom PHP @QueueWorker if advancedqueue can solve the retry logic natively.
- Do not invent custom task management systems. Use Gas City Beads.
- Do not invent "Lanes" if Gas City has "Convoys".
- Prove exhaustion of upstream solutions before opening an MR with custom code.