Software Chart Generator
核心能力
对源码进行结构化分析,使用Mermaid语法生成6种软件开发标准图表,并保存为可渲染的Markdown文件。
工作模式(仅深度模式)
触发条件:用户输入 /software-chart-generator [图类型] [路径]
行为:
- 一类图生成多张,层层递进
- 例如模块图:先画整体模块 → 再为每个核心模块画详细模块图 → 最后画模块依赖关系图
- 每张图都有独立解释
- 参考
references/目录下的示例文件了解输出标准
支持的图类型
| 类型关键词 | 中文关键词 | 说明 |
|-----------|-----------|------|
| sequence | 时序图 | 对象间交互时间顺序 |
| usecase | 用例图 | 系统功能与用户角色关系 |
| er / dataflow | 数据流E-R图 / E-R图 | 数据流动与实体关系 |
| architecture | 系统架构图 | 分层架构与技术栈 |
| business | 业务流程图 | 业务操作执行流程 |
| module | 模块结构图 | 代码模块组织与依赖 |
| all | 全部 | 并发生成所有6种图(每种多张) |
多类图并发模式(all 类型)
当用户输入 /software-chart-generator all [路径] 时,启动 6 个 subagent 并发执行,每个 subagent 负责生成一类图:
- subagent 1: 时序图
- subagent 2: 用例图
- subagent 3: 数据流E-R图
- subagent 4: 系统架构图
- subagent 5: 业务流程图
- subagent 6: 模块结构图
每个 subagent 独立分析源码、生成图表、保存文件。主 agent 汇总结果并输出目录结构。
工作流程
1. 解析用户输入
提取:
- 图类型:从关键词映射到6种类型之一(含
all) - 源码路径:GitHub URL 或本地路径(默认当前目录)
分支判断:
- 若图类型为
all,进入「多类图并发模式」 - 若图类型为单一类型,进入「单类图深度模式」
2. 源码分析
使用工具分析源码:
Glob/LS:扫描项目结构Read:读取核心文件(入口、配置、模型)Grep/SearchCodebase:分析依赖关系、类继承、数据流- 识别:入口文件、核心模块、数据库模型、API接口、用户角色、业务流程
多类图并发模式下的源码分析:
- 主 agent 先做一次全局源码扫描,收集项目整体信息
- 将扫描结果作为上下文传递给每个 subagent,避免重复分析
3. 图表生成
单类图深度模式
根据图类型选择Mermaid语法,按以下策略生成:
时序图:
- 识别Actor/Participant
- 按时间顺序排列消息
- 标注alt/opt/loop条件分支
用例图:
- 识别Actor角色
- 识别UseCase功能
- 标注include/extend关系
- 按模块分组
数据流E-R图:
- 识别外部实体/处理过程/数据存储
- 构建DFD
- 识别实体属性关系
- 构建E-R
系统架构图:
- 按层次分组(表示/应用/业务/数据)
- 标注技术栈
- 展示调用关系
业务流程图:
- 识别开始结束节点
- 排列处理步骤
- 标注判断分支
- 识别循环
模块结构图:
- 按目录层级展示
- 标注模块职责
- 展示import依赖
- 识别核心/公共模块
多类图并发模式(all 类型)
主 agent 使用 Task 工具启动 6 个 subagent 并发执行:
subagent 任务描述模板:
- 任务:生成 [图类型] 深度模式图表
- 输入:源码路径 + 全局扫描结果(项目结构、核心文件、依赖关系)
- 输出:保存到 [项目名]-charts/[序号]-[图类型英文].md
- 要求:
1. 基于提供的源码信息生成多张图(深度模式)
2. 每张图包含5段式解释(整体概述、关键元素、关键流程、关键技术、设计意图)
3. 使用标准Mermaid语法
4. 参考 references/[对应示例文件] 了解输出格式
并发执行后:
- 主 agent 等待所有 subagent 完成
- 汇总输出目录结构
- 报告每类图的生成状态(成功/失败)
4. Mermaid语法验证与重画机制
每张图生成后,必须进行语法自检:
自检步骤:
- 检查节点定义是否合法:节点文本不能包含未转义的
[、]、(、)、{、}等特殊字符 - 检查箭头语法:
-->、-.->、==>等箭头格式是否正确 - 检查关键字拼写:
graph、sequenceDiagram、classDiagram等是否拼写正确 - 检查括号匹配:每个
(要有),每个[要有] - 检查子图闭合:
subgraph必须有对应的end
常见错误及修复:
- 节点文本含方括号:将
[内容]改为"[内容]"或"内容" - 节点文本含圆括号:将
(内容)改为"(内容)" - 箭头方向错误:
A -> B应为A --> B - 缺少 end:每个
subgraph、loop、alt、opt必须有对应的end
重画机制:
- 若自检发现语法错误,标记该图为「待修复」
- 分析错误原因,修正 Mermaid 代码
- 重新执行自检,直到通过
- 最多重试 3 次,若仍失败则跳过该图并记录错误原因
5. 深度模式的多图策略
模块结构图(深度)
- 整体模块图:顶层目录结构,主要模块划分
- 核心模块详细图:为每个核心模块(如核心业务、数据层、工具层)生成详细图
- 模块依赖关系图:展示模块间的调用/导入关系
系统架构图(深度)
- 高层架构图:分层架构和主要技术栈
- 详细组件图:为每层生成内部组件图
- 部署架构图:部署拓扑和外部依赖
时序图(深度)
- 主流程时序图:核心业务流程的完整交互
- 子流程时序图:关键子流程(如登录、支付、数据同步)
- 异常处理时序图:错误处理和降级流程
其他类型(深度)
- 用例图:按用户角色分组,每个角色一张
- 业务流程图:按业务域分组,每个域一张
- 数据流E-R图:先整体数据流,再详细E-R,最后数据字典
6. 图表解释规范
每张图必须包含以下解释(保存为Markdown):
# [项目名] [图类型] ([图类型英文])
## 1. [子图标题]
```mermaid
[图表内容]
```
### 图表解释
#### 1. 整体概述
- 这张图讲的是:[一句话概括主题]
- 解决什么问题:[一句话说明价值]
- 核心看点:[1-2个关键点]
#### 2. 关键元素说明
- **元素A**:职责、作用、为什么存在
- **元素B**:职责、作用、为什么存在
#### 3. 关键流程/关系说明
- **流程A**:详细执行步骤和数据变化
#### 4. 关键技术解释
[涉及的核心技术点、设计模式、算法原理等]
#### 5. 设计意图
- 为什么要这样设计:[一句话说明动机]
- 解决了什么痛点:[一句话]
- 带来了什么好处:[1-2句话]
- 如果不这样会怎样:[一句话反面说明]
---
## 2. [子图标题]
```mermaid
[图表内容]
```
### 图表解释
...
---
## N. [子图标题]
...
---
*生成时间: [日期]*
*模式: 深度*
*所属项目: [项目名]*
*文件包含: [N] 张图*
讲解风格要求
- 面向计算机专业学生:使用专业术语,但需解释清楚,不假设读者已掌握所有背景知识
- 不堆名词:不要罗列类名、函数名、接口名,讲"谁"在做什么
- 不画细节:不要解释每个小框框的具体代码实现,讲整体流转
- 先整体后局部:先让人明白"这是啥",再讲"怎么运转"
7. 输出规范
7.1 文件组织方式
深度模式:一类图一个文件,文件内包含多张图,用二级标题 ## 分隔
[项目名]-charts/
├── 01-sequence-diagram.md # 时序图:包含多张时序图
├── 02-use-case-diagram.md # 用例图:包含多张用例图
├── 03-data-flow-er-diagram.md # 数据流E-R图:包含多张图
├── 04-system-architecture.md # 系统架构图:包含多张架构图
├── 05-business-process.md # 业务流程图:包含多张流程图
├── 06-module-structure.md # 模块结构图:包含多张模块图
└── ...
7.2 文件命名规范
格式:[序号]-[图类型英文].md
| 序号 | 文件名 | 说明 |
|------|--------|------|
| 01 | 01-sequence-diagram.md | 时序图 |
| 02 | 02-use-case-diagram.md | 用例图 |
| 03 | 03-data-flow-er-diagram.md | 数据流E-R图 |
| 04 | 04-system-architecture.md | 系统架构图 |
| 05 | 05-business-process.md | 业务流程图 |
| 06 | 06-module-structure.md | 模块结构图 |
参考资源
-
深度模式示例:
references/目录包含6种图类型的深度模式示例文件:references/01-sequence-diagram.md— 时序图示例(多张时序图)references/02-use-case-diagram.md— 用例图示例(多张用例图)references/03-data-flow-er-diagram.md— 数据流E-R图示例(多张图)references/04-system-architecture.md— 系统架构图示例(多张架构图)references/05-business-process.md— 业务流程图示例(多张流程图)references/06-module-structure.md— 模块结构图示例(多张模块图)
当用户触发时,读取对应的参考文件了解输出密度和解释深度。
-
Mermaid语法参考:需要时读取
references/mermaid-syntax.md
Rules
- 必须分析源码:不能凭空生成,必须基于实际代码结构
- 必须提供解释:每张图必须有对应的5部分文字解释
- 标准Mermaid语法:确保可在GitHub/GitLab/VS Code中渲染
- 中文标签:图表中的说明用中文,代码中的类名/函数名保留英文
- 清晰可读:节点命名简洁,避免过度拥挤
- 保存为.md:所有输出保存为Markdown文件
- 深度模式递进:多张图之间要有逻辑递进关系,从整体到细节
- GitHub源码:如用户提供GitHub URL,先克隆或读取关键文件再分析
Scan to join WeChat group