Skip to content
Skills Library
Data & analytics · Planning

visual-encoding

/visual-encoding

Turn an intent record into concrete visual encodings: which data field maps to which channel (position, length, angle, area, color), the exact chart mechanics, and the color strategy. Use after visual-intent and before visual-composition, whenever channel or chart-type choices must be made honestly and legibly.

Licence
MIT
Last repository change
11.11.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 11.11.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Turn an intent record into concrete visual encodings: which data field maps to which channel (position, length, angle, area, color), the exact chart mechanics, and the color strategy. Use after visual-intent and before visual-composition, whenever channel or chart-type choices must be made honestly and legibly.

Original author description

Turn an intent record into concrete visual encodings: which data field maps to which channel (position, length, angle, area, color), the exact chart mechanics, and the color strategy. Use after visual-intent and before visual-composition, whenever channel or chart-type choices must be made honestly and legibly.

How it works

  1. Purpose
  2. When to invoke
  3. Inputs
  4. Required intermediate representation
  5. Procedure
  6. Hard constraints
  7. Strong heuristics
  8. Context-dependent guidance
  9. Failure modes
  10. Validation checks
Original SKILL.md headings · 115 lines, 868 words
SKILL.md preview
---
name: visual-encoding
description: >
  Turn an intent record into concrete visual encodings: which data field maps to
  which channel (position, length, angle, area, color), the exact chart mechanics,
  and the color strategy. Use after visual-intent and before visual-composition,
  whenever channel or chart-type choices must be made honestly and legibly.
---

# Visual Encoding

## Purpose
Choose the visual channels that carry each data field so the reader decodes the
most important quantities most accurately, without distortion. Encoding is where
perceptual accuracy and quantitative honesty are won or lost.

## When to invoke
After `visual-intent` has produced an intent record and candidate chart families;
before layout/annotation. Also when reviewing an existing chart's channel choices.

## Inputs
- The intent record (takeaway, audience, medium, data abstraction, reader task,
  candidate families) from `visual-intent`.

## Required intermediate representation
An **encoding table**:
```
field -> channel -> justification
e.g.  revenue (quantitative, key) -> position on common y -> accuracy-critical (ENC-01)
      region  (categorical)       -> hue + direct label   -> nominal; color not sole (ACCESS-01)
color_role per use: categorical | sequential | diverging | highlight | accessibility-redundancy | decorative
baseline decisions, scale transforms, and any escalations noted.
```

## Procedure
1. Rank the data fields by decision-importance. Put the most accuracy-critical
   field on the highest-precision channel available: position > length >
   angle/slope > area > color-intensity (ENC-01).
2. Choose the chart type from the candidate families that best honors that ranking;
   align compared items on a common scale/baseline (ENC-05).
3. Set baselines: bars and columns MUST anchor at zero (ENC-02). For line/point
   charts, decide baseline by ratio-vs-difference intent and **surface it as an
   explicit choice** (UNC-01, ESCALATE) — do not silently truncate.
4. Reject low-accuracy encodings where precision matters: no area/intensity for
   precise magnitudes (ENC-03); no pie/donut for many-category comparison (ENC-04);
   pictograms only for whole counts (ENC-07); avoid 3-D unless the phenomenon is
   spatial (ENC-10).
5. Classify every use of color as categorical / sequential / diverging / highlight
   / accessibility-redundancy / decorative. Match palette class to data (COLOR-04);
   for continuous data use a perceptually uniform, monotonic-lightness map
   (COLOR-01, COLOR-02); never rainbow/jet (COLOR-03); never deform a map (COLOR-05);
   give every color a reason (COLOR-06).
6. Apply the accessibility the active modes ask for (~/dev/MandrakeWorkflows/visualize/principles/modes.md).
   `colorblind_safe` (journal, public web): color never the sole cue (ACCESS-01), no
   red/green at equal luminance (ACCESS-02), lightness differences (ACCESS-04).
   `print_grayscale`: make it read in grayscale first (ACCESS-05). Default: neither.
7. Keep the encoding simple (ENC-08) and set style deliberately rather than
   accepting library defaults (ENC-09), following the shared style rules in
   `~/dev/MandrakeWorkflows/visualize/principles/style.md`. Control gridline/label density (PERC-01);
   separate touching color cells (PERC-02).
8. Hand the encoding table to `visual-composition`. If the data is spatial/physical
   or carries a scientific colormap, also route through `scientific-visualization`.

## Hard constraints
- ENC-02 (zero baseline for bars). ENC-03, ENC-04, ENC-07, ENC-10 (AVOID the named
  distorting encodings). COLOR-01, COLOR-02, COLOR-04 (MUST, continuous color).
  COLOR-03, COLOR-05 (AVOID). ACCESS-01, ACCESS-02 (MUST when `colorblind_safe`).

## Strong heuristics
- ENC-01, ENC-05, ENC-08, ENC-09 (SHOULD). COLOR-06, ACCESS-04, ACCESS-05,
  PERC-01, PERC-02 (SHOULD).

## Context-dependent guidance
- UNC-01 (ESCALATE): non-bar baseline is a message-dependent decision; state ratio
  vs difference and disclose any crop.
- ENC-01 relaxes when magnitude reading is not required (gestalt/overview only).
- ENC-10's exception: inherently spatial phenomena and animated science viz.
- **Motion and alarm states: one channel family, one meaning** (COLOR-06 carried to
  motion; the cross-study "one colour, one meaning" rule). An alarm takes a channel no
  attention cue or datum uses. Visitors (2026-10-31): strain drawn as rings or ripples
  read as the needs-you summons on 4 of 5 concepts; red glow plus geometric disalignment
  did not. Keep tempo (angular) and flow (radial) on different motion axes (motion.11).
- *Provisional (Visitors only, n=1):* keep an encoding inside its mark (particles
  arriving from outside read as busy); readers adopt natural mappings before any legend
  (orbiting satellites read as processes), so check the unlabelled reading and use it;
  identity by form variant, recognisable in one hue, was liked.

## Failure modes
- Key quantity placed on a weak channel (area/color) → misread magnitudes.
- Truncated bar baseline → lies about ratio.
- Rainbow/jet or non-uniform colormap → false gradients and CVD failure.
- Color as the only distinction → invisible to CVD readers and in grayscale.
- Too many simultaneous encodings → decoding overload (see MEDIA-05).

## Validation checks
- The most decision-critical field is on position/length where feasible (ENC-01).
- Every bar/column axis includes zero (ENC-02).
- `print_grayscale`: grayscale render preserves ordering (COLOR-02) and distinctions (ACCESS-05).
- Each distinct color maps to a distinct intended meaning (COLOR-06).
- `colorblind_safe`: CVD simulation keeps categories distinct (ACCESS-02).

## Repair strategies
- Re-map the key field to a stronger channel; demote the decorative one.
- Swap rainbow → a documented perceptually-uniform map; swap pie → sorted bar.
- Add a redundant non-color channel (direct label, shape, lightness) to satisfy
  ACCESS-01 without new clutter.

## Output contract
A justified encoding table (field→channel→reason, color roles, baseline/scale
decisions, escalations), handed to `visual-composition`.

## Source basis
ENC-01/05 (S02, S15); ENC-02/03/04/06/07 (S04, S15); ENC-08/09 (S03, C1); ENC-10 (S09).
PERC-01/02 (S07, C1, S05). COLOR-01..05 (S05, S09, S07, S03); COLOR-06 (S03, S07).
ACCESS-01/02/04/05 (S16, S05, S06, S09). UNC-01 (S02, S10). See principles.yaml.

## Known open questions
- Where motion channels (rate, spin, jitter, flicker) sit on the ENC-01 ladder, and
  whether an ordinal alarm needs a discrete step: untested (the Visitors blind sheet is
  unanswered; model judges cannot test motion).
- Default weights for trading channel accuracy against clutter (needs QA-04 data).
- Automatic selection among documented perceptually-uniform maps by data semantics.

Versions

The database has no other skills named visual-encoding.

Database snapshot: 13.11.2026 · package version 85e08f981bae (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 90data-visualization
    Select chart types and design data encodings — marks, axes, labels, and accessible chart styling. Use when presenting data graphically. Owns chart selection and encoding only; the categorical colour ramp itself belongs to `color-system`.
  • 100visual-intent
    The front door of the visual-reasoning stack. Use FIRST, before any chart is drawn, whenever the task is to communicate data visually (a chart, figure, slide graphic, map, diagram, or infographic). Establishes communication intent, audience, the abstract data + task, and selects…
  • 90plot-chart
    Design or critique a data visualization — chart type selection, encoding, and clarity. Use when asked "what chart should I use", "critique this visualization", or "design this chart".
  • 100d3-bubble-chart
    How to build a D3.js v6 force-directed bubble chart with sector clustering, size encoding, color legends, tooltips, and interactive selection. Use this skill whenever the user wants a bubble chart, force simulation, cluster layout, or interactive SVG circles with D3.
  • 100chart-checklist
    Review charts, maps, dashboards, and interactive or 3D data views against stable chart quality rules. Use when asked to audit, review, critique, fix, or ship a chart, data visualisation, map, dashboard, or 3D explorer, or when an agent needs chart-specific honesty, encoding,…
  • 100chart-selection
    Chooses the chart form for an analytical question by identifying the comparison being made (change over time, ranking, part-to-whole, distribution, relationship, deviation, geography, flow) and the data shape, then specifies encoding, scale, ordering, color, and annotation…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.