skills/svg-diagram-yashu/SKILL.md
生成扁平的 SVG 图(架构图、中心辐射图、流程图、简易时序图、思维导图、组织架构图、2×2对比矩阵、时间线、循环图、鱼骨图),也支持把已有 SVG 文件转成 PNG 图片。激活条件(满足任一即可):生成类关键词 `画架构图`、`画中心辐射图`、`画流程图`、`画时序图`、`画思维导图`、`画脑图`、`画组织架构图`、`画树形图`、`画对比矩阵`、`画四象限`、`画时间线`、`画循环图`、`画鱼骨图`、`画因果分析图`;转换类关键词`SVG 转图片`、`把 SVG 转成图片`、`把 SVG 转成 PNG`。
npx skillsauth add steelan9199/wechat-publisher-skill svg-diagram-yashuInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本技能有两种用法:
.svg + 一张白底 .html 预览图 + 一张 2× 的 .png(用于插入公众号等文章)。.svg 文件(本技能生成的,还是别处来的都行),技能调用自带转换器把它栅格化成 2× 白底 .png,同样方便插入公众号等场景。绘图规范完全内置在本技能内(见 references/design-system.md)。
.svg(本技能生成过,还是别处来的都行),想快速转成可插入公众号的 PNG 图片。本技能的最终产物是能插入公众号的 PNG,导出依赖两项本机工具。每次执行前先确认,任一项不满足就提示用户安装并结束任务,不再继续:
node --version。若命令不存在(或版本低于 18),提示用户「未检测到 Node.js 或版本过低,请安装 Node.js 18+(https://nodejs.org)后重试」,然后结束任务。node SKILL_DIR/scripts/check-edge.mjs(把 SKILL_DIR 替换为技能安装路径)。退出码 0 表示已安装,退出码 1 表示未找到,提示用户「未检测到 Microsoft Edge,请安装 Edge(https://www.microsoft.com/edge)后重试」,然后结束任务。两项都满足,才进入下面的工作流。
读取内置设计规范 + 底层知识。 用 Read 工具打开 references/design-system.md(全部硬约束:调色板、字体、viewBox 规则、箭头标记)以及 references/svg-drawing-knowledge.md(SVG 渲染机制、坐标几何计算、配色判断)。
按用户意图选择图的类型。选定后,除通用规范外,还需遵守该图专属的视觉规则(references/rules-{type}.md)——各图型独有的形状语义、坐标模板、连线样式、常见反例都在其中:
svg-drawing-knowledge.md §2.6。专属规则 references/rules-architecture.md,示例 references/example-architecture.svg。references/rules-radial.md(本技能暂无专用示例文件,按规则绘制即可)。references/rules-flowchart.md,示例 references/example-flowchart.svg。references/rules-sequence.md,示例 references/example-sequence.svg。<path> 连接;同一分支及其子节点使用同色系、子节点比父级浅;配色见 §3.2(一主分支一色,子节点用该色系更浅级)。专属规则 references/rules-mindmap.md,示例 references/example-mindmap.svg。references/rules-orgchart.md,示例 references/example-orgchart.svg。references/rules-matrix.md,示例 references/example-matrix.svg。references/rules-timeline.md,示例 references/example-timeline.svg。references/rules-cycle.md,示例 references/example-cycle.svg。references/rules-fishbone.md,示例 references/example-fishbone.svg。编写 SVG,遵循 references/design-system.md 的硬性约束,套用 references/svg-drawing-knowledge.md 的坐标公式(§2)与配色规则(§3),并遵守第 2 步选定的 references/rules-{type}.md 专属视觉规则:
viewBox="0 0 680 H"(宽度 100%);H = 最底部元素的位置 + 20。fill(不要用 CSS 继承)。<path>/<polyline>:fill="none"。箭头使用 design-system.md 里的标记。<text>:dominant-baseline="central"。<svg> 要加 role="img",并把 <title> 和 <desc> 作为前两个子元素。<!-- 注释 -->、不要旋转文字、不要 position: fixed。展示图表。 把生成的 .html / .png 文件交给用户打开。
保存三个产物到工作区,使用同一个有描述性的基础文件名(例如 phone-screenshot-arch):
.svg——原始矢量文件(用 Write 工具写)。.html——白底预览包装,方便手动用 Edge 截图。用自带脚本生成,不要手写 HTML(这是纯模板拼接,手写浪费 token):
node SKILL_DIR/scripts/svg-to-html.mjs --SvgPath SVG_PATH
把 SKILL_DIR 替换为技能安装路径,SVG_PATH 替换为 .svg 文件路径。省略 --OutPath 时与 SVG 同名同目录输出 .html;页面标题自动取 SVG 内的 <title>。.png——通过自带的 Node.js 转换器按 2× 栅格化。在 Bash 中运行(环境检查已确认 node 与 Edge 均可用):
node SKILL_DIR/scripts/svg-to-png.mjs --SvgPath SVG_PATH
把 SKILL_DIR 替换为技能安装路径,SVG_PATH 替换为 .svg 文件路径。
退出码为 2 表示找不到 Edge(环境检查遗漏),提示用户安装 Edge;退出码 4 表示截图未生成,提示改用下方「方法 2」手动截图。其余退出码见脚本头部注释。
报告所有保存路径。用文字说明。 把所有描述、背景和后续步骤都写在 SVG 之外的对话消息里。SVG 只负责视觉。
输出要求。 生成图片之后,必须向用户返回以下三个绝对路径:
.svg).html).png)当用户发来一份现成的 SVG(本技能生成过,或从别处得到),希望得到一张可插入公众号的 PNG 时使用。前置环境检查同上文「前置 · 环境检查」(Node 18+ 与 Edge 二者缺一不可)。
拿到 SVG。
.svg 路径,直接用该路径。.svg(如 user-svg.svg),再用这个路径。环境检查:同上文「前置 · 环境检查」,任一项不满足就提示安装并结束。
调用转换器(与生成模式共用同一脚本):
node SKILL_DIR/scripts/svg-to-png.mjs --SvgPath SVG_PATH [--OutPath OUT_PNG] [--Scale 2]
把 SKILL_DIR 换成技能安装路径,SVG_PATH 换成上一步得到的 .svg 路径。可用 --OutPath 指定输出 PNG 位置,省略则与 SVG 同名同目录。
退出码 2 = 找不到 Edge;4 = 截图未生成(提示改用下方「方法 2」手动截图)。
交回结果:把生成的 .png 路径告诉用户,说明它是 2× 白底 PNG,可直接拖进公众号。若用户贴的是代码,顺带说明已落盘的临时 .svg 路径,方便二次修改。
输出要求。 转换模式下,只需向用户返回一个绝对路径:
.png)公众号编辑器只接受 JPG / PNG,不接受 SVG 直接上传。无论是本技能刚生成的图,还是你已有的 SVG,导出 PNG 的方法都一样:技能默认会自动导出 PNG;若自动失败或你想手动控制,用以下方法:
方法 1 · 自动导出 PNG(推荐) 技能自带 Node.js 脚本(ES Module),用本机 Edge 浏览器无头截图,2 倍分辨率白底。在 Bash 里运行(需先通过环境检查):
node <skill-dir>/scripts/svg-to-png.mjs --SvgPath <svg 路径>
输出与 SVG 同名、同目录的 .png,直接拖进公众号即可。若提示找不到 node,请先安装 Node.js 18+。
方法 2 · 手动用 Edge 截图(脚本不可用时的备选)
.html 文件(白底预览),或在 Edge 里直接打开 .svg。Ctrl + Shift + S 调出 Edge「网页捕获」工具。rect_width = max(标题字符数 × 7, 副标题字符数 × 6) + 24。references/design-system.md 复制标准的 <defs> 箭头标记。references/design-system.md——完整的硬约束、调色板、箭头标记模板、框尺寸公式("不能做什么")。references/svg-drawing-knowledge.md——SVG 渲染机制、坐标几何计算(含 4 层架构坐标模板)、配色判断的权威规则("怎么画才漂亮")。references/rules-architecture.md、rules-flowchart.md、rules-mindmap.md、rules-sequence.md、rules-orgchart.md、rules-matrix.md、rules-timeline.md、rules-cycle.md、rules-fishbone.md、rules-radial.md——10 种图各自的专属视觉规则(形状语义、坐标模板、连线样式、常见反例)。绘制某类图时必读对应的 rules-{type}.md。references/example-architecture.svg、example-flowchart.svg、example-sequence.svg、example-mindmap.svg、example-orgchart.svg、example-matrix.svg、example-timeline.svg、example-cycle.svg、example-fishbone.svg——供风格和结构对齐的少样本示例。scripts/svg-to-png.mjs——Node.js(ESM)转换器:通过无头 Edge 把任意 SVG 文件(不限于本技能生成的)转成 2× PNG。自动检测 Program Files 里的 msedge;找不到时以退出码 2 结束并给出手动回退指引。用 node 运行(Node 18+)。scripts/svg-to-html.mjs——Node.js(ESM)辅助脚本:把一份 SVG 内联进白底 HTML 预览页(纯文件拼接,无需浏览器)。生成 .html 预览包装时用它替代手写 HTML,省 token。参数 --SvgPath,可选 --OutPath;页面标题自动取 SVG 内 <title>,画布宽度自动取 viewBox。用 node 运行(Node 18+)。scripts/check-edge.mjs——Node.js(ESM)环境检测脚本:通过注册表 + 常见安装路径检测本机是否安装了 Microsoft Edge,退出码 0 表示已安装。content-media
自动启停视频课程录制所需的辅助程序。激活条件:用户消息须包含以下关键词之一:`我要录制视频课程`、`开始录制视频课程`、`准备录课`、`视频课程录完了`、`录课结束`、`停止录制`。
testing
检查指定技能文档中的废话文字并输出诊断报告。激活条件:用户消息须包含以下关键词之一:`检查技能废话`、`这个技能文档有没有多余内容`、`清理技能文档废话`、`审查技能文档废话`、`清理技能文档历史说明`。
testing
评审一个技能是否「自包含」——即其知识、经验、规范是否全部内置在技能文件内(SKILL.md + references/),不依赖特定 AI 客户端专有的知识接口命令(如 read_me / modules: / show_widget / Visualizer)去外部拉取,也不硬编码某个 AI 软件的私有路径(如 .workbuddy)。同时检查工具依赖(node、浏览器、命令行)是否仅作为用户自备工具声明、未写死私有路径。当用户要求「评审这个技能是否自包含 / 独立」「检查技能知识是否内置」「审查技能的独立性 / 可移植性」「audit / review a skill for self-containment」时触发。产出评审报告:结论(自包含 / 不独立)+ 问题清单(文件:行号 + 引用的外部依赖 + 为何影响独立性)+ 整改建议。
development
远程获取安卓手机截图。通过 WebSocket 连接电脑和手机(AutoJS),用户说"手机截图"即可触发截屏并自动打开。激活条件:用户消息包含"手机截图"、"截取手机屏幕"、"截屏手机"、"phone screenshot"等关键词。