用途:根据一句英文描述或现成的 mermaid 源码生成图表,输出固定为三件套——<slug>.mmd(mermaid 源码)、<slug>.excalidraw(可在 excalidraw.com 打开并继续编辑)、<slug>.svg 与 <slug>.png(矢量与位图)。适用于被要求“画个图”“画架构图”“做流程图”“diagram this”“visualize this flow”等场景。
主要能力:流程图(graph LR/graph TD)与序列图会转成完全可编辑的 excalidraw 场景,含真实方框、箭头与文字;状态图、类图、甘特图等类型能正常渲染 SVG/PNG,也会生成 .excalidraw,但转换器把它们导出为单个图片元素,只能整体移动和标注,不能逐框编辑,交付时需向用户说明。SVG/PNG 用干净的 mermaid 风格,.excalidraw 保留手绘质感。
使用方式:先运行前置命令 ~/.claude/skills/gstack/bin/gstack-skill-start --skill "diagram" --model "claude",并读取回显的 KEY: value 状态行。随后编写 mermaid 源码并写入 <outdir>/<slug>.mmd;输出目录在 git 仓库中用 ./diagrams/,否则用 /tmp/gstack-diagrams/。渲染为一次 gstack-render 调用完成,通过 base64 传入源码,依次执行 __renderMermaid、__rasterize、__mermaidToExcalidraw 三个 --eval 并各自对应 --out 路径;PNG 宽 1950px。渲染完全离线,用 loopback 服务器打开自包含的 diagram-render 页面,浏览器优先用 Aside,否则用 gstack 自带的无头浏览器,首行输出 ENGINE=aside 或 ENGINE=browse。若用户回传编辑过的 .excalidraw,可用 __excalidrawToSvg 重新导出 SVG/PNG,不触碰 mermaid。最后用 Read 工具展示 PNG 并列出三件套路径。
限制:节点标签要短,细节放边标签,5–15 个节点是可读范围,超出建议拆成多张图并说明原因。非 ASCII 标签需用 decodeURIComponent(escape(atob(...))) 精确还原 UTF-8。若提示 BUNDLE_MISSING,需先构建再继续;若没有可用浏览器(NEEDS_ASIDE 或 ASIDE_NOT_RUNNING),需让用户打开 Aside 或在 gstack 仓库运行 ./setup,不能自行安装 Aside、也不能改用 CDN 或别的渲染器。禁止只交付 .mmd 文件。目标为 PDF 时,可提示 make-pdf 原生渲染 ```mermaid 围栏。具体价格与收费方式暂未提供。