excalidraw-diagram
Excalidraw 手绘图
本 Skill 指导 Agent 生成标准的 Excalidraw 图表文件(.excalidraw JSON),在浏览器、Obsidian、VSCode 等集成了 Excalidraw 的环境中可直接打开和继续编辑。
使用时机
- 用户希望生成「手绘风」的系统架构图、模块依赖图、业务流程图、数据流图等。
- 用户提到「画个架构图」「画流程图」「画模块关系图」「用 Excalidraw 画图」等需求。
- 用户已有较清晰的模块/步骤/实体列表,希望整理成一张结构化示意图。
支持图类型
- 系统架构图:用户 / 前端 / 后端服务 / 数据库 / 外部系统等。
- 业务流程图 / 近似时序图:按照步骤或事件顺序,自上而下或自左向右。
- 数据结构 / 模块依赖图:实体之间的关联、依赖关系。
- 自由白板草图:对论文结构、研究框架、任务分解等进行发散式可视化。
输入格式(在聊天中的推荐写法)
请引导用户尽量按照如下结构提供信息(中文即可):
【图类型】:系统架构图 / 流程图 / 数据结构图 / 自由草图
【内容来源】:自由描述 / 论文大纲 / 代码结构 / 接口列表 等
【核心要素】:
- 节点:列出主要模块 / 实体 / 步骤(可分组)
- 关系:说明谁连接谁、方向与含义(如「用户 -> Web 前端」「服务 A 调用 服务 B」)
【布局偏好】:自上而下 / 自左向右 / 分层布局(可选)
【分组逻辑】:按子系统、按层次(前端/后端/存储等,可选)
【颜色规则】:不同类型节点的颜色偏好(可选,若未指定则使用默认配色)
若用户只给出自然语言描述,Agent 需先在脑中整理出「节点列表 + 关系列表」,再进行画图。
生成规则(Agent 内部步骤)
-
解析输入,构建抽象模型
- 抽取所有节点:为每个模块/实体/步骤分配唯一 id、名称与类型。
- 抽取所有关系:source、target、可选 label(调用方式、数据流向等)。
- 确定层次信息:根据图类型与用户的布局偏好,将节点归入不同层(如「用户层 / 前端层 / 服务层 / 数据层」)。
-
简单布局策略(坐标分配)
- 不追求复杂自动排版,只需给出「合理、可读」的初始位置:
- 系统架构图:自上而下三层或多层排列,同层节点在一条水平线上。
- 流程图:按步骤顺序纵向或横向排列,用箭头串联。
- 数据结构图:以核心实体为中心,相关实体围绕,保持连线不明显交叉。
- 粗略设定
x, y坐标,例如:同层 y 固定、x 按索引递增;不同层 y 按层级间距递增。
- 不追求复杂自动排版,只需给出「合理、可读」的初始位置:
-
Excalidraw 元素生成约定(含默认箭头与配色)
-
节点元素(默认样式):
- 使用
rectangle或round rectangle表示模块/实体/步骤。 - 每个节点由一个图形元素 + 一个文本元素组成(文本大致居中叠加在矩形上)。
- 默认配色约定(若用户未特别指定):
- 输入 / 输出:白底黑框(
backgroundColor: "transparent",strokeColor: "#1e1e1e")。 - 计算模块 / 中间层(如 Encoder / Decoder / FFN 等):浅色背景 + 黑色描边(例如
backgroundColor: "#f5f5ff"或类似),同一类模块颜色一致。 - 分组大框(如「Encoder Stack」「Decoder Stack」):圆角矩形、白底黑框,用文本在框内顶部标注标题。
- 输入 / 输出:白底黑框(
- 可使用
groupIds将同一子系统下的节点分到同一分组,方便用户后续整体移动。
- 使用
-
连线元素(默认箭头):
- 使用
arrow连接相关节点,points按起点到终点直线或略带折线。 - 默认方向:从「数据流/调用发起方」指向「接收方」,例如输入 → 嵌入 → Encoder → Decoder → 输出。
- 核心主流程使用较粗黑色箭头(
strokeWidth稍大),辅助关系可以用细线或浅色。 - 如有必要,可增加短文本元素标注连线含义(如「调用」「写入」「Attention」等)。
- 使用
-
整体风格:
- 依赖 Excalidraw 的手绘渲染风格,不需要手动模拟抖动。
- 控制元素数量,优先保持结构清晰而非堆满细节;对于类似 Transformer 这类结构,推荐只画出主要块和主干箭头。
-
-
Excalidraw 文件结构要求
- 顶层应符合 Excalidraw 官方
.excalidrawJSON 结构,至少包含:type: "excalidraw"version与source(可标注为"cursor-skill-excalidraw-diagram")elements: 图元数组appState与files(若无图片等,可给出合理的默认空结构)
- 所有元素 id 必须唯一,推荐使用简单的前缀 + 递增数字或 UUID 风格字符串。
- 顶层应符合 Excalidraw 官方
输出格式
Agent 输出必须严格分为两部分:
-
Part 1 [Diagram Explanation]:
- 用中文简要说明本图的层次结构、各类节点的含义以及主要连线关系(约 1–2 段)。
- 若对用户输入有合理补充或抽象,也在此处说明,方便用户校对。
-
Part 2 [Excalidraw JSON]:
- 输出一个完整、可直接保存为
.excalidraw文件的 JSON。 - 仅输出 JSON 内容本身,不添加注释、Markdown 代码块标记或额外说明文字。
- 确保 JSON 语法正确、无多余逗号,能被 Excalidraw 正常解析。
- 输出一个完整、可直接保存为
注意事项
- 若用户未指定图类型或布局偏好,优先按照「自上而下、多层结构」生成,保持直观清晰。
- 若节点过多或关系复杂,应主动做聚合与分组(例如将多个内部模块归为一个「子系统」节点),避免图面过于拥挤。
- 若用户希望后续在 Draw.io 中使用,可提示其:Excalidraw 导出的 SVG/PNG 可再导入 Draw.io,但本 Skill 专注于生成 Excalidraw 原生文件。
- 若用户只是想「手绘草稿」而不在乎结构严谨,可适度放宽布局与分组,只需保证元素不完全重叠即可。
参考资源
- Excalidraw 官方仓库:
https://github.com/excalidraw/excalidraw - 在线应用示例:
https://excalidraw.com/
More from xstongxue/best-skills
wechat-article-writer
公众号/自媒体全流程。根据用户表述自动匹配:撰写文章、封面图、正文插图、风格提取。支持多种写作风格。当用户提到写公众号、技术博客、公众号封面、正文插图、步骤图、演示图、流程示意、分析写作风格、克隆文风、模仿爆款、提取风格时使用。详见 reference 目录。
176drawio-diagram
为深度学习模型、网络架构、算法流程等生成标准 Draw.io (.drawio) 格式的可视化图表;支持从零生成与风格迁移两种模式。从零生成:模型架构图、流程图、感受野示意图等;风格迁移:参考图 + 内容描述/项目 → 按参考图风格生成新图。确保 XML 格式正确,可直接在 Draw.io 中打开编辑。
81paper-write
本科与硕士学位论文全流程撰写辅助。支持大纲审核(理工科/文科)、结构仿写(通用/实验/绪论/摘要;文科含文献综述、案例分析、对策建议、文科绪论与摘要)、参考文献获取、融合、润色(含实验章节/文科章节)、缩写、扩写、防 AIGC、中英互译、结构化信息提取。当用户提到论文撰写、大纲审核、论文章节仿写、参考文献、论文润色、防 AIGC、论文翻译、文科论文、文献综述、对策建议时使用。
78codegen-diagram
基于当前项目/代码生成 Draw.io 图表,支持技术栈图、系统架构图、数据结构图、E-R 图四种类型。输出符合 Draw.io 语法的 .drawio 文件(mxGraph XML),可直接导入 Draw.io 编辑。当用户提到技术栈、系统架构、数据结构、E-R 图时使用。
71md-report-summary
生成高质量 Markdown 周报、工作汇报、总结、介绍等文档。无草稿时从 Web 搜索并总结;有草稿时结合草稿整理、润色、补充。当用户提到周报、工作汇报、总结、介绍、述职、复盘时使用。
70dev-workflow
开发流程五步法。支持需求理解、方案设计、代码实现、代码审查、Bug 修复。当用户提到「需求分析」「方案设计」「代码实现」「代码审查」「理解需求」「技术设计」「开始写代码」「Review」「检查代码」「bug」「报错」「崩溃」「异常」「出错了」时使用。
66