生成飞书画板可用的 PlantUML 图表。遵循飞书画板的安全子集语法,支持流程图、时序图、类图、用例图、组件图、ER图、思维导图等。当用户需要生成架构图、流程图或各类 UML 图时使用。
Scanned 2/12/2026
Install via CLI
openskills install riba2534/feishu-cli---
name: feishu-cli-plantuml
description: 生成飞书画板可用的 PlantUML 图表。遵循飞书画板的安全子集语法,支持流程图、时序图、类图、用例图、组件图、ER图、思维导图等。当用户需要生成架构图、流程图或各类 UML 图时使用。
argument-hint: <自然语言描述>
user-invocable: true
allowed-tools: Bash, Read, Write
---
# 飞书 PlantUML 生成技能
生成适配飞书画板的 PlantUML 图表,严格使用安全子集语法。
## PlantUML vs Mermaid 选择
本项目同时支持 PlantUML 和 Mermaid,选择建议:
| 场景 | 推荐 | 原因 |
|------|------|------|
| 流程图、时序图、类图、ER 图、甘特图、饼图、思维导图、状态图 | **Mermaid** | 飞书原生支持更好,成功率更高 |
| 用例图、组件图、活动图(复杂分支) | **PlantUML** | Mermaid 不支持这些图类型 |
| 需要精确控制图表布局 | **PlantUML** | 语法更灵活 |
**默认推荐 Mermaid**,仅在 Mermaid 不支持的图类型时才使用 PlantUML。
## 图类型判断
根据用户描述自动选择图类型:
| 用户描述关键词 | 图类型 |
|---------------|--------|
| 流程/步骤/审批/规则 | 活动图/流程图 |
| 调用链/接口交互/消息顺序 | 时序图 |
| 角色-功能 | 用例图 |
| 结构/类/关系 | 类图 |
| 组件/模块/技术路线图 | 组件图 |
| 架构图/分层架构 | 组件图(无 ArchiMate) |
| 实体/字段/表关系 | ER 图 |
| 思维导图/层级梳理 | 思维导图 |
## 安全子集规则
### 必须遵守
- 使用 `@startuml` / `@enduml` 包裹(思维导图用 `@startmindmap` / `@endmindmap`)
- **不要使用行首缩进**——飞书画板将缩进的行视为独立行,导致解析失败。所有代码必须顶格书写(package/class 内部内容除外)
- 避免 `skinparam` 样式指令
- 避免 `!define` 预处理/宏指令
- 避免颜色、字体、对齐控制
- 避免方向控制指令(如 `left to right direction`)
### 各图类型语法
#### 活动图/流程图
```plantuml
@startuml
start
:步骤1;
if (条件?) then (是)
:步骤2;
else (否)
:步骤3;
endif
stop
@enduml
```
#### 时序图
```plantuml
@startuml
participant 用户
participant 系统
用户 -> 系统: 请求
系统 --> 用户: 响应
@enduml
```
#### 类图
```plantuml
@startuml
class 用户 {
id : int
name : string
login()
}
class 订单 {
id : int
amount : float
}
用户 --> 订单
@enduml
```
注意:避免可见性标记(`+` `-` `#` `~`)
#### 用例图
```plantuml
@startuml
actor 用户
(登录)
(注册)
用户 --> (登录)
用户 --> (注册)
@enduml
```
#### 组件图
```plantuml
@startuml
package "前端" {
[Web App]
[Mobile App]
}
package "后端" {
[API Server]
[Database]
}
[Web App] --> [API Server]
[Mobile App] --> [API Server]
[API Server] --> [Database]
@enduml
```
#### ER 图
```plantuml
@startuml
entity 用户 {
*id : int
name : varchar
email : varchar
}
entity 订单 {
*id : int
user_id : int
amount : decimal
}
用户 ||--o{ 订单
@enduml
```
#### 思维导图
```plantuml
@startmindmap
* 主题
** 分支1
*** 子分支1
*** 子分支2
** 分支2
@endmindmap
```
## 使用流程
1. **分析用户需求**:确定图类型
2. **生成 PlantUML**:遵循安全子集
3. **输出代码块**:仅输出一个代码块
4. **说明变更**:如有降级或移除,简要说明
## 导入到飞书文档
生成的 PlantUML 可以通过以下方式使用:
### 方式一:飞书画板直接粘贴
1. 在飞书文档中插入画板
2. 点击"PlantUML"
3. 粘贴生成的代码
### 方式二:通过 Markdown 导入
在 Markdown 中使用 plantuml 代码块:
````markdown
```plantuml
@startuml
...
@enduml
```
````
然后使用 `feishu-cli doc import` 导入。
## 输出规范
- 只输出一个 PlantUML 代码块
- 代码块外简短说明修改点(如有降级)
- 不输出多余的伪代码
- 输出时不要包含行首缩进
## 常见问题
### 渲染失败
1. 检查是否有行首缩进
2. 检查是否使用了不支持的语法
3. 简化图表复杂度
### ArchiMate 不支持
飞书画板 PlantUML 版本较旧,ArchiMate sprite 不完整。建议改用组件图。
## 权限要求
- `board:board` - 画板读写(PlantUML 通过画板 API 导入)
- `docx:document` - 文档读写(通过 Markdown 导入时需要)

No comments yet. Be the first to comment!