107 lines
3.9 KiB
YAML
107 lines
3.9 KiB
YAML
name: "C4 Component Diagram Template"
|
|
description: "Template for creating C4 Component diagrams using Structurizr DSL"
|
|
version: "1.0"
|
|
|
|
sections:
|
|
- id: container-context
|
|
title: "Container Context"
|
|
instruction: "Reference the container from container diagram"
|
|
fields:
|
|
- id: container-name
|
|
title: "Container Name"
|
|
type: "text"
|
|
required: true
|
|
placeholder: "Must match a container from container diagram"
|
|
- id: container-description
|
|
title: "Container Description"
|
|
type: "textarea"
|
|
required: true
|
|
placeholder: "Brief description of the container"
|
|
|
|
- id: components
|
|
title: "Components"
|
|
instruction: "Define the components within the container"
|
|
fields:
|
|
- id: controllers
|
|
title: "Controllers and Handlers"
|
|
type: "list"
|
|
required: false
|
|
placeholder: "List controllers (e.g., UserController, OrderController)"
|
|
- id: services
|
|
title: "Services and Business Logic"
|
|
type: "list"
|
|
required: false
|
|
placeholder: "List services (e.g., UserService, PaymentService)"
|
|
- id: repositories
|
|
title: "Data Access Layers"
|
|
type: "list"
|
|
required: false
|
|
placeholder: "List repositories (e.g., UserRepository, OrderRepository)"
|
|
- id: external-interfaces
|
|
title: "External Interfaces"
|
|
type: "list"
|
|
required: false
|
|
placeholder: "List external interfaces (e.g., PaymentGateway, EmailService)"
|
|
- id: utilities
|
|
title: "Utilities and Shared Libraries"
|
|
type: "list"
|
|
required: false
|
|
placeholder: "List utilities (e.g., Logger, Validator, Cache)"
|
|
|
|
- id: technologies
|
|
title: "Component Technologies"
|
|
instruction: "Specify technologies for each component type"
|
|
fields:
|
|
- id: controller-tech
|
|
title: "Controller Technologies"
|
|
type: "textarea"
|
|
required: false
|
|
placeholder: "Technologies for controllers (e.g., Spring MVC, Express.js)"
|
|
- id: service-tech
|
|
title: "Service Technologies"
|
|
type: "textarea"
|
|
required: false
|
|
placeholder: "Technologies for services (e.g., Java, Node.js, Python)"
|
|
- id: data-tech
|
|
title: "Data Access Technologies"
|
|
type: "textarea"
|
|
required: false
|
|
placeholder: "Technologies for data access (e.g., JPA, Hibernate, Mongoose)"
|
|
|
|
- id: relationships
|
|
title: "Component Relationships"
|
|
instruction: "Define how components interact"
|
|
fields:
|
|
- id: component-interactions
|
|
title: "Component Interactions"
|
|
type: "textarea"
|
|
required: true
|
|
placeholder: "How do components interact? (e.g., method calls, events)"
|
|
- id: data-flow
|
|
title: "Data Flow"
|
|
type: "textarea"
|
|
required: true
|
|
placeholder: "How does data flow between components?"
|
|
- id: interfaces
|
|
title: "Key Interfaces"
|
|
type: "textarea"
|
|
required: true
|
|
placeholder: "What are the key interfaces and APIs?"
|
|
|
|
- id: llm-instructions
|
|
title: "LLM Instructions"
|
|
instruction: "AI processing instructions for generating the DSL"
|
|
content: |
|
|
Based on the provided information, generate a complete Structurizr DSL workspace that creates a C4 Component diagram. Follow these guidelines:
|
|
|
|
1. Use the container name and description from the container diagram
|
|
2. Create component elements for each identified component
|
|
3. Specify appropriate technologies for each component
|
|
4. Define relationships between components with proper technology labels
|
|
5. Include relationships to external systems and databases
|
|
6. Create a component view that shows all components within the container
|
|
7. Apply autolayout for better diagram appearance
|
|
8. Use the default theme
|
|
|
|
The DSL should be complete and ready to use with Structurizr Lite.
|