SKILL.md
唯讀
名稱
uml
描述
使用 PlantUML 語法繪製 UML 圖表。最適合軟體建模——透過簡潔的文字語法與自動排版,輕鬆建立類別圖(Class)、時序圖(Sequence)、活動圖(Activity)、狀態機圖(State Machine)、元件圖(Component)、用例圖(Use Case)及部署圖(Deployment)。
UML 圖表產生器
快速上手: 選擇圖表類型 → 撰寫 PlantUML 文字 → 定義元素與關係 → 包裹在 ```plantuml 程式碼區塊中。
⚠️ 重要: 請務必使用
```plantuml或```puml程式碼區塊。切勿使用```text——否則無法渲染為圖表。
關鍵規則
- 每張圖表皆以
@startuml開頭並以@enduml結尾 - 使用標準 PlantUML 關鍵字:
class、interface、abstract、enum、actor、participant、component、node、database、package - 關係使用箭頭語法:
-->、<|--、*--、o--、..>、..|> - 使用
skinparam設定全域樣式與顏色 - 在個別元素上使用
#color指定特定顏色 - 註記使用
note left of、note right of、note over,或獨立的note "text" as N
UML 圖表類型
| 類型 | 用途 | 核心語法 | 範例 |
|---|---|---|---|
| 類別圖 (Class) | 類別結構與關係 | class, interface, <|-- |
class-diagram.md |
| 時序圖 (Sequence) | 時間軸上的訊息互動 | participant, ->, --> |
sequence-diagram.md |
| 活動圖 (Activity) | 工作流程與程序流向 | start, :action;, if/else |
activity-diagram.md |
| 泳道活動圖 (Swimlane Activity) | 具備泳道分工的多角色活動 | |Lane|, :action; |
swimlane-activity-diagram.md |
| 狀態機圖 (State Machine) | 物件生命週期狀態 | state, [*] --> |
state-machine-diagram.md |
| 元件圖 (Component) | 系統元件組織結構 | component, [name], interface |
component-diagram.md |
| 用例圖 (Use Case) | 使用者與系統的互動 | actor, usecase, (name) |
use-case-diagram.md |
| 部署圖 (Deployment) | 實體部署架構 | node, artifact, database |
deployment-diagram.md |
| 物件圖 (Object) | 執行時期的物件快照 | object "name" as id |
object-diagram.md |
| 套件圖 (Package) | 模組組織 | package "name" |
package-diagram.md |
| 通訊圖 (Communication) | 物件間的協同合作 | 搭配時序語法的編號訊息 | communication-diagram.md |
| 複合結構圖 (Composite Structure) | 內部類別結構 | 包含巢狀 port 的 component |
composite-structure-diagram.md |
| 互動概覽圖 (Interaction Overview) | 活動圖與時序圖的結合 | group, ref over |
interaction-overview-diagram.md |
| 輪廓圖 (Profile) | UML 擴充機制 | <<stereotype>> 標籤 |
profile-diagram.md |
Mxgraph Stencil 圖示
draw-uml 支援超過 9500 個 mxgraph stencil 圖示(含 AWS、Azure、Cisco、Kubernetes 等),可透過 mxgraph.* 語法直接引用。系統會自動套用預設顏色——您不需要手動指定 fillColor 或 strokeColor。
完整 Stencil 參考資料: 請參閱 stencils/README.md。
語法
mxgraph.<namespace>.<icon> "Label" as <alias>
mxgraph.<namespace>.<icon> "Label" as <alias> #color
mxgraph.<namespace>.<icon> <alias>
mxgraph.<namespace>.<icon>— stencil 圖形鍵值(例如mxgraph.aws4.lambda、mxgraph.kubernetes.pod)"Label"— 顯示文字(若包含空格請加上雙引號,單字可不加)as <alias>— 用於建立關係的別名識別碼#color— 自訂覆蓋顏色(例如#FF6600、#LightBlue)
範例
@startuml
' 簡單圖示宣告
mxgraph.aws4.lambda "Lambda\nFunction" as fn
mxgraph.aws4.api_gateway "API GW" as gw
mxgraph.aws4.dynamodb "DynamoDB" as db
gw --> fn
fn --> db
@enduml
@startuml
' 搭配圖示的 Kubernetes 架構圖
mxgraph.kubernetes.ing "Ingress" as ing
mxgraph.kubernetes.svc "Service" as svc
mxgraph.kubernetes.pod "Pod" as pod
mxgraph.kubernetes.deploy "Deployment" as deploy
ing --> svc
svc --> pod
deploy --> pod
@enduml
@startuml
' 混合標準 UML 與 stencil 圖示
node "Cloud" {
mxgraph.aws4.ec2 "EC2" as ec2
mxgraph.aws4.rds "RDS" as rds
}
database "Legacy DB" as legacy
ec2 --> rds
rds --> legacy
@enduml






