关于 c4-structurizr
c4-structurizr 是一项技能,可根据项目代码和文档生成有依据的 C4 架构模型。它指导开发者创建七种带样式的 PlantUML 视图、渲染 SVG 并验证结果。
主要功能
- 01盘点架构证据
- 02按需分析 AI 工作流
- 03选择七种架构视图
- 04生成带样式的 C4-PlantUML 文件
- 05渲染并验证 SVG 图表
适用场景
- 01记录项目系统架构
- 02将图表内容追溯至代码和配置
- 03梳理有证据支持的 AI 工作流路径
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mercatorproj/ c4-structurizr --skill c4-structurizr安装后在 Claude Code 中输入/c4-structurizr确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreREADME.mdLICENSEagents/openai.yamlassets/c4-style.pumlassets/c4-plantuml/C4_Container.pumlC4_Component.pumlC4_Deployment.pumlC4_Context.pumlC4.pumlC4_Dynamic.pumlC4_Sequence.pumlreferences/ai-workflow-analysis.mdview-catalog.mdmodel-analysis.mdscripts/render_c4.py详细介绍
C4 Structurizr
为一个核心系统生成有证据支撑的 C4 架构模型。生成七个 C4-PlantUML 文件,将其渲染为 SVG,并验证每张渲染后的图表均非空且可追溯到代码库。不要使用默认的 C4-PlantUML 样式。
工作流
-
确定目标项目。使用提供的项目路径;否则,根据当前仓库推断。如果项目或核心系统不明确,请停止并提出一个简洁的问题。
-
阅读 references/model-analysis.md。根据代码、配置、清单、基础设施文件、测试和现有文档,梳理人员、软件系统、容器、组件、外部系统、存储、队列、进程、部署和关系。
-
如果模型、配置、依赖项、提示词、Agent、工作流、运行时执行器、模型适配器、上下文存储或追踪存储显示存在 AI 工作流,也要阅读 references/ai-workflow-analysis.md,并在绘图前完成 AI 梳理。如果没有此类证据,则不要添加 AI 语义。
-
阅读 references/view-catalog.md。选择七种视图,其中包括特定于领域的动态流程和关键路径。如果某个视图缺乏证据支撑,请停止并报告缺失的证据,而不是凭空编造。
-
创建图表工作区。除非用户指定其他位置,否则在目标项目中使用
docs/architecture/structurizr/plantuml。将assets/c4-style.puml复制到该目录,并将assets/c4-plantuml/复制到同级的docs/architecture/tools/c4-plantuml目录。如果目标目录布局不同,请确保包含路径有效,并告知用户资源文件的暂存位置。 -
生成七个名称简洁且有证据支撑的
.puml文件。优先使用以下规范名称:system-landscape.puml、system-context.puml、container.puml、component.puml、dynamic-flow.puml、deployment.puml和critical-path.puml。如果使用特定于领域的后缀能提升清晰度,也可以使用;由 AI 驱动的系统可将基于模型的路径命名为ai-critical-path.puml。 -
使用以下命令进行渲染:
python "<skill-directory>/scripts/render_c4.py" --source "<diagram-directory>"需要 PNG 预览进行视觉检查时,添加
--preview。如果渲染器无法定位plantuml.jar,则添加--plantuml-jar "<path>"。 -
验证七个 SVG 文件均存在且非空,使用预期的白色背景和强调色,并包含清晰可读的文本。布局复杂时,查看预览。根据分析清单检查关系、元素类型、边界和关键路径顺序。对于 AI 系统,验证无需阅读 PlantUML 源码,就能从视觉上辨识运行时边界、Agent 与工作流的区别、执行器、模型网关、上下文和追踪路径。
-
报告图表目录、七个图表名称、渲染状态,以及支撑主要架构论点的代码路径。明确报告尚未解决的证据缺口。
图表源文件规则
- 每个文件都以
@startuml <DiagramId>开头,并以@enduml结尾。 - 首先包含一个 C4-PlantUML 入口文件,然后再包含
!include c4-style.puml。 - 在默认工作区中,使用
!include ../../tools/c4-plantuml/C4_Context.puml这类包含路径。 - 让
@startuml的 id 与所需的输出文件名一致,因为 PlantUML 会使用该 id 作为 SVG 和 PNG 文件名。 - 在每个视图中使用
SHOW_PERSON_OUTLINE()和HIDE_STEREOTYPE()。 - 使用
left footer <b>...作为图表标题。不要使用 PlantUML 的title。 - 根据 C4 粒度使用
Person、System、System_Ext、Container、ContainerDb、Container_Ext、ContainerDb_Ext、Component和Deployment_Node。 - 为每个
Rel和RelIndex关系添加$tags="OfficialRelationship"。 - 人员使用绿色,内部元素使用蓝色,通用外部系统使用灰色,边界使用蓝色实线,关系使用粗虚线,背景使用白色。可以追加项目专属的语义强调标签,但不得弱化基础样式值。
- 仅对有证据支持的元素使用共享 AI 标签:
AIWorkflow、AIAgent、AIExecutor、AIContext、AITrace、AIBoundary、AIFlow、ModelCall、AIContextFlow和AITraceFlow。在各视图中保持 AI 工作流语义一致,并在元素名称或描述中注明其角色,避免图表仅靠颜色传达信息。 - 使用目标项目的领域和技术术语。不要在为其他项目生成的图表中放入 6S 专属实体。
不要用一次性的 PlantUML 样式替换生成的文件。如果 C4-PlantUML 宏或样式行为与预期结果不同,请检查暂存的 C4-PlantUML 资源,并在重新生成全部七个图表之前先测试一个图表。