返回 Skill 列表
extension
分类: 其它无需 API Key

software-chart-generator

软件架构图生成专家。当用户输入 "/software-chart-generator" 时触发。 触发方式:用户输入 "/software-chart-generator [图类型] [路径]" 时触发, 自动进入深度模式,一类图生成多张(如模块图先整体再细分)。 擅长用Mermaid语法生成图表,保存为.md文件供渲染阅读器打开。 仅在用户明确调用 "/software-chart-generator" 时触发。

person作者: user_97585ae3hubcommunity

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语法验证与重画机制

每张图生成后,必须进行语法自检:

自检步骤

  1. 检查节点定义是否合法:节点文本不能包含未转义的 [](){} 等特殊字符
  2. 检查箭头语法:-->-.->==> 等箭头格式是否正确
  3. 检查关键字拼写:graphsequenceDiagramclassDiagram 等是否拼写正确
  4. 检查括号匹配:每个 ( 要有 ),每个 [ 要有 ]
  5. 检查子图闭合:subgraph 必须有对应的 end

常见错误及修复

  • 节点文本含方括号:将 [内容] 改为 "[内容]""内容"
  • 节点文本含圆括号:将 (内容) 改为 "(内容)"
  • 箭头方向错误:A -> B 应为 A --> B
  • 缺少 end:每个 subgraphloopaltopt 必须有对应的 end

重画机制

  • 若自检发现语法错误,标记该图为「待修复」
  • 分析错误原因,修正 Mermaid 代码
  • 重新执行自检,直到通过
  • 最多重试 3 次,若仍失败则跳过该图并记录错误原因

5. 深度模式的多图策略

模块结构图(深度)

  1. 整体模块图:顶层目录结构,主要模块划分
  2. 核心模块详细图:为每个核心模块(如核心业务、数据层、工具层)生成详细图
  3. 模块依赖关系图:展示模块间的调用/导入关系

系统架构图(深度)

  1. 高层架构图:分层架构和主要技术栈
  2. 详细组件图:为每层生成内部组件图
  3. 部署架构图:部署拓扑和外部依赖

时序图(深度)

  1. 主流程时序图:核心业务流程的完整交互
  2. 子流程时序图:关键子流程(如登录、支付、数据同步)
  3. 异常处理时序图:错误处理和降级流程

其他类型(深度)

  • 用例图:按用户角色分组,每个角色一张
  • 业务流程图:按业务域分组,每个域一张
  • 数据流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

  1. 必须分析源码:不能凭空生成,必须基于实际代码结构
  2. 必须提供解释:每张图必须有对应的5部分文字解释
  3. 标准Mermaid语法:确保可在GitHub/GitLab/VS Code中渲染
  4. 中文标签:图表中的说明用中文,代码中的类名/函数名保留英文
  5. 清晰可读:节点命名简洁,避免过度拥挤
  6. 保存为.md:所有输出保存为Markdown文件
  7. 深度模式递进:多张图之间要有逻辑递进关系,从整体到细节
  8. GitHub源码:如用户提供GitHub URL,先克隆或读取关键文件再分析