Token导航 LogoToken导航TokenDH.com
效率操作浏览器clawhub未标认证来源可访问clear审计通过

svg-architecture-diagramsvg 架构图

Agent Skill

svg-architecture-diagram 用于处理浏览器自动化、网页检查和页面信息提取,适合在 OpenClaw 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,595

周安装

106

GitHub Stars

公开资料未说明

下载量

831
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:svg-architecture-diagram(svg 架构图)
来源仓库:https://github.com/wujiaming88/svg-architecture-diagram
安装命令:
openclaw skills install svg-architecture-diagram
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install svg-architecture-diagram

简介

svg-architecture-diagram 通过纯 SVG 技术绘制出版级技术架构图。

  • 结合 Playwright 截图功能,生成像素完美的可视化图表。
  • 适用于系统设计与文档插图,提升技术沟通效率。
  • 安装前请确认是否允许浏览器自动化与屏幕捕获操作。
  • 输出分辨率与布局细节取决于 HTML 容器尺寸设定。

SKILL.md

name
svg-architecture-diagram
description
>-

SVG Architecture Diagram

Create professional technical architecture diagrams using pure SVG, rendered to high-res PNG via Playwright.

Why SVG (not CSS positioning or AI image generation)

ApproachLines/ArrowsText QualityPrecision
SVG (this skill)✅ Perfect: <line>, <path>, <marker>✅ Crisp at any size✅ Pixel-perfect
CSS absolute positioning❌ Hacky: borders, pseudo-elements✅ OK❌ Hard to align
AI image generation❌ No control❌ Garbled text❌ No precision

Quick Start

Step 1: Plan the diagram

Identify:

  • Modules — group related components (color-coded)
  • Hierarchy — top-to-bottom flow (user → core → subsystems → output)
  • Connections — data flow (solid lines), feedback (dashed lines)

Step 2: Create the HTML file

Write a single HTML file with an inline SVG. Standard canvas: 1600×1000px.

<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
* { margin: 0; padding: 0; box-sizing: border-box; }
body { width: 1600px; height: 1000px; background: #fafafa; overflow: hidden; }
</style>
</head><body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 1000" width="1600" height="1000">
  <defs>
    <!-- Arrow markers — one per color -->
    <marker id="arr-indigo" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
      <path d="M0,0 L8,3 L0,6 Z" fill="#6366f1"/>
    </marker>
    <!-- Shadow filter -->
    <filter id="shadow" x="-4%" y="-4%" width="108%" height="108%">
      <feDropShadow dx="0" dy="2" stdDeviation="4" flood-color="#000" flood-opacity="0.08"/>
    </filter>
  </defs>

  <!-- Diagram content here -->

</svg>
</body></html>

Step 3: Build the diagram using these SVG patterns

Filled header card (module title):

<rect x="X" y="Y" width="W" height="40" rx="10" fill="#6366f1" filter="url(#shadow)"/>
<text x="CENTER" y="Y+25" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">🔄 Module Name</text>

Outlined detail card (sub-component):

<rect x="X" y="Y" width="W" height="65" rx="10" fill="#fff" stroke="#6366f1" stroke-width="2" filter="url(#shadow)"/>
<text x="X+20" y="Y+22" font-size="12" font-weight="700" fill="#6366f1">Component Title</text>
<text x="X+20" y="Y+40" font-size="11" fill="#6b7280">Description line 1</text>
<text x="X+20" y="Y+55" font-size="10" fill="#9ca3af">Metadata / specs</text>

Connection line (with arrow):

<line x1="FROM_X" y1="FROM_Y" x2="TO_X" y2="TO_Y" stroke="#6366f1" stroke-width="2" marker-end="url(#arr-indigo)"/>

Curved connection (L-shape or bend):

<path d="M startX,startY L midX,midY L endX,endY" stroke="#6366f1" stroke-width="2" fill="none" marker-end="url(#arr-indigo)"/>

Dashed feedback line:

<path d="M x1,y1 L x2,y2" stroke="#8b5cf6" stroke-width="2" fill="none" stroke-dasharray="6,4" marker-end="url(#arr-purple)"/>

Connection label:

<text x="MID_X" y="MID_Y-5" font-size="10" fill="#6366f1" font-weight="500">label text</text>

Step 4: Screenshot with Playwright

from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page(
        viewport={"width": 1600, "height": 1000},
        device_scale_factor=4,  # 4x ultra-high res (default)
    )
    page.goto("file:///path/to/diagram.html", wait_until="networkidle")
    page.wait_for_timeout(1500)
    page.screenshot(path="diagram.png", full_page=True)
    browser.close()

Or use the bundled script: scripts/screenshot.py <input.html> [output.png]

Design System

See references/design-system.md for the complete color palette, card styles, arrow markers, and text sizing rules.

Critical Rules (prevent common issues)

Text Overflow Prevention

  1. Max characters per line at font-size 11px ≈ 7px/char:

- 300px container → max 37 chars - 340px container → max 43 chars - 440px container → max 57 chars

  1. Long text → split into multiple <text> elements with Y offset +15px each
  2. Always leave 20px padding on each side of text inside cards
  3. Test at 1x scale before generating final 4x screenshot

Connection Line Rules

  1. Never use CSS for connections — always SVG <line> or <path>
  2. One <marker> per color — define in <defs>, reference with marker-end
  3. Straight lines when possible; use <path> L-segments for bends
  4. Avoid crossing lines — rearrange layout if lines would cross
  5. Label every connection — brief verb/noun near the midpoint
  6. ⚠️ Minimum 20px gap between vertically stacked cards — Arrow markers are 8px long. If the gap between cards is less than 20px, the arrow will completely cover the line, making it look like "arrow only, no line". Use card height 34px + gap 22px = 56px per step.
  7. Connection line length must be at least 17px — This ensures 9px visible line + 8px arrow marker. Example: card bottom at y=324, next card top at y=346, line from y1=324 to y2=343 (19px).
  8. Never make line length < marker size (8px) — The line will be invisible.

Layout Rules

  1. Top-to-bottom primary flow (input at top, output at bottom/right)
  2. Left-right symmetry when possible
  3. Group related modules vertically (e.g., memory layers stacked)
  4. Minimum 20px gap between vertically stacked cards (see Connection Line Rules)
  5. Color-code by function — see design system for standard palette
  6. Include a legend (bottom-right corner) explaining colors and line types
  7. Include a title (top center) and source attribution (bottom center)

Font Rules

  1. Font family: font-family="Inter, 'PingFang SC', 'Microsoft YaHei', sans-serif" — set on root <svg> or first <text>
  2. Load Inter via Google Fonts in <style> block
  3. Chinese text: use PingFang SC / Microsoft YaHei fallback
  4. Font sizes: titles 13-14px, descriptions 10-11px, metadata 9-10px

Examples

Two complete working examples are included:

  • references/example-hermes.html — Hermes Agent architecture (6 modules, medium complexity)
  • references/example-openclaw.html — OpenClaw platform architecture (12 modules, high complexity, demonstrates proper vertical card spacing for Agent Loop steps)

Delivery

Output MEDIA:<path> for inline delivery, or openclaw message send --channel telegram --target <id> --media <path> --force-document for Telegram.

If PNG exceeds ~1MB for Telegram delivery, convert to JPEG (quality=95):

from PIL import Image
img = Image.open("diagram.png")
img.save("diagram.jpg", "JPEG", quality=95, optimize=True)

Default is 4x (6400×4000px for 1600×1000 canvas). Always use maximum resolution.

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

77.97%
按下载量换算648

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills