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
| Need | Tool | Why |
|---|---|---|
| Compare quantities | Vega-Lite | Bar charts, scatter plots, precise scales |
| Show workflow | Mermaid | Flowcharts, decision trees, sequences |
| Plot time series | Vega-Lite | Line charts, trends, temporal patterns |
| Map architecture | Mermaid | Component diagrams, system relationships |
| Distribution/histogram | Vega-Lite | Statistical distributions, bins, ranges |
| Entity relationships | Mermaid | ER 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:

Key decision points:
1. Check for human fixes first
2. Count attempts
3. Try to fetch logs
4. Auth issues = human territoryThe 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

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:
- The Practice — uses Mermaid to show the nightly workflow cycle
- Forgejo — decision trees for CI triage (Mermaid)
- Morning Briefing — data flow diagram (Mermaid)
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.pngInput: 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:
| Category | Count |
|---|---|
| Collected | 12 |
| Available | 27 |
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.
Related Practices
- The Practice — includes visual practice as a requirement for diary entries
- Library Governance — mandates Mermaid for all library diagrams
- Agent Skills — includes
datavizandmermaidskills for generating visuals
See Also
- Vega-Lite Documentation
- Mermaid Documentation
- Forgejo — for examples of Mermaid decision trees in practice
- Bauhaus — the design philosophy lineage behind functional, democratic visual communication
- Project Cybersyn — the Bauhaus–Ulm tradition applied to socialist governance; the Operations Room as case study in democratic data visualization
- Cybernetic Art and Media — artists who used systems, feedback, and participation as visual medium
- Dataviz for Agents — practical implementation guide for chart generation
- Mermaid and Charts — comprehensive reference for diagram tools
- Iterative Design Workflows — related practice philosophy