# Code To Chart

> 解析代码仓库的 import/依赖关系，自动生成架构图、流程图和组织架构图，输出 Mermaid 文本或 SVG 图片。支持 Python、JavaScript、TypeScript、Go 和 Java 项目。当用户需要可视化代码结构、分析模块依赖、生成架构文档，或提及“代码架构图”、“依赖关系图”、“流程图”、“组织架构图”、“Mermaid 图”等关键词时触发。

- Skill: `haomingz/code-to-chart` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add haomingz/code-to-chart`
- Raw SKILL.md: https://api.skillmd.com/api/skills/haomingz/code-to-chart/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: haomingz (https://skillmd.com/u/haomingz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/haomingz/code-to-chart

---


# Diagram Maker

将代码仓库的 import/依赖关系通过 AST 解析提取出来，自动生成三种图表：

1. **架构图（Architecture Diagram）** — 模块/目录级别的依赖关系
2. **流程图（Flowchart）** — 文件级别的 import 调用链路
3. **组织架构图（Org Chart）** — 目录/文件的层级结构

支持语言：Python、JavaScript、TypeScript、Go、Java

输出格式：Mermaid 文本（`.mmd`）或 SVG 图片（需系统安装 `mmdc`）

## 使用方式

### 基础用法：分析整个项目

```bash
python3 scripts/analyze_codebase.py /path/to/project
```

输出三张 Mermaid 图到 stdout，同时写入当前目录下的 `.mmd` 文件。

### 指定图表类型

```bash
# 仅生成架构图
python3 scripts/analyze_codebase.py /path/to/project --type architecture

# 仅生成流程图
python3 scripts/analyze_codebase.py /path/to/project --type flowchart

# 仅生成组织架构图
python3 scripts/analyze_codebase.py /path/to/project --type org
```

### 指定输出目录和格式

```bash
# 输出到指定目录
python3 scripts/analyze_codebase.py /path/to/project --output /tmp/diagrams

# 输出 SVG（需要 mmdc）
python3 scripts/analyze_codebase.py /path/to/project --format svg

# 同时输出 Mermaid 和 SVG
python3 scripts/analyze_codebase.py /path/to/project --format both
```

### 输出 JSON 分析结果

```bash
python3 scripts/analyze_codebase.py /path/to/project --json
```

### 参数说明

| 参数 | 说明 |
|------|------|
| `directory` | 要分析的代码目录（必填） |
| `--type, -t` | 图表类型：`architecture`、`flowchart`、`org`、`all`（默认 `all`） |
| `--output, -o` | 输出目录（默认当前目录） |
| `--format, -f` | 输出格式：`mermaid`、`svg`、`both`（默认 `mermaid`） |
| `--max-files` | 最大扫描文件数（默认 500） |
| `--max-depth` | 组织架构图最大深度（默认 4） |
| `--json` | 以 JSON 格式输出分析结果 |

## 工作原理

1. **扫描阶段**：递归遍历目录，跳过 `node_modules`、`.git`、`__pycache__` 等
2. **解析阶段**：
   - Python 文件使用 `ast` 模块解析 `import` 和 `from ... import` 语句
   - JS/TS 文件使用正则匹配 `import`、`require`、`export from`
   - Go 文件使用正则匹配 `import` 语句
   - Java 文件使用正则匹配 `import` 语句
3. **解析内部依赖**：将 import 路径映射到项目内的实际文件
4. **生成图表**：将依赖关系转为 Mermaid 图表语法
5. **渲染（可选）**：调用 `mmdc`（Mermaid CLI）将 `.mmd` 渲染为 SVG

## 适用场景

- 快速了解陌生项目的模块结构
- 代码审查时可视化依赖关系
- 编写技术文档中的架构图
- 发现循环依赖或过度耦合
- 项目重构前的结构分析

## 依赖

- Python 3.7+（标准库，无需额外安装）
- SVG 输出需要 `@mermaid-js/mermaid-cli`（可选）

## 注意事项

- 仅分析静态 import 关系，不追踪动态导入
- 大型项目建议使用 `--max-files` 限制扫描范围
- Mermaid 图在节点过多时可能渲染困难，建议配合 `--type` 分开查看

