UML-Visio-generate:從文案生成 Microsoft Visio UML 圖

前言

設計評審、架構說明和交付文檔裏,UML 圖往往要落在 Visio(.vsdx)裏,方便和非開發同事一起改。常見做法是手拖圖形、對齊連線,或者先畫在別的工具裏再導出,再進 Visio 微調,來回成本高。若希望由 AI 根據自然語言描述直接產出可編輯的 Visio 文件,而不是隻給 Mermaid 截圖或 PlantUML 源碼,可以看一下 SkillHub 上的社區 Skill UML-Visio-generate(座標 @user_6090b166/visio-uml-generate)。

下面介紹它是什麼、能做什麼、如何安裝,以及按官方 SKILL 文檔復現工作流時要注意的點。

這是什麼

UML-Visio-generate 是一套基於通用 SKILL.md 格式的 Agent Skill:根據用戶的文字描述,識別 UML 圖類型與元素,生成結構化 JSON,再調用包內 Python 腳本輸出 Microsoft Visio(.vsdx) 文件。

  • 維護方:SkillHub 社區發佈者 user_6090b166,來源標記爲 community。
  • 分類:dev-programming。
  • 版本:1.0.1(以 SkillHub 頁面與 skillhub search 結果爲準)。
  • 依賴:標籤標明 requires_api_key=false,不依賴額外 API Key。
  • 官方入口:SkillHub 技能頁;API 座標頁爲 https://api.skillhub.cn/user_6090b166/visio-uml-generate。

Skill 文檔中的內部名稱寫作 visio-uml-generator,與商店展示名 UML-Visio-generate 指同一套能力。

核心功能

依據 Skill 包內 SKILL.md,已聲明的能力如下。

支持的 UML 圖類型

類型 說明
類圖(Class Diagram) 類、接口、屬性、方法,以及繼承、組合、依賴等關係
用例圖(Use Case Diagram) 參與者、用例、關聯、包含、擴展關係
序列圖(Sequence Diagram) 參與者、生命線、同步/異步/返回消息
活動圖(Activity Diagram) 動作節點、決策、開始/結束、控制流

工作流(Agent 側)

  1. 分析用戶文案,判斷 UML 圖類型與元素。
  2. 生成符合 references/uml-schema.md 中 Schema 的 JSON 定義。
  3. 運行 scripts/generate_vsdx.py,生成 .vsdx 文件。
  4. 將文件交付給用戶。

實現要點(文檔說明)

  • .vsdx 爲 ZIP + XML;腳本從零構建 Visio XML 結構。
  • 自動佈局:類圖網格、用例圖左右分佈、序列圖垂直時間線、活動圖垂直流程。
  • 配色:類(藍)、接口(綠)、用例(黃)、活動(青)。
  • 連接器:按關係類型設置箭頭(如空心三角表示繼承、虛線表示依賴、菱形表示組合等)。
  • 生成腳本:scripts/generate_vsdx.py 爲純 Python,文檔寫明無第三方依賴。

文檔中記載的測試結果:四類圖均通過(類圖 5 類 5 關係、用例圖 2 參與者 4 用例 5 關係、序列圖 4 參與者 6 消息、活動圖 7 節點 7 流)。包內附帶示例輸入 visio-uml-test/ecommerce-class-diagram.json,文檔還列出對應示例輸出 ecommerce-class-diagram.vsdx。

安裝與啓用

安裝前需本機有 SkillHub CLI。未安裝時可按 SkillHub 安裝說明 執行:

command -v skillhub && skillhub --version
# 完整安裝(CLI + 默認 Skill,文檔推薦)
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

# 僅安裝 CLI
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash -s -- --cli-only

安裝 Skill 時必須用 --dir 指向當前 Agent 的 skills 目錄,否則默認落在 ./skills/,Agent 可能識別不到。官方頁面給出的安裝提示爲:根據 https://skillhub.cn/install/skillhub.md 安裝 @user_6090b166/visio-uml-generate。

命令行安裝示例(與 skillhub search 輸出一致):

skillhub install visio-uml-generate --namespace user_6090b166 --dir <你的 Agent skills 目錄>

常見客戶端 skills 路徑(摘自 SkillHub 安裝文檔):

  • Cursor:~/.cursor/skills/
  • Codex:~/.codex/skills/ 或項目下的 .agents/skills/
  • Claude Code:~/.claude/skills/

裝好後在對應客戶端啓用該 Skill,讓 Agent 讀取包內 SKILL.md 並按工作流執行。文檔未單獨區分 Cursor 與 Claude Code 的觸發方式,二者均以「skills 目錄 + SKILL.md」爲準。

典型用法

1、自然語言驅動(推薦)

在已加載 Skill 的對話中,用中文或英文描述系統與關係,例如電商領域的類與倉儲接口。Agent 應按 SKILL.md 完成 JSON 編寫並調用 scripts/generate_vsdx.py,最後給出 .vsdx 路徑。

2、對照包內 JSON 示例

Skill 提供的電商類圖示例 JSON 片段結構如下(type 爲 class_diagram,含 classes 與 relationships):

{
  "title": "E-Commerce System - Class Diagram",
  "type": "class_diagram",
  "classes": [
    {
      "name": "User",
      "attributes": ["- id: Long", "- username: String"],
      "methods": ["+ login(password: String): Boolean"]
    }
  ],
  "relationships": [
    {
      "source": "User",
      "target": "Order",
      "type": "association",
      "label": "places",
      "multiplicity_source": "1",
      "multiplicity_target": "0..*"
    }
  ]
}

完整字段見包內 visio-uml-test/ecommerce-class-diagram.json。在 Agent 或本地按 Schema 寫好 JSON 後,由 Skill 指引運行 scripts/generate_vsdx.py 生成 Visio 文件;具體命令行參數以包內腳本爲準(SKILL.md 未展開 CLI 幫助)。

適用場景與注意

適合誰

  • 需要在 Visio 生態裏交付 UML、且希望用對話描述代替大量手動畫線的開發者或架構師。
  • 已使用 Cursor、Claude Code、Codex 等支持 SkillHub skills 的客戶端,並願意用 SkillHub CLI 管理技能包。

限制與坑

  1. 輸出形態:目標是 .vsdx,不是 Mermaid/PlantUML 渲染圖;複雜版式仍可能要在 Visio 裏微調。
  2. 包內容完整性:SKILL.md 聲明應有 scripts/generate_vsdx.py 與 references/uml-schema.md。若你安裝的 1.0.1 包內僅有文檔與示例 JSON、缺少腳本與 Schema,生成步驟無法本地執行,需在 SkillHub 向發佈者反饋或等待包更新後再用。
  3. 社區來源:community 技能無官方廠商背書,生產環境使用前建議在副本中驗證生成文件能否用本機 Visio 正常打開、編輯。
  4. 統計口徑:SkillHub 抓取資料顯示評分 100000、下載 1268、安裝 0;頁面數字會變動,以商店實時數據爲準。

結尾

UML-Visio-generate 把「文字描述 → 結構化 UML JSON → Visio .vsdx」寫進 Agent 工作流,覆蓋類圖、用例圖、序列圖、活動圖四類常見圖,且不要求 API Key。若你的交付物必須是 Visio 可編輯文件,可以按上文命令裝入當前 Agent 的 skills 目錄試用。

官方地址:https://www.skillhub.cn/skills/user_6090b166/visio-uml-generate

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜