用途:从代码库分析出发,生成 .excalidraw 格式的架构图,可选导出 PNG 与 SVG。适用于用户要求"为此项目生成架构图""创建系统的 excalidraw 图""将代码库可视化为 excalidraw 文件"等场景。
主要能力:分析任意语言/框架的代码库;识别组件、服务、数据库、API;梳理关系与数据流;生成带动态 ID 与标签的合法 .excalidraw JSON;可选通过 Playwright 导出 PNG/SVG。无前置要求,无需已有图表、Terraform 或特定文件类型。
使用流程:先分析代码库(如用 Glob 查 /package.json、/Dockerfile、**/*.tf,用 Grep 查 app.get、@Controller、CREATE TABLE,读取 README 与入口文件);再规划布局(常用纵向排列,行 y 为 100/230/380/530/680,列 x 为 100/300/500/700/900,元素约 160-200px x 80-90px);生成元素、添加连接、可选分组;写入前校验,保存到 docs/ 或指定路径;之后可询问用户是否导出 PNG/SVG,导出依赖 Playwright MCP 工具与 @excalidraw/utils。
关键规则:禁止使用菱形(原始 JSON 中菱形箭头连接会失效),用样式化矩形替代(如编排/枢纽用珊瑚色 #ffa8a8/#c92a2a 加 strokeWidth: 3,决策点用橙色 #ffd8a8/#e8590c 加虚线);标签需两个元素,label 属性在原始 JSON 中无效,需形状带 boundElements 引用,另建 text 元素并设 containerId;直角箭头需设置 elbowed: true、roundness: null、roughness: 0;箭头起止须落在形状边缘(上 (x+width/2, y)、下 (x+width/2, y+height)、左 (x, y+height/2)、右 (x+width, y+height/2))而非中心;同一侧多条箭头应错开起点。
限制与说明:具体可支持的组件识别范围、导出兼容性及各类调色板等细节以参考文件为准,资料未提供更多限制说明。