Skip to content

Package as a recipe

Briefing, not authority. (R) rule at linked source · (O) dated upstream fact · (P) procedure · (C) open work · (G) not established.

WHAT THIS MEANS IN DRUPAL

A recipe is declarative composition: install modules, import other recipes, create config, apply config actions. It is not a module (R) how-we-build §4.

OWNER

PREREQUISITES

  1. (P) The capability works on a clean site as configuration.
  2. (P) Every module the config depends on is known.

DO THIS

  1. (P) Small and composable; higher recipes compose lower ones (R) how-we-build §5.
  2. (P) install: matches every dependencies.module in the config; nothing extra (R) standard "Module = capability".
  3. (P) Config actions for idempotent changes; Composer type drupal-recipe.
  4. (P) Apply on a fresh site; prove import, not just success output (R) standard §17.

WATCH FOR

  • A module shipping config for modules it does not declare makes drush en fatal (R) standard "Module = capability".
  • Hierarchy: Site Template > Domain Recipe > Foundation Recipe; foundation never grows AI/ECA/Tool logic (R) standard §10 platform stack.

DO NOT

  • PHP, .module or hooks inside a recipe Recipe factory playbook §4.
  • A module that only ships config (R) Rule I.
  • One giant recipe (R) how-we-build §5.
  • Add Composer deps to satisfy an unused install: line (R) standard "Module = capability".

OWNERSHIP / CAN-SHOULD-MAY

  • CAN: drush recipe, core recipe command.
  • SHOULD: recipes live under blueflyio/agent-platform/drupal/recipes/ (R) standard §10 platform stack.
  • MAY: consumers apply canonical recipes; never fork them (C) mba-eaxsj.

DO NOT REDISCOVER

  • Recipes over modules (R) Rule I. Composition authority is the recipe layer factory convergence.

CONFLICTS

ID A B Resolution
C-RECIPE-NAMESPACE recipe_amcs uses blueflyio/NAME recipe_blucity uses bluefly/NAME Open per standard §10 platform stack: needs a decision.

GO DEEPER

Anchored sources: frontmatter authority_sources. Expires last_verified + 30d.