# Pi Dashboard — Diagrams Architecture artifacts for pi-dashboard, generated by the `project-diagramming-mermaid` + `project-diagramming-archify` skills (per-project `docs/` convention). ## Overview - **Source of truth**: [`pi-dashboard.mmd`](./pi-dashboard.mmd) - **Rendered** (via `mmdc`, mermaid-cli 11.16.0): - [`diagrams/pi-dashboard.png`](./diagrams/pi-dashboard.png) (@2x, white bg) - [`diagrams/pi-dashboard.svg`](./diagrams/pi-dashboard.svg) (vector) - **Interactive map** (Archify, 9/9 showcase checks): [`pi-dashboard-map.html`](./pi-dashboard-map.html) — open in a browser for pan/zoom, search, theme toggle, route tracing - **Archify spec** (JSON IR): [`archify/pi-dashboard.architecture.json`](./archify/pi-dashboard.architecture.json) ## Diagram (Mermaid) Renders natively in Obsidian; shows as ASCII in pi via the `pi-mermaid` extension. ```mermaid flowchart LR EXT["dashboard.ts pi extension"] -->|"writes JSON"| SF[("state files ~/.pi/agent/dashboard")] REM["remote machines .13 .51"] -->|"ssh cat *.json, 5s timeout + cooldown"| ST["state.go"] SF -->|"readLocalStates"| ST ST -->|"AgentState"| MAIN["main.go bubbletea TUI"] CFG["pi-dashboard.yaml"] -->|"loadConfig"| MAIN MAIN -->|"2s poll tick"| ST MAIN -->|"table + detail"| UI["Table + Detail panes"] UI -->|"Enter"| AT["tmux / zellij attach"] UI -->|"d"| HK["hunk diff"] UI -->|"Tab"| TX["tuxedo todo.txt"] UI -->|"Del"| SF ``` ## Regenerate ```bash # update the source vim pi-dashboard.mmd # re-render images mmdc -i pi-dashboard.mmd -o diagrams/pi-dashboard.png --scale 2 -b white mmdc -i pi-dashboard.mmd -o diagrams/pi-dashboard.svg # update the Archify map (JSON IR in archify/, then): node ~/.agents/skills/archify/bin/archify.mjs validate architecture archify/pi-dashboard.architecture.json --quality showcase --json node ~/.agents/skills/archify/bin/archify.mjs deliver architecture archify/pi-dashboard.architecture.json pi-dashboard-map.html --quality showcase --json ```