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

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

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

小夜