c4-structurizr
C4 Structurizr
Generate an evidence-backed C4 architecture model for one focal system. Produce seven C4-PlantUML files, render them to SVG, and verify that every rendered diagram is nonblank and traceable to the codebase. Do not use default C4-PlantUML styling.
Workflow
-
Determine the target project. Use the supplied project path, otherwise infer it from the current repository. If the project or focal system is ambiguous, stop and ask one concise question.
-
Read references/model-analysis.md. Inventory people, software systems, containers, components, external systems, stores, queues, processes, deployments, and relationships from code, configuration, manifests, infrastructure files, tests, and existing documentation.
-
If the model, configuration, dependencies, prompts, agents, workflows, runtime executors, model adapters, context stores, or trace stores show an AI workflow, also read references/ai-workflow-analysis.md and complete the AI inventory before drawing. If no such evidence exists, do not add AI semantics.
-
Read references/view-catalog.md. Choose the seven views, including a domain-specific dynamic flow and critical path. If a view cannot be supported by evidence, stop and report the missing evidence instead of inventing it.
-
Create the diagram workspace. Use
docs/architecture/structurizr/plantumlin the target project unless the user specifies another location. Copyassets/c4-style.pumlinto that directory and copyassets/c4-plantuml/into the siblingdocs/architecture/tools/c4-plantumldirectory. If the target layout is different, keep the include paths valid and tell the user where assets were staged. -
Generate seven
.pumlfiles with concise, evidence-backed names. Prefer these canonical names:system-landscape.puml,system-context.puml,container.puml,component.puml,dynamic-flow.puml,deployment.puml, andcritical-path.puml. A domain-specific suffix is acceptable when it improves clarity; an AI-driven system may useai-critical-path.pumlfor the model-backed path. -
Render with:
python "<skill-directory>/scripts/render_c4.py" --source "<diagram-directory>"