본문으로 건너뛰기
cccskills
무료GitHub에 공개

baoyu-diagram

Turn system structures, processes, and concepts into dark-themed diagrams. Create architecture diagrams, flowcharts, timelines, and other visual explanations as scalable SVG files, with PNG versions for use as images.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Create professional, dark-themed SVG diagrams of any type — architecture diagrams, flowcharts, sequence diagrams, structural diagrams, mind maps, timelines, illustrative/conceptual diagrams, and more. Use this skill whenever the user asks for any kind of technical or conceptual diagram, visualization of a system, process flow, data flow, component relationship, network topology, decision tree, org chart, state machine, or any visual representation of structure/logic/process. Also trigger when the user says "画个图" "画一个架构图" "diagram" "flowchart" "sequence diagram" "draw me a ..." or uploads content and asks to visualize it. Output is always a standalone .svg file.

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • Explain system components and their connections
  • Map process steps and decision branches
  • Show interactions in chronological order
  • Organize ideas or events visually

포함된 파일(6)

  • SKILL.md12.0 KB
  • references/architecture.md3.1 KB
  • references/flowchart.md2.2 KB
  • references/sequence.md3.7 KB
  • references/structural.md3.6 KB
  • scripts/main.ts3.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Diagram Generator

Create professional SVG diagrams across multiple diagram types. All output is a single self-contained .svg file with embedded styles and fonts.

Supported Diagram Types

TypeWhen to UseKey Characteristics
ArchitectureSystem components & relationshipsGrouped boxes, connection arrows, region boundaries
FlowchartDecision logic, process stepsDiamond decisions, rounded step boxes, directional flow
SequenceTime-ordered interactions between actorsVertical lifelines, horizontal messages, activation bars
StructuralClass diagrams, ER diagrams, org chartsCompartmented boxes, typed relationships (inheritance, composition)
Mind MapBrainstorming, topic explorationCentral node, radiating branches, organic layout
TimelineChronological eventsHorizontal/vertical axis, event markers, period spans
IllustrativeConceptual explanations, comparisonsFree-form layout, icons, annotations, visual metaphors
State MachineState transitions, lifecycleRounded state nodes, labeled transitions, start/end markers
Data FlowData transformation pipelinesProcess bubbles, data stores, external entities

Design System

Color Palette

Semantic colors for component categories:

CategoryFill (rgba)StrokeUse For
Primaryrgba(8, 51, 68, 0.4)#22d3ee (cyan)Frontend, user-facing, inputs
Secondaryrgba(6, 78, 59, 0.4)#34d399 (emerald)Backend, services, processing
Tertiaryrgba(76, 29, 149, 0.4)#a78bfa (violet)Database, storage, persistence
Accentrgba(120, 53, 15, 0.3)#fbbf24 (amber)Cloud, infrastructure, regions
Alertrgba(136, 19, 55, 0.4)#fb7185 (rose)Security, errors, warnings
Connectorrgba(251, 146, 60, 0.3)#fb923c (orange)Buses, queues, middleware
Neutralrgba(30, 41, 59, 0.5)#94a3b8 (slate)External, generic, unknown
Highlightrgba(59, 130, 246, 0.3)#60a5fa (blue)Active state, focus, current step

For flowcharts and sequence diagrams, assign colors by role (actor, decision, process) rather than by technology.

Typography

Use embedded SVG @font-face or system monospace fallback:

<style>
  @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&amp;display=swap');
  text { font-family: 'JetBrains Mono', 'SF Mono', 'Cascadia Code', monospace; }
</style>

Font sizes by role:

  • Title: 16px, weight 700
  • Component name: 11-12px, weight 600
  • Sublabel / description: 9px, weight 400, color #94a3b8
  • Annotation / note: 8px, weight 400
  • Tiny label (on arrows): 7-8px

Core Visual Elements

Background: #0f172a (slate-900) with subtle grid:

<defs>
  <pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
    <path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
  </pattern>
</defs>
<rect width="100%" height="100%" fill="#0f172a"/>
<rect width="100%" height="100%" fill="url(#grid)"/>

Arrowhead marker (standard):

<marker id="arrow" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
  <polygon points="0 0, 10 3.5, 0 7" fill="#64748b"/>
</marker>

Arrowhead marker (colored) — create per-color as needed:

<marker id="arrow-cyan" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
  <polygon points="0 0, 10 3.5, 0 7" fill="#22d3ee"/>
</marker>

Open arrowhead (for async/return messages):

<marker id="arrow-open" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
  <polyline points="0 0, 10 3.5, 0 7" fill="none" stroke="#64748b" stroke-width="1.5"/>
</marker>

SVG Structure & Layering

Draw elements in this order to get correct z-ordering (SVG paints back-to-front):

  1. Background fill + grid pattern
  2. Region/group boundaries (dashed outlines)
  3. Connection arrows and lines
  4. Opaque masking rects (same position as component boxes, fill="#0f172a")
  5. Component boxes (semi-transparent fill + stroke)
  6. Text labels
  7. Legend (bottom-right or bottom area, outside all boundaries)
  8. Title block (top-left)

The opaque masking rect trick is essential — semi-transparent component fills will show arrows underneath without it:

<!-- Mask layer: opaque background to hide arrows -->
<rect x="100" y="100" width="160" height="60" rx="6" fill="#0f172a"/>
<!-- Visual layer: styled component -->
<rect x="100" y="100" width="160" height="60" rx="6" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1.5"/>
<text x="180" y="125" fill="white" font-size="11" font-weight="600" text-anchor="middle">API Gateway</text>
<text x="180" y="141" fill="#94a3b8" font-size="9" text-anchor="middle">Kong / Nginx</text>

Spacing Rules

These prevent overlapping — follow them strictly:

  • Component box height: 50-70px (standard), 80-120px (large/complex)
  • Minimum gap between components: 40px vertical, 30px horizontal
  • Arrow label clearance: 10px from any box edge
  • Region boundary padding: 20px inside edges around contained components
  • Legend placement: At least 20px below the lowest diagram element
  • Title block: 20px from top-left, outside diagram content area
  • viewBox: Always extend to fit all content + 30px padding on all sides

Component Patterns

Standard box (service/process):

<rect x="X" y="Y" width="160" height="60" rx="6" fill="#0f172a"/>
<rect x="X" y="Y" width="160" height="60" rx="6" fill="FILL" stroke="STROKE" stroke-width="1.5"/>
<text x="CX" y="Y+24" fill="white" font-size="11" font-weight="600" text-anchor="middle">Name</text>
<text x="CX" y="Y+40" fill="#94a3b8" font-size="9" text-anchor="middle">description</text>

Decision diamond (flowchart):

<g transform="translate(CX, CY)">
  <polygon points="0,-35 50,0 0,35 -50,0" fill="#0f172a"/>
  <polygon points="0,-35 50,0 0,35 -50,0" fill="rgba(120,53,15,0.3)" stroke="#fbbf24" stroke-width="1.5"/>
  <text y="4" fill="white" font-size="10" font-weight="600" text-anchor="middle">Condition?</text>
</g>

Database cylinder:

<g transform="translate(X, Y)">
  <rect x="0" y="10" width="120" height="50" rx="2" fill="#0f172a"/>
  <ellipse cx="60" cy="10" rx="60" ry="12" fill="#0f172a"/>
  <ellipse cx="60" cy="60" rx="60" ry="12" fill="#0f172a"/>
  <rect x="0" y="10" width="120" height="50" fill="rgba(76,29,149,0.4)"/>
  <ellipse cx="60" cy="10" rx="60" ry="12" fill="rgba(76,29,149,0.4)" stroke="#a78bfa" stroke-width="1.5"/>
  <ellipse cx="60" cy="60" rx="60" ry="12" fill="rgba(76,29,149,0.4)" stroke="#a78bfa" stroke-width="1.5"/>
  <line x1="0" y1="10" x2="0" y2="60" stroke="#a78bfa" stroke-width="1.5"/>
  <line x1="120" y1="10" x2="120" y2="60" stroke="#a78bfa" stroke-width="1.5"/>
  <text x="60" y="40" fill="white" font-size="11" font-weight="600" text-anchor="middle">PostgreSQL</text>
</g>

Region boundary:

<rect x="X" y="Y" width="W" height="H" rx="12" fill="none" stroke="#fbbf24" stroke-width="1" stroke-dasharray="8,4"/>
<text x="X+12" y="Y+16" fill="#fbbf24" font-size="9" font-weight="600">AWS us-east-1</text>

Security group:

<rect x="X" y="Y" width="W" height="H" rx="8" fill="none" stroke="#fb7185" stroke-width="1" stroke-dasharray="4,4"/>
<text x="X+10" y="Y+14" fill="#fb7185" font-size="8" font-weight="500">VPC / Security Group</text>

Type-Specific Layout Guidance

Determine this SKILL.md file's directory path as {baseDir}. Read the reference file for the specific diagram type before starting layout. Reference files are located at {baseDir}/references/ and contain detailed layout algorithms and examples.

Architecture Diagrams

→ Read {baseDir}/references/architecture.md

Key points: left-to-right or top-to-bottom data flow. Group related services in region boundaries. Use buses/connectors between layers. Place databases at the bottom or right.

Flowcharts

→ Read {baseDir}/references/flowchart.md

Key points: top-to-bottom primary flow. Diamonds for decisions with Yes/No labels on exit arrows. Rounded rectangles for start/end. Use the Highlight color for the happy path.

Sequence Diagrams

→ Read {baseDir}/references/sequence.md

Key points: actors as boxes at top, vertical dashed lifelines, horizontal arrows for messages (solid=sync, dashed=return). Time flows downward. Activation bars show processing. Number messages if complex.

Structural Diagrams

→ Read {baseDir}/references/structural.md

Key points: compartmented boxes (name / attributes / methods for class diagrams). Relationship lines: solid with filled diamond=composition, solid with empty diamond=aggregation, dashed arrow=dependency, solid triangle=inheritance.

Mind Maps

Free-form radiating layout from a central concept. Use organic curves (<path> with cubic beziers) for branches. Vary branch colors using the palette. Larger font for central node, decreasing as you go outward.

Timelines

Horizontal or vertical axis line. Event markers as circles or diamonds on the axis. Description text offset to alternating sides to avoid overlap. Use color to categorize event types.

State Machines

Rounded-rect states with double-border for composite states. Filled circle for initial state, bullseye for final state. Curved arrows for self-transitions. Label all transitions with event [guard] / action format.

Output Rules

  1. Output a single .svg file — no external dependencies except the Google Fonts import
  2. Set viewBox to fit all content with 30px padding; do NOT set fixed width/height attributes (let the SVG scale responsively)
  3. Include xmlns="http://www.w3.org/2000/svg" on the root <svg> element
  4. Put all <style>, <defs>, markers, and patterns at the top of the SVG
  5. Use text-anchor="middle" for centered labels; ensure text doesn't overflow boxes
  6. Chinese text support: When labels contain Chinese characters, use font-family: 'JetBrains Mono', 'Noto Sans SC', 'PingFang SC', sans-serif' and increase box widths — CJK characters are wider
  7. Save location: If the input is a file, save to {inputFileDir}/diagram/. Otherwise save to {projectDir}/diagram/{topic-slug}/. Create the directory if it doesn't exist

Script

Determine this SKILL.md file's directory path as {baseDir}. Script path: {baseDir}/scripts/main.ts.

Resolve ${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun.

SVG → @2x PNG

After saving the SVG, convert it to a @2x PNG:

${BUN_X} {baseDir}/scripts/main.ts <svg-path> [options]

Options:

  • -s, --scale <n> — Scale factor (default: 2)
  • -o, --output <path> — Custom output path (default: <input>@2x.png)
  • --json — JSON output

Process

  1. Identify the diagram type from the user's request
  2. Read the relevant reference file if one exists for that type
  3. Plan the layout: list all components, determine grouping and flow direction, calculate positions
  4. Write the SVG following the layering order above
  5. Verify spacing rules — no overlaps, legends outside boundaries, viewBox large enough
  6. Save the SVG file
  7. Run ${BUN_X} {baseDir}/scripts/main.ts <svg-path> to generate @2x PNG
  8. Present both files to the user

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Analyze an article, choose where illustrations would help, and generate images with consistent types, styles, and colors. Save the illustration plan and prompts, then insert image references into the article's Markdown.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add illustrations where an article needs visual support
  • Illustrate tutorial steps and workflows
  • Create comparison images using article-specific details
JimLiu/baoyu-skills2.7만2026년 9월 11일 업데이트

Turn educational topics or biographies into original comics with planned panels and recurring characters. Choose an art style, mood, and layout, then produce storyboards, image prompts, illustrated pages, and a combined PDF.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Explaining a learning topic through a comic
  • Turning a person's biography into a comic
  • Creating a four-panel tutorial comic
JimLiu/baoyu-skills2.7만2026년 9월 11일 업데이트

Reduce image file sizes by compressing individual files or whole folders into WebP, PNG, or JPEG. The skill selects an available compression tool automatically and lets you control quality, include subfolders, and choose whether to keep originals.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Converting images to WebP
  • Compressing a folder and its subfolders
  • Adjusting compression quality
JimLiu/baoyu-skills2.7만2026년 9월 11일 업데이트

Create article cover images based on the topic and tone of the text. Choose the composition, colors, rendering style, text amount, and mood, with reference images and aspect ratios to guide the result.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Creating a cover image for a blog article
  • Making a cover with a title and subtitle
  • Matching a cover to reference colors or composition
JimLiu/baoyu-skills2.7만2026년 9월 11일 업데이트

Generate text and images through a reverse-engineered Gemini Web API, an interface reconstructed from the web service. Use reference images for descriptions or variations, and continue conversations across requests with saved sessions.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Generating images from written prompts
  • Describing the contents of reference images
  • Creating variations from an existing image
JimLiu/baoyu-skills2.7만2026년 9월 11일 업데이트

Save X posts, threads, and Articles as Markdown with source and author details. Images and videos can also be downloaded locally. Conversion uses an unofficial API and requires consent before use.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Saving an X post with its source details
  • Archiving a thread as Markdown
  • Extracting the full text of an X Article
JimLiu/baoyu-skills2.7만2026년 9월 11일 업데이트

JimLiu의 스킬 모두 보기

이 스킬의 문제 신고