К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

architecture-diagram · cocoon-ai — скилл для Claude Code: диаграммы в HTML+SVG

Генерирует диаграммы архитектуры систем, облачной инфраструктуры, микросервисов и сетевой топологии в виде самодостаточных HTML-файлов с тёмной темой.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Cocoon-AI/architecture-diagram-generator --skill architecture-diagram -a claude-code
Открыть на GitHub

Что делает architecture-diagram

Создаёт технические диаграммы архитектуры в формате HTML со встроенной SVG-графикой и CSS. Каждая диаграмма — один файл, который открывается в браузере. Внутри — тёмный фон (#020617), сетка, компоненты с семантической цветовой палитрой (Frontend — циан, Backend — изумруд, Database — фиолетовый, AWS/Cloud — янтарь, Security — роза), шрифт JetBrains Mono и встроенная панель экспорта.

Панель экспорта скрывается за кнопкой ⋯ и даёт три кнопки: копировать PNG в буфер (масштаб 2x), скачать PNG и экспортировать PDF через jspdf. Захват делает [email protected] с Subresource Integrity. Диаграмма следует правилам размещения: минимум 40px между компонентами по вертикали, легенда — вне границ кластеров и зон безопасности.

Требует подключения двух CDN-скриптов с SRI-хешами (html2canvas и jspdf), без них экспорт не работает. Clipboard API нужен безопасный контекст (https, localhost или file). Если что-то обрезано на диаграмме — увеличь viewBox SVG.

Какие задачи решает

  • задокументировать архитектуру микросервисов с шинами сообщений
  • визуализировать топологию AWS-инфраструктуры с VPC и security groups
  • нарисовать схему потоков данных между фронтендом, API и базой
  • построить диаграмму безопасности с OAuth и границами доверия
  • экспортировать схему системы в PNG или PDF для презентации

Примеры запросов агенту

  • Создай диаграмму архитектуры для микросервисного приложения: React-фронтенд, три Node.js-бэкенда, Kafka между ними, PostgreSQL и Redis
  • Нарисуй схему AWS-инфраструктуры с VPC, двумя подсетями, ECS Fargate, RDS и ALB
  • Построй диаграмму безопасности для веб-приложения: пользователь → OAuth2-провайдер → API Gateway → внутренние сервисы

Как установить architecture-diagram

1Через Skills CLI (Vercel)

npx skills add Cocoon-AI/architecture-diagram-generator --skill architecture-diagram -a claude-code

2Вручную: положить файлы

~/.claude/skills/architecture-diagram/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/architecture-diagram/

Другие версии architecture-diagram

Похожие

gpt-taste nexu-io Задаёт правила вёрстки лендингов: убирает шаблонные сетки, ограничивает длину H1 двумя строками и добавляет анимации на GSAP. Claude Code CX Codex Cursor +1 1 800установок redesign-existing-projects nexu-io Аудитирует существующий интерфейс и точечно перерабатывает сайт или приложение, сохраняя рабочую логику. Нужен, когда UI выглядит шаблонно или теряет визуальную иерархию. Claude Code CX Codex Cursor +1 1 800установок od-contribute nexu-io Скилл помогает отправить вклад в OpenDesign: оформить скилл или дизайн-систему, перевести документацию, исправить текст либо сообщить об ошибке. Claude Code CX Codex Cursor +1 1 800установок ui-ux-designer sickn33 Скилл помогает проектировать интерфейсы, пользовательские потоки и дизайн-системы с учётом исследований и доступности. Пригодится для редизайна и проверки состояний интерфейса. Claude Code CX Codex Cursor +1 3 100установок expo-design-system expo Помогает выстроить дизайн-систему в приложении на Expo: организовать токены, вынести общие компоненты и убрать расхождения в стилях. Claude Code CX Codex Cursor +1 16 500установок image-to-video prime-skills Маршрутизирует запросы на анимацию картинок в подходящую нейросеть каталога RunComfy. Помогает оживить статичный кадр без ручного подбора параметров. Claude Code CX Codex Cursor +1 437 600установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок grill-me Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну, чтобы найти пробелы и уточнить решения. Подойдёт перед началом разработки. Claude Code 1 424 476установок

Вопросы о architecture-diagram

Как установить architecture-diagram в Claude Code?

Выполни команду npx skills add Cocoon-AI/architecture-diagram-generator --skill architecture-diagram -a claude-code. Скилл окажется в ~/.claude/skills/architecture-diagram/SKILL.md.

Что делает architecture-diagram?

Генерирует диаграммы архитектуры систем, облачной инфраструктуры, микросервисов, сетевой топологии и потоков безопасности в виде самодостаточных HTML-файлов с встроенной SVG-графикой, тёмной темой и панелью экспорта в PNG/PDF.

Какие форматы экспорта поддерживает architecture-diagram?

Три формата: копирование PNG в буфер обмена (масштаб 2x), скачивание PNG и экспорт PDF. Все три используют html2canvas для захвата, PDF встраивает PNG через jspdf.

Исходный текст

SKILL.md · MIT
---
name: architecture-diagram
description: Create polished dark-themed architecture diagrams as self-contained HTML+SVG files. Use when the user asks for system, infrastructure, cloud, security, or network topology diagrams.
---

# Architecture Diagram Skill

Create professional technical architecture diagrams as self-contained HTML files with inline SVG graphics and CSS styling.

> **Version 1.1** · MIT License · Authored by [Cocoon AI](mailto:[email protected])

## Design System

### Color Palette

Use these semantic colors for component types:

| Component Type | Fill (rgba) | Stroke |
|---------------|-------------|--------|
| Frontend | `rgba(8, 51, 68, 0.4)` | `#22d3ee` (cyan-400) |
| Backend | `rgba(6, 78, 59, 0.4)` | `#34d399` (emerald-400) |
| Database | `rgba(76, 29, 149, 0.4)` | `#a78bfa` (violet-400) |
| AWS/Cloud | `rgba(120, 53, 15, 0.3)` | `#fbbf24` (amber-400) |
| Security | `rgba(136, 19, 55, 0.4)` | `#fb7185` (rose-400) |
| Message Bus | `rgba(251, 146, 60, 0.3)` | `#fb923c` (orange-400) |
| External/Generic | `rgba(30, 41, 59, 0.5)` | `#94a3b8` (slate-400) |

### Typography

Use JetBrains Mono for all text (monospace, technical aesthetic):
```html
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
```

Font sizes: 12px for component names, 9px for sublabels, 8px for annotations, 7px for tiny labels.

### Visual Elements

**Background:** `#020617` (slate-950) with subtle grid pattern:
```svg
<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>
```

**Component boxes:** Rounded rectangles (`rx="6"`) with 1.5px stroke, semi-transparent fills.

**Security groups:** Dashed stroke (`stroke-dasharray="4,4"`), transparent fill, rose color.

**Region boundaries:** Larger dashed stroke (`stroke-dasharray="8,4"`), amber color, `rx="12"`.

**Arrows:** Use SVG marker for arrowheads:
```svg
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
  <polygon points="0 0, 10 3.5, 0 7" fill="#64748b" />
</marker>
```

**Arrow z-order:** Draw connection arrows early in the SVG (after the background grid) so they render behind component boxes. SVG elements are painted in document order, so arrows drawn first will appear behind shapes drawn later.

**Masking arrows behind transparent fills:** Since component boxes use semi-transparent fills (`rgba(..., 0.4)`), arrows behind them will show through. To fully mask arrows, draw an opaque background rect (e.g., `fill="#0f172a"`) at the same position before drawing the semi-transparent styled rect on top:
```svg
<!-- Opaque background to mask arrows -->
<rect x="X" y="Y" width="W" height="H" rx="6" fill="#0f172a"/>
<!-- Styled component on top -->
<rect x="X" y="Y" width="W" height="H" rx="6" fill="rgba(76, 29, 149, 0.4)" stroke="#a78bfa" stroke-width="1.5"/>
```

**Auth/security flows:** Dashed lines in rose color (`#fb7185`).

**Message buses / Event buses:** Small connector elements between services. Use orange color (`#fb923c` stroke, `rgba(251, 146, 60, 0.3)` fill):
```svg
<rect x="X" y="Y" width="120" height="20" rx="4" fill="rgba(251, 146, 60, 0.3)" stroke="#fb923c" stroke-width="1"/>
<text x="CENTER_X" y="Y+14" fill="#fb923c" font-size="7" text-anchor="middle">Kafka / RabbitMQ</text>
```

### Spacing Rules

**CRITICAL:** When stacking components vertically, ensure proper spacing to avoid overlaps:

- **Standard component height:** 60px for services, 80-120px for larger components
- **Minimum vertical gap between components:** 40px
- **Inline connectors (message buses):** Place IN the gap between components, not overlapping

**Example vertical layout:**
```
Component A: y=70,  height=60  → ends at y=130
Gap:         y=130 to y=170   → 40px gap, place bus at y=140 (20px tall)
Component B: y=170, height=60  → ends at y=230
```

**Wrong:** Placing a message bus at y=160 when Component B starts at y=170 (causes overlap)
**Right:** Placing a message bus at y=140, centered in the 40px gap (y=130 to y=170)

### Legend Placement

**CRITICAL:** Place legends OUTSIDE all boundary boxes (region boundaries, cluster boundaries, security groups).

- Calculate where all boundaries end (y position + height)
- Place legend at least 20px below the lowest boundary
- Expand SVG viewBox height if needed to accommodate

**Example:**
```
Kubernetes Cluster: y=30, height=460 → ends at y=490
Legend should start at: y=510 or below
SVG viewBox height: at least 560 to fit legend
```

**Wrong:** Legend at y=470 inside a cluster boundary that ends at y=490
**Right:** Legend at y=510, below the cluster boundary, with viewBox height extended

### Layout Structure

1. **Header** - Title with pulsing dot indicator, subtitle, and export toolbar
2. **Main SVG diagram** - Contained in rounded border card
3. **Summary cards** - Grid of 3 cards below diagram with key details
4. **Footer** - Minimal metadata line

### Export Toolbar (built-in)

Every diagram ships with a single unobtrusive `⋯` toggle in the header. Click it to reveal three buttons — 📋 Copy (high-DPI PNG to clipboard, scale: 2), 🖼️ PNG (high-DPI PNG download), 📄 PDF (PNG embedded in a one-page PDF via jsPDF). The toolbar collapses back to the icon by default so it doesn't clutter the diagram. All three formats use the same html2canvas capture (with the toolbar excluded and 32px padding around the content), so PDF preserves the dark theme without going through the browser's print dialog.

When generating a new diagram, keep these intact in the template:
- The two CDN scripts in `<head>` (pinned versions, with Subresource Integrity hashes and `crossorigin="anonymous"`):
  - `https://cdn.jsdelivr.net/npm/[email protected]/dist/html2canvas.min.js` — `integrity="sha384-ZZ1pncU3bQe8y31yfZdMFdSpttDoPmOZg2wguVK9almUodir1PghgT0eY7Mrty8H"`
  - `https://cdn.jsdelivr.net/npm/[email protected]/dist/jspdf.umd.min.js` — `integrity="sha384-en/ztfPSRkGfME4KIm05joYXynqzUgbsG5nMrj/xEFAHXkeZfO3yMK8QQ+mP7p1/"`
  - SRI ensures generated diagrams are tamper-resistant against CDN compromise. Do not modify the hashes; if the version is bumped, the new hash must be computed fresh.
- `id="report-container"` on the outermost `.container` div (this is what gets captured)
- `.toolbar` markup with `.toolbar-actions` (collapsed by default) and `.toolbar-toggle` (the `⋯` button)
- `.toolbar` CSS + `@media print { .toolbar { display: none !important; } }`
- `copyAsImage()`, `downloadPNG()`, and `downloadPDF()` script before `</body>`, all using `getBoundingClientRect()` + `html2canvas(document.body, { x, y, width, height, ignoreElements })` to capture a precise rect with breathing room and no toolbar

Caveats: clipboard API needs a user gesture and a secure context (https/file/localhost). SVG `<foreignObject>` renders inconsistently in html2canvas — stick to plain `<svg>` shapes and `<text>`. Bump `scale: 2` to `3` or `4` for higher-res output.

### Component Box Pattern

```svg
<rect x="X" y="Y" width="W" height="H" rx="6" fill="FILL_COLOR" stroke="STROKE_COLOR" stroke-width="1.5"/>
<text x="CENTER_X" y="Y+20" fill="white" font-size="11" font-weight="600" text-anchor="middle">LABEL</text>
<text x="CENTER_X" y="Y+36" fill="#94a3b8" font-size="9" text-anchor="middle">sublabel</text>
```

### Info Card Pattern

```html
<div class="card">
  <div class="card-header">
    <div class="card-dot COLOR"></div>
    <h3>Title</h3>
  </div>
  <ul>
    <li>• Item one</li>
    <li>• Item two</li>
  </ul>
</div>
```

## Template

Copy and customize the template at `resources/template.html`. Key customization points:

1. Update the `<title>` and header text
2. Modify SVG viewBox dimensions if needed (default: `1000 x 680`)
3. Add/remove/reposition component boxes
4. Draw connection arrows between components
5. Update the three summary cards
6. Update footer metadata

## Output

Always produce a single self-contained `.html` file with:
- Embedded CSS (no external stylesheets except Google Fonts)
- Inline SVG (no external images)
- No JavaScript required (pure CSS animations)

The file should render correctly when opened directly in any modern browser. The export toolbar uses two CDN scripts (html2canvas and jsPDF) — no other JavaScript dependencies.

© Cocoon-AI · MIT · Cocoon-AI/architecture-diagram-generator

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой