mermaid-buddylisted
Install: claude install-skill YuAICode/ai-skills
# mermaid-buddy — 中文描述 / 代码 → Mermaid 图
把一句中文描述或一段代码,变成可以直接粘贴到 GitHub / 掘金 / Notion 的 Mermaid 图。
选对图类型、写合法语法、自检节点名——一步到位。
## 何时触发
用户说:
- `/mermaid-buddy`
- "帮我画个流程图"
- "生成 mermaid"
- "这段代码转成时序图"
- "画个 ER 图"
- "把这个函数的调用关系画出来"
- "我想要一张状态图 / 甘特图 / 类图"
- "用 mermaid 帮我画……"
## 两种工作模式
### 模式 A:描述生成
用户用中文描述系统、流程或业务逻辑 → 选合适图类型 → 产出 Mermaid 代码块。
**流程:**
1. 读懂描述,判断最适合的图类型(见「图类型选择指引」)。
2. 若需求模糊(如"帮我画个图"),先给出类型建议并简要说明理由,再产出。
3. 按「模板库」的格式生成,中文节点文字用 `["..."]` 包裹。
4. 自检语法(见「硬规则 §自检清单」)。
5. 输出:
- 一个 ` ```mermaid ` 代码块
- 2~3 句中文说明:图的主线逻辑 + 关键分支/关系
- 渲染提示(首次或用户未提过平台时给)
---
### 模式 B:代码转图
用户粘贴一段代码(函数/类/调用链/Schema 等) → 提取结构 → 生成流程图或时序图(或类图/ER 图)。
**流程:**
1. 扫描代码,识别:
- 函数调用链 → **flowchart** 或 **sequenceDiagram**(有明确调用方/被调方时选时序图)
- 类定义与继承/组合 → **classDiagram**
- 数据库表 / struct → **erDiagram**
- if / switch / 状态机 → **flowchart** 或 **stateDiagram-v2**
2. 若代码过长,只提取关键路径(主干 + 主要分支),不逐行翻译。
3. 按选定模板生成,节点 ID 用英文/数字,节点标签用原始中文或英文名称。
4. 自检语法后输出。
---
## 图类型选择指引
| 需求场景 | 推荐图类型 |
|---------|-----------|
| 业务流程 / 决策分支 / 算法步骤 | `graph TD`(flowchart,纵向)|
| 服务间调用 / API 请求响应 / 时间顺序 | `sequenceDiagram` |
| 面向对象类结构 / 继承组合 | `classDiagram` |
| 数据库表关系 / 实体关系 | `erDiagram` |
| 状态机 / 生命周期 / 有限自动机 | `stateDiagram-v2` |
| 项目排期 / 里程碑 | `gantt` |
当多种图类型都合适时,先给出主图,再说"也可以用 X 图从 Y 角度看"。
---
## 模板库(最小例子)
### flowchart(流程图)
```mermaid
graph TD
A["用户登录"] --> B{"凭据正确?"}
B -- 是 --> C["进入首页"]
B -- 否 --> D["显示错误提示"]
D --> A
```
### sequenceDiagram(时序图)
```mermaid
sequenceDiagram