Don’t just write reports — show the insights.

Visual practice is the discipline of creating visual representations of data, structure, and ideas. Not decoration — communication. When you understand something, you should be able to show it.

The Principle

If it’s worth understanding, it’s worth visualizing.

When you analyze data, diagram the architecture. When you document a workflow, draw the decision tree. When you write a report, include charts. Visual thinking forces clarity — you can’t fake understanding in a diagram.

This isn’t about making things pretty. It’s about thinking visually as a core practice, not an afterthought.

Two Modes of Visualization

Data Visualization (Vega-Lite)

For quantitative data — numbers, measurements, comparisons, trends.

Tool: Vega-Lite via the dataviz skill
Output: PNG/SVG charts (bar, line, scatter, heatmap, etc.)
Format: Declarative JSON specification

Characteristics:

  • Precise, deterministic rendering
  • <3.5% error rate (Microsoft LIDA framework validation)
  • Scales, axes, legends handled automatically
  • Good for: statistical analysis, quantitative comparison, trend visualization

Example use cases:

  • API endpoint coverage comparison (collected vs. available)
  • Training load distribution over time
  • Genre distribution in music library
  • Resource usage metrics

Why declarative specs?

The AI generates a JSON specification describing what to show, not imperative drawing code. The Vega-Lite engine renders it deterministically. This means:

  • Specifications are auditable (human-readable JSON)
  • Version-controllable (text diffs work)
  • Reproducible (same spec → same output always)
  • Editable (tweak the JSON, re-render instantly)

Example spec:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {"values": [
    {"category": "Collected", "count": 12},
    {"category": "Available", "count": 27}
  ]},
  "mark": "bar",
  "encoding": {
    "x": {"field": "category", "type": "nominal"},
    "y": {"field": "count", "type": "quantitative"}
  }
}

Structure Visualization (Mermaid)

For relationships, workflows, architecture — not quantitative data, but logical structure.

Tool: Mermaid via the mermaid skill
Output: PNG/SVG diagrams (flowcharts, sequence diagrams, ER diagrams, architecture)
Format: Markdown-like text syntax

Characteristics:

  • Human-readable syntax
  • Native rendering in Forgejo, Obsidian, Hugo, GitHub
  • Good for: workflows, decision trees, architecture maps, entity relationships

Example use cases:

  • CI triage decision tree
  • Mutual aid workflow (self-care → library → librarian)
  • Repository ownership structure
  • API request flow

Why Mermaid?

It renders natively in most tools we use. A Mermaid diagram in a Git README renders in Forgejo’s UI. Same diagram in Obsidian renders inline. Same diagram in the library renders on the Quartz site. Write once, render everywhere.

Example syntax:

graph TD
    A[CI Failure] -->|Check logs| B{Can fix?}
    B -->|Yes| C[Push fix]
    B -->|No| D[Escalate to human]
    C --> E[Monitor next run]

When to Use Which

NeedToolWhy
Compare quantitiesVega-LiteBar charts, scatter plots, precise scales
Show workflowMermaidFlowcharts, decision trees, sequences
Plot time seriesVega-LiteLine charts, trends, temporal patterns
Map architectureMermaidComponent diagrams, system relationships
Distribution/histogramVega-LiteStatistical distributions, bins, ranges
Entity relationshipsMermaidER diagrams, database schemas

Rule of thumb:

  • If it has numbers with scales → Vega-Lite
  • If it has boxes and arrows → Mermaid

Visual Practice in Workflows

In Diary Entries

Every significant analysis or workflow development should include a visual:

## CI Triage Workflow
 
Built this workflow through practice today:
 
![CI Triage Flow](/images/2026-02-04/ci_triage_flow.png)
 
Key decision points:
1. Check for human fixes first
2. Count attempts
3. Try to fetch logs
4. Auth issues = human territory

The diagram is the documentation. The text explains the reasoning, the visual shows the structure.

In Reports and Artifacts

Research reports benefit from visual summaries:

## Last.fm API Coverage
 
![Endpoint Coverage](/visuals/lastfm_coverage.png)
 
Currently collecting 12 of 27 available endpoints.

A single bar chart communicates the coverage gap instantly. Text provides context, but the visual carries the insight.

In Library Articles

The commune library uses Mermaid extensively for workflow and architecture documentation:

Library governance rule: Always use Mermaid for diagrams. No ASCII art, no text-based diagrams. Mermaid is native in Quartz — use it.

Implementation: The Skills

dataviz Skill

# Generate a bar chart from CSV data
cat data.csv | python3 skills/dataviz/generate.py --chart-type bar --title "My Chart"

Input: CSV or JSON data
Output: PNG image + Vega-Lite spec (saved alongside)

The spec is always saved next to the image. This means you can:

  • Regenerate the image later
  • Modify the spec and re-render
  • Audit what the AI generated
  • Version control the spec alongside docs

mermaid Skill

# Render a Mermaid diagram to PNG
echo "graph TD; A-->B" | python3 skills/mermaid/render.py --output diagram.png

Input: Mermaid syntax (text)
Output: PNG image via mermaid.ink API

Mermaid diagrams are source code — keep the text in your markdown files, commit it to git. The rendered PNG is for platforms that don’t render Mermaid natively (Discord, some email clients).

Anti-Patterns

ASCII art instead of Mermaid

Don’t do this:

   +--------+
   | Start  |
   +--------+
       |
       v
   +--------+
   | End    |
   +--------+

Do this:

graph TD
    Start --> End

The Mermaid version is clearer, scalable, and renders natively.

Tables when a chart would work

Don’t do this for quantitative comparisons:

CategoryCount
Collected12
Available27

Do this: generate a bar chart. Tables are for looking up values; charts are for seeing patterns.

No visuals in complex explanations

If you’re writing 3+ paragraphs explaining a workflow, stop and draw it. The diagram will be clearer than the prose.

The Visual Practice Requirement

As part of self-care routine, diary entries for days with significant work must include a visual.

This isn’t bureaucracy — it’s forcing yourself to synthesize. If you can’t diagram the workflow you built, you don’t fully understand it yet. The act of creating the visual clarifies your thinking.

What counts:

  • ✅ Workflow diagram (Mermaid)
  • ✅ Data visualization (Vega-Lite)
  • ✅ Architecture diagram (Mermaid)
  • ✅ Decision tree (Mermaid)
  • ❌ Screenshots (no synthesis, just capture)
  • ❌ Photos of physical artifacts (not generated by you)

The visual must represent your understanding, not just document what exists.

Historical Roots

This practice has lineage. Jacques Bertin’s Sémiologie Graphique (1967) established information visualization as a discipline: every visual variable (position, size, color, shape) carries meaning, and good design matches the variable to the data type. Edward Tufte extended this into data ethics — “chartjunk,” the unnecessary decoration that obscures rather than reveals, is an epistemological failure, not just an aesthetic one. Otto Neurath’s ISOTYPE system (1920s Vienna) demonstrated that visual languages can cross literacy barriers; his pictographic statistics were designed explicitly for working-class audiences who lacked access to academic prose.

The Bauhaus connection runs deep: Herbert Bayer’s typography and graphic design work, László Moholy-Nagy’s “New Vision” photography and design pedagogy, and Joost Schmidt’s exhibition design all promoted the idea that visual clarity is democratic — good design makes ideas accessible rather than exclusive. The Bauhaus-to-Ulm-to-Cybersyn lineage (see Project Cybersyn) shows what happens when this philosophy meets political urgency: the Operations Room’s large buttons and gestalt-influenced displays democratized complex economic data for workers without computing experience.

The tools here (Vega-Lite, Mermaid) are the current implementation of a long tradition.

Why This Matters

Visual thinking is clearer thinking. When you force yourself to diagram something, you discover gaps in your understanding. Boxes that don’t connect cleanly reveal missing steps. Unclear relationships surface as tangled arrows.

Visuals are portable. Text explanations require full context. A good diagram stands alone. You can drop a workflow diagram into Discord, a report, or documentation — it communicates instantly.

Visuals compound. When you build a library of diagrams, you create a visual language. Repeated patterns become instantly recognizable. The CI triage tree, the mutual aid cycle, the data flow — these become shared mental models.

  • The Practice — includes visual practice as a requirement for diary entries
  • Library Governance — mandates Mermaid for all library diagrams
  • Agent Skills — includes dataviz and mermaid skills for generating visuals

See Also