实战 SOP
实战 SOP

diagram-design 接入 Claude Code 的实操 SOP

把 diagram-design 这套图表技能包接进日常编码工作流的实操 SOP,命令逐字取自项目官方 README。分七步走:先交代它解决什么问题与不解决什么;再给各宿主安装与更新命令对照表(Claude Code 的 /plugin marketplace add 与 /plugin install、Codex 的 codex plugin marketplace add 与 plugin add、GitHub Copilot 的 copilot plugin 系列、Factory Droid 的 droid plugin 系列带 --scope user、Pi 的 pi install 加 /reload、Kiro 的子目录 URL 导入、OpenCode 的目录复制或软链);然后是首次运行 gate(默认皮肤未改会停下来问你要不要 onboarding)与品牌 onboarding(读站点抽色抽字、映射语义 token、WCAG AA 对比度校验、保真回执);接着是出图与自检,含三条可直接抄的自然语言示例与官方那六条算跑通了的判据,以及 self_check.py 打印 OK 才算过;导出与导入一节讲清四个旋钮与只导出图本身这个边界,还有 fidelity ledger 长什么样;多客户品牌隔离用命名 profile 加 .diagram-design 标记文件实现。第七节是十项踩坑速查,条条写清现象与原因,例如 Claude Code 对第三方 marketplace 默认关闭自动更新、Factory Droid 按 commit 跟踪而不认 manifest 版本号、Pi 没有自动刷新要手动 pi update --extensions、Kiro 是复制不是链接、OpenCode 复制式安装不会自动更新、旧版 npx skills add 装的独立副本不会跟随 Codex marketplace、自定义 style-guide.md 会被包更新覆盖、PNG 导出首次缺 Playwright 与 Chromium、误以为导出包含全版式、以及动效 HTML 截图会截到中间帧。核心判断:这套技能包真正的门槛不在安装,而在版本更新路径与产出物边界 —— 官方为每个宿主分别写更新命令这件事本身就是信号,跨宿主技能包的分发与升级至今没有统一答案。

发布于 2026年9月15日11 分钟阅读
<!-- diagram-design-claude-code-sop | sop | diagram-design 接入 Claude Code 的实操 SOP -->

一、这套 SOP 解决什么问题

diagram-design 是 cathrynlavery 维护的一套开源图表技能包,采用 MIT 许可,在 2026 年 9 月 14 日的 GitHub 周榜上排到第 2 名,截至 9 月 15 日实核星标数为 39,807。它不是某个厂商的私有工具,而是一套可以装进多个 AI 编码宿主、照着你的品牌风格出图的技能。

它最值得说的点是:出图产物是一个独立的 HTML 文件,双击就能离线打开,除了 Google Fonts 之外没有任何网络请求;整张图可以被品牌化,变成你站点的纸色、墨色、强调色和字体;它还自带可访问性(屏幕阅读器能朗读标题与描述)和自带的输出校验脚本。

但它能干什么、不能干什么,边界非常清楚。它能画的是结构化的、可编辑的图:架构图、流程图、象限图、时序图、状态图等共 39 种。它不画插画,也不做数据可视化,你别指望用它画折线图、柱状图、热力图那种以数值映射为主的图。它的定位是"把架构与流程讲清楚",不是"把数据画漂亮"。

它同时以两种形态发布:一种叫 Agent Skills(技能),另一种叫插件包(plugin)。这带来一个现实好处:Claude Code、Codex、Factory Droid、Pi、GitHub Copilot、Kiro、OpenCode 等宿主都能接。但正因为每种宿主的更新机制都不一样,这套技能包真正的门槛不在"安装"这一步,而在"版本更新路径"和"产出物边界"这两处。下面每一节都会把这两件事讲透。

如果想先了解它和同类工具的差别,可以看 AI 图表方案横评;想看它作为技能框架的定位,可以看 AI 编码技能框架横评。另一篇 diagram-design 项目介绍 也值得一读。

二、各宿主安装与更新命令对照表

先说环境准备。常规使用不需要任何额外依赖。只有当你要导出 PNG 时,才需要一次性装一个依赖:

bash
pip install playwright && playwright install chromium

导出 SVG 不需要这个依赖,所以如果你暂时只做网页内嵌或 Figma 导入,可以跳过这步。

安装时按你用的宿主选一条,命令逐字照抄。下面这张表是全文最实用的部分,建议收藏。

宿主安装命令(逐字照抄)更新命令更新是否自动
Claude Code/plugin marketplace add cathrynlavery/diagram-design 然后 /plugin install diagram-design@diagram-design手动到 /plugin 的 Marketplaces 开 Enable auto-update;提示时 /reload-plugins默认关闭,需手动开
Codexcodex plugin marketplace add cathrynlavery/diagram-design 然后 codex plugin add diagram-design@diagram-designcodex plugin marketplace upgrade diagram-design,开新会话启动时刷新,可手动拉
GitHub Copilotcopilot plugin marketplace add cathrynlavery/diagram-design 然后 copilot plugin install diagram-design@diagram-designcopilot plugin marketplace update diagram-designcopilot plugin update diagram-design@diagram-design手动
Factory Droiddroid plugin marketplace add https://github.com/cathrynlavery/diagram-design 然后 droid plugin install diagram-design@diagram-design --scope userdroid plugin marketplace update diagram-designdroid plugin update diagram-design@diagram-design --scope user,开新会话按 commit 跟踪,手动
Pipi install https://github.com/cathrynlavery/diagram-design,当前会话 /reloadpi update --extensions完全无自动刷新
Kiro以子目录 URL 导入:https://github.com/cathrynlavery/diagram-design/tree/main/skills/diagram-design重新导入一次该 URL复制式,手动重导
OpenCode复制或软链 skills/diagram-design/.opencode/skills/diagram-design~/.config/opencode/skills/diagram-design手动替换目录无 marketplace,手动

确认 Copilot 是否发现技能,用 copilot skill list(交互会话里是 /skills)确认。Pi 装完还会加载 /export-diagram/import-mermaid/import-excalidraw/profile/doctor 这几个 prompt 模板,显式调用用 /skill:diagram-design

下面几节以 Claude Code 为主线讲实操,因为它对第三方 marketplace 的更新默认关闭,最容易踩坑。如果你装的是 Codex,可以直接看 Codex harness 接入实操

三、首次运行 gate 与品牌 onboarding

装好之后,在一个没定制过样式指南的新项目里首次出图,技能不会闷头用默认皮肤,而是暂停并问你:"这是本项目的第一张图,样式指南还是默认值。要跑 onboarding、手动粘贴 token,还是就用默认?"这个 gate 是设计上故意的,目的是逼你想清楚要不要品牌化。

如果你想要图长得像你自己的品牌,直接说:

text
onboard diagram-design to https://你的站点

它会做这几件事:抓取你的首页,抽取主色调与字体栈,把颜色映射到语义角色(paper、ink、muted、accent、link、paper-2),给你看一串 proposed diff,确认后才写入 references/style-guide.md

映射规则要记牢:<body> 背景对应 paper;主文本色对应 ink;次级或图注文字对应 muted;卡片或容器对应 paper-2;最常用的品牌色(CTA、链接、标题)对应 accent;<h1> 字体对应 title;<body> 字体对应 node-name;<code><pre> 字体对应 sublabel。

写入前它会自动做 WCAG AA 对比度检查:如果你的品牌色在图内 9 到 12px 的字号下不达标,它会给出调整值并解释原因。它还会输出一份 fidelity receipt:列出采样的 URL、确切的颜色角色、字体族与字重、字体来源 URL,以及任何回退。公共站点字体会被直接使用并在渲染后校验,而不是被悄悄换成通用系统字体。

不想自动跑也可以手动改 skills/diagram-design/references/style-guide.md 里的表,下游全部从那里继承语义角色名,写 accent,不是写 #eb6c36。这点是它设计上的关键:所有下游引用颜色都用语义角色名,改品牌只改一处。

四、出图与自检

出图直接用自然语言,官方给的示例可以直接抄:

text
Make me an architecture diagram of my app: frontend, backend, database, Redis cache.
I need a quadrant showing Q2 projects by impact vs effort.
Give me a sequence of a bearer call with token refresh on 401.

也可以直接从模板起步,有三种可选:

bash
cp skills/diagram-design/assets/template.html my-diagram.html        # 极简浅色
cp skills/diagram-design/assets/template-full.html my-diagram.html   # 带摘要卡的编辑级
cp skills/diagram-design/assets/template-motion.html my-diagram.html # 可选的无障碍动效

仓库自带一个可翻看全部 39 种图的图库:本地开 skills/diagram-design/assets/index.html,或在线上看 cathrynlavery.github.io/diagram-design

动效是可选的,支持 nonerevealsteploop 四种模式,默认 none,即默认输出静态且无脚本。动效 HTML 只允许使用仓库里那个固定的、经过审查的控制器;任意或改过的内联脚本、远程资源、CSS @import、可执行属性(如 onclicksrcdoc)都会被拒绝。

画完之后,自检这一步最容易被跳过,但官方把"算跑通"的标准放在这里。运行技能自带的输出检查器:

bash
python3 skills/diagram-design/scripts/self_check.py <你的文件.html>

打印 OK 才算过。官方给了 6 条"算跑通了"的判据,任何一条不成立都算值得提 issue 的 bug:

  1. 一个常规请求(比如"给我画个流程图")只加载 SKILL.md 加恰好一个类型参考文件,不加载别的;
  2. 画之前,agent 会先说明它选的类型、模式、尺寸和打算做的删减,然后才渲染;
  3. 产物是一个 .html 文件,双击就能离线打开,除了 Google Fonts 之外没有任何网络请求;
  4. 屏幕阅读器能朗读出图的标题与描述;prefers-reduced-motion 下显示完整静态帧;
  5. self_check.py 在上面那个文件上打印 OK
  6. 品牌 onboarding 之后,新图用的是你站点的 paper、ink、accent 和字体,并且有一份 fidelity receipt 逐项指名。

五、导出与导入

出好的图可以导出给 Figma、幻灯片或社交卡。Claude Code 里:

text
/diagram-design:export-diagram path/to/diagram.html
/diagram-design:export-diagram path/to/diagram.html --svg-only
/diagram-design:export-diagram path/to/diagram.html --png-only --scale=3
/diagram-design:export-diagram path/to/diagram.html --registry

Pi 里把命令前缀换成 /export-diagram,参数相同。SVG 的做法是抽出 <svg> 节点并注入 Google Fonts,使其能在浏览器、Figma、Illustrator 里独立渲染;PNG 是用 Playwright 栅格化,默认 2 倍。

这里有一个重要的边界:两种格式都只含图本身,-full 变体里的编辑级卡片和页眉不包含在内。要整页编辑级版式的截图,得用浏览器的打印成 PDF 或整页截图。--registry 只对使用"可溯源块分解"模式画出来的图有效,会额外产出 <basename>.registry.json,把每个块的 data-block-* 元数据结构化导出。动效 HTML 要导出时,必须导出明确的最终静态帧:开 ?motion=static,等 document.fonts.ready,确认动效根节点带 data-frame="static" 再截。

如果你已有存量资产,这套技能支持把 draw.io、Mermaid、Excalidraw 的源文件重绘成这套设计系统,保留内容,换掉样式。命令示例:

bash
/diagram-design:import-drawio platform.drawio
/diagram-design:import-drawio platform.drawio --size=slide-16x9 --detail=simplified --audience=executive
/diagram-design:import-mermaid README.md --diagram=all
/diagram-design:import-mermaid architecture.mmd --size=slide-16x9 --detail=simplified
/diagram-design:import-excalidraw whiteboard.excalidraw --size=slide-16x9 --detail=simplified

支持的输入格式:draw.io 支持 .drawio.drawio.xml.drawio.png(内嵌图)、.drawio.svg,包括看起来像 base64 乱码的压缩 payload;Mermaid 支持 .mmd.mermaid 以及 Markdown 里的一个或多个 mermaid 代码块;Excalidraw 支持 .excalidraw.excalidraw.json 场景文件,不支持 .excalidraw.png.excalidraw.svg 导出件。Excalidraw 路径只解析文本:不渲染、不执行 JavaScript、不开浏览器、不联网、不跟随点击目标。

导入有四个旋钮。Format(htmlsvgpnghtml+png);Size(doc-inlinedoc-wideslide-16x9slide-4x3social-ogsocial-squareprint-a4-landscapeprint-letter-landscapefit);Detail(faithful 最多 24 节点且有分区、balanced 最多 12、simplified 最多 7,按固定降级阶梯删减:先装饰、再重复、再叶簇、最后基础设施);Audience(engineermixedexecutive,改的是措辞不是数量)。

每次 import 结束都会给一份 fidelity ledger,例如:

text
Detail: balanced · 12 source nodes 变为 8 drawn
Collapsed: "Token valid?" decision 变为 edge label on Gateway 变为 Auth
Dropped:   1 sticky note ("legacy path, to be retired") 变为 unconnected in source
Kept in full: the request path (Web/Mobile 变为 Gateway 变为 Orders 变为 Postgres)

明确不继承:源文件或渲染器的坐标、源配色、源字体、draw.io 的斜线连接器乱麻、Mermaid 的自动布局、Excalidraw 的手绘几何。明确会继承:组件、关系、分组、方向。

六、多客户品牌隔离

做外包或多站点的人会用到多品牌隔离。做法是:一个品牌 onboard 一次,存成命名 profile,然后在每个客户项目里放一个 .diagram-design 标记文件,内容写 profile: <slug>

标记项目会直接读 ~/.diagram-design/profiles/<slug>.md,因此并行工作区可以用不同品牌,而不互相覆盖已安装的共享 style-guide.md。profile 库在 Claude Code、Codex、Factory Droid、Pi 之间共享。Claude Code 里用 /diagram-design:profile,Factory Droid 或 Pi 里用 /profile,其他宿主用自然语言即可。

注意 references/style-guide.md 的改动可能被包更新覆盖;已保存的 profile(~/.diagram-design/profiles/)不受更新影响,带 .diagram-design 标记文件的项目也不受影响。想稳定改样式,用可编辑安装(下一节)或 profile 加标记来隔离。

项目的 docs/cookbook.md 里给了可编辑安装、首图、品牌设置、导入、导出、校验以及 Windows junction 的操作配方,需要更细的本地化玩法可以直接翻。可编辑安装本身也很简单:

bash
git clone [email protected]:cathrynlavery/diagram-design.git ~/code/diagram-design

# Pi:把该 checkout 注册为本地包
pi install ~/code/diagram-design

# Claude Code:软链内部技能目录
ln -s ~/code/diagram-design/skills/diagram-design ~/.claude/skills/diagram-design

其他 Agent Skills 宿主按需创建目录再软链即可,注意托管式安装很方便,但 references/style-guide.md 的改动可能被包更新覆盖。

七、踩坑速查表

这一节是全文的核心价值。下面 10 条逐条写清现象与原因,谁照着排查都能省下几小时。

序号踩坑现象与原因解法
1Claude Code 第三方 marketplace 默认关自动更新装完不手动去 /plugin 的 Marketplaces 里开 Enable auto-update,版本会一直停在旧版装完立刻去开 Enable auto-update,提示时 /reload-plugins
2Factory Droid 按 commit 跟踪,不认 manifest 显示版本光看版本号没用,必须 marketplace update 再加 plugin update 并开新会话droid plugin marketplace update diagram-designdroid plugin update diagram-design@diagram-design --scope user,开新会话
3Pi 完全没有自动刷新机制装完不动就永远旧版手动 pi update --extensions
4Kiro 是复制不是链接导入后文件被拷进 .kiro/skills/,想拿新版得重新导入 URL重新导入该子目录 URL;自定义 agent 声明资源应包含 skill://diagram-design/**/SKILL.md
5OpenCode 复制式安装不会自动更新没有 marketplace 包,只有自己替换目录时才更新手动复制或软链新目录到 .opencode/skills/diagram-design
6旧版 npx skills add 装的独立副本不跟随 Codex marketplace两路并存,版本错乱先删掉独立副本,再用 Codex marketplace 两条命令重装
7自定义 style-guide.md 会被包更新覆盖托管式安装一更新就还原用可编辑安装(clone 后装本地路径),或 profile 加 .diagram-design 标记隔离
8PNG 导出第一次会失败缺 Playwright 与 Chromium先跑 pip install playwright && playwright install chromium;SVG 不需要
9以为导出包含全版式SVG 和 PNG 都只导出图本身,编辑级卡片与页眉不含在内要整页用浏览器打印成 PDF 或整页截图
10动效 HTML 直接截图截到中间帧截的时候动画正播?motion=static,等 document.fonts.ready,确认 data-frame="static" 再截

结尾判断:什么样团队值得花这一小时接进来?如果你的图要进对外品牌物料、要给客户看、要可访问性达标、要反复导出 Figma 或幻灯片,那么 diagram-design 的品牌化与自检流水线值回票价。如果你的图只是内部随手画架构、README 里贴一下、协作者都用 Mermaid 协作,那继续用 Mermaid 更划算,它零依赖、纯文本、diff 友好。这个决策的关键不在"哪个更强",而在"你的图要不要带品牌、要不要被机器校验"。关于它的来龙去脉,可以看 diagram-design 项目介绍

常见问题

Q1:装在 Claude Code 还是 Codex 上,我该怎么选? A1:看你的主力宿主。Claude Code 用户多、文档最全,但第三方 marketplace 默认关自动更新,装完必须手动开。Codex 启动时自动刷新已配置的 Git marketplace,更新更省心,用 codex plugin marketplace upgrade diagram-design 即可立刻拉取。两个都能接,差别主要在更新路径。

Q2:我已有大量 Mermaid 资产,能接进来吗? A2:能。用 /diagram-design:import-mermaid.mmd.mermaid 或 Markdown 里的 mermaid 代码块重绘成这套设计系统,支持 --size--detail--audience 等旋钮,并会产出一份 fidelity ledger 说明哪些节点被合并或丢弃。注意它不继承源配色与自动布局,只继承组件、关系、分组、方向。

Q3:这套技能能在 Windows 上用吗? A3:能。Claude Code、Codex、Factory Droid、Pi 等宿主在 Windows 上均可运行,常规使用无额外依赖。PNG 导出需要 pip install playwright && playwright install chromium 这一步。项目的 cookbook 还专门给了 Windows junction 的操作配方,用于可编辑安装时的目录链接。

Q4:导出 PNG 时为什么报缺依赖? A4:因为导出 PNG 需要 Playwright 加 Chromium,这不是常规依赖,只有导出 PNG 时才用。第一次导出 PNG 前先跑 pip install playwright && playwright install chromium 即可。导出 SVG 不需要这个依赖,可临时绕开。

Q5:首图就要用它,会不会被默认皮肤带偏? A5:不会。在新项目里首次出图时,技能会暂停并询问你:跑 onboarding、手动粘贴 token,还是就用默认。它不会闷头用默认皮肤直接渲染。只要你选 onboarding 并指向你的站点,新图就会用你站点的 paper、ink、accent 和字体,并附一份 fidelity receipt 逐项指名。


参考来源

本文由 AI 辅助生成,经人工审核编辑。最后更新:2026-09-15

常见问题

装在 Claude Code 还是 Codex 上,我该怎么选?
看你的主力宿主。Claude Code 用户多、文档最全,但第三方 marketplace 默认关自动更新,装完必须手动开。Codex 启动时自动刷新已配置的 Git marketplace,更新更省心,用 `codex plugin marketplace upgrade diagram-design` 即可立刻拉取。两个都能接,差别主要在更新路径。
我已有大量 Mermaid 资产,能接进来吗?
能。用 `/diagram-design:import-mermaid` 把 `.mmd`、`.mermaid` 或 Markdown 里的 mermaid 代码块重绘成这套设计系统,支持 `--size`、`--detail`、`--audience` 等旋钮,并会产出一份 fidelity ledger 说明哪些节点被合并或丢弃。注意它不继承源配色与自动布局,只继承组件、关系、分组、方向。
这套技能能在 Windows 上用吗?
能。Claude Code、Codex、Factory Droid、Pi 等宿主在 Windows 上均可运行,常规使用无额外依赖。PNG 导出需要 `pip install playwright && playwright install chromium` 这一步。项目的 cookbook 还专门给了 Windows junction 的操作配方,用于可编辑安装时的目录链接。
导出 PNG 时为什么报缺依赖?
因为导出 PNG 需要 Playwright 加 Chromium,这不是常规依赖,只有导出 PNG 时才用。第一次导出 PNG 前先跑 `pip install playwright && playwright install chromium` 即可。导出 SVG 不需要这个依赖,可临时绕开。
首图就要用它,会不会被默认皮肤带偏?
不会。在新项目里首次出图时,技能会暂停并询问你:跑 onboarding、手动粘贴 token,还是就用默认。它不会闷头用默认皮肤直接渲染。只要你选 onboarding 并指向你的站点,新图就会用你站点的 paper、ink、accent 和字体,并附一份 fidelity receipt 逐项指名。

相关文章

实战 SOP

LingBot-World 2.0 本地小模型部署实操 SOP

把 LingBot-World 2.0 的 1.3B causal-fast 在本地跑起来的实操 SOP:环境与依赖(torch 2.4.0 以上、flash-attn 等,命令逐字取自官方 requirements.txt)到权重下载(1.3B 包只含 DiT 权重,T5、VAE、tokenizer 与 14B 共享,必须用 assets_dir 指向 14B 目录,否则起不来),再到跑通第一段(torchrun 或官方 run_fast.sh),以及参数调优(frame_num 须为 4n+1、local_attn_size 18、sink_size 6、chunk_size、base_seed、save_dir),最后落到生产化与部署路径(官方不开源部署代码,参考 SGLang cookbook 或 NVIDIA flashdreams),收尾八条踩坑与十项上线 checklist。关键踩坑:硬件门槛口径三重分歧(README 示例 1.3B 四卡、run_fast.sh 参考二卡、媒体称消费级单卡实时),以代码仓为准、最低可复现二卡、单卡实时标注未确认;ulysses_size 必须整除注意力头数(1.3B 为 12、14B 为 40)并与 nproc_per_node 相等;causal_fast(每 chunk 4 步、无 CFG)与 causal_pretrain(每 chunk 40 步、有 CFG)的取舍;许可证 CC BY-NC-SA 4.0 非商用,产品化前须先确认授权。

2026年9月14日11 分钟阅读
实战 SOP

Kimi 双协议接入:一套配置打通 Codex 与 Claude Code

月之暗面 2026-09-02 宣布 Kimi API 原生双协议:OpenAI Responses(`api.moonshot.cn/v1`)+ Anthropic Messages(`api.moonshot.cn/anthropic`),主推模型 kimi-k3。实战 SOP:改 Claude Code 的 `~/.claude/settings.json` 把 ANTHROPIC_BASE_URL 指向 /anthropic、模型设 kimi-k3[1m];改 Codex 的 `~/.codex/config.toml` 设 wire_api="responses"。即可把 Kimi 当统一模型路由网关,切底层模型不改客户端代码。边界:Responses 仅文本+图片、K2.7 Code 强制思考、旧 ANTHROPIC_API_KEY 须删。

2026年9月5日11 分钟阅读