Skip to content

Workflow Sequences

workflows/extended_orchestration/extension_registry.json declares workflow sequences the Refinement Engine can re-enter.

The Refinement Engine chooses a route. The workflow registry owns what that route means.

App/product workspaces can consume the shipped factory registry without copying it by adding "extends": "mozaiks.default_workflow_registry" to their extension_registry.json. The loader merges registry lists by id, honors { "id": "...", "remove": true } tombstones, and resolves inherited factory workflow folders from packaged factory_app/workflows/.

Example:

{
  "pack_name": "DefaultPack",
  "version": 3,
  "artifact_dependency_graph": {
    "concept": [],
    "brand": ["concept"],
    "design_docs": ["concept"],
    "experience_spec": ["concept", "design_docs"],
    "workflow_bundle": ["design_docs"],
    "app_bundle": ["design_docs", "experience_spec", "workflow_bundle", "brand"]
  },
  "workflows": [
    { "id": "ValueEngine", "description": "Concept and value decomposition" },
    { "id": "ThemeCapture", "description": "Captures visual identity" },
    { "id": "DesignDocs", "description": "Frontend, backend, database design docs" },
    { "id": "AgentGenerator", "description": "Generates workflow artifacts" },
    { "id": "AppGenerator", "description": "Generates app schema and module files" }
  ],
  "workflow_sequences": [
    {
      "id": "app_revision",
      "affected_declarative_families": ["app_bundle"],
      "steps": [{ "workflows": ["AppGenerator"] }]
    },
    {
      "id": "full_rebuild",
      "affected_declarative_families": ["concept", "design_docs", "workflow_bundle", "app_bundle"],
      "steps": [
        { "workflows": ["ValueEngine"] },
        { "workflows": ["DesignDocs"] },
        { "workflows": ["AgentGenerator", "AppGenerator"] }
      ]
    }
  ]
}

Each sequence referenced by refinement_harness/config/harness.yaml must exist here and must declare affected_declarative_families.

Keep route impact metadata here, not in harness.yaml.