360 Secure SkillHub
360 安全技能中心

Diagram Workflow Method

一套图表绘制方法:先从描述中提取实体、关系与层次,再按信息特征选定架构图、流程图、时序图、状态机、ER图、拓扑图、数据流图或类图,最后完成编码、布局并输出SVG或Mermaid,附实体表、编码表和七项验证清单及四份参考文档。

wangjiaocheng
wangjiaocheng
热度 50.79
最近更新 2026-09-22 02:55:04
分类:创作依赖:内部调用大模型应用场景:图像生成 / 概念解释 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add diagram-workflow-method
Metadata
name
diagram-workflow-method
author
王教成 Wang Jiaocheng (波动几何)
description
架构图与流程图绘制方法。核心能力:将任何系统/流程/数据结构可视化表达为结构化图表(架构图、流程图、时序图、状态机、ER图、拓扑图等)。覆盖从需求理解、图表类型判定、实体提取、关系编码、布局计算到SVG/Mermaid输出的全流程。8种图表类型、每种图表的组件清单与1个完整实战范本。通用方法,不绑定任何特定领域。触发词:架构图、流程图、时序图、状态机、拓扑图、ER图、数据流图、draw、diagram、flowchart、architecture。

架构图与流程图绘制方法

核心理念

任何图表的本质是信息结构的视觉化表达。图表中的每个节点承载一个信息实体,每条连线承载一种实体关系,每个容器承载一层逻辑边界。绘制图表不是"用工具画图",而是先理解信息结构,再选择合适的视觉编码将其映射为可渲染的SVG或Mermaid。

图表类型由信息结构决定——有层次用架构图,有顺序用流程图,有交互用时序图,有状态转换用状态机图。选错类型会让信息表达失真。

适用范围广泛。 任何有实体和关系的信息结构(系统架构、业务流程、数据模型、网络拓扑、状态转换、时序交互)都可以用本方法可视化。


绘制三步法

第一步:分析信息结构

从用户描述中提取核心信息:

  1. 识别实体:找出所有独立的信息单元(组件、状态、角色、表、节点)
  2. 识别关系:找出实体间的连接(调用、依赖、包含、时序、数据流)
  3. 识别层次:找出实体的归属关系(哪个属于哪个模块/层/泳道)

实体判定准则:如果去掉某个元素后信息不完整,它就是实体;如果去掉后信息仍然完整,它就是装饰。

数量控制:单张图实体≤20个。超出时拆分为多张子图,用概览图+细节图的方式表达。

第二步:选择图表类型与编码方案

根据信息结构特征选择最匹配的图表类型:

信息特征 图表类型 典型场景
组件+层次+接口 系统架构图 微服务架构、云原生部署
步骤+分支+汇合 业务流程图 审批流、生产流程
角色+消息+时序 时序图 API调用链、协议交互
状态+事件+转换 状态机图 订单状态、用户生命周期
实体+属性+关系 ER图 数据库设计、领域模型
节点+链路+层级 网络拓扑图 网络架构、部署拓扑
数据源+处理+存储 数据流图 ETL流水线、数据中台
类+属性+方法+继承 类图 面向对象设计、API契约

确定类型后,选定编码方案:

  • 颜色编码:不同类型实体用不同颜色
  • 形状编码:矩形=组件、菱形=决策、圆柱=数据库、椭圆=状态
  • 线型编码:实线=调用、虚线=依赖、粗线=主要路径、细线=次要路径

第三步:布局计算与渲染输出

  1. 布局计算:根据层次关系确定节点位置,确保同层对齐、跨层连线不交叉
  2. SVG/Mermaid生成:按编码方案生成可渲染代码
  3. 可读性优化:调整间距、减少交叉、确保文字清晰

验证清单

绘制完成后逐项验证,七项全部通过才算完成:

# 验证项 说明
1 ⬜ 信息完整性 覆盖全部核心实体和关键关系,无遗漏
2 ⬜ 类型匹配 图表类型与信息结构特征匹配
3 ⬜ 层次清晰 分层/分组反映信息的逻辑层次
4 ⬜ 关系准确 连线/箭头准确表达实体间关系类型
5 ⬜ 可读性 文字清晰、间距合理、箭头不交叉
6 ⬜ 编码一致 颜色/形状/线型编码全图统一
7 ⬜ 可渲染 输出为有效SVG/Mermaid,可直接渲染

领域要求清单

D0-01 系统架构图

  • 必选组件: 系统名称、组件列表(名称+职责)、层次划分(前端/后端/数据层/基础设施)、组件间接口关系、外部系统边界
  • 可选组件: 技术栈标注、部署环境标注、数据流向标注、安全边界标注
  • 组装顺序: 系统边界确认→层次划分→组件识别→接口关系标注→技术栈标注→布局计算→渲染
  • 约束: 同层组件水平对齐;跨层关系垂直连线;单张图≤20个节点
  • 格式: SVG(show_widget渲染)或Mermaid代码块

D0-02 业务流程图

  • 必选组件: 流程名称、步骤列表(名称+角色+输入+输出)、步骤顺序、决策分支、开始/结束节点
  • 可选组件: 泳道划分、异常处理路径、并行分支、超时/重试逻辑
  • 组装顺序: 流程边界确认→步骤识别→顺序排列→决策分支标注→泳道划分→布局计算→渲染
  • 约束: 决策节点用菱形;是/否分支必须标注;循环必须有终止条件
  • 格式: SVG或Mermaid flowchart

D0-03 时序图

  • 必选组件: 参与者列表、消息序列(发送方→接收方+消息名)、时序顺序、返回消息
  • 可选组件: 生命线激活区间、条件分支(alt/opt/loop)、自调用、创建/销毁标记
  • 组装顺序: 参与者识别→消息序列排列→返回消息标注→条件分支标注→布局计算→渲染
  • 约束: 时间轴从上到下;同步消息用实线箭头;异步消息用开放箭头
  • 格式: SVG或Mermaid sequenceDiagram

D0-04 状态机图

  • 必选组件: 状态列表(名称+是否终态)、转换关系(源状态+事件+目标状态)、初始状态标记
  • 可选组件: 守卫条件、进入/退出动作、历史状态、嵌套子状态
  • 组装顺序: 状态识别→转换关系排列→初始/终态标注→守卫条件标注→布局计算→渲染
  • 约束: 初始状态用实心圆;终态用双圆;转换箭头标注事件名
  • 格式: SVG或Mermaid stateDiagram-v2

D0-05 ER图

  • 必选组件: 实体列表(名称+属性)、主键标注、关系类型(1:1/1:N/M:N)、关系连线
  • 可选组件: 外键标注、属性类型、弱实体、复合属性
  • 组装顺序: 实体识别→属性列举→主键标注→关系识别→基数标注→布局计算→渲染
  • 约束: 实体用矩形;属性用椭圆;关系用菱形;基数必须标注
  • 格式: SVG或Mermaid erDiagram

D0-06 网络拓扑图

  • 必选组件: 节点列表(设备类型+名称+IP)、链路关系、网络层级(核心/汇聚/接入)
  • 可选组件: 带宽标注、VLAN划分、安全区域、冗余链路
  • 组装顺序: 网络层级确认→节点识别→链路关系标注→IP/带宽标注→布局计算→渲染
  • 约束: 同层节点水平排列;层级间垂直连接;冗余链路用虚线
  • 格式: SVG

D0-07 数据流图

  • 必选组件: 数据源、处理节点、数据存储、数据流(方向+内容)、输出
  • 可选组件: 转换规则、过滤条件、分支/合并、监控点
  • 组装顺序: 数据源识别→处理步骤排列→存储节点标注→数据流方向标注→布局计算→渲染
  • 约束: 数据源用矩形;处理用圆角矩形;存储用圆柱形;流向用箭头
  • 格式: SVG或Mermaid flowchart

D0-08 类图

  • 必选组件: 类列表(名称+属性+方法)、继承关系、关联关系
  • 可选组件: 接口、抽象类、多重性标注、依赖关系、组合/聚合关系
  • 组装顺序: 类识别→属性/方法列举→继承关系标注→关联关系标注→布局计算→渲染
  • 约束: 类名用粗体;抽象类用斜体;接口用<>标注
  • 格式: SVG或Mermaid classDiagram

领域范本

DF-01 图表绘制范本

对应任务: D0-01 ~ D0-08

适用场景: 任何需要将信息结构可视化为图表的场景

绘制范本:

## 图表绘制记录

### Step 1:分析信息结构(D0-0X)

**图表类型**:________(如:系统架构图/业务流程图/时序图/________)

**实体列表**:

| # | 实体名称 | 类型 | 属性/说明 | 所属层次 |
|---|----------|------|----------|---------|
| 1 | ________ | ________ | ________ | ________ |
| 2 | ________ | ________ | ________ | ________ |
| ... | ... | ... | ... | ... |

**关系列表**:

| # | 源实体 | 目标实体 | 关系类型 | 说明 |
|---|--------|---------|---------|------|
| 1 | ________ | ________ | ________ | ________ |
| 2 | ________ | ________ | ________ | ________ |
| ... | ... | ... | ... | ... |

**汇总**:___个实体 / ___个关系 / ___个层次

### Step 2:选择编码方案(D0-0X)

**颜色编码**:

| 实体类型 | 颜色 |
|---------|------|
| ________ | #______ |
| ________ | #______ |

**形状编码**:

| 元素类型 | 形状 |
|---------|------|
| 组件 | 矩形 |
| 决策 | 菱形 |
| 数据库 | 圆柱 |
| ... | ... |

**线型编码**:

| 关系类型 | 线型 | 箭头 |
|---------|------|------|
| 调用 | 实线 | 实心三角 |
| 依赖 | 虚线 | 开放三角 |
| ... | ... | ... |

### Step 3:布局与渲染(D0-0X)

**布局方案**:________(层次布局/网格布局/泳道布局)

| 实体 | X | Y | 宽 | 高 |
|------|---|---|----|----|
| ________ | ___ | ___ | ___ | ___ |
| ... | ... | ... | ... | ... |

### Step 4:验证(D0-0X)

| # | 验证项 | 通过? |
|---|--------|-------|
| 1 | 信息完整性 | ⬜是/⬜否 |
| 2 | 类型匹配 | ⬜是/⬜否 |
| 3 | 层次清晰 | ⬜是/⬜否 |
| 4 | 关系准确 | ⬜是/⬜否 |
| 5 | 可读性 | ⬜是/⬜否 |
| 6 | 编码一致 | ⬜是/⬜否 |
| 7 | 可渲染 | ⬜是/⬜否 |

范本要点:

  • 实体必须来自信息结构本身,不可凭空添加
  • 编码方案必须全图一致,不可中途变换
  • 验证七项必须全部通过
  • 范本中 ________ 为待用户提供的内容,不可AI编造

参考文件

  • references/diagram-types.md — 各类图表的SVG骨架与最佳实践
  • references/svg-arrow-guide.md — SVG箭头marker完整定义规范
  • references/layout-guide.md — 分层架构图布局完整指南
  • references/mermaid-reference.md — Mermaid语法速查与示例模板

SVG渲染规范

箭头Marker规范

  • marker路径必须朝右(+x方向),三角形尖端在x最大值处
  • markerWidth和markerHeight必须≥viewBox宽高
  • refX放到路径尖端x坐标、refY放y中心

分层架构图布局规范

  • 每层用stroke-dasharray虚线圆角矩形包裹同层组件
  • 层间箭头间距至少40px
  • viewBox高度先计算所有内容底部坐标+图例高度+16px余量

设计规范

  • 颜色:加载read_me diagram后按CSS变量定义使用
  • 字体:font-family="sans-serif"
  • 间距:组件间距≥16px,文字与边框间距≥8px
  • 图例:复杂图表右下角添加图例说明

使用规则

  1. 判断图表类型:根据信息特征选择最匹配的图表类型
  2. 按三步执行:分析信息结构→选择编码方案→布局渲染
  3. 产出交付:按领域要求清单逐项填充,或按DF-01范本结构替换实际内容
  4. 渲染输出:优先show_widget内联SVG;需嵌入文档时用Mermaid代码块
  5. 用户主权:AI产出的图表是起点,用户对布局、颜色、实体选取有调整权

事实纪律

  1. 图表类型选择必须基于信息结构特征,不得因"好看"选择不匹配的类型
  2. 实体数量必须控制在合理范围内(单图≤20),超出时拆分为多张子图
  3. SVG输出必须经过可渲染验证,不可输出无效标记
  4. 涉及敏感信息的图表必须标注脱敏要求