/architecture-diagram
Generate layered architecture diagrams as self-contained HTML with inline SVG icons, CSS Grid containers, and connection overlays. Triggers on: "architecture diagram", "infra diagram", "system diagram", "deployment diagram", "topology", "draw architecture". NOT for architecture
$ npx -y skills add Mathews-Tom/armory --skill architecture-diagram --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/architecture-diagram
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate layered architecture diagrams as self-contained HTML with inline SVG icons, CSS Grid containers, and connection overlays. Triggers on: "architecture diagram", "infra diagram", "system diagram", "deployment diagram", "topology", "draw architecture". NOT for architecture
SKILL.md
architecture-diagram.SKILL.mdname: architecture-diagram
description: 'Generate layered architecture diagrams as self-contained HTML with inline SVG icons, CSS Grid containers, and connection overlays. Triggers on: "architecture diagram", "infra diagram", "system diagram", "deployment diagram", "topology", "draw architecture". NOT for architecture reviews, use architecture-reviewer.'
metadata:
version: 1.1.1
category: review
tags: [architecture, diagram, visualization, svg]
difficulty: intermediate
Architecture Diagram Generator
Produces self-contained `.html` files: inline SVG icons, CSS Grid nested zones, JS-driven SVG connection overlay with color-coded semantic line types and arrowhead markers. Zero external dependencies.
Workflow
1. **Parse** user input → extract: components (with descriptions), containment hierarchy (zones/nesting), connections (with semantic types), and any provider context 2. **Read** `references/icons.md` — select or create icons for each component 3. **Read** `references/layout-patterns.md` — choose topology pattern, set grid-template-columns 4. **Read** `references/connections.md` — define connection array with types, side-forcing, routing 5. **Start from** `assets/template.html` — use its CSS/JS structure as the base 6. **Assemble** the HTML:
- Set `{{DIAGRAM_TITLE}}`, `{{BG_COLOR}}`, `{{MAX_WIDTH}}`
- Populate `{{LEGEND_ITEMS}}` — one entry per connection type used
- Build zone hierarchy as nested `div.zone > span.zone-label + div.zone-content`
- Place nodes with `data-node-id`, each containing: `.node-icon` (inline SVG), `.node-title`, `.node-desc`
- Populate the `connections` JS array
- Apply provider theming if applicable
7. **Output** final `.html` to the working directory or user-specified path
Node construction
Every node must have:
- Unique `data-node-id` (semantic: `fusion-hcm`, `edi-adaptor`, not `node-7`)
- `.node-icon` with inline SVG from the icon registry (or custom-generated following registry constraints)
- `.node-title` — short name (1–3 words, bold)
- `.node-desc` — extended description text (protocols, module lists, capabilities). Populate this whenever the user provides detail beyond just a name. This is critical for professional-quality diagrams.
Key structural invariants
- Every `div.zone` has exactly one `span.zone-label` and one `div.zone-content`
- Every `div.zone-content` has explicit `style="grid-template-columns: ..."`
- Zone depth class (`zone-depth-0` to `zone-depth-3`) matches actual nesting level
- All SVG icons are inline inside `.node-icon` — no external image references
- Connection overlay SVG with `<defs>` (arrow markers for each color) sits after the diagram div
- Connection renderer `<script>` is last before `</body>`
- Legend div sits above the diagram div, containing only types actually used
Connection type selection
Match connection semantics to the appropriate type:
- **`realtime`** (blue solid): REST, SOAP, API calls, synchronous requests, real-time data
- **`batch`** (red dashed): SFTP, file transfers, EDI, scheduled batch jobs, bulk data
- **`event`** (green solid): event-driven triggers, pub-sub, webhooks, callbacks, business events
- **`control`** (orange dashed): management plane, monitoring, config push, admin flows
- **`default`** (blue solid): when semantic type is ambiguous or only one flow type exists
When the user doesn't specify flow semantics, default all connections to `default` type and omit the legend.
Design defaults
- Background: `#f0ece4` (warm neutral) or `#e8eef5` (cool blue-gray) — choose based on provider/context
- Zone borders: dashed, colored by depth (warm browns → reds)
- Icons: 44×44px, `--icon-color: #3a3a3a` (or provider-specific)
- Node title: 12px bold, node desc: 10.5px regular #555
- Connections: 2px stroke, curved by default
- Font: Segoe UI / system-ui stack
- Max-width: 1400px typical, increase for complex diagrams
Handling ambiguity
- Infer zone nesting from naming conventions (Region > VPC > Subnet, etc.)
- Default to `default` connections and no legend if flow types are unspecified
- Place management/observability services outside the main data-path zones
- Use generic icon set and warm-neutral background unless provider is specified
- Ask for clarification only when component list or topology is fundamentally ambiguous
Error Handling
| Problem | Cause | Fix | | ----------------------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `assets/template.html` missing | File deleted or skill directory incomplete | Regenerate from skill defaults: reconstruct the CSS/JS skeleton using the structure documented in this SKILL.md and the reference files | | Icon reference not found in `references/icons.md` | Component type not in the registry | Fall back to the generic box icon defined in `references/icons.md § Generic Fallback`; log the missing icon name in a comment | | Connection lines overlap or route through nodes | Dense graph with auto-routing conflicts | Adjust zone layout: increase `grid-template-columns` spacing, add intermediate waypoint nodes, or use `side-forcing` attributes from `references/connections.md` | | Playwright render failure during HTML-to-image export | Chromium not installed or script error | Run `playwright install chromium`; check browser console via `--headed` flag; verify no JS syntax errors in the connection renderer script | |
Read more
name: architecture-diagram description: 'Generate layered architecture diagrams as self-contained HTML with inline SVG icons, CSS Grid containers, and connection overlays. Triggers on: "architecture diagram", "infra diagram", "system diagram", "deployment diagram", "topology", "draw architecture". NOT for architecture reviews, use architecture-reviewer.' metadata: version: 1.1.1 category: review tags: [architecture, diagram, visualization, svg] difficulty: intermediate
Architecture Diagram Generator
Produces self-contained `.html` files: inline SVG icons, CSS Grid nested zones, JS-driven SVG connection overlay with color-coded semantic line types and arrowhead markers. Zero external dependencies.
Workflow
1. **Parse** user input → extract: components (with descriptions), containment hierarchy (zones/nesting), connections (with semantic types), and any provider context 2. **Read** `references/icons.md` — select or create icons for each component 3. **Read** `references/layout-patterns.md` — choose topology pattern, set grid-template-columns 4. **Read** `references/connections.md` — define connection array with types, side-forcing, routing 5. **Start from** `assets/template.html` — use its CSS/JS structure as the base 6. **Assemble** the HTML:
- Set `{{DIAGRAM_TITLE}}`, `{{BG_COLOR}}`, `{{MAX_WIDTH}}`
- Populate `{{LEGEND_ITEMS}}` — one entry per connection type used
- Build zone hierarchy as nested `div.zone > span.zone-label + div.zone-content`
- Place nodes with `data-node-id`, each containing: `.node-icon` (inline SVG), `.node-title`, `.node-desc`
- Populate the `connections` JS array
- Apply provider theming if applicable
7. **Output** final `.html` to the working directory or user-specified path
Node construction
Every node must have:
- Unique `data-node-id` (semantic: `fusion-hcm`, `edi-adaptor`, not `node-7`)
- `.node-icon` with inline SVG from the icon registry (or custom-generated following registry constraints)
- `.node-title` — short name (1–3 words, bold)
- `.node-desc` — extended description text (protocols, module lists, capabilities). Populate this whenever the user provides detail beyond just a name. This is critical for professional-quality diagrams.
Key structural invariants
- Every `div.zone` has exactly one `span.zone-label` and one `div.zone-content`
- Every `div.zone-content` has explicit `style="grid-template-columns: ..."`
- Zone depth class (`zone-depth-0` to `zone-depth-3`) matches actual nesting level
- All SVG icons are inline inside `.node-icon` — no external image references
- Connection overlay SVG with `<defs>` (arrow markers for each color) sits after the diagram div
- Connection renderer `<script>` is last before `</body>`
- Legend div sits above the diagram div, containing only types actually used
Connection type selection
Match connection semantics to the appropriate type:
- **`realtime`** (blue solid): REST, SOAP, API calls, synchronous requests, real-time data
- **`batch`** (red dashed): SFTP, file transfers, EDI, scheduled batch jobs, bulk data
- **`event`** (green solid): event-driven triggers, pub-sub, webhooks, callbacks, business events
- **`control`** (orange dashed): management plane, monitoring, config push, admin flows
- **`default`** (blue solid): when semantic type is ambiguous or only one flow type exists
When the user doesn't specify flow semantics, default all connections to `default` type and omit the legend.
Design defaults
- Background: `#f0ece4` (warm neutral) or `#e8eef5` (cool blue-gray) — choose based on provider/context
- Zone borders: dashed, colored by depth (warm browns → reds)
- Icons: 44×44px, `--icon-color: #3a3a3a` (or provider-specific)
- Node title: 12px bold, node desc: 10.5px regular #555
- Connections: 2px stroke, curved by default
- Font: Segoe UI / system-ui stack
- Max-width: 1400px typical, increase for complex diagrams
Handling ambiguity
- Infer zone nesting from naming conventions (Region > VPC > Subnet, etc.)
- Default to `default` connections and no legend if flow types are unspecified
- Place management/observability services outside the main data-path zones
- Use generic icon set and warm-neutral background unless provider is specified
- Ask for clarification only when component list or topology is fundamentally ambiguous
Error Handling
| Problem | Cause | Fix | | ----------------------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `assets/template.html` missing | File deleted or skill directory incomplete | Regenerate from skill defaults: reconstruct the CSS/JS skeleton using the structure documented in this SKILL.md and the reference files | | Icon reference not found in `references/icons.md` | Component type not in the registry | Fall back to the generic box icon defined in `references/icons.md § Generic Fallback`; log the missing icon name in a comment | | Connection lines overlap or route through nodes | Dense graph with auto-routing conflicts | Adjust zone layout: increase `grid-template-columns` spacing, add intermediate waypoint nodes, or use `side-forcing` attributes from `references/connections.md` | | Playwright render failure during HTML-to-image export | Chromium not installed or script error | Run `playwright install chromium`; check browser console via `--headed` flag; verify no JS syntax errors in the connection renderer script | |
Curated, production-grade skills, agents, hooks, rules, commands, utilities, and presets for AI coding agents. No magic, no demos — battle-tested workflows built for developers who use AI seriously.
Repo: Mathews-Tom/armory
Other skills on armory.
- /adr-writer
Generates Architecture Decision Records capturing context, rationale, alternatives, and consequences in numbered status-tracked format. Triggers on: "write an ADR", "document this decision", "architecture decision record", "decision record", "design decision", "ADR for".
Open skill - /agent-builder
Build AI agents and automate Claude Code programmatically via the Claude Agent SDK and headless CLI mode. Covers Python SDK, claude -p, SDK MCP servers, hooks, sessions. Triggers on: "build an agent", "agent SDK", "headless mode", "automate Claude", "programmatic agent".
Open skill - /api-docs-generator
Audits and enhances FastAPI and REST API documentation: missing descriptions, response codes, examples, docstrings, Pydantic models, OpenAPI spec. Triggers on: "generate API docs", "document this API", "OpenAPI for", "FastAPI docs", "document endpoints", "swagger docs".
Open skill - /architecture-reviewer
Architecture reviews across 7 dimensions (structural, scalability, enterprise readiness, performance, security, ops, data) with scored reports. Triggers on: "review architecture", "critique design", "audit system", "assess scalability", "enterprise readiness", "technical due
Open skill - /arxiv-figures
Optimize and prepare figures for arXiv submission: format conversion (EPS/PDF/PNG/JPG), size reduction, metadata stripping, processor compatibility (DVI vs PDFLaTeX). Triggers on: "optimize figures for arXiv", "reduce figure size", "convert figures for arXiv", "fix arXiv
Open skill - /arxiv-package
Package a TeX/LaTeX project into a clean tarball or zip for arXiv upload: file selection, build-artifact exclusion, 00README.XXX generation, ancillary file organization, archive validation. Triggers on: "package for arXiv", "create arXiv tarball", "bundle submission", "zip for
Open skill

