用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/MGdaasLab/WHartTest --skill drawio命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
WHartTest 接口自动化管理工具。用于按真实后端接口管理接口模块、数据库配置、环境与变量、自定义函数、接口定义与调试、单接口用例 ApiInterfaceCase、场景用例 ApiTestCase、任务套件、执行报告与同步配置。当需要创建、查询、修改、执行 API 自动化资源,区分单接口测试和场景用例,或排查执行、同步、任务套件问题时使用。
浏览器自动化执行工具。用于执行 Web 页面测试、表单填写、登录验证、截图等浏览器操作。
基于微软官方 @playwright/cli 的交互式浏览器自动化技能。通过标准化命令行会话实现极高稳定性的浏览器操作,防止挂起超时。
正在显示 SKILL.md
| name | drawio |
| description | Generate draw.io diagrams as .drawio files, optionally export to PNG/SVG/PDF with embedded XML |
Generate draw.io diagrams as native .drawio files. Optionally export to PNG, SVG, or PDF with the diagram XML embedded (so the exported file remains editable in draw.io).
.drawio file in the current working directory using the Write tool--embed-diagram, then delete the source .drawio file.drawio file otherwiseCheck the user's request for a format preference. Examples:
/drawio create a flowchart → flowchart.drawio/drawio png flowchart for login → login-flow.drawio.png/drawio svg: ER diagram → er-diagram.drawio.svg/drawio pdf architecture overview → architecture-overview.drawio.pdfIf no format is mentioned, just write the .drawio file and open it in draw.io. The user can always ask to export later.
| Format | Embed XML | Notes |
|---|---|---|
png | Yes (-e) | Viewable everywhere, editable in draw.io |
svg | Yes (-e) | Scalable, editable in draw.io |
pdf | Yes (-e) | Printable, editable in draw.io |
jpg | No | Lossy, no embedded XML support |
PNG, SVG, and PDF all support --embed-diagram — the exported file contains the full diagram XML, so opening it in draw.io recovers the editable diagram.
The draw.io desktop app includes a command-line interface for exporting.
Try drawio first (works if on PATH), then fall back to the platform-specific path:
/Applications/draw.io.app/Contents/MacOS/draw.iodrawio (typically on PATH via snap/apt/flatpak)"C:\Program Files\draw.io\draw.io.exe"Use which drawio (or where drawio on Windows) to check if it's on PATH before falling back.
drawio -x -f <format> -e -b 10 -o <output> <input.drawio>
Key flags:
-x / --export: export mode-f / --format: output format (png, svg, pdf, jpg)-e / --embed-diagram: embed diagram XML in the output (PNG, SVG, PDF only)-o / --output: output file path-b / --border: border width around diagram (default: 0)-t / --transparent: transparent background (PNG only)-s / --scale: scale the diagram size--width / --height: fit into specified dimensions (preserves aspect ratio)-a / --all-pages: export all pages (PDF only)-p / --page-index: select a specific page (1-based)open <file>xdg-open <file>start <file>login-flow, database-schema)name.drawio.png, name.drawio.svg, name.drawio.pdf — this signals the file contains embedded diagram XML.drawio file — the exported file contains the full diagramA .drawio file is native mxGraphModel XML. Always generate XML directly — Mermaid and CSV formats require server-side conversion and cannot be saved as native files.
Every diagram must have this structure:
<mxGraphModel>
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Diagram cells go here with parent="1" -->
</root>
</mxGraphModel>
id="0" is the root layerid="1" is the default parent layerparent="1" unless using multiple layersRounded rectangle:
<mxCell id="2" value="Label" style="rounded=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry"/>
</mxCell>
Diamond (decision):
<mxCell id="3" value="Condition?" style="rhombus;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="100" y="200" width="120" height="80" as="geometry"/>
</mxCell>
Arrow (edge):
<mxCell id="4" value="" style="edgeStyle=orthogonalEdgeStyle;" edge="1" source="2" target="3" parent="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
Labeled arrow:
<mxCell id="5" value="Yes" style="edgeStyle=orthogonalEdgeStyle;" edge="1" source="3" target="6" parent="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
| Property | Values | Use for |
|---|---|---|
rounded=1 | 0 or 1 | Rounded corners |
whiteSpace=wrap | wrap | Text wrapping |
fillColor=#dae8fc | Hex color | Background color |
strokeColor=#6c8ebf | Hex color | Border color |
fontColor=#333333 | Hex color | Text color |
shape=cylinder3 | shape name | Database cylinders |
shape=mxgraph.flowchart.document | shape name | Document shapes |
ellipse | style keyword | Circles/ovals |
rhombus | style keyword | Diamonds |
edgeStyle=orthogonalEdgeStyle | style keyword | Right-angle connectors |
edgeStyle=elbowEdgeStyle | style keyword | Elbow connectors |
dashed=1 | 0 or 1 | Dashed lines |
swimlane | style keyword | Swimlane containers |
group | style keyword | Invisible container (pointerEvents=0) |
container=1 | 0 or 1 | Enable container behavior on any shape |
pointerEvents=0 | 0 or 1 | Prevent container from capturing child connections |
CRITICAL: Every edge mxCell must contain a <mxGeometry relative="1" as="geometry" /> child element, even when there are no waypoints. Self-closing edge cells (e.g. <mxCell ... edge="1" ... />) are invalid and will not render correctly. Always use the expanded form:
<mxCell id="e1" edge="1" parent="1" source="a" target="b" style="...">
<mxGeometry relative="1" as="geometry" />
</mxCell>
draw.io does not have built-in collision detection for edges. Plan layout and routing carefully:
edgeStyle=orthogonalEdgeStyle for right-angle connectors (most common)exitX/exitY and entryX/entryY (values 0–1) to control which side of a node an edge connects to. Spread connections across different sides to prevent overlapstartSize/endSize styles). If the final segment is too short, the arrowhead overlaps the bend and looks broken. Ensure at least 20px of straight segment before the target and after the source when placing waypoints or positioning nodesorthogonalEdgeStyle, the auto-router places bends automatically — if source and target are close together or nearly aligned on one axis, the router may place a bend very close to a shape, leaving no room for the arrow. Fix this by either increasing node spacing or adding explicit waypoints that keep the final segment long enough<mxCell id="e1" style="edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="a" target="b">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="300" y=/>
For architecture diagrams or any diagram with nested elements, use draw.io's proper parent-child containment — do not just place shapes on top of larger shapes.
Set parent="containerId" on child cells. Children use relative coordinates within the container.
| Type | Style | When to use |
|---|---|---|
| Group (invisible) | group; | No visual border needed, container has no connections. Includes pointerEvents=0 so child connections are not captured |
| Swimlane (titled) | swimlane;startSize=30; | Container needs a visible title bar/header, or the container itself has connections |
| Custom container | Add container=1;pointerEvents=0; to any shape style | Any shape acting as a container without its own connections |
pointerEvents=0; to container styles that should not capture connections being rewired between childrenpointerEvents=0 when the container itself needs to be connectable — in that case, use swimlane style which handles this correctly (the client area is transparent for mouse events while the header remains connectable)parent="containerId" and use coordinates relative to the container<mxCell id="svc1" value="User Service" style="swimlane;startSize=30;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="300" height="200" as="geometry"/>
</mxCell>
<mxCell id="api1" value="REST API" style="rounded=1;whiteSpace=wrap;" vertex="1" parent="svc1">
<mxGeometry x="20" y="40" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="db1" value="Database" style="shape=cylinder3;whiteSpace=wrap;" vertex= =>
<mxCell id="grp1" value="" style="group;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="300" height="200" as="geometry"/>
</mxCell>
<mxCell id="c1" value="Component A" style="rounded=1;whiteSpace=wrap;" vertex="1" parent="grp1">
<mxGeometry x="10" y="10" width="120" height="60" as="geometry"/>
</mxCell>
For the complete draw.io style reference: https://www.drawio.com/doc/faq/drawio-style-reference.html
For the XML Schema Definition (XSD): https://www.drawio.com/assets/mxfile.xsd
--) inside XML comments. -- is illegal inside <!-- --> per the XML spec and causes parse errors. Use single hyphens or rephrase.&, <, >, "id values for each mxCellrounded=1 on edges for cleaner bendsjettySize=auto for better port spacing on orthogonal edges