---
name: infrastructure-diagrams
description: "Build and maintain service dependency diagrams for IT Pro Partner infrastructure — SVG-based architecture maps showing servers, services, cron jobs, email accounts, and dependencies. Generated as self-contained HTML with dark theme."
version: 1.0.0
author: Sho'Nuff
platforms: [linux]
metadata:
  hermes:
    tags: [infrastructure, diagram, dependency, svg, html, architecture]
---

# Infrastructure Dependency Diagrams

Generate dark-themed SVG dependency diagrams as self-contained HTML files. Design system based on the `architecture-diagram` skill (Cocoon AI style) with modifications for infra-specific layouts.

## When to create or update

- After adding/removing a server, cron job, email account, or external dependency
- After the user explicitly asks about the dependency map
- Before making changes to understand service blast radius
- When user says "keep the diagram updated"

## Diagram structure (7 layers)

1. **External / Users** — Germaine, Telegram Bot
2. **Messaging / Provider** — Hermes Gateway, admin-ai (LiteLLM)
3. **Core Services** — Hermes Agent, Cron Scheduler
4. **Mail Services** — Each email account with its triage/watchdog schedule
5. **Storage & Backups** — Wasabi S3 buckets
6. **Standby & External** — Hetzner standby, pending migrations
7. **Config / Secrets** — config.yaml, .env, Skills/Memory, Vaultwarden
8. **User VPS** — Tony's CPX21 (Ashburn), standalone Hermes with local Llama fallback

## Color palette

- Hermes Core: cyan (#22d3ee), fill rgba(8,51,68,0.4)
- System Service: emerald (#34d399), fill rgba(6,78,59,0.4)
- Email Account: violet (#a78bfa), fill rgba(76,29,149,0.4)
- External Service: amber (#fbbf24), fill rgba(120,53,15,0.3)
- Security / Standby: rose (#fb7185), fill rgba(136,19,55,0.3-0.06)
- External/Generic: slate (#94a3b8), fill rgba(30,41,59,0.5)
- Cloudflare: amber (#fbbf24) -- already matches the External Service color

## File location

Save to `/root/portal-mockup/dependency-diagram.html`. Serve via Tailscale at the existing `/portal` path alongside other mockups.

## Info cards (3 below diagram)

1. **Hermes Core** — Models used, gateway status, cron job count
2. **External Dependencies** — admin-ai, Wasabi S3, MXroute, Tailscale
3. **Single Points of Failure** — What breaks if each external service goes down

## Updating the diagram

After infrastructure changes:
1. Re-open the existing HTML file
2. Update SVG element positions/connections
3. Update info card content
4. Update the subtitle date
5. Save with the same filename
6. The Tailscale Serve path stays valid automatically

## Full dependency reference

The authoritative current-state snapshot lives at `/root/.hermes/references/infrastructure-dependency-snapshot.md`. Update this file whenever infrastructure changes — it provides the source data for regenerating the SVG diagram without re-scanning every service from scratch.

## Keep the diagram updated

This user explicitly said "refer to the your diagram and keep it updated." Treat the diagram as a living document. After any infrastructure change (server added/removed, new cron job, new email account), update the SVG and the dependency snapshot file.
