编程

drawiodo

试用

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

它能做什么

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

技能文档

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) → 在订单服务和用户服务之间插入消息队列节点和连线
→ 更新文件 → 自动打开预览展示变化

相关技能

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。

作者 iswalle763 次安装66 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván1 次安装

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván1 次安装

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants

通过托管 OAuth 访问 Microsoft Graph Excel 接口,读写 OneDrive 中的工作簿、工作表、区域、表格与图表。

作者 byungkyu800 次安装42 星标

ldxs001 的更多技能

浏览全部技能

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

作者 ldxs00165 次安装

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

作者 ldxs00156 次安装

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

作者 ldxs00128 次安装

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

作者 ldxs00138 次安装

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

作者 ldxs00114 次安装

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

作者 ldxs0018 次安装