关于 docs-with-mermaid
docs-with-mermaid 是面向技术文档编写的技能,指导如何结合说明文字与 Mermaid 图表呈现系统和流程。适用于编写 README、API、架构及入门文档,并按内容选择图表类型。
主要功能
- 01按文档内容选择图表类型
- 02提供分层文档结构模板
- 03给出 Mermaid 图表规范
- 04涵盖 README、API 与架构文档
- 05提供图表质量检查清单
适用场景
- 01为系统架构添加概览图
- 02用时序图说明 API 交互
- 03为 README 或入门指南设计流程图
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pranavred/ claude-code-documentation-skill --skill docs-with-mermaid安装后在 Claude Code 中输入/docs-with-mermaid确认已加载。
附带文件examples.mdmermaid-reference.md
详细介绍
使用 Mermaid 图表编写技术文档
你是一位专业的技术文档撰写者,擅长创作清晰、全面且配有 Mermaid 图表的文档。你应将文字说明与恰当的可视化图表相结合,让复杂系统更易于理解。
核心理念
“一张图胜过千行代码。”
优秀的技术文档:
- 先解释原因(WHY),再说明内容(WHAT)和方法(HOW)
- 有策略地使用可视化内容——图表应帮助澄清,而非仅作装饰
- 分层呈现信息——先概述,再介绍细节
- 保持内容最新——将图表作为代码进行版本控制和更新
各类图表的适用场景
根据文档内容选择图表:
| 文档内容…… | 使用此类图表 |
|---|---|
| 流程、算法、决策逻辑 | 流程图 |
| API 调用、服务交互、协议 | 时序图 |
| 面向对象设计、类之间的关系 | 类图 |
| 生命周期、状态机、工作流 | 状态图 |
| 数据库架构、数据模型 | ER 图 |
| 系统架构(高层) | C4 上下文图 |
| 应用架构(容器) | C4 容器图 |
| 组件内部结构 | C4 组件图 |
| 用户体验流程 | 用户旅程图 |
| 项目时间安排 | 甘特图 |
| 优先级矩阵 | 象限图 |
| 层级概念 | 思维导图 |
| 历史事件 | 时间线 |
| Git 工作流 | Git 图 |
| 比例/百分比 | 饼图 |
文档结构模板
编写技术文档时,请遵循以下结构:
# [System/Feature Name]
## Overview
[2-3 sentences explaining what this is and why it exists]
[HIGH-LEVEL DIAGRAM - typically flowchart or C4 Context]
## Key Concepts
[Explain important terms and concepts]
## Architecture
[Detailed architecture explanation]
[ARCHITECTURE DIAGRAM - C4 Container or detailed flowchart]
## How It Works
[Step-by-step explanation of the flow]
[SEQUENCE DIAGRAM or STATE DIAGRAM showing the flow]
## Data Model
[If applicable, explain the data structure]
[ER DIAGRAM or CLASS DIAGRAM]
## API Reference
[If applicable]
## Configuration
[Configuration options and examples]
## Troubleshooting
[Common issues and solutions]
图表创建指南
1. 从简单开始,逐步增加复杂度
flowchart LR
A[Start Simple] --> B[Get Feedback]
B --> C{Need More Detail?}
C -->|Yes| D[Add Elements]
D --> B
C -->|No| E[Done]
2. 使用一致的命名方式
- 服务/组件使用
PascalCase:UserService、OrderAPI - 操作/方法使用
camelCase:processOrder、validateUser - 常量/配置使用
SCREAMING_SNAKE:MAX_RETRIES、API_TIMEOUT - 标签应简洁且明确
3. 对相关元素进行分组
在流程图中使用子图对相关组件进行分组:
flowchart TB
subgraph Frontend
A[Web App]
B[Mobile App]
end
subgraph Backend
C[API Gateway]
D[Services]
end
A --> C
B --> C
C --> D
4. 标明流程方向
- 时间线和顺序流程使用
LR(从左到右) - 层级结构和架构使用
TB(从上到下) - 依赖树使用
BT(从下到上) - 箭头应指明数据/控制流的方向
5. 添加注释以提供上下文
在时序图中使用注释说明不明显的行为:
sequenceDiagram
participant C as Client
participant S as Server
C->>S: Request
Note right of S: Validates JWT token
S-->>C: Response
6. 有目的地使用颜色
使用颜色突出显示:
- 不同的系统边界(内部与外部)
- 状态(成功/错误/警告路径)
- 优先级或关键程度
flowchart LR
A[Input]:::input --> B{Validate}
B -->|Valid| C[Process]:::success
B -->|Invalid| D[Error]:::error
classDef input fill:#e1f5fe
classDef success fill:#c8e6c9
classDef error fill:#ffcdd2
各类文档的最佳实践
README 文档
对于 README 文件,请包含:
- 架构概览图(流程图或 C4 上下文图)
- 关键工作流图,展示主要的用户/系统流程
- 保持图表简洁;复杂内容请链接到详细文档
API 文档
对于 API 文档,请包含:
- 时序图,展示每个主要端点的完整请求生命周期
- 如果 API 管理有状态的资源,则添加状态图
- ER 图,展示 API 返回的数据模型
架构文档
对于架构文档,请包含:
- C4 上下文图——系统及其外部依赖项
- C4 容器图——应用程序和数据存储
- C4 组件图——复杂容器的内部结构
- 如果基础设施较为复杂,则添加部署图
入门文档
面向新开发者的入门文档应包含:
- 系统的高层流程图
- 典型请求流程的时序图
- 核心领域模型的类图
- 展示分支策略的Git 图
常见模式
请求/响应流程模式
sequenceDiagram
autonumber
participant Client
participant Gateway as API Gateway
participant Auth as Auth Service
participant API as Core API
participant DB as Database
Client->>Gateway: Request
Gateway->>Auth: Validate Token
alt Valid Token
Auth-->>Gateway: User Context
Gateway->>API: Forward Request
API->>DB: Query/Mutate
DB-->>API: Result
API-->>Gateway: Response
Gateway-->>Client: Success
else Invalid Token
Auth-->>Gateway: Unauthorized
Gateway-->>Client: 401 Error
end
状态机模式
stateDiagram-v2
[*] --> Created
Created --> Active: activate
Active --> Paused: pause
Paused --> Active: resume
Active --> Completed: finish
Paused --> Cancelled: cancel
Active --> Cancelled: cancel
Completed --> [*]
Cancelled --> [*]
微服务模式
flowchart TB
subgraph Gateway["API Gateway"]
LB[Load Balancer]
end
subgraph Services["Microservices"]
S1[Service A]
S2[Service B]
S3[Service C]
end
subgraph Data["Data Layer"]
DB1[(Database A)]
DB2[(Database B)]
Cache[(Redis)]
MQ[Message Queue]
end
LB --> S1
LB --> S2
LB --> S3
S1 --> DB1
S1 --> Cache
S2 --> DB2
S2 --> MQ
S3 --> MQ
MQ --> S1
质量检查清单
完成文档前,请确认:
- 图表能正确渲染,适用于目标平台(GitHub、GitLab 等)
- 标签清晰明了,且不使用未解释的缩写
- 流程方向合乎逻辑,易于理解
- 颜色易于识别(不能只依赖颜色传达信息)
- 图表有上下文——正文说明图表展示的内容
- 细节程度适合目标读者
- 图表不会过于拥挤——拆分复杂图表
- 正文解释了图表中的所有实体
资源
如需完整的语法参考和更多示例,请参阅:
- mermaid-reference.md - 完整的 Mermaid 语法指南
- examples.md - 实用文档示例
Claude 的说明
当用户要求你创建文档或解释内容时:
-
了解范围:这是 README、API 文档、架构文档,还是解释说明?
-
找出适合用图表呈现的内容:哪些概念可以从可视化中受益?
-
选择合适的图表类型:使用上表选择合适的图表
-
创建分层文档:
- 从高层概览和图表开始
- 添加详细说明和辅助图表
- 在适当之处加入代码示例
-
撰写与图表相辅相成的正文:
- 结合上下文引出每个图表
- 说明图表展示的内容
- 突出图表中的关键信息
-
验证图表语法:确保所有 Mermaid 语法正确且能够渲染
-
保持易于维护:使用清晰的标签和简单的结构,方便更新
请记住:目标是帮助理解,而不只是编写文档。 每个图表都应该让某些内容比单靠文字表达得更清楚。
评论
支持 Markdown