Google Slides Architecture Diagrams
Adapt the interactive architecture diagram mental model to Google Slides.
Slides cannot run animated packets or a live player. They CAN teach the same way: clear topology, named flows, step-by-step storyboards, and mode variants with consistent node placement.
Inspired by: konraddzbik/architecture-diagram-skill (MIT). This skill reuses its planning model; the output medium is Google Slides + optional companion markdown.
When to use
| Situation |
Use this skill? |
| Architecture / data-flow diagram on Google Slides |
Yes |
| Customer walkthrough of how components connect |
Yes |
| Stage → cutover → rollback storyboard in a deck |
Yes |
| Direct vs Indirect (or similar) mode comparison |
Yes |
| Interactive HTML click-through in a browser |
No — use HTML architecture-diagram skill |
| Static Mermaid in a README |
No — Mermaid is simpler |
| Generic text/agenda slides |
No — use google-slides-presentation |
Mental model (same four primitives)
- Nodes — services, CRs, datastores, users, external systems. Each has a role (color) and short metadata (tech / purpose).
- Flows — named scenarios (
Stage, Cutover, Indirect copy). Each flow is an ordered list of steps.
- Steps —
{from, to, title, desc, chips?}. One handoff: X sends/refers/configures Y.
- Modes — orthogonal toggles (
direct/indirect, dev/prod). Same topology; highlight different path or swap labels — do not invent a different system unless you build a second diagram.
Modes ≠ flows. Flows = scenarios. Modes = deployment / path shape.
Hard constraints (Red Hat slides)
Always compose with workspace helpers from google-slides-presentation / slides-script/helpers.py:
- Slide size 10″ × 5.625″, content zone y 1.00″ → 4.80″, margins 0.50″
- Every content slide: red accent bar + title + subtitle + RH logo
- Fonts: Red Hat Display (titles) / Red Hat Text (body); ≥ 12pt
- Light/dark: follow the deck’s existing
COLOR_MODE (do not flip without asking)
- Create slides with
predefinedLayout: "BLANK" + explicit background
- After build: run Quick Verify from
google-slides-verify on affected slide IDs
Default safety rule: never delete or rewrite existing slides unless the user explicitly asks. Prefer append or insert a new slide.
Workflow
Step 1 — Capture intent
If the user provided docs / prior diagram / deck context, extract nodes, flows, and modes first. Ask only gaps:
- What system are we drawing?
- Which 1–2 flows matter for this audience?
- Any mode toggle (e.g. Direct vs Indirect)?
- Overview only, or overview + storyboard steps?
- Insert where? (default: after the related existing architecture slide, or before Thank You)
Step 2 — Write a planning spec (required)
Create a JSON planning file before drawing. Save under the working dir (e.g. slides-script/specs/<name>.json).
Schema outline:
{
"system": "MTC same-cluster storage class conversion",
"audience": "Customer platform team",
"color_mode": "light",
"modes": ["direct", "indirect"],
"nodes": [
{
"id": "mtc_ui",
"role": "orch",
"label": "MTC UI + Controller",
"subtitle": "Host cluster operator",
"zone": "control",
"x_pct": 8,
"y_pct": 12
}
],
"flows": [
{
"key": "sc_conversion",
"name": "Storage class conversion",
"steps": [
{
"from": "mtc_ui",
"to": "mig_plan",
"title": "creates",
"desc": "Operator defines namespaces, PVs, copy method, target SC."
}
]
}
],
"slide_plan": {
"overview": true,
"storyboard_flow": "sc_conversion",
"mode_compare_slides": false
}
}
Rules:
- ≤ 12 nodes
- ≤ 6 flows (usually 1–3 for a customer deck)
- 3–9 steps per flow
- Positions use percentages of the diagram canvas (not the whole slide)
- See
references/flow-design-patterns.md
Step 3 — Choose render strategy
| Strategy |
When |
How |
| A — Single PNG (preferred for overview) |
Dense wiring, customer overview, avoid shape clutter |
Render with PIL + Red Hat fonts; upload to stable raw URL (e.g. nirjhar17/slide-assets); createImage into content zone |
| B — Native shapes |
≤ 6 nodes, simple left→right |
Use helpers panels + arrows; fixed grid; no overlapping labels |
| C — Storyboard sequence |
Teaching a flow step-by-step |
Same node layout every slide; only active hop + callout change |
Prefer A for overview. Prefer C when the user wants the “click-through” feel. Combine A (overview) + C (2–5 step slides) for workshops.
Never recreate the HTML template’s player/JS in Slides.
Step 4 — Map visual states to slides
From the HTML skill’s state model:
| State |
Meaning |
Slides treatment |
active |
Target of current step |
Full color, accent ring / stronger border, optional step badge in callout |
active-from |
Source of current step |
Full color, slightly softer than active |
participant |
Elsewhere in this flow |
Normal opacity; show preview wires at ~50% |
dimmed |
Not in this flow |
Grey fill, muted text, no emphasis |
hidden |
Excluded by mode |
Omit from that mode slide |
Overview slide: show full topology; preview the primary flow’s wires at medium emphasis; do not dim everything.
Storyboard slide N: dim non-participants; emphasize current from→to; put step title + 1–2 sentence desc in a right or bottom callout (the “side panel”).
Step 5 — Layout heuristics (five zones)
Place by data direction, not by org chart:
| Zone |
Typical X% |
Occupants |
| Entry |
0–15 |
User, operator UI |
| Edge / control |
15–40 |
Controllers, plans, gateways |
| Core |
40–65 |
Apps, migration runners, Velero |
| Data plane |
65–85 |
PVCs, volumes |
| Backing store |
85–100 |
S3 / repo / external DB |
- Mainline through the vertical center
- Rare/one-shot nodes in a corner
- Avoid wire crossings; if crossed, move nodes before adding more labels
- Keep ≥ ~0.25″ gap between node boxes on the canvas
Role colors (keep ≤ 6 roles):
| Role |
Use for |
Light-mode accent |
user |
Operator / admin persona |
Teal-green |
orch |
Controllers, plans, orchestrators |
Sky / RH-adjacent blue-teal |
compute |
Heavy workers, restore agents |
Magenta-leaning or RH red accent sparingly |
embed |
Transformers / converters |
Amber |
vector |
Storage, PVC, S3, DB |
Violet or warm orange for object storage |
seed |
One-shot jobs / migrations |
Orange |
On Red Hat customer decks, prefer the existing deck palette (RH red, teal, orange, greens) over inventing a seventh neon color.
Step 6 — Build slides
- If overview: render/upload image OR draw shapes from the planning spec.
- Create a new BLANK slide; set background; accent bar; title; subtitle; diagram; logo.
- If storyboard: create additional slides with identical node coordinates; update highlights + callout only.
- Title pattern:
- Overview:
MTC Architecture — How Everything Connects
- Step:
SC Conversion — Step 3 of 6 · Cutover
- Mode:
Data Path — Indirect (via replication repo)
- Write companion
architecture.md next to the planning JSON (components, flows, mode differences). Required unless user says HTML/MD not needed.
Step 7 — Validate before delivery
Storyboard recipe (click-through without HTML)
For flow F with N steps:
- Slide 0 — Overview — all nodes; all flow wires as preview
- Slides 1..N — identical layout; highlight step i; callout = title + desc + ≤3 chips
- Optional Mode A / Mode B pair — same nodes; different emphasized path
Cap storyboard at 6 step slides for a customer deck. More belongs in an appendix or HTML.
Integration with other skills
| Skill |
Role |
google-slides-presentation |
Helpers, branding, create/insert slide primitives |
google-slides-workflow |
Build → troubleshoot → verify orchestration |
google-slides-verify |
Mandatory checks after insert |
google-slides-red-hat-advanced |
Recover from layout/logo/master issues |
This skill owns diagram planning + visual-state treatment. It does not replace the Slides workflow skill.
Common pitfalls
- Shape spaghetti — too many native arrows/labels → switch to Strategy A (PNG)
- Different node positions per step slide — breaks the “click-through” illusion; lock coordinates
- Modes that rebuild the system — split into two diagrams
- More than 12 nodes — split by concern (control plane vs data plane)
- Editing the customer’s good overview — add a new slide to compare; don’t silently replace
- Promising HTML animations in Slides — be explicit about storyboard limits
Output checklist
When finished, tell the user:
- Planning spec path
- Companion
architecture.md path (if written)
- New slide objectId(s) + deck URL with
#slide=id.
- Whether overview / storyboard / mode slides were created
- Honest quality notes (clarity, wire crossings, text density, verify result)
References
references/flow-design-patterns.md — topology, flows, steps, modes (Slides-adapted)
references/visual-states.md — active/participant/dimmed mapping + callout copy rules
examples/mtc-storage-class-conversion.json — worked planning spec
1---2name: google-slides-architecture-diagram3description: Build customer-ready architecture diagrams in Google Slides using the interactive-architecture mental model (nodes, named flows, steps, modes, active/participant/dimmed states) adapted for static slides and optional storyboard sequences. Use when the user asks for an architecture diagram, service map, data-flow walkthrough, MTC/MTA topology, system flow on slides, click-through architecture in Google Slides, or to redesign a messy boxes-and-arrows slide. Do NOT use for interactive HTML diagrams (use the HTML architecture-diagram skill) or for generic non-diagram slide content.4---56# Google Slides Architecture Diagrams78Adapt the [interactive architecture diagram](https://github.com/konraddzbik/architecture-diagram-skill) mental model to **Google Slides**.910Slides cannot run animated packets or a live player. They CAN teach the same way: clear topology, named flows, step-by-step storyboards, and mode variants with consistent node placement.1112**Inspired by:** konraddzbik/architecture-diagram-skill (MIT). This skill reuses its planning model; the output medium is Google Slides + optional companion markdown.1314---1516## When to use1718| Situation | Use this skill? |19|---|---|20| Architecture / data-flow diagram on Google Slides | **Yes** |21| Customer walkthrough of how components connect | **Yes** |22| Stage → cutover → rollback storyboard in a deck | **Yes** |23| Direct vs Indirect (or similar) mode comparison | **Yes** |24| Interactive HTML click-through in a browser | No — use HTML architecture-diagram skill |25| Static Mermaid in a README | No — Mermaid is simpler |26| Generic text/agenda slides | No — use `google-slides-presentation` |2728---2930## Mental model (same four primitives)31321. **Nodes** — services, CRs, datastores, users, external systems. Each has a **role** (color) and short metadata (tech / purpose).332. **Flows** — named scenarios (`Stage`, `Cutover`, `Indirect copy`). Each flow is an ordered list of **steps**.343. **Steps** — `{from, to, title, desc, chips?}`. One handoff: X sends/refers/configures Y.354. **Modes** — orthogonal toggles (`direct`/`indirect`, `dev`/`prod`). Same topology; highlight different path or swap labels — do **not** invent a different system unless you build a second diagram.3637Modes ≠ flows. Flows = scenarios. Modes = deployment / path shape.3839---4041## Hard constraints (Red Hat slides)4243Always compose with workspace helpers from `google-slides-presentation` / `slides-script/helpers.py`:4445- Slide size **10″ × 5.625″**, content zone **y 1.00″ → 4.80″**, margins **0.50″**46- Every content slide: red accent bar + title + subtitle + RH logo47- Fonts: Red Hat Display (titles) / Red Hat Text (body); **≥ 12pt**48- Light/dark: follow the deck’s existing `COLOR_MODE` (do not flip without asking)49- Create slides with `predefinedLayout: "BLANK"` + explicit background50- After build: run **Quick Verify** from `google-slides-verify` on affected slide IDs5152**Default safety rule:** never delete or rewrite existing slides unless the user explicitly asks. Prefer **append** or **insert** a new slide.5354---5556## Workflow5758### Step 1 — Capture intent5960If the user provided docs / prior diagram / deck context, extract nodes, flows, and modes first. Ask only gaps:6162- What system are we drawing?63- Which 1–2 flows matter for this audience?64- Any mode toggle (e.g. Direct vs Indirect)?65- Overview only, or overview + storyboard steps?66- Insert where? (default: after the related existing architecture slide, or before Thank You)6768### Step 2 — Write a planning spec (required)6970Create a JSON planning file before drawing. Save under the working dir (e.g. `slides-script/specs/<name>.json`).7172Schema outline:7374```json75{76 "system": "MTC same-cluster storage class conversion",77 "audience": "Customer platform team",78 "color_mode": "light",79 "modes": ["direct", "indirect"],80 "nodes": [81 {82 "id": "mtc_ui",83 "role": "orch",84 "label": "MTC UI + Controller",85 "subtitle": "Host cluster operator",86 "zone": "control",87 "x_pct": 8,88 "y_pct": 1289 }90 ],91 "flows": [92 {93 "key": "sc_conversion",94 "name": "Storage class conversion",95 "steps": [96 {97 "from": "mtc_ui",98 "to": "mig_plan",99 "title": "creates",100 "desc": "Operator defines namespaces, PVs, copy method, target SC."101 }102 ]103 }104 ],105 "slide_plan": {106 "overview": true,107 "storyboard_flow": "sc_conversion",108 "mode_compare_slides": false109 }110}111```112113Rules:114115- ≤ **12 nodes**116- ≤ **6 flows** (usually 1–3 for a customer deck)117- **3–9 steps** per flow118- Positions use percentages of the **diagram canvas** (not the whole slide)119- See `references/flow-design-patterns.md`120121### Step 3 — Choose render strategy122123| Strategy | When | How |124|---|---|---|125| **A — Single PNG (preferred for overview)** | Dense wiring, customer overview, avoid shape clutter | Render with PIL + Red Hat fonts; upload to stable raw URL (e.g. `nirjhar17/slide-assets`); `createImage` into content zone |126| **B — Native shapes** | ≤ 6 nodes, simple left→right | Use helpers panels + arrows; fixed grid; no overlapping labels |127| **C — Storyboard sequence** | Teaching a flow step-by-step | Same node layout every slide; only active hop + callout change |128129**Prefer A for overview.** Prefer C when the user wants the “click-through” feel. Combine A (overview) + C (2–5 step slides) for workshops.130131Never recreate the HTML template’s player/JS in Slides.132133### Step 4 — Map visual states to slides134135From the HTML skill’s state model:136137| State | Meaning | Slides treatment |138|---|---|---|139| `active` | Target of current step | Full color, accent ring / stronger border, optional step badge in callout |140| `active-from` | Source of current step | Full color, slightly softer than active |141| `participant` | Elsewhere in this flow | Normal opacity; show preview wires at ~50% |142| `dimmed` | Not in this flow | Grey fill, muted text, no emphasis |143| `hidden` | Excluded by mode | Omit from that mode slide |144145**Overview slide:** show full topology; preview the primary flow’s wires at medium emphasis; do not dim everything.146147**Storyboard slide N:** dim non-participants; emphasize current `from→to`; put step title + 1–2 sentence desc in a right or bottom callout (the “side panel”).148149### Step 5 — Layout heuristics (five zones)150151Place by data direction, not by org chart:152153| Zone | Typical X% | Occupants |154|---|---|---|155| Entry | 0–15 | User, operator UI |156| Edge / control | 15–40 | Controllers, plans, gateways |157| Core | 40–65 | Apps, migration runners, Velero |158| Data plane | 65–85 | PVCs, volumes |159| Backing store | 85–100 | S3 / repo / external DB |160161- Mainline through the vertical center162- Rare/one-shot nodes in a corner163- Avoid wire crossings; if crossed, move nodes before adding more labels164- Keep ≥ ~0.25″ gap between node boxes on the canvas165166Role colors (keep ≤ 6 roles):167168| Role | Use for | Light-mode accent |169|---|---|---|170| `user` | Operator / admin persona | Teal-green |171| `orch` | Controllers, plans, orchestrators | Sky / RH-adjacent blue-teal |172| `compute` | Heavy workers, restore agents | Magenta-leaning or RH red accent sparingly |173| `embed` | Transformers / converters | Amber |174| `vector` | Storage, PVC, S3, DB | Violet or warm orange for object storage |175| `seed` | One-shot jobs / migrations | Orange |176177On Red Hat customer decks, prefer the existing deck palette (RH red, teal, orange, greens) over inventing a seventh neon color.178179### Step 6 — Build slides1801811. If overview: render/upload image OR draw shapes from the planning spec.1822. Create a **new** BLANK slide; set background; accent bar; title; subtitle; diagram; logo.1833. If storyboard: create additional slides with **identical** node coordinates; update highlights + callout only.1844. Title pattern:185 - Overview: `MTC Architecture — How Everything Connects`186 - Step: `SC Conversion — Step 3 of 6 · Cutover`187 - Mode: `Data Path — Indirect (via replication repo)`1885. Write companion `architecture.md` next to the planning JSON (components, flows, mode differences). Required unless user says HTML/MD not needed.189190### Step 7 — Validate before delivery191192- [ ] Every step is one handoff (X → Z), not a vague “does work”193- [ ] Node IDs in steps exist in `nodes`194- [ ] No overlapping labels on the overview195- [ ] Content stays inside y 1.00–4.80; logo in footer196- [ ] Fonts ≥ 12pt197- [ ] Existing slides untouched (unless user asked to replace)198- [ ] Quick Verify on new slide IDs; visually inspect thumbnail199200---201202## Storyboard recipe (click-through without HTML)203204For flow `F` with N steps:2052061. **Slide 0 — Overview** — all nodes; all flow wires as preview2072. **Slides 1..N** — identical layout; highlight step i; callout = title + desc + ≤3 chips2083. Optional **Mode A / Mode B** pair — same nodes; different emphasized path209210Cap storyboard at **6 step slides** for a customer deck. More belongs in an appendix or HTML.211212---213214## Integration with other skills215216| Skill | Role |217|---|---|218| `google-slides-presentation` | Helpers, branding, create/insert slide primitives |219| `google-slides-workflow` | Build → troubleshoot → verify orchestration |220| `google-slides-verify` | Mandatory checks after insert |221| `google-slides-red-hat-advanced` | Recover from layout/logo/master issues |222223This skill owns **diagram planning + visual-state treatment**. It does not replace the Slides workflow skill.224225---226227## Common pitfalls228229- **Shape spaghetti** — too many native arrows/labels → switch to Strategy A (PNG)230- **Different node positions per step slide** — breaks the “click-through” illusion; lock coordinates231- **Modes that rebuild the system** — split into two diagrams232- **More than 12 nodes** — split by concern (control plane vs data plane)233- **Editing the customer’s good overview** — add a new slide to compare; don’t silently replace234- **Promising HTML animations in Slides** — be explicit about storyboard limits235236---237238## Output checklist239240When finished, tell the user:2412421. Planning spec path2432. Companion `architecture.md` path (if written)2443. New slide objectId(s) + deck URL with `#slide=id.`2454. Whether overview / storyboard / mode slides were created2465. Honest quality notes (clarity, wire crossings, text density, verify result)247248---249250## References251252- `references/flow-design-patterns.md` — topology, flows, steps, modes (Slides-adapted)253- `references/visual-states.md` — active/participant/dimmed mapping + callout copy rules254- `examples/mtc-storage-class-conversion.json` — worked planning spec