Communitygithub.com

Diagram Design - 图表设计

创建自包含的HTML/SVG/PNG图表,支持45种视觉类型,并内置可编辑的设计系统。

Diagram Design - 图表设计 是什么?

Diagram Design 是一个强大的 AI Agent 技能,专为生成高质量、可品牌化的图表而设计。它通过自包含的 HTML 文件输出内联 SVG 或 PNG 图,支持架构图、流程图、时序图、状态机、ER图、时间线、泳道图、象限图、雷达图、极坐标图、循环图、嵌套图、树图、组织架构图、层级堆叠图、分解轴测图、轴测平面图、韦恩图、金字塔/漏斗图、矩形树图、热力图、条形图、瀑布图、折线图(包括坡度图、山脊图、流图、凹凸图)、甘特图、散点图(气泡图、蜂群图)、高层图、流程图、奖章图、数据流图、DP集成图、DP安全矩阵图、桑基图、鱼骨图、Wardley地图、看板图、用户体验旅程图、服务蓝图、部署图、依赖关系图、UML类图、故事地图和数据库模式图等45种视觉类型。该技能可与 Cursor 或 Claude Code 等平台配合使用,通过引用 Markdown 格式的类型和语义模式参考,指导 AI 生成遵循编辑设计系统的图表。它强调简洁和编辑克制,目标是达到 4/10 的信息密度,并避免常见的 AI 生成图表反模式(如所有节点等宽、未屏蔽的箭头标签、过多的阴影或强调色)。其设计系统完全可皮肤定制,首次使用时会引导用户自定义样式指南或加载已有的品牌配置文件。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/maksimilianius1989/claude_skills/tree/HEAD/diagram-design

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

图表设计

将图表创建为自包含的 HTML 文件,包含内联 SVG 和编辑设计系统。

支持四十五种视觉类型。语义模式描述行为;类型引用描述布局。


0. 首次设置 — 样式指南门控

在为项目生成第一个图表之前,请确认样式指南已自定义。

不要将使用默认皮肤的图表静默地放入品牌项目中。

首先根据 references/profiles.md 解析项目中的 .diagram-design 标记;成功解析的标记会选择其配置文件并绕过此门控。该引用负责处理失败、受保护的默认值和保存行为。

打开 references/style-guide.md 并检查默认令牌。如果它们仍然是出厂默认值(纸张 #f5f5f5,墨水 #2d3142,强调色 #bf4520),暂停并询问用户:

"这是您在此项目中的第一个图表,且样式指南仍为默认值。是否自定义?选项:(a) 网站 URL,(b) 已安装的技能,(c) 本地文件夹/设计系统,(d) 粘贴令牌,(e) 保留默认值,(f) 加载保存的配置文件。"

然后根据 references/onboarding.md 的相应部分分支处理;对于选项 (f) 请遵循 references/profiles.md。

一旦样式指南已自定义(或用户明确选择了默认值),后续运行将跳过此门控。如果存在前导配置文件标头,则指示已复制并激活的活动配置文件。如果没有标头,任何与出厂默认值不同的语义角色值或字体族都意味着 自定义-未保存:跳过门控并提供保存为配置文件的选项。所有默认令牌且无标记/标头的情况会触发门控。完成引导后,提供根据 references/profiles.md 保存为命名客户端配置文件的选项。


1. 哲学

最高质量的动作通常是删除。

应用于示意图:

  • 每个节点代表一个独特的想法。总是一起出现的两个节点就是一个节点。
  • 每个连接都承载信息。如果关系从布局中显而易见,则移除线条。
  • 珊瑚色是编辑性强调,而非标志。 每个图表 1–2 个焦点节点。在 5 个节点上使用它会消除信号。
  • 示意图不是在添加完所有内容时完成。而是在无法移除任何内容时完成。

目标密度:4/10。 足够技术完整。不至于密集到需要指南。超过 9 个节点,通常应该分成两个图表。


2. 使用时机

当读者从图表中学到的东西比从散文、表格或项目符号列表中学到的更多时,可以使用任何 45 种视觉类型(第 3 节)。

不要用于:

  • 快速 Unicode 图表 → 使用单独的纯文本工具,如 wiretext。此技能不附带此类工具。
  • 事物列表 → 表格或项目符号。
  • 仅属性的前后对比 → 表格;拓扑变化 → 架构增量。
  • 单一形状的“图表” → 直接写句子。

在绘制之前,问自己:读者从中获得的会比从一段写得很好的段落中获得的多吗? 如果否,则不绘制。


3. 选择:先语义模式,后视觉类型

当行为、状态、强制或风险承载含义时,首先加载 references/semantic-patterns.md 并选择一个主要模式。然后为布局选择最接近的视觉类型。如果没有匹配的模式,直接选择类型。

行为触发语义模式 → 最接近的类型
扇入、队列深度、有限容量、瓶颈扇入队列 / 瓶颈 → 数据流
跨阶段的重复问题/输入/治理/输出槽位含语义槽位的阶段框架 → 流程图
对话或松散输入变为结构化持久工件非结构化输入 → 结构化工件 → 数据流
两个规则跟踪需要通过/失败/跳过/未到达和首次分歧配对策略评估跟踪 → 流程图
信任边界加上允许/禁止的入口或部署路径安全铺就道路 → 架构
按强制执行位置分组的控制治理 / 控制目录 → 层级堆叠
防御措施弥补先前差距且残余风险传播补偿安全层 → 层级堆叠
分层、ID可寻址的分解,需要每个块的I/O、约束和代码链接可追踪块分解 → 树
一个主体经历阶段、等待、重试、取消和最终结果生命周期阶段图 → 状态机

模式拥有语义原语及其更严格的预算;类型拥有布局语法。仅当请求动画或动画能实质性地阐明有序变化时才使用 references/animation.md;静态为默认值。

视觉类型指南(45 种)

如果您展示的是…使用参考
单一快照中的组件+连接;嵌套的管理与流量范围架构type-architecture.md
同步前后拓扑之间的结构变化,带有变更台账架构增量type-architecture-delta.md
按阶段或部门划分的旧版 IT 环境;显示之前状态IT 当前状态type-it-state.md
具有分支的决策逻辑流程图type-flowchart.md
参与方之间按时间顺序的消息时序图type-sequence.md
状态 + 转换 + 守卫状态机type-state.md
实体 + 字段 + 关系ER / 数据模型type-er.md
定位在时间轴上的事件时间线type-timeline.md
跨职能流程与交接泳道图type-swimlane.md
双轴定位/优先级排序象限图type-quadrant.md
多个实体根据 3–5 个定量标准评分雷达图 / 蜘蛛图type-radar.md
一个定量序列跨循环类别;角度=类别,半径=幅度极坐标图type-polar.md
强化循环;最后一步反馈到第一步,集线器累积状态循环图type-loop.md
通过包含/范围展示层次结构嵌套图type-nested.md
父 → 子关系树状图type-tree.md
人/代理/团队所有权、汇报关系、路由、升级组织架构图type-org-chart.md
堆叠的抽象层级层级堆叠图type-layers.md
一个对象的部分沿一个轴展开:拆解、开箱、组装顺序分解轴测图type-exploded.md
从上方倾斜视角看到的楼层或场地:带家具的房间、按阶段划分的建筑轴测平面图type-axonometric-plan.md
集合之间的重叠韦恩图type-venn.md
排名层次或转化漏斗金字塔图 / 漏斗图type-pyramid.md
跨类别的定量比较条形图type-bar.md
起始总量通过正负贡献(预算桥、人员变动)连接到结束总量瀑布图type-waterfall.md
整体中的部分,其中相对大小是重点矩形树图type-treemap.md
交叉列表数据;填充颜色编码每个单元格的值热力图type-heatmap.md
随时间变化的连续趋势、两个状态之间的变化(坡度图)、每个序列一个分布(山脊图)或跨多个快照的排名变化(凹凸图)折线图type-line.md
时间线上的任务和阶段甘特图type-gantt.md
两个变量的相关性或分布;气泡图(三个变量)和蜂群图(一个变量,每个项目一个点)变体散点图type-scatter.md
容器集群上的端到端数据栈高层图type-high-level.md
多参与方顺序流程与数据交接流程图type-process.md
具有质量级别和访问策略的多层数据存储奖章图type-medallion.md
角色范围的数据流:谁在每个管道步骤做什么数据流图type-data-flow.md
数据平台的集成拓扑 — 源 → 核心 → 消费者DP 集成图type-dp-integration.md
按角色/按组件的访问权限矩阵DP 安全矩阵图type-dp-security-matrix.md
一个数量跨阶段分流和合并,带宽 = 数量桑基图type-sankey.md
一个观察到的效果的原因,按类别分组(根本原因分析)鱼骨图type-fishbone.md
价值链条与演变的对比 — 构建什么、购买什么、什么在变化Wardley 地图type-wardley.md
按状态划分的在制品,带有 WIP 限制和阻塞项看板图type-kanban.md
一个人跨体验阶段做什么,以及感受如何用户体验旅程图type-journey.md
客户做什么与服务隐藏什么,跨阶段,带有可视分界线服务蓝图type-service-blueprint.md
软件运行位置 — 区域、主机、工件、副本、端口部署图type-deployment.md
什么依赖什么,以及树无法表达的扇入和循环依赖关系图type-dependency.md
具有操作、继承、组合的类(其他 UML 路线请查阅其他来源)UML 类图type-uml-class.md
叙事主干按版本切分,带有切割线故事地图type-story-map.md
物理表:SQL 类型、约束、索引、列级外键数据库模式图type-db-schema.md

经验法则:

  • 如果三列表格传达相同的信息,选择表格。
  • 如果两种类型看起来都有用,选择主导轴;语义模式可能添加行为特定的原语,而不是第二套布局语法。
  • 如果超出复杂度预算(第 7 节),拆分为概览 + 详情。

在绘制之前,始终加载指南中链接的选定类型参考。 当上述路径导向语义模式时,也加载 semantic-patterns.md;当选择动画时,加载 animation.md。

绘制前确认

在渲染之前,用一条简短消息说明计划:选定的视觉类型(以及语义模式,如果适用)、尺寸预设以及复杂度预算(第 7 节)会强制排除的内容。如果用户可联系,让他们在您绘制之前重新定向;否则,继续并记下交付物旁的假设。仅当请求已精确指定类型、尺寸和内容时,跳过此暂停。


4. 通用反模式

这些是任何类型的“AI 垃圾”示意图的标志:

反模式失败原因
深色模式 + 青色/紫色发光看起来“技术”但缺乏设计决策
使用 JetBrains Mono 作为泛化的“开发者”字体等宽字体用于技术内容 — 端口、命令、URL。名称使用 Geist 无衬线字体。
所有节点使用相同的方框消除层次结构
图例浮动在图表区域内与节点碰撞
没有遮罩矩形的箭头标签文字会穿透线条
箭头上的垂直 writing-mode 文本不可读
3 个等宽摘要卡作为默认值通用网格 — 应变化宽度
任意元素上的阴影阴影已过时。边框是趋势。
方框的 rounded-2xl 圆角最大圆角 6–10px 或无
在每个“重要”节点上使用珊瑚色珊瑚色是 1–2 个编辑性强调,不是信号系统
复制 Mermaid 的渲染器布局应导入自动间距和路由,而不是制作编辑布局
违反第 6 节的任何连接器规则自动失败:对角线倾斜、标签触及连接线、被后续节点裁剪的遮罩、重叠路径、共享附着点、在非端点方框后方穿行

特定类型的反模式存在于指南中链接的每个类型参考中。


5. 设计系统

设计系统是可换肤的。 references/style-guide.md 是颜色、字体、令牌和默认调色板的单一真相来源;本文件命名语义角色(paper、ink、muted、accent、link 等)。要应用品牌,请编辑 style-guide.md 或运行 references/onboarding.md 中基于 URL 的流程。

当上述规范或类型引用中提到“ink”、“accent”、“muted”等时,需在 style-guide.md 中查找当前的十六进制值。

类型引用片段将角色写为占位符:{ink}、{ink @ 0.40}(表示带透明度的角色),以及 {node-name}、{sublabel}、{eyebrow}、{arrow-label}、{title}、{callout}(表示字体)。在输出之前,根据 style-guide.md 解析每个占位符。

语义角色(概览)

角色用途
paper, paper-2页面背景和容器背景
ink主要文本/描边
muted, soft辅助文本、默认箭头、子标签
accent, accent-2编辑强调色,焦点节点
link链接文本
positive, negative, warning, info语义状态 — 成功/失败/警告/信息
chart-1 至 chart-8图表系列颜色
border边框和分隔线

字体大小和角色

角色大小字重字体
{title}24px600Inter 或 Geist sans
{subtitle}16px500Inter 或 Geist sans
{node-name}14px600Inter 或 Geist sans
{sublabel}12px400Inter 或 Geist sans
{callout}13px500Inter 或 Geist sans
{description}12px400Inter 或 Geist sans
{arrow-label}11px500Inter 或 Geist sans
{eyebrow}10px600大写字母
{code}12px400JetBrains Mono 或 Fira Code

间距和网格

  • 基础网格单元:8px
  • 节点内边距:12px(紧凑),16px(标准),20px(宽松)
  • 节点间间距:16px(紧凑),24px(标准),32px(宽松)
  • 子节点缩进:24px

颜色

所有颜色在 style-guide.md 中定义为 CSS 自定义属性。角色按含义引用,而不是具体数值。


6. 连接器规则

  1. 始终水平或垂直路由。 无对角线或曲线。
  2. 箭头标签必须有一个白色或 paper 色的遮罩矩形,略大于文本。
  3. 标签不得接触连接线。 标签和线之间至少保留 4px 间隙。
  4. 路径不得重叠。 如果两条连接线交叉,用一个小弧形或间隙指示。
  5. 每个端口或节点只能有一个附着点。 无共享的附着点。
  6. 连接线不得在非端点的方框后面穿行。 连接线必须在可见区域内。

违反这些规则中的任何一项都会自动失败。在渲染之前,请目视检查布局。


7. 复杂度预算

单个图表不得超过以下任意一项:

  • 20 个节点
  • 40 条连接线
  • 3 层分组嵌套
  • 4 种不同的形状类型

如果超过这些限制,将图表拆分为概览图和一个或多个详图。在概览中,使用颜色或编号来引用详图。


8. 输出格式

所有图表生成为自包含的 HTML 文件,内联 SVG 在 <svg> 标签内。HTML 文件包含其自己的 CSS(内联 <style>)和 JavaScript(如果需要交互性)。

可选输出格式:

  • .html(默认,自包含)
  • .svg(仅 SVG,无 HTML 包装器)
  • .png(通过服务器端渲染或用户浏览器捕获的屏幕截图)

默认尺寸:1500x1000px,除非指定了预设。

尺寸预设

预设尺寸使用场景
micro800x600嵌入文档的较小图表
standard1200x800标准演示文稿或文档
presentation1920x1080全屏演示文稿(16:9)
wide1600x900宽格式文档
portrait900x1200纵向格式(报告、A4)

9. 输入格式

此技能可以导入以下格式:

  • .drawio — Draw.io / diagrams.net 文件
  • .mmd — Mermaid 文件
  • .excalidraw — Excalidraw 文件

导入时,解析内容并转换为编辑布局,遵循设计系统和上面概述的反模式。不使用 Mermaid 的渲染器布局;相反,提取语义内容并重新布局。


10. 生命周期阶段图

对于生命周期阶段图(第 3 节中提到的语义模式),使用状态机类型,但专注于阶段、等待、重试、取消和最终结果。节点代表阶段,过渡代表阶段之间的进展。使用颜色指示状态:

  • 绿色:已完成阶段
  • 蓝色:当前阶段
  • 灰色:未来阶段
  • 黄色:等待/重试状态
  • 红色:取消/失败状态

11. 块分解树

对于块分解树(第 3 节中提到的语义模式),使用树类型,但添加每个块的 I/O 端口、约束和代码链接。节点是块,具有可选的输入/输出端口和约束标签。连接代表块之间的数据或控制流。


12. 引导指南

首次使用此技能的用户应遵循以下步骤:

  1. 自定义样式指南:编辑 style-guide.md 以匹配您的品牌颜色、字体和令牌。
  2. 选择一种类型:使用第 3 节的表格根据您的内容选择视觉类型。
  3. 加载参考:打开所选类型的参考文件(例如 references/type-architecture.md)。
  4. 绘制:将内容输入到指定格式中。
  5. 检查:在渲染之前检查反模式和连接器规则。
  6. 保存配置文件:可选地,将您的样式指南保存为 profiles/ 目录下的命名配置文件,以便将来使用。

参考文件

下表列出了此技能使用的所有参考文件。在需要时加载它们。

文件用途
references/style-guide.md颜色、字体、令牌和默认调色板
references/profiles.md命名配置文件和保存行为
references/onboarding.md首次设置和引导流程
references/semantic-patterns.md语义模式及其到视觉类型的映射
references/animation.md动画规则和最佳实践
references/type-*.md特定视觉类型的布局和语法

相关技能