Swimlane Arch

业务流程图×系统架构图,一句话出图。支持横向泳道、竖向泳道和分层架构图,输出Draw.io XML格式直接可编辑。 触发关键词:泳道图、架构图、流程图、swimlane、一句话出图、画个图、业务流程、系统架构

Audits

Pass

Install

openclaw skills install swimlane-arch-skill

泳道图架构图一句话生成

业务流程图 × 系统架构图,一句话出图

版本: 1.1.4


⚡ 30秒体验

对你的Agent说:

"画个政务审批泳道图"

一句话生成Draw.io XML — 横向/竖向泳道、分层架构,直接打开就能编辑,配色专业美观。

技能定位

泳道图架构图一句话生成 是一款智能图表生成器,一句话就能生成专业的 Draw.io XML 图表。

核心能力

  • 泳道图(Swimlane):支持横向泳道和竖向泳道两种方向,多角色/多部门清晰展示跨角色业务流转,政务场景友好
  • 架构图(Architecture):分层架构(用户层→应用层→服务层→数据层→基础设施层),支持微服务/API/数据库等组件
  • 双格式输出
    • Draw.io XML.drawio):默认格式,直接在 diagrams.net 打开编辑
    • ProcessOn(需配置 API Key):如检测到 PROCESSON_API_KEY,自动调用 ProcessOn API 生成更精美的云端图表
  • 自然语言交互:无需了解图表语法,用日常语言描述即可

泳道图(Swimlane Diagram)规范

结构规范

方向选择

方向适用场景触发关键词
横向泳道(默认)角色少、流程步骤多、强调时序推进默认,或"横向""水平"
竖向泳道角色多、流程步骤少、强调角色分工对比"竖向""纵向""竖版""垂直"

横向泳道

  1. 泳道方向:横向泳道,每个泳道代表一个角色/部门/系统
  2. 排列顺序:泳道从上到下排列,角色名在左侧标签区
  3. 流程节点:节点在对应泳道内,用箭头连接
  4. 起止标识
    • 起始节点:实心圆(绿色,#82b366)
    • 结束节点:圆环+实心圆(红色,#d9574a)

竖向泳道

  1. 泳道方向:竖向泳道,每个泳道代表一个角色/部门/系统
  2. 排列顺序:泳道从左到右排列,角色名在顶部标签区
  3. 流程节点:节点在对应泳道内,从上到下流转
  4. 起止标识
    • 起始节点:实心圆(绿色,#82b366)
    • 结束节点:圆环+实心圆(红色,#d9574a)
  5. 适用场景
    • 多角色并行对比(如多个部门各自流程并排展示)
    • 角色分工明确但流程不长的场景(如政务审批多部门会签)
    • 需要强调角色间横向交互的场景

竖向泳道 XML 生成规范

竖向泳道的 Draw.io XML 关键差异:

<!-- 竖向泳道:使用 horizontal=0 或在 style 中指定方向 -->
<mxCell id="swimlane1" value="角色名称" 
  style="swimlane;horizontal=0;fillColor=#f5f5f5;strokeColor=#666666;fontSize=14;fontStyle=1;startSize=40;" 
  vertex="1" parent="1">
  <mxGeometry x="0" y="0" width="300" height="800" as="geometry" />
</mxCell>

关键参数:

  • horizontal=0:泳道竖向排列(角色标签在顶部)
  • startSize=40:顶部标签区高度
  • 泳道宽度固定(约300px),高度随流程步骤增加
  • 节点在泳道内从上到下排列,y坐标递增
  • 跨泳道箭头为水平方向连接

节点类型与样式

节点类型形状填充色边框色
开始/结束圆形#82b366 / #d9574a#333333
活动节点圆角矩形#dae8fc#6c8ebf
判断节点菱形#fff2cc#d6b656
子流程双边框矩形#f8cecc#b85450
数据/文档波浪底矩形#f5f5f5#666666

箭头规范

路径类型线型颜色标注
主流程实线箭头黑色 #333333
判断"是"实线箭头绿色 #82b366
判断"否"虚线箭头红色 #d9574a
跨泳道连接(横向泳道)垂直箭头黑色 #333333交互说明
跨泳道连接(竖向泳道)水平箭头黑色 #333333交互说明

样式参数

  • 泳道标题区:深色背景(#f5f5f5),加粗文字,14px
  • 泳道内容区:白色背景
  • 整体尺寸:宽度自适应,最小 1200px
  • 泳道高度:每条至少 200px
  • 字体:微软雅黑,节点内 12px
  • 节点内边距:上下 8px,左右 12px

政务场景常见角色

  • 申请人/群众
  • 窗口受理人员
  • 部门审批人员
  • 领导决策
  • 系统自动处理
  • 第三方机构

架构图(Architecture Diagram)规范

分层架构规范

从下到上依次为:

  1. 基础设施层(最底层)
  2. 数据层
  3. 服务层
  4. 应用层
  5. 用户层(最顶层)

节点样式

层级形状填充色边框色
用户层圆角矩形#d5e8d4#82b366
应用层圆角矩形#dae8fc#6c8ebf
服务层圆角矩形#fff2cc#d6b656
数据层圆柱体形状#e1d5e7#9673a6
基础设施层矩形#f5f5f5#666666

特殊节点

  • 数据库:圆柱体形状(style 包含 shape=cylinder3
  • 外部系统:虚线边框矩形(dashed=1)
  • API/网关:六边形(hexagon)
  • 微服务:带云图标边框

连接线规范

关系类型线型说明
同步调用实线箭头标准服务调用
异步消息虚线箭头消息队列场景
数据流实线+标注带数据说明
依赖关系箭头A→B 表示 A 依赖 B

输出格式说明

Draw.io XML(默认)

生成 .drawio 文件,可在 diagrams.net 直接打开编辑,无需任何账号。

<?xml version="1.0" encoding="UTF-8"?>
<mxGraphModel dx="900" dy="900" grid="1" gridSize="10" guides="1" ...>
  <root>
    <mxCell id="0" />
    <mxCell id="1" parent="0" />
    <!-- 泳道和节点定义 -->
  </root>
</mxGraphModel>

ProcessOn(需配置 API Key)

如用户配置了 ProcessOn API Key(环境变量 PROCESSON_API_KEY),则优先调用 ProcessOn API:

  1. 将图表转换为 ProcessOn 支持的格式
  2. 调用 POST https://open.pingcode.com/v1/graph 上传并生成图片
  3. 返回 ProcessOn 在线链接,支持更多人协作

若未配置 ProcessOn API Key,默认输出 Draw.io XML 格式。


生成流程

Step 1: 理解需求

从用户描述中提取:

  • 泳道图:角色列表、流程步骤、所属角色、判断分支、跨角色交互
  • 架构图:架构层次、各层组件、组件调用关系、数据流向

Step 2: 结构化解析

泳道图解析逻辑

输入描述 → 识别角色 → 梳理流程 → 标记判断 → 确定交互

架构图解析逻辑

输入描述 → 识别层次 → 梳理组件 → 确定关系 → 标注流向

Step 3: 生成 Draw.io XML

必须遵循的 XML 规范:

  1. 使用 mxGraphModel 作为根元素
  2. 每个元素使用 mxCell 定义,id 必须唯一
  3. 泳道使用 swimlane 关键字标识
  4. 箭头使用 edge 类型,source/target 指向节点 id
  5. 合理计算坐标位置,避免重叠

Step 4: 保存文件

  • 文件路径:{工作目录}/{用户指定名称或自动生成名称}.drawio
  • 编码:UTF-8

XML 生成关键规范

节点定义示例

<mxCell id="node1" value="开始" style="ellipse;fillColor=#82b366;strokeColor=#333333;fontColor=#000000;" vertex="1" parent="1">
  <mxGeometry x="100" y="100" width="80" height="80" as="geometry" />
</mxCell>

泳道定义示例

横向泳道(默认):

<mxCell id="swimlane1" value="角色名称" style="swimlane;fillColor=#f5f5f5;strokeColor=#666666;fontSize=14;fontStyle=1;" vertex="1" parent="1">
  <mxGeometry x="0" y="0" width="400" height="300" as="geometry" />
</mxCell>

竖向泳道

<mxCell id="swimlane1" value="角色名称" style="swimlane;horizontal=0;fillColor=#f5f5f5;strokeColor=#666666;fontSize=14;fontStyle=1;startSize=40;" vertex="1" parent="1">
  <mxGeometry x="0" y="0" width="300" height="800" as="geometry" />
</mxCell>

箭头定义示例

<mxCell id="edge1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;arrowColor=#333333;" edge="1" parent="1" source="node1" target="node2">
  <mxGeometry relative="1" as="geometry" />
</mxCell>

交互规范

用户交互方式

用户只需用自然语言描述流程或架构,例如:

  • "画一个用户注册登录的泳道图"
  • "生成政务服务事项办理流程图"
  • "做一个微服务架构图"

自动识别逻辑

  1. 图类型判断

    • 提到"角色"、"流程"、"办理" → 泳道图
    • 提到"架构"、"层"、"服务"、"系统" → 架构图
    • 混合描述时,优先泳道图(更常用)
  2. 泳道方向判断

    • 用户提到"竖向""纵向""竖版""垂直" → 竖向泳道
    • 角色数量≥4且流程步骤≤6 → 自动推荐竖向泳道
    • 其他情况 → 横向泳道(默认)
  3. 信息补全

    • 如果用户描述的信息不足以生成完整图,列出需要补充的点
    • 但不要逐个追问,一次性列出所有缺失信息

输出提示

生成完成后告知:

  1. 文件保存路径
  2. 提醒可在 diagrams.net 打开编辑
  3. 如有自定义需求可继续调整

文件路径

  • 主文件:泳道图架构图一句话生成/SKILL.md
  • 参考模板:
    • 泳道图架构图一句话生成/references/swimlane-template.xml
    • 泳道图架构图一句话生成/references/arch-template.xml

完整生成示例

示例:电商订单处理泳道图

用户输入

画一个电商订单处理流程图,包含用户、订单系统、库存系统、支付系统4个角色,从下单到发货的完整流程

生成步骤

  1. 识别角色:用户、订单系统、库存系统、支付系统
  2. 识别流程
    • 用户 → 提交订单 → 订单系统
    • 订单系统 → 扣减库存 → 库存系统
    • 订单系统 → 请求支付 → 支付系统
    • 支付成功 → 发货 → 用户
  3. 判断分支:支付成功/失败
  4. 泳道方向:横向(4个角色,流程步骤适中)

生成输出

<?xml version="1.0" encoding="UTF-8"?>
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tools="ext">
  <root>
    <mxCell id="0" />
    <mxCell id="1" parent="0" />
    <!-- 泳道1:用户 -->
    <mxCell id="swimlane1" value="用户" style="swimlane;fillColor=#f5f5f5;strokeColor=#666666;fontSize=14;fontStyle=1;" vertex="1" parent="1">
      <mxGeometry x="0" y="0" width="300" height="600" as="geometry" />
    </mxCell>
    <!-- 开始节点 -->
    <mxCell id="node1" value="开始下单" style="ellipse;fillColor=#82b366;strokeColor=#333333;fontColor=#000000;" vertex="1" parent="swimlane1">
      <mxGeometry x="100" y="50" width="100" height="60" as="geometry" />
    </mxCell>
    <!-- 订单系统泳道 -->
    <mxCell id="swimlane2" value="订单系统" style="swimlane;fillColor=#f5f5f5;strokeColor=#666666;fontSize=14;fontStyle=1;" vertex="1" parent="1">
      <mxGeometry x="300" y="0" width="300" height="600" as="geometry" />
    </mxCell>
    <!-- 库存系统泳道 -->
    <mxCell id="swimlane3" value="库存系统" style="swimlane;fillColor=#f5f5f5;strokeColor=#666666;fontSize=14;fontStyle=1;" vertex="1" parent="1">
      <mxGeometry x="600" y="0" width="300" height="600" as="geometry" />
    </mxCell>
    <!-- 支付系统泳道 -->
    <mxCell id="swimlane4" value="支付系统" style="swimlane;fillColor=#f5f5f5;strokeColor=#666666;fontSize=14;fontStyle=1;" vertex="1" parent="1">
      <mxGeometry x="900" y="0" width="300" height="600" as="geometry" />
    </mxCell>
    <!-- 结束节点 -->
    <mxCell id="node8" value="收到货物" style="ellipse;fillColor=#d9574a;strokeColor=#333333;fontColor=#000000;" vertex="1" parent="swimlane1">
      <mxGeometry x="100" y="500" width="100" height="60" as="geometry" />
    </mxCell>
  </root>
</mxGraphModel>

保存路径电商订单处理流程.drawio

用户提示

泳道图已生成!保存在 电商订单处理流程.drawio,可在 diagrams.net 打开编辑。如需调整角色、流程步骤或添加判断分支,请告诉我。