SuperAPI AI 工具集

diagram-review

设计与创作

查看项目

更新于 10-16 14:51

技能介绍

diagram-review 是一个图表审查技能,用于按读者实际看到的画面、以固定顺序判断图表或社交卡片质量。支持 Mermaid(.mmd 或 .md 中的围栏代码块)、DOT、SVG、PNG/JPG 等输入。

用途与适用场景

该技能用于审查图表或社交卡片,而非创建图表。创建图表应使用 mermaid-draw 或 illustration-draw(它们会在自身预算内调用本技能);选择格式或编写 brief 使用 diagram-brief;HTML 页面、应用图标(icon-critique)、数据图表、页面 UX 或代码不属于本技能范围。

主要能力

技能按固定工作流执行:

  1. 识别输入与参考。输入为 Mermaid(.mmd 或 .md 的围栏块)、DOT、SVG、PNG/JPG;参考为给定的 brief 路径,否则为源码或预期关系,再否则为空并声明无法检查保真度。

  2. 运行 lint(stdlib,出错时退出码 1):

    • Mermaid:python3 "${CLAUDE_SKILL_DIR}/scripts/mermaid_lint.py" diagram.mmd(或 README.md,检查所有围栏)
    • SVG:python3 "${CLAUDE_SKILL_DIR}/scripts/svg_lint.py" illustration.svg(--diagram 用于全尺寸架构图)

来自这些技能的 SVG 会带有 data-design-system;lint 会加载同一设计系统(若当前激活的不是它,可传 --design-system PATH),检查调色板、仅允许 neumorph 抬升滤镜,并在强调色被用作文字或线条时报错。应 lint 静态 SVG,而非动画版。

  1. 安全门:带有 <script>、<image>、<foreignObject>、外部 href 或事件处理器的 SVG 会在此被拒绝——不渲染,报告发现并停止。Mermaid 类型若 maid 验证器可校验,则可运行 npx -y @probelabs/maid@0.0.29 diagram.mmd(一次带版本锁定的下载);ER、gantt 等透传类型报告为“未验证”。DOT:若已安装,dot -Tsvg in.dot -o in.svg 可验证并转换,否则报“未验证”。PNG 没有 lint——需明确说明。

  2. 渲染有源文件的内容:Mermaid 围栏先写入 .mmd 文件;DOT 在 dot -Tsvg 之后;SVG 直接渲染。PNG 按原样读取。命令为: python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" <file> --out diagram-design/renders/<stem>

render.py 自动检测 rsvg-convert、resvg、cairosvg、ImageMagick、Inkscape、带网络阻止的无头 Chrome 或 macOS qlmanage;Mermaid 需要 mmdc 或 --allow-download。若无法渲染,则转达安装提示,结论为 INCOMPLETE——绝不评判标记语言。

  1. 用 Read 工具读取两张 PNG(交付宽度和半宽度)。对于动画(diagram-animate 输出),还要读取帧的联系表:阅读顺序必须与故事一致,最后一帧必须等于静态图,镜头平移不得使最新元素离开画面。

  2. 先分析后判断,依据 references/checklist.md:Pass A 转写每个文本片段并统计元素与连接线;Pass B 对照参考检查保真度(缺失、多余、方向颠倒、层级错误、主张不当);Pass C 为检查清单,分为强制项和建议项。每条发现都引用可见事实(如“'Deploy' 在 600 px 处与箭头重叠”)。

  3. 依据清单规则给出结论:任何强制项失败或 lint ERROR → FIX,附具体修改(当保真度偏差超过一条边或标签,或核心结论不可见时为 REDRAW);≥ 3 条建议项发现 → 建议 REDRAW;缺少渲染或参考 → INCOMPLETE 并说明检查了什么;否则 PASS,附剩余建议项发现。

使用方式与限制

仅在明确要求时才修复。"Review"、"rate"、"compare" 到结论为止。被要求修复时非破坏性编辑:在原文件旁边生成 <name>-r1.svg / -r1.mmd(对编译型插图,编辑 spec 并重建),然后在呈现前重跑步骤 2–4。硬性上限:三次修复迭代。

可选第二意见:对于将公开的内容或存在多个候选时,让不同模型在 PNG 上运行 Pass A 和 C 并对候选排序;命令和“它是否看到了像素”的检查在清单中。排序仅供参考,由人决定。绝不自动晋级,包括无头模式。

输出规范:lint 输出(或“此类型无 lint”)、安全门结果、所用渲染器、渲染路径;基于可见事实的发现,分为保真度 / 强制项 / 建议项;结论为 PASS | FIX(列出修改) | REDRAW(指定拆分或原型) | INCOMPLETE(说明已检查与未检查内容)。

注意事项

自我审查偏差:若是你自己画的图,最终检查优先使用第二意见,并将每条发现建立在像素事实上。

lint 的文本度量是近似的(字符计数);重叠标记需要渲染确认,且 lint 干净绝不等于渲染干净。

向评判者要发现和排序,而不是数字。视觉模型的绝对分数区间宽泛且信息量低;7/10 不算一条发现。

能编译 ≠ 正确。解析通过只回答了语法问题;保真度检查是防御“描述了一个不存在的系统”的唯一手段。

maid 将 ER、gantt 和 journey 图作为有效透传——不要把它们报告为已验证。

渲染会运行本地子进程(Chrome、mmdc)。步骤 2 的安全门存在是因为渲染器是一个执行面;它不是风格检查。