乐于分享
好东西不私藏

项目文档写到头秃?Claude Code直接从代码生成概要设计,17张架构图全搞定

项目文档写到头秃?Claude Code直接从代码生成概要设计,17张架构图全搞定

做项目的程序员都懂,写概要设计有多痛苦。

特别是那种”交付级”的设计文档——要画ER图、架构图、用例图、时序图、数据流图……光画图就够折腾了,画完还得对齐格式、调页眉页脚、保证跟模版一致。一个文档写三天,两天在画图。

最近手上一个项目,6个业务模块、80多张数据库表。我试着让 Claude Code 直接从项目代码生成概要设计,结果让我自己都没想到——17张图全部自动生成,打开 Word 就能交付。

看看效果

不废话,先看生成出来的 Word 文档长什么样。

这是 Claude Code 生成的文档目录,从引言到附录,章节结构完整。

翻开正文,每章每节都有配图。比如”总体业务流程”这一章,AI 根据代码里的 Controller、Service、Mapper 调用链,自动画出了完整的业务流程图:

系统管理模块的数据库表关系,AI 直接从 Mapper XML 和 Entity 类中提取字段和关联,生成了 ER 图:

注:因为是公司项目文档,所有不能把更详细的图贴出来,包括类图、时序图等。

用例图、流程图、架构图、ER图、类图、时序图……整整17张,全部是AI读完代码后自动画的。

这些图是怎么来的?底层用的是 Mermaid——一种用文本画图的语法。比如上面那个 ER 图,在 Markdown 里只需要写表名和关系:

mermaid

erDiagram    USER ||--o{ ORDER : "下单"    ORDER ||--|{ ORDER_ITEM : "包含"    USER {        string id PK        string name        string phone    }

写几行文本,图就自动出来了。类似的还有 sequenceDiagram(时序图)、classDiagram(类图)、flowchart(流程图)等6种类型。

你可能想问:这些图是怎么从代码到Word的?往下看。

怎么做到的?三步搞定

整个流程其实就三步:生成Markdown → 生成Word → 渲染图片插入Word

第一步:让AI读代码,生成Markdown版

关键是不要让AI凭空”写”文档,而是让它先读懂代码再写

我把项目目录交给 Claude Code,告诉它:

“分析这个项目所有模块的Controller、Entity、Mapper XML,提取每个模块的功能、数据库表、业务流程,然后按照概要设计说明书的结构输出Markdown文档,每个章节配上对应的Mermaid图。”

它先扫了一遍项目结构,然后逐个模块读 Controller、Entity、Mapper XML,把接口、表结构、业务逻辑都提取出来。

这一步大概用了10分钟。6个模块全部分析完,生成了17张图的 Markdown 文档。

你可能会问:生成的图准不准?

说实话,ER图和架构图的准确率很高——因为它直接读的 Mapper XML 和 Entity 类,表名、字段、关系都是从代码里提取的,不是凭空编的。时序图和流程图需要人工核对业务逻辑,但框架已经搭好了,改比从零写快太多。

第二步:匹配模版,生成Word文档

我把公司的概要设计模版(.doc格式)喂给 Claude Code,让它分析模版的格式——字体、字号、页边距、标题样式。

然后用 docx-js(一个JavaScript的Word生成库)按照模版格式生成 Word。黑体18pt的一级标题、黑体16pt的二级标题、宋体9pt的正文、页边距70.9pt——全部对齐。

核心代码其实不复杂,关键是要把模版的格式参数摸清楚:

javascript

// docx-js 标题样式配置styles: {  default: {    document: { run: { font: "宋体", size: 18 } }  // 18 = 9pt  },  heading1: { run: { font: "黑体", size: 36, bold: false } }}

这里有个坑:黑体标题看着像加粗,但模版里其实 bold=false。如果你不检查模版原始格式,直接设 bold=true,生成出来的标题会比模版粗一圈。

第三步:Mermaid图渲染成图片,插入Word

Markdown里的图虽然能预览,但甲方打开 Word 看到的是代码,不是图。需要把 Mermaid 渲染成 PNG 再插进去。

用 mermaid-cli(Mermaid官方的命令行工具):

npm install @mermaid-js/mermaid-climmdc -i diagram.mmd -o diagram.png -w 1200 -b white

17张图,一行命令批量渲染。

然后用 python-docx 把渲染好的 PNG 逐张插入 Word 文档的对应位置:

到这里,一份完整的概要设计文档就出来了。从代码到Word,30分钟。

但实际过程中,我踩了不少坑。

这些坑我替你踩了

坑1:功能结构图太长,一页放不下

用 Mermaid 画功能结构图的时候,我一开始用了 graph LR(从左到右布局)。

问题出在哪?一个根节点连着8-9个子节点,从左到右排列,必然是一条竖长条。实际生成的图 5.1cm宽 × 51.3cm高——一张图顶三页纸,字根本看不清。

解决方案就一行:改用 graph TB(从上到下布局),让子节点横向展开。同样的内容,改成 TB 之后变成 14cm宽 × 1.5cm高

经验:单根节点+多个平行子节点的结构,必须用 graph TB,别用 graph LR

坑2:单图节点超过20个就该拆分

一张用例图里塞了5个子系统、4个角色、30多个功能节点。渲染出来字小得像蚂蚁。

后来我按角色拆成了3张:管理员一张、医生一张、客服+主任一张。每张图节点控制在10个以内,文字清晰。

坑3:页眉页脚用代码重建,格式全乱

第一次我让 Claude Code 用代码重新画页眉——公司Logo加上文档名称。结果打开一看,Logo偏了、文字挤了、边框没了。

搞了快一个小时,最后发现最靠谱的方法是:直接从模版解压,拷贝XML文件过去。

模版 .docx 本质上是个ZIP包,解压后 word/header1.xml 就是页眉,word/footer1.xml 就是页脚,连Logo图片一起拷贝过去,格式完美一致。

坑4:图片尺寸没约束,撑爆页面

渲染出来的PNG直接插入Word,有的图高度超过50cm。A4纸可用高度才24.7cm,一张图能占三页。

最后写了个Python脚本,把所有图片统一约束在 14cm × 18cm 以内:

MAX_W = int(14.0 * 360000)  # EMU单位MAX_H = int(18.0 * 360000)

这个踩坑经历,我已经整理成了一份生成指南,文末可以获取。

手写 vs AI生成

维度
手写
AI生成
耗时
2-3天
30分钟
架构图/ER图
手动画,反复调整
从代码自动提取,17张图
格式匹配
照着模版手动调
自动匹配模版参数
准确率
取决于细心程度
ER图/架构图高,时序图需核对
可交付性
最终版
初稿,需微调措辞

我测试下来,AI生成的版本作为初稿交付完全没问题。后续只需要微调一些措辞和业务描述的细节,大概再花30分钟就能定稿。

对比原来从头写三天,效率提升非常明显。

写在最后

总结几条实践经验:

1、先写Markdown再转Word——Markdown迭代快,Mermaid图可以随时预览,确认没问题再生成Word

2、图超过20个节点就拆分——按角色拆、按模块拆都行,别一张图塞太多

3、页眉页脚直接从模版拷贝XML——不要试图用代码重建,省下来的时间够你再生成一份文档了

4、Mermaid图的布局方向比内容更重要——单根多子节点用 graph TB,别用 graph LR,差距巨大

设计文档最难的不是写字,而是让图和文字对得上。当AI能直接从代码画出ER图和架构图,最耗时的那一步就消失了。


福利:完整生成指南

上面只是挑了几个关键坑讲。实际从代码到 Word 的过程中,还有不少细节——模版格式怎么提取、.doc 转 .docx 怎么处理、图片插入顺序反了怎么修……

我把这些全部整理成了一份 《概要设计文档生成指南》,内容包括:

1、模版分析:页边距、字体、页眉页脚的提取方法和代码2、代码分析:用 AI 扫描项目的具体指令和关注维度3、Mermaid 图:6 种图的适用场景、布局原则、配色方案4、Word 生成:docx-js 的关键配置和 DXA 单位换算5、图片渲染:mermaid-cli 渲染流水线和尺寸约束脚本6、踩坑清单:12 个实际遇到的坑和对应解决方案7、验证清单:交付前 9 项必检项

拿到这份指南,配合 Claude Code,你自己的项目也能 30 分钟出一份初稿。

关注公众号,回复「概要设计生成指南」即可获取。

觉得有用?先收藏,下次写设计文档的时候直接翻出来用。


如果本文对你有帮助,不妨点个免费的赞收藏备用。

👇 关注Gallop,让AI提升你的效率

👉 添加我的微信(gallop_liu),备注“加群”,交流并分享个人的一些资料。