Coding

drawiodo

Try it

draw.io 自动做图 Skill。当用户要求画图、生成图表、做架构图、流程图、UML、ER 图、时序图、思维导图等时触发。生成 .drawio 文件并用 draw.io 打开。支持思考-确认-迭代-版本回溯的完整工作流,8 个 Hook Point 安全校验。

What it does

**正向触发**: 当用户提出以下意图时触发: "画一个 xxx 图"、"生成 xxx 图"、"做一个图表" "架构图"、"流程图"、"UML 类图"、"ER 图"、"时序图"、"思维导图" "用 draw.io 画"、"生成 drawio 文件" "画网络拓扑"、"画组织架构"、"画系统架构" "按照这个示例改成..."、"参照这个图改..."、"基于这个样式做一个..." 用户提供截图/示例文件并要求生成类似图表 任何涉及 draw.io / diagrams.net 的需求

The skill document

drawiodo: draw.io 自动做图 Skill

触发条件

正向触发: 当用户提出以下意图时触发:

  • "画一个 xxx 图"、"生成 xxx 图"、"做一个图表"
  • "架构图"、"流程图"、"UML 类图"、"ER 图"、"时序图"、"思维导图"
  • "用 draw.io 画"、"生成 drawio 文件"
  • "画网络拓扑"、"画组织架构"、"画系统架构"
  • "按照这个示例改成..."、"参照这个图改..."、"基于这个样式做一个..."
  • 用户提供截图/示例文件并要求生成类似图表
  • 任何涉及 draw.io / diagrams.net 的需求

否定条件: 以下情况不触发本技能:

  • 用户只是问"你会画图吗"、"有什么画图工具"——闲聊
  • 用户明确要求用其他工具(如"用 mermaid 画流程图")
  • 用户只是提到"图"字但没有画图意图(如"这个图怎么读")
  • 用户要求编辑已有的图片文件(如 .png/.jpg)——本技能生成的是 .drawio 文件

核心能力

📚 渐进式加载:本技能采用渐进式 MD 体系,SKILL.md 为入口(≤230行),详细内容拆分到 references/*.md 按需加载。

  1. 自然语言 → 图表:理解用户描述,自动判断图表类型,生成 .drawio 文件
  2. 统一布局引擎:拓扑排序分层 → 重心排序层内排列 → 动态间距计算 → 障碍感知路径路由,不区分图类型
  3. 多形状支持:UML 类表、ER 实体、圆柱体、菱形、六边形、云朵、文档、便签等,用户指定即可
  4. 5 主题配色:default/tech/business/bw/nature,节点和边颜色统一轮换
  5. 迭代更新:在现有文件基础上精确更新,支持版本回溯(最多 5 版本)
  6. 思考-确认-执行工作流:先分析需求、展示方案、等待确认,再动手画图
  7. 本地预览:生成后用 draw.io.exe 打开,即时查看结果

渐进式文件索引

文件名分类包含内容审计关联
references/LICENSE.md许可协议开源许可证声明(MIT)。包含:MIT 许可证完整文本。R-26
references/antipatterns.md规范指南skill 编写中的常见反模式。包含:错误做法示例、正确做法示例、避坑指引。R-18
references/api_reference.md参考文档- DrawIOBuilder(name) - 创建画布
references/changelog.md版本管理版本更新日志。包含:版本号、变更类型、修复项、升级说明。R-24
references/faq.md常见问题常见疑问与解答。包含:问题分类、原因分析、解决方案。R-19, R-25 C-19
references/generation.md参考文档路径信息见 _meta.json data_dir 声明 + frontmatter data_dir 字段。
references/guide.md使用指南三种执行模式操作教程。包含:audit/create/refactor 流程、参数说明、注意事项。
references/hooks.md参考文档本技能的所有关键约束由 Python 端强制执行,不依赖 LLM 自觉。
references/known_issues.md参考文档问题:子节点使用极坐标计算位置,导致:
references/layout_rules.md参考文档- 画布坐标:左上角(0,0),X向右增大,Y向下增大
references/permissions.md权限与测试权限扫描说明与测试结论。包含:风险等级、高权限操作说明、测试概览、计时统计。R-15, R-16
references/test-report.md测试报告skill-function-test 全量测试结论
------------
scripts/drawio_unified.py核心引擎统一图生成:拓扑分层 → 重心排序 → 位置计算 → 路由
scripts/drawio_module.py模块基类DiagramModule 抽象接口 + LayoutResult + 渲染层
scripts/drawio_modules.py模块注册GraphModule / GanttModule 注册表
scripts/drawio_gen.pyXML 生成Node / Edge / DrawIOBuilder + build_xml()
scripts/drawio_route.py路径路由Rect / CollisionResolver / ObstacleRouter
scripts/drawio_layout.py布局辅助text_width / auto_node_size / 间距常量
scripts/drawio_hooks.py钩子系统8 个 Hook Point 实现
scripts/drawio_version.py版本管理VersionManager CLI:init/save/list/restore/diff
scripts/drawio.pyCLI 入口模板式图表生成 CLI(流程图/架构图/类图/ER/树/思维导图)
scripts/drawio_agent.pyCLI 入口自然语言驱动的图表生成 CLI(--json 接收结构化数据)
scripts/drawio_regen_all.py批量生成一次性生成全部示例图的脚本
scripts/drawio_templates.py模板生成旧版按图类型生成模板(flowchart/architecture/class/er/tree/mindmap)
scripts/build_network.py网络构建网络拓扑图专用构建函数

工作流程

  1. 思考分析(Think)
    • 输入:用户自然语言描述 + 可选的参考图/截图
    • 输出:结构化图表分析结果(类型、节点、关系、布局)
  2. 方案确认(Confirm)
    • 输入:结构化分析结果
    • 输出:用 AskUserQuestion 向用户展示方案,等待确认
  3. 迭代更新(Iterate)
    • 输入:用户确认的方案
    • 输出:生成的 .drawio 文件,每次更新前自动保存版本
  4. 版本回溯(Version Control)
    • 输入:已保存的历史版本(v1~v5)
    • 输出:恢复指定版本的文件

→ 各阶段详细说明见核心能力的渐进式文件索引

各阶段要点

  • Think:分析用户需求,判断图表类型和输入类型,输出结构化思考结果
  • Confirm:向用户展示方案,用 AskUserQuestion 等待确认(必须确认后才能动手)
  • Iterate:在现有文件基础上精确更新,每次更新前保存版本(v1→v2→v3...)
  • Version Control:最多保留 5 个版本,支持随时回溯

快捷模式(可跳过确认):

  • 简单流程图(3-5 个步骤的线性流程)
  • 明确的模板调用(用户给出完整的 JSON spec)
  • 已确认方案后的迭代更新

版本管理命令

python {SKILL_DIR}/scripts/drawio_version.py init <文件.drawio> "初始版本"
python {SKILL_DIR}/scripts/drawio_version.py save <文件.drawio> "更新了 XX"
python {SKILL_DIR}/scripts/drawio_version.py list <文件.drawio>
python {SKILL_DIR}/scripts/drawio_version.py restore <文件.drawio> v2

钩子系统(强制约束)

关键操作由 Python 端自动执行,不依赖 LLM 自觉。 备份、版本管理初始化、版本上限清理均由钩子在脚本层直接完成, LLM 无权跳过这些操作。

→ 各参考文档详见核心能力的渐进式文件索引

8 个 Hook Point

Hook Point强制操作说明
pre_think输入非空校验(阻断)空输入直接阻断
post_think分析结果校验缺失字段仅警告
pre_confirm选项完整性校验(阻断)+ 快捷跳过(清除选项)不足 2 项或快捷跳转均阻断/跳过
post_confirm用户选择解析-
pre_iterate自动创建目录 + 自动备份备份由 Python 调用 VersionManager
post_iterate输出校验 + 自动初始化版本管理 + 自动打开预览init 和预览都由 Python 执行
pre_vc自动清理超限版本删除最旧版本由 Python 执行
post_vc版本状态报告-

执行规则

  • abort=True -> 立即阻断流程(LLM 无权绕过)
  • success=False 但不 abort -> 记录警告,不阻塞
  • 所有操作由 Python 端算法强制完成

在阶段代码中调用

from drawio_hooks import hooks

# 在阶段开始时
results = hooks('pre_iterate', {
    'output_path': output_path,
    'is_update': True,          # 会触发自动备份
})
for r in results:
    if r.abort:
        return  # 钩子已处理,阻断并返回
    if not r.success:
        print(f'Warning: {r.message}')

# 在阶段结束时
results = hooks('post_iterate', {
    'output_path': output_path,  # 会触发自动 init 版本管理
})

注册/注销自定义钩子

from drawio_hooks import register, unregister

@register('pre_think', name='my_check', description='自定义校验')
def my_hook(ctx):
    if 'special' not in ctx.get('user_input', ''):
        return {'success': False, 'message': '缺少特殊参数', 'abort': True}
    return {'success': True, 'message': 'ok'}

unregister('post_iterate', 'preview_trigger')  # 禁用自动预览

CLI 管理命令

python {SKILL_DIR}/scripts/drawio_hooks.py list     # 查看所有注册钩子
python {SKILL_DIR}/scripts/drawio_hooks.py check    # 全流程自检
python {SKILL_DIR}/scripts/drawio_hooks.py history  # 查看执行历史

生成图表

→ 详见核心能力的渐进式文件索引


API 参考

→ 详见核心能力的渐进式文件索引

坐标系与布局规则

→ 详见核心能力的渐进式文件索引

已知问题与修复记录

→ 详见核心能力的渐进式文件索引

→ 反模式和常见问题详见核心能力的渐进式文件索引


输出规范

  • 文件命名:{类型}_{描述}.drawio,如 architecture_microservice.drawio
  • 生成后自动用 draw.io 打开预览
  • 交付附件给用户
  • 每次生成/更新后初始化或更新版本管理
  • 路径信息见 _meta.json data_dir 声明 + frontmatter data_dir 字段

核心文件

文件路径说明
核心库scripts/drawio_gen.py节点/连线/容器/XML 生成
模板库scripts/drawio_templates.py8 种图表模板
Agent 入口scripts/drawio_agent.pyCLI/自然语言解析
版本管理scripts/drawio_version.py5 版本回溯系统

使用示例

场景 1:生成架构图

用户:帮我画一个微服务架构图,包含 API 网关、用户服务、订单服务和数据库
drawiodo:正在分析需求 → 判断为"架构图" → 输出方案:4 个容器+连线+数据库图标
用户确认后 → 生成 architecture_microservice.drawio → 自动打开预览

场景 2:迭代更新

用户:在上次的系统架构图里加一个消息队列,在订单服务和用户服务之间
drawiodo:读取已存在的文件 → 自动备份(v2) → 在订单服务和用户服务之间插入消息队列节点和连线
→ 更新文件 → 自动打开预览展示变化

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván854 installs69 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván555 installs18 stars

Read and write Excel workbooks, worksheets, ranges, tables, and charts in OneDrive through Microsoft Graph with managed OAuth.

by byungkyu800 installs42 stars

Query and manage Linear issues, projects, teams, cycles, labels, and comments through a managed OAuth GraphQL endpoint.

by byungkyu518 installs18 stars

More from ldxs001

Browse all skills

Skill 标准化规范引擎。支持 R-01~R-26 规范审查(audit / create / update / refactor / bump / readonly 六模式),含权限扫描、数据目录合规检查、渐进式加载、LLM 二次筛分类。

by ldxs00165 installs

全平台统一发布工具。支持 skills 和 agents 的 Gitee/GitHub/ClawHub/SkillHub/PyPI 同步与 Release 创建,LLM 驱动的文件过滤与脱敏。

by ldxs00156 installs

Execute→Review→Advance 三步循环执行框架。增强步骤规划能力、增强语义理解;明确空转/重试/换思路/求助完整流转规则;最多重试3次、最多空转3次强制约束。

by ldxs00128 installs

调用链编排技能 — 既是调用链编辑器,也是粗粒度规划器。理解用户意图 → 规划 Skill 参与顺序 → 更新/保存/推荐调用链 → 拼接为调用链(支持循环/分支编排、子步骤拓扑排序、准确步骤计数)。

by ldxs00138 installs

8种原子组件自由组合 + 3级约束, cell merging, two-level module system (base + composite), 7+ built-in templates, grid-aware visual editor, style presets, post-generation...

by ldxs00114 installs

为普通大模型/智能体用户提供一站式文件操作与 Python 代码质量保障能力。支持文件 CRUD、Python 代码质量流水线、沙箱测试、流程钩子系统。

by ldxs0018 installs