DESIGN NOTES — phase30-fleet-diagram.png
=========================================
Generated by: /workspace/gen_fleet_diagram.py  (matplotlib / Python)
Output size: 128,967 bytes  ·  nominal 1800×1050 px at 150 dpi

────────────────────────────────────────────────────────────────────────────
COLOUR PALETTE
────────────────────────────────────────────────────────────────────────────
Background / Canvas
  #0A0E1A   Deep navy           Background (facecolor on save)

Panel interiors
  #111827   Dark steel         Agent boxes, Platform box interior fill

Panel borders / accents
  #1F2A40   Muted slate        PANEL_EDGE (reserved, not rendered)

Brand colours used
  #4A90D9   Molecule Blue      Platform box border, A2A Proxy sections,
                               connector line: platform → canvas

  #8B5CF6   Purple             REMOTE Agent Fleet boxes (border, header tint,
                               dashed outer ring, fan-in connector lines)

  #22C55E   Green              Online/active status dots (×5 per agent),
                               "Canvas" box border, canvas live dot,
                               "One canvas / All agents" text

  #F59E0B   Amber/Orange       "WebSocket Fanout" label inside platform box

Supporting neutrals
  #94A3B8   Steel gray         Body text, sub-labels (endpoint paths,
                               Secrets Management, State Polling, etc.)

  #F1F5F9   Near white         Title text, "Molecule AI Platform" header,
                               box title labels

  #60A5FA   Light blue         Section headers inside platform (A2A Proxy,
                               Registry + Heartbeat) — lighter tint of
                               Molecule Blue for sub-panel hierarchy

────────────────────────────────────────────────────────────────────────────
TYPOGRAPHY
────────────────────────────────────────────────────────────────────────────
Font family  : DejaVu Sans (matplotlib default, no custom .ttf loaded)
Title        : 13 pt  bold  #F1F5F9
Subtitle     :  7 pt        #94A3B8
Box titles   :  9 pt  bold  #F1F5F9
Section heads: 7.5 pt bold  #60A5FA  (inside platform box)
Body labels  : 5.5–5.8 pt  #94A3B8
Agent names  : 6.5 pt bold  #F1F5F9
FW pill      : 6.0 pt bold  #F1F5F9  (on purple background)
Legend items : 6.5 pt       #94A3B8
Version tag  : 5.5 pt       #94A3B8  (60% alpha)

────────────────────────────────────────────────────────────────────────────
VISUAL ELEMENTS
────────────────────────────────────────────────────────────────────────────
Agent icon labels (top-left of each agent box)
  EC2   — AWS EC2
  Mac   — Laptop/Mac
  Srv   — On-Prem

Framework pills (centre of each agent box, purple background)
  [ LangGraph  ]   [Claude Code]   [  CrewAI   ]

Status dots — 5 green dots per agent box, radius 0.075 figure-units,
spaced 0.26 apart, centred horizontally in each box.

Dashed outer rings — thin (0.9 pt) dashed border surrounds each box
category with its brand colour at ~45–50% alpha.

Connector lines — solid, 1.2 pt purple for fan-in from agents to platform;
1.4 pt blue for platform-to-canvas drop. Arrowhead at destination end.

────────────────────────────────────────────────────────────────────────────
REFINEMENT CHECKLIST (design team)
────────────────────────────────────────────────────────────────────────────
□  Swap "EC2 / Mac / Srv" labels for proper cloud-platform icons
     (AWS logo, macOS logo, server rack icon) via a bundled .ttf or
     matplotlib.matplotlib_fname() + FontManager trick to register a
     custom icon font such as Font Awesome 6 Free.
□  Align connector lines to converge at a single "junction point" above
     the platform box rather than three separate lines fanning from
     identical y-coordinates — more closely mirrors the ASCII diagram.
□  Add a faint grid or dot-grid background texture to the figure canvas
     to reinforce the tech/diagram aesthetic.
□  Consider a subtle horizontal divider inside each agent box between
     the header band and the framework pill / dots area.
□  Source the Molecule AI wordmark / logo SVG and embed it in the
     platform title bar (requires converting SVG → matplotlib transforms
     or rasterising to a numpy array via Pillow).
□  Export at 300 dpi for print-ready assets; current 150 dpi is
     optimised for screen/web display.
□  Validate colour contrast ratios (WCAG AA) for body text on dark bg —
     #94A3B8 on #0A0E1A should be re-checked; may need to shift body
     text to #B0BEC5 or lighter for legibility.

────────────────────────────────────────────────────────────────────────────
REPRODUCIBILITY
────────────────────────────────────────────────────────────────────────────
matplotlib   >= 3.5
numpy        (bundled with matplotlib)
Python       >= 3.8
Pillow       (not required for this script — pure matplotlib rendering)

Run:  python /workspace/gen_fleet_diagram.py
Output: /workspace/marketing/assets/phase30-fleet-diagram.png