BMAD-METHOD/expansion-packs/bmad-c4-architecture/tasks/generate-structurizr-dsl.md

1.7 KiB

Generate Structurizr DSL

Purpose

Generate a complete Structurizr DSL workspace from existing C4 model information.

Prerequisites

  • C4 model elements defined
  • Relationships mapped
  • View requirements specified

Process

1. Gather Model Information

  • All persons, systems, containers, and components
  • All relationships and their properties
  • View requirements and styling preferences
  • Workspace metadata

2. Structure the DSL

  • Create workspace header with name and description
  • Define model section with all elements
  • Define views section with all diagrams
  • Apply styling and theming

3. Generate Complete DSL

workspace "Workspace Name" "Description" {
    model {
        // All model elements
        user = person "User" "End user"
        softwareSystem = softwareSystem "System" "Main system" {
            // Containers and components
        }
    }

    views {
        // All views
        systemContext softwareSystem {
            include *
            autolayout lr
        }
        container softwareSystem {
            include *
            autolayout lr
        }
        component container {
            include *
            autolayout lr
        }
        theme default
    }
}

4. Validation

  • DSL syntax is correct
  • All elements are properly defined
  • All relationships are valid
  • Views are properly configured
  • Styling is consistent

Output

  • Complete Structurizr DSL file
  • Validation report
  • Usage instructions

Elicitation Questions

  1. What should be the workspace name and description?
  2. Are there any specific styling requirements?
  3. What views need to be included?
  4. Are there any custom properties or tags needed?
  5. What deployment information should be included?