SKILL

Create a new Factory contract.

Parse args: a product SKU and industry (healthcare | higher-education | municipality | membership | nonprofit).

  1. Gate: a Product Definition for this SKU must exist (run the product-definition skill first). If none exists, or it has not passed the Commercial Work Gate (buyer, offer, revenue horizon established), stop and produce the definition before scaffolding a contract. A Factory without a defined Product is technology, not a product.

  2. Copy factories/amcs/factory.yaml as the reference (never start blank). Set metadata and spec.product (sku, industry, outcomes, catalog, operator_api blu-cli).

  3. Compose the seven domains as ownership boundaries: each owns: composition pointing at its upstream: Authority=Drupal business authority + OSSA/DUADP; Governance=ContextControl/ContractPlane/Cedar/Dragonfly; Runtime=Gas City; Experience=Canvas/AGUI/OpenClaw/Dashboard (four surfaces); Network=A2A (authority none); Delivery=GitLab/IaC; Marketplace.
  4. Fill spec.outputs per domain (the generated artifacts) for the chosen industry.
  5. Only add custom_justifications when an upstream genuinely can't cover a gap, and name the gap.
  6. Gate: python3 scripts/factory.py check factories/<sku>/factory.yaml; do not finish until it passes. Show the passing gate + plan.

Always load the operating model first (reference/factory-operating-model.md): the architecture is Product → Factory → Outputs → Domains → Systems; Bluefly owns composition, not implementation; compose, never reinvent; factory.yaml is the single source of truth.